1.w的取值(trade off):
- 正则角度,w取小更好;学习角度,w取大一些
- 方差σ越大,w的取值范围越大;方差σ越小,w的取值范围越小
- 非常好的w初始化(默认值):d=±(σ^½)/(M+N)^½
(x oc M,M越大,x很快到达饱和区间;w oc σ;σ oc 1/M方差越大数值趋于平缓,每层神经元越多,x变化越平缓;σ oc 1/N,每上一层神经元越多,x变化越平缓 )
2. 神经元权重W的初始化,不仅跟自身有关,也和宏观有关;跟本神经元所在层神经元总数有关,跟本神经元上一层神经元总数有关
3.分类器之间越独立,集成效果越好
4.同时为了简单,牺牲独立性,让同一层参数一样,N1+N2=N,这种集成思想,会有非常多的好处
- 对于任何一个神经网络,都可以看成若干小神经网络的集成
- 对于大神经网络,去掉某些神经元,对应于一个子神经网络;这些子神经网络,通过集成,变成大神经网络
- 用集成的角度来看神经网络,虽然牺牲了子神经网络之间的独立性,但是通过子神经网络的数量进行了弥补
5. Dropout在每次训练的时候,随机的忽略一定数量的神经元(往往以概率的方法),可以产生集成学习的效果,剩下的神经元类比与一个分类器,子分类器的数量可以理解成海量。训练的时候,随机抛弃,相当于训练子分类器;预测的时候 ,所有神经元都在用,相当于集成
6.总N网络选取M个:(1)参与训练的子网络,只被训练一次(2)大量的子网络都没有被训练过
7.Dropout因为子神经网络之间独立性很差,相关性很强,因此,训练一个子网络的时候,其实其他网络也在被训练,以下从三个角度看待dropout
- 集成学习,本身希望子网络独立,但是面对海量子网络,根本没法训练但通过dropout这种方式,产生的子网络,虽然独立性很差,但是在训练上获得了提升
- 也是低成本提升泛化能力的方法,挡住一部分特征,预测还能不影响结果
- 随机L1正则,相比较于使w趋向于0
8.Dropout比例对效果的影响,要保证神经网络的相通
- p对子网络的数量,相当于一个排列组合的函数,先增后减
- p对子网络的独立性,p越大,独立性越强
9.P总结:神经网络的工程性>科学性
- 从子网络的数量来看,p=0.5时,子网络数量越多
- 从子网络的独立性来看,p越大越独立
- p大,意味着每个子网络神经元数量太少,分类能力太差
10.L相对W的平面:地形异常复杂,原因1是W多,原因2是W之间相互影响
11.鞍点:导数dL/dw=0,一个方向为极小值(二阶导>0),另一个方向为极大值(二阶导<0),二阶导在各个方向符号不一致,鞍点对应的L往往不是最小的
12.导数为0的点:a极小值,所有方向二阶导数都>0 b极大值,所有方向的二阶导数都<0 c鞍点,符号不一致(大多数情况是这样的)
13.在每一维中,二阶导大于0的概率为p,小于0的为1-p,这一点是鞍点的概率是多少?
P(鞍点)=1 - P(极大)- P(极小)
=1 - p^n - (1-p)^n(当n越大时,鞍点的概率趋近于1)
14.深度学习中,很难碰到最小值,一般来说损失函数下降到能接受的范围即可,不需要一定找到最小值,找到其他极小值也算优化完成
15.稳定点:小扰动,能够自己回到原始状态 非稳定点:意味着很容易跳出
16.鞍点问题:通过SGD来解决,进行小的扰动,逃离鞍点,继续学习下去
17.悬崖问题:min(10,dL/dw),截断悬崖,使梯度减缓下来
18.峡谷问题:梯度下降时,梯度量级不一致(根本原因),导致下降一边较快,一边较慢;震荡的方向速度慢,不振荡的方向速度快
19. 动量法:解决震荡问题
- Vt=αVt-1 - εg(g是梯度)
- θt1 + =θt- 1 +V (θ=(w1,w2,……,wn)
- 动量法+SGD:改良的梯度下降法
20.Ada grad:本质上就是做数值归一化,解决各个方向导数数值量级不一致
- rt+1=rt+g●g (r记录梯度各维度量级,g为梯度)
- r记录各个维度的数值量级,学习的梯度---->真实梯度/ r开根号
21.RMSProp:刚开始的时候,r和V都存在被低估的情况
- rt+1=ρ*rt+(1-ρ)*g●g(r记录梯度各维度量级,g为梯度)
- Vt=αVt-1 - ε/r开根号 ●g(g是梯度)
- θt1 + =θt- 1 +V
- 动量法+RMSProp
22.Adam:开始用权重计算梯度,更加精确控制w变化
- 动量:s=ρ1*s+(1-ρ1)●g
- 衰弱:r=ρ2*r+(1-ρ2)g●g
- 计算s=s/(1-ρ1^t);计算r=r/(1-ρ2^t)
- θt1 + =θt- 1 +α*计算s/计算r
23.这些方法本质上还是梯度下降法,只不过在更新w的时候,用了一些数学技巧进行改良,防止一些数值问题的发生
24.证明:当损失函数L存在极小值的时候,必然是多个数值相等的极小值
- w1,w2……wn按照比例,得到的L值相等
- 神经网络互换一下
25.理论上存在最小值,最小值也不止一个,实际中,未必找到最小值,只要Loss符合预期即可,优化方法,都是为了相对快速的让Loss变小,本质仍然是梯度下降法,只不过数值进行了优化
深度学习DNN总结:
1.一期课程学习目标:
- 小白 转行 能找工作
- Ai入门
- 具备一定的自学能力
2.后面的课重点:
- 一期知识部分补录
- 前沿动态
- 项目更新(1期项目的深入+新项目)
- 根据市场需求,面试指导
3. Ai未来就业方向
4.激活函数的选择:解决梯度消失,各种激活函数sigmoid,tanh,relu(√);非线性函数有个一滴血原则,只要有一个点是非线性,整个函数都是非线性;同时函数输出至少有一个神经元落在非线性区域才能发挥非线性函数的作用
5.DNN随机初始化权重,去破坏平衡;用梯度下降法去调整w,梯度下降的一些修改:(1)加动量(2)幅度量级 归一(3)鞍点问题 SGD (4)悬崖问题 梯度截断
6.Dropout:从传统学习中的集成学习而来,在训练过程中,对神经网络随机的抛弃神经元,达到多分类器集成的效果