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
相关文章推荐
- nginx负载均衡
- vi编辑器 编辑模式及命令模式常用命令
- 电路中最优数据通路截取求解
- 转:轻松搞定面试中的红黑树问题
- android studio安装配置问题和安装genymotion及UI无法预览问题解决
- 我的iOS高效编程秘诀—坚持编程习惯
- HDOJ 5399 Too Simple
- 掌握业务领域知识
- logback logback.xml 常用配置详解
- 257 Binary Tree Paths
- Windows 安装Qt+VS2010/MinGW
- php学习笔记1
- 九度oj 1089
- 从CCObject看Cocos2d-x的拷贝机制
- Oracle共享池
- 软件测试常见概念
- MD5加密 及获得密码盐
- Spring AOP-后置通知
- hdu 4517 floyd+记忆化搜索
- BeautifulSoup的高级应用 之 contents children descendants string strings stripped_strings