李沐动手学习深度学习——3.4练习

理解极大似然估计
很巧妙的解释了为什么使用均方误差,因为均方误差是一种似然估计的变种,而对于逻辑回归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)jyj
对其一阶导数求导,需要考虑对于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} ojojl(y,y^)=ojsoftmax(o)jyj=ojsoftmax(o)j=ojqk=1exp(ok)exp(oj)=(qk=1exp(ok))2exp(oj)qk=1exp(ok)(exp(oj))2=qk=1exp(ok)exp(oj)(1qk=1exp(ok)exp(oj))=softmax(o)j(1softmax(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} oiojl(y,y^)=oisoftmax(o)jyj=(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\\ 证毕 ab(对称性)证明RealSoftMax(a,b)>max(a,b)即证:log(exp(a)+exp(b))>aexp(b)>0log(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\\ 证毕 ab(对称性)证明λ1RealSoftMax(λa,λb)>max(a,b)即证:λ1log(exp(λa)+exp(λb))>aexp(λ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} ab(对称性)证明λ1RealSoftMax(λa,λb)max(a,b)即证:λ1log(exp(λa)+exp(λb))a情况1:a>ba>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+aa证毕

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)
按照之前逻辑证明即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2815074.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【C++历练之路】map与set的必备使用指南

W...Y的主页 😊 代码仓库的分享💕 🍔序言: C作为一门历史悠久且功能强大的编程语言,其标准模板库(STL)为开发者提供了一套丰富的数据结构和算法,极大地促进了软件开发的效率和质量…

Python打发无聊时光:10.用flask创造按键控制的网页小游戏

游戏介绍: 《秦蓝大冒险》是一款简单而紧张的追逐游戏。在这个游戏中,玩家将控制一名名叫“吕千”的角色,试图在一个封闭的空间内逃避一个名为“秦蓝”的追逐者。随着时间的推移,“秦蓝”会不断追踪玩家的位置,努力捕捉到他。 游…

干货!Python字符串填充、去除、分割与合并

1.center() 将字符串按照指定内容填充到指定长度,默认填充的内容是空格 str1 "今天天气好晴朗"print(str1.center(50)) # 使用空间将原字符串填充到50个长度,原内容居中print(str1.center(50, "*")) # 使用 * 将原字符串填…

免费原型工具大集合,让你设计更轻松

对于产品经理或UI/UX设计师来说,一个好的原型设计工具是非常重要的。一个好的原型设计软件可以帮助你快速构建一个还原度高、信息架构清晰的原型图,大大降低工作中与同事的沟通成本,更有效地促进工作。 那么,一个易于使用和免费的…

2024年计算机科学与电子通讯工程国际会议(ICCSECE 2024)

2024年计算机科学与电子通讯工程国际会议(ICCSECE 2024) 重要信息 会议官网:http://www.iccsece.com会议地址:郑州召开日期:2024.03.25截稿日期:2024.03.15 (先投稿,先审核&#xff…

【Linux】进程优先级以及Linux内核进程调度队列的简要介绍

进程优先级 基本概念查看系统进程修改进程的优先级Linux2.6内核进程调度队列的简要介绍和进程优先级有关的概念进程切换 基本概念 为什么会存在进程优先级?   进程优先级用于确定在资源竞争的情况下,哪个进程将被操作系统调度为下一个运行的进程。进程…

【C语言】数据存储篇,内存中的数据存储----C语言整型,浮点数的数据在内存中的存储以及大小端字节序【图文详解】

欢迎来CILMY23的博客喔,本篇为​【C语言】数据存储篇,内存中的数据存储----C语言整型,浮点数的数据在内存中的存储以及大小端字节序【图文详解】,感谢观看,支持的可以给个一键三连,点赞关注收藏。 前言 C语…

Mysql索引优化导致死锁问题

1、背景 随着公司业务的发展,商品库存从商品中心独立出来成为一个独立的系统,承接主站商品库存校验、订单库存扣减、售后库存释放等业务。在上线之前我们对于核心接口进行了压测,压测过程中出现了MySQL 5.6.35死锁现象,通过日志发…

vscode——本地配置(C和C++环境配置)(2)

vscode——本地配置(2) 配置C语言编译看看.json文件编译多个C文件C/C调试 今天我们继续来看vscode的配置,如果没看过上一次的文章,大家可以点击: https://blog.csdn.net/qq_67693066/article/details/136315696 配置C语…

NebulaGraph入门

感谢阅读 官方文档链接NebulaGraph简介nGQLnGQL简介占位标识符和占位符值注释实列大小写区分关键字 基本概念以及相关代码实现补充说明图空间语法以及列子创建克隆官方示例代码(创建并克隆)USE语句指定图空间时查看所有SPACESPACE详情CLEAR SPACE删库跑路(看玩笑的说…

什么是生成式人工智能?

近年来,人工智能取得了重大进展,其中发展迅速的领域之一就是生成式人工智能。生成式人工智能是人工智能和深度学习的一个子领域,主要使用机器学习技 术根据现有数据训练算法和模型,生成诸如图像、文本、音乐、视频等新内容。 要更…

LTD营销枢纽2023年度功能升级回顾

在过去的2023年,我们的团队致力于不断进步和创新。经过一年的不懈努力,我们共发布了50次的系统升级,引入了16种全新的解决方案与业务应用,并实施了1363项各类细致优化。 这些更新和改进不仅在我们的营销枢纽系统现有功能的基础上实…

【C++那些事儿】深入理解C++类与对象:从概念到实践(上)| 揭开this指针的神秘面纱

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C那些事儿 🌅 有航道的人,再渺小也不会迷途。 文章目录 1. 面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1 访问限定符…

从零开始学PS

一、软件安装: 1.安装creative cloud: 2.下载安装PS: 3.下载完成: 二、PS主界面构成: 三、快捷键: 以下是 Photoshop 常用的 100 个快捷键: Ctrl N:新建一个文档 Ctrl O&am…

【数据结构和算法初阶(C语言)】链表-单链表(手撕详讲单链表增删查改)

目录 1.前言:顺序表回顾: 1.1顺序表的优缺点 2.主角----链表 2.1链表的概念 2.2定义一个单链表的具体实现代码方式 3.单链表对数据的管理----增删查改 3.1单链表的创建 3.2单链表的遍历实现 3.2.1利用遍历实现一个打印我们链表内容的函数的函数…

【软件测试】--功能测试4-html介绍

1.1 前端三大核心 html:超文本标记语言&#xff0c;由一套标记标签组成 标签&#xff1a; 单标签&#xff1a;<标签名 /> 双标签:<标签名></标签名> 属性&#xff1a;描述某一特征 示例:<a 属性名"属性值"> 1.2 html骨架标签 <!DOC…

Java基础八股

基础概念与常识 Java 语言有哪些特点? 简单易学&#xff1b;面向对象&#xff08;封装&#xff0c;继承&#xff0c;多态&#xff09;&#xff1b;平台无关性&#xff08; Java 虚拟机实现平台无关性&#xff09;&#xff1b;支持多线程&#xff08; C 语言没有内置的多线程…

Ansible自动化运维(四)jinja2 模板、Roles角色详解

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…

Retrofit核心原理

Retrofit是一个类型安全的HTTP客户端库&#xff0c;广泛用于Android和Java应用中&#xff0c;用于简化网络请求和响应的处理。本文将深入探讨Retrofit的核心原理&#xff0c;帮助开发者理解其背后的工作机制。 Retrofit简介 Retrofit是Square公司开发的一个开源库&#xff0c…

非线性优化资料整理

做课题看了一些非线性优化的资料&#xff0c;整理一下&#xff0c;以方便查看&#xff1a; 优化的中文博客 数值优化|笔记整理&#xff08;8&#xff09;——带约束优化&#xff1a;引入&#xff0c;梯度投影法 (附代码)QP求解器对比对于MPC的QP求解器 数值优化| 二次规划的…