人工神经网络
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了人工神经网络相关的知识,希望对你有一定的参考价值。
参考技术A 本文讨论的神经网络是从生物学领域引入计算机科学和工程领域的一个仿生学概念,又称人工神经网络(英语:artificial neural network,缩写ANN)。是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。参考 wiki定义 。如图,一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫做“突触”。
基于此,1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构,发表了抽象的神经元模型MP,神经元模型是一个包含输入,输出与计算功能的模型。输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算则可以类比为细胞核。如下图:
图中X代表输入信号,W代表权重,∑代表将X和W的矩阵运算,ψ对运算结果应用sgn函数,最终得到输出y。
然而,改模型对权限W是通过指定好的,因此不存在在计算工程中动态调配权限W的能力,也就是不存在学习的能力。
1958年,计算科学家Rosenblatt提出了由两层神经元组成的神经网络:“感知器”(Perceptron)。
可以看到,一个感知器有如下组成部分:
输入权值: 一个感知器可以接收多个输入,每个输入上有一个权值,此外还有一个偏置项,就是上图中的。
激活函数: 感知器的激活函数可以有很多选择,比如我们可以选择Sigmoid函数来作为激活函数。
其中,因为生物学上,外接信号传导到神经元上,神经元不会立刻做出反应,而是会抑制输入,直到输入增强,强大到可以触发输出。也就是说,在产生输出之前,输入必须达到一个阈值。在数学上,这种随着变量值增大,函数值发生跳跃的函数成为激活函数。下图是一个常用的激活函数,Sigmoid函数曲线图:
上节我们看到,感知器其实是单层的神经网络,神经网络可以理解成多个感知器组合而成的一个结构,如下图:
神经网络的学习过程就是对权重矩阵的更新过程。所谓的训练过程就是比较当前网络的预测值和我们真正想要的目标值,再根据两者差异来更新每一层的权重矩阵。因此,必须先定义好如何比较预测值和目标值的差异,这便是损失函数(loss function)。损失函数输出值loss越高表示差异性越大,神经网络的训练就变成了尽可能的缩小loss的过程。
所谓梯度下降法,就是通过使loss值向当前点对应梯度点反方向不断移动,来降低loss。一次移动多少通过学习率(learning rate)控制。
通俗来讲,所谓梯度下降法,其实就如同漆黑的夜晚拿着手电筒站在山顶,每次只能看到眼前的一米远距离,想要下到山脚,我们采用每次都选择最陡峭的地方向下挪动,反复这一过程,最终到达山脚。
以上是关于人工神经网络的主要内容,如果未能解决你的问题,请参考以下文章
[人工智能-深度学习-5]:人工神经元数学模型激活函数人工神经网络