【原创】连“霍金”都想学习的“人工智能”---【自己动手写神经网络】小白入门连载开始了(1)
欢迎关注【自己动手写神经网络】的博客连载!!!
第1章 神经网络简介
神经网络这个词,相信大家都不陌生。就在你打开本书,并试图了解神经网络时,你已经在使用一个世界上最复杂的神经网络——你的大脑,一个由大约1000亿个神经元(每个单元拥有约1万个连接)构成的复杂系统。但人的大脑太过复杂,以至于科学家们到目前为止仍然无法准确解释大脑的工作原理和方式。但有幸的是,生物神经网络的最最基本的元素已经能够被识别,而这就构成了本书想为你介绍的人工神经网络(Artificial Neural Network)。
人工神经网络是受到生物神经网络的启发而发展起来的。因此,了解生物神经网络可以帮助读者更好的理解人工神经网络。图1.1 展示了生物神经元的基本结构。生物神经元也就是神经细胞由细胞核、细胞体、轴突、树突组成。细胞轴突是一条长长的纤维,它把细胞体的输出信息传导到其它神经元。树突用来接收其它神经元的输入信号。轴突和树突的连接叫突触,突触拥有一定的强度,表示两个神经元连接的强度和稳定性。细胞体接收所有树突的输入,并通过细胞体内复杂的化学变化,来确定细胞体是否需要对轴突产生输出。
神经元之间的连接不是固定不变的,在人的学习和成长过程中,一些新的连接会被逐渐建立起来,还有一些连接可能会消失。外界刺激就是神经网络的输入,在接收刺激后,刺激信号将传递到整个网络中,影响所有的神经元状态,神经元之间彼此连接并相互制约影响,并不断调整彼此间的连接强度,直到达到稳定状态,并最终对刺激作出反应。神经元之间的关系变迁就形成了生物体的学习过程。
人工神经网络以生物体的神经网络为基础,当然,人工神经网络没有生物神经网络那么复杂,在现阶段,我们只能做一些简单的模拟和仿制。目前,人工神经网络吸取了生物神经网络两个极为重要的概念,计算单元和连接权重。计算单元好比是细胞体,负责处理所有的输入并给出一定的输出,连接权重好比轴突和突触,表示两个计算单元的连接强度。
人工神经网络最早的提出可以追溯到1943年,至今已经有70多年历史。它由美国的心理学家W.S.McCulloch和数学家W.A.Pitts在论文《神经活动中所蕴含思想的逻辑活动》中最先提出,并从此澎湃发展。
人工神经网络与线性代数和微积分紧密相关,对神经网络的基本原理以及证明几乎都使用高等数学进行,这些复杂而难懂的公式给许多希望进行神经网络学习的初学者造成不少困扰。本书深刻考虑到这点,从实际应用出发,尽可能避免出现深奥的数学公式,使用白话文字讲解神经网络的基本思想、实现和应用,不需要读者具有良好的数学功底。在必须使用数学公式的场合,作者也将将给出详尽的说明,以帮助读者理解公式的含义。因此,本书将是一本从实际应用出发,附带理论讲解的书籍,适合初学者和实践者(你想立即动手构建自己的神经网络)阅读参考。对纯理论研究感兴趣的读者应该寻找其它更合适的书籍。本书对读者唯一的要求就是需要读者懂得基本的程序设计,了解Java、C/C++、Python等编程语言可以使读者更好的理解本书的内容。
目前,人工神经网络在多个领域均有相当成功的应用,比如市场预测,数据分类,语音识别,文字识别,医疗诊断等。以数据分类为例,在数据爆炸的今天,对大数据的分析显得越来越重要,神经网络可以很好得解决大数据的分析工作。比如,在进行动物分类时,我们可以告诉神经网络某动物的几个特征,如大小、是否有羽毛、有几条腿等信息,神经网络便可以将它归入特定的类别。在文字识别领域,可以使用神经网络进行手写体、车牌的识别,并且,这类应用已经非常普遍。在医疗领域,医生可以根据患者的一系列生理特征通过神经网络来排定患者患有某种疾病的概率。在金融领域,也可以使用神经网络挖掘股票、期货价格的内在规律,并对未来的价格作出预测。
人工神经网络的基本单元是人工神经元。这里先简单介绍一下神经元的基本结构,如图1.2所示。其中,p是神经元的一个输入,w是该输入p到神经元的权值,也就是连接的强度(类比突触),p可以是其它神经元对该神经元的输入,也可以是外部系统对该神经元的刺激输入。b是神经元的偏置(更准确得可以理解为偏置的权重),1是神经元的固定偏置输入,偏置用来模拟生物神经元的内在化学性质。s是累加器,也可以叫做神经元的输入函数,通常它对p和偏置进行加权求和运算,s的输出为wp+b*1,s的输出通常成为净输入net。偏置1和b并不是神经元必须的,实际上在很多神经网络中可以没有这个部分。s的输出将进入f,f为神经元的传输函数,a=f(net)即为这个神经元的输出,a也就是生物神经元的轴突信号。
在该模型中,w和b是可以调整的参数,传输函数f和输入函数s可以根据需要进行选择,但是在确定后不再更改。
图1.2 人工神经元模型
本章主要介绍了神经网络生物学原理、主要应用领域以及单个神经元模型。但对于神经元模型的介绍并不够详细,更加全面的信息,将在下一章节介绍。