Q:什么是人工神经网络?
A:
人工神经网络是科学及模拟人类大脑的神经神经网络建立的数学模型。人工神经网络由一个个“人工神经元”组合而成。“人工神经元”也是一个数学模型,其本质是一个函数。所以人工神经网络的本质也是一个函数,而且是一个复杂的,包含很多变量和参数的函数。
前馈神经网络:最简单的神经网络
Q:什么是人工神经元?
A:
人工神经元是人工神经网络的基本单元,其本质也是一个函数。类似人类大脑的神经元,人工神经元模型也有树突、轴突、神经元中心等结构。最经典的神经元模型是“M-P神经元模型”。
简单神经元
一个神经元接收来自其他神经元传来的信号(变量),通过树突传输(参数)到神经元中心(参数),经过转换后(映射f),通过突触传递出去(函数值)。上图中红色的函数表达式就是一个人工神经元的数学表达。
由上述神经元工作过程可知,一个神经元的可以接受多个变量,输出一个结果。一个神经元的输出也可能是另一个神经元的输入。所以一个由多个神经元组成的神经网络,本质上就是一个复杂的、多层嵌套的符合函数。
为什么神经络要加入激活函数?
或问:神经网络引入非线性函数的用意是什么?
引入激活函数的直接目的是为了引入非线性(废话···),其根本目的是提高学习模型的学习(拟合数据)能力,其最初的动机是弥补线性模型学习能力不足的问题。
我们学习机器学习,都是从最简单的线性模型开始的(也有人从K临近算法开始)。我们知道线性模型虽然简单,但是功能却不差,起码预测一下波士顿的房价或者判断一下是否糖尿病是没问题的。但是线性模型说到底也只是一条直线或者一个直的平面,但是现实中的数据却不都是能用直线拟合或者能用平面分隔开的。比如依据培养时间预测细胞数目(函数图像为S型曲线,类似tanh)就不能用线性模型了,或者说线性模型的效果就很差了。
一句话,线性组合能力有限,不能表示复杂的规律;线性模型先天不足,不能学习复杂的情况。就像我们不能指望一个普通的6个月婴儿能掌握勾股定理,也不能指望一个普通的两岁小孩能理解量子力学。
所以我们在线性模型外面包上一层非线性函数,其实就是使其结构更加复杂,使得改造后的(广义)线性模型有能力表示复杂的映射,有能力学习到更复杂的情况,有能力拟合呈线性关系数据,也能拟合不呈线性关系的数据。
Q:神经元有哪些分类?
A:
按照神经元的层数来分,可以分为只有输入、输出层的单层网络(不计算输入层),代表是感知机;以及包含隐含层的多层网络。
按照网络结构来分,可以分为径向基函数网络(RBF)、竞争学习网络(ART)、自组织映射网络(SOM)、级联相关网络、递归神经网络(RNN)、Boltzman机等各种各样纷繁复杂的种类。
Q:感知机有什么作用?怎么训练一个感知机?
A:感知机是最简单的神经网络,只有输入和输出层。一般来说,感知机用来进行二分类任务,或者实现逻辑“与”、“或”、“非”的操作。
Paste_Image.png
感知机模型 f(x)=sign(w⋅x+b) 的输出一般是二值的,即1或-1。当自变量小于0时输出-1,否则输出1。
感知机的学习的学习规则很简单,也是类似与线性回归一样,使用梯度下降的思想,每读取一个样本,计算一次预测值,就调整一次参数(权值)。
Paste_Image.png
x_i表示第i个输入,w_i表示第i个输入对应的参数(权值)。
Q:多层网络有什么做哟个,其训练过程是怎样的?
A:
多层神经网络由于神经元层数比单层多,所欲参数更多,也意味着学习能力更强,所以能够胜任图像处理、语音识别等任务。
最经典的多层网络徐连算法是“误差逆传播算法(BP)”。其基本思想也是通过构建关于参数的损失函数来衡量神经网络的误差,然后通过梯度下降等方法令损失函数取最小值,求得参数的取值。
多层神经网络的参数也是按层划分的,所以参数的求解也要一层一层地进行。首先求出输出层的各个参数。然后通过输出层的参数求接触倒数第二层的参数,再通过过倒数第二层的参数求解出倒数第三层的参数,以此类推,求解出所有层的参数。
Paste_Image.png