码迷,mamicode.com
首页 > 其他好文 > 详细

斯坦福公开课4:牛顿方法

时间:2017-03-22 01:00:08      阅读:317      评论:0      收藏:0      [点我收藏+]

标签:质量   density   tin   models   nowrap   logistic   sof   UI   参考   

 北京理工大学计算机专业2016级硕士在读,方向:Machine Learning,NLP,DM

本讲大纲:

1.牛顿方法(Newton’s method) 
2.指数族(Exponential family) 
3.广义线性模型(Generalized linear models)


牛顿法

假设有函数:技术分享,我们希望找到满足技术分享技术分享值. 这里技术分享是实数. 
牛顿方法执行下面的更新: 具体原理可参考文章《Jacobian矩阵和Hessian矩阵》
技术分享 
下图为执行牛顿方法的过程: 
技术分享 
简单的来说就是通过求当前点的导数得到下一个点.用到的性质是导数值等于该点切线和横轴夹角的正切值.

技术分享,我们可以用同样的算法去最大化技术分享 
技术分享

 

牛顿方法的一般化: 
如果技术分享是一个向量,那么: 
技术分享 
其中,技术分享技术分享技术分享的偏导数; 
H称为海森矩阵(Hessian matrix),是一个n*n的矩阵,n是特征量的个数,并且技术分享

牛顿方法的收敛速度比批处理梯度下降快很多,很少次的迭代就能够非常接近最小值了;但是当n很大时,每次迭代求海森矩阵和逆代价是很大的。


 

 

指数族

对P(y| x;θ)建模:

 

 

  1. y∈R:高斯分布---> 最小二乘法
  2. y∈{0,1}:伯努利分布---> Logistic回归 
 
    Binomial( φ ) = P( y=1 | φ ) = φ  一类伯努利分布
    N(  μ,σ2 )  一类高斯分布
    以上分布都是指数分布族的特例
指数族形式: 
技术分享
η被称为分布的自然参数(natural parameter)
T(y)是充分统计量(sufficient statistic)(对于我们考虑的分布来说,通常T(y)=y);
a(η)是日志分配函数(log partition function),e-a(η)是一个规范化常数,使得分布的和为1. 
给定函数T,a,b,通过改变参数η得到不同的分布。
 
下面展示伯努利(Bernoulli)高斯分布(Gaussian distribution)都是指数分布族的特例:
  • 伯努利分布可以写成: 
技术分享 
因此,令技术分享(有趣地发现其反函数为技术分享技术分享),并且, 
技术分享 
  • 高斯分布: 
回忆我们对线性回归求导时,方差对我们最终结果并没有任何影响.为了使问题简化,令技术分享于是有, 
技术分享 
得: 
技术分享
指数分布族还包括很多其他的分布: 
多项式分布(multinomial)  : 对k个结果的事件建模
泊松分布(poisson):用于计数过程建模 
伽马分布(gamma),指数分布(exponential):用于对连续非负的随机变量进行建模 
β分布Dirichlet分布:对小数建模
Wishart分布:协方差矩阵的分布
 
 

广义线性模型 (GLM)

为了导出GLM,作三个假设: 
(1)技术分享 
(2)给定x,我们的目标是预测T(y)的预期值. 在大部分例子中,我们有T(y)=y,因此意味着我们通过学习得到的假设满足技术分享(这个假设对logistic回归和线性回归都成立) 
(3)自然参数和输入变量是线性相关的,也就是说技术分享(自然参数大多是实数,如果自然参数是向量,则技术分享
3.1普通的最小二乘法 
为了说明普通的最小二乘法是GLM的特例,设定目标变量y(在GLM术语中叫响应变量-response variable)是连续的,并且假设服从高斯分布技术分享,高斯分布写成指数族的形式,有技术分享得到: 
技术分享
3.2 logistic回归 
考虑logistic,我们感兴趣的是二元分类,也就是说技术分享很容易想到指数分布族的伯努利分布,有技术分享,同理得到: 
技术分享
正则响应函数(canonical response function):技术分享 
正则连接函数(canonical link function):技术分享
 

3.3 softmax 回归 

当分类问题的y取值不止两个时,我们需要采用多项式分布(multinomial distribution).
在推导多项式分布的GLM之前,先把多项式分布表达成指数族.为了参数化多项式分布的k各可能结果,有人可能会用k个参数来说明每一种情况的可能性,但是这些参数是冗余的,并且并不是独立的(由于知道任何其中的k-1个,剩下的一个就可以求出,因为满足
技术分享). 因此我们用k-1个参数技术分享对多项分布进行参数化,
技术分享
这里T(y) <> y。
 
定义技术分享,如下, 
技术分享
介绍一个很有用的记号(指示函数),技术分享,例如1{2=3}=0,1{3=5-2}=1. 
因此T(y)和y的关系为技术分享

并且有技术分享,因此: 
技术分享

链接函数为,技术分享,为了方便,定义技术分享.

可得: 
技术分享 
因此技术分享,反代回去得到响应函数: 
技术分享

从η到技术分享的映射叫做softmax函数.

根据假设3,技术分享得到: 
技术分享

这个应用于分类问题(当技术分享),叫做softmax回归(softmax regression).是logistic回归的推广.

技术分享

与最小二乘法和logistic回归类似, 
技术分享

再通过梯度上升或者牛顿方法求出θ.


补充: 概率分布函数、概率密度函数、概率质量函数

  • 概率分布函数. Accumulative Distribution Function. ADF(X可以是连续的, 也可以是离散的随机变量.

 

技术分享
  • 概率密度函数. Probability Density Function. PDF.(为连续随机变量定义的)

 

技术分享
它本身不是一个概率值,可以大于1,在x积分后才是概率值。

 

  • 概率质量函数. Probability Mass Function. PMF. (为离散型随机变量定义的)

 

技术分享
Tips:
1、它本身就是一个概率值.对于连续型随机变量, 它任意一个确定x值的概率值都是0, 即:
技术分享
2、而对离散型随机变量, 它在任意一个x值的概率值就是它的PMF.

 

补充:统计中的分布

1. 伯努利分布(两点分布、0-1 分布
  • 描述的是一种随机试验(结果只有成功或失败,可能性是固定的p)发生的概率,属于离散型概率分布
  • 如果试验E是一个伯努利试验,将E独立重复地进行n次,则称这一串重复的独立试验为n重伯努利试验
  • 进行一次伯努利试验,成功(X=1)概率为p(0<=p<=1),失败(X=0)概率为1-p,则称随机变量X服从伯努利分布。
  • 伯努利试验是只有两种可能结果的单次随机试验,即对于一个随机变量X而言:
  • 技术分享
  • 技术分享
  • 概率质量函数技术分享     其中 k=0,1
  • 期望:
技术分享
  • 方差:技术分享
2. 二项分布(n 重伯努利分布)
  • 二项分布(Binomial distribution)是n重伯努利试验成功次数的离散型概率分布
  • 如果试验E是一个n重伯努利试验,每次伯努利试验的成功概率为p,X代表成功的次数,则X的概率分布是二项分布,记为X~B(n,p),其概率质量函数

 

技术分享

 

 

  • 二项分布名称的由来,是由于其概率质量函数中使用了二项系数技术分享,该系数是二项式定理中的系数,二项式定理由牛顿提出:

技术分享

技术分享

 

  • 二项分布的典型例子是扔硬币,硬币正面朝上概率为p, 重复扔n次硬币,k次为正面的概率即为一个二项分布概率。

 

 

技术分享
3.高斯分布(正态分布)

 

  • 若随机变量X服从一个数学期望μ、标准方差σ2的高斯分布,记为:

 

X~N(μ,σ2),

 

  • 其概率密度函数

 

技术分享
 
4.多项分布

  • 多项式分布(Multinomial Distribution)是二项式分布的推广。二项式做n次伯努利实验,规定了每次试验的结果只有两个,如果现在还是做n次试验,只不过每次试验的结果可以有多m个,且m个结果发生的概率互斥且和为1,则发生其中一个结果X次的概率就是多项式分布。
  • 扔骰子是典型的多项式分布。扔骰子,不同于扔硬币,骰子有6个面对应6个不同的点数,这样单次每个点数朝上的概率都是1/6(对应p1~p6,它们的值不一定都是1/6,只要和为1且互斥即可,比如一个形状不规则的骰子),重复扔n次,如果问有k次都是点数6朝上的概率就是
技术分享
  • 多项式分布一般的概率质量函数为:

技术分享

斯坦福公开课4:牛顿方法

标签:质量   density   tin   models   nowrap   logistic   sof   UI   参考   

原文地址:http://www.cnblogs.com/flyfatty/p/6597538.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!