零基础生医转码,道行浅薄请见谅~
一、分类问题
上一个回归问题是估计一个连续值,分类将预测一个离散类别
二、网络架构
上一个回归问题是单输出的模型,分类将需要一个多输出模型,输出的i是预测为第i类的置信度,我们需要对类别进行有效编码:y = [y1,y2....yn],这里是一位的有效编码(一个位置刚好),
三、softmax运算
引入叫softmax的操作子,让原本输出的向量o1,o2,o3变成一个数据输出的概率,softmax函数能够将未规范化的预测变换为非负数并且总和为1,同时让模型保持 可导的性质。 为了完成这一目标,我们首先对每个未规范化的预测求幂,这样可以确保输出非负。 为了确保最终输出的概率值总和为1,我们再让每个求幂后的结果除以它们的总和。
四、损失函数
1.对数似然
书第二版说:softmax函数给出了一个向量, 我们可以将其视为“对给定任意输入的每个类的条件概率”。在概率论中,似然函数衡量的是给定一组参数下,某个模型生成已观测数据的概率大小,这个联合概率就是所谓似然。对比一下这两个说法的公式,实际上想表达的是一个东西:
根据最大似然估计,我们最大化,相当于最小化负对数似然:
因为概率论已经是博主在大一下学的古早东西(真是零基础!!!)然后我就还是继续搜索一点资料为什么要取对数,答案是直接处理似然函数有两个问题,概率相乘时项数太多会导致联合概率非常小,同时乘法运算会更加复杂。取对数后,似然函数的乘法变成了加法,这样既解决了数值问题,也简化了计算。
这里我有三个疑点:
为什么说标签向量是独热向量?
答: 独热向量是一种常用的编码方式,通常用于将离散的分类标签或类别转换为适合机器学习模型处理的向量形式。一个独热向量是一个长度为 n 的二进制向量,其中只有一个位置的元素为1,其他位置的元素都为0。这个1的下标位置代表了某个类别。独热向量用于表示一个离散的类别,在分类问题中非常常见。(好像书开头就写了,没仔细看sry~)
为什么要对这样的分类模型进行这样的最大似然估计呢,我去算这个联合概率的意义在哪?
答: 意义是通过数据最大化模型预测正确标签的概率,从而找到最符合数据的模型参数,最大似然估计背后的假设是,我们的训练数据遵循某种概率分布。我们不知道这个真实分布的具体形式,但通过调整模型参数,可以让模型尽量贴合这种分布,联合分布的意义在于让所有分类都达到一个比较准确的结果。
损失函数是如何得到的?
由于 yj(i)是一个独热向量,只有真实类别 y(i) 的位置为 1,因此交叉熵损失对于每一个样本可以简化为:
负对数似然同理可以简化为:
可以看出单独取出来的时候是一毛一样的
2.softmax及其导数
将softmax函数带入到上面的loss里面我们看看,顺带求个导:
我们可以看到导数是我们softmax模型分配的概率与实际发生的情况(由独热标签向量表示)之间的差异,这跟回归的意义是非常相似的(平方差对y-hat求导得到2(y-hat-y))
这里求导的过程我觉得很妙,有点像世界线闭合的感觉:
最后书上从信息论的角度去看待这个问题可以得到一个神奇的结论:我们可以从两方面来考虑交叉熵分类目标: (i)最大化观测数据的似然;(ii)最小化传达标签所需的惊异。