《深度学习》碎碎念
《深度学习》这本书提到了人工智能发展历史上经历的的三次寒冬,帮助走出寒冬的对应了三个方面的突破:
1、模型结构:神经网络的原型——感知机的出现。
2、训练算法:训练*多层*感知机的方法突破——玻尔兹曼机&误差反向传播算法。
3、计算能力:硬件的提升,让我们能够训练更大的神经网络模型。
其中,“训练”是一个很抢眼的关键词。
对人脑来说,“训练”相当于一个“学习”的过程;而“学习”就是不断输入外界信息,使得原有大脑神经元的连接被修改的过程。
人工神经网络的训练也是这样,只是在计算机里,神经元之间的连接*强度*被抽象成了一个个*数值权重*。
可是,怎么利用输入的信息来修改这些权重呢?你怎么知道朝哪个方向调整这些数字是对的?
好问题!
——这里的“方向”和“对的”,就是训练一个AI的关键。
1)解决什么是“对的”,你需要一个目标函数(奖赏/损失/代价函数),它决定了AI努力的方向。
比如一个学生的目标函数往往是考试分数,销售的目标函数往往是业绩指标;再广泛地说,每个人的梦想就是他的目标函数……
AI的目标函数,可以是分类的准确度(最大化),股票价格估计的误差(最小化)。
有了目标函数,AI 就知道了什么是“对的”。剩下要做的,就是想尽各种方法调整连接权重,让目标函数最大化/最小化。
2)找准“方向”,并一步步前进,就是优化一个目标函数的过程。
最常用的类比就是“爬山”。
想象一个蒙着眼睛的人要到达山峰,他会怎么做?
虽然看不见路,但总可以试探一下周围地势,找出一个最陡峭的上升方向。
然后前进,试探,再前进,试探……
不断循环之下,当他到达一个相对平坦的地方,发现周围的地势都比自己所处的位置更低,那么他知道自己到达了一个山峰——尽管可能不是最高的那个。
AI也是这样,不过在数学上,“试探地形”就是对目标函数求梯度(导数);所谓调整神经元连接权重,就是在某个上升(或下降)方向前进的过程。
原本一个个抽象而泛泛的学习问题,下围棋、区分猫和狗、人脸识别、智能翻译……它们看似八竿子打不着,但是被科学家不断分解拆碎,最终都变成了一个数学上的优化问题。