您的位置:首页 > 其它

Neural Networks for Machine Learning by Geoffrey Hinton (3)

2015-08-19 13:37 309 查看

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: