首页 > 其他分享 >3.4 softmax回归

3.4 softmax回归

时间:2023-05-27 13:55:35浏览次数:51  
标签:frac 回归 boldsymbol 3.4 softmax exp mathrm lambda

3.4.1 分类问题

整节理论知识,详见书本。

3.4.2 网络架构

整节理论知识,详见书本。

3.4.3 全连接层的参数开销

整节理论知识,详见书本。

3.4.4 softmax运算

整节理论知识,详见书本。

3.4.5 小批量样本的向量化

整节理论知识,详见书本。

3.4.6 损失函数

整节理论知识,详见书本。

3.4.7 信息论基础

整节理论知识,详见书本。

以下为结合视频《“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”》对交叉熵的理解:

  1. 为什么香农要把信息量定义为 \(-\log P(j)\)?

    香农如此定义当然并非一时兴起。

    假设有一事件的概率为 \(P\),该事件可拆分为两个小事件,这两个小事件的概率分别为 \(P_1\) 和 \(P_2\)。那么显然 \(P=P_1\times P_2\)。

    我们假设信息量为 \(f(P(j))\)(自变量为概率),则为了保持量纲需要满足 \(f(P)=f(P_1)+f(P_2)\)。

    为了满足以上两个式子,顺理成章的想到给 \(f(P(j))\) 应该是对数运算,即 \(f(P(j))=\log(P(j))\)。

    又为了满足概率越大信息量越小的直观感受,可在给对数运算取负值,至此即得出信息量的定义 \(f(P(j))=-\log P(j)\)。

  2. 何为熵?

    熵的定义式如下:

    \[H(P)=\sum_j-P(j)\log P(j) \]

    显而易见,\(熵=\sum_j概率\times信息量\),也就是说熵实际上就是事件信息量的期望。

  3. 什么是交叉熵?为什么交叉熵能当损失函数?

    为了计量的是真实值与估计值之间的差距,在这里自然的使用真实值与估计值的信息量的均差,称之为 KL 散度:

    \[\begin{align} D_{KL}(y|\hat{y})&=\sum_{j=1}^q y_j(f(\hat{y}_j)-f(y_j))\\ &=\sum_{j=1}^q y_j((-\log\hat{y}_j)-(-\log y_j))\\ &=\sum_{j=1}^q y_j(-\log\hat{y}_j)-\sum_{j=1}^q y_j(-\log y_j)\\ &=交叉熵-熵 \end{align} \]

    吉布斯不等式知,KL 散度的前项一定大于后向,即 \(D_{KL}(y|\hat{y})\ge0\)。

    因此便可以取交叉熵作为真实值与估计值之间的差距,且最小化交叉熵即可最小化损失。

3.4.8 模型预测和评估

整节理论知识,详见书本。

练习

(1)我们可以更深入地探讨指数族与 softmax 之间的联系。

a. 计算 softmax 交叉熵损失 \(l(\boldsymbol{y},\hat{\boldsymbol{y}})\) 的二阶导数。

b. 计算 \(\mathrm{softmax}(\boldsymbol{o})\) 给出的分布方差,并与上面计算的二阶导数匹配。

a. 由 3.5.6 2 知道:

\[\frac{\partial l(\boldsymbol{y},\hat{\boldsymbol{y}})}{\partial o_j}=\frac{\exp(o_j)}{\sum^q_{k=1}\exp(o_k)}-y_j=\mathrm{softmax}(\boldsymbol{o})_j-y_j \]

则二阶导为:

\[\begin{align} \frac{\partial^2 l(\boldsymbol{y},\hat{\boldsymbol{y}})}{\partial o_j^2}&=\frac{\partial \frac{\exp(o_j)}{\sum^q_{k=1}\exp(o_k)}-y_j}{\partial o_j}\\ &=\frac{\exp(o_j)\sum^q_{k=1}\exp(o_k)-\exp^2(o_j)}{(\sum^q_{k=1}\exp(o_k))^2}-0\\ &=\frac{\exp(o_j)}{\sum^q_{k=1}\exp(o_k)}(1-\frac{\exp(o_j)}{\sum^q_{k=1}\exp(o_k)})\\ &=\mathrm{softmax}(\boldsymbol{o})_j(1-\mathrm{softmax}(\boldsymbol{o})_j) \end{align} \]

b.先求均值:

\[\begin{align} \overline{\mathrm{softmax}(\boldsymbol{o})}&=\frac{1}{q}\sum^q_{j=1}\mathrm{softmax}(\boldsymbol{o})_j\\ &=\frac{1}{q}\sum^q_{j=1}\frac{\exp(o_j)}{\sum^q_{k=1}\exp(o_k)}\\ &=\frac{1}{q}\frac{\sum^q_{j=1}\exp(o_j)}{\sum^q_{k=1}\exp(o_k)}\\ &=\frac{1}{q} \end{align} \]

方差为:

\[\begin{align} \mathrm{V\ ar}(o)&=\frac{1}{q}\sum^q_{j=1}(\mathrm{softmax}(\boldsymbol{o})_j-\overline{\mathrm{softmax}(\boldsymbol{o})})^2\\ &=\frac{1}{q}\left[(\mathrm{softmax}(\boldsymbol{o})_1-\frac{1}{q})^2+(\mathrm{softmax}(\boldsymbol{o})_2-\frac{1}{q})^2+\dots+(\mathrm{softmax}(\boldsymbol{o})_q-\frac{1}{q})^2\right]\\ &=\frac{1}{q}(\frac{1}{q}+\sum^q_{j=1}\mathrm{softmax}^2(\boldsymbol{o})_j-\frac{2}{q}\sum^q_{j=1}\mathrm{softmax}(\boldsymbol{o})_j)\\ &=\frac{1}{q}(\frac{1}{q}-\frac{2}{q}+\sum^q_{j=1}\mathrm{softmax}^2(\boldsymbol{o})_j)\\ &=-\frac{1}{q^2}+\frac{1}{q}\sum^q_{j=1}\mathrm{softmax}^2(\boldsymbol{o})_j \end{align} \]

上式与二阶导数式匹配为:

\[\begin{align} \mathrm{V\ ar}(o)&=-\frac{1}{q^2}+\frac{1}{q}\sum^q_{j=1}\mathrm{softmax}^2(\boldsymbol{o})_j\\ &=-\frac{1}{q^2}-\frac{1}{q}(1-\sum^q_{j=1}\mathrm{softmax}^2(\boldsymbol{o})_j)+\frac{1}{q}\\ &=-\frac{1}{q^2}-\frac{1}{q}(\sum^q_{j=1}\mathrm{softmax}(\boldsymbol{o})_j-\sum^q_{j=1}\mathrm{softmax}^2(\boldsymbol{o})_j)+\frac{1}{q}\\ &=-\frac{1}{q^2}-\frac{1}{q}\sum^q_{j=1}(\mathrm{softmax}(\boldsymbol{o})_j-\mathrm{softmax}^2(\boldsymbol{o})_j)+\frac{1}{q}\\ &=\frac{q-1}{q^2}-\frac{1}{q}\sum^q_{j=1}\frac{\partial^2 l(\boldsymbol{y},\hat{\boldsymbol{y}})}{\partial o_j^2}\\ \end{align} \]


(2)假设我们有3个类别出现的的概率相等,即概率向量是 \(\left(\frac{1}{3}, \frac{1}{3}, \frac{1}{3}\right)\)。

a. 如果我们尝试为它设计二进制代码,有什么问题?

b. 请设计一个更好的代码。(提示:如果我们尝试为两个独立的观测结果编码会发生什么,如果我们为 \(n\) 个观测值联合编码怎么办?)

a. 3不是2的幂,用两位二进制编码则会浪费一个编码,这样后面就会很麻烦。

b. 如 3.4.1 所述,可使用独热编码,即分别使用 100、010 和 001 代表上述三个类别。


(3)softmax 是对上面介绍的映射的误称(虽然深度学习领域很多人都使用这个名字)。真正的 softmax 被定义为 \(\mathrm{ReakSiftMax}(a,b)=\log(\exp(a)+\exp(b))\)。

a. 证明 \(\mathrm{ReakSiftMax}(a,b)>\max(a,b)\)

b. 证明 \(\lambda^{-1}\mathrm{ReakSiftMax}(\lambda a,\lambda b)>\max(a,b)\) 成立,前提是 \(\lambda>0\)

c. 证明对于 \(\lambda\to\infty\),有 \(\lambda^{-1}\mathrm{ReakSiftMax}(\lambda a,\lambda b)\to\max(a,b)\)。

d. sofrmax 会是什么样子?

e. 将其扩展到两个以上的数字。

a. \(\mathrm{ReakSiftMax}(a,b)=\log(\exp(a)+\exp(b))>\log(\exp(\max(a,b)))=\max(a,b)\)

b. 若 \(\lambda>0\) 则:

\[\begin{align} \lambda^{-1}\mathrm{ReakSiftMax}(\lambda a,\lambda b)=\lambda^{-1}\log(\exp(\lambda a)+\exp(\lambda b))>\lambda^{-1}\log(\exp(\max(\lambda a,\lambda b)))&=\lambda^{-1}\max(\lambda a,\lambda b)\\ &=\lambda^{-1}\lambda\max(a,b)\\ &=\max(a,b) \end{align} \]

若 \(\lambda<0\) 则:

\[\begin{align} \lambda^{-1}\mathrm{ReakSiftMax}(\lambda a,\lambda b)=\lambda^{-1}\log(\exp(\lambda a)+\exp(\lambda b))<\lambda^{-1}\log(\exp(\min(\lambda a,\lambda b)))&=\lambda^{-1}\min(\lambda a,\lambda b)\\ &=\lambda^{-1}\lambda\max(a,b)\\ &=\max(a,b) \end{align} \]

c. 若 \(a\ne b\),则:

\[\lim_{\lambda\to\infty}\exp(\max(\lambda a,\lambda b))\gg\lim_{\lambda\to\infty}\exp(\min(\lambda a,\lambda b)) \]

故:

\[\begin{align} \lim_{\lambda\to\infty}\lambda^{-1}\mathrm{ReakSiftMax}(\lambda a,\lambda b)&=\lim_{\lambda\to\infty}\lambda^{-1}\log(\exp(\lambda a)+\exp(\lambda b))\\ &=\lim_{\lambda\to\infty}\lambda^{-1}\log(\exp(\max(\lambda a,\lambda b)))\\ &=\lim_{\lambda\to\infty}\lambda^{-1}\max(\lambda a,\lambda b)\\ &=\lim_{\lambda\to\infty}\lambda^{-1}\lambda \max(a,b)\\ &=\max(a,b) \end{align} \]

若 \(a= b\),则:

\[\begin{align} \lim_{\lambda\to\infty}\lambda^{-1}\mathrm{ReakSiftMax}(\lambda a,\lambda b)&=\lim_{\lambda\to\infty}\lambda^{-1}\log(\exp(\lambda a)+\exp(\lambda b))\\ &=\lim_{\lambda\to\infty}\lambda^{-1}\log(2\exp(\max(\lambda a,\lambda b)))\\ &=\lim_{\lambda\to\infty}\lambda^{-1}[\max(\lambda a,\lambda b)+\log2]\\ &=\lim_{\lambda\to\infty}[\lambda^{-1}\lambda \max(a,b)+\lambda^{-1}\log2]\\ &=\max(a,b)+0\\ &=\max(a,b) \end{align} \]

d. \(\mathrm{softmin}(\boldsymbol{o})_j=\mathrm{softmax}(-\boldsymbol{o})_j\),故softmin 长这个样子:

\[\mathrm{softmin}(\boldsymbol{o})_j=\frac{\exp(-o_j)}{\sum^q_{k=1}\exp(-o_k)} \]

详细参见官方文档 SOFTMIN

e. 扩展到 n 个参数为:

\[\mathrm{ReakSiftMax}(x_1,x_2\dots,x_n)=\log(\exp(x_1)+\exp(x_2)+\dots+\exp(x_n)) \]

标签:frac,回归,boldsymbol,3.4,softmax,exp,mathrm,lambda
From: https://www.cnblogs.com/AncilunKiang/p/17436644.html

相关文章

  • 操作系统(3.4.2)--实时调度算法的分类
    按调度方式分类:非抢占式调度算法、抢占式调度算法1.非抢占式调度算法1)非抢占式轮转调度算法调度程序每次选择队列中的第一个任务投入运行。当时间片结束后,便把它挂在轮转队列的末尾,等待下次调度运行,而调度程序再选择下一个(队首)任务运行。这种调度算法可获得数秒至数十秒的响应时......
  • 3.1 线性回归
    3.1.1线性回归的基本元素整节理论知识,详见书本。3.1.2向量加速化%matplotlibinlineimportmathimporttimeimportnumpyasnpimporttorchfromd2limporttorchasd2l#以后常用的计时器classTimer:#@save"""记录多次运行时间"""def__init__(self......
  • 3.2 线性回归从零开始实现
    %matplotlibinlineimportrandomimporttorchfromd2limporttorchasd2l3.2.1生成数据集为了简单起见,使用易于可视化的低维数据。使用线性模型\(\boldsymbol{y}=\boldsymbol{Xw}+b+\epsilon\)生成数据集及其标签,其中合成的数据集是一个矩阵\(\boldsymbol{X}\in\R^{1......
  • 2023.4.26周三每日总结
    Activity的生命周期Activity生命周期是一个非常重要的概念,理解Activity的生命周期对于开发Android应用程序至关重要。在AS中,Activity有始有终,可以选择对应状态的回调函数,根据状态完成一些逻辑操作。学习Activity的生命周期,可以更好的掌握应用程序的启动、销毁、状态保存等操作......
  • 计量经济学笔记-2一般回归分析和模型设定
    2.一般回归分析和模型设定问题1:辨别相关性是不是因果关系统计关系:预测关系经济关系:因果关系问题2:一般归回分析和线性回归模型问题3:线性回归模型的系数coefficients的经济意义回归分析是研究变量Y和变量X之间关系的常用工具。用于考察X对Y的影响用X的信息预测......
  • 2023.4.22周六每日总结
    控件使用控件就是Android应用程序中各种元素,如按钮、文本框、显示列表等等。学习使用控件是Android开发的基础,它是许多程序界面的桥梁。在AS中,通过拖拽、代码编写等方式添加或修改控件,并通过属性面板修改控件的属性。在这里的学习中为了使按钮能发挥我想要的作用,进行了多次调......
  • Softmax
    Softmax将输出的离散值转换成概率值,且所有情况的概率之和为1。求导pytorch实现......
  • 在本地运行spark程序,出现Scala module 2.13.4 requires Jackson Databind version >=
    这是jackson多版本题,我们需要屏蔽所有hadoop组件中的Jackson,在pom.xml文件里修改:添加<exclusions><exclusion><groupId>com.fasterxml.jackson.module</groupId><artifactId>*</artifactId></exclusion><exclusion>......
  • 3.6 Softmax回归的从零开始实现
    我们首先导入相关的包,并读入训练和测试所用的数据集图片的DataLoader: 这里面d2l.load_data_fashion_mnist(batch_size)读入训练和测试所用的图像数据集的DataLoader。 1.初始化模型参数Softmax回归模型参数包括W、b。假设输入特征数量为num_inputs,输出的数量(类别的数量)为n......
  • 使用 TensorFlow 自动微分和神经网络功能估算线性回归的参数(Estimate parameters for
    大多数的深度学习框架至少都会具备以下功能:(1)张量运算(2)自动微分(3)神经网络及各种神经层TensorFlow框架亦是如此。在《深度学习全书公式+推导+代码+TensorFlow全程案例》——洪锦魁主编清华大学出版社ISBN978-7-302-61030-4这本书第3章《TensorFlow架构与主要功能》这一......