理解极大似然估计
很巧妙的解释了为什么使用均方误差,因为均方误差是一种似然估计的变种,而对于逻辑回归softmax而言,更好的解释了其中存在exp
1. 我们可以更深入地探讨指数族与softmax之间的联系。
1. 计算softmax交叉熵损失l(y, ˆy)的二阶导数。
由书中可知对应的sofemax交叉熵一阶导数公式如下:
∂ o j l ( y , y ^ ) = e x p ( o j ) ∑ q k = 1 e x p ( o k ) − y j = s o f t m a x ( o ) j − y j \partial_{o_{j}} l(y,\hat{y})= \frac{exp(o_{j})} {\sum_{q}^{k=1}exp(o_{k})} - y_{j}= softmax(o)_{j}-y_{j} ∂ojl(y,y^)=∑qk=1exp(ok)exp(oj)−yj=softmax(o)j−yj
对其一阶导数求导,需要考虑对于oj和非oj的情况,所以该偏导需要求解两次,分别如下:
∂ o j l ( y , y ^ ) ∂ o j = s o f t m a x ( o ) j − y j ∂ o j = s o f t m a x ( o ) j ∂ o j = exp ( o j ) ∑ q k = 1 exp ( o k ) ∂ o j = exp ( o j ) ∑ q k = 1 exp ( o k ) − ( exp ( o j ) ) 2 ( ∑ q k = 1 exp ( o k ) ) 2 = exp ( o j ) ∑ q k = 1 exp ( o k ) ( 1 − exp ( o j ) ∑ q k = 1 exp ( o k ) ) = s o f t m a x ( o ) j ( 1 − s o f t m a x ( o ) j ) \begin{split} \frac{\partial_{o_{j}} l(y,\hat{y})}{\partial_{o_{j}}}&= \frac{softmax(o)_{j}-y_{j}}{\partial_{o_{j}}} \\&= \frac{softmax(o)_{j}}{\partial_{o_{j}}} \\&= \frac{\frac{\exp(o_{j})}{\sum_{q}^{k=1}\exp(o_{k})}}{\partial_{o_{j}}} \\&= \frac{\exp(o_{j}) \sum_{q}^{k=1}\exp(o_{k}) - (\exp(o_{j}))^{2} } { (\sum_{q}^{k=1}\exp(o_{k}))^{2} } \\&= \frac{\exp(o_{j})}{\sum_{q}^{k=1}\exp(o_{k})}(1-\frac{\exp(o_{j})}{\sum_{q}^{k=1}\exp(o_{k})} ) \\&= softmax(o)_{j}(1-softmax(o)_{j}) \end{split} ∂oj∂ojl(y,y^)=∂ojsoftmax(o)j−yj=∂ojsoftmax(o)j=∂oj∑qk=1exp(ok)exp(oj)=(∑qk=1exp(ok))2exp(oj)∑qk=1exp(ok)−(exp(oj))2=∑qk=1exp(ok)exp(oj)(1−∑qk=1exp(ok)exp(oj))=softmax(o)j(1−softmax(o)j)
另一种偏导格式,假设非oj的元素导数设置为oi,如下:
∂ o j l ( y , y ^ ) ∂ o i = s o f t m a x ( o ) j − y j ∂ o i = − exp ( o i ) × exp ( o j ) ( ∑ q k = 1 exp ( o k ) ) 2 = − s o f t m a x ( o ) j × s o f t m a x ( o ) i \begin{split} \frac{\partial_{o_{j}} l(y,\hat{y})}{\partial_{o_{i}}} &= \frac{softmax(o)_{j}-y_{j}}{\partial_{o_{i}}} \\&= -\frac{\exp(o_{i})\times \exp(o_{j})}{(\sum_{q}^{k=1}\exp(o_{k}))^{2}} \\ &= -softmax(o)_{j} \times softmax(o)_{i} \end{split} ∂oi∂ojl(y,y^)=∂oisoftmax(o)j−yj=−(∑qk=1exp(ok))2exp(oi)×exp(oj)=−softmax(o)j×softmax(o)i
2. 计算softmax(o)给出的分布方差,并与上面计算的二阶导数匹配。(不懂了在论坛里面找到一份答案进行查看)
重点是第三步骤的拆分我目前推导不出来
2. 假设我们有三个类发生的概率相等,即概率向量是(1/3, 1/3, 1/3)。
1. 如果我们尝试为它设计二进制代码,有什么问题?
采用2位而进行进行标识三种情况,导致其中一位浪费了。(理解的意思)
2. 请设计一个更好的代码。提示:如果我们尝试编码两个独立的观察结果会发生什么?如果我们联合编码n个观测值怎么办?
尝试编码两个独立的观测结果类似于树结构,哈夫曼编码树结构。
可以将所有观测情况罗列出来,并且根据概率采用霍夫曼编码。或者将每种情况单独使用数字进行标识。
3.1 证明
设 a ≥ b ( 对称性 ) 证明 R e a l S o f t M a x ( a , b ) > m a x ( a , b ) 即证 : l o g ( exp ( a ) + exp ( b ) ) > a ∵ exp ( b ) > 0 ∴ log ( exp ( a ) + exp ( b ) ) > log ( exp ( a ) ) = a 证毕 设a\ge b(对称性) \\ 证明RealSoftMax(a,b) > max(a,b)\\ 即证:log(\exp(a)+\exp(b))>a\\ \because \exp(b)>0\\ \therefore \log(\exp(a) + \exp(b))>\log(\exp(a))=a\\ 证毕 设a≥b(对称性)证明RealSoftMax(a,b)>max(a,b)即证:log(exp(a)+exp(b))>a∵exp(b)>0∴log(exp(a)+exp(b))>log(exp(a))=a证毕
3.2 证明
设 a ≥ b ( 对称性 ) 证明 λ − 1 R e a l S o f t M a x ( λ a , λ b ) > m a x ( a , b ) 即证 : λ − 1 l o g ( exp ( λ a ) + exp ( λ b ) ) > a ∵ exp ( λ b ) > 0 ∴ λ − 1 l log ( exp ( λ a ) + exp ( λ b ) ) > λ − 1 log ( exp ( λ a ) ) = a 证毕 设a\ge b(对称性) \\ 证明\lambda ^{-1}RealSoftMax(\lambda a,\lambda b) > max(a,b)\\ 即证:\lambda ^{-1}log(\exp(\lambda a)+\exp(\lambda b))>a\\ \because \exp(\lambda b)>0\\ \therefore \lambda ^{-1}l\log(\exp(\lambda a) + \exp(\lambda b))>\lambda ^{-1}\log(\exp(\lambda a))=a\\ 证毕 设a≥b(对称性)证明λ−1RealSoftMax(λa,λb)>max(a,b)即证:λ−1log(exp(λa)+exp(λb))>a∵exp(λb)>0∴λ−1llog(exp(λa)+exp(λb))>λ−1log(exp(λa))=a证毕
3.3 证明
设 a ≥ b ( 对称性 ) 证明 λ − 1 R e a l S o f t M a x ( λ a , λ b ) → m a x ( a , b ) 即证 : λ − 1 log ( exp ( λ a ) + exp ( λ b ) ) → a 情况 1 : a > b ∵ a > b , λ → + ∞ ∴ exp ( λ a ) > > exp ( λ b ) ∴ λ − 1 log ( exp ( λ a ) + exp ( λ b ) ) ≈ λ − 1 log ( exp ( λ a ) ) = a 情况 2 : a = b λ − 1 log ( exp ( λ a ) + exp ( λ b ) ) = λ − 1 log ( 2 exp ( λ a ) ) = λ − 1 log 2 + a ≈ a 证毕 \begin{split} &设a\ge b(对称性) \\ &证明\lambda ^{-1}RealSoftMax(\lambda a,\lambda b) \to max(a,b)\\ &即证:\lambda ^{-1}\log(\exp(\lambda a)+\exp(\lambda b))\to a\\ \\ & 情况1:a>b \\ &\because a>b, \lambda \to +\infty\\ &\therefore \exp(\lambda a)>>\exp(\lambda b)\\ &\therefore \lambda ^{-1}\log(\exp(\lambda a) + \exp(\lambda b))\\ &\approx \lambda ^{-1}\log(\exp(\lambda a))\\ &=a\\ \\ &情况2:a=b\\ & \lambda ^{-1}\log(\exp(\lambda a) + \exp(\lambda b))= \lambda ^{-1}\log(2\exp(\lambda a)) \\ &=\lambda ^{-1}\log2 + a \\ &\approx a \\ &证毕 \end{split} 设a≥b(对称性)证明λ−1RealSoftMax(λa,λb)→max(a,b)即证:λ−1log(exp(λa)+exp(λb))→a情况1:a>b∵a>b,λ→+∞∴exp(λa)>>exp(λb)∴λ−1log(exp(λa)+exp(λb))≈λ−1log(exp(λa))=a情况2:a=bλ−1log(exp(λa)+exp(λb))=λ−1log(2exp(λa))=λ−1log2+a≈a证毕
3.4 求解
使用torch.nn.Softmin
s o f t m a x ( x ) = s o f t m i n ( − x ) softmax(x)=softmin(-x) softmax(x)=softmin(−x)
3.5 推广
R e a l S o f t M a x ( x 1 , x 2 , ⋯ , x n ) = log ( exp ( x 1 ) + exp ( x 2 ) + ⋯ + exp ( x n ) ) > m a x ( x 1 , x 2 , ⋯ , x n ) RealSoftMax(x_{1},x_{2},\cdots,x_{n})=\\ \log(\exp(x_{1}) + \exp(x_{2})+\cdots+\exp(x_{n}))> max(x_{1},x_{2},\cdots,x_{n}) RealSoftMax(x1,x2,⋯,xn)=log(exp(x1)+exp(x2)+⋯+exp(xn))>max(x1,x2,⋯,xn)
按照之前逻辑证明即可