在这段时间地学习中,我通过深度学习的相关视频学习到了一些基础知识,现在对这些学习到的知识进行以下总结。
机器学习是从数据中自动分析获得模型,并利用模型对未知数据进行预测。简单说就是让机器自动找到一个合适的函数。
1)如何找到一系列的函数集(Function Set)来实现预期功能,这是一个建模问题。
2)如何找到一系列评价标准来评价函数的好坏,这是一个评价问题。
3)如何快速找到更好的函数,这是一个优化问题。
Regression用于预测输入变量与输出变量之间的关系,特定的是当输入变量的值发生变化时,输出变量的值也会随之发生变化。
简单地说,Regression就是去预测一个数值,预测的结果是连续的。
Classification是指找一个函数判断输入数据所属的类别(二类别问题或者多类别问题)。
它与Regression相比,Classification的输出不再是一个连续的值,而是一个离散的值,用来指定其属于哪一个类别。
Deep Learning是一种机器学习方法,是一个多层神经网络,旨在提高神经网络的深度,来提高模型学习能力。
CNN是一类包含卷积计算且具有深度结构的神经网络,它被广泛应用在图像识别领域。
CNN的结构可以分成3层,
卷积层(Convolutional Layer),主要作用是提取特征;
池化层(Max Pooling Layer), 主要作用是下采样,但不会损坏识别结果;
全连接层(Fully Connected Layer), 主要作用是分类。
通过代码实现PyTorch二维卷积
1)直接调用Pytorch API进行实现
2)采用矩阵滑动相乘来实现
在特征图中取与卷积核一样大小进行一对一相乘,并将相乘后的结果进行相加,得到最后的结果,之后按照从左向右,从上向下的次序,依次进行上述运算过程。
3)采用向量内积的方法来实现
在特征图中取与卷积核一样大小的矩阵,然后使用flatten将矩阵拉直,然后把两个拉直后的矩阵按照向量相乘计算后得到结果。
RNN是具有树状阶层结构且网络节点按其顺序对输入信息进行递归的人工神经网络,他的特点是拥有储存上一次节点的输出结果的能力,因此就算是同样的输入集合,只要改变其输入序列,输出结果就会完全不一样。
但是随着时序长度地变长,RNN的深度也会变深,这就会导致出现梯度爆炸和梯度消失的问题。
LSTM是RNN的一个优秀的变种模型,可以方便地处理时间序列数据,它继承了大部分RNN模型的特性,同时解决了梯度反传过程由于逐步缩减而产生的梯度消失问题。
LSTM相比于普通的RNN,LSTM能够在更长的序列种有更好的表现。
Transformer本质上是一个Encoder-Decoder的结构,它采用了Attention机制,解决了类似RNN等顺序结构的限制问题,减小了序列处理任务的计算量,并且拥有了更好的并行性。
Transformer的encoder部分和decoder部分是串行和并行都有的,各头之间是并行的,各层之间是串行的。
GAN是一种生成式模型,主要由两个部分组成,生成器(Generator)和判别器(Discriminator)。
Generator:负责生成数据
Discriminator:判断接收的图片是不是真实的图片
GAN的训练过程就是Generator与Discriminator相互促进,相互进步。
通过这段时间地学习,我学习到了深度学习的一些基础知识,但是只学习这些内容是不够的,在后面的学习中,我会重视自己的自学能力,逐步去理解各个模型的原理,掌握其中的数学推导,以及强化自己的代码能力,多动手去学代码。