检验神经网络

  1. 将数据集分成训练集和测试集
  2. 交叉验证:数据集不足时,可使用交叉验证来测试

特征标准化

  1. 解决各特征之间因为量纲不同导致的各特征对结果影响的权重不同的问题
  2. 方法:min-max标准化、标准差标准化等

选择好特征

  1. 好特征:能使得我们更轻易的分辨出相应特征代表的类别的特征

  2. 删除特征的原则

    (1)避免无意义的特征:比如对于两个类别来说,某个特征在两个类别上的数据分布基本一致,代表这个特征并不能对分类有什么帮助,需要删除。
    (2)避免重复性的特征:比如对于距离来讲,“米”和“千米”虽然量纲不同,但描述的是同一个意思,所以可以删除其中一个。
    (3)避免复杂的特征:比如想计算从A到B的时间,知道两个物体的“经纬度”和“距离”都可以计算,但通过经纬度来计算比通过距离来计算要麻烦的多,所以应删除。

激励函数

  1. 使用激励函数使得可以描述非线性问题

  2. 激励函数的选择:

    (1)relu函数
    (2)tanh函数

  3. 卷积神经网络CNN中一般使用relu;循环神经网络RNN中一般使用tanh

过拟合

  1. 对训练集的效果很好,对测试集效果就变得很差

  2. 解决方法:

    (1)增加数据量
    (2)正则化:L1,L2,regularization
    (3)专门用于神经网络的正则化方法:dropout:每次训练随机删除一些神经元

加速神经网络训练

  1. 随机梯度下降:把数据拆分成小批小批的,再分批不断放入神经网络中计算。

  2. Momentum更新方法(惯性)

    原来的更新方法:W += -learing rate * dx
    Momentum更新方法:
    m = b1 * m - learning rate *dx
    W += m

  3. AdaGrad更新方法

    原来的更新方法:W += -learing rate * dx
    AdaGrad更新方法:
    v += (dx)^2
    W += -learning rate * dx / 根号下v

  4. RMSProp更新方法

    原来的更新方法:W += -learing rate * dx
    RMSProp更新方法:
    v = b1 * v - (1-b1) * (dx)^2
    W += -learning rate * dx / 根号下v

  5. Adam更新方法

    原来的更新方法:W += -learing rate * dx
    Adam更新方法:
    m = b1 * m + (1-b1) * dx
    v = b2 * v - (1-b2) * (dx)^2
    W += -learning rate * m / 根号下v

处理不均衡数据

  1. 当数据不平衡时,模型只要最后预测数据占比多的那一类别就可以获得很高的准确率,因此这个模型并没有分类能力。

  2. 解决方法:

    (1)获取更多数据
    (2)换个评判方式:精确率、召回率、F1值
    (3)重组数据:欠采样、过采样
    (4)使用其他机器学习方法:决策树就不会受到不均衡数据的影响
    (5)修改算法:比如我们可以修改激励函数,使得模型并不是按照一半一半来划分二分类问题,而是对数据占比少的那个类别,只有很自信是这个类别时,才判断为这个类别
    在这里插入图片描述

L1、L2正则化

用于不要让模型过拟合
在这里插入图片描述
想象现在只有两个参数 theta1 theta2 要学, 蓝色的圆心是误差最小的地方, 而每条蓝线上的误差都是一样的. 正规化的方程是在黄线上产生的额外误差(也能理解为惩罚度), 在黄圈上的额外误差也是一样. 所以在蓝线和黄线 交点上的点能让两个误差的合最小. 这就是 theta1 和 theta2 正规化后的解.
在这里插入图片描述
要提到另外一点是, 使用 L1 的方法, 我们很可能得到的结果是只有 theta1 的特征被保留, 所以很多人也用 l1 正规化来挑选对结果贡献最大的重要特征. 但是 l1 的结并不是稳定的. 比如用批数据训练, 每次批数据都会有稍稍不同的误差曲线。
L2 针对于这种变动, 白点的移动不会太大, 而 L1的白点则可能跳到许多不同的地方 , 因为这些地方的总误差都是差不多的. 侧面说明了 L1 解的不稳定性.
在这里插入图片描述
统一表达形式
在这里插入图片描述
最后,为了控制这种正规化的强度, 我们会加上一个参数 lambda, 并且通过 交叉验证 cross validation 来选择比较好的 lambda. 这时, 为了统一化这类型的正规化方法, 我们还会使用 p 来代表对参数的正规化程度. 这就是这一系列正规化方法的最终的表达形式啦.

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐