[机器学习] 这些概念我终于有一个初步认识了

线性分类器和非线性非类器

  • 线性非类器: 训练模型是参数的线性函数, 可以使用一个超平面将样本分类
  • 非线性分类器: 训练模型是参数的非线性函数, 使用曲面或者多个超平面的组合将样本分类
    • 逻辑回归是线性分类器 , 因为它本质上是采用线性回归的方式, 使用一个超平面将样本分类, sigmoid函数只是对输出的结果进行处理, 将它们映射到(0,1)区间上, 同时人为设定阈值而规定分类的标准. 用来帮助模型的训练
    • 常见的线性分类器: LR, 单层感知机(Perceptron), SVM(线性核) , 朴素贝叶斯
      • 编程简单, 速度快, 但是拟合效果可能较差
    • 常见的分线性分类器: 决策树, SVM(高斯核) , RF, GBDT, 多层感知机(MLP)
      • 编程复杂, 拟合能力强

梯度消失和爆炸

神经网络训练中的梯度消失与梯度爆炸 – PENG
详解机器学习中的梯度消失、爆炸原因及其解决方法 – Double_V_
浅谈网络中梯度爆炸的问题 --阿里云云栖号

  • 深度神经网络并非是层数越多越好, 层数过多, 其中的僵尸层也会增多(对模型训练未起作用), 实际起到学习作用的层数并未增多.
  • 反向传播算法根据的是链式求导法则, 求导次数越多, 相乘的单项式也就越多, 当单项式的值都小于1时, 就会造成结果趋于0, 也就是所谓的梯度消失, 这就导致越在前面的隐藏层, 梯度越小, 权重变化也就越小, 甚至可以忽略不计, 因此并没有起到“学习”的效果;
  • 反之单项式的值都大于1时, 就会造成结果趋于无限大, 即梯度爆炸, 这就导致越在前面的隐藏层, 梯度越大, 权重更新幅度越大, 进而导致网络不稳定. 极端情况下, 权重的值变得特别大, 会导致结果溢出

前向传播(FeedForward)和反向传播(Back Propagation)

一文弄懂神经网络中的反向传播法——BackPropagation

  • 前向传播: 从输入层开始, 根据训练模型以及设置的权重和偏差, 一层层的计算, 得到输出层的结果
  • 反向传播: 计算前向传播得到结果的总误差 (误差平方和), 从输出层开始, 一层层地向前计算每一层的权重对总误差的影响 (总误差对权重求偏导), 设置学习速率, 使用梯度下降法更新权重值

计算梯度的三种方法

几种梯度下降法对比
Mini-batch 和batch的区别

  • Batch Gradient Descent: 遍历全部数据后, 才计算一次损失函数,更新参数, 多次迭代已达到训练的目的
    • 理想状态下经过足够多的迭代后可以达到全局最优
    • 计算量开销大,计算速度慢,不支持在线学习
  • Stochastic Gradient Descent : 每看一个数剧就会计算一次损失函数, 更新参数.
    • 计算量少, 迭代次数少
    • 每次只用一个样本来更新参数,不稳定性大, 更新方向可能会在最有点附近震荡
    • 会将数据打乱, 增加“噪音”, 避免陷入局部最优解中
  • Mini Batch : 上述两种方法的折中, 把全部数据分成若干批, 按批更新损失函数和参数
    • 一批中的一组数据共同决定了更新方向, 减少随机性
    • 一批的数据量也并不大, 减少计算量

过拟合

在这里插入图片描述
该图转自用简单易懂的语言描述「过拟合 overfittingnova avon 的回答

  • 模型的参数过多, 训练样本太少, 导致训练的模型过于复杂, 虽然对训练数据有很好的拟合效果, 损失函数的只非常小, 但是在测试数据上, 预测准确度极低, 损失函数非常大.
  • 一个参数拟合的一次线性函数, 两个参数拟合的可能就是曲线, 参数越多拟合的曲线越复杂, 丧失了一般性.

Dropout

深度学习中Dropout原理解析 --Microstrong

  • 为了解决过拟合问题,一般会采用模型集成的方法,即训练多个模型进行组合取平均值。此时,训练模型费时就成为一个很大的问题,不仅训练多个模型费时,测试多个模型也是很费时。
  • Dropout就是为了解决过拟合和费时问题而被提出的
  • 在2012年,Alex、Hinton在其论文《ImageNet Classification with Deep Convolutional Neural Networks》中用到了Dropout算法,用于防止过拟合。并且,这篇论文提到的AlexNet网络模型引爆了神经网络应用热潮,并赢得了2012年图像识别大赛冠军,使得CNN成为图像分类上的核心算法模型, 因此Dropout 最早的应用就是在CNN中
  • 原理: 随机删掉一定数目的隐藏神经元, 对剩余的神经元进行训练更新参数; 更新完毕后, 恢复被删掉的隐藏神经元, 再次随机删掉一些, 对未删掉的进行更新, 知道所有参数都被更新
    • Dropout实际上是将“多个模型进行组合取平均值解决过拟合”的方法应用到了一个模型上, 通过删掉不同的神经元就好像生成了不同的训练模型.
    • Dropout程序导致两个神经元不一定每次都在一个dropout网络中出现。这样权值的更新不再依赖于有固定关系的隐含节点的共同作用,阻止了某些特征仅仅在其它特定特征下才有效果的情况

逻辑回归和线性回归的梯度

在这里插入图片描述

  • 逻辑回归交叉熵损失函数的梯度和线性回归最小二乘的梯度形式上完全相同,区别在于,此时的 h Θ ( x ) = g ( z ) = s i g m o i d ( W T X + b ) h_{\Theta}(x) = g(z)=sigmoid(W^{T}X+b) ,而最小二乘的 h Θ = W T X + b h_{\Theta} = W^{T}X+b , 因此两者实际上是不一样的

猜你喜欢

转载自blog.csdn.net/weixin_40996518/article/details/105733818