深度学习 网络训练技巧

网络训练技巧:

1.数据增强:缩放、随机位置截取、翻卷、随机旋转、亮度、对比度、颜色变化等方法。

2.学习率衰减:随着训练的进行不断的减小学习率。
例如:一开始学习率0.01,在10000步后降为0.001。
用法:lr = tf.cond(tf.less(step, 10000), lambda: 0.1, lambda: 0.01)

3.dropout:一般用在全连接层。
用法:tf.nn.dropout

4.正则化:有L1和L2正则化,较多的是L2正则化,引入正则化相当于在loss函数上面加上一项。
ps:就是在loss的基础上加上了参数的二范数作为一个正则化,我们在训练网络的时候,不仅要最小化 loss 函数,同
时还要最小化参数的二范数,也就是说我们会对参数做一些限制,不让它变得太大。
用法:l2=slim.regularizers.l2_regularizer(weight_decay=0.0001))

5.批标准化:对于每一层网络的的输出,对其做一个归一化,使其服从标准的正态分布,这样后一层网络的输入也是一个标准的正态分布,所以能够比较好的进行训练,加快收敛速度。

过拟合:以上五点。
欠拟合:进行充分训练、增加模型的复杂度。


网络特点:
VGG:不断堆叠卷积和池化,基本是3*3的卷积核。
ps:两个3*3的卷积核作用等效于一个5*5的卷积核,但是参数却少了大概一半,因此选择用3*3的。

googlenet:采用了inception模块,四个并行卷积层,然后再拼接起来。
ps:第一个直接卷积提取特征、第二第三个先用1*1卷积降低特征通道,再进行卷积、第四个先池化改变输入特征序列再提取特征。

ResNet:跨层求和。
ps:跨层传递梯度,较少了传递的深度,避免出现梯度退化的情况。

DenseNet:跨层将特征在通道维度进行拼接。
ps:前面每一层的参数,都会传递到当前层,保证了梯度更好的传播,也使得能够用低维和高维的特征同时训练,得到更好的结果。

区别与联系:
1.googlenet不同于其他三个网络,它是使用了并行卷积的方法,四个卷积同时进行;
2.ResNet是跨层传播,DenseNet是每一层都传递过来;
3.四个网络,每一个的深度都在增加,对应了深度学习的原意——网络越深,学到的特征越多。
4.每个网络都是卷积+池化的组合去提取特征。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值