神经网络编程入门
听到 神经网络 这个词,从直觉上我们会想到大脑,的确,我们可以将大脑看成一个大型的天然神经网络。然而,人工神经网络又是什么呢?人工是一个与天然相对的词,我们首先想到的就是人工大脑或者机器人,这就是所谓的人工。在这种情况下,受人脑的启发,我们创建出一个和人脑相似的结构,称之为人工智能。
结合人脑的特点和结构,可以说人工神经网络是一种自然启发的方法。每个神经元与许多其他神经元相接,这些神经元又会和其他大量神经元相连,形成一个高度互连的结构。神经元之间的连通性解释了学习能力,因为每个连接都可以根据刺激和期望目标进行配置。
人工神经元
人工神经元是最基本的人工神经元素,已证明生物神经元是信号处理器,神经元中的树突会根据接受信号的强弱和振幅。发送信号到轴突。可以这样认为,神经元在输入上有一个信号收集器,在输出上有一个激活单元,它可以触发一个新的信号,然后传递给其他神经元。
激活函数
激活函数是指一个神经元根据输入信号,执行计算并产生输出。从数学方面讲,激活函数用于为神经网络模型的处理加入非线性因素,从而提供人工神经网络的非线性行为,这对模拟生物神经元的非线性特征非常有用。激活函数通常是一个非线性函数,输出限制在某个区间范围内,但某些特定情况下,也可以是线性函数。
权重
尽管神经网络的结构能固定,但通过神经元之间的连接权重能够增强或减弱接收到的神经信号,所以可以通过修改权重影响神经元的输出。因此,神经元的激活不仅依赖输入信号,还依赖权重。如果输入来自其他神经元或者外部世界,权重可以看成神经网络在神经元之间建立的连接。
偏置
作为一个独立组件,偏置主要为激活函数增加一个额外信号,这对人工神经元非常有用。
层
为抽象化处理层次,如我们大脑处理问题的方式,神经元按层组织。输入层接受外部世界的直接刺激,输出层触发一些行为,对外部世界产生直接影响。输入层和输出层之间,有许多隐含层,某种意义上,这些隐含层对外部世界不可见。在人工神经网络中,同一层的所有神经元具有相同的输入和激活函数。
神经网络可以有不同的布局,主要取决于神经元或层之间是如何连接的,每一个神经网络体系结构都是为特定目标而设计。神经网络可以应用于许多问题,根据问题的性质,神经网络旨在高效解决问题。
单层网络
单层网络体系中,所有神经元都处于同一层,形成单个层。
多层网络
多层网络中,神经元分成多个层,每层对应神经元的一个平行布局,每层神经元都共享相同的输入数据。
前馈网络
神经网络中的信号流动可以是单向的,也可以是递归的。对于第一种结构,称之为前馈网络,输入信号被送入输入层,经过处理后向前传递到下一层。多层感知机和径向基函数都是前馈网络
反馈网络
当神经网络中有某种内部递归时,这意味着信号会反向传递到已经接受或已经处理过信号的神经元或层,这类网络类型为反馈网络。