习题6.1

首先解释什么是指数分布族。组数分布族,也称指数族分布(后面用这个名词替代),指数族分布为满足 (f(x|theta) = h(x) *exp(eta(theta)*T(x) - A(eta))) 形式的概率分布 ((f(x|theta)) 可为概率分布的概率密度函数)。

考虑逻辑斯谛分布,并且不考虑偏置的问题(或者将 (x) 增加一个维度为常数1)。 (P(Y=1|x) = frac{exp(w*x)}{1 + exp(w*x)})(P(Y=0|x) = frac{1}{1 + exp(w*x)})

所以,逻辑斯谛分布可以写为

(P(Y|x) = (frac{exp(w*x)}{1 + exp(w*x)})^y*(frac{1}{1 + exp(w*x)})^{(1-y)} \ =exp(y*log(frac{exp(w*x)}{1 + exp(w*x)}) + (1-y)*log(frac{1}{1 + exp(w*x)})) \ = exp(y*w*x - log(1 + exp(w*x))))

可以发现 (h(y)=1)(T(y) = y)(eta(x) = w*x)(A(eta) = log(1 + exp(eta)))

因此,逻辑斯谛分布属于指数族分布。

习题6.2

假设要估计的逻辑斯谛回归模型为 (h_{theta}(x) = P(Y=1|x) = frac{1}{1 + e^{(-theta*x)}})

损失函数为 (L(theta) = sum limits_i -y^{(i)}*log(h_{theta}(x^{(i)})) - (1-y^{(i)})*log(1 - h_{theta}(x^{(i)})) = sum limits_i -y^{(i)}*log(frac{e^{x^{(i)}theta}}{1 + e^{x^{(i)}theta}}) + y^{(i)}*log(frac{1}{1 + e^{x^{(i)}theta}}) -log(frac{1}{1 + e^{x^{(i)}theta}}) = sum limits_i -y^{(i)}*x^{(i)}*theta +log(1+e^{x^{(i)}theta}))

所以, (frac{partial}{partial theta} L(theta) = sum limits_i -y^{(i)}*x^{(i)} + frac{e^{x^{(i)}theta}}{1 + e^{x^{(i)}theta}}x^{(i)} = sum limits_i x^{(i)}*(h_{theta}(x^{(i)} - y^{(i)})))

假设 (f(theta) = L(theta))(g(theta) = frac{partial}{partial theta} L(theta)= nabla f(theta))

逻辑斯谛回归模型学习的梯度下降算法

输入:目标函数(f(theta)) ,梯度函数(g(theta)) ,学习率 (eta) ,计算精度(epsilon)

输出:(f(theta)) 的极小值 (theta^*)

(1)选取初值 (theta^{(0)}) ,并令 (k=0)

(2)计算 (f(theta^{(k)}))

(3)计算梯度 (g(theta^{(k)})) ,当 (left| g(theta^{(k)}) right| < epsilon) 时,停止迭代,令 (theta^* = theta^{(k)}) ;否则,令 (theta^{(k+1)} = theta^{(k)} -eta*g(theta^{(k)}))

(4)计算 (f(theta^{(k+1)})) 。当 (left| f(theta^{(k+1)} - f(theta^{(k)} right| < epsilon)(left| theta^{(k+1)} - theta^{(k)}right| < epsilon) 时,停止迭代,令 (theta^* = theta^{(k)})

(5)否则,令 (k = k+1) ,转(3)

习题6.3

勘误:《统计学习方法》附录B 5.Broyden类算法 从DFP算法 (G_k) 的迭代公式应该是(B.24)

最大熵模型为 (P_w(y|x) = frac{1}{Z_w(x)} exp(sum limits_{i=1}^n w_if_i(x,y))) ,其中 (Z_w(x) = sum limits_y exp(sum limits_{i=1}^nw_if_i(x,y)))

即 最大熵模型为 (P_w(y|x) = frac{exp(sum limits_{i=1}^n w_if_i(x,y))}{sum limits_y exp(sum limits_{i=1}^nw_if_i(x,y))})

最大熵模型的目标函数为 (mathop{min} limits_w f(w) = sum limits_x widetilde P(x) log sum limits_yexp(sum limits_{i=1}^n w_if_i(x,y)) - sum limits_{x,y} widetilde P(x,y) sum limits_{i=1}^nw_if_i(x,y))

梯度为 (g(w) = (frac{partial f(w)}{partial w_1}, frac{partial f(w)}{partial w_2},..., frac{partial f(w)}{partial w_n})^T) ,其中 (frac{partial f(w)}{partial w_i} = sum limits_{x,y} widetilde P(x)P_w(y|w)f_i(x,y) - E_{widetilde P}(f_i))

DFP算法是拟牛顿法的一种,主要是通过用 (G_k) 作为 (H_k^-) 的近似。DFP算法首先需要满足每次迭代 (G_k) 是正定的,其次需要满足 (G_{k+1}y_k = delta_k) 这一拟牛顿条件。

其中 (y_k = g_{k+1} - g_k)(delta_k = x^{(k+1)} -x^k)

假设每次迭代按照 (G_{k+1} = G_k + Delta G_k) 去更新矩阵。

DFP算法做了如下假设,假设 (G_{k+1} = G_k +P_k + Q_k) ,其中 (P_k)(Q_k) 待定, 所以 (G_{k+1} y_k = G_ky_k +P_ky_k + Q_ky_k)

为使条件满足,可令 (P_ky_k = delta_k)(Q_ky_k = -G_ky_k) 。由此,可取 (P_k = frac{delta_k delta_k^T}{delta_k^T y_k})(Q_k = - frac{G_ky_ky_k^TG_k}{y_k^TG_ky_k})

所以 (G_{k+1} = G_k + frac{delta_k delta_k^T}{delta_k^T y_k} - frac{G_ky_ky_k^TG_k}{y_k^TG_ky_k})

最大熵模型学习的DFP算法

输入:特征函数 (f_1,f_2,...,f_n) ;经验分布 (widetilde P(x,y)) ,目标函数 (f(w)), 梯度 (g(w) = nabla f(w)) ,学习率 (eta) ,计算精度 (epsilon)

输出:最优参数 (w^*) ;最优模型 (P_{w^*}(y|x))

(1)选择初值 (w^{(0)}) ,同时取 (G_0) 为正定对称矩阵,令 (k=0)

(2)计算 (g_k = g(w^{(0)})) ,当 (left| g(w^{(k)}) right| < epsilon) 时,停止迭代,令 (w^* = w^{(k)}) ;否则转(3)

(3)令 (w^{(k+1)} = w^{(k)} - eta * G_kg_k)

(4)计算 (g_{k+1} = g(w^{(k+1)})) ,若 (left| g(w^{(k+1)}) right| < epsilon) ,停止迭代,令 (w^* = w^{(k)}) ;否则,计算 (G_{k+1} = G_k + frac{delta_k delta_k^T}{delta_k^T y_k} - frac{G_ky_ky_k^TG_k}{y_k^TG_ky_k}) ,其中 (y_k = g_{k+1} - g_k)(delta_k = x^{(k+1)} -x^k)

(5)令 (k = k+1) ,转(3)

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/cc-1029/p/14984619.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!