• 梯度下降


    梯度下降

    sigmod 函数:

    [sigma = frac{1}{1+e^{-x}} ]

    sigmod 的导数为: $$sigma^{'} = sigma(x)(1-sigma(x)) $$

    推导该公式:

    [egin{aligned} sigma^{'} &= frac{partial}{partial x}frac{1}{ 1+e^{-x}}\&=frac{e^{-x}}{({1+e^{-x}})^{-2}}\&=frac{1}{1+e^{-x}}cdotfrac{e^{-x}}{1+e^{-x}}\&=sigma(x)(1-sigma(x)) end{aligned} ]

    sigmoid

    sigmoid 小结

    优点

    • sigmoid 是使用范围最广的一类激活函数,具有指数函数形状,它在物理意义上最为接近生物神经元。
    • (0, 1) 的输出还可以被表示作概率,或用于输入的归一化,代表性的如Sigmoid交叉熵损失函数。
    • sigmoid函数连续,光滑,严格单调,以(0,0.5)中心对称,是一个非常良好的阈值函数。
    • 当x趋近负无穷时,y趋近于0;趋近于正无穷时,y趋近于1;x=0时,y=0.5。当然,在x超出[-6,6]的范围后,函数值基本上没有变化,值非常接近,在应用中一般不考虑。
    • Sigmoid函数的值域范围限制在(0,1)之间,我们知道[0,1]与概率值的范围是相对应的,这样sigmoid函数就能与一个概率分布联系起来了。

    缺点

    • 最明显的就是饱和性。其两侧导数逐渐趋近于0 具有这种性质的称为软饱和激活函数。由于在后向传递过程中,sigmoid向下传导的梯度包含了一个 f′(x)因子(sigmoid关于输入的导数),因此一旦输入落入饱和区,f′(x) 就会变得接近于0,导致了向底层传递的梯度也变得非常小。此时,网络参数很难得到有效训练。这种现象被称为梯度消失。一般来说, sigmoid 网络在 5 层之内就会产生梯度消失现象。
    • sigmoid函数的输出均大于0,使得输出不是0均值,这称为偏移现象,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。

    误差公式

    如果有m个样本点, 标记为(x^{(1)}, x^{(2)}, ..., x^{(m)}),

    误差公式为:E = (-frac{1}{m}sum_{i=1}^mleft(y^{(i)}ln(hat y^{(i)}) + (1-y^{(i)})ln(1-hat y^{(i)}) ight))

    预测函数: $$ hat y^{(i)} = sigma(Wx^{(i)} + b)$$

    误差的偏导数

    我们的目标是计算E ,在单个样本点x时的梯度即偏导数, 其中x包含n个特征
    即x=((x_1, x_2, ..., x_n))

    [ abla E =left(frac{ partial}{partial w_1}E,... ,frac{ partial}{partial w_n}E, frac{ partial}{partial b}E ight) ]

    先计算 (frac{ partial }{partial w_j}hat y)

    [egin{aligned} frac{ partial }{partial w_j}hat y &=sigma(Wx+b)(1-sigma(Wx+b))cdot frac{partial}{partial w_j}(Wx+b)\ &=hat y(1-hat y)cdot frac{partial}{partial w_j}(Wx+b)\ &=hat y(1-hat y)cdot frac{partial}{partial w_j}(w_1x_1+ w_2x_2+ cdots + w_nx_n +b)\ &=hat y(1-hat y)cdot x_j end{aligned} ]

    现在计算 (frac{partial}{partial w_j}E)

    [egin{aligned} frac{partial}{partial w_j}E &=frac{ partial }{partial w_j}left [-yln(hat y) - (1-y)ln(1-hat y) ight]\&=-yfrac{partial}{partial w_j}(lnhat y) - (1-y)frac{partial}{partial j}ln(1-hat y)\&=-ycdotfrac{1}{hat y}cdotfrac{partial}{partial w_j}hat y - (1-y)cdotfrac{1}{1-hat y}cdotfrac{partial}{partial w_j}(1-hat y)\&=-ycdotfrac{1}{hat y}cdothat y(1-hat y)cdot x_j - (1-y)cdotfrac{1}{1-hat y}cdothat ycdot(1-hat y)cdot(-1)cdot x_j\&= -y(1-hat y)cdot x_j + (1-y)hat y cdot x_j \&= -(y - hat y)x_j end{aligned} ]

    类似地E对b求偏导的公式为:$$frac{partial}{partial b}E = -(y-hat y)$$

    总结为:$$ abla E = -(y-hat y)(x_1, x_2, cdots, x_n, 1)$$
    梯度实际上是标量乘以点的坐标, 标量就是标签与预测之间的差别, 这意味着,
    如果标签与预测接近(即点分类正确), 梯度将很小。

    梯度下降步骤

    减去误差函数的梯度与学习速率的乘积,按如下方式更新:
    (w_i^{'} leftarrow w_i - alpha[-(y- hat y)x_i])

    简写为:(w_i^{'} leftarrow w_i + alpha(y- hat y)x_i) ,
    类似地 (b^{'} leftarrow b + alpha(y- hat y))

    注意: 我们取的误差的平均值,所以要添加(frac{1}{m}cdotalpha)
    而不是(alpha),由于(alpha)为常量,为了简化起见,我用(alpha)
    来表示学习速率 (frac{1}{m}cdotalpha)

    点击原始笔记

  • 相关阅读:
    Android——基于监听器的事件处理(转)
    Android——UI事件的处理机制(基于监听器)
    Android——android weight 属性(百度)
    Android——excise(用线性布局、表格布局、相对布局做发送邮件界面)
    Android——gridLayout(网格布局)
    Android——RelativeLayout(相对布局)
    android:layout_gravity和android:gravity的区别
    Android——布局(线性布局linearLayout,表格布局TableLayout,帧布局FrameLayout)
    Android——UI和View——控制方式
    9.0 alpha 版安装出现 could not execute command lessc 的问题
  • 原文地址:https://www.cnblogs.com/chenshihao/p/12040910.html
Copyright © 2020-2023  润新知