1.神经网络的优化?
1.1 为什么要优化?
效率不高,学习效果差
1)解决:
训练数据 70%,测试数据 30%
评测标准:
分类:Accuracy
回归:R2 score
不均衡样本: F1 score
过拟合:模型在训练集上表现不错,但是在测试集上泛化能力不足
欠拟合:模型学习不够充分,模型效果差
2) 为什么要特征标准化?
加快模型的学习,减少模型学习过程中的梯度震荡
常见的标准化方式:
min-max normalization: 将所有特征的取值浓缩到(-1,1)/ (0,1)之间
std normalization: 将特征处理成(mean=0, std =1) 的样子
3)筛选好的特征:
筛选好的特征?
什么是好的特征?
对结果的判定起到的较大的决定因素(不确定性的减少,熵的减少)
1.避免重复信息
2. 避免复杂的信息
3.避免无意义的信息
好的特征是好的模型前提之一
4)激励函数:
提升模型的学习能力,解决非线性问题
5)过拟合问题:
1. 加上正则项:将学到的权重当做惩罚项的一部分加入loss的计算中
2. dropout的加入:使得 网咯能够充分的学习数据,而不是陷入局部的学习依赖。
6)加速学习的方法:
加速计算:
SGD: 其实 一般使用的是min-batch SGD(而不是单样本的 SGD)
W += lr *dx
Momentum: 加一个动量
AdaGrad:学习率动手脚
RMSProp: 惯性原则+ 学习率的作用
7)不均衡样本:
样本不均衡的解决:
解决:
1.获取跟多的数据
2.换掉模型的评测标准(加大小样本的权重等)
3.重组数据:(复制,合成小样本(上采样),下采样)
4.使用其他的模型:(决策树)
5.修改算法:(例如修改simoid 的 阈值,使得结果落在(0,1)之间的的比例改变,趋于平衡)
8)batch normalization:
类似 group normalization, instance normalization, layer normalization 。。
权重标准化:
特征标准化:
作用于使用激活函数之前
使得激活后的值能够有效的传递到下一个网络层。
9)正则化项:
L1: 在计算loss 时加上权重参数的绝对值之和
可以用于筛选特征
L2: 在计算loss时加上权重参数的平方和