fox同学tensorflow学习分享--斯坦福机器学习4 by fox 20160121 
 
 作者:fox    整理排版:morinson  来源:FGM学习小组 
 
 
 
牛顿法   首先假设一个函数 f(Ө),找到一个Ө,使得f(Ө)=0 图像如图:                                然后在Ө0处对f(Ө)求导。 根据导数性质,我们得到一个在Ө0处的函数f(Ө)的切线。 延长这个切线到横轴上,得到Ө1。 以此类推,就可以获得函数f(Ө)=0处无限接近的点Ө。 如下图:   根据上面的计算,我们可以得到:   设△ = Ө0– Ө1 根据导数的定义,我们知道函数f(Ө)在Ө0处的导数,就是函数f(Ө)在Ө0处的斜率。 而上图中,斜率等于垂直边除以水平边,所以:     因此:带入△    
 所以通用式:     所以似然性函数花写L(Ө)求最大值时,我们可以通过牛顿法,找到一个Ө使得:花写L(Ө)的导数等于0。   由于根据导数性质可以知道,函数在Ө处的导数等于0,说明函数在Ө处是拐点。 (这里其实不是很明白,为什么只需要知道是拐点,就可以当成最大值来求了,难道不是还要求二阶导才可以判断Ө处是拐点还是极值,然后用单调性求出是极大值还是极小值,老师也在回答同学提问的时候提到,函数f要满足一些条件,但是相当复杂,目前不准备展开讲。)   将花写的L(Ө)带入:注意这里是把花写L’(Ө)= 0带入,所以后面就变成了一阶导除以二阶导了。    
 牛顿法是一个二次收敛函数,二次收敛的意思是,每次递归,误差就会下降2个数量级。 0.1 -》  0.01   -》 0.0001     进一步的推导出牛顿法的一般式:     其中H是黑塞矩阵(Hessian Matrix) 这里用到了hessian矩阵的多元函数极值判定的性质(但是这里还是不太明白。)   下面摘自百度: 多元函数极值的判定 - 如果H(M)是正定矩阵,则临界点M处是一个局部的极小值。
 - 如果H(M)是负定矩阵,则临界点M处是一个局部的极大值。
 - 如果H(M)是不定矩阵,则临界点M处不是极值。
 
 
     牛顿法的问题在于H矩阵是一个特征数量集的个数n*n的矩阵,如果数量过多,那么计算这个矩阵的逆也是要花费很长时间的。   问题:如果这里不求最大值,求最小值,那么这个公式如何变化? 答:不变。     广义线性回归   目前讲了两个算法来对P(y|x ;Ө)进行建模,   P(y|x ;Ө)表示给定的x以Ө为参数得到y的概率。   其中, 使用y取实数时,服从高斯分布,从而得到基于最小二乘的线性回归 使用y取 0,1的分类算法时,服从bernouli伯努力分布,得到了logistic回归   那么问题来了。   对于logistic,是如何得到
 
  这个sigmoid函数的?这个函数可以非常自然的引出logistic回归,所以上面2种回归是我们下面要讲的广义线性回归的2个特例。     首先,我们要把伯努力分布和高斯分布看成通过一个变量获得不同伯努力或者高斯分布    
 伯努力分布和高斯分布都是指数分布族,我们希望构造一个函数通过改变参数来获得不同的分布,如下图:     η 称为分布的自然参数 T(y)称为概率分布的充分统计量,通常情况下,T(y)=y只是一个实数   那么上面的公式就是我们可以通过给定的a,b和T函数,来获得不同的分布,然后通过改变η,来获得不同的分布     以伯努力分布来说   上面公式中,Φ指定了y=1的概率   通过指定a,b和T,使得指数分布族公式等同于伯努力公式 首先伯努力分布概率公式可以写成这样:    
 对这个公式取exp和Log:    
 这样,我们就推导出一个通过指定a,b和T得到一个符合指数分布族公式的伯努力分布公式   那么我们看到    
 我们通过指数分布族公式推出了logistic回归公式   a,b和T分别取下面的值     同样的,高斯分布:    
 上一节课讲过,推倒最小二乘的时候,方差不管取什么值,都不会影响最终Ө的值,所以在这里我们将它设置为1.   高斯分布的推导过程:     所以,同理,其他属于指数分布族的分布都可以用这种方法计算模型函数。       广义线性模型的假设   1)y | x; Ө ~ exp family(η)  y服从指数分布族以η为参数的分布,就是说我们可以选取a,b和T,使得y在给定x并以Ө为参数下的条件概率分布,服从于以η为参数的指数分布族。 也就是说η以某种方式依赖于x   所以,如果你想对例如网站访问量进行预测的话,可以使指数分布族等于泊松分布来推倒模型。   2)对于给定的x,我们的目标是得到(expective)E[ T(y) | x ] ,我们希望h(x) = E[ T(y) | x ]   3)第三假设是一个设计决策,我们要决定η和x之间的关系:
 
  他们是线性相关,这里η是一个实数才有意义。         所以通过广义线性模型推倒伯努力分布: 当给定x和Ө,我们算法输出h Ө(x)如下图:    
 根据广义线性模型,我们只需要确定y的概率分布是伯努力分布,就可以推导出我们的假设函数hӨ(x) 同理,你可以通过确定y的概率分布是其他任何指数分布族,就可以自动的导出函数h,这就是这个方法的强大之处。     例子:   当y的概率分布是多项式分布时,y可以取k个可能的值:    
 首先把多项式分布写成指数分布族形式: 多项式分布的参数是Φ1,Φ2.。。。。。。。Φk 所以概率公式为:    
 因为Φk 可以表示为1减去之前所有项目的和,所以:    
 所以最终我们的参数有k-1个   多项式分布是几个T(y)不等于y的例子之一,所以当y属于{1,2,3…..k}时,T(y)是一个向量:    
 这些向量都是k-1维的。 下面顶一个符号 1{true} = 1 1{false} = 0 大括号里表示命题判断 所以上面的T(y)可以写成T(y)i = 1{y= i} ,也就是说T(y)选取第i个的时候是1,所以1{y=i}也是1   所以y概率函数可以写成     最终推导出指数分布族的公式(老师略过了推导过程) 最终a,b和T函数是这样的:     通过η和Φ的关系,反过来推出Φ的函数:    
 所以,根据广义线性模型第二条:    
 这个多项式分布的算法,被称为softmax回归 Softmax回归被认为是logistic回归的推广,用来解决当y有k种可能时的机器学习问题。 下面当有了一个训练集合:    
 我们可以用极大似然性花写L(Ө),找出Ө: 极大似然性等于每个训练样本的概率的乘积:  
   然后可以通过取log然后对Ө求导,然后用梯度上升法找到最大值。   这里Ө应该是有k-1个,并且每一个Ө都是一个n+1维的向量。  
 
 |