第四课复习

一、牛顿法:
这节课首先老师介绍了牛顿法:先看一条曲线
这里写图片描述
解释:
(1)先给定theta0起始点,曲线为f(theta),theta0到theta1的距离等于f(theta0)除以f(theta0)的导数。那么从而可以求得theta1.
(2)当theta减小,f(theta)逐渐变小,因此总有一点可以求得theta(t+1),也就是f(theta)等于0的那个点,然后此时由于f(theta(t+1))等于0,所以由上图最后一行公式得来的theta(t+2)的值不再改变。

有上述方法,可知,假设f(theta)为l(theta)的导数,那么此方法就可以用来求l(theta)导数为0的点,也就是当l(theta)为凸集时,此方法可以用来求l(thea)的最值点。
(3)由上面两个分析可得到此方法在l梯度方向求最值。假设方向导数
这里写图片描述
其中H称为黑塞矩阵,如果偏导数相等的话则是一个对称矩阵。那么有上述公式就可得在所有方向上,J(theta)的最小值。下面公式我没有证明,此时的theta为n维列向量,如下图所示:
这里写图片描述
一直求解theta直到其不再变化,则得到J(theta)的最值。

二 logistic regression
1、首先看一个假设这里写图片描述
此时的建设已经不是线性回归,现在的建设属于分类问题。所以假设的结果为一个概率,因此假设的值在0到1之间(假设成立,为这类的概率),如上述公式所示。

2、exponential family(简单的就莉姐为e族吧)
(1)只要猜测的概率可以写成如下形式,则概模型就可以是exponential family,然后假设概率就能写成1的形式。exponential family:
这里写图片描述
(2)推导几个例子:
伯努利分布:这里写图片描述
高斯分布:这里写图片描述

泊松分布:
这里写图片描述

三 创建线性模型 generalize a linear model:
令:
(1) y|x;theta是exponential family 其中theta和x是固定的
(2)如果给定x,则目的就是输出条件期望,说白了也就是输出假设,前面学的那么多的h(theta)实际上就是期望,一个模型最正确的期望。E[T(y)|x]
(3)最简单情况,权重什么的全都不考虑,令这里写图片描述
这是最简单的情况。

四、把三应用于伯努利分布:
这里写图片描述
这就是一开始假设的式子。

上述伯努力情形,y ~{0,1}。

五、当多重情形即 y~{1,2,…..,k} 时,首先假设y取每一个值的概率为:这里写图片描述
最后一项可以用1减去余项之和,因为所有项加起来是1,可以看成一个袋子里有很多颜色的球,从中任取一个,是什么颜色球的问题。
(1)I{i=y} = 1; 这个式子也叫作indicator, 就是大括号里面的条件成立则式子等于1,否则式子等于0.
(2)由上面的基础可以写出p(y)的表达式,并且可以导出此表达式也 属于exponential family:这里写图片描述
(3)求得假设概率fai(i)为:
这里写图片描述
求得的假设 h(theta)为:
这里写图片描述
六、课后习题,用牛顿法球 logistic regression.
经验风险:
这里写图片描述
这里y 的取值为-1或1,和0,1的情况基本类似,h(theta)为y=1的概率,因此所求得的h(theta)和伯努利情况一样也为:这里写图片描述
对j(theta)变个型:
这里写图片描述
用牛顿法求解j(theta),也就是用牛顿法球此式子的最小值。
牛顿法(老师上课说适合应用于少量数据):这里写图片描述
因此重点求圈1和圈2,因为圈1黑塞矩阵为二阶导数,因此要先求一阶导数圈2:
这里写图片描述
由圈2可求得圈1:
这里写图片描述
这个式子用matlab画出来,提前得想一想,矩阵是怎么构造的:
这里写图片描述
其实j(theta)的偏导数和 黑塞矩阵都好推导,只是matlab表示一下就变得很难,我也是看了答案才琢磨了半天才懂得,这次不看答案自己推一边,解决了j(theta)的方向导数就剩下黑塞矩阵了:

这里写图片描述
这么一项一项表示H(ik)也行,但是比较复杂,那么有上面的推导过程就可以直接写出H
了:
这里写图片描述
matlab代码(logistic regression 部分)代码几乎和答案一样,我一开始没做出来,光会做计算,matlab表示一下就蒙了:

function theta = logistc(X,Y ,times)
%LOGISTC Summary of this function goes here
%   Detailed explanation goes here
    [mm,nn] = size(X);
    theta = zeros(nn,1);
    for ii = 1:times
        margin =Y.* (X*theta);
        prob = 1./(exp(margin)+1);
        grad = (-1/mm)*(X'*(prob.*Y));
        H = (1/mm)*(X'*diag(prob.*(1-prob))*X);
        theta1 = theta;
        theta = theta - H\grad;
        if sum(theta1-theta) == 0
            break;
        end
    end
end

剩余部分:

clc;
clear;
X = load('x.txt');
Y = load('y.txt');
X = [ones(size(X,1),1) X];
theta = logistc(X,Y,100);
figure;
hold on;
xx = min(X(:,2)):0.05:max(X(:,2));
plot(X(Y<0,2), X(Y<0,3),'r*');
plot(X(Y>0,2), X(Y>0,3),'ko');
yy = -(theta(1)+theta(2)*xx)/theta(3);
plot(xx,yy,'b-','linewidth',2);

结果如图所示,中间的线为分界线:
这里写图片描述

这里的分界线相对好求,因为y只有两种情况,所以把假设值设为0.5即可,过程如下:
这里写图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章