深度学习-神经网络 摘要
机器学习是人工智能的核心,而深度学习又是机器学习的核心。三者关系可用如下图来表示。
人工神经网络(Artificial Neural Networks,简写为ANNs)也简称为神经网络(NNs)或称作连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。
首先认识一下人脑的神经元之间的联系
神经网络仿照人脑的神经元结构之间的联系,当某个神经元的轴突电信号强度达到一定程度时,就会触发将信号传递到下一个神经元。在传递的过程中加上一些对数据处理的操作,从而达到处理传递信息的目的。上面的信号其实就是数值或者多维矩阵。
神经网络神经网络又分为两种,一种是浅层神经网络,另一种是深层神经网络,顾名思义可知,深层神经网络要比浅层神经网络复杂。
浅层神经网络 深层神经网络上面两图中的圆圈则代表神经元,连线则代表上一层神经元对下一层神经元的信号传递
与浅层神经网络相比,深层神经网络具有更复杂的模型结构,并且层次结构较多,神经网络采用全连接的方式将神经元之间的信号进行传递,浅层神经网络则是非全连接,或者单层全连接。
全连接:是上一层的每个神经元都连接到下一层所有的神经元
非全连接:一个神经元连接一个或者下一层的其中几个神经元
每个神经元链接下一层多个神经元,由于不同神经元对该神经元的信号的Value不同,所以通过设置权重(Weight)的方式来降低或提高该神经元传递过来的信号。
其关系满足 y = Wx+ B
w:weight权重,对该神经元的重视(需求)程度,也就是上面所说的数据处理阶段,一般总weight(w1+w2+w3)为1
x:传递过来的信号量的值
b:为偏移量,对于在线性分类问题,偏移量是不可或缺的。
上图如果没有偏移量的话,该直线就会过原点。
显然分类效果就不会好,通过加上一个大于0的偏移量b使得分类器往左平移。
y:是加权后的值,激活函数的参数x就是所有y的和
激活函数激活函数是神经网络模型中上一层神经元到下一层神经元数值的处理,上一层神经元通过线性函数(加权求和)得到的数值y,所有的y也是具有线性函数特性的,激活函数就是将这些数值非线性化,把y当作x带入到激活函数中。
线性函数关系为 y = Wx + B
非线性函数即不是一条直线的函数,例如幂函数,指数函数,对数函数等
激活函数又类似于高等数学中的符号函数(sgn),(sgn不是激活函数)
x>0,则输出f(x)=1,传给下一个神经元
x<0,则输出f(x)=-1,传给下一个神经元
x=0,则输出f(x)=0,传给下一个神经元
经典的激活函数是Sigmoid 函数,其函数关系为f(x) = 1/(1-e^x)
x较大,则输出f(x)=1,传给下一个神经元
x较小,则输出f(x)=0,传给下一个神经元
所有的值均压缩在-1~1之间
反向传播反向传播的基本思想就是在执行完所有层后,通过计算输出层与期望值之间的误差来逆向调整权重参数,从而使得误差变小。
卷积神经网络卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在大型图像处理方面有出色的表现,目前已经被大范围使用到图像分类、定位等领域中。相比于其他神经网络结构,卷积神经网络需要的参数相对较少,使的其能够广泛应用。
首先看下卷积网络结构流程图