Deep Learning and Unsupervised Feature Learning Tutorial Solutions
逻辑回归假设函数
在线性回归问题中,假设函数具有如下形式:
在 logistic 回归中,我们的训练集由m 个已标记的样本构成:,其中输入特征。 由于 logistic 回归是针对二分类问题的,因此类标记 。逻辑回归的假设函数的输出值位于[0, 1]之间,所以,我们需要找到一个满足这个性质的假设函数。
在逻辑回归问题中,将该函数的形式转换为如下形式:
其中,函数g称为S型函数(sigmoid function)或者是逻辑函数(Logistic function)(这两个术语是可以互换的),它具有如下形式:
该函数图形如下图所示:
可以看到,S型函数的取值位于(0,1)之间,满足 。那么
逻辑回归的假设函数(hypothesis function) 可以为如下形式:
虽然该算法中有”回归”二字,但其实它并不是一种回归算法,而是一种分类算法。
成本函数Cost和代价函数J
介绍构造逻辑回归问题的成本函数Cost和代价函数J。给定了一个含有m个样本的训练样本集,每个样本具有n维特征。x(i)为第i个样本的特征向量,y(i)为第i个样本的分类标签,回归问题的假设函数为hθ(x),那么,如何能够根据给定的训练样本集得到假设函数中的参数向量θ(也就是模型参数)呢?
参考线性回归分析中的代价函数J(θ):
可以构造如下的代价函数J(θ)
其中成本函数Cost为(类比线性回归问题构造的):
但是,这个成本函数Cost是关于θ的非凸函数,它的图形如下图左侧所示,梯度下降法不能保证该函数收敛到全局最小值,但梯度下降法可以保证凸函数(如下图右侧所示)收敛到全局最小解。所以,我们需要寻找另外的代价函数,使它是凸函数。
对于逻辑回归问题,构造如下式所示的成本函数:
也就是说,当样本标签为1时,利用-log(hθ(x))计算成本函数,该函数图像如下图左侧所示;当样本标签为0时,利用-log(1-hθ(x))计算成本函数,该函数图像如下图右侧所示。
从图中可以看出成本函数的意义:
当y=1(即标签为1)时
假设函数的输出值为1,则成本函数取值为0(实现了正确的分类,不需要付出代价)。
假设函数的输出值为0,则成本函数取值为无穷大(分类错误,付出了无穷大的代价)。
逻辑回归的极大使然推导
逻辑回归的理激活函数是sigmoid函数,可理解成一个被sigmoid函数归一化后的线性回归。因为sigmoid函数把实数映射到了[0,1]区间。给定有一个训练数据,构造它的似然函数(likelihood function)为
一般会使用最大释然求解参数,这时取一个负的log对数(negative logarithm),得到:
上式被称为交叉熵(cross entropy) loss函数,因为取了一个负对数,之前的最大化就变成了最小化,所以只需求解是交叉熵loss函数最小的参数。
对loss函数求导得到
到现在为止,我们已经得到了loss函数以及关于参数的偏导数,只需要通过梯度下降就可以得到参数的解。
简化成本函数Cost和代价函数J
下式给出了逻辑回归问题的代价函数J(θ)(即考虑了m个训练样本)
可以看到,在分类问题中,训练样本的y值永远是1或者0,所以可以据此来简化成本函数的书写(即将原来的分情况讨论的两个式子合并为一个式子),简化后的成本函数如下:
从而,逻辑回归的代价函数J(θ)可以写为:
通过最小化代价函数J(θ)可以得到最优的向量参数。
逻辑回归问题的梯度下降法
相应的损失函数为
优化问题的关键问题是代价函数对待优化参数的梯度和代价函数取值的求解。
- 利用下式计算代价函数取值
- 利用下式计算代价函数的偏导数
偏导数公式和向量化推导
偏导数的推导过程
向量化的推导过程