1、noise.bernoulli_(1-p);noise.div_(1-p);return multiply<inplace>(input,noise)
,dropout的pytorch源码,首先生成伯努利分布以(1-p)的概率返回1,否则返回0,p是dropout的概率,使用div_这个原位操作算法来做除法
算法会取一个小批次,输入的是激活值用x1、x2表示,第一步是找到这些激活值的均值,第二步找到激活值的方差,第三步是激活值减去均值再除于标准差,最后一步把这些值加上一个偏置向量ℬ,γ和ℬ是可习得的参数,记住神经网络中只有两种数值-激活值和参数
3、 image.png尝试预测电影评论结果,预测结果在1到5之间,训练模型,最终的激活值在-1到1之间,这些激活值与实际相差甚远
image.png 在y函数加两个参数向量,可以直接的升降或缩放,这就是批归一化的功能使输出提升或下降、放大或缩小,fastai中使用的另一种主要的归一化类型是权重归一化 4、 image.png
为每个连续变量创建一个批归一化层,n_cont是连续变量的个数
5、使用dropout和其他正则化误差方法(如权重衰减、L2归一化)的比例是多少?
答:L2正则化和权重衰减是异曲同工的,总是用权重衰减而非L2正则化,几乎总会用到批归一化
卷积另一种解释
一个卷积的输出叫做一个通道,所以可以用一个通道找到顶边,另一个通道找到左边,然后,下一层则可以将这两个通道整合成输入数据,从中提炼出具备识别左上角边沿的能力
网友评论