Hinton Neural Networks课程笔记3a:线性神经元的学习算法

这节其实是在为反向传播(BP)算法铺路,解释了delta rule(chain rule),然后举了个简单的例子,并做了一些评价。


回顾感知机的部分,其学习算法简单快速,在数据集线性可分的情况下保证收敛。回顾感知机的学习算法,因为是Binary Threshold的激活函数,构建权重空间之后,每一个数据点对应于权重空间的一个超平面,该超平面对能够正确分类该数据点的权重空间做了限制;满足所有数据点限制的权重空间即为合法权重空间(一个空间连续的锥体)(详情参看Hinton Neural Networks课程笔记2c:感知机的几何解释);感知机的学习算法实际上是使得权重向合法权重空间内的某一固定部分(general feasible)靠拢(详情请参看Hinton Neural Networks课程笔记2d:为什么感知机的学习算法可以收敛)。
感知机算法中合法权重空间是连续的,所以求解也就是个凸问题(两个合法权重的均值仍然是合法权重)。而很多问题并非是凸问题,这就使得感知机算法难以应用。(笔者注:即便仅仅是线性分类问题,感知机算法仅仅满足于正确分类这一限制,忽略了结果的泛化能力等等,需要训练集以及特征选取的专业与精心才可能达到较好的效果)

1. 线性神经元与误差平方和

注意到感知机算法实际上是使得权重向合法权重空间靠拢,而此处的算法实际是使得输出结果向目标结果靠拢。这里面涉及两个问题:如何输出结果、如何评价差异。最简单的例子就是线性输出+误差平方和。
线性神经元的输出就是输入与权重的内积(加权和),而输出和目标值之间的差异用所有数据点的差异平方和衡量,如下图:
linear neurons

2. 学习算法

注意到最小化线性神经元的误差平方和是有解析解的,即可以通过一个公式简单快速准确的计算出来;但Hinton实际想要使用这个简单的例子来引入反向传播,所以必然不需要介绍解析解的部分。

2.1. 一个简单的例子

输入是买东西的分量,输出是总价钱,求每个东西的单价。
example
先把问题抽象化,总价格是分量和单价的加权和,可以用一个线性神经元计算。分量为神经元输入,而单价为神经元权重。那学习算法就是先随便猜一个,然后根据在训练集的输出和目标值的差异,不断对其进行修正。
symbol

2.2. delta rule (chain rule)

算法要求根据输出与目标值的差异,对权重进行修正;而如何进行修正则是delta rule负责的部分。首先抽象化损失,然后求取损失对权重的偏导,最后将移动权重的量设为偏导和学习率的乘积,具体如下图:
delta rule
(笔者注:delta rule实际上就是求误差对权重的偏导,其可以看做对权重改变单位值之后,期待误差会因此产生的改变量。学过数分的应该很容易理解,为了最小化函数值,使得自变量向导数反方向移动,而移动的量则是不同优化算法根据目标做的优缺点取舍)

2.3. 继续解例子

设真值如下,三个物品的单价分别为150、50、100。根据真值权重,构建了一个数据点-目标值对:(2, 5, 3)->850。用这个数据点-目标值对训练权重。
true label
假设初始猜测的单价均为50,那么输出值为500,与目标值差了350,应用delta rule,并设学习率 ϵ 135 ,得到权重变化量为20、50、30,使得权重最终被调整为70、100、80。
solution
注意到这只是使用一个数据点进行的权重调整(一个数据点本身使得权重具有无穷解),当数据集越来越大,且分布均匀合理的时候,则可以期待学习到与真值接近的权重。

3. 学习算法评估

3.1. 是否会得到正确解

正确的定义很难确定,Hinton认为可能没有perfect answer。(笔者注:基于给定的数据集,学习一个超平面对数据空间进行切分,可以有很多超平面能够较好的完成任务;但如何评价超平面的好坏从而从中选取一个最优解,这需要根据具体的情况设定。例如感知机只需要能够将训练集内的数据点正确分类即可,而上诉的误差平方和则希望所有数据点的输出值和目标值之间的误差尽量小。当训练集无限大的时候,可以预期任何评价函数都可能学习到一个足够接近正确解的解;但当训练集有限的时候,就需要一个好的评价函数、优化算法。)一旦定好一个评价标准,进而可以定义best answer(权重空间内损失函数函数的全局最小值)

3.2. 是否能够学习到最优解

这里面的最优解即为best answer,损失函数在权重空间的全局最小值。对于线性神经元,只要我们设的学习率足够小,即可学到最优解。(这个最优解可能有多个)

3.3. 学习的速度怎么样

(笔者注:首先学习的速度是和学习率有关的,而学习率设的过大,会使得最终不收敛到最优解,所以需要两者做trade-off)
学习的速度还取决于训练集的质量,如果输入的两个部分高度耦合,那么学习算法需要花大力气对两者进行区分。例如上诉例子中如果chips和ketchup的分量在训练集中永远是一样的,那么学习算法是无法将其区分开来的;如果分量总是几乎一样,学习算法也很难决定两者的价格。
quickly

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值