(一)有监督学习及优化

本博客及后续博客翻译和记录学习“Unsupervised Feature Learning and Deep Learning Tutorial”的收获及体会!

1 线性回归

1.1 问题形式化

作为新手,就从如何实现线性回归开始吧!我们需要熟练掌握目标函数、目标梯度和目标优化。这些基本的概念、方法和工具将是接下来学习更加复杂的算法的基础。切记打牢地基莫忽视!
线性回归的目标是根据一个输入向量 xRn 预测一个目标值 y 。例如:预测一个房子的价格,y表示房价,特征 x 中的元素 xj 表示房子的属性(大小、房间数目)。假设给定很多个房子,第 i 个房子的特征为x(i),其对应价格为 y(i) 。我们的目标是寻找一个函数 y=h(x) ,使得对每个训练样本 y(i)h(x(i)) 。如果我们在足够多的样本上成功找到了这样一个函数 h(x) ,那么我们希望 h(x) 能够很好预测一个房子的价格,即便该房子是一个新房子且价格未知。
为了找到这样一个函数 h(x) 使得 y(i)h(x(i)) ,我们需要先确定如何表示函数 h(x) 。让我们先从做简单的线性函数开始 hθ(x)=jθjxj=θTx 。这里, hθ(x) 表示一个函数家族,选择不同参数 θ 得到不同的函数。有了 h(x) 的表示,我们任务变为寻找一个参数 θ ,使得 hθ(x(i)) 尽可能逼近 y(i) 。特别的,我们希望寻找一个 θ ,最小化下式

J(θ)=12i(hθ(x(i))y(i))2=12i(θTx(i)y(i))2

该函数称为“代价函数”,用于度量一个特征选择的 θ 在预测 y(i) 时的误差。通常,也称为“损失函数”、“惩罚函数”或“目标函数”。

1.2 函数最小化

现在的目标是选择 θ 使 J(θ) 最小。有很多方法可以最小化该目标。现在,我们来回顾一下函数最小化最常用算法的一些事实。我们需要完成有关 J(θ) 的两个事实:计算 J(θ) θJ(θ) 。然后,优化的剩下部分就可以交给优化算法去寻找最好的 θ 。(梯度 θJ(θ) 是一个向量,指向 J(θ) 下降最快的方向,这样只要小小地改变 θ 就可以降低或增加 J(θ)
给定一组训练集 {x(i),y(i)} J(θ) 的梯度可表示如下:

θJ(θ)=J(θ)θ1...J(θ)θj...J(θ)θn,    J(θ)θj=ix(i)j(hθ(x(i))y(i))

2 逻辑斯特回归

上节学习了如何预测连续变量(房价)。实际中,我们也需要区预测离散变量(分类问题)。逻辑斯特回归就是一个简单的用于分类决策的算法。
线性回归中,我们尝试使用线性函数 y=hθ(x)=θTx 去预测第 i 个样本x(i) y(i) 的值。很明显这不适合预测二值标签( y(i){0,1} )。在逻辑斯特回归中,我们使用一个不同的函数来预测一个给定的样本是属于类“1”,还是属于类“0”。该函数的形式如下:

P(y=1|x)=hθ(x)=11+exp(θTx)σ(θTx)

P(y=0|x)=1P(y=1|x)=1hθ(x)

函数 σ(z)1/(1+exp(z)) 通常称为“sigmoid”或“logistic”函数。他是一个S型函数,将 z 的值映射到[0,1]范围,故我们可以理解 hθ(x) 为一个概率。我们的目的是寻找 θ 的一个值使得当 x 属于类“1”时概率 P(y=1|x)=hθ(x) 是大的,而当 x 属于类“0”时概率是小的(此时概率 P(y=0|x) 是大的)。给定一组二值标签样本 {(x(i),y(i)):i=1,...,m} ,下面的代价函数可度量一个给定的 hθ 是否是好的:

J(θ)=i(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

##############################################################
上式代价函数是根据最大似然得到的:

L=i(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

J(θ) 对应于负的对数似然如下:

J(θ)=logL=logi(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)      =i(log(hθ(x(i)))y(i)+log(1hθ(x(i)))1y(i))      =i(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

##############################################################
对于一个训练样本而言,上式中的两项只有一项不为零(这取决于标签 y(i) 是0或1)。当 y(i)=1 ,最小化代价意味着我们需要使 hθ(x(i)) 变大,当 y(i)=0 ,我们希望使 1hθ(x(i)) 变大。
现在我们有了一个代价函数来度量一个给定的假设 hθ 是否是对训练样本好的。我们通过最小化 J(θ) 来找到最佳的 θ 。一旦我们完成,我们就可以分类一个新的样本是属于“1”还是属于“0”(通过检查两类的概率,若 P(y=1|x)>P(y=0|x) ,则判为“1”,否则判为“0”,等同于判断 hθ(x)>0.5 )。
为了最小化 J(θ) ,我们使用和线性回归一样的工具。我们需要提供计算 J(θ) θJ(θ) 的函数, J(θ) 关于 θj 的偏导数如下:

J(θ)θj=ix(i)j(hθ(x(i))y(i))

向量形式的整体梯度如下:

θJ(θ)=ix(i)(hθ(x(i))y(i))

该式本质上与线性回归的梯度一样,只不过此时的 hθ(x)=σ(θTx).

3 Softmax回归

3.1 引言

Softmax回归,也称多项式逻辑斯特回归,是逻辑斯特回归的广义版本,用于处理多类分类问题。在逻辑斯特回归中,我们假设标签是二值的,即 y(i){0,1} 。我们使用该分类器来区分两类手写字符。Softmax回归允许我们处理 y(i){1,...,K} 问题,其中 K 为类别个数。
回顾逻辑斯特回归,我们有一组共m个带标签训练样本 {(x(i),y(i)):i=1,...,m} ,其中输入特征 x(i)Rn ,标签 y(i){0,1} 。假设

hθ(x)=11+exp(θTx)

模型参数 θ 通过最小化如下代价函数求得:

J(θ)=i(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

在Softmax回归中,我们关注多类分类,故标签 y 取自K个不同的值。给定带标签训练样本 {(x(i),y(i)):i=1,...,m} ,此时 y(i){1,...,K} 。如MNIST数据集, K=10 表示不同类。
给定一个测试输入 x ,我们希望假设可以估计概率 P(y=k|x) k=1,...,K 。即估计在 K 个不同类别上估计类别的概率。故我们的假设应该输出一个K维的向量,表征 K 个估计的概率。具体地,假设

hθ(x)=P(y=1|x;θ)P(y=2|x;θ)...P(y=K|x;θ)=1Kj=1exp(θ(j)Tx)exp(θ(1)Tx)exp(θ(2)Tx)...exp(θ(K)Tx)

其中, θ(1),θ(2),...,θ(K)Rn 是模型参数, 1/Kj=1exp(θ(j)Tx) 用于标准化分布,即求和为一。
为了方便,用 θ 表示模型参数,以列的方式将 θ(1),θ(2),...,θ(K) 连接起来。

θ=|θ(1)||θ(2)||...||θ(k)|

3.2 代价函数

首先,引入指示函数 1{} 1{true}=1 ,否则 1{false}=0 。例如 1{2+2=4}=1 1{1+1=5}=0 。Softmax回归代价函数

J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]

其中,

P(y(i)=k|x(i);θ)=exp(θ(k)Tx(i))Kj=1exp(θ(j)Tx(i)).

我们无法解析求解 J(θ) ,故采用迭代优化算法,计算梯度如下:

θ(k)J(θ)=[i=1mx(i)(1{y(i)=k}P(y(i)=k|x(i);θ))].

##############################################################
代价函数 J(θ) 是根据最大似然得到的:

L=i=1m(k=1cP(y(i)=k|x(i);θ)1{y(i)=k})

J(θ) 对应于负的对数似然如下:
J(θ)=logL=i=1m(k=1c1{y(i)=k}logP(y(i)=k|x(i);θ))


hθ(x)=1Kj=1exp(θ(j)Tx)exp(θ(1)Tx)exp(θ(2)Tx)...exp(θ(K)Tx)

,令 hθ(x)(k)=exp(θ(k)Tx)Kj=1exp(θ(j)Tx) ,则

θ(k)hθ(x)(k)=θ(k)exp(θ(k)Tx)Kj=1exp(θ(j)Tx)=exp(θ(k)Tx)θ(k)1Kj=1exp(θ(j)Tx)exp(θ(k)Tx)(Kj=1exp(θ(j)Tx))2Kj=1exp(θ(j)Tx)θ(k)=1{k=k}exp(θ(k)Tx)xKj=1exp(θ(j)Tx)exp(θ(k)Tx)exp(θ(k)Tx)x(Kj=1exp(θ(j)Tx))2=exp(θ(k)Tx)xKj=1exp(θ(j)Tx)1{k=k}exp(θ(k)Tx)Kj=1exp(θ(j)Tx)=hθ(x)(k)x(1{k=k}hθ(x)(k))

θ(k)J(θ)=θ(k)i=1mk=1c1{y(i)=k}loghθ(x(i))(k)           =i=1mk=1c1{y(i)=k}1hθ(x(i))(k)θ(k)hθ(x(i))(k)           =i=1mk=1c1{y(i)=k}1hθ(x(i))(k)hθ(x(i))(k)x(i)(1{k=k}hθ(x(i))(k))           =i=1mk=1c1{y(i)=k}x(i)(1{k=k}hθ(x(i))(k))           =i=1mx(i)(1{y(i)=k}hθ(x(i))(k))

##############################################################

3.3 Softmax参数化属性

Softmax回归有一个不寻常的属性,其参数集是冗余的。假设参数 θ(1),θ(2),...,θ(K) 共同减去一个固定向量 ψ ,则类标签概率

P(y(i)=k|x(i);θ)=exp((θ(k)ψ)Tx(i))Kj=1exp((θ(j)ψ)Tx(i))                    =exp(θ(k)Tx(i))exp(ψTx(i))Kj=1exp(θ(j)Tx(i))exp(ψTx(i))                    =exp(θ(k)Tx(i))Kj=1exp(θ(j)Tx(i))

换言之,参数减去常向量 ψ 并不改变预测的概率。故可以说参数存在冗余。由于 J(θ) 可以由 θ(1),θ(2),...,θ(K) 达到最小,也可以由 θ(1)ψ,θ(2)ψ,...,θ(K)ψ 达到最小。但两个目标值是不同的。故,可以令 ψ=θ(K) ,将原始的 θ(K) 替换为 θ(K)ψ=0⃗  向量。故可以消除最后一个参数向量而不影响表示能力。

3.4 与逻辑斯特回归的关系

K=2 时,Softmax回归变为逻辑斯特回归,Softmax回归假设的输出为

hθ(x)=1exp(θ(1)Tx)+exp(θ(2)Tx)[exp(θ(1)Tx)exp(θ(2)Tx)]

ψ=θ(2) 可得

hθ(x)=1exp((θ(1)θ(2))Tx)+exp(0⃗ Tx)exp((θ(1)θ(2))Tx)exp(0⃗ Tx)      =1exp((θ(1)θ(2))Tx)+1[exp((θ(1)θ(2))Tx)1]

θ=θ(2)θ(1) ,则
hθ(x)=exp(θTx)exp(θTx)+11exp(θTx)+1

该式与逻辑斯特回归一致。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值