深度学习(一 概念)

0x01 概念

深度学习是机器学习的一个最为成功、最受欢迎的分支领域。

所谓深度,即从一系列连续的“层”中进行学习,这些层对应于越来越有意义的表示。他们也被称为“模型的深度”,在深度学习中,这些分层表示一般被称为“神经网络”。

机器学习的发展过程:

0x02 工作原理

工作过程分为训练和推理两个阶段,训练即使用既定的输入参数和确定的输出结果对模型参数进行调整使其输出逐渐符合预期的过程;推理阶段则使用训练完成的模型对未知输入进行计算。

权重(参数):每一层对输入数据所做的具体操作。

损失函数:评估输出与预期之间的距离。

优化器:根据损失函数得到的距离值对权重进行负反馈调整,该过程又被称为反向传播。

训练模型整个工作过程示意:

深度学习工作流程示意图

0x03 数学基础

1)卷积神经网络(CNN)

卷积定义:

设:f(x),g(x)是R1上的两个可积函数,作积分

物理意义可描述为:一个函数对另一个函数所有微量的响应的总叠加效果。

在神经网络中使用卷积后的网络被称为卷积神经网络(CNN),卷积的作用在于解决对象的位置和尺度问题,在不适用卷积的神经网络中,需要目标在输入的相同位置,相似大小,才能进行识别或其他操作,而卷积则能在不同位置,不同尺度上进行识别。

如图示意:经过一个二维卷积核计算后,原图尺寸变小,但特征未变。

所以卷积的引入不仅解决了尺度和位置问题,还缩小了图的尺寸,大大减少了计算量。

同样能完成减小计算量的还有池化层。

即在数据中按块计算平均值或最大值:

工作示意:

CNN在今年发展形势更好的原因在于GPU的快速发展,以及更好的激活函数。对比其他机器学习方式,CNN更好的地方还在于它自动地训练每一个卷积核使其更有效的符合需求,无需设计人员手动调参。

2)深度问题

深度学习网络之所以是深度,是因为具备多层学习网络,而使用多层网络的根本原因还是因为降低参数和计算量,这样才能对多种特征进行层层识别,最后再推理分类。

举个例子:20个同学玩一个名为”管中窥豹“的游戏,每个人只能通过一个细竹管查看目标动物的一个位置,所以每个人只能看到动物的一小部分,大家观察完之后将结果汇总到一张纸上,这时,再由对动物比较熟悉,经验丰富的同学来判断这是豹还是猫亦或是其他动物,这个过程就是CNN中局部感知的过程。

如图示意:

对该图像进行识别,但图像尺寸较大,一次识别不了这么复杂的物体

所以需要分步骤识别,比如将图像分块,提取耳朵、眼睛、胡须、尾巴等关键特征:

同样的、对耳朵、头、胡须等特征的识别可能还需要进一步分解,于是最终得到了这样的结构:

当然、这样的结构还有可能进一步分解,这样最终形成了多层的深度神经网络,最后加上输入层,池化层和最后的感知机形成整体的典型CNN结构:

3)激活函数

定义:

增加神经网络模型的非线性,,输入的 inputs 通过加权,求和后,还被作用了一个函数,这个函数就是激活函数。

作用:

如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这种情况就是最原始的感知机(Perceptron)。如果使用的话,激活函数给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数,这样神经网络就可以应用到众多的非线性模型中。

类别:

Sigmoid
Relu
tanh

0x04 其他概念

1)张量:多维向量,张量的维度称为轴。一般一维张量称为向量,二维张量称为矩阵。

2)标量:只有一个数字的张量。

3)广播:将不同维度张量进行运算时,向较小的张量添加轴,使其ndim与较大的张量相同,将较小的张量沿着新轴重复,使其形状与较大的张量相同。

4)权重:假定场景output = relu(dot(w, input) + b)中,w、b为该层的张量属性,称为该层的权重(分别对应kernel和bias属性)。

5)梯度:张量运算的导数。优化器在更新权重时是将权重增大还是减小?若进行尝试,需要计算量翻倍,故引入梯度概念,对张量运算求导,沿导数反方向对权重进行调整,此过程也称为梯度下降。

6)步长:梯度下降过程中每一次求导的参数间隔距离。在小批量梯度下降过程中,步长的选择至关重要,不正确的步长可能导致训练陷入局部最小点。

7)动量:在梯度下降时不仅求导,同时加入当前”速度“的概念,速度源于每一次下降的加速度计算,此方法能最大程度避免陷入局部最小点。

8)全连接层:将学到的“分布式特征表示”映射到样本标记空间,目标空间的任一维——也就是隐层的一个 cell——都认为会受到源空间的每一维的影响。可以认为,全连接层的目标向量等于源向量的加权和。在实际使用中,全连接层可以转化为卷积核为1×1的卷积。

(在计算机视觉中,全连接层和卷积层没有太大区别。卷积层其实就是在spatial上部分连接,在channel上全连接的结构。因此如果舍弃在spatial上的部分连接,将卷积核换成1×1的,那么就只有在channel上全连接。这个时候卷积层=全连接层。这就是为什么imagenet分类最后一层是pooling+fc。pooling完之后feature就1x1xC的了,这时候再做fc就是对channel进行全连接,把feature映射到label上。细心的人会发现很多特征融合的卷积都采用1×1的kernel,这也算是全连接层的一个功能。)

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注