神经网络基础
神经网网络基础
原理
凡是模仿人的神经网络构建出来的数学模型,都叫神经网络,或者人工神经网络。
神经网络可以归为三块:
- BP神经网络
神经网络非常多,今天你根据生物神经网络构建一个模型,明天我根据生物神经网络构建一个。1986年,来了两个家伙Romelhart 和Mcclelland,提出了一个特殊的结构,并命名: BP神经网络 。BP神经网络提出后,瞬间崛起后当了主力军。在不特指时,往往说神经网络都是指BP神经网络。
- 深度学习
BP神经网络虽然很好用,但当要处理图象,音频,文字等问题时,却不行了,BP神经网络的参数会随着输入个数指数增长。例如一个50 * 50像素的图象,就有2500个输入 。假设有100个隐节点,则2500个输入在第一层的权重参数就有2500 * 100个 , 参数个数量级太爆炸,导致BP在求解时,很难找到优秀解就宕机了。这本来是个没办法的事,但偏偏图象,音频这些问题,它的输入存在很严重的相关性(例如相邻像素的值总是相近的)因此,可以根据这个业务特性,进行输入个数压缩,或者在求解时根据这个业务特性进行特殊讨巧(例如相邻输入对应的权重参数共享)使BP神经网络又可以解决这类问题了。问题解决了,BP还是BP,挂个名: 深度学习!你可以把深度学习看作是BP神经网络的一种加强版,解决输入极极极极多的问题。
- 其它神经网络
感知机、Hopfield神经网络、径向基神经网络等等
BP神经网络是可以解决很多问题的,比较万能,但我们不会所有问题都会使用BP神经网络。在我们在知道X,Y之间的一些特性的条件下,我们更愿意充分利用这些特性,建立其他模型,这样更具解释性 。例如,我们知道X,Y之间是线性关系,我们就会建立线性回归模型,而不是BP神经网络。
神经元与神经元之间是以神经冲动的模式进行传值,信号到了神经元,都是以电信号的形式存在,
当电信号在神经元积累到超过阈值时,就会触发神经冲动,将电信号传给其它神经元。
正是根据这个思路,就构造出了以上的神经网络结构。
简单示例
一张28*28的图片可以抽象为一个784维的向量,每个像素点的值就是向量的一个分量。我们可以将这个向量作为输入,通过神经网络,输出一个10维的向量,每个分量代表图片属于某个数字的概率。
一个有784个输入节点,16个隐藏节点,10个 输出节点的神经网络结构,用线性代数的方法简洁表示层与层之间的权重: