【NLP】 11. 神经网络,线性模子,非线性模子,激活函数,感知器优化,正则 ...

打印 上一主题 下一主题

主题 1000|帖子 1000|积分 3000

神经网络Neural Network

线性模子

                                         f                            (                            x                            )                            =                            x                            ∗                            W                                  f(x) = x * W                     f(x)=x∗W
score = features * weights
非线性模子

   Deep Learning: How do deep neural networks work? » Lamarr-Blog](https://lamarr-institute.org/wp-content/uploads/deepLearn_2_EN.png
  hidden_units_scores = g(features * weights1) weights2
input x 就是features x1,x2到scores的时间经过第一层权重(weights 1st layer), 这时间x和weights相乘得到了一个分数scores。 接着score进入激活函数,也就是公式之中的g(),激活函数的选择有多种,下面会先容。scores进入激活函数之后得到g(score)的结果,将其流传至隐藏层(如果网络只有2层,那么就流传到输出层),流传过程中又有一个权重,也就是weights2。
激活函数

1. sigmoid

                                         s                            i                            g                            m                            o                            i                            d                            (                            x                            )                            =                                       1                                           1                                  +                                               e                                                   −                                        x                                                                                sigmoid(x) = \frac{1}{1 + e^{-x}}                     sigmoid(x)=1+e−x1​
导数(梯度计算)

Sigmoid 的导数公式:
                                                    σ                               ′                                      (                            x                            )                            =                            σ                            (                            x                            )                            (                            1                            −                            σ                            (                            x                            )                            )                                  \sigma'(x) = \sigma(x) (1 - \sigma(x))                     σ′(x)=σ(x)(1−σ(x))
这个导数的特点:


  • 当 x 远离 0(即 x≫0 或 x≪0)时,梯度趋近于 0,容易导致梯度消失问题。
  • 当 x=0 时,梯度最大,约为0.25。
其中:

   Derivative of the Sigmoid function | by Arc | TDS Archive | Medium](https://miro.medium.com/v2/resize:fit:1400/1*6A3A_rt4YmumHusvTvVTxw.png)
  2. tanh

                                         t                            a                            n                            h                            (                            x                            )                            =                                                                e                                     x                                              −                                               e                                                   −                                        x                                                                                            e                                     x                                              +                                               e                                                   −                                        x                                                                                tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}                     tanh(x)=ex+e−xex−e−x​
性质



  • 输出范围是 (−1,1)(相比 Sigmoid(输出范围 (0,1)),Tanh 居中于 0,因此更适适用作隐藏层激活函数。
  • 当 x→+∞x,tanh⁡(x)→1
  • 当 x→−∞,tanh⁡(x)→−1
导数

                                         t                            a                            n                                       h                               ′                                      (                            x                            )                            =                            1                            −                                                   tanh                                  ⁡                                          2                                      (                            x                            )                                  tanh'(x) = 1 - \tanh^2(x)                     tanh′(x)=1−tanh2(x)


  • 在 x=0 处,梯度最大,为 1。
  • 当 x 远离 0(绝对值变大)时,梯度趋近于 0,可能会导致梯度消失问题。

   What is the derivative of f’(X) =tanh? - Quora](https://qph.cf2.quoracdn.net/main-qimg-f1baf29cfdb09202b18e2179f4f41bfc)
  Relu

                                         ReLU                            (                            x                            )                            =                            max                            ⁡                            (                            0                            ,                            x                            )                                  \text{ReLU}(x) = \max(0, x)                     ReLU(x)=max(0,x)
性质



  • 当 x>0时,ReLU(x)=x(线性)。
  • 当 x≤0, ReLU(x)=0(恒为 0)。
  • 计算简单,适用于深度神经网络。
导数(梯度计算)

                                                    ReLU                               ′                                      (                            x                            )                            =                                       {                                                                                                     1                                              ,                                                                                                                            x                                              >                                              0                                                                                                                                                  0                                              ,                                                                                                                            x                                              <                                              0                                                                                                             \text{ReLU}'(x) = \begin{cases} 1, & x > 0 \\ 0, & x < 0 \end{cases}                     ReLU′(x)={1,0,​x>0x<0​


  • 问题:x=0 处的导数?
    严格来说,ReLU 在 x=0 处不可导,常用的方式是取 x=0 处的导数为 1 或 0(一般取 1 方便计算)。
优缺点

优点:


  • 计算效率高(只需取最大值)。
  • 办理了 Sigmoid/Tanh 的梯度消失问题(只办理了正数部分的梯度消失问题,正数部分梯度恒为 1)。
  • 具有希罕激活特性,使部分神经元输出 0,有利于减少计算量。
缺点:


  • 死亡 ReLU(Dead ReLU):如果大量神经元的输入 x≤0,梯度为 0,无法更新权重,可能导致神经元永远失活(尤其是大学习率时)。
  • 改进版本

    • Leaky ReLU:给 x≤0 处加一个小斜率(如 0.01),公式: Leaky ReLU(x)=max⁡(0.01x,x)
    • Parametric ReLU (PReLU):斜率可学习: PReLU(x)=max⁡(αx,x)


   ReLU activation function and its derivative | Download Scientific Diagram](https://www.researchgate.net/publication/359884439/figure/fig3/AS:1147051651932161@1650489833478/ReLU-activation-function-and-its-derivative.png)
  模子优化:梯度下降流程与损失函数先容

梯度下降与损失函数优化概述

1. 什么是损失函数(Loss Function)?

损失函数是一个数学函数,用来衡量模子的猜测值与真实值之间的误差。损失函数越小,阐明模子的猜测越准确。
常见的损失函数包罗:


  • 均方误差(MSE, Mean Squared Error):
                                                       MSE                                  =                                               1                                     n                                              ∑                                  (                                               y                                     true                                              −                                               y                                     pred                                                           )                                     2                                                      \text{MSE} = \frac{1}{n} \sum (y_{\text{true}} - y_{\text{pred}})^2                           MSE=n1​∑(ytrue​−ypred​)2
  • 交叉熵损失(Cross-Entropy Loss):
                                                       Cross-Entropy                                  =                                  −                                  ∑                                               y                                     true                                              log                                  ⁡                                  (                                               y                                     pred                                              )                                          \text{Cross-Entropy} = - \sum y_{\text{true}} \log(y_{\text{pred}})                           Cross-Entropy=−∑ytrue​log(ypred​)
2. 什么是导数?

导数表示函数的变革率,也就是函数在某一点的斜率。


  • 若函数的导数为正,表示函数在该点是上升趋势。
  • 若函数的导数为负,表示函数在该点是下降趋势。
  • 若导数为 0,表示函数在该点可能是极值点(最小值或最大值)。
3. 梯度下降的焦点头脑

梯度下降(Gradient Descent)是一种优化算法,用于最小化损失函数。


  • 梯度(Gradient): 代表损失函数相对于参数的导数,即参数变革时损失的变革率。
  • 下降(Descent): 为了减少损失,我们必要沿着梯度的负方向更新参数。




4. 负梯度下降(Gradient Descent)

由于导数表示的是增加函数的方向,所以我们要朝着负梯度方向移动,让 Loss 变小:
                                                    w                               new                                      =                                       w                               old                                      −                            η                                                   d                                  L                                                      d                                  w                                                       w_{\text{new}} = w_{\text{old}} - \eta \frac{dL}{dw}                     wnew​=wold​−ηdwdL​
其中:


  • wold 是当前参数
  • η(学习率)控制更新步长
  •                                                                               d                                        L                                                                d                                        w                                                                   \frac{dL}{dw}                           dwdL​
    是损失函数对参数的导数
非线性办理XOR问题


   XOR gate using 2:1 MUX | VLSI Design Interview Questions With Answers - Ebook](https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSfxjqx6oHBQvQ14y9uaQyHptTYdFqOaylpqdJjMjdhzpWN6G2S09cYVFgqmaLwteRM3yQ&usqp=CAU)
  ReLU(x1+ x2) - 2 (ReLU(x1 + x2 - 1) 办理XOR问题
point(0,0) : output = 0 - 0 = 0 -> 类别A
point (1, 0) : output = 1 - 0 = 1 -> 类别B
point (0, 1) : output = 1 - 0 = 1 -> 类别B
point (1, 1) : output = 2 - 2 = 0 -> 类别A
正则化学习方法


  • 修改损失函数,引入惩罚项(例如L1、L2正则化)
    在损失函数中加入额外的惩罚项,用于控制模子复杂度,防止过拟合。L1正则化会使一些权重变为零,L2正则化会使权重尽量小。
  • Dropout(抛弃法)
    在训练过程中,随机地将一些神经网络的权重设为零,减少模子对某些神经元的依靠,提高模子的泛化本领。通过这种方式,网络可以学到更为鲁棒的特性表示。
  • Early Stopping(提前制止)
    当验证集的损失开始上升,或者训练误差变得很小时,制止进一步的反向流传训练,制止模子继续在训练数据上过拟合。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表