深度神经网络--3.1 前向网络
本章介绍了深度神经网络的几个相关概念,并给出了用MindSpore实现简单神经网络的样例。
深度学习(Deep Learning)与传统机器学习最大的不同在于其利用神经网络对数据进行高级抽象。而最基础的神经网络结构为前向神经网络(Feed forwardNeural Network,FNN),又称多层感知机(Multi-Layer Perceptron,MLP)。
在介绍多层感知机之前,先来认识一下神经网络的基础单元——感知机。如图3.1所示,x1,x2,…,xn为输入,w1,w2,…,wn为与之对应的权重,w0为偏置。感知机对这些输入进行加权求和,再加上偏置值w0,最后通过激活函数f(·)得到神经元的输出。在分类问题中提到的逻辑函数为一种常用的激活函数(Activation Function),目的是将一个在较大范围变化的值挤压到(0,1)的输出值范围内,或者输出0/1对应的概率值。此外,双余弦函数以及修正线性单元(Rectified Linear Unit,ReLU)函数ReLU(x)=max(x,0)也经常作为神经元的激活函数。这些激活函数的目的都是为神经元带来非线性运算。相比线性函数而言,非线性函数的表达能力更强,图3.2展示了这三种激活函数的形状。
尽管非线性激活函数的单个神经元带来了非线性特征,但它只拥有一层神经元,学习能力非常有限,仍然只能处理线性可分的问题。为了解决更复杂的非线性可分问题,多层感知机(MLP)被提出。图3.3为一个简单的三层前向神经网络模型,包括输入层、隐藏层和输出层。数据x作为输入提供给输入层,经过线性映射和非线性激活函数,得到隐藏层。隐藏层再经过一层运算得到输出层。其中输入层的节点数由数据本身的属性数量决定,输出层的节点数可以是类别个数、抽象特征个数等。隐藏层的层数人为指定,并且层数可以是一层或多层,每个隐藏层上都可设置一类非线性激活函数。经过线性组合与非线性变换,这个由多层神经元组成的函数模型,具有更强大的学习能力。
- 点赞
- 收藏
- 关注作者
评论(0)