专业文科30年,零基础学神经网络TensorFlow

本人外贸狗一枚。 外贸惨呐,白天联系车间生产,晚上回家和国外客户沟通。TMD老板还要求每天在alibaba发30个listing。你说好好的一个销售,有业绩不就行了,居然还有这种KPI,真是是可忍孰不可忍。

不过这也难不倒我,拿出当年大航海时代,从伊比利亚半岛开船去北非海岸挖矿的精神,重新拾起按键精灵开始发产品。(看,谁说网游害人,大航海时代ol不就教会我用脚本采矿么。。。呃,呸,是提高生产效率)

一入豪门深似海,动起了偷懒的歪念头,慢慢的python、selenium也就学起来了。虽然产品发地快了,alibaba会提示输入验证码。但就算慢一点发,一晚上发上千个listing还是很轻松的,一天30个的KPI?哼,米粒之珠,也敢与日月争辉。

虽然发listing方便了,但验证码这个问题也在心里埋下了根刺,上星期手贱又百度了下,结果发现训练围棋AlphaGo的tensorflow居然可以识别验证码,网上还这么多的教程。对于我这个专业文科30年的大叔来说,这么高端酷炫屌朝天的东西,这么多教程居然触手可得,必须得果断入坑。

嗯,真实感受就是入坑,因为我找了很多教学视频,感受都是这样:

大神:好了,我们开始从头开始讲解,首先,1+1=2,2+2=4,……

我:很简单嘛,喝口水先。

大神:所以,@#¥%&*!#¥%&*!##¥#……

我:等等,我忽略了什么?赶紧后退重听。嗯,果真每个音都听到了,只是完全不知道这个音对应哪个词而已。

于是,就有了写这个文章的动力,因为大概一个星期的时间,6天都在找能看的懂的资料,剩下1天才用来初步了解神经网络是什么一回事。所以我把这一个星期找到的,对于我这个初级者有用的资料整理出来,帮助和我一样的老年文科生零基础入门。

既然是零基础,有多零呢?这么说吧,一个小时前,我还在看学而思的高中数学视频,正看到点到直线的距离公式。

嗯,高中,嗯,捂脸。。

所以,真的很零。

一、Python入门

既然是编程,那编程语言一定要会一门。不要挑了,人生苦短,你要学Python。这里推荐传智播客的视频教程

我是在youtube上看的,传智播客的Python14天基础班。如果不能科学上网,估计其他的网站也有。

网上的教程很多,但要么是大神讲天书,跳过N多我们不理解的步骤,要么是玩票兴致,几分钟浅进浅出、科普而已。传智播客的N个教程,感觉都很好,是真的把人当傻子般系统的教学。从 cd dir查看目录等系统操作教起,而且整个基础班系列只要14天就可以学完。每天不过2个多小时。

二、如何理解神经网络

不过既然从百度中搜到这篇文章,你肯定已经会python等语言了。那么首先推荐看一下周莫烦的教学视频:Tensorflow 搭建自己的神经网络 (莫烦 Python 教程)

从第一集“什么是神经网络”看到第6集“如何安装tensorflow”就好了,一集5分钟,半小时看完。后面的视频是给有一定基础的人看的,直接看就会像我一样,云里雾里,对自己的智商产生深刻的怀疑。

这也是很多大神视频的通常情况,他们通常会省略那些“傻子”都会的问题,但对于我这种文科生而言,傻子呓语亦犹如天书。

连续看了4 5个人的视频,没一个我能看懂。每一个都是上一集在讲如何安装tensorflow,下一集就手把手的教你写2层神经网络。我还不知道什么是神经网络,什么是神经元啊!怎么就讲起如何构建2层神经网络了。而且为啥是2层、不是3层?不是1层?怎么一言不合写代码了。。。而且是一边写代码,一边随口解释,写完代码教程就结束了??真真是感受到了理科世界的恶意。。。

然后本来都要放弃了,幸好发现了这片文章:

神经网络入门----阮一峰的网络日志

看完这篇,我才知道了,神经网络到底是怎么回事,才知道大神们在视频中到底是做什么。。。

这篇文章的主要内容来自:

Neural Networks and Deep Learning

在辛辛苦苦的看了半天英文版之后,突然想起来,这是1年前的教材,肯定有人已经翻译了啊,于是又在CSDN上找到了中文翻译版:

《神经网络与深度学习》

20个积分就可以下载,记住,不要下载那个便宜的、冒充中文版的PDF,现在的人真是没底线啊,可怜我一共才几十个积分。。。


三、思路与实现

其实看了上面的神经网络入门,就应该有了基本的神经网络思路了。我们再拓展一下,假设周末出门,我们有3个种选择,

y1去正大广场看LOL比赛,

y2去植物园踏青,

y3楼下花园散步。

影响我们判断的因素还是

x1天气情况,

x2交通情况,

x3是否有人相陪。

以及x1 x2 x3因素的权重W、负阈值b等。(如上图所示)

同样是下雨,对于我去看室内比赛 和 野外踏青的影响是不同的,所以权重W不同。每件事情在我心里的重量不同,所以阈值b不同。

即,3个y是对应着3组不同的(w1 w2 w3 b),即

y1 = w1,1 * x1 + w1,2 *x2 + w1,3 *x +b

y2 = w2,1 * x1 + w2,2 *x2 + w2,3 *x +b

y3 = w3,1 * x1 + w3,2 *x2 + w3,3 *x +b

假设:

在过去的一年中,有52个周末,我作出了52次选择。这52次选择就是y1 y2 和y3;这52个周日的天气情况、交通状况、朋友相约次数这3个x都记录在案。那么神经网络会根据y 和 x 通过反复计算,获得每个y对应的3个W 和1个b的值。

那么,下一个周末,给出天气、交通、朋友这3个x1 x2 x3 ,神经网络就可以用套上9个W 和3个b,计算出y1,y2,y3的值,最大的那个y就是我周末的最优选择。

同理,城市预测周末出行人数,也是这个道理。

sigmoid函数

好,在看神经网络入门中,会产生一个疑问,可以用简单的1 和 0来表示x吗?比如,有没有朋友相约,有就是1,没有就是0。但如果是天气,晴天、阴天、刮风、下雨,对于我周末出门选择是有不同的影响,不能用简单的1和0表示。入门中,介绍了sigmoid函数。可以用sigmoid函数,计算晴天阴天刮风下雨等情况,给出一个0-1的天气值作为那个x1。

softmax函数

神经网络入门这篇中只举例一个情况,去不去参加动漫展览,即只有一个y。那只要Y大于0,就可以去看动漫展览了。

但实际情况更可能是上面我举的例子,周末有y1 y2 y3等多种选择。如果y1=30,y2=10,y3=2。我们当然是选y1。但如果y1=30,y2=28,y3=9,让我们做选择,在一年的52个周末里,我们真的是选择52次y1,而不去选择一次y2吗?

真实世界中,如果两件事差不多,y1=30  y2=28,我们恐怕会去踏青几次吧,而不是100%选lol。

那30,10,2,或者30 28 9这样的数值中如何选择最合理的最大值呢?这里就是softmax软最大值函数的舞台了。

关于softmax可以看一下极客学院的MINIST机器学习入门,然后再百科下,更详细。softmax可以根据每个值的大小,推算出概率,比如30 10 2中,30的概率是0.999999,无限接近于1了;而 30 28 9中,30的概率0.88,28的概率0.11,9无限接近0。

理解了神经元工作方式,和sigmoid、softmax等函数。就可以用tensorflow完成这个思路了。


四、大数据与矩阵

上面说过,一年中,我们有52个周末的记录,即52个 y1y2y3 和52个 x1x2x3。那我们怎么输入这么大的数据计算呢?

总不能手打这52*3个公式吧?如果是一个城市,几十万个出行数据需要计算,手打几十万个y=wx+b,还不要累死?

这就涉及到数据是怎么在电脑中储存的。

假设只有一个影响因素x,一个选择y:

即,y = w*x +b

一年52个周末,外出用1表示,家里蹲用0表示,那么y就是一个由0和1组成,共52个0和1的列表—— [0,0,……,1,1] 

(试着想象一个excel表格,第一个格子写着出行记录,后面跟着52个格子,分别写着0,0,……0,1,1)

x天气情况是[0,0.3,……,0,0.9] (共计52个0-1之间的数值)

权重Weights是w,负阈值是 b 。

所以我们只要有一种运算方式,可以计算w* [0,0.3,……,0,0.9]   + b 的值(w*x+b),

并且电脑经过反复猜测w、b的值,

最终使得 w*[0,0.3,……,0,0.9]+b 约等于y的[0,0,……,1,1] 了,

那么就求出权重和负阈值了。

这种1个数和一组数、一组数和另一组数之间的加减乘除就是矩阵了。


还是解释的太烂,推荐走起。

首先是 阮一峰的网络日志 理解矩阵乘法,这个真的很不错,必看。

然后是 B站上学而思的60小时学完高中数学,推荐全部看完,但如果你和我一样,白天晚上都要挤时间,那就看41-45好了,不做习题的话1个小时就可以看完。

最后是 18张宇线性代数基础班+强化班,看第8P就可以了,半小时。

看完后,数学方面矩阵的内容就初步了解了。剩下的就是怎样在编程中怎么实现对应的操作。比如,两个数字相乘,在电脑中用*星号表示“乘”,两个矩阵相乘,用np.matmul(w,x)表示。

这里推荐周莫烦的 Numpy & Pandas (莫烦 Python 数据处理教程)

只看前半段Numpy就可以了。Numpy是关于python中矩阵操作的库。也很快,1个小时吧。

其实他还有个matlibplot画图教学,也挺有意思的,推荐顺便看下。

五、最后实践

好,那到这里,你应该已经基本可以独立完成神经网络的入门MINIST操作了。MINIST包含了6+1万个手写阿拉伯数字,来自美国人口普查局2组共计500人的手写记录。

手写文字识别、人脸识别之类的事情对于人类来说很简单,睁眼就会。但对于传统编程来说,这事难于登天。所幸机器学习解决了这个问题。

在所有机器学习的项目中,手写文字识别最经典,也对电脑配置的要求最低,我是一台air上网本,没有GPU,识别MINIST也就是7 8秒的事。所以MINIST被各个教材、视频用来入门教学。

所以,如果之前的视频你都多看几集,那么tensorflow的基本操作Variable, Placeholder,feed_dict等等你应该已经都会了。可以自己动手完成MINIST了。

如果没看,推荐youtube上炼数成金的tensorflow十课中的第二课,讲的是创建变量、占位符、fetch、feed等,不能上外网的话,周莫烦的视频中也讲了一部分。

不过他们都是只讲了自己代码中用到的部分,这里有个博客tensorflow基础命令,写的比较全。

学会基本操作,再结合上文的《神经网络与深度学习》极客学院的MINIST机器学习入门,应该是真的、真的、真的零障碍入门了。

当然,你也可以像我一样,从廖雪峰的官方网站上下载一段pillow代码,自己生成0-9的随机数字,自己破解,更有意思。感觉自己就要破解验证码,当上CEO,迎娶白富美,走上人生巅峰了。想想还有点小激动呢!

原文地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容