神经网络基础:DNN、CNN、RNN、RvNN、梯度下降、反向传播 您所在的位置:网站首页 迷你世界人物皮肤图片男生帅气版 神经网络基础:DNN、CNN、RNN、RvNN、梯度下降、反向传播

神经网络基础:DNN、CNN、RNN、RvNN、梯度下降、反向传播

2023-10-09 07:32| 来源: 网络整理| 查看: 265

在介绍神经网络之前,首先介绍一下神经元模型。 神经元模型可以描述为这样的一张图: 神经元模型 对于一个模型而言,我们首先要把握住四个部分:输入、输出、参数以及对应的运算关系。(这一点很重要) 在上图所示的神经元模型中: 输入为 X X X,输出为 Y Y Y,参数为权重 W W W和偏置 b b b。 其运算关系为: Z = x 1 w 1 + x 2 w 2 + . . . + x n w n + b Z = x_1w_1+x_2w_2+...+x_nw_n+b Z=x1​w1​+x2​w2​+...+xn​wn​+b Y = σ ( Z ) = σ ( W T X + b ) Y = σ(Z) = σ(W^TX+b) Y=σ(Z)=σ(WTX+b) 其中, σ σ σ被称为激活函数,一般为连续的非线性函数,以增强网络的表示能力。 常见的激活函数有Sigmoid函数、Relu函数、Tanh函数等等,在这里不一一赘述,有兴趣的朋友们可以自行百度。 人工神经网络就是由神经元模型组成的,具有并行分布式结构的神经网络模型。

【一】DNN

DNN,前馈神经网络,网络中神经元分属于不同的层,整个网络中无反馈,信号从输入层向输出层单向传播,可用一个有向无环图表示 。 DNN基本结构 从图中可以看出,网络的输入与神经元模型相同,是一个 N N N维向量 X X X,网络的输出是一个 M M M维向量 Y Y Y。因此,模型中的运算关系可以看作 f : R n → R m f:R^n \to R^m f:Rn→Rm。 此外,模型中的参数包括每层所对应的权重 W i W^i Wi和偏置 b i b^i bi。 这样,整个模型可以描述为: Y = f ( X , θ ) θ = { W 1 , b 1 , W 2 , b 2 , . . . , W L , b L } Y = f(X, θ) \quad θ = \{W^1,b^1,W^2,b^2,...,W^L,b^L\} Y=f(X,θ)θ={W1,b1,W2,b2,...,WL,bL} y = f ( x ) = σ ( W L . . . σ ( W 2 σ ( W 1 x + b 1 ) + b 2 ) . . . + b L ) y = f(x) = σ(W^L...σ(W^2σ(W^1x+b^1)+b^2)...+b^L) y=f(x)=σ(WL...σ(W2σ(W1x+b1)+b2)...+bL) 其中,对于每一层而言: Z L = W L a L − 1 + b L , a L = σ ( Z L ) Z^L = W^La^{L-1}+b^L, \quad\quad a^L = σ(Z^L) ZL=WLaL−1+bL,aL=σ(ZL) 即: X = a 0 → Z 1 → a 1 → Z 2 → . . . → a L − 1 → Z L → a L = Y X = a^0 \to Z^1 \to a^1 \to Z^2 \to...\to a^{L-1} \to Z^L \to a^L = Y X=a0→Z1→a1→Z2→...→aL−1→ZL→aL=Y 在上述模型中,需要经过计算得到的,就是模型中的参数值( W W W, b b b),对于有监督训练来讲(在这里,为了简化问题,我们仅考虑有监督训练问题),如何求得权重 W W W和偏置 b b b呢?

【二】梯度下降法

在有监督训练中,我们有给定的实例 ( x i , y i ′ ) (x^i, {y^i}') (xi,yi′),那么很自然地,我们会想到列方程来求解参数,但是当参数个数很多时,给定的实例个数可能会小于参数个数,这样,方程法将无法求解参数。 所以,我们通过另一种方式来进行参数求解——迭代调参:通过调整参数,让模型输出递归性地逼近标准输出。

在神经网络中,我们往往用迭代调参的方法进行参数求解。 很明显,在调参的过程中会有三个最基本的问题: 1.参数的初始值是什么? 2.怎么调参数? 3.要把参数调到什么程度才算结束?

对于第一个问题,方法很简答:随便设置参数初值。 因为参数值在迭代过程中是可调的,所以初始值并不重要(实际上还是会对模型效果有些影响的,在后面的多极值点函数问题中会提到),因此,可以随意设置。

对于后两个问题,一般来说,迭代调参方式分为两个步骤: 1.定义目标函数(损失函数):将问题转化为极值问题。 2.优化目标函数:用调参的方式求目标函数的极值,以此来确定参数。 这样,我们既解决了如何调整参数的问题,也确定了调参什么时间结束。

为了反应模型输出对真实结果的拟合程度,很自然地会想到利用模型输出结果 y i y^i yi与真实结果 y i ′ {y^i}' yi′之间的误差定义目标函数。 损失函数,也就是我们所说的目标函数,常记作 C ( θ ) C(θ) C(θ)或 L ( θ ) L(θ) L(θ),我们的问题也就定义成了:求解 m i n C ( θ ) minC(θ) minC(θ),使得模型输出与真实结果之间的误差最小。 损失函数有很多,交叉熵函数是较为常用的一种,对损失函数感兴趣的朋友可以自行百度了解~

现在,目标函数定义好了,索性将其表示为 L ( θ ) L(θ) L(θ),我们的问题和目标都已经很清晰了: 已知 L ( θ ) L(θ) L(θ),求 m i n L ( θ ) minL(θ) minL(θ) 我们将其描述为“优化目标函数”过程,也就是上面所说的步骤二:利用迭代调参的方式逼近我们的目标。 这种迭代调参的方法就是大名鼎鼎的梯度下降法。

梯度下降法背后的数学原理是泰勒公式: 假如函数 h ( x ) h(x) h(x)在 x = x 0 x = x_0 x=x0​附近无限可微,那么利用泰勒展开可以写为: h ( x ) = ∑ k = 0 ∞ h ( k ) ( x 0 ) k ! ( x − x 0 ) k h(x) = \sum_{k=0}^∞\frac{h^{(k)}(x_0)}{k!}(x-x_0)^k h(x)=k=0∑∞​k!h(k)(x0​)​(x−x0​)k = h ( x 0 ) + h ′ ( x 0 ) ( x − x 0 ) + h ′ ′ ( x 0 ) 2 ! ( x − x 0 ) 2 + . . . =h(x_0)+h'(x_0)(x-x_0)+\frac{h''(x_0)}{2!}(x-x_0)^2+... =h(x0​)+h′(x0​)(x−x0​)+2!h′′(x0​)​(x−x0​)2+...

那么,当 x x x与 x 0 x_0 x0​无限接近时,上式可以写为: h ( x ) ≈ h ( x 0 ) + h ′ ( x 0 ) ( x − x 0 ) h(x)≈h(x_0)+h'(x_0)(x-x_0) h(x)≈h(x0​)+h′(x0​)(x−x0​) 不失一般性: h ( x 1 ) = h ( x 0 ) + h ′ ( x 0 ) ( x 1 − x 0 ) h(x_1)=h(x_0)+h'(x_0)(x_1-x_0) h(x1​)=h(x0​)+h′(x0​)(x1​−x0​) 由于我们的目标是求解函数 h ( x ) h(x) h(x)的极小值(在这里我们将 h ( x ) h(x) h(x)看作目标函数),那么每次选取的 h ( x i ) h(x_i) h(xi​)的值要比上一次的 h ( x i − 1 ) h(x_{i-1}) h(xi−1​)更小,即: h ( x i ) ; h ( x i − 1 ) h(x_i);h(x_{i-1}) h(xi​)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有