神经网络算法初探

神经网络的基本单元是神经元,它是包括输入、连接、计算和输出功能的模型(MP)。其中,每个连接都对应一个权值,神经元在接受上一层神经元的不同输入信号后,通过对应的连接进行信号的加权传递,再利用计算函数对各加权信号和进行计算处理,获得输出信号后传给下一层。

根据计算函数的不同,可以分为不同的神经元类型:

  1. 最基本的神经元类型是线性神经单元,它仅在输入信号加权和的基础上加一个偏值常量。
  2. 在线性神经元的基础上又提出了二分阈值单元,它将线性神经元的计算结果作为中间值,以中间值作为符号函数的自变量,通过阈值二分最终计算结果(取值只有两个)。引入该模型的目的是实现神经网络对于基本逻辑命题的判断(逻辑命题的结果不是真就是假,取值也只有两个)。
  3. 将阈值取为线性神经元中偏值常量的负值,则可将二分阈值单元的阈值平移到原点0,如果在中间值(上文提及)大于原点0后将符号函数结果1改为中间值,则得到整流线性单元。
  4. 以线性神经单元的结果作为中间值,与二分阈值单元不同,将中间值作为S型生长曲线(Sigmoid函数)的自变量,则得到sigmoid神经单元。它的输出是在0到1之间的连续函数,具有良好的可导性。

利用上述四种基本的神经单元类型,可以组装成神经网络的基本架构。具体可以分为前馈神经网络、循环神经网络和对称连接网络。他们都是在神经网络的基础结构上定义的。

  1. 神经网络的基本结构是:输入层、若干隐藏层和输出层。
  2. 如果各层神经元的活动是前一层活动的非线性函数,则将其称之为前馈神经网络。
  3. 如果一个序列当前的输出与前面的输出也有关,则需要定义循环神经网路。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
  4. 对称连接网络类似循环神经网络,但是单元之间的连接是对称的,即它们在两个方向上权重相同。

根据神经网络层数的不同,又可以做如下的分类,对它们的研究在历史上经历了逐步深入的过程:

  1. 单层(即包括输入层和输出层,这里的单层代表执行计算任务的层次数)神经网络被称之为感知机。
  2. 层神经网络(包含一个隐藏层)被称之为多层感知机。
  3. 多层神经网络,在原基础上对训练方法引入了深度学习。

在了解到神经网络的基本概念后,我们需要考虑引入神经网络的目的。日常工作中,我们会获得与某一事件相关的因果关系的大量实例数据,如果把这些数据作为经验数据,在下一次出现某个原因数据后,我们想要对结果数据进行预测,那就可以构造神经网络模型。换言之,神经网络模型是模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。为了构建神经网络模型,根据上文可知,我们需要计算出各神经元连接的参数,即权重。我们称神经网络模型依据数据集计算权重的方法为神经网络的学习算法。

最简单的学习算法是线性神经网络的学习算法,原理与最优化中的梯度下降法类似。具体过程是我们设定权重的初始值,通过迭代调整权重值,最终达到估计的权重值与真实权重值尽可能接近甚至相等的结果。从理论上讲,权重的取值应该使数据集的标签值(权重值/真实值)与模型预测值的误差最小。所以可以构建误差函数(如二次误差函数),通过对该函数求导获得误差梯度的求解公式,那么每次权重的调整值就应该正比于负梯度(逐步接近权重的真实值),同时为了保证其收敛到局部最小,在学习算法中对权重调整值的计算又在误差负梯度的基础上乘以一个参数,我们称该参数为学习率(步长)。

相关网站:
一文看懂四种基本的神经网络架构
神经网络浅讲:从神经元到深度学习
人工神经网络到底能干什么?到底在干什么?
学习率的理解与调整

你可能感兴趣的:(算法)