深度学习(一)

算法的优化

任何网络要想达到极好的效果都不是一簇而就的,需要一个迭代的过程,不断的调整参数,如果初始参数能够设置的很好,无疑能够极大的缩短这个过程。

数据集

对于数据集,大体可分为三类:训练集,交叉验证集,测试集
1、在机器学习时代,三者的比例为6:2:2,但随着数据的爆炸式的增长,训练集的比例占的越来越大,而其余两者只需要很少的数据进行验证即可。
2、当测试集跟训练集不匹配时,一个原则是验证集与测试集服从相同的分布,这样算法达到最优的速度最快

误差

高偏差:对训练集拟合较差
高方差:对训练集拟合较好,但对测试集拟合较差
1、如果偏差较高,我们要么采用规模更大的网络,要么延长训练时间,或者选择其他的网络结构,如果偏差降下来了,方差过高,此时可以尝试更多的数据,或者进行正则化,或者找到更合适的网络结构
2、以逻辑回归为例,通常正则化使用L2范数,即 λ2m||w||2 λ 2 m | | w | | 2 ,使用L1范数可以增加参数的稀疏程度
3、dropout:遍历结点,随机删除一些结点,之后训练网络,这样网络变得精简,训练也会消除过拟合,目前最有效的dropout算法是反向dropout算法,在去除一些结点后,激活值再除以这个保留概率。
4、另外几种正则化的方法:数据集扩增(通过翻转,变形等)、early stop(实质是过早的停止优化代价函数,这样就不会出现过拟合)

加速训练

1、归一化输入: xμσ2 x − μ σ 2

梯度消失与梯度爆炸

梯度的计算遵循链式法则,如果前一层梯度变化过小,神经网络的深度如果过深,就会出现梯度消失,如果前一层梯度变化过大,就会出现指数级的增长,即梯度爆炸
解决的办法是对初始权证的调整:将每个神经元的权重向量按下面的方法进行初始化:w=np.random.randn(shape)/sqrt(1/n)

利用梯度检验来检验反向传播

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值