神经网络怎样模拟人的思考?

“神经网络怎样模拟人的思考?”

早前参加了开源中国的高手问答活动,大家提了很多问题,一一看下来,我很有感触,大家在入门机器学习时遇到的困扰都并不孤独。我把这些代表性问题整理成了一篇文章:《机器学习入门的常见问题集》,第一个问题,就是上面这个问题。

把这个问题写出来,不瞒你说,我挣扎了很久。虽然技术宅不怎么需要形象,不过,面子总也也还是要一点的,要让别人知道我曾经用很长很长的时间思考这么中二的问题,见面了都不好意思抬头打招呼。

可是,我实在太想回答这个问题了,在无数个夜晚里,我放下手里的游戏,硬着头皮去啃神经网络那些天书一般的式子,啃得满嘴血,为的就是今天写下来不过两句话的答案:很抱歉,神经网络只是拟合曲线。”

是的,答案简单得近乎残酷。神经网络算法一直是机器学习界的网红,哪怕在深度学习还没一统江湖的年代,不说别的,光说这名字起得特别好,听着就很有希望。

虽然神经网络近年凭借深度学习大红大紫,不过,神经网络其实是个爷爷辈的算法,我查了一下资料,神经网络最早可以追溯到M-P神经元模型,研究者尝试用算法来模拟神经元的传递机制,时间是1943年,抗战胜利都还等再等两年。

当然,M-P神经元模型模拟的是单个神经元,仔细算来只是个单机版,不过,网络版转眼就出现了。50年代,研究人员推出了使两层M-P神经元的新模型,已经是名副其实的“神经网络”了。不过那时不叫这个名字,叫“感知机”模型。很快,名为“感知机”的神经网络模型赢得了当时很多研究人员的双击666,带起第一波神经网络发展的高潮。

不瞒你说,我实在不喜欢感知机这个名字,当初我真的是很单纯地被“神经网络”这个拥有某种魔力一般的名字所深深吸引的,如果当时它的名字还叫“感知机”,估计我很可能会一翻而过。

有位大牛也不喜欢感知机,1969年,图灵奖得主闵斯基专门写了一本书痛斥感知机,书名不叫别的就叫《感知机》。这本《感知机》是人工智能发展史上浓墨重彩的一本书,前面我们说神经网络凭借感知机迎来了第一波发展高潮,有起就有伏,正是《感知机》把神经网络从浪尖打入了谷底。

《感知机》做了什么不得了的导致了惊天大逆转?就一句话,“单层神经网络无法解决非线性问题”,展开证明很复杂,简单来说,就是感知机模型无论如何也无法学会“异或”。大家一看都愣了,本以为前途无量的感知机潜力居然这么快见底,于是纷纷转投他处,就算自己还想坚持研究,金主爸爸也不肯打钱。这就是著名的神经网络冰河期,整个70年代,神经网络奄奄一息。

看到这里,也许你会很疑惑,毕竟我们都是提前看了剧透的人,如果神经网络连异或都学不了,那深度学习是靠什么成了今天的南霸天的?答案就在它的名字上。

《感知机》说的很清楚,单层的神经网络无法学会异或,而深度学习的“深度”,指的就是有很多层的神经网络,这就突破了单层的局限。问题当然没完,当时这么多顶尖的脑袋,难道就没有一个人能想到要多加几层吗?

事后诸葛亮总是要容易许多,可是当时还没发明BP机制,多层神经网络是极难训练的,哪怕到现在,多层神经网络仍然要面对“梯度弥散”等的训练难题,神经网络的层数并不是想加多少就能加多少的。

总而言之,今天我们所见到的神经网络模型,是许多不同研究人员你一点我一点用了各种数学方法凑出来的,说官方一点,是集体智慧的结晶,而不是我想象中的,是生物学神经网络简化版的仿生产物。

现在介绍神经网络的教材一般都会附上一张生物学神经细胞的结构图,上面标了树突、轴突之类的生物学术语,我不好说这是一种有意无意的误导,不过按图索骥的话,你会在很多神经网络完全没有瓜葛的地方,找到类似的结构。

那么,对于“神经网络怎样模拟人的思考”这个问题,且不说现在就连人的神经网络是怎样完成思考的,科学家们也仍然是一头雾水,既然两种神经网络只在名字上有交集,那模拟人的思考自然就更无从谈起了。

知道答案以后我很惭愧,这个问题怎么看怎么中二,怎么我会纠结了这么许久。我没想到,这次的常见问题集,大家关心最多的居然也是这个问题。我很惊讶,想起曾经思考过一个问题,同样也很中二:机器学习中的“学习”究竟是学什么?

我不知道有多少人真的去想过这个问题,又有多少人真的去找过这个问题的答案。反正,我是真的去找过的。结果如何呢?不知道是这个问题太简单,还是太难,我翻过很多名字带有“机器学习”的书,书上告诉我什么是经验风险最小化、什么是PAC学习理论、什么是奥卡姆剃刀原则,告诉了我很多很多我都不知道我不知道的知识,就是没告诉我,机器学习的“学习”究竟是学什么。

这让我很不安。我觉得,我学一门学科,如果我连学科的名字都没搞明白,我怎么敢说我学懂了这门课?这就好比学编译原理,学到最后光记得一大串逆波兰式,却居然答不上来“编译”究竟是什么意思,那怎么敢说学懂了编译原理呢?

所以,轮到我写书了,我在我的那本《机器学习算法的数学解析与Python实现》,第一章就赶紧先写了机器学习的“学习”究竟是个什么东西。当然为了照顾不同背景的同学,书里我举了很形象的例子,写了很多内容,其实归纳起来就三个字,估参数。在神经网络模型里,就是调节权值。

神经网络的原理是拟合曲线,那具体怎样拟合曲线呢?就是通过调节权值。

别看上面就短短一句话呀,我敢说这应该是你能看到的对神经网络最简单直接的概括,借用现在电话推销很爱说的一句话,简直是“看到就是赚到”。

我知道现在机器学习的推荐书籍列表越来越长了,加入了很多数学教材,不过,就算你把列表从头到尾翻个遍,也不一定能找到这么简单直接的回答。

机器学习,尤其是机器学习中的深度学习,有一个很重要的环节,应该也是最耗时间、最烧机器的环节,叫训练模型,业内戏称炼丹。训练模型很重要,那主要是在干什么呢?就是调节权值,拿来一个一个的权值挨个试,找到最合适的那个,也就是前面那句文绉绉的“经验风险最小化”,不干别的就干这个。

你肯定会摇摇头,说,这方法行不通,就算大家都肯简单粗暴,也没办法把权值真的一个个枚举出来。确实是这样,我们把模型训练过程看成是“找到”最优的权值,也就是一个搜索的过程,那这个搜索空间是近乎无限的。

所以,实际上神经网络使用的是一套以BP为基础的权值更新机制,称为优化算法,知名度最高的就是梯度下降算法,来决定接下来试哪个权值,当然,课本里总是要起个看起来更专业的词的,叫“迭代优化”,不过意思就是这个的意思。

一般介绍神经网络,讲到这里就差不多了,可是你仔细想一想,是不是总还觉得漏了点什么?对,为什么说“纸上得来终觉浅”,因为当你真的去使用,你就会发现一个很严重的问题:我知道权值怎么更新,那,总得还有个初始值才能开始吧?简单得离奇,通常有两种选择,一种是都设置为0,一种更为常用,设置成随机初始值。

很简单对不对,是不是一看就会?可是,这就是为什么很多同学会问,我看完了教材,感觉也学懂了,为什么真的要用了却总感觉对不上。

写书当然是要突出重点,可是到了应用技术,一条“一看就会”的小褶皱,到了新手这里没准就成了难倒英雄汉的大河。所以,我在《机器学习算法的数学解析与Python实现》里,最终还是选择了把很多“一看就会”的细节,做了喋喋不休的讲解。

讲完了吗?还没讲完,前面不经意地点了几次“BP”,用不知道啥意思的英文缩写是不是看着就觉得很高深?可是,我是极反对这么做的,要么就讲清楚,要么就别说。

BP是神经网络很重要的机制,叫反向传播(Back-Propagation),要说清楚原理比较麻烦,需要介绍什么是求导什么是梯度。不过,BP的作用很简单,前面我们不是说权值要挨个试吗,那怎么决定下一个是哪一个呢?神经网络的做法是利用误差计算得到。

可是,神经网络有这么多层,最后一层输出了才好计算误差,其它几层怎么算呢,就用这个BP机制,所以,BP机制通常也叫误差反向传播, 通过求偏导得到其它层该分摊的误差值。

BP机制很重要,但也是个很重要的槽点。毕竟,“神经网络”这名字总让人感觉是仿生学的产物,那么,免不了有人就吐槽了,人的神经网络真的知道该怎么求导吗?别笑,吐槽的这位还不是随随便便的路人,是研究神经网络的资深大牛Geoffrey Hinton。

连他都不相信:人都学不太会的求导,人的神经网络居然天生就会?当然,资深大牛总是要多走一步的,现在Hinton的主要研究方向就是还有什么其它机制能取代BP。不过,大家也别急着去赶新潮,就目前来看,BP仍然是现有机制中最适合神经网络的训练方法,这也是Hinton团队新近的研究结果。

不过,甩不掉BP,机器学习的神经网络和生物学的神经网络,就只能渐行渐远了。有同学问了一个有意思的问题,说如果神经网络没法模拟人脑,那模拟蚂蚁脑行不行呢?

意思我知道,神经网络能力不行,那能不能换个低配版的大脑模拟试试?我认为不行,这可能不是高配低配的问题,而根本就是两码子事。就好比圆珠笔最开始叫“原子笔”,你说模拟不了“小男孩”,那模拟个二踢腿行不行?自然也是不行的。

前面对神经网络做了简单的介绍,很多细节,特别是涉及到数学的部分,都没来得及展开。当然,内容很丰富,也不是一篇文章就能了解的,我的那本《机器学习算法的数学解析与Python实现》专门有一章介绍神经网络算法,如果看了还不够味,再推荐一本书,《神经网络设计》,这是一本神经网络的专著,专门讲神经网络各个部分所涉及的数学知识,就连反向传播都专设了一章重点介绍,同时还聊了神经网络的前世今生,满足你熊熊燃烧的八卦之魂,写作本文时就参阅了不少这部分内容。这本书还有一个有意思的地方:线性代数的部分写得很好,推荐阅读。

下次再聊。

作者莫凡,娱乐向机器学习解说选手,《机器学习算法的数学解析与Python实现》作者,前沿技术发展观潮者,擅长高冷技术白菜化解说,微信公众号“睡前机器学习”。

《机器学习算法的数学解析与Python实现》,入门机器学习的第一本书。从生活案例中理解算法,发现算法的乐趣,再把算法应用到机器学习中,让你零基础掌握算法精髓,快速进入人工智能开发领域。

点击链接了解详情并购买

更多精彩回顾

 书单 | 5月书讯 | 华章IT图书上新啦!重磅新书在线投喂...

干货 | 73页PPT,教你从0到1构建用户画像系统(附下载)
榜单 | 423世界读书日 | 华章精品IT书单独家推荐

收藏 | 这10本书助你从容应对数字化转型中可能出现的各种挑战

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值