牛顿方法
之前学习了使用梯度下降算法求函数的极值,其实要达到这个目的还有其他的方法,牛顿方法就是其中之一,并且收敛速度可以达到更快,被称为二次收敛。
牛顿方法的基本思路可以用下图表示
最左边的这幅图,我们的目标是找到函数的零点,初始化一个theta,更新方法为:
这样就可以不断接近使得函数为0的那个点。把牛顿公式用于求loss function l的极值点,就可以把l’当做f,具体思路如下:
注意:牛顿方法对于f的要求比较严格,使用之前要检查下f
一般来说,我们要求的theta是矢量,就需要使用这个公式:
这里的H是指Hessian,使用下面的方法求得:
广义线性模型 GLM
到这里我们学习了线性分类器和离散分类器,接触到了高斯分布和伯努利分布。本节,我们将指出这两种分布都是一种更为广泛的模型,称为广义线性模型——GLM。
指数分布族
为了介绍广义线性模型,首先引出指数分布族的概念,如果一种分布可以写成下面这种形式,我们称之为指数分布族:
n——自然参数
T——充分统计量
这里我们给出将高斯分布和伯努利分布化简为指数分布族的方法
高斯分布
其中
伯努利分布
其中
构建广义线性模型
当你知道一个问题符合泊松分布,应该怎样对该问题进行建模?因为泊松分布属于指数分布族,so,我们可以使用广义线性模型。这里我们将讲述如何构建广义线性模型,下面是广义线性模型要满足的三个必要的条件
(1)给定特征属性和参数
后,
的条件概率
服从指数分布族,即
。
(2)预测的期望,即计算
。
(3)与
之间是线性的,即
。
Ordinary Least Squares
对于满足高斯分布的x和y,我们可以得到以下结论:
Logistic Regression
对于满足伯努利分布的x和y,我们可以得到以下结论:
Softmax Regression
当一个分类问题中的类别为k(k>2),我们称之为multinomial distribution,也可以使用GLM为之建模。这种情况下,我们的T(y)就不是简单的y了,而是另外一种形式:
这里再对之进行建模,得到的结果为:
生成学习算法
之前,我们学习的算法都是由x推算y,构建如的模型,把x的特征向量输入到函数中去,输出的就是对y的预测值。
这里,我们换个思路,根据不同的y构建相应的x的模型,,例如当我们要把一群狗和猫分开,并确定y=1时为狗,否则为猫,则使用
对狗建模,使用p(y=0|x)对猫建模,之后,判断动物类别的时候,就把特征向量分别输入到p(y=0|x)和p(y=1|x),经比较就可以得出这个动物更像狗还是更像猫。
根据贝叶斯定理可以得到y对于x的概率分布p(y|x),即:
之后,就可以用如下公式确定y:
这里简单介绍几个生成学习算法
高斯判别分析
这里用到了多元高斯分布,分布模型如下:
![]()
其中表示协方差,μ表示期望
我们假设x对y的分布满足多元高斯分布模型,y满足伯努利模型,即:
得到log似然函数:
最大化似然函数,我们得到了其中参数的估计值:
这样,我们就得到了一种基于多元高斯分布的分类算法,这个算法具体做的事情可以用下图表示:
可以看到,这里的o和x分别大致输入两个不同的多元高斯分布。
高斯判别分析和逻辑回归的关系
我们如果把的值看作x的函数,那么我们就可以得到下面这种形式的分布:
其中,θ是高斯判别分析中参数的某种组合
但是反过来,如果y对x的分布满足逻辑回归,我们却不能推出x对y的分布满足多元高斯模型。这说明多元高斯模型比逻辑回归更强。
事实上,不止多元高斯分布,所有属于指数分布族的分布都具有这个特性。如果你能确定x对y的分布满足某种指数分布族,那么你就可以使用生成学习算法进行估计,这样得到的模型通常要比直接用逻辑回归效果更好。当然,如果你并不能 确定x对y的分布满足的模型,逻辑回归是最好的选择。
朴素贝叶斯
在GDA中,x的特征向量是连续的,这里我们讨论x的特征向量是离散的情况下使用的算法。
我们以垃圾邮件分类为例子,每一个邮件的特征向量都只能取0或者1,这取决于某个位置上的词是否在字典中出现
如果考虑上邮件中文字之间的关联性,那么我们要学习的算法是相当复杂的,这里我们使用了朴素贝叶斯理论来简化这一过程,即对于给定的y,xi之间是条件独立的。对于我们的邮件分类问题,就是对于已经分好类的邮件,其中每一个单词之间都是条件独立的,用数学方式表现出来,即:
这样,就可以得到数据的似然函数:
最大化似然函数,得到其中参数的理想值:
其中,第一个等式可以理解为:一个单词在垃圾邮件中出现的频率,第二个式子即:一个单词在非垃圾邮件中出现的概率,第三个式子即:垃圾邮件的概率。
这种学习方式需要大量的标注,以及合理的字典,对于数据量较大的情况来说并不是好消息。而且,他还有一个明显的bug,根据贝叶斯 公式,我们计算一个邮件是垃圾邮件的概率公式为:
这里,一旦邮件里面出现了一个之前从未出现过的词,那么,根据前面的估计值,、
都将为0,则p(y=1|x)=0,这显然是不合适的。所以我们这里引入了拉普拉斯平滑,估计参数的值时,我们做了如下处理:
,这样,即便统计次数为0,也不会出现概率为0的情况。