机器学习——基础概念二:神经网络技巧

神经网络技巧

神经网络的检验

训练数据:70%
检验数据:30%
这就像平时大量做作业,平时分并不多;考试做题只是少数,但却是占分最重的。对神经网络的基本评价基本上是基于这30%的测试数据。

看一下检验神经网络时参考的曲线:
误差曲线:如果理想的话,刚开始训练误差率降的很快,随后提升的空间减小,曲线也趋于水平。
机器学习——基础概念二:神经网络技巧
精确度曲线:最好的精确度是趋近于100%精确。怎样看预测值是连续数字的精确度?可以引用R2分数在测量回归问题的精度;也可以用F1分数,用于测量不均衡数据的精度。
机器学习——基础概念二:神经网络技巧
过拟合:我们的学习模型平时的作业做的很好,但考试的时候却考的一团糟。这是为什么呢?神经网络对平时作业过于依赖,考试的时候就不能拓展学到的知识。这就是过拟合啦。解决过拟合也有很多方法,比如L1,L2正规化,Dropout方法。
机器学习——基础概念二:神经网络技巧
交叉验证:依然是这个相似的图,纵坐标是误差,但横坐标不是时间而是某一层神经网络的某一参数。逐渐调整这个参数,找到满足误差要求的那个参数就好了。
机器学习——基础概念二:神经网络技巧

特征标准化

或称之数据的正常化、归一化。训练的时候数据跨度不一,参数变化对这些数据的影响力不同,会导致不同类型数据的训练速度不一。

通常用于特征标准化的途径有两种:

  1. MinMax Normalization。将所有特征数据按照比例缩放到0-1这个取值区间,有时候也可以是-1到1的区间。
  2. Standard Deviation Normalization。用均值、方差进行标准化。

选择好特征——Good Feature

  • 避免无意义的信息
    排除掉没有区分能力的信息,用更多有意义的信息来综合判断当作判断依据。
  • 避免重复的信息
    比如描述距离,里和公里虽然是不同的信息,但是对机器学习并没有帮助
  • 避免复杂的信息
    比如描述两个位置的关系,分别有两种信息,经纬度和距离。显然经纬度会更加复杂,不适合描述。

激励函数

Linear,线性方程
Nonlinear,非线性方程
激励函数:用来解决不能用线性方程概括的问题。将线性函数强行“掰弯”,也就是将线性函数作为参数带入到激励函数中。激励函数必须是可微分的,可谓分的激励函数才能将误差反向传递回去。
在少量层结构中,我们可以选择尝试很多种不同的激励函数。
CNN中,推荐relu
RNN中,推荐tanh或者relu。

过拟合:Overfitting

学习模型过于自信,过于依赖训练数据。不能表达训练数据以外的数据。比如这张图片,训练的时候能很准确区分出两者的界限,但是实际操练的时候,由于原有模型过于依赖训练数据,发生了区分失误。
机器学习——基础概念二:神经网络技巧
解决方法:

  1. 增加数据量

  2. 运用正规化:L1,L2…regularization。把W参数自身调整到误差值中,促进让神经网络调小这个值。
    Y=WxL1:cost=(Wxrealy)2+abs(W)L2:cost=(Wxrealy)2+W2L2:cost=(Wxrealy)2+W2L3,L4...... Y=Wx\\ L1: cost = (Wx - real y)^2 + abs(W)\\ L2: cost = (Wx - real y)^2 + W^2\\ L2: cost = (Wx - real y)^2 + W^2\\ L3, L4......

  3. Dropout regularization:训练的时候,随机忽略掉一些神经元和神经连接,让神经网络不完整,用一个不完整的神经网络训练一次。第二次的时候再随机忽略一些,变成另外一个不完整的神经网络。这样的话,神经网络从根本上没有机会过度依赖某些神经元、某些参数。

加速神经网络训练

SGD:Stochastic Gradient Descent。将数据分批交给模型训练,每次训练的数据虽然不能反映整体上数据的特征,但是却提升了训练的速度。
机器学习——基础概念二:神经网络技巧
传统方法是再原始W累加上一个负的学习率乘以校正值:
W+=LearningRatedxW += -LearningRate*dx这种方法会让训练过程曲折无比。


Momentum

W+=b1mLearningRatedxW+=b1*m-LearningRate*dx相当于给模型一个向下的惯性,让它走的更快。


AdaGrad
这种方法是在学习率上动手脚,每一个参数的更新都会有自己与众不同的学习率。v+=dx2W+=LearningRatedx/vv+=dx^2\\ W+=-LearningRate*dx/\sqrt{v}这种方法大概理解为,一旦误差dx变大,那么就强制让W的更新减小。


RMSProp
同时具备上面两种的优势
v=b1v+(1b1)dx2W+=LearningRatedx/vv=b1*v+(1-b1)*dx^2\\ W+=-LearningRate*dx/\sqrt{v}也是dx变大,那么就让W除以一个更大的数。


Adam
m=b1m+(1b1)dxv=b2v+(1b2)dx2W+=LearningRatem/vm=b1*m+(1-b1)*dx\\ v=b2*v+(1-b2)*dx^2\\ W+=-LearningRate*m/\sqrt{v}m有Momentum下坡的属性,v有Adagrad阻力的属性。大多数时候,Adam都能又快又好达成目标,迅速收敛。


处理不均衡数据

一般来说,机器和我们都会猜测比例多的数据。如何获得更高的准确性?

  1. 想办法获取更多数据

  2. 换个评判方式

    普通评判方式都是
    - Accuracy:准确率
    - Cost:误差
    在不均衡数据面前,前两种评判方式没那么重要。
    - Confusion Matrix
    - Precision & Recall
    - F1 Score

  3. 重组数据
    重新组合不均衡数据,使之均衡。

    • 方式1:复制或者合并少数样本,使之和多数部分数量差不多。
    • 方式2: 砍掉一些多数部分,使两者数量相差不多。
  4. 使用其他机器学习方法
    如果使用的机器学习方法,像神经网络等,面对不均衡护具束手无策。不过有些机器学习方法,比如决策树,decision trees就不会受其影响。
    机器学习——基础概念二:神经网络技巧

  5. 修改算法

批标准化——Batch Normalization

具有统一规格的数据更有利于机器的学习。
如果数据范围差过大,就如下图的红色部分,有可能就到达了激励函数的不敏感区域,不利于数据分析。
机器学习——基础概念二:神经网络技巧
进行BN操作,让数据分布于激励函数的有效区间。训练得到的效果也会更好,结果不会是分布于参数的两个极端。
机器学习——基础概念二:神经网络技巧
机器学习——基础概念二:神经网络技巧
BN算法:

Input: Values: B={x1,x2,...xm}B=\{x_1,x_2,...x_m\}.
Parameters to be learnt:γ,β\gamma , \beta
Output:{yi=BNγ,β(xi)}\{y_i = BN_{\gamma, \beta }(x_i)\}

μβ=i=1mxim\mu_\beta = \frac{\sum_{i=1}^{m}x_i}{m}
σ2=1mi=1m(xiμβ)2\sigma^2 = \frac{1}{m}\sum_{i=1}^{m}(x_i-\mu_\beta)^2
xi^=xiμβσ2+ϵ\hat{x_i}=\frac{x_i-\mu_\beta}{\sqrt{\sigma^2+\epsilon}}
yi=γxi^+β=BNγ,β(xi)y_i = \gamma \hat{x_i}+\beta = BN_{\gamma, \beta}(x_i)
看到了概率论中的知识了!在学校的理论课没白学。
公式的最后一行是反向操作,将normalized数据再扩展、平移。让神经网络自己学着使用和修改这个扩展参数γ\gamma和平移参数β\beta

L1/L2正规化

解决过拟合的问题。过拟合,就如同下图中的橙色曲线。希望得到的结果是:a,b,c,d都是待计算的参数,到最后c和d都是0.
机器学习——基础概念二:神经网络技巧
L2正规化:
J(θ)=[yθ(x)y]2+[θ12+θ22+.]误差:J ( \theta ) = \left[ y _ { \theta } ( x ) - y \right] ^ { 2 } + \left[ \theta _ { 1 } ^ { 2 } + \theta _ { 2 } ^ { 2 } + . \right]
L1正规化:
J(θ)=[yθ(x)y]2+[θ1+θ2..]误差:J ( \theta ) = \left[ y _ { \theta } ( x ) - y \right] ^ { 2 } + \left[ \left| \theta _ { 1 } \right| + \left| \theta _ { 2 } \right| . . \right]
这里的θ\theta就相当于上面的abcd这些参数。当当图像出现过拟合的时候,也就是c和d过大,θ3,θ4\theta_3, \theta_4过大了。
下图:假如有两个参数θ1,θ2\theta_1,\theta_2需要学习。蓝色的圆心是误差最小的地方,每条蓝线的误差都是一样的。正规化的方程在黄线上产生的的额外误差,黄线上的误差也是一样。黄线和蓝线上的交点处,两个误差的和最小。
机器学习——基础概念二:神经网络技巧
L1可能只能保留θ1\theta_1的特征,另外就是L1的解并不稳定,就如同上图右侧,黄蓝图像的交点有好多个。
对L1、L2规范化还是有些不明白,后续补上自己的理解。
插个眼:L1L2规范化解释


第一次编辑:2019-05-11 17:19:36