Neural Networks for Machine Learning by Geoffrey Hinton (3)
训练感知机的方法并不能用以训练隐含层
- 训练感知机的方式是每次直接修正权重,最终得到满足所有凸锥里的权重。可行解的平均一定还是可行解。
- 对多层神经网络而言,2个可行解的平均并不一定是可行解。
They should never have been called multi-layer perceptrons.
为何不解析求解神经网络?
- 我们希望了解神经网络具体工作方式。
- 我们需要能够扩展到深层神经网络的方法。
online delta-rule 与 感知机 learning rule 的区别与联系
- 感知机 learning rule 中,我们通过输入向量直接改变权重向量。
然而我们只能在出现错误时才能够调整权重。
- online delta-rule 中,权重的修正量还带有残差和学习率作为系数。
Δwi=?ε?E?wi=∑nεxni(tn?yn)
错误面(Error Surface)
对于线性神经元、平方误差时,错误面是一个抛物面。
- 错误面的纵切面是抛物线。
- 错误面的横切面是椭圆。
在线(Online)学习与批(Batch)学习
- 在线学习权重在走之字形路线,如图1。
- 批学习权重路线要平缓得多,如图2。
为何学习过程会这么慢?
在权重空间某2个维度具有一定的相关性时,错误面会被拉长,其横剖面就变成了一个长椭圆,如图3。
与我们希望刚好相反,如图的红色向量在短轴方向有巨大分量,而在长轴方向分量却很小。
为什么对于多层神经网络直接学习权重是不可行的?
- 如果每次只训练某一个权重,那么唯一的修正信号就是错误。这样每次修正都要把整个网络正向计算一遍。效率太低。
- 如果每次训练调整所有权重,那么有相当大的可能会使最终的输出更糟糕。
反向传播的背后思路
- 我们并不知道隐含层神经元的值,但是我们知道当调整隐含神经元时错误改变的快慢。
- 每次可以修正所有的隐含层神经元,如图4。
?E?zj=dyjdzj?E?yj=yj(1?yj)?E?yj
?E?yi=∑jdzjdyi?E?zj=∑jwij?E?zj
?E?wij=?zj?wij?E?zj=yi?E?zj
将错误率导数转化为学习过程
- 优化问题
如何利用各个输入样本对应的导数来求得一个良好的权重。
- Online: after each training case.
- Full batch: after a full sweep through the training data.
- Mini-batch: after a small sample of training cases.
- 普适性问题
如何保证学习到得权重对于网络没见过的样本也能起作用。
- Weight-decay
- Weight-sharing
- Early stopping
- Model averaging
- Bayesian fitting of neural nets
- Dropout
- Generative pre-training
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-13 13:34:14