2022李宏毅机器学习深度学习学习笔记第二十周

文章目录

  • 前言
  • 机器学习是什么
    • gradient descent
    • 训练不好的原因
    • Batch
    • Momentum
    • Loss不降低的原因
  • CNN
  • RNN
  • transformer
  • Self-Supervised Learning
  • 总结

前言

本文对之前学习过的机器学习相关的知识点进行总结,主要内容包括什么是机器学习,CNN,RNN,transformer等等。


机器学习是什么

机器学习就是让机器能自动的找一个函数function。
函式的类别包括:
Regression 回归:函式输出结果为数值
Classification 分类:从设定的选项中选出一个类别当做输出

机器学习的三个步骤
确定模型(Model)
确定如何评价函数的好坏
确定如何找到最好的函数

gradient descent

梯度下降可以优化损失函数的值,使其尽量小,即可找到最好(在数据集上拟合效果最好)的模型参数。
1.初始化参数
随机选取一个 w0(并不一定是随机选取),令w= w0
2.计算梯度dL(f)dw|w=w0
如果小于0,此时 w 增大则 L 会减小;如果大于0,此时 w 减小则 L 会减小。
如果模型有多个参数,则计算损失函数在各个参数方向上的偏导数。
3.更新模型参数w1=w0−lrdL(f)dw|w=w0
w的变化量取决于梯度和学习率(Learning Rate)的大小:梯度绝对值或学习率越大,则 w变化量越大。
如果模型有多个参数,则用上一步计算出的偏导数对应更新各参数。
4.重复第2步和第3步
经过多次参数更新/迭代(iteration),可以使损失函数的值达到局部最小(即局部最优,Local Optimal),但不一定是全局最优。

训练不好的原因

遇到马鞍点和和局部最值点,使我们的梯度下降算法无法进一步更新参数。

Batch

GPU的加入,使得更稳的大Batch策略摆脱了性能的束缚,但是因其太过稳定,且更新次数少,遇上critical point很难突破,所以较小的batch具有一定的随机性,更加能训练出好的模型,batch太小会频繁参数,所以batch大小也是一个超参数。

Momentum

将物理知识运用于梯度下降中,给梯度下降附加一个”动量“,使其迭代过程中,不止考虑当前梯度的大小,还要考虑前步梯度的大小(动量)。在梯度下降决策方面,动量在更新参数的时候考虑了之前的更新方向,主要起到改变方向的作用。

Loss不降低的原因

Loss不降低,可能是遇到了Critical point,或者梯度发生了震荡,要具体问题具体分析。

RMS:每一轮参数更新,都动态调整学习率。RMS是将学习率除以所有梯度的均方根。

RMSProp:基于RMS考虑历史梯度的思想,RMSProp在RMS的基础上进行了调整,增加了用于调节历史梯度和当前梯度的权重α ,使得RMSProp方法能够根据梯度的变化迅速调整学习率。

Aadm:Adam方法结合了RMSProp和Momentum。
Learning Rate Scheduling:改变学习率本身的值
Learning Rate Decay:直观策略是模型刚开始时,误差很大,所以需要大的学习率,随着时间变化,模型误差逐渐减小,学习率也应逐渐减小。
Warm up:学习率随时间先增加后减小。

梯度更新策略总结
Learning rate scheduling:设置学习率变化策略。
Momentum:考虑参数更新的方向。
Root Mean Square:考率历史梯度,并对当前参数更新幅度做出调整。

CNN

CNN是一种人工神经网络,CNN主要用于影像处理以及的架构设计(convolution和pooling),CNN解决了图像处理数据量大的问题;CNN的结构主要可以分为3层:
卷积层(Convolutional Layer) - 主要作用是提取特征,卷积运算本质上就是在滤波器和输入数据的局部区域间做点积。
池化层(Max Pooling Layer) - 逐渐降低数据体的空间尺寸,这样的话就能减少网络中参数的数量,使得计算资源耗费变少,也能有效控制过拟合。
全连接层(Fully Connected Layer) - 主要作用是分类。
CNN过程:图像–>convolution–>pooling–>convolution—>pooling–>flatten–>fully connected layers–>得出值

RNN

为什么需要RNN
神经网络都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。

RNN可以考虑到词的先后顺序对预测的影响,RNN包括三个部分:输入层、隐藏层和输出层。相对于前馈神经网络,RNN可以接收上一个时间点的隐藏状态。
2022李宏毅机器学习深度学习学习笔记第二十周_第1张图片
当某个neural network的output想要写入memory cell的时候,它必须先通过input gate,input gate打开时才能写入值,关闭就无法写入值,而input gate打开还是关闭,要neural network自己学;输出的地方也有一个output gate,决定外界可不可以把值从memory cell中拿出来;forget gate决定memory cell什么时候把过去记得的东西忘掉。LSTM可以看做它有4个input和一个output。
RNN会出现梯度消失的问题,LSTM可以解决gradient消失的问题,不能解决gradient暴增的问题。

transformer

transformer就是一个sequence-to-sequence(seq2seq)的模型,并且用到了self-attention;输入是一个序列,输出也是一个序列,但是输出的长度取决于机器。它主要分成两块,encoder和decoder。encoder要做的事就是给一排向量,输出另外一排向量。transformer的encoder用的就是self-attention。
self-Attention的作用就是全局关联权重,然后做输入的加权和,对attention的不同部分给予不同的关注度。由于RNN系列的模型,无法并行计算,self-attention与RNN相比的优点是可以平行处理。

Self-Supervised Learning

Supervised Learning就是有一个model,输入是x,输出是y,要有label(标签)才可以训练Supervised Learning,比如让机器看一篇文章,决定文章是正面的还是负面的,得先找一大堆文章,标注文章是正面的还是负面的,正面负面就是label。Self-Supervised Learning就是机器自己在没有label的情况下,想办法做Supervised Learning。比如把没有标注的资料分成两部分,一部分作为模型的输入,一部分作为模型的输出,模型的输出和label越接近越好。


总结

通过几个月的学习发现自己对知识的掌握还远远不够,希望在以后的时间里提高自学能力,严以律己,能够有所进步。

你可能感兴趣的:(机器学习,深度学习,学习)