深度学习5 神经网络
生物神经网络是指人的大脑,这是人工神经网络的技术原型。根据生物神经网络的原理,人们用计算机复现了简化的神经网络。当然,人工神经网络是机器学习的一大分支。
1.基本组成
1.1神 经 元
神经元是神经网络的基本组成。激活函数又称作激励函数、传输函数。
1.2 层
层其实就是由多个上面的神经元模型构建起来的模型。 一层可以有多个神经元,多个层就构成一个神经网络。
这是一个含有3个神经元的单层网络,每一个输入都跟每一个神经元有连接,每一个连接的权重都不一样;输入的数量和神经元的数量不用相等;每一个神经元都可以使用不同的传输函数,每一个的输出都是不同的。也可以把激活函数和偏置理解成神经元的内部属性,毕竟每一个神经元只 有一个激活函数和一个偏置。
2.反向传播(BP)
BP 算法是神经网络的核心所在,模型有权重和偏置,通过反向,输入通过权重和偏置得到最终的输出,但是输出的结果肯定与想要的结果有偏差。通过 BP 算法来更新模型的权重和偏置,以使得改变后的模型的输出值与想要的结果更为相近。
向模型中传入数据,数据经过每一层的偏置和层与层之间的权重矩阵,最后会得到一个预测值。这个预测值与真实值之间存在损失函数(Cost Function)。
3.反向传播神经网络
广义的BP 神经网络,是指一种反向传播的思想,这个思想贯穿整个深度学 习当中,不管是卷积神经网络(Convolutional Neural Networks,CNN)还是循环神经网络 (Recurrent Neural Network,RNN),都继承了这样的思想。至于狭义的 BP 神经网络,其实就是全连接网络,每一层都是FC(Full-Connected)层, 从输入层到隐含层再到输出层。至于全连接层,就是之前讲的“层”概念。使用反向传播不断更新参数,就是训练神经网 络的本质。经常听到的多层感知机(Multi Layer Perceptron,MLP)其实就是狭义的BP 神经网络,也就是全连接网络。
4.卷积运算
卷积只是一个为了方便计算而定义的概念,是一个符号,是一个像加减乘除的运算。原图像的数字被卷积核挡住了。被卷积核盖住的原图的那一部分就称为卷积核的视野域。当卷积核的尺寸越大,那么卷积核的视野域也就越大。
5.卷积层
此处引入相关定义:步长(Stride) 、填充(Padding)、 通道(Channel) 和特征图(Feature Map)。
一个5×5的图片被3×3卷积核卷积之后就是3×3的图像,如果想让卷积前后的图像具有相同尺寸,就要用到Padding,如图所示。
填充的输入并不都是0,有很多不同的模填充式,例如“根据原图边缘进行填充”等。把经过卷积层卷积的图片称为特征图。
6.池化层
池化层(Pool)比较简单, 一般夹在卷积层中间,用于压缩数据和参数的量,也可减少过拟合现象。有时,也把池化层称为下采样层。池化层也有卷积核,但是这个卷积核只是取视野域内的最大值或者平均值,所以分为最大池化层和平均池化层。因为并没有参数需要调整,所以池化层不参与反向传播。池化层具有特征不变性(Invariance)。 通俗地讲,就是假设有一个100×100的“狗”图片,假设池化之后变成50×50的图片,依然看得出来这是一只狗。池化层保留了图片中最重要的特征,去掉的是无关紧要的信息。但是这个过程使图片的尺寸改变了,所以可以认为:留下来的特征具有“尺度不变性”,是最能表达图像特征的特征图。
7.循环神经网络
前面讲解了全连接网络,也讲解了CNN, 现在又出现了RNN 。 CNN 已经可以处理图像分类、图像检测、图像生成的问题了,为何还要RNN 呢?
RNN 的特点就是具有一定的记忆。卷积网络可以识别一个图片的内容,但是对于一个 每一帧之间都具有某种联系的视频呢,卷积网络就不能很好地处理其间的时间关系。而RNN可以考虑前一个时刻的影响,还可以对这个时刻之前的所有时刻都具有一定的记忆性。 总之 ,RNN 是基于“人的认知是基于过往经验和记忆”的观点提出的。
RNN用途
卷积网络可以当作一个图像的特征提取器,通过提取图像的特征对图像进行分类。RNN 可以对“之前的信息”进行记忆并用于当前的计算中,所以RNN 的应用领域是非常广阔的:
(1)自然语言处理(Nature Language Process,NLP)基本是与RNN 绑定最为紧密的一 个应用领域。其目的是实现有效自然语言通信的计算机系统,简单说就是计算机可以像人 一样跟人进行沟通交流。包括文本生成、语言模型、机器翻译、文本相似度等内容;
(2)视频处理、语音识别、图像描述生成等;
(3)音乐推荐、商品推荐等推荐系统。
从一句话中提取信息来填空的查询方式,被称为槽填充(Slot Filling)。RNN的反向传播 — —BPTT(Back Propagation Through Time)。
总结:
(1)神经网络的基本组成:神经元与层。
(2)神经网络的反向传播算法的铺垫与推导,这里给出四个最重要的概念:
首先定义神经元的损失:
其次计算所有层的神经元的损失:
通过神经元的损失,计算偏置的梯度:
以及权重的梯度:
(3)卷积网络的基本概念。后续的实战对卷积的了解有质的飞跃。
(4)循环神经网络的基本概念。