动手学深度学习-线性神经网络-softmax回归

[复制链接]
发表于 2025-12-9 13:17:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次
分类标题
网络架构
全毗连层的参数开销
softmax运算
小批量样本的矢量化
丧失函数
对数似然
softmax及其导数
交错熵丧失
信息论根本
熵
信息量
重新审阅交错熵
模子猜测和评估
小结


在上上上一节中我们先容了线性回归。 随后,然后在上上一节中我们重新实现线性回归。 然后,在上一节中我们使用深度学习框架的高级API轻便实现线性回归。
回归可以用于猜测多少的标题。 好比猜测房屋被售出代价,大概棒球队大概得到的胜场数,又大概患者住院的天数。
究竟上,我们也对分类标题感爱好:不是问“多少”,而是问“哪一个”:


  • 某个电子邮件是否属于垃圾邮件文件夹?
  • 某个用户大概注册或不注册订阅服务?
  • 某个图像刻画的是驴、狗、猫、照旧鸡?
  • 或人接下来最有大概看哪部影戏?
通常,呆板学习实践者用分类这个词来形貌两个有玄妙差异的标题: 1. 我们只对样本的“硬性”种别感爱好,即属于哪个种别; 2. 我们盼望得到“软性”种别,即得到属于每个种别的概率。 这两者的界限每每很暗昧。此中的一个缘故原由是:纵然我们只关心硬种别,我们仍旧使用软种别的模子。
分类标题

我们从一个图像分类标题开始。 假设每次输入是一个2×2的灰度图像。 我们可以用一个标量表现每个像素值,每个图像对应四个特性x1,x2,x3,x4。 别的,假设每个图像属于种别“猫”“鸡”和“狗”中的一个。
接下来,我们要选择怎样表现标签。 我们有两个显着的选择:最直接的想法是选择y∈{1,2,3}, 此中整数分别代表狗猫鸡{狗,猫,鸡}。 这是在盘算机上存储此类信息的有用方法。 假如种别间有一些自然次序, 好比说我们试图猜测婴儿儿童青少年轻年人中年人老年人{婴儿,儿童,青少年,青年人,中年人,老年人}, 那么将这个标题变革为回归标题,而且生存这种格式是故意义的。
但是一样平常的分类标题并不与种别之间的自然次序有关。 荣幸的是,统计学家很早从前就发明白一种表现分类数据的简单方法:独热编码(one-hot encoding)。 独热编码是一个向量,它的分量和种别一样多。 种别对应的分量设置为1,其他全部分量设置为0。 在我们的例子中,标签y将是一个三维向量, 此中(1,0,0)对应于“猫”、(0,1,0)对应于“鸡”、(0,0,1)对应于“狗”:
   
​
  网络架构

为了估计全部大概种别的条件概率,我们必要一个有多个输出的模子,每个种别对应一个输出。 为相识决线性模子的分类标题,我们必要和输出一样多的仿射函数(affine function)。 每个输出对应于它本身的仿射函数。 在我们的例子中,由于我们有4个特性和3个大概的输出种别, 我们将必要12个标量来表现权重(带下标的w), 3个标量来表现偏置(带下标的b)。 下面我们为每个输入盘算三个未规范化的猜测(logit):o1、o2和o3。
   
​
  我们可以用神经网络图 图3.4.1来形貌这个盘算过程。 与线性回归一样,softmax回归也是一个单层神经网络。 由于盘算每个输出o1、o2和o3取决于 全部输入x1、x2、x3和x4, 以是softmax回归的输出层也是全毗连层。
   
​
  为了更轻便地表达模子,我们仍旧使用线性代数符号。 通过向量情势表达为o=Wx+b, 这是一种更恰当数学和编写代码的情势。 由此,我们已经将全部权重放到一个3×4矩阵中。 对于给定命据样本的特性x, 我们的输出是由权重与输入特性举行矩阵-向量乘法再加上偏置b得到的。
全毗连层的参数开销

正如我们将在后续章节中看到的,在深度学习中,全毗连层无处不在。 然而,顾名思义,全毗连层是“完全”毗连的,大概有很多可学习的参数。 详细来说,对于任何具有d个输入和q个输出的全毗连层, 参数开销为O(dq),这个数字在实践中大概高得令人望而却步。 荣幸的是,将d个输入转换为q个输出的资源可以淘汰到O(dqn), 此中超参数n可以由我们机动指定,以在现实应用中均衡参数节流和模子有用性 (Zhang et al., 2021)。
softmax运算

如今我们将优化参数以最大化观测数据的概率。 为了得到猜测效果,我们将设置一个阈值,如选择具有最大概率的标签。
我们盼望模子的输出y^j可以视为属于类j的概率, 然后选择具有最大输出值的种别argmaxjyj作为我们的猜测。 比方,假如y^1、y^2和y^3分别为0.1、0.8和0.1, 那么我们猜测的种别是2,在我们的例子中代表“鸡”。
然而我们能否将未规范化的猜测o直接视作我们感爱好的输出呢? 答案是否定的。 由于将线性层的输出直接视为概率时存在一些标题: 一方面,我们没有限定这些输出数字的总和为1。 另一方面,根据输入的差异,它们可以为负值。 这些违背了上一部分中所说的概率根本公理。
要将输出视为概率,我们必须包管在任何数据上的输出都黑白负的且总和为1。 别的,我们必要一个练习的目的函数,来鼓励模子精准地估计概率。 比方, 在分类器输出0.5的全部样本中,我们盼望这些样本是刚好有一半现实上属于猜测的种别。 这个属性叫做校准(calibration)。
社会科学家邓肯·卢斯于1959年在选择模子(choice model)的理论根本上 发明的softmax函数正是如许做的: softmax函数可以大概将未规范化的猜测变更为非负数而且总和为1,同时让模子保持 可导的性子。 为了完成这一目的,我们起首对每个未规范化的猜测求幂,如允许以确保输出非负。 为了确保终极输出的概率值总和为1,我们再让每个求幂后的效果除以它们的总和。如下式:
   
​
  这里,对于全部的j总有0≤y^j≤1。 因此,y^可以视为一个精确的概率分布。 softmax运算不会改变未规范化的猜测o之间的巨细序次,只会确定分配给每个种别的概率。 因此,在猜测过程中,我们仍旧可以用下式来选择最有大概的种别。
   
​
  只管softmax是一个非线性函数,但softmax回归的输出仍旧由输入特性的仿射变更决定。 因此,softmax回归是一个线性模子(linear model)。
小批量样本的矢量化

为了进步盘算服从而且充实使用GPU,我们通常会对小批量样本的数据实行矢量盘算。 假设我们读取了一个批量的样本X, 此中特性维度(输入数量)为d,批量巨细为n。 别的,假设我们在输出中有q个种别。 那么小批量样本的特性为X∈Rn×d, 权重为W∈Rd×q, 偏置为b∈R1×q。 softmax回归的矢量盘算表达式为:
   

  ​
  相对于一次处理惩罚一个样本, 小批量样本的矢量化加速了和X和W的矩阵-向量乘法。 由于X中的每一行代表一个数据样本, 那么softmax运算可以按行(rowwise)实行: 对于O的每一行,我们先对全部项举行幂运算,然后通过求和对它们举行标准化。 在 (3.4.5)中, XW+b的求和会使用广播机制, 小批量的未规范化猜测O和输出概率Y^ 都是形状为n×q的矩阵。
丧失函数

接下来,我们必要一个丧失函数来度量猜测的效果。 我们将使用最大似然估计,这与在线性回归 中的方法雷同。
对数似然

softmax函数给出了一个向量y^, 我们可以将其视为“对给定恣意输入x的每个类的条件概率”。 比方,y^1=猫P(y=猫∣x)。 假设整个数据集{X,Y}具有n个样本, 此中索引i的样本由特性向量x(i)和独热标签向量y(i)构成。 我们可以将估计值与现实值举行比力:
   

  ​
  根据最大似然估计,我们最大化P(Y∣X),相当于最小化负对数似然:
   

  ​
  此中,对于任何标签y和模子猜测y^,丧失函数为:
   

  ​
  在本节稍后的内容会讲到,y^中的丧失函数 通常被称为交错熵丧失(cross-entropy loss)。 由于y是一个长度为q的独热编码向量, 以是除了一个项以外的全部项j都消散了。 由于全部y^j都是猜测的概率,以是它们的对数永久不会大于0。 因此,假如精确地猜测现实标签,即假如现实标签P(y∣x)=1, 则丧失函数不能进一步最小化。 注意,这每每是不大概的。 比方,数据会合大概存在标签噪声(好比某些样本大概被误标), 或输入特性没有富足的信息来完善地对每一个样天职类。
softmax及其导数

由于softmax和干系的丧失函数很常见, 因此我们必要更好地明白它的盘算方式。 将全毗连层代入丧失中。 使用softmax的界说,我们得到:

思量相对于任何未规范化的猜测oj的导数,我们得到:

换句话说,导数是我们softmax模子分配的概率与现实发生的情况(由独热标签向量表现)之间的差异。 从这个意义上讲,这与我们在回归中看到的非常相似, 此中梯度是观测值y和估计值y^之间的差异。 这不是偶合,在任何指数族分布模子中 , 对数似然的梯度正是由此得出的。 这使梯度盘算在实践中变得容易很多。
交错熵丧失

如今让我们思量整个效果分布的情况,即观察到的不光仅是一个效果。 对于标签y,我们可以使用与从前雷同的表现情势。 唯一的区别是,我们如今用一个概率向量表现,如(0.1,0.2,0.7), 而不是仅包罗二元项的向量(0,0,1)。 我们使用y^来界说丧失l, 它是全部标签分布的预期丧失值。 此丧失称为交错熵丧失(cross-entropy loss),它是分类标题最常用的丧失之一。 本节我们将通过先容信息论根本来明白交错熵丧失。
信息论根本

信息论(information theory)涉及编码、解码、发送以及尽大概轻便地处理惩罚信息或数据。
熵

信息论的焦颔首脑是量化数据中的信息内容。 在信息论中,该数值被称为分布P的熵(entropy)。可以通过以下方程得到:

信息论的根本定理之一指出,为了对从分布p中随机抽取的数据举行编码, 我们至少必要H[P]“纳特(nat)”对其举行编码。 “纳特”相当于比特(bit),但是对数底为e而不是2。因此,一个纳特是1log⁡(2)≈1.44比特。
信息量

压缩与猜测有什么关系呢? 想象一下,我们有一个要压缩的数据流。 假如我们很容易猜测下一个数据,那么这个数据就很容易压缩。 为什么呢? 举一个极度的例子,假如数据流中的每个数据完全雷同,这会是一个非常无聊的数据流。 由于它们总是雷同的,我们总是知道下一个数据是什么。 以是,为了通报数据流的内容,我们不必传输任何信息。也就是说,“下一个数据是xx”这个变乱毫无信息量。
但是,假如我们不能完全猜测每一个变乱,那么我们偶然大概会感到“惊异”。 克劳德·香农决定用信息量log⁡1P(j)=−log⁡P(j)来量化这种惊异程度。 在观察一个变乱j时,并赋予它(主观)概率P(j)。 当我们赋予一个变乱较低的概率时,我们的惊异会更大,该变乱的信息量也就更大。 在 (3.4.11)中界说的熵, 是当分配的概率真正匹配数据天生过程时的信息量的渴望。
重新审阅交错熵

假如把熵H(P)想象为“知道真实概率的人所履历的惊异程度”,那么什么是交错熵? 交错熵从P到Q,记为H(P,Q)。 我们可以把交错熵想象为“主观概率为Q的观察者在看到根据概率P天生的数据时的预期惊异”。 当P=Q时,交错熵到达最低。 在这种情况下,从P到Q的交错熵是H(P,P)=H(P)。
简而言之,我们可以从两方面来思量交错熵分类目的: (i)最大化观测数据的似然;(ii)最小化转达标签所需的惊异。
模子猜测和评估

在练习softmax回归模子后,给出任何样本特性,我们可以猜测每个输出种别的概率。 通常我们使用猜测概率最高的种别作为输出种别。 假如猜测与现实种别(标签)同等,则猜测是精确的。 在接下来的实验中,我们将使用精度(accuracy)来评估模子的性能。 精度便是精确猜测数与猜测总数之间的比率。
小结



  • softmax运算获取一个向量并将其映射为概率。
  • softmax回归实用于分类标题,它使用了softmax运算中输出种别的概率分布。
  • 交错熵是一个衡量两个概率分布之间差异的很好的度量,它丈量给定模子编码数据所需的比特数。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表