让我们首先谈一些监督学习问题的例子。假定我们有一个数据集,数据集中给出了来自俄勒冈波特兰的47所房子的居住面积(living areas)和价格(price):
我们可以将这些数据标识于图表上:
给定这样的数据,我们如何学习基于居住面积的大小的函数,来预测波兰特其它房子的价格。
为了建立以后使用的符号,我们使用x(i)表示“输入”变量(这个例子中的居住面积),也被称作输入特征,y(i)表示我们尽力预测的“输出”或者目标变量(价格)。一组x(i),y(i)被称作一个训练例子,我们将要用来学习的数据集——m个训练例子(x(i),y(i));i1,2...,m——被称作一个训练集。注意符号中的上标“(i)”仅仅是一个指向训练集的索引,和指数没有关系。我们使用X表示输入值的空间,Y表示输出值的空间。在这个例子中,XY。
为了稍微更加正式的描述监督学习问题,我们的目标是在给定一组训练集的情况下,学习一个函数h:XY,h(x)是一个对相对应y值的好的预测器。由于历史原因,这个函数h被叫做一个假设。可以形象地看出,过程就像这样:
当我们正努力预测的目标变量是连续时,正如在我们房子的例子中,我们成这种学习问题为一个回归问题。当y只能取少量的离散值时(比如,如果给定居住面积,我们想预测一个住处时一个house还是一个apartment),我们把它称作一个分类问题。
学习算法 训练集 x 房子的居住面积 h 预测的y预测的房子的价格 第一部分 线性回归
为了使我们的房子案例更有趣,让我们考虑一个更加丰富的数据集,在这个数据集里我们还知道每个房子里的卧室的数量:
这里,x是R2里的二维向量。比如说,x1(i)是训练集中第i个房子的居住面积,
(i)
是卧室的数量。(一般来说,当设计一个学习问题时,决定选择什么特征取x2
决于你,所以如果你在波兰特收集房子数据,你也可能决定包含其他的特征,比如是否每个房子有一个壁炉,浴室的数量等等。我们之后将会关于特征选择谈到更多,但是现在让我们假定特征已经给定。)
为了进行监督学习,我们必须决定我们将如何在电脑里表示函数/假设h。作为一个初始的选择,我们决定来使用x的线性函数来近似y:
h(x)01x12x2
这里,i是参数(也成为权重),用来参数化X到Y映射的线性函数空间。当不存在混淆的风险时,我们也会去掉h(x)中的下标,把它更简单的写作h(x)。为了简化我们的符号,我们也引入x01的惯例(这个是截距项),以致
h(x)ixiTx,
i0n在上式的右端项我们把和x都当作向量,n是输入变量的个数(不算x0)。
现在,给定一个训练集,我们如何选择或者学习参数?一个合理的方法看起来是使得h(x)接近y,至少对于我们训练的例子是成立的。为了使其形式化,我们将会定义一个函数,用来测量对于每组值,h(x(i))和相对应的y(i)值有多接近。我们定义代价函数:
1mJ()(h(xi)y(i))2
2i1如果你之前看过线性回归,你可以认出这是熟悉的最小二乘代价函数,它引出了普通最小二乘回归模型。无论你之前是否看过线性回归,让我们继续,我们最终会说明这是一个更宽广算法家族的一种特殊情况。
1 LMS( Least mean square,最小均方)算法
我们想选择以便最小化J()。为此,我们使用一个以对进行某些初始猜测作为开始的搜索算法,然后反复改变来使J()越来越小,直到希望上收敛到一个使J()最小的值。明确地,让我们考虑梯度下降算法,它以某些初始的值作为开始,反复地执行更新:
j:jJ() j(这个更新是对所有j0,1...,n的值同时执行的。)这里,被称作学习率。反复地以J下降最快的方向走一步是一个非常自然的算法。
为了执行这个算法,我们必须算出右边的偏导数项是什么。让我们首先计算我们只有一个训练样本(x,y)的情况,以致我们可以忽略J定义中的和。我们有:
1J()(h(x)y)2jj212(h(x)y)(h(x)y)2j n(h(x)y)(ixiy)ji0(h(x)y)xj对于一个训练样本(的情况),给出更新规则:
j:j(y(i)h(x(i)))x(ji)
这条规则被称作LMS更新规则(LMS代表“最小均方”),也被叫做widrow-hoff学习规则。这条规则有一些看起来很自然和直观的特征。比如,更新的量级和误差项(y(i)h(x(i)))成比例;从而,比如说,如果我们正好遇到一个预测值几乎匹配y(i)实际值的训练样本,然后我们发现几乎不需要改变参数;相反,如果我们的预测值h(x(i))有很大的误差(也就是说和y(i)相差较大),参数需要做较大的改变。
我们已经得到了当只有一个训练样本的LMS规则。对于多于一个训练样本的训练集,有两种方式可以修改这个方法。第一种方法是用以下的算法替换它:
重复直到收敛{
j:j(y(i)h(x(i)))x(ji) (对每一个j)。
i1m}
读者可以很简单证明上面更新规则中的求和量就是J()j(对于J的初始
定义)。所以,这仅仅是对原始的代价函数用了梯度下降。这个方法在每一步都会看整个训练集中的每个样本,被称作批梯度下降。注意到,尽管梯度下降一般对局部最小值很敏感,但我们在这里关于线性回归提出的最优化问题只有一个全局的最优,没有其他局部最优;因此梯度下降总是收敛(假定学习率不是太大)至全局最小值。实际上,J是一个凸二次函数。这里有一个最小化某二次函数的梯度下降的例子。
上面显示的椭圆形是一个二次函数的轮廓。梯度下降的轨迹也被显示了,初始值(48,30)。图形中x(叉号,被直线连接的)标记着梯度下降经过的连续的值。
为了学习预测房子价格的关于居住面积的函数,当我们对原来的数据集运行批梯度下降来寻求恰当的值时,我们得到071.27,10.1345。当我们画出x(面积)的函数h(x),同时画出训练数据,我们得到下面的图形:
如果卧室的数量也被包含成为一个输入特征,我们得到
0.60,10.1392,2-8.738。
上面的结果是通过块梯度下降得到的。还有一种可以替代块梯度下降也工作不错的的算法。考虑以下的算法:
Loop{
For i=1 to m,{
j:j(y(i)h(x(i)))x(ji) (for every j)
} }
在这个算法中,我们反复地遍历训练集,每次我们针对一个训练样本。我们根据只基于单个训练例子的误差的梯度来更新参数。这个算法被称作随机梯度下降(也称作增量梯度下降)。批梯度下降在走一步之前必须扫描整个的训练集——如果m值太大的话,就是代价很高的操作——然而随机梯度下降可以立即前进,然后通过看每一个例子继续前进。经常,随机梯度下降得到接近最小值的远比批梯度下降更快。(注意到尽管它可能永远收敛不到最小值,参数持续在
J()的最小值附近震荡,但是在实际中,大多数接近最小值的值是对真实最小
值的相当好的近似)。由于这个原因,特别是当训练集较大时,随机梯度下降胜过批梯度下降。
2 正规方程
梯度下降给了一种最小化J的方式。让我们讨论另外一种最小化J的方式,这次明确地进行行最小化,而且不用求助于迭代算法。在这个方法中,我们通过明确地的求关于j的偏导数并令其为0来使J最小化。为了让我们能够做这些而不写大量的代数和满页的矩阵导数(此处不懂),让我们引进一些矩阵微积分学的符号。
2.1 矩阵的导数
对于一个函数f:RmnR,从m x n的矩阵映射至实数,我们定义f关于A的导数:
因此,梯度Af(A)是一个 m x n的矩阵,它的元素(i,j)是fAij。例如,
A A假定A1112是一个2 x 2的矩阵,函数f:R22R为
A21 A22f(A)32A115A12A21A22 2这里,Aij表示矩阵A的(i,j)元素。我们然后得到
3 10A12 Af(A)2A22 A21我们也引入运算符迹,写作”tr”。对于一个 n x n的(方)矩阵A,A的迹被定义为它的对角线元素的和:
trAAii
i1n如果a是一个实数(也就是说,a是一个 1 x 1的矩阵),然后tr aa。(如果你之前没有看到过这个“运算符符号”,你应该把A的迹看作tr(A),或者是“迹”
函数作用于矩阵A。然而,不写括号的迹更常见。)
迹运算符有这样的特征,对于两个矩阵A和B,满足AB是方阵,我们有
trABtrBA。(自己证明)作为这个的推论,我们还可得到,比如,
trABCtrCABtrBCA,
trABCDtrDABCtrCDABtrBCDA.迹运算符的一下特征也同样容易证明。这里,A和B都是方阵,a是一个实数:
trAtrATtr(AB)trAtrB traAatrA我们现在不加证明的陈述一下矩阵导数的一些事实(我们直到本节的晚些时候才需要它们中的一些)。等式(4)只应用于非奇异方阵A,其中A表示A的行列式。我们有:
AtrABBT (1)ATf(A)(Af(A))T (2)AtrABATCCABCTABT (3)AAA(A1)T (4)为了使我们的矩阵符号更具体,让我们现在详细的解释一下这些等式中的第一个式子的意义。假定我们有某个固定的矩阵BRnm
。然后我们可以定义一个
mn函数f:RR为f(A)trAB。注意到这个定义是有意义的,因为如果
ARmn,那么AB就是一个方阵,我们就可以把迹运算符应用到它;因此,f的
确从Rmn映射到R。然后我们可以运用我们矩阵导数的定义来求得Af(A),它
T也是一个m x n的矩阵。上面等式(1)说明了这个矩阵的(i,j)元素将会是B的
(i,j)元素,或者相等地,由Bji给出。
等式(1-3)的证明相当简单,给读者留作习题。等式(4)可以通过矩阵逆的伴随矩阵表示得到。
2.2 最小二乘再回顾
有了矩阵导数的工具,让我们继续求解使J()最小的的解析解。我们先以矩阵-向量符号重新写出J。
给定一个训练集,定义一个m x n的设计矩阵X(如果我们包括截距项,实际上是m x n+1),每行是训练例子的输入值:
(x(1))T(2)T(x)X。 (m)T(x)y是m维的向量,包括训练集中所有目标值:
y(1)y(2)y。 (m)y(i)(i)T现在,因为h(x)(x),我们可以很容易地证明
(x(1))Ty(1)Xy(x(2))Ty(m)h(x)yh(x(m))y(m)i(1)(1)
T2因此,使用关于向量z的事实,我们有zzzi:
1T1m(Xy)(Xy)(h(x(i))y(i))222i1 J()最后,为了最小化J,让我们求得它关于的偏导数。结合等式(2)和(3)得,我们发现
ATtrABATCBTATCTBATC (5)
因此,
J()1(Xy)T(Xy)21(TXTXTXTyyTXyTy)21tr(TXTXTXTyyTXyTy)2 1(trTXTX2tryTX)21(XTXXTX2XTy)2XTXXTy在第三步中,我们使用了一个实数的迹就是这个实数的事实;第四步使用了
trAtrAT的事实,第五步使用了等式(5),令AT,BBTXTX,CI,
和等式(1).为了最小化J,我们令它的导数为0,得到正规方程:
XTXXTy
因此,使J()最小的的解析解由该等式给出
(XTX)1XTy。
3 概率解释
当面对一个回归问题,为什么线性回归,精确地说为什么最小二乘代价函数
J,是一个合理的选择?在这节中,我们将会给出一组概率假设,在这组假设下,
最小二乘回归是可以很自然得到的算法。
让我们假设目标变量和输入变量通过下面等式关联
y(i)Tx(i)(i)
在这里,是误差项,捕捉了未建模的影响(比如如果有一些因素对预测房子的价格非常相关的,但是我们没有考虑在回归之内)或者随机噪声。让我们进一步假设是IID分布(同分布,independently and indentically distributed),服从零均值和某方差的高斯分布(也称作正态分布)。我们可以把这个假设写作\"(i)2
(i)(i)~N(0,2)\"。也就是说,(i)的概率密度为
1((i))2p()exp()
222(i)这暗示着
1(y(i)Tx(i))2p(y|x;)exp(). 222(i)(i)p(y(i)|x(i);)这个符号表明这是给定x(i)的y(i)的分布,以为参数。注意我们不可以以为条件(\"p(y(i)|x(i),)\"),因为不是一个随机变量。我们也可以把y(i)的分布写作
y(i)|x(i);~N(Tx(i),2)。
给定X(为包含所有x的设计矩阵)和,y的分布是什么?数据y的概率由
(i)(i)(i)p(y|X;)给出。这个数量通常被看作在给定(可能是X)下的y的函数。当我们希望
把它明确地看作成一个的函数,我们而把称它为似然性函数:
L()L(;X,y)p(y|X;)
(i)(i)(i)xy注意到的性的假设(因此给定时也是的),这也可以被写作
L()p(y(i)|x(i);)i1m1(y(i)Tx(i))2().222(i)
(i)现在,给定这个关联x和y的概率模型,选择我们对参数的最好猜测的合理方式
是什么呢?最大似然的原则告诉我们应该选择使得数据y发生的概率尽量高,也就是说,我们应该选择使得L()最大。
代替最大化L(),我们也可以最大化任何一个严格递增的L()的函数。尤其是,如果我们最大化对数似然函数(log likelihood)l(),推导也会简单一些。
(i)l()logL()logi1mm1(y(i)Tx(i))2exp()2221(y(i)Tx(i))2
logexp()222i111m(i)mlog(yTx(i))2222i11m(i)T(i)2因此,最大化l()和最小化(yx)得到同样的答案,而
2i11m(i)(yTx(i))2, 2i1我们认出是我们原始的最小二乘价值函数J()。
总结:在对数据进行之前假设的情况下,最小二乘回归对应着求出的最大似然估计。所以在这组假设下,最小二乘回归作为一种求解最大似然估计的很自然的方法是合理的。(然而,要注意的是,这些概率假设对最小二乘成为一个超好的和合理的程序绝不是必须的,可能有——而且确实有——其他自然的假设能够被用来证明这是正当的。)
也要注意的是,在我们之前的讨论中,我们对最终的选择不依赖于是什么,甚至如果是未知的话我们确实也可以得到相同的结论。当我们之后谈论指数族和广义线性模型时,会用到这个事实。
224 局部加权线性回归
考虑由xR预测y的问题。下面最左边的图形显示了y01x拟合一个数据集的结果。我们可以看到数据不能真正的分布在一条直线上,所以这个拟合不是很好。
相反,如果我们增加一个额外的特征x,用y01x2x拟合,然后我们得到一
22个稍微好一点的对数据的拟合(看中间的图形)。无邪地,似乎是我们添加的特征越多,(拟
jyxj合)越好。然而,添加太多的特征也会有危险:最右边的图形是用一个5次多项式
j0j5拟合的结果。我们看出,即使拟合曲线完美地经过所有数据,我们也不希望这是一个非常好的关于不同居住面积的对房子价格
xy的预测器。我们将会说左边的图形是一个欠拟合的实
例——在这个例子中,数据不能明确地呈现出模型捕捉到结构——右边的图形是一个过拟合的例子,(虽然)没有正式的定义这些项什么意思。(之后在这门课程中,当我们谈论学习理论时,我们将会形式化这些符号中的一些,也会更仔细的定义对于一个假设是好的还是坏的它意味着什么。)
正如前面讨论的,和上面例子中显示的,特征选择对确保学习算法的好的性能是重要的。 (当我们谈论模型选择时,我们将会看到自动选择一组好的特征的算法。)在这一节中,让我们简短地讨论一下局部加权线性回归(LWR)算法,这个算法假定有足够的训练数据,使得特征选择不再那么重要。这个处理将会简洁的,因为你将有机会在你的作业中探索LWR算法的一些特性。
在原始的线性回归算法,为了在查询点x作出一个预测,(也就是说,求h(x)),我们将会:
1. 寻找合适的使2. 输出x。
作为对比,局部加权线性回归算法如下过程: 1. 寻找合适的使2. 输出x。
(i)(i)iww这里,是非负的权重值。直观地,对于一个特值如果较大,我们将会尽力选择使
TT(yi(i)Tx(i))2最小化。
wi(i)(y(i)Tx(i))2最小化。
(y(i)Tx(i))2较小。如果w(i)较小,误差项(y(i)Tx(i))2在寻找合适中几乎被忽略。
一个对权重相当普遍的选择是
(x(i)x)2wexp()
22(i)(i)(i)注意到权重依赖于我们正要评估的特定点x。而且,如果xx值小,w接近于1;如
(i)(i)xxw果值大,值小。因此,被选择使临近查询点x的训练例子(的误差)有较大
的权值(不懂)。(也要注意的是,尽管权重的公式采取了一种外观和高斯分布密度相似的形式,但w和高斯没有任何直接关系,特别地,w不是随机变量,正态分布或者其他)。参数控制着一个训练例子的权重随着x和查询点x的距离减少的多快。被称作带宽参数,也是你在作业中将会做实验的东西。
我们正在看的局部权值线性回归是第一个非参数算法的第一个例子。我们更早些看到的(非权值)线性回归算法叫做参数学习算法,因为它有一些固定的、有限的用来拟合数据的参数(i)。一旦我们得到了合适的i,并存储起来,我们不再需要留有训练数据来做对以后的预测。相反,使用局部权值线性回归来预测,我们需要留有整个训练集。术语“非参数”(大致上)是指这样一个事实,为了表示假设h而保留的资料的数量随着训练集的大小而线性增长。
(i)(i)(i)第二部分 分类和逻辑回归
现在让我们谈论分类问题。这就像逻辑回归一样,除了我们想预测的y值只能取很少数量的离散值。现在,我们将会聚焦二值分类问题,在这个问题中y只能取两个值,0和1。(大多数我们在这里提到的将可以推广至多类问题。)比如说,如果我们正努力构建一个邮件的垃圾邮件分类器,x可以是一封电子邮件的一些特征,如果它是一封垃圾邮件y是1,否则y是0。0也被称作负类,1被称作正类,有时候他们也由“-”和“+”符号表示。给定x,相对应的y(i)(i)(i)也被称作训练样例的标签。
5 逻辑回归
忽略y是离散值的事实,我们可以走进分类问题,使用我们老的线性回归算法在给定x的情况下来预测y。然而,很简单构造这个方法工作很差的例子。直觉上,当我们知道
y{0,1},h(x)取大于1或者小于0的值,这个方法也没有意义。
为了修正这个,让我们改变假设h(x)的形式。我们将会选择
h(x)g(Tx)11eTx
这里
g(z)1
1ez被称作逻辑函数或者Sigmoid函数。这里有一个g(z)的图像:
注意当z,g(z)趋于1,当z,g(z)趋于0。而且,g(z)总是在0和1中间,因此h(x)也是。就像以前,我们仍旧保持让x01的惯例,以致x0Txjj1nj。
现在,让我们选择g为(上面)给定的。其他的从0到1平湖增长的函数也可以使用,但是由于几个原因,这几个原因我们只会看到(当我们讨论GLMS和当我们讨论生成学习算法时),这个逻辑函数的选择是相当自然的一个。在继续讲之前,这里有一个关于sigmoid函数导数的有用的特征,我们把导数写作g':
g'(z)d1dz1ezez (1ez)211(1)zz1e1eg(z)(1g(z))所以,给定逻辑回归模型,我们如何选择合适的?接下来我们看到最小二乘回归如何在一组假设下作为最大似然估计量可以被推出,让我们赋予我们的分类模型一组概率假设,然后通过最大似然来选择合适的参数。
让我们假设
p(y1|x;)h(x)p(y0|x;)1h(x)注意到,这可以更简洁的被写作
p(y|x;)(h(x))y(1h(x))1y
假设m个训练样例是生成的,我们可以写出参数的似然为
L()p(y|X;)p(y(i)|x(i);)i1mm
(i)1y(i)(h(x)i1(i)y(i)(1h(x))就像以前,最大化log似然更简单一些:
l()logL()y(i)logh(x(i))(1y(i))log(1h(x(i)))
i1m我们如何最大化似然?和在线性回归情况的推导相似,我们可以使用梯度上升。以向量符号写出,因此我们的更新(规则)为:l()。(注意在更新规则中为正号而不是负号,因为我们现在正在最大化一个函数,而不是最小化)。让我们首先从仅仅一个训练样例(x,y)开始,取导数得到随机梯度上升规则:
11l()(y(1y))g(Tx)TTjg(x)1g(x)j(y1g(Tx)(1y)1TTT)g(x)(1g(x))x 1g(Tx)j(y(1g(Tx))(1y)g(Tx))xj(yh(x))xj上面,我们使用了g'(z)g(z)(1g(z))这一事实。因此,我们的梯度上升规则为
j:j(y(i)h(x(i)))x(ji)
如果我们把它和LMS更新规则进行比较,我们可以看出它看起来是相同的;但是这不是相
T(i)h(x)同的算法,因为现在被定义成一个关于x的非线性函数。尽管如此,但对于一个
稍微不同的算法和学习问题,我们最终得到相同的更新规则,还是有一点令人吃惊的。这是
巧合吗或者在这背后有更深层次的原因?当我们讲到GLM模型时将会回答这个问题。
6 离题:感知器学习算法
我们现在离题去简单的讨论一个历史上有趣的算法,我们也会在谈到学习理论的时候回到这个算法。考虑修改逻辑回归方法,“强迫”它精确地输出为0或1。为了实现这个,看起来改变g的定义为阈值函数是自然的:
1 if z0g(z)
0 if z0然后如果我们像以前令h(x)g(x)但使用这个修正的g,而且使用更新规则
Tj:j(y(i)h(x(i)))x(ji)
然后我们得到感知器学习算法。
在20世纪60年代,这个“感知器”被认为是一个关于单个神经元如何在大脑工作 的粗糙模型。鉴于这个算法是多么简单,之后在这门课当我们谈论学习理论时,它也会我们分析提供一个开端。然而要注意的是,尽管感知器算法外观上和我们之前讨论过的算法相似,实际上它是一个和逻辑回归和最小二乘线性回归类型非常不同的算法;尤其是,赋予感知器的预测有意义的概率解释或作为一个最大似然估计估计算法得到感知器是困难的。
7 最大化l()的另外一个算法
回到逻辑回归,g(z)是sigmoid函数,让我们现在讨论一种最大化l()不同的算法。 我们开始,让我们首先考虑牛顿法求得一个函数的零解。特有地,假定我们有某个函数
f:RR,我们希望寻找一个使得f()0的值。这里,R是一个实数。牛顿法
执行如下的更新:
:f(). f'()这个方法有一个自然的解释,在解释中我们把它看作通过一个线性函数来近似函数f,而这个线性函数是f在当前猜测值的切线,解决这个线性函数在哪里等于0,让下一个的猜测值为这个线性函数等于0的点。
这里有一幅运行牛顿法的图片:
在最左边的图形,我们看到画出了函数f和直线y0。我们正尽力寻找使得f()0的。满足这要求的值大约是1.3。假定我们以4.5初始化这个算法。牛顿法然后在
4.5处拟合一条为f切线的直线,解决那条直线在哪里为0(中间图形)。这给出了下
一个关于的猜测值,大约为2.8。最右边的图形显示了再执行一次迭代的结果,更新成了1.8。再经过几次迭代,我们迅速接近1.3。
牛顿法给出了一种求解f()0的方法。要是我们想用它来最大化某个函数l又怎么样呢?l的极值点对应着一阶导数等于l'()等于0的点。所以,通过使f()l'(),我们可以使用相同的算法来最大化l,我们得到更新规则:
:l'()。 l''()(一些需要思考的地方:如果我们想牛顿法最小化而不是最大化一个函数,这个如何改变?)
最后,在我们的逻辑回归环境下,是向量值,所以我们需要推广牛顿法到这个环境。牛顿法推广至这个环境(也称作Newton-Raphson方法)由
:H1l()
给出。这里,l()是,像往常一样,l()关于i的偏导数向量;H是一个n x n(实际上,n+1 x n+1,假定我们包括截距项)的被称作Hessian的矩阵,其元素为
2l()Hij。
ij牛顿法通常比(批)梯度下降收敛的更快,需要少很多次的迭代来接近最小值。不过,牛顿法的一次迭代比梯度下降的一次迭代代价更高,因为它需要求出一个n x n的Hessian阵和它的逆;但是只要n不是太大,牛顿法通常在整体上快很多。当牛顿法被用来最大化逻
辑回归log似然函数l(),得到结果的方法也被称作Fisher scoring。
第三部分 广义线性模型
到目前为止,我们已经见到了一个回归的例子和一个分类的例子。在回归的例子里,我
2(),和是某些合适们有y|x;~N(,),在分类问题中我们有y|x;~Bernoulli定义的x和的函数。在这节中,我们将会展示这两个方法都是一个更广泛模型族的特殊情况,(这个模型)被称作广义线性模型(GLMs)。我们也会展示GLM族的其他模型如何推导得出,如何被应用到其他分类和回归问题。
8 指数族
为了走进GLMs,我们将会以定义指数族分布作为开始。我们说一类分布在指数族如果它能被写成
p(y;)b(y)exp(TT(y)a())
被称作分布的自然参数(natural parameter)这样的形式。这里,(也称作典范参数(canonical
parameter));T(y)被称作充分统计量(sufficient statistic)(对于我们考虑的分布,情况经常是T(y)y);a()是log 配分函数(log partition function)。e化常数发挥了作用,确保了p(y;)分布关于y的和或积分是1。
一个固定的T,a和b定义了一个以作为参数的分布族(集合)。当我们改变,我们然后得到这个族中不同的分布。
我们现在证明伯努利和高斯分布式指数族分布的例子。均值为的伯努利分布,写作Bernoulli(),指定了一个y{0,1}的分布,使得p(y1;);p(y0;)1。当我们改变,我们得到不同均值的伯努利分布。我们现在证明这类通过改变得到的伯努利分布在指数族中;也就是,存在关于T,a和b的选择使得
a()本质上在归一
p(y;)b(y)exp(TT(y)a())
完全变成这类伯努利分布。
我们把伯努利分布写作:
p(y;)y(1)1yexp(ylog(1y)log(1)) exp((log())ylog(1)).1因此,自然参数log(1)。有趣地是,如果我们根据解得来求的反函数,我们得
1(1e)。这是类sigmoid函数。为了完成伯努利分布作为一个指数族分布的公式到
化表述,我们也有
T(y)ya()log(1)log(1e)b(y)1
这证明了伯努利分布通过选择合适的T,a和b可以写成
p(y;)b(y)exp(TT(y)a())
的形式。
的值对我们最后对现在让我们继续考虑高斯分布。回想一下,当推导线性回归时,
值和h(x)的选择无关。因此,我们可以选择一个随意的值,而不会改变任何事情。为了简化下面的推导,让我们令1。我们然后有:
22211exp((y)2)22111exp(y2)exp(y2)
222p(y;)因此,我们可以看到高斯分布属于指数族,并且
T(y)ya()2222b(y)(12)exp(y22)
还有很多其他的属于指数族的分布:多项式分布(我们稍后会看到),泊松分布(用于计数建模;也看下习题集);伽马分布和指数分布(用来建模连续的,非负的随机变量,比
如时间间隔);贝塔分布和狄利克雷分布(概率分布),还有更多的;在下节中,我们将会描述一个构建模型的一般“配方”,在模型中,y(给定x和)源自这些分布中的任何一个。
9 构造GMLs
假定你想基于某些特征x,比如商店的推广、过去的广告、天气、一周的哪一天等,来构建一个模型来估计在任何给定时间内到你商店客人的数量y(或你网站的浏览量y)。我们知道泊松分布通常是一个好的构建参观者数量的模型。知道了这些,我们如何为我们的问题提出一个模型?幸运的是,泊松分布是一个指数族分布,所以我们可以应用一个广义线性模型(GLM)。在这节中,我们将会描述一个构造用来解决诸如此类问题的GLM模型的方法。
一般地说,考虑一个分类或者回归问题,在这些问题中,我们想预测一些作为x的函数的随机变量y的值。为了得到这个问题的一个GLM,我们将会做出以下三个假设,这些假设是关于给定x下的y的条件分布和我们的模型:
1. y|x;~指数族()。也就是,给定x和,y的分布服从某个参数为的指数族分布。
2. 给定x,我们的目标是预测给定x时的T(y)的期望值。在我们大多数例子中,我们有T(y)y,所以这意味着我们通过学习好的满足h(x)E[y|x]的假设h来得到预测值
h(x)的输出值。(注意这个假设在逻辑回归和线性回归中选择h(x)时都是满足的,比如,
在逻辑回归中,我们有
h(x)p(y1|x;)0p(y0|x;)1p(y1|x;)E[y|x;].)
3. 自然参数和输入值x是线性关系:x。(或者,如果值是一个向量,然后
TiiTx)
这些假设中的第三个可能看起来是上面三个里最不合乎情理的,把它看作我们设计GLMs配方中的一个“设计选择”更好一些,而不是一个假设本身。这三个假设/设计选择将会是我们得到一类非常优雅的学习算法,也就是GLMs,它有很多令人满意的特性,比如易于学习。而且,(得到的)结果模型对不同形式的y的分布建模是经常非常有效的;比如,我们马上证明一下逻辑回归和普通最小二乘都可以由GMLs推导得到。
9.1 普通最小二乘
为了证明普通最小二乘是GML族的一个特殊情况,考虑这样的环境,目标变量y(在GML术语里也被称作反映变量(response variable))是连续的,我们为给定x下的y的条件分布建模为高斯分布N(,)。(这里,可能依赖x)。所以,我们让上面以为参数的指数族表示成一个高斯分布。像我们之前看到的,在高斯分布作为一个指数族分布的公式化里,我们有。所以,我们有
2h(x)E[y|x;]Tx.第一个等式由假设2给出;第二个等式由y|x;~N(,)得出,所以它的期望值为。 第三个等式由假设1(我们之前的推导证明了在高斯分布作为一个指数族分布的公式化表示时有)得出。最后一个等式由假设3得到。
2
9.2 逻辑回归
我们现在考虑逻辑回归。这里我们对二值分类有兴趣,所以y{0,1}。假定y是二值的,因此选择伯努利分布族来建模给定x下的y的条件分布看起来是自然的。在我们伯努利分布表述为指数族分布的公式化中,我们有1(1e)。而且,注意到如果y|x;服从以为参数的伯努利分布。所以,按照类似普通最小二乘的推导,我们得到:
h(x)E[y|x;]1(1e)1(1ex)x)的假设函数。如果你之前想知道我们如何想出所以,这给出了形式为h(x)1(1eTT
(1e)逻辑函数1这样的形式,这给出了一个答案:一旦我们假定以x为条件的y是伯努
利,它作为GMLs定义和指数族分布的结果出现。
多介绍一点术语,给出分布的均值是作为自然参数的函数的函数g(g()E[T(y);])被称作典型的反应函数(canoical response function)。它的逆,g1z,
被称作典型的连接函数(canonical link funtion)。因此,高斯分布族的典型的反应函数恰恰是恒等函数;伯努利的典型反应函数是逻辑函数。
9.3 Softmax回归
让我们再看一个GLM的例子。考虑一个分类问题,在这个分类问题中,反应变量y可以取k个值里的任何一个,所以y{1,2,...,k}。比如说,我们想把邮件分成3类,诸如垃圾邮件,个人邮件和工作相关邮件,而不是把它分成垃圾邮件和非垃圾邮件两类——这是二值分类问题。回应变量仍旧是离散的,但是可以取超过两个值。因此我们将根据多项式分布来建模。
让我们堆到一个为这种多项式数据建模的GLM。为了做这个,我们将先从把多项式分布表示成指数族分布开始。
k指为了参数化一个有k个可能输出结果的多项式分布,我们可以使用k个参数1,2,...定每个输出结果的概率。然而,这些参数是冗余的,或更正式地说,它们不是的(因为知道了任何k-1个参数i唯一的决定了最后一个参数,因为它们必须满足i1i1)。所以,我们转而只使用k-1个参数
k1k1,..k.1来参数化多项式分布,在这里
k1ip(yi;),p(yk;)1i1i。为了符号上的方便,我们也令k1i1i,
k1来指定。 但我们应该记住这不是一个参数,它完全由1,...为了吧这个多项式分布表示一个指数族分布,我们将定义T(y)Rk1如下:
10000100....T(1),T(2),...,T(k1),T(k).
........00k10不像我们以前的例子,这里我们不再有T(y)y;并且,T(y)是一个k-1维的向量,而不是一个实数。我们将用(T(y))i来表示向量T(y)的第i个元素。
我们再介绍一个非常有用的符号。知识函数1{·}值为1如果它的参数是真的,否则是0(1{True}=1,1{False}=0)。比如,1{2=3}=0,1{3=5-2}=1。所以,我们也可以把T(y)和y的
{yi}。(在你继续往下读之前,确保你理解了为什么这是正确的!)关系写作(T(y))i1而且,我们有E[(T(y))i]P(yi)i。
我们现在准备证明多项式分布是一个指数族分布。我们有:
1{y2}1{y3}P(y;)11{y1}23...k1{yk}1{y1}1{y2}1{y3}1231{yi}...ki11(T(y))i...ki11k1k1(T(y))1(T(y))2(T(y))3123exp((T(y))1log(1)(T(y))2log(2)...(1(T(y))i)log(k))exp((T(y))1log(1k)(T(y))2log(2k)...(T(y))i1log(k1k)log(k))b(y)exp(TT(y)a())这里
k1i1
log(1k)log()2k.................,..................log()k1ka()log(k) b(y)1.这完成了我们的多项式分布作为指数族分布的公式化表示。
连接函数由
ilogi,i1,2,...,k k给出。为了方便,我们也定义了klog(k我们因此有
k)0。为了反解连接函数,推导出反应函数,
eiiik
ki1keikei1ii1kk这表明k1ie,并带回到上式,得到反应函数 i1ieij1ekj.
这个从's映射到's的函数被称作softmax函数。
为了完成我们的模型,我们使用之前给出的假设3,i's和x's是线性关系。所以,有
iiTx,i1,2,...,k1,这里1,...,k1Rn1是我们模型的参数。为了符号上的方便,
我们也可以定义k0,以致kkx0,正如之前给出的一样。因此,我们的模型假定给定x下的y的条件分布由
TP(yi|x;)ieikej1Tj给出。
eixkj1eTjx. (*)
这个(应用到y{1,...,k}分类问题的)模型被称作softmax回归。它是逻辑回归的一个推广。
我们的假设将输出
换句话说,我们的假设将会输出i=1,2,...,k中的每一个i值的估计概率p(yi|x;)。(尽
管上面的h(x)只是k-1维的,但是很显然p(yk|x;)可以通过1-i1i得到)。
最后,让我们讨论参数拟合。类似于我们原来普通最小二乘和逻辑回归的推导,如果我们有一个m个样例的训练集{(x,y);i1,2,...,m},并想学习这个模型的参数i,我们首先写下log似然性
(i)(i)k1l()logp(y(i)|x(i);)i1mlog(i1l1mkelxT(i)kj1e(i)Tjx)1{y(i)1}.
为了得到上式中的第二行,我们使用了等式(*)中的p(y|x;)的定义。通过使用一个诸如梯度上升或者牛顿法的方法就来最大化l(),我们现在可以得到参数的最大似然估计。
想写一写机器学习的翻译来巩固一下自己的知识,同时给需要的朋友们提供参考,鉴于作者水平有限,翻译不对或不恰当的地方,欢迎指正和建议。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务