neural networks for machine learning 机器学习ML视频教程英国机器学习宗师级导师Hinton悉心讲解英文带字幕(74课)" s6 p) _1 f! K- D+ V& G5 o
7 x" u) V8 V( K
课程学习心得(转载)
0 \$ n/ ^( b" T如何在神经网络中加入先验知识:就是通过设计网络结构来加入
$ c# @3 o# C' j4 L% d7 S h* P
/ Y8 Z6 v) \8 g- 网络的连接性
6 L2 c) E5 E4 g/ Z4 }* x, h$ {. x - 权重进行约束激活函数的选择
3 I! E6 K& _$ J也可以通过先验,来加入一些人工造的数据Hofman 93年的炼钢炉模型+ v3 M1 X L h8 [) m5 T' S
Mcnemar检测
( }* S; l) F% ^! O4 c* {Dropout用来阻止同一层网络之间的合作作用,这些合作作用在拟合的时候是非常有效的,但是会有可能过拟合,如果用来测试的话,就会发现效果不是那么好
# h2 x1 J/ O, X) |; rslashing across a ravine山涧跳,学习速率选太大的时候,会发生的情况用
$ ?. w {9 i* M7 D& Q/ Jmin_batch算法来做的时候,要保证每个类别的样本尽量均衡 , z1 V4 T+ o3 A4 d) f
共轭梯度法,是用来优化,full batch梯度的计算过程的。
5 _/ [+ D- y/ a; C; }; w动态调整学习速率的方法: y) K6 P, V2 N4 U9 C! L
一开始初始设置一个值,然后当error持续波动或者持续上升的时候,调低学习速率,当其持续下降且下降比较慢的时候,调高学习速率
) X( C3 @) b3 q! o调低学习速率的两个时机: & |* j# B# S; j) z0 }) C: Q
# z$ A+ E+ X2 h& ~/ K2 U$ C8 n6 g
- 如果误差率不再下降的话,判断误差不在下降用独立的valid数据集当一轮批梯度下降进行结束的时候9 ~) J! u( m& Q* C b
权值的初始化要random,因为这是为了打破 symmetry,如果都初始化为同一个值的化,如果输入向量再一样,会导致后续的结果都相同,不能够学习到不同的特征。 ; j! r+ |3 u, C" H9 _
四种加快SGD算法的方法:
% n" {, u" w3 t3 q# _0 y; h' P3 r/ n: A9 l% ]( F3 `
- 动量法momentum
5 h9 D7 Y; D8 u$ f7 j - 对于每个参数采用独立的学习速率
, U8 D5 @; l# Z, W9 G, L5 F - rms prop 【相当于批梯度版的R prop利用曲线本身的信息7 @5 W4 k$ @4 m% w0 R+ l# i
使用动量法的好处:
$ t7 f* a( I5 \0 w' f5 l& U9 ~1 A9 o* B( N/ v& B7 D
- 跟之前相同部分得到加速
, }8 l8 e3 d7 D* T ` - 扰动部分得到阻尼允许我们使用更大的学习速率
7 q; t c9 Y; ]! x RNN难以训练的原因: ( |, ? Q: r" e% Y
当有许多层的的神经网络的时候,会有梯度消失或者梯度爆炸的问题
9 B4 f/ X2 P' C: h P. C$ {因为反向传播的过程中,越靠前的layer,积累了之后所有层的乘积,所以这是一个非常不稳定的状态,尤其是用sigmoid函数的倒数是在(0,0.25)之间的数,所以会越乘越小,如果把权值初始为非常大的数,又会导致越乘越大。 [: c' r- v2 ]$ T6 v
有效训练RNN的方法:
5 g: l+ E; {. S- |
5 s! D' b, [6 v4 T, ]& t- LSTMHessian Free Optimization,用更好优化函数9 T0 Y# c) B7 g$ X- Z
4 t' s1 H8 V# b1 n n# K/ \4 B. K+ ?6 O$ |
: ? a/ R$ D: H% j" J
4 \* Z; Z5 a4 s, A4 e7 L2 x. y8 y, z3 n. `
, D! n9 O% ^1 A: l3 \6 e+ u* G8 }1 E0 |
资源下载地址和密码(百度云盘): [/hide] 百度网盘信息回帖可见' e' s r' O1 [! }- K/ C
* H% A! c! p8 i& r/ p: F
2 H4 _! b1 G1 F& A8 f3 @
$ V5 m4 m" z" l. f: m# V本资源由Java自学网收集整理【www.javazx.com】 |