人工神经网络(Artificial Neural Networks,简称ANNs)-1

(1)人工神经网络的鲁棒性和应用:

人工神经网络(ANN)对训练数据中的错误具有鲁棒性,并且已经成功应用于学习各种函数,包括解释视觉场景、语音识别和学习机器人控制策略等问题。

(2)生物神经网络与人工神经网络的灵感来源:

人工神经网络的研究部分受到大脑中复杂交织的神经元网络的启发。人脑包含大约10^11到10^12个神经元,每个神经元平均连接到10^4到10^5个其他神经元。因此,人脑平均需要大约10^-1秒的时间来做出复杂的决策。

(3)人工神经网络的结构:

人工神经网络通常由大量简单单元组成,这些单元密集地相互连接。每个单元接收多个实值输入并产生单个实值输出。尽管如此,人工神经网络并不完全模仿生物神经系统的复杂性。

(4)生物神经元与人工神经元的差异:

生物神经元的主要组成部分包括轴突、树突和突触。

人工神经元则通过权重来模拟这些生物组成部分的功能。

生物神经元

人工神经元

主要成分:轴突、树突、突触

主要成分:轴突、树突、突触

来自其他神经元的信息以电脉冲的形式进入树突,通过称为突触的连接点接收。信息从树突流向细胞进行处理。输出信号(脉冲的序列)随后沿着轴突传送到其他神经元的突触。

神经元的排列和连接组成网络,共有三层。第一层称为输入层,是唯一暴露于外部信号的层。输入层将信号传递给下一层的神经元,该层称为隐藏层。隐藏层从接收的信号中提取相关特征或模式。这些被认为重要的特征或模式随后被转发到输出层,输出层是网络的最后一层。

突触能够增强或减弱连接的强度。这是信息存储的地方。

人工信号可以通过权重进行改变,类似于突触中发生的物理变化。

约有10^11个神经元。

当前技术下有10^2到10^4个神经元。

(5)人脑与计算机处理信息的差异:

人脑(生物神经网络)

计算机(人工神经网络)

人脑是异步工作的

计算机(ANN)是同步工作的

生物神经元计算速度较慢(每次计算几毫秒)

人工神经元计算速度较快(每次计算少于1纳秒)

大脑以分布式方式表示信息,因为神经元是不可靠的,可能随时会死(失效)

在计算机程序中,每一位必须按预期功能工作,否则程序会崩溃

我们的大脑会随着时间的推移改变连接性,以表示新的信息和对我们施加的要求

计算机中的电子组件连接性不会改变,除非替换组件

生物神经网络具有复杂的拓扑结构

人工神经网络通常采用树形结构

研究人员仍在探索大脑是如何学习的

人工神经网络使用梯度下降法进行学习

(6)人工神经网络的优势:

ANN可以处理由多个属性-值对表示的实例。

ANN用于目标函数输出可能是离散值、实值或多个实值或离散值向量的问题。

ANN学习方法对训练数据中的噪声非常鲁棒。训练示例可能包含错误,但这不会影响最终输出。

通常在需要快速评估学习目标函数的情况下使用ANN。

ANN可以承受长时间的训练,这取决于网络中的权重数量、考虑的训练示例数量以及各种学习算法参数的设置。

(7)McCulloch-Pitts神经元模型:

这是由Warren McCulloch和Walter Pitts在1943年提出的人工神经元的早期模型,也称为线性阈值门。这些神经元通过直接加权路径连接。连接路径可以是兴奋性的和抑制性的。

  人工神经网络(Artificial Neural Networks,简称ANNs)-1的图1

这部分指的是从节点x1到x2,一直到xn的连接权重是兴奋性的(exhibitory),用符号‘w’来表示。兴奋性连接意味着当这些节点被激活时,它们会增强下一个节点的激活状态。节点Xn+1到Xn+2,一直到Xn+m的连接权重是抑制性的(inhibitory),用符号‘-p’来表示。抑制性连接意味着当这些节点被激活时,它们会减少下一个节点的激活状态。

McCulloch-Pitts神经元模型和单层神经网络(感知器)。

1.McCulloch-Pitts神经元模型

这个模型是最早的人工神经元模型之一,由Warren McCulloch和Walter Pitts在1943年提出。

该模型的激活函数定义如下:

• 当神经元Y的总净输入信号(yin)大于或等于阈值(Θ)时,激活函数f(yin)的输出为1。

• 当神经元Y的总净输入信号(yin)小于阈值(Θ)时,激活函数f(yin)的输出为0。

总净输入信号(yin)是所有输入信号(xi)与其对应权重(wi)的乘积之和。

f(yin) = 1 if yin >= Θ    输入yin = Σxiwi

    0 if yin < Θ

McCulloch-Pitts神经元会在接收到k个或更多兴奋性输入且没有抑制性输入时被激活,其中k是某个阈值,w是输入权重。

Kw >= Θ > (K-1)w

3. 单层神经网络(感知器)

输入是多维的,可以是一个向量,例如:x = (I1,I2,...,In)。

输入节点(或单元)通常完全连接到下一层的一个节点(或多个节点)。

下一层的节点会计算所有输入的加权和,即:SummedInput = ∑iwiIi。

输出节点有一个“阈值”t。如果加权和大于或等于阈值t,则输出y为1(“激活”或“激发”);如果加权和小于阈值t,则输出y为0(不激活)。

用数学表达式表示为:

• 如果∑iwiIi ≥ t,则y = 1。

• 否则(如果∑iwiIi < t),则y = 0。

这些概念是人工神经网络的基础,它们帮助我们理解神经元如何处理信息并做出决策。McCulloch-Pitts模型和感知器都是线性分类器,意味着它们只能处理线性可分的数据集。对于更复杂的非线性问题,需要使用多层神经网络。

  人工神经网络(Artificial Neural Networks,简称ANNs)-1的图2

图 3布尔函数和感知器

  人工神经网络(Artificial Neural Networks,简称ANNs)-1的图3

图 4单层感知器

在神经网络中,响应单元接收的输入数据是由前一个单元(关联器单元)处理后的结果,这个结果通常是一个二进制形式的向量。

输入层由多个输入神经元组成,每个神经元对应一个输入变量(如x1,x2,...,xi,...,xn)。此外,通常还会加入一个常数偏置神经元,其值固定为1,这是为了在计算中引入偏置项,以便网络能够学习到数据中的偏差。

在神经网络中,输入神经元与输出神经元之间通过一系列的权重连接。这些权重决定了输入信号对输出信号的影响程度,是神经网络学习过程中需要调整的参数。通过改变这些权重,网络可以学习到如何从输入数据中提取特征并做出预测。

(8)Artificial Neural Networks算法

下面是对这个算法步骤的解释:

第1步:

初始化权重和偏置:在开始训练之前,需要设置网络中每个连接的权重(wi)和每个神经元的偏置(b)。同时,需要设定一个学习率α,这是一个介于0和1之间的数值,用于控制权重更新的步长。

第2步:

循环直到满足停止条件:算法会持续迭代,直到达到某个停止条件,比如达到最大迭代次数或者网络输出的错误率低于某个阈值。

第3步:

对每对训练数据执行以下步骤:对于每对输入和目标输出(通常称为训练样本或训练对),执行以下步骤。

第4步:

设置输入单元的激活值:将输入数据赋值给输入单元,这里用Xi表示第i个输入单元的激活值,Sj表示输入数据。

Xi =Sj for 1 to n

第5步:

计算输出单元的响应:计算输出单元的净输入值(yin),这是通过将输入单元的激活值与对应的权重相乘后求和,再加上偏置b得到的。然后使用激活函数来确定输出单元的输出值y。

y=f(yin) = 1 if yin > Θ

0 if -Θ<= yin <= Θ

1 if yin < -Θ

第6步:

更新权重和偏置:如果输出单元的实际输出y与目标输出t不一致,并且输入单元的激活值xi不为零,则根据误差和学习率更新权重和偏置。如果一致,则保持权重和偏置不变。

if t ≠ y并且xi非零

wi(new) = wi(old) + αtxi

b(new) = b(old) + αt

else

wi(new) = wi(old)

b(new) = b(old)

第7步:

测试停止条件:检查是否满足停止条件,如果满足,则停止训练;如果不满足,则返回步骤3继续训练。

(9)Perceptron的限制

1.由于硬极限传递函数,感知器的输出值只能采用两个值(0 或 1)中的一个。

2.Perceptron 只能对线性可分的向量集进行分类。如果可以绘制一条直线或平面来将输入向量分成正确的类别,则输入向量是线性可分的。如果向量不是线性可分的,则学习将永远不会达到所有向量都正确分类的点。布尔函数 XOR 不是线性可分的(它的正实例和负实例不能用线或超平面分隔)。因此,单层感知器永远无法计算 XOR 函数。这是一个很大的缺点,曾经导致神经网络领域停滞不前。但这已经通过多层解决了。

(10)什么是多层网络

多层神经网络:多层感知器(MLP)或多层神经网络包含一个或多个隐藏层(除了一个输入层和一个输出层)。虽然单层感知器只能学习线性函数,但多层感知器也可以学习非线性函数。该神经元将 x1,x2,....,x3(和+1偏置项)作为输入,并输出f(总输入量+偏置),其中f(.)称为激活函数。Bias 的主要功能是为每个节点提供一个可训练的常量值(除了节点接收的正常输入之外)。每个激活函数(或非线性)都采用一个数字并对其执行某个固定的数学运算。在实践中可能会遇到几种激活函数:

  人工神经网络(Artificial Neural Networks,简称ANNs)-1的图4

首先,它提到了一个神经元接收输入x1,x2,…,x3(以及一个+1的偏置项),然后输出f(summed inputs+bias),其中f是激活函数。这里的“偏置”(bias)的主要作用是为每个节点提供一个可训练的常数值,这个值是除了节点接收的正常输入之外的。

几种在实践中可能遇到的激活函数:

1.Sigmoid函数:它接受一个实数值作为输入,并将输出压缩到0和1之间。Sigmoid函数的数学表达式是:

  人工神经网络(Artificial Neural Networks,简称ANNs)-1的图5

这个函数在二分类问题中常用作输出层的激活函数。

2.tanh函数:它也接受一个实数值作为输入,并将输出压缩到-1和1之间。tanh函数的数学表达式是:

  人工神经网络(Artificial Neural Networks,简称ANNs)-1的图6

这个函数的形状类似于Sigmoid,但是输出值的范围是-1到1,这使得它在某些情况下比Sigmoid函数更受欢迎。

3.ReLU函数:ReLU代表修正线性单元。它接受一个实数值作为输入,并将所有负值替换为0。ReLU函数的数学表达式是:

  人工神经网络(Artificial Neural Networks,简称ANNs)-1的图7

这个函数在隐藏层中非常流行,因为它能够加速神经网络的训练,并且减轻梯度消失问题。

这些激活函数都是非线性的,它们使得神经网络能够学习和执行复杂的任务。在构建神经网络时,选择正确的激活函数对于网络的性能至关重要。


登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

1
1