神经网络入门基础知识 neural networks basics
也许现在提到深度学习(deep learning)连非计算机专业的人都听说过,尤其是最近“人机大战”更是掀起了人们对深度学习的极大关注。而深度学习则源于神经网络的研究。神经网络其实是一门相对古老的算法,它最初产生的目的是制造能够模拟这个星球最复杂的东西“人脑”的机器,但是神经网络的发展也是几经波折,下面引用周志华大牛《机器学习》书中对神经网络发展的介绍讲下背景知识:
第一个高潮期:二十世纪四十年代M-P神经网络模型、Hebb学习律出现后,五十年代出现了以感知机、Adaline为代表的一系列成果,可以看做是神经网络发展的第一个高潮。
冰河期:图领奖得主,MIT计算机科学研究的奠基人Marvin MinsKy(马文 闵斯基)(2016年1月24日去世)在1969年出版《感知机》一书,认为单层神经网络无法解决非线性问题,而多层神经网络的训练算法尚看不到希望。这个论断直接导致神经网络研究进入10多年的冰河期。
第二个高潮期:BP算法的迅速走红,掀起了神经网络的第二次高潮。
冰河期:20世纪90年代中期,随着统计学习理论和支持向量机(support vector machine,SVM)的兴起,神经网络再次进入低估,NIPS会议多年不接受以神经网络为主题的论文。
第三个高潮期:2010年前后,随着计算能力的迅速提升和大数据的出现,神经网络研究在“深度学习”的名义下再次换发新春。
神经网络是一种非线性学习算法,神经网络中最基本的成分是神经元(neuron),下面给出神经元的基本模型:
其中
为输入单元,
称为偏置单元(bias unit),
称为连接权重。
为输出函数,其中
,其实就是前面在logistic回归里提过的sigmoid函数(ps:目前神经网络的输出层通常使用softmax函数)。
还记得逻辑回归的sigmoid函数吗,
在这里称作“激励函数”(motivation function),其图像为(图片来自wiki):
关于这个函数就不多介绍了,我在逻辑回归里介绍过了。
介绍完神经元模型后,下面来介绍神经网络基本模型:
在上面的图中我并没有画出偏置单元
,在实际应用中有时候需要加上。其中第一层(layer1)称为输入层,layer2称为隐藏层(神经网络可能不止一个隐藏层,只是本例中只有一个,其实只要位于隐输入层和输出层之间的都称为隐藏层),layer3称为输出层。
称为第j层的第i个单元的激励,
表示从第j层到第j+1层的权重。因此在本例中:
因此这里
。可以看出
是一个3*4的矩阵,即:
如果一个神经网络在第j层有
个单元,在第j+1层有
个单元,那么
为
的矩阵。
关于神经网络的最基本的知识就介绍到,下面举一些例子,帮助大家更好的理解神经网络。
Example 1:实现“与”功能
如上图所示,我们容易求得
。因此我们可以画出
的真值表,看看它是怎样实现“与”功能的。
因此,从上图可以看出是如何实现“与”功能的。。。
Example 2:
实现“或”功能:
关于神经网络的基本知识,就介绍到这。下篇博客将会介绍神经网络迄今为止最成功的算法:BP算法(BackPropagation),又称误差逆传播(error BackPropagation),请大家关注,链接地址:http://blog.csdn.net/u012328159/article/details/51168939。
注:写博客不容易,甚是花费时间和精力,尤其画图很不容易。每个原创博客的孩子上辈子都是天使,请大家尊重原创,转载或者引用请注明原文作者和链接,谢谢!