Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
d2l-zh
提交
1182db16
D
d2l-zh
项目概览
OpenDocCN
/
d2l-zh
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
d2l-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1182db16
编写于
9月 06, 2018
作者:
A
Aston Zhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
till softmax reg ce loss
上级
bdc8ad2f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
14 addition
and
12 deletion
+14
-12
TERMINOLOGY.md
TERMINOLOGY.md
+2
-0
chapter_deep-learning-basics/softmax-regression.md
chapter_deep-learning-basics/softmax-regression.md
+12
-12
未找到文件。
TERMINOLOGY.md
浏览文件 @
1182db16
...
...
@@ -176,6 +176,8 @@ softmax回归,softmax regression
无偏估计,unbiased estimate
误差,error
小批量,mini-batch
小批量梯度,mini-batch gradient
...
...
chapter_deep-learning-basics/softmax-regression.md
浏览文件 @
1182db16
...
...
@@ -5,13 +5,13 @@
## 分类问题
让我们考虑一个简单的图像分类问题,其输入图像
高和宽均为两像素,且为色彩为灰度。这样每个像素值都可以用一个标量表示,我们将图像中的四个像素记为$x_1, x_2, x_3, x_4$。假设训练数据集中图像的真实标签为狗、猫或鸡(如同前面假设房价只取决于居住面积和房龄,这里我们
假设可以用4个像素表示出这三种动物),这些标签分别对应离散值$y_1, y_2, y_3$。
让我们考虑一个简单的图像分类问题,其输入图像
的高和宽均为2个像素,且色彩为灰度。这样每个像素值都可以用一个标量表示。我们将图像中的四个像素分别记为$x_1, x_2, x_3, x_4$。假设训练数据集中图像的真实标签为狗、猫或鸡(
假设可以用4个像素表示出这三种动物),这些标签分别对应离散值$y_1, y_2, y_3$。
通常我们使用连续值来表示类别,例如$y_1=1, y_2=2, y_3=3$,那么一张图像的标签为1、2和3这三个数字中的一个。虽然我们仍然可以使用回归模型来进行建模,预测时我们将预测值就近定点化到1、2和3这三个值之一上。但这一连续值到离散值的转化通常会影响到分类质量,
因此我们一般使用更加适合离散值输出的模型来解决分类问题。
我们通常使用离散的数值来表示类别,例如$y_1=1, y_2=2, y_3=3$。如此,一张图像的标签为1、2和3这三个数值中的一个。虽然我们仍然可以使用回归模型来进行建模,并将预测值就近定点化到1、2和3这三个离散值之一,但这种连续值到离散值的转化通常会影响到分类质量。
因此我们一般使用更加适合离散值输出的模型来解决分类问题。
## Softmax回归模型
Softmax回归跟线性回归一样将输入特征与权重做线性叠加
,一个主要不同在于softmax回归的输出值个数等于标签里的类别数。因为我们特征为4,且有3种动物,所以权重里包含12个标量,偏移有3个标量
,且对每个输入计算$o_1, o_2, o_3$这三个输出:
Softmax回归跟线性回归一样将输入特征与权重做线性叠加
。与线性回归的一个主要不同在于,softmax回归的输出值个数等于标签里的类别数。因为一共有4种特征和3种输出动物类别,所以权重包含12个标量(带下标的$w$)、偏差包含3个标量(带下标的$b$)
,且对每个输入计算$o_1, o_2, o_3$这三个输出:
$$
\b
egin{aligned}
...
...
@@ -22,17 +22,17 @@ o_3 &= x_1 w_{13} + x_2 w_{23} + x_3 w_{33} + x_4 w_{43} + b_3.
$$
图3.2用神经网络图描绘了上面的计算
,其同线性回归一样,也是一个单层神经网络。因为$o_1, o_2, o_3$的计算都要依赖于$x_1, x_2, x_3, x_4$。所以
,softmax回归的输出层也是一个全连接层。
图3.2用神经网络图描绘了上面的计算
。Softmax回归同线性回归一样,也是一个单层神经网络。由于每个输出$o_1, o_2, o_3$的计算都要依赖于所有的输入$x_1, x_2, x_3, x_4$
,softmax回归的输出层也是一个全连接层。
![
Softmax回归是一个单层神经网络。
](
../img/softmaxreg.svg
)
### Softmax运算
因为分类问题中我们需要得到离散的预测输出,一个简单的办法是将输出值$o_i$当做预测类别是$i$的置信度,从而值最大的输出所对应的类就是预测输出,即$
\o
peratorname
*
{argmax}_i o_i$。例如
如果$o_1,o_2,o_3$分别为$0.1,10,0.1$,那么预测类别为2,其代表猫。
既然分类问题需要得到离散的预测输出,一个简单的办法是将输出值$o_i$当做预测类别是$i$的置信度,并将值最大的输出所对应的类作为预测输出,即输出$
\o
peratorname
*
{argmax}_i o_i$。例如,
如果$o_1,o_2,o_3$分别为$0.1,10,0.1$,那么预测类别为2,其代表猫。
但直接使用输出层的有两点不方便之处,一方面是由于其输出值的范围不固定,难以直观上判断其值的意义。例如上面例子里10表示很置信图像里是猫,因为其大于其他两类100倍。但如果$o_1=o_3=10^3$,那么10表示图像里是猫的几率很低。另一方面,由于真实标号是离散值,其不容易与输出值计算误差
。
然而,直接使用输出层的输出有两点问题。一方面,由于输出层的输出值的范围不确定,我们难以直观上判断这些值的意义。例如,刚才举的例子中的输出值10表示“很置信”图像类别为猫,因为该输出值是其他两类的输出值的100倍。但如果$o_1=o_3=10^3$,那么输出值10却又表示图像类别为猫的几率很低。另一方面,由于真实标签是离散值,这些离散值与不确定范围的输出值之间的误差难以衡量
。
Softmax运算
(softmax operator)提出正是为了解决这
两个问题。它通过下式将输出值变换成值为正且和为1的概率分布:
Softmax运算
符(softmax operator)解决了以上
两个问题。它通过下式将输出值变换成值为正且和为1的概率分布:
$$
\h
at{y}_1,
\h
at{y}_2,
\h
at{y}_3 =
\t
ext{softmax}(o_1, o_2, o_3),$$
...
...
@@ -44,7 +44,7 @@ $$
\h
at{y}_3 =
\f
rac{
\e
xp(o_3)}{
\s
um_{i=1}^3
\e
xp(o_i)}.
$$
容易看出$
\h
at{y}_1 +
\h
at{y}_2 +
\h
at{y}_3 = 1$且$
\h
at{y}_1 > 0,
\h
at{y}_2 > 0,
\h
at{y}_3 > 0$,因此$
\h
at{y}_1,
\h
at{y}_2,
\h
at{y}_3$是一个合法的概率分布。这时候,如果$
\h
at y_2=0.8$,不管其他两个值多少,我们都知道有80%概率图像里是猫。此外,可以
注意到
容易看出$
\h
at{y}_1 +
\h
at{y}_2 +
\h
at{y}_3 = 1$且$
0
\l
eq
\h
at{y}_1,
\h
at{y}_2,
\h
at{y}_3
\l
eq 1$,因此$
\h
at{y}_1,
\h
at{y}_2,
\h
at{y}_3$是一个合法的概率分布。这时候,如果$
\h
at{y}_2=0.8$,不管$
\h
at{y}_1$和$
\h
at{y}_3$的值是多少,我们都知道图像类别为猫的概率是80%。此外,我们
注意到
$$
\o
peratorname
*{argmax}_i o_i = \operatorname*
{argmax}_i
\h
at y_i,$$
...
...
@@ -70,7 +70,7 @@ $$
设
$2
\t
imes 2$
图像样本$i$的特征为
设
高和宽分别为2个像素的
图像样本$i$的特征为
$$
\b
oldsymbol{x}^{(i)} =
\b
egin{bmatrix}x_1^{(i)} & x_2^{(i)} & x_3^{(i)} & x_4^{(i)}
\e
nd{bmatrix},$$
...
...
@@ -83,7 +83,7 @@ $$\boldsymbol{o}^{(i)} = \begin{bmatrix}o_1^{(i)} & o_2^{(i)} & o_3^{(i)}\end{bm
$$
\b
oldsymbol{
\h
at{y}}^{(i)} =
\b
egin{bmatrix}
\h
at{y}_1^{(i)} &
\h
at{y}_2^{(i)} &
\h
at{y}_3^{(i)}
\e
nd{bmatrix}.$$
我们
对样本$i$分类的矢量计算表达式为
Softmax回归
对样本$i$分类的矢量计算表达式为
$$
\b
egin{aligned}
...
...
@@ -104,12 +104,12 @@ $$
\e
nd{aligned}
$$
其中的加法运算使用了广播机制,$
\b
oldsymbol{O},
\b
oldsymbol{
\h
at{Y}}
\i
n
\m
athbb{R}^{n
\t
imes q}$且这两个矩阵的第$i$行分别为
$
\b
oldsymbol{o}^{(i)}$和
$
\b
oldsymbol{
\h
at{y}}^{(i)}$。
其中的加法运算使用了广播机制,$
\b
oldsymbol{O},
\b
oldsymbol{
\h
at{Y}}
\i
n
\m
athbb{R}^{n
\t
imes q}$且这两个矩阵的第$i$行分别为
样本$i$的输出$
\b
oldsymbol{o}^{(i)}$和概率分布
$
\b
oldsymbol{
\h
at{y}}^{(i)}$。
## 交叉熵损失函数
前面
我们提到使用softmax运算后可以更方便的与标注计算误差。因为softmax运算将输出转换成一个合法的对类别预测的分布,同时真实标签也可以当做是类别的
分布:对于样本$i$,我们构造$
\b
oldsymbol{y}^{(i)}
\i
n
\m
athbb{R}^{q}$ ,使得其第$y^{(i)}$个元素为1,其余为0。这样我们的训练目标可以设为使得预测概率分布$
\b
oldsymbol{
\h
at y}^{(i)}$尽可能的接近标注概率分布$
\b
oldsymbol{y}^{(i)}$。
前面
提到,使用softmax运算后可以更方便地与离散标签计算误差。我们已经知道,softmax运算将输出变换成一个合法的类别预测分布。实际上,真实标签也可以当作类别
分布:对于样本$i$,我们构造$
\b
oldsymbol{y}^{(i)}
\i
n
\m
athbb{R}^{q}$ ,使得其第$y^{(i)}$个元素为1,其余为0。这样我们的训练目标可以设为使得预测概率分布$
\b
oldsymbol{
\h
at y}^{(i)}$尽可能的接近标注概率分布$
\b
oldsymbol{y}^{(i)}$。
我们可以跟线性回归那样使用平方损失函数$
\f
rac{1}{2}
\|\b
oldsymbol{
\h
at y}^{(i)}-
\b
oldsymbol{y}^{(i)}
\|
^2$。但注意到想要预测分类结果正确,我们不需要预测概率完全等于标注概率,例如在图像分类的例子里,如果$y^{(i)}=2$,那么我们只需要$
\h
at y^{(i)}_2$比其他两个预测值大就行了。即使其值为0.5,不管其他两个值为多少,类别预测均正确。而平方损失则过于严格,例如$
\h
at y^{(i)}_0=
\h
at y^{(i)}_1=0.1$比$
\h
at y^{(i)}_0=0,
\h
at y^{(i)}_1=.2$的损失要小很多,虽然两者都有同样正确的分类预测结果。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录