突发奇想,想把模型中要用到的参数,模型,优化的一些选择系统的做一个简单总结
本文中的图片引用自:邱锡鹏,神经网络与深度学习,机械工业出版社,https://nndl.github.io/, 2020.
Model(模型)
模型就是你的模型(听君一席话如听一席话
Optimizer(优化器,或者说优化算法)
优化器一般选择集各家所长的Adam
Loss Function(学习准则,损失函数)
损失函数就是你的模型需要优化的函数,根据不同任务选择不同的损失函数
回归问题常用平方损失
分类问题一般使用交叉熵损失函数,因为它可以用来衡量两个分布的差异
Hinge损失
Activation Function(激活函数)
一般情况首选ReLu激活函数
零中心化的Tanh函数:
Normalization(标准化,数据预处理)
一般有最大最小归一化,BN,LN
假设每一行为输入变量x的每个特征,一个工有n行,代表批量大小为n,有m列,代表有m个特征
在nlp中就是有很多个长度不一的句子,BN相当于对每一列做归一化,LN相当于对每一行,也就是每个句子自己的所有词做归一化,而因为句子长度不易,BN的效果并不好,所以常用LN
Regularization(正则化)
L1,L2,权重衰减,提前停止,dropout,数据增强,标签平滑
Initialization(参数初始化)
NLP中现在主流方法是使用预训练初始化(词向量,bert)
基于方差缩放的参数初始化
Evaluating Metric(评价指标)
常见的几个评价指标:
- ‘accuracy’,
- ‘bleu’,
- ‘f1’,
- ‘glue’,
- ‘precision’,
- ‘recall’,
batch_size(批量大小)
batch size别太小,也别太大,其他都行
epochs(训练轮数)
一般训练到dev set的损失不再下降即可
learning_rate(学习率)
数据预处理
针对不同的任务有不同的方法