(二)深度学习入门:神经网络的前向传播

目录

前言

一、神经网络的基本结构

二、激活函数

三、神经网络输出层的设计


前言

上一篇我们解决了感知机模型的基本定义和应用,本次我们在感知机的基础上探讨感知机构成神经网络的一些细节,了解神经网络前向传播的过程,重点理解激活函数存在的意义。


一、神经网络的基本结构

(二)深度学习入门:神经网络的前向传播_第1张图片

在如图所示神经网络结构图中,我们把最左边的一列称为输入层,最右边一列称为输出层,在输入层和输出层中间的网络层称为中间层,中间层可以有多个。在实际使用过程中,一个端到端系统我们往往只关注输入和输出即可,中间的处理细节可以忽略,所以中间层又称为隐藏层。

二、激活函数

如果只观察网络的连接方式,与我们上次介绍的多层感知机模型没有明显的区别。但是在处理细节上,神经网络引入了激活函数,即对原始的神经元输出信号进行信号处理转换后再次输出作为实际输出值,这类函数称为激活函数,其作用在于决定如何来激活输入信号的总和。

(二)深度学习入门:神经网络的前向传播_第2张图片

 1.阶跃函数

(二)深度学习入门:神经网络的前向传播_第3张图片

2.sigmoid函数

(二)深度学习入门:神经网络的前向传播_第4张图片

阶跃函数和sigmoid的对比: 

在感知机模型当中,神经元的输出只有0或1两种情况,也可以认为在感知机模型中使用了阶跃函数作为神经元的激活函数。sigmoid函数相较于阶跃函数来说具有平滑性,没有函数值突变(导数无穷大处),在下一篇我们会知道,激活函数的平滑性对误差的反向传播具有重要意义。在共同点方面,两个函数输出值均在[0,1]内,可以将神经元的原始输出转化为[0,1]之间的实数,而且原始信号的强度越高,输出的数值越接近1;反之,原始信号的强度越低,输出的数值越接近0。进一步观察,我们发现两个函数均为非线性函数,为什么神经网络的激活函数要使用非线性函数而不能使用线性函数呢?线性函数之间的嵌套总可以有一个简单线性函数可以等价替代,也就是说如果使用线性函数作为神经元的激活函数,那么加深神经网络的深度是没有意义的,两层网络和多层网络所表示的对应关系都可用一个线性关系来表达,此时的神经网络就不具有处理非线性问题的能力了。

3.ReLU函数

在近年的神经网络研究和实际应用中,ReLU函数的应用更为广泛。

(二)深度学习入门:神经网络的前向传播_第5张图片

相较于其他激活函数,ReLU函数有何优势呢?

  1. 计算效率高:ReLU函数的计算非常简单,只需要判断输入是否小于0,并将小于0的值置为0。相比于其他激活函数,计算效率更高,尤其是在大型神经网络中。

  2. 避免梯度消失问题:对于较大的正数输入,ReLU函数的导数恒为1,不会出现梯度消失的问题,有助于加速模型的训练。

  3. 稀疏激活性:ReLU函数输出大于0的部分为稀疏激活,即只有部分神经元被激活,可以降低模型的复杂性,减少过拟合的风险。

  4. 强大的表达能力:ReLU函数在处理图像等具有稀疏特征的数据时,能够更好地提取和表示特征,有利于模型的学习和泛化能力。

然而,ReLU函数也存在一些缺点,比如对于负数输入的神经元,梯度为0,可能导致神经元失活,造成“神经元死亡”问题。针对这个问题,可以采用Leaky ReLU、PReLU等变种形式来解决。

三、神经网络输出层的设计

应用神经网络解决的问题主要分为两类:分类问题和回归问题。分类问题是解决是什么的问题,输出结果是对应的类别编号,是一个离散的实数值,例如物体识别、是否正确佩戴口罩,整个问题的解集可以用有限个实数来表示;回归问题是解决是多少的问题,输出结果是某情况下描述量的大小,是一个连续的实数值,例如股价预测、销售额预测等问题,我们更关注的是某指标在未来的变化情况,整个问题的解集不能用有限个实数来表示。一般来说,对于回归问题使用恒等函数,即原样输出神经网络中的值;对于分类问题使用softmax函数,返回每一个类别对应的概率值大小。

1.恒等函数

(二)深度学习入门:神经网络的前向传播_第6张图片

恒等函数会将输入按原样输出,对于输入的信息不加任何改动,原始输出和经过恒等函数的输出是对应的。

2.softmax函数

(二)深度学习入门:神经网络的前向传播_第7张图片

假设输出层一共有n个神经元,计算第k个神经元的输出y_k。如图所示,softmax函数的分子是输入信号a_k的以e为底的指数函数,分母是所有输入信号的以e为底的指数函数的和。

(二)深度学习入门:神经网络的前向传播_第8张图片

 softmax函数的输出与所有的输入信号都有关,输出层的各个神经元都受到所有输入信号的影响。

你可能感兴趣的:(深度学习入门,深度学习,神经网络,人工智能)