softmax函数的定义及求导

本文中 (x0,x1,...,xm) 代表一个向量,也就是一个 m 行1列的矩阵。

在监督式的深度学习中,输入通常是一个向量,用x表示,输出 y 则可以分为多种情况。

  • 标量。y表示输入 x 属于某一类别的概率。
  • 向量。此时输入x可能属于多个类别。 y=(y0,y1,...,yn) 。元素 yi 代表向量属于类别 i 的可能性。数值越大,可能性越高。但是,深度学习模型输出的yi不必然是介于0和1之间的概率值, softmax 函数的作用就是对向量进行归一化,生成概率值。

    softmax 函数的作用如下。

    softmax((y0,y1,...,yn))=(y0Σni=0yi,...,ynΣni=0yi)

    也就是说, softmax 函数的输入是一个向量,而其输出也是一个向量,向量中的每个元素都是介于0和1之间的概率值。下面将以最简单的形式来描述 softmax 函数的定义和求导问题。假设输入是包含3个元素的向量,而输出是包含2个元素的向量,也就说 m=2,n=1 ,如下图所示。
    这里写图片描述
    图中表示了从输入到输出的一个转换过程,参数有6个,可以写成一个矩阵的形式。
    θ=[w00,w10,w20w01,w11,w21]
    这里把与输出向量中每个元素链接的权重组织成一行,所以共有两行。令 θ0=[w00,w10,w20] θ1=[w01,w11,w21] ,则有。
    θ=[θ0θ1]
    h 来代表转换函数,则有如下式子。
    y0=h(θ0,x)
    y1=h(θ1,x)

    针对这个具体例子则有。
    softmax((y0,y1))=(h(θ0,x)h(θ0,x)+h(θ1,x),h(θ1,x)h(θ0,x)+h(θ1,x))

    为了方便书写,令
    z0=h(θ0,x)h(θ0,x)+h(θ1,x)
    z1=h(θ1,x)h(θ0,x)+h(θ1,x)
    按照对向量求导的定义,其结果应该是一个Jacobian矩阵,则对 softmax 函数的求导可以写为如下形式。
    softmax((y0,y1))x=z0xz1x=z0x0z0x1z0x2z1x0z1x1z1x2

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值