一、神经网络
1.神经元 (节点)
是神经网络的的基础单元,基本形式为wx+b(x1、x2为输入向量,w1、w2为权重,b为偏置,g(z)为激活函数,a为输出)大量神经元相互连接组成神经网络,每个神经元接受一个或多个信号输入,经过激活函数变换后输出,神经元之间用权重连接。
2.激活函数
常见的激活函数有Sigmoid、Tanh、ReLu,前两者用于全连接层,后者用于卷积层。
Sigmoid函数:
z是一个线性组合,如b+w1*x1+w2*x2,代入正无穷或负无穷到函数中,结果趋于0或1,Sigmoid函数的功能是把一个实数压缩到0到1,可看作分类的“概率”,比如激活函数输出为0.9的话解释为90%的概率为正样本。
3.神经网络
输入层:许多神经元接受大量非线性输入信息,输入的信息称为输入向量。
输出层:信息在神经元链接在传输、分析、权衡,形成输出结果,输出的信息为输出向量
隐藏层:输入层和输出层之间众多神经元和链接组成的各个层面,如果有多个隐藏层意味着多个激活函数,层与层之间是全连接结构,同层神经元之间没有连接。输入层和隐藏层都存在一个偏置。
二、卷积神经网络(CNN)
卷积神经网络(Convolutional Netural Network,CNN)是机器学习中的一种深度前馈人工神经网络分类方法,使用多层感知器变量,可解决单层感知器不能解决的线性不可分问题。
1.卷积层(Convolutional layer)
CNN的基础,由若干特征面组成,直接对原始输入信号进行卷积操作。每层卷积层由若干卷积单元组成,卷积单元的参数是通过反向传播算法最佳化得到的。
卷积层通过局部连接和权值共享的方法,提取一些初级视觉特征的过程。
a.局部连接指卷积层上的每个神经元与前一层特征图中固定区域的神经元建立连接。
b.权值共享指同一特征图中的神经元用一组相同的连接强度与前一层局部连接,可以减少网络训练参数。一组相同的连接强度即为一个特征提取器,在运算过程中表现为一个卷积核(Kernel),卷积核是一个大小自定的权值矩阵。卷积核以一定步长在特征图上进行“滑动”,每滑动一次就进行一次卷积操作,通过多次卷积操作提取输入信号的不同特征,每一个卷积核提取一种卷积特征,n个卷积核可以提取n个特征。
卷积层公式:
f( ):激活函数,K:卷积核,l:卷积层数,MJ:输入层的感受野,b:每个输入图的一个偏置值
卷积运算的目的是提取输入的不同特征,第一层卷积层提取一些低级的特征(如边缘、线条和角),更多层的网络能从低级特征中迭代提取更复杂的特征。
2.池化层(Pooling Layer)
模拟复杂细胞将初级视觉特征筛选并结合成更高级、抽象的视觉特征的过程,在网络种通过采样实现。
经过池化层的采样后,输出特征层的数量不变,但特征图的尺寸会变小,利于减少计算复杂度,抵抗微小位移变化。
3.全连接层(Fully connected layer)
网络经过若干个特征提取层后会接入一个全连接层。该层的每一个神经元与前一层所有的神经元互相连接,同层神经元之间不连接。利于增强网络的非线性映射能力并限制网络规模大小。