赞
踩
突发奇想,想把模型中要用到的参数,模型,优化的一些选择系统的做一个简单总结
本文中的图片引用自:邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.
模型就是你的模型(听君一席话如听一席话
优化器一般选择集各家所长的Adam
损失函数就是你的模型需要优化的函数,根据不同任务选择不同的损失函数
回归问题常用平方损失
分类问题一般使用交叉熵损失函数,因为它可以用来衡量两个分布的差异
Hinge损失
一般情况首选ReLu激活函数
零中心化的Tanh函数:
一般有最大最小归一化,BN,LN
假设每一行为输入变量x的每个特征,一个工有n行,代表批量大小为n,有m列,代表有m个特征
在nlp中就是有很多个长度不一的句子,BN相当于对每一列做归一化,LN相当于对每一行,也就是每个句子自己的所有词做归一化,而因为句子长度不易,BN的效果并不好,所以常用LN
L1,L2,权重衰减,提前停止,dropout,数据增强,标签平滑
NLP中现在主流方法是使用预训练初始化(词向量,bert)
基于方差缩放的参数初始化
常见的几个评价指标:
batch size别太小,也别太大,其他都行
一般训练到dev set的损失不再下降即可
一个简单的办法Leslie N. Smith 在2015年的一篇论文“Cyclical Learning Rates forTraining Neural
Networks”中的3.3节描述了一个非常棒的方法来找初始学习率,同时推荐大家去看看这篇论文,有一些非常启发性的学习率设置想法。这个方法在论文中是用来估计网络允许的最小学习率和最大学习率,我们也可以用来找我们的最优初始学习率,方法非常简单。首先我们设置一个非常小的初始学习率,比如1e-5,然后在每个batch之后都更新网络,同时增加学习率,统计每个batch计算出的loss。最后我们可以描绘出学习的变化曲线和loss的变化曲线,从中就能够发现最好的学习率。作者:Sherlock
链接:https://zhuanlan.zhihu.com/p/31424275
来源:知乎
针对不同的任务有不同的方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。