在生物神经网络中,其最小的组成单位是神经元。
学过高中生物的应该都知道,多个神经元相互连接形成神经网络,一个神经元兴奋时,则向相邻的神经元发送化学物质,改变其神经元的内部电位,当点位超过一个“阈值”时,神经元兴奋。
神经元的模拟图如下:
Xi为第i个输入,ωi为第i个输入的连接权重,y为输出,θ为阈值。
当达到阈值,即神经元兴奋时,才输出,所以y只有两种情况,有输出,没有输出,令y=1代表有输出,y=0代表没有输出。
所有的输入之和为总输入的信号量:
用总输入量减去阈值,判断是否超过阈值:
当上式大于0时,y=1,当上式小于0时,y=0,这是一个单位跃阶函数,在线性模型中我们使用sigmoid函数代替单位跃阶函数。
所以,输出y的函数定义如下:
若我们将θ视为一个固定输入的结点,其输入值恒为-1,连接权重为θ,我们调整输入X=(x1,x2,...,xn,-1),调整权重ω=(ω1,ω2,...,ωn,θ),则输出y的函数定义如下:
这是一个多么熟悉的模型啊,这不就是线性回归模型吗,所以解这个模型的推导过程,和实现过程,就不再赘述了。
下面我想讨论一下感知机模型或线性模型的局限性:
其实其局限性显而易见,就是非线性可分的问题无法求解,那么我们是否可以加入二次项,三次项或更高次项去模拟一些非线性可分的问题呢?
这是可行的,但是现实中的分类任务的分类边界是十分复杂的,无法用相关函数近似,就算可以近似,如何确定用几次项的函数去近似也是十分麻烦的。
那么我们应该怎么去求解非线性的问题呢?
在微积分中,计算曲线的长度是怎么求的?我们用多段线段去近似表示曲线,当线段的数量趋近于+∞时,就是曲线的长度。那么我们是否可以将线性不可分的问题近似分解为多个线性可分问题求解呢?
我们的一个基础单元(神经元)为一个基础的线性模型,我们将多个神经元相连,形成一个神经网络,按输出方向每一层的基础线性模型(神经元)的输出影响下一层线性模型(神经元),这样逐层的,直到最后的输出,这不就是将一个线性不可分问题,分解成很多个线性模型的组合了吗。
上述思想是关于神经网络模型的一种感性认知。
综上所述,构建神经网络需要解决的问题是,1.每一层的神经元个数,2.构建多少层,3.每一个神经元的连接权重,4.每一个神经元的阈值。下一篇博文讲解如何实现一个神经网络。