【CS229-lecture1-3】线性回归、分类与逻辑回归、广义线性模型
本文目的:总结与巩固所学内容,如有不正之处,欢迎批评指正,也欢迎一起交流讨论
1 线性回归
我们定义线性回归函数(linear regression)为:
\begin{align*}
& \\ h(x)=\sum_{i=0}^{m}\theta_{i}x=\theta^{T}x
\end{align*}
x 为输入变量,也叫输入特征 ,h(x)为输出变量或者目标变量。(x(i),y(i))为一组训练样本,一系列训练样本{(x(i), y(i)); i =1, . . . ,m}叫做训练集。举个例子,一个特征x是size,y是Price,把训练数据画在图上,如下图
我们的目标就是画一条直线尽量靠近这些点,用数学语言来描述就是代价函数(cost function)尽量小。
因此,整个求解过程可以总结为
\begin{align*}
&Hypothesis:h_\theta (x)=\theta_{0}+\theta_{1}x \\
&Parameter:\theta_{0},\theta_{1} \\
&Cost Function:J(\theta_{0},\theta_{1}) = \frac{1}{2m}\sum_{i=1}^{m}J(h_{\theta}(x^{(i)})-y^{(i)})^{2} \\
&Goal: \min_{\theta_{0},\theta_{1}} J(\theta_{0},\theta_{1}) \\
\end{align*}
1.1关于求解代价函数最小的方法
1.1.1 梯度下降法
梯度下降背后的思想是:开始时我们随机选择一个参数的组合 ,计算代价函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组合,可能会找到不同的局部最小值。直观表示为,
公式为
\begin{align*}
& \\ \theta_{j}:= \theta_{j}-\alpha\frac{\partial }{\partial \theta_{j}}J(\partial \theta_{0},\partial \theta_{1}...\partial \theta_{n})(j=1,2...n)
\end{align*}
其中alpha为学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。
只有一个训练数据的例子,
\begin{align*}
&\frac{\partial }{\partial \theta}J(\theta)= \frac{\partial }{\partial \theta}\frac{1}{2}(h_{\theta}(x)-y)^{2} \\
& =2\cdot \frac{1}{2}(h_{\theta}(x)-y)\cdot \frac{\partial }{\partial \theta_{j}}(h_{\theta}(x)-y)\\
& =(h_{\theta}(x)-y)\cdot \frac{\partial }{\partial \theta_{j}}(\sum_{i=0}^{n}\theta_{i}x_{i}-y)\\
&=(h_{\theta}(x)-y)x_{j} \\
\end{align*}
批梯度下降法
\begin{align*}
& \\ \theta_{j}:=\theta_{j}:+\alpha\sum_{i=1}^{m}(y^{(i)}-h_{\theta}(x^{(i)}))x_{j}^{(i)}
\end{align*}
随机梯度下降法
\begin{align*}
& \\ \theta_{j}:=\theta_{j}:+\alpha(y^{(i)}-h_{\theta}(x^{(i)}))x_{j}^{(i)}
\end{align*}
牛顿法
\begin{align*}
& suppose\ we\ have\ some\ function\ f : \mathbb{R}\mapsto\mathbb{R}\\
& we\ wish\ to\ find\ a\ value\ of\ \theta : f(\theta)=0\\
& \theta : = \theta - \frac{f(\theta)}{f'(\theta)} ..................................................(*)
\end{align*}
牛顿法从初始点theta开始,作切线与坐标轴相交,交点离theta的坐标轴距离为delta,则theta以每次迭代为截距的长度的速度逐渐收敛,将f以似然函数代入,
& f(\theta) = \ell'(\theta)\\
& thus\ \theta : = \theta - \frac{\ell'(\theta)}{\ell''(\theta)}
\end{align*}
& \theta : = \theta - H^{-1}\nabla _{\theta}{\ell(\theta)}\\
& H_{ij} = \frac{\partial^2 \ell(\theta)}{\partial \theta_{i}\partial \theta_{j}}
\end{align*}
Fisher Socoring:当使用牛顿法求解logistic回归的似然函数极大值,牛顿法又叫FIsher Scoring.
1.1.2.The Normal Equations(e.g. LMS)
以最小二乘法为例理解似然函数与代价函数的关系,
\begin{align*}
& \\ \theta=(X^{T}X)^{-1}X^{T}y
\end{align*}
假设输出变量与输出变量的关系,
\begin{align*}
& \\ y^{(i)} = \theta^{T}x^{(i)} + \epsilon ^{(i)}
\end{align*}
则,
\begin{align*}
& y^{(i)} = \theta^{T}x^{(i)} + \epsilon ^{(i)}\\
& \epsilon(i) is\ IID\ error\ term \\
& assume : \epsilon \sim N(0,\sigma^{2}) \\
& p(\epsilon ^{(i)} = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(\epsilon^{(i)})^{2}}{2\sigma^{2}})
\end{align*}
因此,
\begin{align*}
& \\ p(y^{(i)}|x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^{T}x^{(i)})^{2}}{2\sigma^{2}}) \\
\end{align*}
在这个式子中,由于我们更关注模型的参数,为了更直观的表示,我们定义似然函数为,
\begin{align*}
& L(\theta) = L(\theta;X,Y) = p(Y|X;\theta) \\
\end{align*}
将L展开,取对数,
\begin{align*}
& L(\theta) = \prod_{i=1}^{m} p(y^{(i)}|x^{(i)};\theta) \\
& = \prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^{T}x^{(i)})^{2}}{2\sigma^{2}}) \\ & \\
& \ell(\theta) = logL(\theta)\\
& = log\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^{T}x^{(i)})^{2}}{2\sigma^{2}}) \\
& = \sum_{i=1}^{m}log\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^{T}x^{(i)})^{2}}{2\sigma^{2}}) \\
& =mlog\frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{2\sigma^{2}}\cdot \frac{1}{2}
\sum_{i=1}^{m}(y^{(i)} - \theta^{T}x^{(i)})^{2}
\end{align*}
我们需要求解似然函数最大值,该问题等价于求解下试的最小值,即代价函数最小,似然函数最大
\begin{align*}
& \ell(\theta) = \frac{1}{2}\sum_{i=1}^{m}(y^{(i)} - \theta^{T}x^{(i)})^{2}\\
& = \frac{1}{2}\sum_{i=1}^{m}(\epsilon^{(i)})^{2}\\
\end{align*}
局部权值线性回归
此处指引入概念,从左往右依次为:Underfitting, Immediate Fitting, Overfitting,
局部加权思想,越远的点加权越小,因此因此权值w,
\begin{align*}
& \\ w^{i}=exp(-\frac{(x^{(i)}-x)^{2}}{2\sigma ^{2}})
\end{align*}
如果x为向量,则w,
\begin{align*}
&w^{i}=exp(-\frac{(x^{(i)}-x)^{T}\Sigma^{-1}(x^{(i)}-x)}{2\sigma ^{2}}) \\
&\Sigma^{-1} is \ covariance \ matrix\\
\end{align*}
2 分类与逻辑回归
2.1逻辑回归
当我们解决分类问题时,我们忽略了y是离散的值,假如我们对于给定的x,试图使用线性回归去预测y,其效果是相当差的,
因此,我们需要改变一下假设,让假设函数y重新落在{0,1},
\begin{align*}
&h_{\theta}(x)=g(\theta^{T}x)= \frac{1}{1+exp(-\theta^{T}x)} \\
&where \ g(z)=\frac{1}{1+exp(-z)} \\
\end{align*}
我们称g(z)为logistic函数,或者sigmoid函数,其图形为,
引入一条g(z)的一阶导数性质,下面要用
\begin{align*}
&g'(z) = \frac{d}{dz}\frac{1}{1+e^{-z}}
=\frac{1}{1+e^{-z}}(e^{-z})\\
& = \frac{1}{1+e^{-z}}(1-\frac{1}{1+e^{-z}})\\
& = g(z)(1-g(z))\\
\end{align*}
为什么是sigmoid函数?换个形状类似的函数不行么?这个后面一样有概率解释的。注意,这个函数输出值代表“y为1的概率”,再回过头看看,前面y用1和0来表示正反也是有讲究的(讲svm的时候又换成+1,-1),直观上看sigmoid越接近1表示1的概率大,接近0表示0的概率大,还有一个好处就是下面算likelihood的时候用式子好表示。
建好了Logistic模型,我们怎么去拟合呢?当考虑最小二乘的时候我们使用了极大似然估计,因此这里引入代价函数(Cost Function),假设
\begin{align*}
& P(y=1|x;\theta ) = h_{\theta}(x) \\
& P(y=0|x;\theta ) = 1-h_{\theta}(x) \\
\end{align*}
将两个式子合并,
\begin{align*}
& \\ P(y|x;\theta ) = (h_{\theta}(x))^{y}(1-h_{\theta}(x))^{1-y}
\end{align*}
再假设对所有m个训练样本都独立,得到似然函数如下
\begin{align*}
&\ell(\theta ) = P(Y|X;\theta ) \\
& =\prod_{i=1}^{m}P(y^{(i)}|x^{(i)};\theta ) \\
& =\prod_{i=1}^{m}((h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}\\
\end{align*}
取对数似然,
\begin{align*}
& \ell(\theta ) = log\ L(\theta )\\
& =\sum_{i=1}^{m}(({y^{(i)}}logh_{\theta}(x^{(i)}))+{(1-y^{(i)}})log(1-h_{\theta}(x^{(i)}))\\
\end{align*}
我们将对数似然函数最大化,即求对数似然函数一阶导为0的点,
\begin{align*}
& \frac{\partial }{\partial \theta_{j}}\ell(\theta ) =
(y\frac{1}{g(\theta^{T}x)}-(1-y)\frac{1}{1-g(\theta^{T}x)})\frac{\partial }{\partial \theta_{j}}g(\theta^{T}x)\\
& =(y\frac{1}{g(\theta^{T}x)}-(1-y)\frac{1}{1-g(\theta^{T}x)})g(\theta^{T}x)(1-g(\theta^{T}x))\frac{\partial }{\partial \theta_{j}}\theta^{T}x\\
& =(y\frac{1}{g(\theta^{T}x)}-(1-y)\frac{1}{1-g(\theta^{T}x)})x_{j}\\
& =(y-h_{\theta}(x))x_{j}\\
\end{align*}
3 广义线性模型
在回归模型里,
\begin{align*}
& y|x;\theta \sim N(\mu,\sigma^{2})\\
\end{align*}
在分类模型里,
\begin{align*}
& y|x;\theta \sim Bernoulli(\phi)\\
\end{align*}
这些模型,我们叫做广义线性模型
3.1 指数分布族
我们定义一个分布,写成以下形式,
\begin{align*}
& p(y;\eta) = b(y)exp(\eta^{T}T(y)-a(\eta)) \\
& \eta : natural\ parameter\\
& T(y) : sufficient\ statistic \\
& a(\eta) : log\ partition\ function \\
\end{align*}
将Bernoulli分布写成指数分布形式,
\begin{align*}
& Bernoulli\ y\in(0,1) \\
& p(y=1;\phi) = \phi \\
& p(y=0;\phi) = 1-\phi \\
& p(y=0;\phi) = \phi ^{y}(1-\phi)^{1-y} \\
& \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =exp(ylog\phi+(1-y)log(1-\phi)) \\
& \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =exp(ylog(\frac{\phi}{1-\phi})+log(1-\phi)) \\
\end{align*}
因此,对应的a,b,eta为,
\begin{align*}
& T(y) = y \\
& b(y)= 1 \\
& \phi = \frac{1}{1+e^{-\eta}} \\
& \eta = log(\frac{\phi}{1-\phi}) \\
& \ \ \ =log(1+e^{\eta})
\end{align*}
将高斯分布写成指数分布形式,为简化形式,将高斯分布方差设为1
\begin{align*}
& Gaussian \\
& p(y\phi) = \frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}(y-\mu)^{2}) \\
& p(y\phi) = \frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}y^{2})\cdot exp(\mu y-\frac{1}{2} \mu ^{2}) \\
\end{align*}
对应的参数为,
\begin{align*}
& T(y) = y \\
& \eta = \mu \\
& b(y)= \frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}(y-\mu)^{2}) \\
& a(\eta) = \mu ^{2}/2 \\
& \ \ \ \ \ \\ =\eta^{2}/2 \\
\end{align*}
为了引入广义线性模型,需要做以下三点假设:
(1)对于给定的x和模型参数theta,y符合指数分布
(2)假设建立的函数值等于y基于给定x分布的期望
(3)自然系数与输入X线性相关
\begin{align*}
&(1)\ y|x;\theta \sim ExponentialFamily(\eta)\\
&(2)\ Given\ x ,\ predit\ goal : T(y;x) = y; \\
& \ \ \ \ \ \ hypothesis\ h(x) = E[y|x], \\
& \ \ \ \ \ \ e.g.\ in\ logistic\ regression\\
& \ \ \ \ \ \ h_{\theta}(x) = p(y=1|x;\theta) \\
& \ \ \ \ \ \ \ \ =0 \cdot p(y=0|x;\theta) + 1\cdot p(y=1|x;\theta) \\
& \ \ \ \ \ \ \ \ = E[y|x] \\
&(3)\ \eta = \theta^{T}\ or\ \eta_{i} = \theta_{i}^{T}x
\end{align*}
3.1.1 最小二乘法
在高斯分布中,我们有,
\begin{align*}
& \eta = \mu \\
& h_{\theta}(x) = E[y|x;\theta]\\
& \ \ \ \ \ \ \ = \mu \\
& \ \ \ \ \ \ \ = \eta \\
& \ \ \ \ \ \ \ = \theta^{T}x
\end{align*}
对于第一个等号来自假设(2),第二个等号来自y|x实际属于高斯分布,第三个等号来自假设(1),最后一个等号来自假设(3)。
3.1.2 logictic回归logictic回归属于二值回归y仅取{0,1},属于Berboulli分布,
\begin{align*}
& h_{\theta}(x) = E[y|x;\theta] \\
& \ \ \ \ \ \ \ \ = \phi \\
& \ \ \ \ \ \ \ \ = \frac{1}{1+e^{-\eta}} \\
& \ \ \ \ \ \ \ \ = \frac{1}{1+e^{-\theta^{T}x}} \\
\end{align*}
同样的,我们得到logistic模型
3.1.3 softmax回归
在多分类问题中,假如y有{1,2,....,k}个取值,这种情况下我们无法使用Bernoulli,因为y的取值可能有k个,因此我们使用多项式分布,假设有k个取值,所有可能的取值概率和为1,因此当k-1个取值已经固定时,k的可能性也被固定了(所有可能性和为1),但是我们通常还是y取值个数写为k(虽然实际只有k-1个参数能随意取值),这很重要。
\begin{align*}
& k\in\{\phi_{1},...,\phi_{k}\} \\
& \sum_{i=1}^{k}\phi_{i} = 1 \\
\end{align*}
为了清楚的表达多项式指数分布,定义T(y)->R(k-1)
\begin{align*}
& T(y) \in \mathbb{R}^{k-1} \\
\end{align*}
\begin{align*}
\begin{matrix}
& T(1) = \begin{bmatrix}1\\ 0\\ 0\\ .\\ .\\.\\0\\\end{bmatrix}
& T(2) = \begin{bmatrix}0\\ 1\\ 0\\ .\\ .\\.\\0\\\end{bmatrix}
& ...
& T(k-1) = \begin{bmatrix}0\\ 0\\ 0\\ .\\ .\\.\\1\\\end{bmatrix}
& T(k) = \begin{bmatrix}0\\ 0\\ 0\\ .\\ .\\.\\0\\\end{bmatrix}
& & & \\
\end{matrix}
\end{align*}
将p(y|x)展开成指数分布,
\begin{align*}
& p(y;\phi) = \phi_{1}^{1\{y=1\}}\phi_{2}^{1\{y=2\}}...\phi_{k}^{1\{y=k\}}\\
& \ \ \ \ \ \ \ \ \ = \phi_{1}^{1\{y=1\}}\phi_{2}^{1\{y=2\}}...\phi_{k}^{1-\sum_{i=1}^{k-1}1\{y=i\}}\\
& \ \ \ \ \ \ \ \ \ = \phi_{1}^{T(y)_{1}}\phi_{2}^{T(y)_{2}}...\phi_{k}^{1-\sum_{i=1}^{k-1}{T(y)_{i}}}\\
& \ \ \ \ \ \ \ \ \ = exp(T(y)_{1}log(\phi_{1}/\phi_{k})+T(y)_{2}log(\phi_{2}/\phi_{k}))+ \\
& \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ... \ + T(y)_{k-1}log(\phi_{k-1}/\phi_{k}))
+ log(\phi_{k})) \\
& \ \ \ \ \ \ \ \ \ = b(y)exp(\eta^{T}T(y)-a(\eta))
\end{align*}
各参数值为,
\begin{align*}
\begin{matrix}
& \eta = \begin{bmatrix}log(\phi_{1}/\phi_{k})\\log(\phi_{2}/\phi_{k})\\ .\\ .\\ .\\log(\phi_{k-1}/\phi_{k})\end{bmatrix}
\end{matrix}
\end{align*}
\begin{align*}
& a(\eta) = -log(\phi_{k}) \\
& b(y)=1 \\
\end{align*}
将式子进行变形,
\begin{align*}
& \eta_{i} = log(\frac{\phi_{i}}{\phi_{k}}) \\
& e^{\eta_{i}} = \frac{\phi_{i}}{\phi_{k}} \\
& \phi_{k}e^{\eta_{i}} = \phi_{i} \\
& \phi_{k}\sum_{i=1}^{k}e^{\eta_{i}} = \sum_{i=1}^{k}\phi_{i} = 1 \\
& i.e. \phi_{k} = \frac{1}{\sum_{i=1}^{k}e^{\eta_{i}}} \\
& \phi_{i} = \frac{e^{\eta_{i}}}{\sum_{j=1}^{k}e^{\eta_{j}}} \\
\end{align*}
因此,得到softmax回归模型,
\begin{align*}
& p(y=i|x;\theta) = \phi_{i}\\
&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \frac{e^{\eta_{i}}}{\sum_{j=1}^{k}e^{\eta_{j}}} \\
&\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ = \frac{e^{\theta_{i}^{T}x}}{\sum_{j=1}^{k}e^{\theta_{i}^{T}x}} \\
\end{align*}
根据假设,输出为,
\begin{align*}
& h_{\theta}(x) = E[T(y)|x;\theta] \\
& \ \ \ \ \ \ \ \ \ = E\begin{bmatrix}
1\{y=1\}\\1\{y=1\} \\. \\. \\. \\1\{y=k-1\}
\end{bmatrix} \\
& \ \ \ \ \ \ \ \ \ \ = \begin{bmatrix}
\phi_{1} \\\phi_{2} \\. \\. \\\phi_{k-1}
\end{bmatrix} \\
& \ \ \ \ \ \ \ \ \ \ =\begin{bmatrix}
\frac{e^{\theta_{1}^{T}x}}{\sum_{j=1}^{k}e^{\theta_{i}^{T}x}} \\
\frac{e^{\theta_{2}^{T}x}}{\sum_{j=1}^{k}e^{\theta_{i}^{T}x}} \\. \\. \\
\frac{e^{\theta_{k}^{T}x}}{\sum_{j=1}^{k}e^{\theta_{i}^{T}x}}
\end{bmatrix} \\
\end{align*}
其似然函数为,
\begin{align*}
& \ell (\theta) = \sum_{i=1}^{m}log\ p(y=i|x;\theta)\\
&\ \ \ \ \ \ \ \ \ = \sum_{i=1}^{m} log\ \prod_{l=1}^{k} (\frac{e^{\theta_{l}^{T}x^{(i)}}}{\sum_{j=1}^{k}e^{\theta_{i}^{T}x^{(i)}}})^{1\{y^{(i)}=l\}} \\
\end{align*}