zoukankan      html  css  js  c++  java
  • Softmax函数

    • 相关概念:

      max函数定义就是在选取最大的值.这个最大值函数只能选择最大值

      如果我想要一个能够大概率选择最大值,还能够小概率选择小值的函数.这就要用到softmax函数

      softmax函数的定义:或称为归一化指数函数,是逻辑函数的推广.能够将一个含有任意实数的k维向量z压缩到另一个k维实向量(sigma (z))中,使得每个元素都在(0,1)之间,并且和为1.$$sigma (z){j}=frac{e{z_{j}}}{sum_{k=1}{K} e^{z{k}}}, j=1,2,...K$$

    • 实际应用:

      在神经网络中利用softmax函数来进行反向传播:神经网络的正向传播计算的分数S1,和按照正确标注计算的分数S2之间的差距,计算Loss,才能应用反向传播 $$L_{i}=-log(frac{e^{f_{y_{i}}}}{sum_{j} e^{j}})$$

      在优化loss过程中,我们要通过梯度下降,每次优化一个step大小的梯度,这个时候我们就要求Loss对每个权重矩阵的偏导,然后应用链式法则。那么这个过程的第一步,就是求Loss对score的偏导.score (y_{i}),先定义(P(y_{i})):$$P(y_{i})=frac{e^{f_{y_{i}}}}{sum_{j} e^{j}}$$ loss 对score的偏导:

    [frac{partial L_{i}}{partial f_{yi}}=- ln (frac{e^{f_{y_{i}}}}{sum _{j} e^{j}})^{'} ]

    [=-1 *frac{sum_{j} e^{j}}{e^{f_{y_{i}}}}* (frac{e^{f_{y_{i}}}}{sum_{j}e^{j}})^{'} ]

    [=-1 *frac{sum_{j} e^{j}}{e^{f_{y_{i}}}}*(1-frac{sum_{j eq f_{yi}} e^{j}}{sum_{j}e^{j}})^{'} ]

    [=-1 *frac{sum_{j} e^{j}}{e^{f_{y_{i}}}}*-1*sum_{j eq f_{yi}} e^{j}*-1*frac{1}{(sum_{j} e^{j})^{2}}*(sum_{j}e^{j})^{'} ]

    [=-1 *frac{sum_{j} e^{j}}{e^{f_{y_{i}}}}*-1*sum_{j eq f_{yi}} e^{j}*-1*frac{1}{(sum_{j} e^{j})^{2}}*e^{f_{y_{i}}} ]

    [=-(1-P_{f_{y_{i}}})=P_{f_{y_{i}}}-1 ]


    可以看得出求导结果的形式非常清晰明了.求解损失函数的梯度,只需要计算概率向量在真正结果的那一个维度减一即可.

    不要用狭隘的眼光看待不了解的事物,自己没有涉及到的领域不要急于否定. 每天学习一点,努力过好平凡的生活.
  • 相关阅读:
    VBA的程序终止、退出语句块、分支及错误处理(End, exit, on error go to in VBA
    关于session中的cookie提取
    Python爬虫 —— 知乎之selenium模拟登陆获取cookies+requests.Session()访问+session序列化-转
    tar 解压命令出现如下错误
    操作系统 ----- 段错误(核心转储)
    c++游戏入门基础
    数据结构算法
    point(指针)
    《淘宝网》质量属性简析
    《架构漫谈》读后感
  • 原文地址:https://www.cnblogs.com/GeekDanny/p/9667985.html
Copyright © 2011-2022 走看看