人工神经网络

目录

1 背景

2 人工神经网络

2.1 MP模型

2.2 感知机模型

3.反向传播算法

4 基于人工神经网络的其他网络

4.1前馈神经网络

4.2 反馈神经网络

4.3 图神经网络

5代码

5.1全连接网络实现手写数字识别


1 背景

从人工智能的学科诞生以来,就有两种学派此消彼长。

第一种学派认为人工智能模拟的是人类大脑对于世界的认识,我们把这一学派叫做人工智能的仿生学派。这一学派认为只有深入研究大脑认知机理和总结大脑处理信息的方式,才能实现人工智能。

而另一种学派认为,在现在以及可预见的未来,我们无法完全了解人脑的认知机理,另一方面,计算机与人脑具有截然不同的物理属性和体系结构,因此片面强调计算机对人脑的模仿既不可能也不必须。这一学派认为,对于人工智能的研究应该立足于现代计算机的物理属性和体系结构,用数学和逻辑推理的方法从现有的计算机中获得确定性的知识,而不是一味的强调对人脑的模仿,这一学派是人工智能的数理学派,比如支持向量机就是这一学派的典型代表,而马上要学到的人工神经网络就是仿生学派的典型代表。

这两种学派在历史上存在冲突和斗争,主导了神经网络的起伏涨跌。

2 人工神经网络

2.1 MP模型

受到生物神经网络的启发,科学家构造了一种模仿人脑神经网络的数学模型,称为人工神经网络。

人工神经网络_第1张图片

人工神经网络由美国科学家在1943年首次提出,被称为“MP模型”,该模型结构比较简单,如下图所示:

人工神经网络_第2张图片

x:输入 w: 权重 b: 偏置 y:输出

 MP模型已经具有了神经元的基础构架,也就是先加权求和再激活,然而该激活中的参数是固定不变的,所以该模型不能从数据中"学习"到知识。

2.2 感知机模型

到了1957年,康奈尔大学的科学家提出了“感知机模型”的概念,从此才真正意义上产生了“人工神经网络”。感知机模型由“输入层,隐藏层,输出层”组成。

人工神经网络_第3张图片

本质上,“感知机模型”就是MP模型的改进和累加,然而单层的感知机无法解决异或问题,也就是线性不可分问题,为了解决这个问题,科学家们提出了多层感知机模型。

人工神经网络_第4张图片

与单层的感知机相比,多层感知机的隐藏层数量大大增加,这看起来,就像是网络的深度增加了。因此人们把这种隐藏层数量很多的网络叫做“深度神经网络”,也就是当前人工智能的核心技术。

3.反向传播算法

定义

首先来一个反向传播算法的定义(转自维基百科):反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。 该方法对网络中所有权重计算损失函数的梯度。 这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

首先明确,“正向传播”求损失,“反向传播”回传误差。同时,神经网络每层的每个神经元都可以根据误差信号修正每层的权重

人工神经网络_第5张图片

 人工神经网络_第6张图片

 

上面的计算过程并不难,只要耐心一步步的拆开式子,逐渐分解即可。现在还有两个问题需要解决:

  1. 误差E有了,怎么调整权重让误差不断减小?

  2. E是权重w的函数,何如找到使得函数值最小的w。

解决上面问题的方法是梯度下降算法

4 基于人工神经网络的其他网络

随着人工神经网络的不断发展,越来越多的网络模型被创造出来。其中,具有代表性的有:前馈神经网络;反馈神经网络;图神经网络。

4.1前馈神经网络

在前馈网络当中,各个神经元按接受信息的先后分为不同层,每一层中的神经元接收前一层神经元的输出,经过计算后,输出到下一层神经元,整个网络中的信息是朝一个方向传播的,没有反向的信息。比如,全连接网络;卷积神经网络(CNN)

人工神经网络_第7张图片

人工神经网络_第8张图片

 

4.2 反馈神经网络

反馈网络也称为记忆网络,在反馈网络中,神经元不但可以接收其他神经元的信息,也可以接收自己的历史信息。与前馈神经网络相比,反馈神经网络具有记忆功能。典型代表有循环神经网络(RNN)等

人工神经网络_第9张图片

 

4.3 图神经网络

图神经网络是定义在图结构上的神经网络,在图神经网络中,每一个节点都由每一个或一组神经元构成,每一个节点可以接收来自相邻节点或自身的信息。

图神经网络是前馈神经网络和记忆网络的泛化,包含很多种不同实现的方式,比如:图卷积网络(GCN);图注意力网络(GAT)等

5代码

5.1全连接网络实现手写数字识别

数据集:MNIST

介绍:有60 000行。对应60 000幅训练图像。同时,每行有785个值,每一行的第一个值是每一行图像所表示的数字

数据集下载官方网站 MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges

代码实现链接:

手写数字代码识别(pytorch)实现_无咎.lsy的博客-CSDN博客

 

你可能感兴趣的:(深度学习,人工智能,机器学习,数据挖掘)