大葱哥带你学人工智能之人工神经网络初探
概念认识
随着机器学习和神经网络两个不同学科的独立发展,两个学科碰撞出了火花--就是我们说的深度学习,深度学习借鉴了神经元的模型,通过模拟多个神经元的连接运算进行训练学习,实际上深度学习指的就是人工神经网络,为什么叫人工呢?这是因为它与神经网络事有区别的,神经网络并没有层的划分,而人工神经网络将我们模拟的神经元划分为不同的层,每一层只与自己相邻的层发生联系,隔层之间没有连接,而且相邻两层之间是全连接的形式。
人工神经网络
基本机理认知
神经元机理
了解了基本概念我们再来看看他的机理是什么,也就是人工神经网络是怎么运行的。我们先说神经元的机理,每个神经元都有很多树突和轴突,神经元可以接受其他神经元传递的信号或者叫刺激,经过自身处理后再传递给其他神经元,而每个不同的连接的信号强弱不一样。我们把他模型化就是,每个节点对应多个输入,产生多个输出,每个输入对应有不同的权重,神经元经过多次刺激训练后会形成一定的固定路线,也就是我们大脑掌握了某项技能。
解线性方程
我们对应到人工神经网络中,就是我们通过大量数据开训练我们的模型,使得模型也能形成一个固定路线,具体些就是调节每个节点连接上的权重值使其达到最优。
我们进一步具化这个知识,人工神经网络相当于一道数学题,在大量输入项下我们进行求解,求所有连接上的权重值,使得对于输入经过各层节点的权重运算后能近似接近我们的期望值(以监督学习为例子)。注意这里是近似而不是完全一致,当数据量很少时我们能很容易方程得解是不唯一的,我们可以找到其中某一个一个完全解,但随着数据量的增加以及噪点的增加方程式变得无解了。所以我们需要的是一个近似解,这组近似解能使得所有样本经过运算后都接近实际值。而在人工神经网络中我们一般都使用线性方程来代表神经元的运算,如果输入只有一个维度的话,就相当于在平面上有一堆点,我们试图小单一条线能经过这堆点信你的大部分,也就是使这条线逼近这堆点。
拟合
代价函数最优解
怎么叫逼近呢?或者怎么衡量哪天线更准确呢?这就涉及到了代价函数也叫损失函数得概念,对于某个输入我们在这条线上对应的输出和实际的输出之间是有误差的,我们要考虑所有输入的样本的总体误差来衡量准确度,一般使用均方差的方式来计算总体误差,就是所有样本输出误差的平方和除以样本总数量,我们要寻找一条均方误差最小的线,人工神经网络的训练过程就是对权重的不断调整来计算误差,并力求不断降低误差,直到误差收敛之某个范围变化很小为止。
当然人工神经网络不是盲目的调整权重参数的,他事依据均方差的函数曲线,寻找均方差的最小值。我们带价函数曲线类似下图,我们在判断某一点是不是最优解的常用方式是判断当前点的切线斜率是不是零,也就是这点的导数为0或接近0,我们需要调整步伐找到这一点。
寻找最小值
以上是针对输入只有一个维度来说的,如果输入有多个维度的话,那代价函数就是一个超面了。形如三维空间的下图
三维空间
今天先分享到这里,下一步我们继续分享人工神经网络激活函数等知识。