循环神经网络
一、感知机与神经网络
1 感知机
1.1感知机的概念
感知机(Perceptron),又称神经元(Neuron,对生物神经元进行了模仿)是神 经网络(深度学习)的起源算法,可以接收多个输入信号,产生一个输出信号
1.2感知机的功能
作为分类器(多个离散值)/回归器(一个连续值),实现自我学习
实现逻辑运算,包括逻辑和(AND)、逻辑或(OR)
1.3感知机的缺陷
感知机的局限在于无法处理“异或”问题(非线性问题)
结构简单,完成的功能有限
多层感知机
多层感知机(Multi-Layer Perceptron ,MLP):通过多个感知机组合来解决异或问题
2 神经网络
2.1神经网络
和多层感知机有什么区别?
多层前馈神经网络(Multi-layer Feedforward Neural Networks):将多个感知机连在一起,形成一个级联网络结构。
前馈是指将前一层的输出作为后一层的输入的逻辑结构,每一层神经元仅与下一层的神经元全连接,同一层内或者跨层之间的神经元彼此不连接。
2.2神经网络的功能
用近似定理去模拟目标函数,前馈神经网络在理论上可近似解决任何问题
近似定理:对于任意复杂度的连续波莱尔可测函数(Borel Measurable Function)f,仅仅需要一个隐含层,只要这个隐含层包括足够多的神经元,前馈神经网络使用挤压函数(Squashing Function)作为激活函数,就可以以任意精度来近似模拟f。如果想增加f的近似精度,单纯依靠增加神经元的数目即可实现。
通用近似定理:
神经网络结构的另一个进化方向:纵深,减少单层的神经元数量,增加神经网络的层数,这会显著提升神经网络系统的学习性能
多层神经网络计算公式:
3 MLP
MLP:多层感知机(Multilayer Perceptron),最基本的人工神经网络模型之一,由多个神经元组成,每个神经元层与下一层全连接。
通常由一个输入层、一个或多个隐藏层以及一个输出层组成。
输入层(Input Layer):接收原始数据输入的层。
隐藏层(Hidden Layers):对输入数据进行非线性变换的层,使得MLP可以学习非线性关系。
输出层(Output Layer):产生最终预测结果的层。根据问题不同有不同的激活函数,回归问题用线性激活函数。
MLP通过反向传播算法进行训练,利用梯度下降等优化算法来最小化预测值与真实标签之间的误差。它在许多领域都得到了广泛的应用,如图像识别、自然语言处理、预测分析等。
MLP和感知器模型效果对比
原数据-第一线性模块的输出-第一非线性模块输出-第二线性模块输出改变了空间
感知器不行的原因在于:没有额外的层来修正数据的形状。
MLP实现
MLP模型-模型实例化-测试
4 DNN模型
DNN(Deep Neural Network,深度神经网络)是一类人工神经网络,包含多个隐藏层。
与传统的浅层神经网络(eg只有一个隐藏层的多层感知器MLP)相比,DNN通过增加隐藏层的数量,可以学习和表示数据中更加复杂和抽象的特征。
关键特点:
-
深度:DNN的“深度”指的是网络中隐藏层的数量。一个网络层数越多,其能够捕捉的特征越复杂。
-
层次化特征表示:DNN通过逐层抽象和变换数据,逐步提取低级、中级和高级特征。例如,在图像识别任务中,前几层可能提取边缘和纹理,中间几层可能提取局部形状和图案,后几层则可能提取整体的物体结构和类别信息。
-
非线性变换:每个隐藏层通常由线性变换和非线性激活函数组成。这些非线性激活函数(如ReLU、sigmoid、tanh等)使得DNN可以学习非线性映射。
组成部分:
-
输入层:接收原始数据输入。
-
隐藏层:包括多个隐藏层,每个层包含若干个神经元,这些神经元通过线性变换和非线性激活函数
处理输入数据。
-
输出层:生成最终的预测结果。输出层的形式和激活函数取决于具体任务(如分类或回归)。
4.1训练过程
DNN的训练过程通常使用反向传播(backpropagation)算法和优化算法(如梯度下降、Adam等)。反向传播算法通过计算每个参数的梯度来最小化损失函数,从而调整网络的权重和偏置。
4.2DNN存在的问题
标准DNN假设数据之间是独立的,在处理前后依赖、序列问题(语音、文本、视频等)力不从心。
文本数据对文字前后次序非常敏感,和图像数据差别非常大。
传统的深度神经网络(DNN)由于其结构的固有限制无法捕捉前置时间的信息,通过在网络中引入新的参数和结构来处理时序数据。
传统的MLP通过不断学习调节Win和Wout来适应任务。
在传统的多层感知器(MLP)中引入时间特征,通过堆叠的方式传递前置时间的信息,引入新的参数Ws调节前置时间信息的传递。为简化计算,所有的时间权重参数都可以使用同一个参数矩阵Ws。网络在每次更新中都包含了上一时刻的状态St-1和权重参数Ws,能够更好地捕捉时序数据中的前置时间信息,有效地拓展了传统DNN网络的应用范围,能够处理更复杂的时序数据任务,例如时间序列预测、语音识别等。
传统的DNN网络可以表示为:
$$
S=f(W_{in}X+b)
$$
引入时间特征后的网络更新规则:
$$
S_t =f(W_{in}X+W_sS_{t-1}+b)
$$
5 激活函数
激活函数(activation function):在神经网络中,将输入信号的总和转换为输出信号的函数
将多层感知机输出转换为非线性,使得神经网络可以任意逼近任何非线性函数,是区别多层感知机和神经网络(使用连续函数作为激活函数)的区别。
5.1常见激活函数
5.1.1阶跃函数(Step Function)
一种特殊的连续时间函数,从0跳变到1的过程
$$
f(x)=\begin{cases}1 (x\geq 0)\\0 (x<0) \end{cases}
$$
5.1.2sigmoid函数
Logistic函数,用于隐层神经元输出,取值范围(0,1),可以将一个实数映射到(0,1)区间用来做二分类
$$
f(x)=\frac{1}{1+e^{-x}}
$$
优点:平滑,易于求导
缺点:激活函数计算量大,反向传播求误差梯度时求导涉及除法容易出现梯度消失的情况,无方完成深层网络的训练
5.1.3tanh双曲正切函数
$$
tanh(x)=\frac{1-e^{-2x}}{1+e^{-2x}}
$$
优点:平滑,易于求导,输出均值为0,收敛速度比sigmoid快,可以减少迭代次数
缺点:梯度消失
常用于NLP中
5.1.4ReLU(Rectified Linear Units,修正线性单元)
$$
f(x)=\begin{cases}x (x> 0)\\0 (x≤0) \end{cases}
$$
优点:更加有效率的梯度下降以及反向传播,避免了梯度爆炸和梯度消失的问题
计算简单
缺点:≤0的部分梯度为0,会导致部分神经元死亡
常用于图像
5.2 softmax函数
softmax函数将多分类的输出数值转化为累计和为1的相对概率,常用于神经网络的输出层。
ReLU一般用在隐藏层,主要作用是引入非线性使得网络能够处理复杂的任务,来激活金额调整中间特征
softmax一般用在输出层,将模型输出转化为概率分布,用于分类任务的最终决策,预测每个类别的概率

最低0.47元/天 解锁文章
183

被折叠的 条评论
为什么被折叠?



