神经网络原理:揭秘深度学习“黑箱”,了解神经

 2021-07-09 11:17    77  

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

人工神经网络简介人工神经网络(简称神经网络)是一种受人脑的生物神经网络启发而设计的计算模型。人工神经网络非常擅长从输入的数据和标签中学习到映射关系神经网络原理,从而完成预测或者解决分类问题。人工神经网络也被称为通用拟合器,这是因为它可以拟合任意的函数或映射。

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

前馈神经网络是我们最常用的一种网络,它一般包括3层人工神经单元,即输入层、隐含层和输出层,如图3.3所示神经网络原理。其中,隐含层可以包含多层,这就构成了所谓的深度神经网络。

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

图中的每一个圆圈代表一个人工神经元神经网络原理,连线代表人工突触,它将两个神经元联系了起来。每条连边上都包含一个数值,叫作权重,我们通常用w来表示。

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

神经网络的运行通常包含前馈的预测过程(或称为决策过程)和反馈的学习过程。

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

在前馈的预测过程中,信号从输入单元输入,并沿着网络连边传输,每个信号会与连边上的权重进行乘积,从而得到隐含层单元的输入;接下来,隐含层单元对所有连边输入的信号进行汇总(求和),然后经过一定的处理(具体处理过程将在下节讲述)进行输出;这些输出的信号再乘以从隐含层到输出的那组连线上的权重,从而得到输入给输出单元的信号;最后,输出单元再对每一条输入连边的信号进行汇总,并进行加工处理再输出。最后的输出就是整个神经网络的输出。神经网络在训练阶段将会调节每条连边上的权重w数值。

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

在反馈的学习过程中,每个输出神经元会首先计算出它的预测误差,然后将这个误差沿着网络的所有连边进行反向传播,得到每个隐含层节点的误差。最后,根据每条连边所连通的两个节点的误差计算连边上的权重更新量,从而完成网络的学习与调整。

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

下面,我们就从人工神经元开始详细讲述神经网络的工作过程。

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

人工神经元人工神经网络类似于生物神经网络,由人工神经元(简称神经元)构成。神经元用简单的数学模型来模拟生物神经细胞的信号传递与激活。为了理解人工神经网络的运作原理,我们先来看一个最简单的情形:单神经元模型。如图3.4所示,它只有一个输入层单元、一个隐含层单元和一个输出层单元。

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

神经网络原理:揭秘深度学习“黑箱”,了解神经网络的运作原理

x表示输入的数据,y表示输出的数据,它们都是实数。从输入单元到隐含层的权重w、隐含层单元偏置b、隐含层到输出层的权重w'都是可以任意取值的实数。

我们可以将这个最简单的神经网络看成一个从x映射到y的函数,而w、b和w'是该函数的参数。该函数的方程如图3.5中的方程式所示,其中σ表示sigmoid函数。当w=1,w'=1,b=0的时候,这个函数的图形如图3.5所示。

这就是sigmoid函数的形状及σ(x)的数学表达式。通过观察该曲线,我们不难发现,当x小于0的时候,σ(x)都是小于1/2的,而且x越小,σ(x)越接近于0;当x大于0的时候,σ(x)都是大于1/2的,而且x越大,σ(x)越接近于1。在x=0的点附近存在着一个从0到1的突变。

当我们变换w、b和w'这些参数的时候,函数的图形也会发生相应的改变。例如,我们不妨保持 w'=1, b=0不变,而变换w的大小,其函数图形的变化如图3.6所示。

由此可见,当w>0的时候,它的大小控制着函数的弯曲程度,w越大,它在0点附近的弯曲程度就会越大,因此从x=0的突变也就越剧烈;当w<0的时候,曲线发生了左右翻转,它会从1突变到0。

再来看看参数b对曲线的影响,保持w=w'=1不变,如图3.7所示。

可以清晰地看到,b控制着sigmoid函数曲线的水平位置。b>0,函数图形往左平移;反之往右平移。最后,让我们看看w'如何影响该曲线,如图3.8所示。

不难看出,当w' > 0的时候,w'控制着曲线的高矮;当w' < 0的时候,曲线的方向发生上下颠倒。

可见,通过控制w、w'和b这3个参数,我们可以任意调节从输入x到输出y的函数形状。但是,无论如何调节,这条曲线永远都是S形(包括倒S形)的。要想得到更加复杂的函数图像,我们需要引入更多的神经元。

两个隐含层神经元下面我们把模型做得更复杂一些,看看两个隐含层神经元会对曲线有什么影响,如图3.9所示。

输入信号进入网络之后就会兵分两路,一路从左侧进入第一个神经元,另一路从右侧进入第二个神经元。这两个神经元分别完成计算,并通过w'1和w'2进行加权求和得到y。所以,输出y实际上就是两个神经元的叠加。这个网络仍然是一个将x映射到y的函数,函数方程为:

在这个公式中,有w1, w2, w'1, w'2, b1, b2这样6个不同的参数。它们的组合也会对曲线的形状有影响。

例如,我们可以取w1=w2=w'1=w'2=1,b1=-1,b2=0,则该函数的曲线形状如图3.10所示。

由此可见,合成的函数图形变为了一个具有两个阶梯的曲线。

让我们再来看一个参数组合,w1=w2=1,b1=0,b2=-1,w'1=1,w'2=-1,则函数图形如图3.11所示。

由此可见,我们合成了一个具有单一波峰的曲线,有点类似于正态分布的钟形曲线。一般地,只要变换参数组合,我们就可以用两个隐含层神经元拟合出任意具有单峰的曲线。

那么,如果有4个或者6个甚至更多的隐含层神经元,不难想象,就可以得到具有双峰、三峰和任意多个峰的曲线,我们可以粗略地认为两个神经元可以用来逼近一个波峰(波谷)。事实上,对于更一般的情形,科学家早已从理论上证明,用有限多的隐含层神经元可以逼近任意的有限区间内的曲线,这叫作通用逼近定理(universal approximation theorem)。

本文节选自《深度学习原理与PyTorch实战》

本书是一本系统介绍深度学习及开源框架PyTorch的入门书。全书注重实战,每章围绕一个有意思的实战案例展开,不仅循序渐进地讲解了PyTorch的基本使用、神经网络的搭建、卷积神经网络和循环神经网络的实现,而且全面深入地介绍了计算机视觉、自然语言处理、迁移学习,以及对抗学习和深度强化学习等前沿技术。读者通过阅读本书,可以轻松入门深度学习,学会构造一个图像识别器,生成逼真的图画,让机器理解单词与文本,让机器作曲,教会机器玩游戏,还可以实现一个简单的机器翻译系统。 本书适用于人工智能行业的软件工程师、对人工智能感兴趣的学生,也非常适合作为深度学习培训教程。

本文标签:哪些Spring核心嵌套循环详解

原文链接:https://www.xgfox.com/alpx/706.html

本文版权:如无特别标注,本站文章均为原创。