深度学习(Deep Learning)入门——基本概念

Author: LiChong0309
Label: Artificial Intelligence 、Machine Learning 、Deep Learning


本文作为一个深度学习基本概念的汇总,对于刚接触到深度学习,先了解各个概念如何定义的,不涉及公式的推导。

1.神经网络(Neural Network)基础

1.1 神经元(neuron)

像我们的大脑类似,神经元是神经网络的基本做成机构。在神经网络中,一个神经元接受信号作为神经元的输入,经过处理,将结果输出,输出的结果将会作为下一个神经元的输入,或者作为最终的输出。
这里写图片描述

1.2 权重(weights)

当信息作为输入传入到神经元的时候,神经元会分配给每一个信息一个相关权重,然后将输入的信息乘于相应的权重,就是该信息的输入。在开始的时候,神经元会初始化每个信息的权重,之后根据相应的反馈和模型训练来更新每个信息的权重。被赋予高权重的信息是被神经元认为相比于重要的信息更加重要的信息,而权重为0的信息则会被认为是对神经元活动影响微乎其微的信息。

如果一个信息的输入为a,该信息的权重为w1,那么该信息的输入就为a * w1

这里写图片描述

1.3 偏差(bias)

在信息输入到神经元的时候,另一个输入分量是偏差(bias)。他被加到权重和输入相乘的结果中。引入偏差的目的是为了确定在改变权重之后,在于输入相乘所得的范围。添加偏差之后,所得到的结果就为a * w1 + 偏差,这是输入变换的最终线性分量。

1.4 激活函数(Activation function)

激活函数的作用是将输入信号转化为输出信号。应用过激活函数的输入类似于f(aw1+b)* 的形式。
这里写图片描述
上面的图中,假设输入为x1···xn,权重为w1···wn,误差为b1···bn。设U = ∑(xi*wi + $b_{i}),所以激活函数就为f(U),最终的输出为 y = f(U)

2 常用的激活函数

2.1 sigmoid —用于隐层神经元的输出

(1)sigmoid的表现形式为:
这里写图片描述
(2)sigmoid的图像:

这里写图片描述
Sigmoid变换产生一个值为0到1之间更平滑的范围。我们可能需要观察在输入值略有变化时输出值中发生的变化。光滑的曲线使我们能够做到这一点,因此优于阶跃函数。
特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1.
(3)缺陷:
当输入非常大或者非常小的时候,这些神经元的梯度是接近于0的,从图中可以看出梯度的趋势。
Sigmoid 的 输出不是0均值,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。

2.2 ReLu(整流线型单位) —-用于隐层神经元输出

(1)表现形式:
这里写图片描述
(2)ReLU图像
这里写图片描述
这里写图片描述
当X>0时,函数的输出值为X;当X<=0时,输出值为0。

3.神经网络

3.1 输入、输出、隐藏层

输入层:接受输入的那一层,本质上是网络的第一层。
输出层:生成输出的那一层,本质上是网络的最后一层。
隐藏层:处理信号 的中间层。隐藏层对传入的数据做特定的任务并生成输出,传递到下一层

这里写图片描述

3.2 MLP(多层感知器)

由于单个神经元无法完成复杂的任务,所以我们使用堆栈神经元的方法来生成我们所需要的输出。在最简单的神经网络中,包含一个输入层、一个输出层、一个隐藏层。每一层中包含有若干个神经元,每一层的神经元连接这下一层的所有神经元,这样的网络也叫做全完连接网络

3.3 正向传播(forward propagation)

(1)定义:正向传播是指输入层通过隐藏层到输出层的运动。
输入层 - - - - - (隐藏层) - - - - - - - - -> 输出层
(2)在正向传播中,信息沿着一个单一的方向前进,从输入层经过隐藏层到输出层,最终输出。这个过程没有反向运动。

3.4 成本/损失函数(Cost function)

当建立一个神经网络的时候,神经网络会试图将输出预测尽可能地接近实际值。使用成本函数(Cost function)函数来衡量网络的准确性。Cost function 会在发生错误的时候处罚网络。
我们的目的是为了能够提高我们的预测精度,减少误差,从而最大限度的降低成本。最优化的输出即使成本/损失函数最小的输出。

如果我们把成本/损失函数定义为均方误差
C = 1/m * ∑(y - a )^ 2
其中m为实验处理的次数, y为实际值,a为预测值

3.5 梯度下降

梯度下降是最小化成本优化算法,找到最小化的损失函数模型参数值
首先来看看梯度下降的一个直观的解释。比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。
从上面的解释可以看出,梯度下降不一定能够找到全局的最优解,有可能是一个局部最优解。当然,如果损失函数是凸函数,梯度下降法得到的解就一定是全局最优解。

这里写图片描述

3.6 学习率(Learning rate)

学习率是每次迭代中成本函数最小化的量,梯度下降到成本函数最小值所对应的速率就是学习率。
我们应该非常仔细地选择学习率,因为它不应该是非常大的,以至于最佳解决方案被错过,也不应该非常低,以至于网络需要融合。
这里写图片描述

3.7 反向传播(backpropagation)

当建立神经网络的时候,会初始化一个权重和偏差,在一次迭代的过后,计算出网络的错误,然后将该错误与成本函数的梯度一同反馈给网络用来更新网络中的权重,以减少后续迭代的错误。使用成本函数梯度的权重的更新成为反向传播。

再反向传播中,网络的运动是向后的,错误从外层随着梯度从外层通过隐藏层流回,权重被更新。

3.8批次(Batches)

在训练神经网络的同时,不用一次发送整个输入,我们将输入分成几个随机大小相等的块。与整个数据集一次性馈送到网络时建立的模型相比,批量训练数据使得模型更加广义化。

3.9 周期(Epoches)

一个周期是指整个输入数据的单次向前和向后传递。

可以自行设定训练网络的周期数量,增加周期数量可以让网络更加准确,但是会增加网络融合时间。如果周期数量过大,网络可能会出现过度拟合的现象。

3.10 丢弃(Dropout)

丢弃是一个正规化的名词,可以防止网络的过度拟合。
在训练的过程中,隐藏层的神经元会有一定数量的被丢弃掉。这意味着训练发生在神经网络不同组合的神经网络的几个架构上,可以将Dropout视为一种综合技术,然后将多个网络的输出用于产生最终输出。
这里写图片描述

4. 卷积神经网络(CNN)

4.1 滤波器(filter)

CNN中的滤波器与加权矩阵一样,它与输入图像的一部分相乘以产生一个回旋输出。我们假设有一个大小为28 * 28的图像,我们随机分配一个大小为3 * 3的滤波器,然后与图像不同的3 * 3部分相乘,形成所谓的卷积输出。滤波器尺寸通常小于原始图像尺寸。在成本最小化的反向传播期间,滤波器值被更新为重量值。
参考一下下图,这里filter是一个3 * 3矩阵:
这里写图片描述

与图像的每个3 * 3部分相乘以形成卷积特征:
这里写图片描述

展开阅读全文

没有更多推荐了,返回首页