CS229 机器学习 Notes 1

it2023-02-10  62

Part 1.线性回归

为了让我们的房屋示例更有趣,让我们考虑一个稍微丰富的数据集,其中我们还知道每个房子的卧室数量:

这里, x x x R 2 \mathbb{R}^2 R2中的二维向量。 例如, x 1 ( i ) x_1^{(i)} x1(i)是训练集中第 i i i个房屋的生活区域, x 2 ( i ) x_2^{(i)} x2(i)是其卧室数。 作为初始选择,假设我们决定将 y y y近似为 x x x的线性函数: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 (1) h_{\theta}(x)=\theta_0 +\theta_1 x_1+\theta_2x_2 \tag{1} hθ(x)=θ0+θ1x1+θ2x2(1) 这里, θ i \theta_i θi是参数(也称为权重),它们参数化从 X \mathcal{X} X Y \mathcal{Y} Y 的线性映射的空间。当没有混淆的风险时,我们不写 h θ ( x ) h_{\theta}(x) hθ(x)的下标,并将其简写为 h ( x ) h(x) h(x)。 为了简化我们的符号,我们还引入了让 x 0 = 1 x_0=1 x0=1(这是截距项)的约定,所以: h ( x ) = ∑ i = 0 n θ i x i = θ T x (2) h(x)=\sum_{i=0}^n \theta_i x_i=\theta^T x \tag{2} h(x)=i=0nθixi=θTx(2) 定义价值函数为: J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 (3) J(\theta) =\frac 1 2 \sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^2 \tag{3} J(θ)=21i=1m(hθ(x(i))y(i))2(3)

1. LMS 算法 least mean square

对于价值函数 J ( θ ) J(\theta) J(θ),梯度下降法更新规则为

θ j : = θ j − α ∂ ∂ θ j J ( θ ) (4) \theta_j := \theta_j -\alpha \frac{\partial}{\partial \theta_j} J(\theta) \tag{4} θj:=θjαθjJ(θ)(4)

J ( θ ) J(\theta) J(θ)关于 θ \theta θ偏导为: ∂ ∂ θ j J ( θ ) = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2 = 2 ⋅ 1 2 ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( h θ ( x ) − y ) = ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( ∑ i = 0 n θ i x i − y ) = ( h θ ( x ) − y ) x j (5) \begin{aligned} \frac \partial {\partial\theta_j}J(\theta) & = \frac \partial {\partial\theta_j} \frac 12(h_\theta(x)-y)^2\\ & = 2 \cdot\frac 12(h_\theta(x)-y)\cdot \frac \partial {\partial\theta_j} (h_\theta(x)-y) \\ & = (h_\theta(x)-y)\cdot \frac \partial {\partial\theta_j}(\sum^n_{i=0} \theta_ix_i-y) \\ & = (h_\theta(x)-y) x_j \end{aligned} \tag{5} θjJ(θ)=θj21(hθ(x)y)2=221(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(i=0nθixiy)=(hθ(x)y)xj(5) 对于单一训练样本,其更新规则为: θ j : = θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j := \theta_j + \alpha (y^{(i)}-h_\theta (x^{(i)}))x_j^{(i)} θj:=θj+α(y(i)hθ(x(i)))xj(i) 当只有一个训练样本的时候,我们推导出了 LMS 规则。当一个训练集有超过一个训练样本的时候,有两种对这个规则的修改方法。第一种就是下面这个算法: 重 复 至 收 敛 θ j : = θ j + α ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) . x j ( i ) ( 对 每 一 个 j ) (6) 重复至收敛 \quad {\theta_j := \theta_j +\alpha \sum_{i=1}^m\big(y^{(i)}-h_{\theta}(x^{(i)})\big). x_j^{(i)}\quad(对每一个j)}\tag{6} θj:=θj+αi=1m(y(i)hθ(x(i))).xj(i)(j)(6)

2. 正规方程

1. 矩阵求导

假如有一个函数 f : R m × n → R f:\mathbb{R}^{m\times n} → \mathbb{R} f:Rm×nR m × n m\times n m×n 大小的矩阵映射到实数域,我们定义对于矩阵为 A A A f f f 的导数是: ∇ A f ( A ) = [ ∂ f ∂ A 11 … ∂ f ∂ A 1 n ⋮ ⋱ ⋮ ∂ f ∂ A m 1 … ∂ f ∂ A m n ] (7) \nabla_A f(A)=\begin{bmatrix} \frac {\partial f}{\partial A_{11}} & \dots & \frac {\partial f}{\partial A_{1n}} \\ \vdots & \ddots & \vdots \\ \frac {\partial f}{\partial A_{m1}} & \dots & \frac {\partial f}{\partial A_{mn}} \\ \end{bmatrix}\tag{7} Af(A)=A11fAm1fA1nfAmnf(7) 因此,这个梯度 ∇ A f ( A ) \nabla_A f(A) Af(A)本身也是一个 m × n m\times n m×n 的矩阵,其中的第 ( i , j ) (i,j) (i,j) 个元素是 ∂ f ∂ A i j \frac {\partial f}{\partial A_{ij}} Aijf

例如 A = [ A 11 A 12 A 21 A 22 ] A =\begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \\ \end{bmatrix} A=[A11A21A12A22] 是一个 2 × 2 2\times 2 2×2 矩阵,然后给定的函数 f : R 2 × 2 → R f:R^{2\times 2} → R f:R2×2R 为:

f ( A ) = 3 2 A 11 + 5 A 12 2 + A 21 A 22 f(A) = \frac 32A_{11}+5A^2_{12}+A_{21}A_{22} f(A)=23A11+5A122+A21A22

这里面的 A i j A_{ij} Aij 表示的意思是矩阵 A A A 的第 ( i , j ) (i,j) (i,j) 个元素。然后就有了梯度:

∇ A f ( A ) = [ 3 2 10 A 12 A 22 A 21 ] \nabla _A f(A) =\begin{bmatrix} \frac 32 & 10A_{12} \\ A_{22} & A_{21} \\ \end{bmatrix} Af(A)=[23A2210A12A21]

然后咱们还要引入 trace迹运算,简写为 " t r . " "tr." "tr."。对于一个给定的 n × n n\times n n×n 方形矩阵 A A A,它的迹定义为对角元素之和:

t r A = ∑ i = 1 n A i i (8) trA = \sum^n_{i=1} A_{ii}\tag{8} trA=i=1nAii(8)

假如 a a a 是一个实数,实际上 a a a 就可以看做是一个 1 × 1 1\times 1 1×1 的矩阵,那么就有 a a a 的迹 t r a = a tr a = a tra=a

如果有两个矩阵 A A A B B B,能够满足 A B AB AB 为方阵, t r a c e trace trace 求迹运算就有一个特殊的性质: t r A B = t r B A trAB = trBA trAB=trBA 对 于 A , B , A B 为 方 阵 ; 不 妨 设 : A ∈ R m × n , B ∈ R n × m , 那 么 : tr ⁡ ( A B ) = ∑ i = 1 m ( A B ) i i = ∑ i = 1 m ∑ j = 1 n a i j b j i = ∑ i = 1 m ∑ j = 1 n b j i a i j = ∑ i = 1 n ( B A ) i i = tr ⁡ ( B A ) (9) \begin{aligned} &对于A, B, AB为方阵;不妨设: A \in \mathbb{R}^{m \times n},B \in \mathbb{R}^{n \times m}, 那么: \\ & \operatorname{tr}(A B)=\sum_{i=1}^{m}(A B)_{i i}=\sum_{i=1}^{m} \sum_{j=1}^{n} a_{i j} b_{j i}=\sum_{i=1}^{m} \sum_{j=1}^{n} b_{j i} a_{i j}=\sum_{i=1}^{n}(B A)_{i i}=\operatorname{tr}(B A) \end{aligned}\tag{9} A,BABARm×n,BRn×m,:tr(AB)=i=1m(AB)ii=i=1mj=1naijbji=i=1mj=1nbjiaij=i=1n(BA)ii=tr(BA)(9) 在此基础上进行推论,就能得到类似下面这样的等式关系: t r A B C = t r C A B = t r B C A t r A B C D = t r D A B C = t r C D A B = t r B C D A trABC=trCAB=trBCA \\ trABCD=trDABC=trCDAB=trBCDA trABC=trCAB=trBCAtrABCD=trDABC=trCDAB=trBCDA

下面这些和求迹运算相关的等量关系也很容易证明。其中 A A A B B B 都是方形矩阵, a a a 是一个实数:

t r A = t r A T t r ( A + B ) = t r A + t r B t r a A = a t r A (10) trA=trA^T \\ tr(A+B)=trA+trB \\ tr a A=a trA \tag{10} trA=trATtr(A+B)=trA+trBtraA=atrA(10)

接下来咱们就来在不进行证明的情况下提出一些矩阵导数(其中的一些直到本节末尾才用得上)。另外要注意等式 ( 4 ) (4) (4)中的 A A A 必须是非奇异方阵(non-singular square matrices),而 ∣ A ∣ |A| A 表示的是矩阵 A A A 的行列式。那么我们就有下面这些等量关系:

∇ A t r A B = B T (1) ∇ A T f ( A ) = ( ∇ A f ( A ) ) T (2) ∇ A t r A B A T C = C A B + C T A B T (3) ∇ A ∣ A ∣ = ∣ A ∣ ( A − 1 ) T (4) (11) \begin{aligned} \nabla_A tr AB & = B^T & \text{(1)}\\ \nabla_{A^T} f(A) & = (\nabla_{A} f(A))^T &\text{(2)}\\ \nabla_A tr ABA^TC& = CAB+C^TAB^T &\text{(3)}\\ \nabla_A|A| & = |A|(A^{-1})^T &\text{(4)}\\ \end{aligned} \tag{11} AtrABATf(A)AtrABATCAA=BT=(Af(A))T=CAB+CTABT=A(A1)T(1)(2)(3)(4)(11) 为了让矩阵运算记号更加具体,我们就详细解释一下这些等式中的第一个。假如我们有一个确定的矩阵 B ∈ R n × m B \in R^{n\times m} BRn×m(注意顺序,是 n × m n\times m n×m,这里的意思也就是 B B B 的元素都是实数, B B B 的形状是 n × m n\times m n×m 的一个矩阵),那么接下来就可以定义一个函数 f : R m × n → R f: R^{m\times n} → R f:Rm×nR ,对应这里的就是 f ( A ) = t r A B f(A) = trAB f(A)=trAB。这里要注意,这个矩阵是有意义的,因为如果 A ∈ R m × n A \in R^{m\times n} ARm×n,那么 A B AB AB 就是一个方阵,是方阵就可以应用 t r a c e trace trace 求迹运算;因此,实际上 f f f 映射的是从 R m × n R^{m\times n} Rm×n 到实数域 R R R。这样接下来就可以使用矩阵导数来找到 ∇ A f ( A ) \nabla_Af(A) Af(A) ,这个导函数本身也是一个 m × n m \times n m×n的矩阵。上面的等式 ( 1 ) (1) (1) 表明了这个导数矩阵的第 ( i , j ) (i,j) (i,j)个元素等同于 B T B^T BT B B B的转置)的第 ( i , j ) (i,j) (i,j) 个元素,或者更直接表示成 B j i B_{ji} Bji

上面等式 ( 1 − 3 ) (1-3) (13) 都很简单,证明就都留给读者做练习了。等式 ( 4 ) (4) (4)需要用逆矩阵的伴随矩阵来推导出。 3 ^3 3

3 假如咱们定义一个矩阵 A ′ A' A,它的第 ( i , j ) (i,j) (i,j) 个元素是$ (−1)^{i+j}$ 与矩阵 $A $移除 第 i i i 行 和 第 j j j 列 之后的行列式的乘积,则可以证明有 A − 1 = ( A ′ ) T / ∣ A ∣ A^{−1} = (A')^T /|A| A1=(A)T/A。(你可以检查一下,比如在 A A A 是一个 2 × 2 2\times 2 2×2 矩阵的情况下看看 A − 1 A^{-1} A1 是什么样的,然后以此类推。如果你想看看对于这一类结果的证明,可以参考一本中级或者高级的线性代数教材,比如Charles Curtis, 1991, Linear Algebra, Springer。)这也就意味着 A ′ = ∣ A ∣ ( A − 1 ) T A' = |A|(A^{−1})^T A=A(A1)T。此外,一个矩阵 A A A 的行列式也可以写成 ∣ A ∣ = ∑ j A i j A i j ′ |A| = \sum_j A_{ij}A'_{ij} A=jAijAij 。因为 ( A ′ ) i j (A')_{ij} (A)ij 不依赖 A i j A_{ij} Aij (通过定义也能看出来),这也就意味着 ( ∂ ∂ A i j ) ∣ A ∣ = A i j ′ (\frac \partial {\partial A_{ij}})|A| = A'_{ij} (Aij)A=Aij,综合起来也就得到上面的这个结果了。

矩阵求导

机器学习和深度学习矩阵求导总结

2. 正规方程求解

公式总结: t r A = t r A T (1) t r ( A + B ) = t r A + t r B (2) t r   a A = a t r   A (3) ∇ A t r A B = B T (4) ∇ A T f ( A ) = ( ∇ A f ( A ) ) T (5) ∇ A t r A B A T C = C A B + C T A B T (6) ∇ A ∣ A ∣ = ∣ A ∣ ( A − 1 ) T (7) (12) \begin{aligned} trA&=trA^T &\text{(1)}\\ tr(A+B)&=trA+trB &\text{(2)} \\ tr\ a A&=a tr \ A &\text{(3)} \\ \nabla_A tr AB & = B^T & \text{(4)}\\ \nabla_{A^T} f(A) & = (\nabla_{A} f(A))^T &\text{(5)}\\ \nabla_A tr ABA^TC& = CAB+C^TAB^T &\text{(6)}\\ \nabla_A|A| & = |A|(A^{-1})^T &\text{(7)}\\ \end{aligned} \tag{12} trAtr(A+B)tr aAAtrABATf(A)AtrABATCAA=trAT=trA+trB=atr A=BT=(Af(A))T=CAB+CTABT=A(A1)T(1)(2)(3)(4)(5)(6)(7)(12) 矩阵 X X X m × n m \times n m×n 实 际 上 为 m × ( n + 1 ) 包 含 了 截 距 项 实际上为m \times (n + 1)包含了截距项 m×(n+1): X = [ — ( x ( 1 ) ) T — — ( x ( 2 ) ) T — ⋮ — ( x ( m ) ) T — ] (13) X = \left[ \begin{matrix} — (x^{(1)})^T— \\ — (x^{(2)})^T— \\ \vdots\\ — (x^{(m)})^T— \end{matrix} \right] \tag{13} X=(x(1))T(x(2))T(x(m))T(13) 然后,咱们设 y ⃗ \vec{y} y 是一个 m m m 维向量(m-dimensional vector),其中包含了训练集中的所有目标值: y ⃗ = [ y ( 1 ) y ( 2 ) ⋮ y ( m ) ] (14) \vec y = \left[ \begin{matrix} y^{(1)} \\ y^{(2)} \\ \vdots\\ y^{(m)} \end{matrix} \right] \tag{14} y =y(1)y(2)y(m)(14) 那么, X θ − y ⃗ = [ ( x ( 1 ) ) T θ ⋮ ( x ( m ) ) T θ ] − [ y ( 1 ) ⋮ y ( m ) ] = [ ( x ( 1 ) ) T θ − y ( 1 ) ⋮ ( x ( m ) ) T θ − y ( m ) ] (15) \begin{aligned} X \theta -\vec y &= \left[ \begin{matrix} (x^{(1)})^T\theta \\ \vdots\\ (x^{(m)})^T\theta \end{matrix} \right] -\left[ \begin{matrix} y^{(1)} \\ \vdots\\ y^{(m)} \end{matrix} \right] \\ \\ &= \left[ \begin{matrix} (x^{(1)})^T\theta-y^{(1)} \\ \vdots\\ (x^{(m)})^T\theta -y^{(m)} \end{matrix} \right] \end{aligned}\tag{15} Xθy =(x(1))Tθ(x(m))Tθy(1)y(m)=(x(1))Tθy(1)(x(m))Tθy(m)(15) 因为 h ( x ) = θ T x h(x)=\theta^Tx h(x)=θTx,定义损失函数为: 1 2 ( X θ − y ⃗ ) T ( X θ − y ⃗ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = J ( θ ) (16) \begin{aligned} \frac 1 2(X \theta -\vec y )^T(X \theta -\vec y ) &= \frac 1 2 \sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^2\\ &= J(\theta) \end{aligned} \tag{16} 21(Xθy )T(Xθy )=21i=1m(hθ(x(i))y(i))2=J(θ)(16) 其对 θ \theta θ梯度为: ∇ θ J ( θ ) = ∇ θ 1 2 ( X θ − y ⃗ ) T ( X θ − y ⃗ ) = 1 2 ∇ θ ( θ T X T X θ − θ T X T y ⃗ − y ⃗ T X θ + y ⃗ T y ⃗ ) = 1 2 ∇ θ ( θ T X T X θ − 2 θ T X T y ⃗ ) = 1 2 ( 2 X T X θ − 2 X T y ⃗ ) = X T X θ − X T y ⃗ (17) \begin{aligned} \nabla_{\theta}J(\theta) &=\nabla_{\theta}\frac 1 2(X \theta -\vec y )^T(X \theta -\vec y )\\ &=\frac 1 2\nabla_{\theta} \big( \theta^T X^T X\theta - \theta^T X^T \vec y -\vec y^TX \theta + \vec y ^T\vec y \big)\\ &=\frac 1 2 \nabla_{\theta} \big(\theta^T X^T X\theta - 2\theta^T X^T \vec y)\\ &= \frac 1 2 \big( 2X^T X\theta - 2X^T \vec y \big) \\ &= X^T X\theta -X^T \vec y \end{aligned}\tag{17} θJ(θ)=θ21(Xθy )T(Xθy )=21θ(θTXTXθθTXTy y TXθ+y Ty )=21θ(θTXTXθ2θTXTy )=21(2XTXθ2XTy )=XTXθXTy (17) 式17第3行是因为,$\theta^T X^T \vec y \ , \ \vec y^TX \theta $都是标量那么 ( θ T X T y ⃗ ) T = y ⃗ T θ X (18) (\theta^T X^T \vec y)^T = \vec y^T \theta X\tag{18} (θTXTy )T=y TθX(18) 第4行因为 ∇ θ ( θ T A θ ) = ( A + A T ) θ ∇ θ ( θ T x ) = x (19) \begin{aligned} \nabla_{\theta} (\theta^T A \theta) &= (A+A^T)\theta \\ \nabla_{\theta}(\theta^T x) &= x \end{aligned}\tag{19} θ(θTAθ)θ(θTx)=(A+AT)θ=x(19) 令式17,为0.得到正规方程为: X T X θ = X T y ⃗ (20) X^T X\theta =X^T \vec y\tag{20} XTXθ=XTy (20) 如果 X T X X^TX XTX可逆,那么: θ = ( X T X ) − 1 X T y ⃗ (21) \theta =(X^T X)^{-1}X^T \vec y \tag{21} θ=(XTX)1XTy (21)

3. 概率解释

假设目标变量和输入间存在如下等式: y ( i ) = θ T x ( i ) + ϵ ( i ) (1) y^{(i)}=\theta^T x^{(i)}+ \epsilon ^{(i)} \tag{1} y(i)=θTx(i)+ϵ(i)(1)

其中 ϵ ( i ) \epsilon^{(i)} ϵ(i) 是误差项,进一步假设其i.i.d,且服从均值为0,方差为 σ 2 \sigma^{2} σ2高斯分布。 将其写作 ϵ ( i ) ∼ N ( 0 , σ 2 ) \epsilon ^{(i)} ∼ N (0, \sigma ^2) ϵ(i)N(0,σ2) ,其概率密度函数为: p ( ϵ ( i ) ) = 1 2 π σ e x p ( − ( ϵ ( i ) ) 2 2 σ 2 ) (2) p(\epsilon ^{(i)} )= \frac 1{\sqrt{2\pi}\sigma} exp (- \frac {(\epsilon ^{(i)} )^2}{2\sigma^2}) \tag{2} p(ϵ(i))=2π σ1exp(2σ2(ϵ(i))2)(2) 由式1,式2可以推出: p ( y ( i ) ∣ x ( i ) ; θ ) = 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) (3) p(y ^{(i)} |x^{(i)}; \theta)= \frac 1{\sqrt{2\pi}\sigma} exp (- \frac {(y^{(i)} -\theta^T x ^{(i)} )^2}{2\sigma^2}) \tag{3} p(y(i)x(i);θ)=2π σ1exp(2σ2(y(i)θTx(i))2)(3) 其中 “ p ( y ( i ) ∣ x ( i ) ; θ ) ” “p(y ^{(i)} |x^{(i)}; \theta)” p(y(i)x(i);θ)表示给定 x ( i ) x ^{(i)} x(i) y ( i ) y ^{(i)} y(i)的分布由参数 θ \theta θ控制。(给定输入值,参数 θ \theta θ控制着目标值的分布)。 注意 θ \theta θ不是随机变量,而是一个要求的值。 如果把式3看做 θ \theta θ的函数时,就得到其似然函数: L ( θ ) = L ( θ ; X , y ⃗ ) = p ( y ⃗ ∣ X ; θ ) (4) L(\theta) =L(\theta;X,\vec{y})=p(\vec{y}|X;\theta) \tag{4} L(θ)=L(θ;X,y )=p(y X;θ)(4) 继续假设 x ( i ) x ^{(i)} x(i) y ( i ) y ^{(i)} y(i) i.i.d,那么有: L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) (5) \begin{aligned} L(\theta) &=\prod ^m _{i=1}p(y^{(i)}|x^{(i)};\theta)\\ &=\prod ^m _{i=1} \frac 1{\sqrt{2\pi}\sigma} exp(- \frac {(y^{(i)}-\theta^T x^{(i)})^2}{2\sigma^2})\\ \end{aligned} \tag{5} L(θ)=i=1mp(y(i)x(i);θ)=i=1m2π σ1exp(2σ2(y(i)θTx(i))2)(5) 最大似然估计就是说应该选择 θ \theta θ来使得数据集的可能性最大(给定数据集,如何估计 θ \theta θ来使其可能性最大)。 即最大化式5,取对数将求积变求和,简化计算就得到了对数似然 l ( θ ) l(\theta) l(θ) l ( θ ) = log ⁡ L ( θ ) = log ⁡ ∏ i = 1 m 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) = ∑ i = 1 m l o g 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) = m log ⁡ 1 2 π σ − ∑ i = 1 m log ⁡ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) = m log ⁡ 1 2 π σ − 1 σ 2 ⋅ 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 (6) \begin{aligned} l(\theta) &=\log L(\theta)\\ &=\log \prod ^m _{i=1} \frac 1{\sqrt{2\pi}\sigma} exp(- \frac {(y^{(i)}-\theta^T x^{(i)})^2}{2\sigma^2})\\ &= \sum ^m _{i=1}log \frac 1{\sqrt{2\pi}\sigma} exp(- \frac {(y^{(i)}-\theta^T x^{(i)})^2}{2\sigma^2})\\ &= m \log \frac 1{\sqrt{2\pi}\sigma} - \sum^m_{i=1} \log exp(- \frac {(y^{(i)}-\theta^T x^{(i)})^2}{2\sigma^2})\\ &= m \log \frac 1{\sqrt{2\pi}\sigma}- \frac 1{\sigma^2}\cdot \frac 12 \sum^m_{i=1} (y^{(i)}-\theta^Tx^{(i)})^2\\ \end{aligned} \tag{6} l(θ)=logL(θ)=logi=1m2π σ1exp(2σ2(y(i)θTx(i))2)=i=1mlog2π σ1exp(2σ2(y(i)θTx(i))2)=mlog2π σ1i=1mlogexp(2σ2(y(i)θTx(i))2)=mlog2π σ1σ2121i=1m(y(i)θTx(i))2(6) 最大化式6就是最小化下式: 1 2 ∑ i = 1 m ( y ( i ) − θ T x ( i ) ) 2 (7) \frac 12 \sum^m _{i=1} (y^{(i)}-\theta^Tx^{(i)})^2 \tag{7} 21i=1m(y(i)θTx(i))2(7) 式7就是最原始的最小二乘代价函数original least-squares cost function。

总结:在对数据集进行概率假设的前提下,最小二乘回归就是找到 θ \theta θ的最大似然估计。 前提是最小二乘回归正好做最大似然估计。 另外, θ \theta θ的选择不依赖 σ 2 \sigma^2 σ2, 上述过程中不知道 σ 2 \sigma^2 σ2就得到了 θ \theta θ

4. 局部加权线性回归 Locally weighted linear regression

图1

如果拿一条直线 y = θ 0 + θ 1 x y = \theta_0 + \theta_1x y=θ0+θ1x来拟合图中的点,发现点的趋势不是一条直线,而像一条曲线。那么我们增加一个二次项,变成了 y = θ 0 + θ 1 x + θ 2 x 2 y = \theta_0 + \theta_1x +\theta_2x^2 y=θ0+θ1x+θ2x2

拟合现象就变成如下图2

图2

从图2我们看出越多特征加入,拟合现象似乎越好。当添加5次项时,我们似乎完美拟合了数据,如图3。

图3

实际上,

图1是underfitting。

图3是overfitting。

本节简要地讲一下局部加权线性回归(locally weighted linear regression ,缩写为LWR),这个方法是假设有足够多的训练数据,对不太重要的特征进行一些筛选。 局部加权线性回归算法流程如下:

对参数 θ \theta θ 进行拟合,让 ∑ i w ( i ) ( y ( i ) − θ T x ( i ) ) 2 \sum_i w^{(i)}(y^{(i)} − \theta^T x^{(i)} )^2 iw(i)(y(i)θTx(i))2 最小;输出 θ T x \theta^T x θTx

式子中的 w ( i ) w^{(i)} w(i) 是非负的权值。

比较标准的 w ( i ) w^{(i)} w(i)用下式来选择: w ( i ) = e x p ( − ( x ( i ) − x ) 2 2 τ 2 ) (8) w^{(i)} = exp(- \frac {(x^{(i)}-x)^2}{2\tau^2}) \tag{8} w(i)=exp(2τ2(x(i)x)2)(8)

如果 w ( i ) w^{(i)} w(i)是向量,式8可以推广为 w ( i ) = e x p ( − ( x ( i ) − x ) T ( x ( i ) − x ) 2 τ 2 ) w^{(i)} = exp(− \frac {(x^{(i)}-x)^T(x^{(i)}-x)}{2\tau^2})\\ w(i)=exp(2τ2(x(i)x)T(x(i)x)) w ( i ) = e x p ( − ( x ( i ) − x ) T Σ − 1 ( x ( i ) − x ) 2 ) w^{(i)} = exp(− \frac {(x^{(i)}-x)^T\Sigma ^{-1}(x^{(i)}-x)}{2}) w(i)=exp(2(x(i)x)TΣ1(x(i)x)) 理解为标量 X X X推广到向量相乘就写成 X T X X^TX XTX

参数 τ \tau τ 控制了这个降低的速度, τ \tau τ也叫做带宽参数

Part 2 Classification and logistic regression

分类问题可以看作 y ( i ) y ^{(i)} y(i)为几个离散值的回归问题。Binary classification problem 二分类 y ( i ) y ^{(i)} y(i) ( 0 , 1 ) (0, 1) (01)。其中 0 0 0也被称作negative class, 1 1 1称作positive class。给定 x ( i ) x^{(i)} x(i)其对应 y ( i ) y ^{(i)} y(i)也称作训练样本的标签label。

5. Logistic regression

忽略掉 y ( i ) y ^{(i)} y(i)是离散值,使用上面提到的就得线性回个算法来实现分类问题,即给定 x x x预测 y y y

为了让 y ∈ 0 , 1 y \in {0, 1} y0,1;我们引入logistic函数或者sigmoid函数(图4为其函数图像): g ( z ) = 1 1 + e − z (9) g(z)= \frac 1 {1+e^{-z}} \tag{9} g(z)=1+ez1(9)

图4

那么假设 h θ ( x ) h_{\theta(x)} hθ(x)变成: h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x (10) h_\theta(x) = g(\theta^T x) = \frac 1{1+e^{-\theta^Tx}} \tag{10} hθ(x)=g(θTx)=1+eθTx1(10) sigmoid 函数的导数为: g ′ ( z ) = d d z 1 1 + e − z = 1 ( 1 + e − z ) 2 ( e − z ) = 1 ( 1 + e − z ) ⋅ ( 1 − 1 ( 1 + e − z ) ) = g ( z ) ( 1 − g ( z ) ) (11) \begin{aligned} g'(z) & = \frac d{dz}\frac 1{1+e^{-z}}\\ & = \frac 1{(1+e^{-z})^2}(e^{-z})\\ & = \frac 1{(1+e^{-z})} \cdot (1- \frac 1{(1+e^{-z})})\\ & = g(z)(1-g(z))\\ \end{aligned} \tag{11} g(z)=dzd1+ez1=(1+ez)21(ez)=(1+ez)1(1(1+ez)1)=g(z)(1g(z))(11) 有了假设 h θ ( x ) h_{\theta(x)} hθ(x)式子10之后,可以用极大似然估计来确定参数。首先,我们可以得到如下表达: P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) (12) \begin{aligned} P(y=1|x;\theta)&=h_{\theta}(x)\\ P(y=0|x;\theta)&=1- h_{\theta}(x)\\ \end{aligned}\tag{12} P(y=1x;θ)P(y=0x;θ)=hθ(x)=1hθ(x)(12) 简化式12有: p ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y (13) p(y|x;\theta)=(h_\theta (x))^y(1- h_\theta (x))^{1-y}\tag{13} p(yx;θ)=(hθ(x))y(1hθ(x))1y(13) 假设 m m m 个训练样本都是各自独立生成的,那么就可以按如下的方式来写参数的似然函数: L ( θ ) = p ( y ⃗ ∣ X ; θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) (14) \begin{aligned} L(\theta) &= p(\vec{y}| X; \theta)\\ &= \prod^m_{i=1} p(y^{(i)}| x^{(i)}; \theta)\\ &= \prod^m_{i=1} (h_\theta (x^{(i)}))^{y^{(i)}}(1-h_\theta (x^{(i)}))^{1-y^{(i)}} \\ \end{aligned} \tag{14} L(θ)=p(y X;θ)=i=1mp(y(i)x(i);θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)(14) 对数似然为: l ( θ ) = log ⁡ L ( θ ) = ∑ i = 1 m y ( i ) log ⁡ h ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h ( x ( i ) ) ) 4 (15) \begin{aligned}l(\theta) &=\log L(\theta) \\&= \sum^m_{i=1} y^{(i)} \log h(x^{(i)})+(1-y^{(i)})\log (1-h(x^{(i)}))4\end{aligned} \tag{15} l(θ)=logL(θ)=i=1my(i)logh(x(i))+(1y(i))log(1h(x(i)))4(15) 由梯度上升法 θ : = θ + α ∇ θ l ( θ ) \theta := \theta +\alpha \nabla _\theta l(\theta) θ:=θ+αθl(θ)

注意:这里是 + + +而不是 − - 是因为要求最大值 (是ascent 不是descent)。

对于一组样本 ( x , y ) (x, y) (x,y)来说,式15就没有了 ∑ i = 1 m \sum^m_{i=1} i=1m和样本编号 i i i,式15结合式10前半部分可以写作: l ( θ ) = log ⁡ L ( θ ) = y log ⁡ h ( x ) + ( 1 − y ) log ⁡ ( 1 − h ( x ) ) = y log ⁡ ( g ( θ T x ) ) + ( 1 − y ) l o g ( 1 − g ( θ T x ) ) (16) \begin{aligned}l(\theta) &=\log L(\theta) \\&= y \log h(x)+(1-y)\log (1-h(x))\\ &= y \log(g(\theta^T x)) + (1-y)log(1-g(\theta^T x) )\end{aligned} \tag{16} l(θ)=logL(θ)=ylogh(x)+(1y)log(1h(x))=ylog(g(θTx))+(1y)log(1g(θTx))(16) 对式16求导结合式11有: ∂ ∂ θ j l ( θ ) = ( y 1 g ( θ T x ) − ( 1 − y ) 1 1 − g ( θ T x ) ) ∂ ∂ θ j g ( θ T x ) = ( y 1 g ( θ T x ) − ( 1 − y ) 1 1 − g ( θ T x ) ) g ( θ T x ) ( 1 − g ( θ T x ) ) ∂ ∂ θ j θ T x = ( y ( 1 − g ( θ T x ) ) − ( 1 − y ) g ( θ T x ) ) x j = ( y − h θ ( x ) ) x j (17) \begin{aligned} \frac {\partial}{\partial \theta_j} l(\theta) &=(y\frac 1 {g(\theta ^T x)} - (1-y)\frac 1 {1- g(\theta ^T x)} )\frac {\partial}{\partial \theta_j}g(\theta ^Tx) \\ &= (y\frac 1 {g(\theta ^T x)} - (1-y)\frac 1 {1- g(\theta ^T x)} ) g(\theta^Tx)(1-g(\theta^Tx)) \frac {\partial}{\partial \theta_j}\theta ^Tx \\ &= (y(1-g(\theta^Tx) ) -(1-y) g(\theta^Tx)) x_j\\ &= (y-h_\theta(x))x_j \end{aligned} \tag{17} θjl(θ)=(yg(θTx)1(1y)1g(θTx)1)θjg(θTx)=(yg(θTx)1(1y)1g(θTx)1)g(θTx)(1g(θTx))θjθTx=(y(1g(θTx))(1y)g(θTx))xj=(yhθ(x))xj(17) 因此,随机梯度上升规则为: θ j : = θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) (18) \theta_j := \theta_j + \alpha (y^{(i)}-h_\theta (x^{(i)}))x_j^{(i)} \tag{18} θj:=θj+α(y(i)hθ(x(i)))xj(i)(18)

6. 感知机

如果式9 g ( z ) g(z) g(z)改为下式: g ( z ) = { 1 i f z ≥ 0 0 i f z < 0 (19) g(z)= \begin{cases} 1 & if\quad z \geq 0 \\ 0 & if\quad z < 0 \end{cases} \tag{19} g(z)={10ifz0ifz<0(19) h θ ( x ) = g ( θ T x ) h_\theta(x) = g(\theta^T x) hθ(x)=g(θTx),那么更新规则为: θ j : = θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) (20) \theta_j := \theta_j +\alpha(y^{(i)}-h_\theta (x^{(i)}))x_j^{(i)}\tag{20} θj:=θj+α(y(i)hθ(x(i)))xj(i)(20) 这就是感知机算法。

7 .最大化 l ( θ ) l(\theta) l(θ) 的另一个算法

牛顿法求函数零点。

从实数到实数的函数 f : R → R f:R \to R f:RR,然后要找到一个 θ \theta θ ,来满足 f ( θ ) = 0 f(\theta)=0 f(θ)=0,其中 θ ∈ R \theta\in R θR 是一个实数。牛顿法就是对 θ \theta θ 进行如下的更新: θ : = θ − f ( θ ) f ′ ( θ ) (21) \theta := \theta - \frac {f(\theta)}{f'(\theta)} \tag{21} θ:=θf(θ)f(θ)(21) 理解:用一条直线逼近函数 f f f 进行逼近,这条直线是 f f f 的切线,而猜测值是 θ \theta θ,解就是直线方程等于零的点,把这一个零点作为 θ \theta θ 设置给下一次猜测,然后以此类推。

图4

直线 f f f 就是沿着 y = 0 y=0 y=0 的一条直线。这时候是想要找一个 θ \theta θ 来让 f ( θ ) = 0 f(\theta)=0 f(θ)=0。这时候发现这个 θ \theta θ 值大概在 1.3 1.3 1.3 左右。加入咱们猜测的初始值设定为 θ = 4.5 \theta=4.5 θ=4.5。牛顿法就是在 θ = 4.5 \theta=4.5 θ=4.5 这个位置画一条切线(中间的图)。这样就给出了下一个 θ \theta θ 猜测值的位置,也就是这个切线的零点,大概是 2.8 2.8 2.8。最右面的图中的是再运行一次这个迭代产生的结果,这时候 θ \theta θ 大概是 1.8 1.8 1.8。就这样几次迭代之后,很快就能接近 θ = 1.3 \theta=1.3 θ=1.3

初始值为 θ = 4.5 \theta=4.5 θ=4.5,其在曲线上对应点做切线,如中间图,与 y = 0 y=0 y=0交点大概在2.8。曲线对应2.8处再做切线得到下一个 θ 大 概 为 1.8 \theta大概为1.8 θ1.8.反复迭代可求得曲线的0点。其实,上图中 tan α = f ′ ( θ ) = m n (22) \text{tan}\alpha = f'(\theta) = \frac{m}{n} \tag{22} tanα=f(θ)=nm(22) 而不严谨地有 f ( θ ) = m f(\theta)=m f(θ)=m,那么 n n n左边一段就是 θ ′ \theta' θ且等于 θ − n = θ − f ( θ ) f ′ ( θ ) \theta-n=\theta- \frac {f(\theta)}{f'(\theta)} θn=θf(θ)f(θ)易得式21

牛顿法是求零点的方法,那么求$l(\theta) $最大值怎么用呢?

$l(\theta) 最 大 值 在 其 导 数 为 0 处 取 得 ( 不 严 谨 地 ) , 若 让 最大值在其导数为0处取得(不严谨地),若让 0()f(\theta) = l’(\theta)$,我们有如下更新规则: θ : = θ − l ′ ( θ ) l ′ ′ ( θ ) (23) \theta := \theta - \frac {l'(\theta)}{l''(\theta)} \tag{23} θ:=θl(θ)l(θ)(23) 牛顿法拓展到多维情况就是Newton-Raphson method: θ : = θ − H − 1 ∇ θ l ( θ ) (24) \theta := \theta - H^{-1}\nabla_\theta l(\theta)\tag{24} θ:=θH1θl(θ)(24) 其中 H H H是Hessian矩阵。

用牛顿法来最大化logistic 回归的似然函数 l ( θ ) l(\theta) l(θ),这个结果方法也叫Fisher scoring 。

Part3. 广义线性模型 GLMs

8. 指数簇 The exponential family

指数簇分布就是能写成如下形式: p ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) ) (25) p(y;\eta) =b(y)exp(\eta^TT(y)-a(\eta))\tag{25} p(y;η)=b(y)exp(ηTT(y)a(η))(25) 其中:

η \eta η : 自然参数(natural parameter,也叫正则参数 canonical parameter)

T ( y ) T(y) T(y) : 充分统计量(sufficient statistic),经常使用 T ( y ) = y T (y) = y T(y)=y

a ( η ) a(\eta) a(η) 是一个对数配分函数(log partition function)。

e − a ( η ) e^{−a(\eta)} ea(η) 本质上扮演了归一化常数(normalization constant)的角色,也就是确保 p ( y ; η ) p(y; \eta) p(y;η) 的和或者积分等于 1 1 1

如果给定 T ( y ) , a , b T(y),a, b T(y)a,b那么就定义了被参数 η \eta η控制的一个分布簇(或者集)。改变 η \eta η,我们能得到这簇中的不同分布。

伯努利分布按照式25可以写成: p ( y ; ϕ ) = ϕ y ( 1 − ϕ ) 1 − y = e x p ( y log ⁡ ϕ + ( 1 − y ) log ⁡ ( 1 − ϕ ) ) = e x p ( ( l o g ( ϕ 1 − ϕ ) ) y + log ⁡ ( 1 − ϕ ) ) (26) \begin{aligned} p(y;\phi) & = \phi ^y(1-\phi)^{1-y}\\ & = exp(y \log \phi + (1-y)\log(1-\phi))\\ & = exp( (log (\frac {\phi}{1-\phi}))y+\log (1-\phi) )\\ \end{aligned} \tag{26} p(y;ϕ)=ϕy(1ϕ)1y=exp(ylogϕ+(1y)log(1ϕ))=exp((log(1ϕϕ))y+log(1ϕ))(26)

其中: η = l o g ( ϕ 1 − ϕ ) (27) \eta = log (\frac \phi {1 − \phi})\tag{27} η=log(1ϕϕ)(27) η \eta η看作已知数可以解得:(这就是sigmoid函数) ϕ = 1 / ( 1 + e − η ) (28) \phi = 1/ (1 + e^{−\eta} )\tag{28} ϕ=1/(1+eη)(28) 跟式25对比得到:

b ( η ) = 1 b(\eta) = 1 b(η)=1 T ( y ) = y T(y)=y T(y)=y a ( η ) = − log ⁡ ( 1 − ϕ ) = log ⁡ ( 1 + e η ) a( \eta) = - \log (1- \phi) = \log {(1+ e^ \eta)} a(η)=log(1ϕ)=log(1+eη)

高斯分布簇

在推导线性回归的时候, σ 2 \sigma^2 σ2 的值对我们最终选择的 θ \theta θ h θ ( x ) h_\theta(x) hθ(x) 都没有影响。所以我们可以给 σ 2 \sigma^2 σ2 取一个任意值。为了简化推导过程,就令 σ 2 = 1 \sigma^2 = 1 σ2=1 6 ^6 6然后就有了下面的等式: p ( y ; μ ) = 1 2 π e x p ( − 1 2 ( y − μ ) 2 ) = 1 2 π e x p ( − 1 2 y 2 ) ⋅ e x p ( μ y − 1 2 μ 2 ) (29) \begin{aligned} p(y;\mu) &= \frac 1{\sqrt{2\pi}} exp (- \frac 12 (y-\mu)^2) \\ & = \frac 1{\sqrt{2\pi}} exp (- \frac 12 y^2) \cdot exp (\mu y -\frac 12 \mu^2) \\ \end{aligned} \tag{29} p(y;μ)=2π 1exp(21(yμ)2)=2π 1exp(21y2)exp(μy21μ2)(29) 如果要写成式25形式那么 η = μ T ( y ) = y a ( η ) = μ 2 / 2 = η 2 / 2 b ( y ) = ( 1 / 2 π ) e x p ( − y 2 / 2 ) (30) \begin{aligned} \eta & = \mu \\ T(y) & = y \\ a(\eta) & = \mu ^2 /2\\ & = \eta ^2 /2\\ b(y) & = (1/ \sqrt {2\pi })exp(-y^2/2) \end{aligned} \tag{30} ηT(y)a(η)b(y)=μ=y=μ2/2=η2/2=(1/2π )exp(y2/2)(30) 如果 σ 2 \sigma^2 σ2是一个变量,高斯分布也是指数分布簇。一维高斯分布证明如下, p ( x ∣ θ ) = 1 2 π σ exp ⁡ ( − ( x − μ ) 2 2 σ 2 ) = 1 2 π σ 2 exp ⁡ ( − 1 2 σ 2 ( x 2 − 2 μ x + μ 2 ) ) = exp ⁡ ( log ⁡ ( 2 π σ 2 ) − 1 / 2 ) exp ⁡ ( − 1 2 σ 2 ( − 2 μ 1 ) ( x x 2 ) − μ 2 2 σ 2 ) = exp ⁡ ( ( μ σ 2 μ 2 2 σ 2 ) ( x x 2 ) − ( μ 2 2 σ 2 + 1 2 l o g 2 π σ 2 ) ) (31) \begin{aligned} p(x \mid \theta)&=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right)\\ &=\frac{1}{\sqrt{2 \pi \sigma^{2}}} \exp \left(-\frac{1}{2 \sigma^{2}}\left(x^{2}-2 \mu x+\mu^{2}\right)\right) \\ &=\exp \left(\log \left(2 \pi \sigma^{2}\right)^{-1 / 2}\right) \exp \left(-\frac{1}{2 \sigma^{2}}(-2 \mu \quad 1)\left(\begin{array}{c} x \\ x^{2} \end{array}\right)-\frac{\mu^{2}}{2 \sigma^{2}}\right)\\ &=\exp \left(\left(\begin{array}{ll} \frac{\mu}{\sigma^2} & \frac{\mu^{2}}{2 \sigma^{2}} \end{array}\right) \left(\begin{array}{l} x \\ x^{2} \end{array}\right)-(\frac{\mu^2}{2\sigma^2} + \frac{1}{2}log2\pi\sigma^2)\right) \end{aligned} \tag{31} p(xθ)=2π σ1exp(2σ2(xμ)2)=2πσ2 1exp(2σ21(x22μx+μ2))=exp(log(2πσ2)1/2)exp(2σ21(2μ1)(xx2)2σ2μ2)=exp((σ2μ2σ2μ2)(xx2)(2σ2μ2+21log2πσ2))(31) 其中, ( − 2 μ 1 ) ( x x 2 ) (32) \left(\begin{array}{ll} -2 \mu & 1 \end{array}\right)\left(\begin{array}{l} x \\ x^{2} \end{array}\right) \tag{32} (2μ1)(xx2)(32) 为点乘形式。式31跟式25比较得到 η T = ( μ σ 2 μ 2 2 σ 2 ) T ( x ) = ( x x 2 ) a ( η ) = ( μ 2 2 σ 2 + 1 2 l o g 2 π σ 2 ) ) \begin{aligned} \eta^T &= \left(\begin{array}{ll} \frac{\mu}{\sigma^2} & \frac{\mu^{2}}{2 \sigma^{2}} \end{array}\right)\\ T(x) &= \left(\begin{array}{l} x \\ x^{2} \end{array}\right)\\ a(\eta) &= \left(\frac{\mu^2}{2\sigma^2} + \frac{1}{2}log2\pi\sigma^2)\right) \end{aligned} ηTT(x)a(η)=(σ2μ2σ2μ2)=(xx2)=(2σ2μ2+21log2πσ2)) 即: η = ( μ σ 2 − 1 2 σ 2 ) = ( η 1 η 2 ) (33) \eta=\left(\begin{array}{c} \frac{\mu}{\sigma^{2}} \\ -\frac{1}{2 \sigma^{2}} \end{array}\right)=\left(\begin{array}{l} \eta_{1} \\ \eta_{2} \end{array}\right)\tag{33} η=(σ2μ2σ21)=(η1η2)(33) 由式33得: σ 2 = − 1 2 η 2 μ = η 1 σ 2 = η 1 − 2 η 2 \begin{aligned} \sigma^2 &= -\frac{1}{2\eta_{2}}\\ \\ \mu &= \eta_{1}\sigma^2=\frac{\eta_1}{-2\eta_2} \\ \end{aligned} σ2μ=2η21=η1σ2=2η2η1 还有 μ 2 2 σ 2 + 1 2 l o g 2 π σ 2 = − η 1 2 4 η 2 + 1 2 l o g ( − π η 2 ) (34) \frac{\mu^2}{2\sigma^2} + \frac{1}{2}log2\pi\sigma^2 = -\frac{\eta_1^2}{4\eta_2}+\frac{1}{2}log(-\frac{\pi}{\eta_2})\tag{34} 2σ2μ2+21log2πσ2=4η2η12+21log(η2π)(34) 所以式31可以写作: p ( x ∣ θ ) = exp ⁡ ( ( η 1 η 2 ) ( x x 2 ) − ( − η 1 2 4 η 2 + 1 2 l o g ( − π η 2 ) ) ) = exp ⁡ ( η T T ( x ) − a ( η ) ) (34) \begin{aligned} p(x \mid \theta)&=\exp \left(\left(\begin{array}{ll} \eta_1 & \eta_2 \end{array}\right) \left(\begin{array}{l} x \\ x^{2} \end{array}\right)-(-\frac{\eta_1^2}{4\eta_2}+\frac{1}{2}log(-\frac{\pi}{\eta_2}))\right)\\ &=\exp\left(\eta^TT(x) -a(\eta) \right) \end{aligned}\tag{34} p(xθ)=exp((η1η2)(xx2)(4η2η12+21log(η2π)))=exp(ηTT(x)a(η))(34)

9.构建广义线性模型GLMs

一个分类或者回归问题,要预测作为 x x x 的一个函数的随机变量 y y y 的值。要推导适用于这个问题的广义线性模型,我们将作出给定 x x x y y y 的条件分布三个假设:

y ∣ x ; θ ∼ E x p o n e n t i a l F a m i l y ( η ) y | x; \theta ∼ Exponential Family(\eta) yx;θExponentialFamily(η),即给定 x x x θ , y \theta, y θ,y 的分布服从关于参数 η \eta η的指数簇。——假设1给定 x x x,对于给定的x,我们的目标是求出对于条件 x x x T ( y ) T(y) T(y) 的的期望,即 E [ T ( y ) ∣ x ] E[T(y)|x] E[T(y)x]。我们大部分例子都有 T ( y ) = y T(y) = y T(y)=y,这意味着我们希望通过学到的假设 h h h的预测 h ( x ) h(x) h(x)满足 h ( x ) = E [ y ∣ x ] h(x) = E[y|x] h(x)=E[yx]。(需要注意的是,这个假设不论是在逻辑回归还是线性回归的 h θ ( x ) h_θ(x) hθ(x)的选择中都是成立的。例如,在逻辑回归中,我们有 h θ ( x ) = [ p ( y = 1 ∣ x ; θ ) ] = [ 0 ⋅ p ( y = 0 ∣ x ; θ ) + 1 ⋅ p ( y = 1 ∣ x ; θ ) ] = E [ y ∣ x ; θ ] h_\theta (x) = [p (y = 1|x; \theta)] =[ 0 \cdot p (y = 0|x; \theta)+1\cdot p(y = 1|x;\theta)] = E[y|x;\theta] hθ(x)=[p(y=1x;θ)]=[0p(y=0x;θ)+1p(y=1x;θ)]=E[yx;θ]——假设2自然参数 η \eta η 和输入值 x x x 是线性相关的, η = θ T x \eta = \theta^T x η=θTx,或者如果 η \eta η 是向量,则有 η i = θ i T x \eta_i = \theta_i^T x ηi=θiTx。——假设3

9.构建广义线性模型GLMs

一个分类或者回归问题,要预测作为 x x x 的一个函数的随机变量 y y y 的值。要推导适用于这个问题的广义线性模型,我们将作出给定 x x x y y y 的条件分布三个假设:

y ∣ x ; θ ∼ E x p o n e n t i a l F a m i l y ( η ) y | x; \theta ∼ Exponential Family(\eta) yx;θExponentialFamily(η),即给定 x x x θ , y \theta, y θ,y 的分布服从关于参数 η \eta η的指数簇。——假设1给定 x x x,对于给定的x,我们的目标是求出对于条件 x x x T ( y ) T(y) T(y) 的的期望,即 E [ T ( y ) ∣ x ] E[T(y)|x] E[T(y)x]。我们大部分例子都有 T ( y ) = y T(y) = y T(y)=y,这意味着我们希望通过学到的假设 h h h的预测 h ( x ) h(x) h(x)满足 h ( x ) = E [ y ∣ x ] h(x) = E[y|x] h(x)=E[yx]。(需要注意的是,这个假设不论是在逻辑回归还是线性回归的 h θ ( x ) h_θ(x) hθ(x)的选择中都是成立的。例如,在逻辑回归中,我们有 h θ ( x ) = [ p ( y = 1 ∣ x ; θ ) ] = [ 0 ⋅ p ( y = 0 ∣ x ; θ ) + 1 ⋅ p ( y = 1 ∣ x ; θ ) ] = E [ y ∣ x ; θ ] h_\theta (x) = [p (y = 1|x; \theta)] =[ 0 \cdot p (y = 0|x; \theta)+1\cdot p(y = 1|x;\theta)] = E[y|x;\theta] hθ(x)=[p(y=1x;θ)]=[0p(y=0x;θ)+1p(y=1x;θ)]=E[yx;θ]——假设2自然参数 η \eta η 和输入值 x x x 是线性相关的, η = θ T x \eta = \theta^T x η=θTx,或者如果 η \eta η 是向量,则有 η i = θ i T x \eta_i = \theta_i^T x ηi=θiTx。——假设3

9.1 普通最小二乘

​ 为了证明普通最小二乘是GLM中的特例,把目标变量 y y y(在GLM术语中又叫响应变量response variable)看作是连续的,我们用高斯分布建立定 x x x y y y的条件分布概率模型。( μ \mu μ可能依赖与 x x x)。高斯分布是指数簇,且有 μ = η \mu =\eta μ=η。因此,我们有(第一行是假设2,第三行是假设1,最后一行是假设3): h θ ( x ) = E [ y ∣ x ; θ ] = μ = η = θ T x (36) \begin{aligned} h_\theta(x)& = E[y|x;\theta] \\ & = \mu \\ & = \eta \\ & = \theta^Tx\\ \end{aligned} \tag{36} hθ(x)=E[yx;θ]=μ=η=θTx(36)

9.2 Logistic Regression

我们用伯努利簇分布来对给定 x x x y , y ∈ 0 , 1 y, y\in{0, 1} y,y01的分布进行建模,因为伯努利分布是指数簇分布,那么有式28 ϕ = 1 / ( 1 + e − η ) \phi = 1/ (1 + e^{−\eta} ) ϕ=1/(1+eη),并且如果有 y ∣ x ; θ ∼ B e r n o u l l i ( ϕ ) y|x; \theta ∼ Bernoulli(\phi) yx;θBernoulli(ϕ),那么 E [ y ∣ x ; θ ] = ϕ E [y|x; \theta] = \phi E[yx;θ]=ϕ。跟普通最小二乘一样我们可以得到: h θ ( x ) = E [ y ∣ x ; θ ] = ϕ = 1 / ( 1 + e − η ) = 1 / ( 1 + e − θ T x ) (37) \begin{aligned} h_\theta(x)& = E[y|x;\theta] \\ & = \phi \\ & = 1/(1+ e^{-\eta}) \\ & = 1/(1+ e^{-\theta^Tx})\\ \end{aligned} \tag{37} hθ(x)=E[yx;θ]=ϕ=1/(1+eη)=1/(1+eθTx)(37) 最后一行用假设3.

关于自然参数 η \eta η的函数 g g g给出分布均值 g ( η ) = E [ T ( y ) ; η ] g(\eta) = E[T(y); \eta] g(η)=E[T(y);η],这个函数 g g g称作正则响应函数(canonical response function),其逆称作正则关联函数(canonical link function)。

我们有一个关于自然参数η的函数g给出了分布均值()时,我们可以把这个函数称作正则响应函数(canonical response function),其逆称作正则关联函数(canonical link function)。对于高斯分布,正则响应函数就是identify function;对于伯努利分布就是逻辑函数(很多教材将 g g g作为连接函数link function,而用 g − 1 g^{−1} g1 来表示正则响应函数,但我们在这里的表示法沿用以往的机器学习课程,并将在后面的课程中继续使用这种记法。)

9.3 Softmax Regression

​ 如果在分类问题中,响应变量 y y y可以取 k k k个值, y ∈ 1 , 2 , … , k y \in{1, 2, \ldots, k} y1,2,,k。这时候我们就要使用多项分布multinomial distribution 来建模。

要想建立这类问题的广义线性模型,我们首先需要将多项分布表达成指数分布簇的形式。

为了参数化 k k k可能取值的对象分布,我们使用 k k k参数,用来表示每个可能取值发生的概率。但是这样设置关于造成冗余,其实,这些参数是线性相关的。(对于任意一个 ϕ i \phi_ i ϕi中的值来说,只要知道其中的 k − 1 k-1 k1 ϕ i \phi_i ϕi值,就能知道这最后一个了,因为必须满足 ∑ i = 1 k ϕ i = 1 \sum^k_{i=1} \phi_i = 1 i=1kϕi=1)。所以我们用 k − 1 k-1 k1个参数 ϕ 1 , . . . , ϕ k − 1 \phi_1,...,\phi_ {k-1} ϕ1,...,ϕk1 来参数化多项分布,其中 ϕ i = p ( y = i ; ϕ ) , p ( y = k ; ϕ ) = 1 − ∑ i = 1 k − 1 ϕ i \phi_i = p (y = i; \phi),p (y = k; \phi) = 1 −\sum ^{k−1}_{i=1}\phi_ i ϕi=p(y=i;ϕ)p(y=k;ϕ)=1i=1k1ϕi。为了记号方便,让 ϕ k = 1 − ∑ i = 1 k − 1 ϕ i \phi_k = 1 − \sum_{i=1}^{k−1} \phi_i ϕk=1i=1k1ϕi,但一定要注意,这个并它不是一个参数,而是完全由其他的 k − 1 k-1 k1 个参数来确定的。

要把一个多项式表达成指数簇分布,定义 T ( y ) ∈ R k − 1 T (y) \in R^{k−1} T(y)Rk1:

T ( 1 ) = [ 1 0 0 ⋮ 0 ] , T ( 2 ) = [ 0 1 0 ⋮ 0 ] , T ( 3 ) = [ 0 0 1 ⋮ 0 ] , T ( k − 1 ) = [ 0 0 0 ⋮ 1 ] , T ( k ) = [ 0 0 0 ⋮ 0 ] , (38) T(1)= \begin{bmatrix} 1\\ 0\\ 0\\ \vdots \\ 0\\ \end{bmatrix}, T(2)= \begin{bmatrix} 0\\ 1\\ 0\\ \vdots \\ 0\\ \end{bmatrix}, T(3)= \begin{bmatrix} 0\\ 0\\ 1\\ \vdots \\ 0\\ \end{bmatrix}, T(k-1)= \begin{bmatrix} 0\\ 0\\ 0\\ \vdots \\ 1\\ \end{bmatrix}, T(k)= \begin{bmatrix} 0\\ 0\\ 0\\ \vdots \\ 0\\ \end{bmatrix}, \tag{38} T(1)=1000,T(2)=0100,T(3)=0010,T(k1)=0001,T(k)=0000,(38)

注意:不像之前,不再有 T ( y ) = y T(y) = y T(y)=y,标签 T ( y ) T(y) T(y) k − 1 k-1 k1维向量,不是实数。记 ( T ( y ) ) i (T(y))_i (T(y))i为向量 T ( y ) T(y) T(y) i i i个元素。

接下来,介绍指示函数indicator function。

如果参数值为真就返回1;反之返回0。( 1 { T r u e } = 1 , 1 { F a l s e } = 0 1\{True\} = 1, 1\{False\} = 0 1{True}=1,1{False}=0

例如, 1 { 2 = 3 } = 0 1\{2 = 3\} = 0 1{2=3}=0, 而 1 { 3 = 5 − 2 } = 1 1\{3 = 5 − 2\} = 1 1{3=52}=1

所以,我们可以吧 T ( y ) T(y) T(y) y y y之间关系记为 ( T ( y ) ) i = 1 { y = i } (T(y))_i = 1\{y = i\} (T(y))i=1{y=i}。(理解为 y y y的取值和 i i i相同,取到 T ( y ) T(y) T(y)向量的第 y y y个值时就是参数为真,指示函数才会输出1)。

并且有: E [ ( T ( y ) ) i ] = P ( y = i ) = ϕ i (39) E[(T(y))_i] = P (y = i) = \phi_i\tag{39} E[(T(y))i]=P(y=i)=ϕi(39) 现在,证明多项分布是指数簇一员,有: p ( y ; ϕ ) = ϕ 1 1 { y = 1 } ϕ 2 1 { y = 2 } … ϕ k 1 { y = k } = ϕ 1 1 { y = 1 } ϕ 2 1 { y = 2 } … ϕ k 1 − ∑ i = 1 k − 1 1 { y = i } = ϕ 1 ( T ( y ) ) 1 ϕ 2 ( T ( y ) ) 2 … ϕ k 1 − ∑ i = 1 k − 1 ( T ( y ) ) i = exp ⁡ ( ( T ( y ) ) 1 l o g ( ϕ 1 ) + ( T ( y ) ) 2 l o g ( ϕ 2 ) + ⋯ + ( 1 − ∑ i = 1 k − 1 ( T ( y ) ) i ) l o g ( ϕ k ) ) = exp ⁡ ( ( ( T ( y ) ) 1 l o g ( ϕ 1 ϕ k ) + ( T ( y ) ) 2 l o g ( ϕ 2 ϕ k ) + ⋯ + ( T ( y ) ) k − 1 l o g ( ϕ k − 1 ϕ k ) + l o g ( ϕ k ) ) ) = b ( y ) e x p ( η T T ( y ) − a ( η ) ) (40) \begin{aligned} p(y;\phi) &=\phi_1^{1\{y=1\}}\phi_2^{1\{y=2\}}\dots \phi_k^{1\{y=k\}} \\ &=\phi_1^{1\{y=1\}}\phi_2^{1\{y=2\}}\dots \phi_k^{1-\sum_{i=1}^{k-1}1\{y=i\}} \\ &=\phi_1^{(T(y))_1}\phi_2^{(T(y))_2}\dots \phi_k^{1-\sum_{i=1}^{k-1}(T(y))_i } \\ &=\exp \left((T(y))_1 log(\phi_1)+(T(y))_2 log(\phi_2)+\dots+(1-\sum_{i=1}^{k-1}(T(y))_i)log(\phi_k) \right) \\ &= \exp \left(((T(y))_1 log(\frac{\phi_1}{\phi_k})+(T(y))_2 log(\frac{\phi_2}{\phi_k})+\dots+(T(y))_{k-1}log(\frac{\phi_{k-1}}{\phi_k})+log(\phi_k))\right) \\ &=b(y)exp(\eta^T T(y)-a(\eta)) \end{aligned}\tag{40} p(y;ϕ)=ϕ11{y=1}ϕ21{y=2}ϕk1{y=k}=ϕ11{y=1}ϕ21{y=2}ϕk1i=1k11{y=i}=ϕ1(T(y))1ϕ2(T(y))2ϕk1i=1k1(T(y))i=exp((T(y))1log(ϕ1)+(T(y))2log(ϕ2)++(1i=1k1(T(y))i)log(ϕk))=exp(((T(y))1log(ϕkϕ1)+(T(y))2log(ϕkϕ2)++(T(y))k1log(ϕkϕk1)+log(ϕk)))=b(y)exp(ηTT(y)a(η))(40) 比较有: η = [ log ⁡ ( ϕ 1 / ϕ k ) log ⁡ ( ϕ 2 / ϕ k ) ⋮ log ⁡ ( ϕ k − 1 / ϕ k ) ] , a ( η ) = − log ⁡ ( ϕ k ) b ( y ) = 1 (41) \begin{aligned} &\eta = \begin{bmatrix} \log (\phi _1/\phi _k)\\ \log (\phi _2/\phi _k)\\ \vdots \\ \log (\phi _{k-1}/\phi _k)\\ \end{bmatrix}, \\ \\ &a(\eta) = -\log (\phi _k)\\ &b(y) = 1\\ \end{aligned} \tag{41} η=log(ϕ1/ϕk)log(ϕ2/ϕk)log(ϕk1/ϕk),a(η)=log(ϕk)b(y)=1(41) 这就证明了多项分布是指数簇一员。正则连接函数(参数 η η η关于期望 Φ Φ Φ的函数)给定为: η i = log ⁡ ϕ i ϕ k (42) \eta_i =\log \frac {\phi_i}{\phi_k} \tag{42} ηi=logϕkϕi(42) link function一些说明。

为了方便,我们定义 η k = log ⁡ ( ϕ k / ϕ k ) = 0 \eta_k = \log (\phi_k/\phi_k) = 0 ηk=log(ϕk/ϕk)=0。把link function 转变为响应函数(反函数),可以看作激活函数。我们有 e η i = ϕ i ϕ k ϕ k e η i = ϕ i (**) ϕ k ∑ i = 1 k e η i = ∑ i = 1 k ϕ i = 1 (*) (43) \begin{aligned} e^{\eta_i} &= \frac {\phi_i}{\phi_k}\\ \phi_k e^{\eta_i} &= \phi_i \qquad\text{(**)}\\ \phi_k \sum^k_{i=1} e^{\eta_i}&= \sum^k_{i=1}\phi_i= 1 \qquad\text{(*)}\\ \end{aligned} \tag{43} eηiϕkeηiϕki=1keηi=ϕkϕi=ϕi(**)=i=1kϕi=1(*)(43) 式*可以得到 ϕ k = 1 ∑ i = 1 k e η i \phi_k = \frac 1 {\sum^k_{i=1} e^{\eta_i}} ϕk=i=1keηi1,再回代入式可以得到响应函数: ϕ i = e η i ∑ j = 1 k e η j (44) \phi_i = \frac { e^{\eta_i} }{ \sum^k_{j=1} e^{\eta_j}} \tag{44} ϕi=j=1keηjeηi(44) 这个函数把 η \eta η映射到 ϕ \phi ϕ叫作softmax函数**。

softmax regression model

利用假设3, η i \eta_i ηi x x x线性相关,因此有: η i = θ i T x ( f o r i = 1 , . . . , k − 1 ) \eta_i= \theta_i^Tx (for\quad i = 1, ..., k − 1) ηi=θiTx(fori=1,...,k1),其中的 θ 1 , . . . , θ k − 1 ∈ R n + 1 \theta_1, ..., \theta_{k−1} \in R^{n+1} θ1,...,θk1Rn+1 就是我们模型的参数。还定义 θ k = 0 \theta_k = 0 θk=0,这样就有 η k = θ k T x = 0 \eta_k = \theta_k^T x = 0 ηk=θkTx=0,跟前面原因一样,因此,我们的模型就表示在条件 x x x已知的情况下求 y y y的分布(结合式43): p ( y = i ∣ x ; θ ) = ϕ i = e η i ∑ j = 1 k e η j = e θ i T x ∑ j = 1 k e θ j T x (45) \begin{aligned} p(y=i|x;\theta) &= \phi_i \\ &= \frac {e^{\eta_i}}{\sum^k_{j=1}e^{\eta_j}}\\ &=\frac {e^{\theta_i^Tx}}{\sum^k_{j=1}e^{\theta_j^Tx}}\\ \end{aligned}\tag{45} p(y=ix;θ)=ϕi=j=1keηjeηi=j=1keθjTxeθiTx(45) 这个模型应用到 y ∈ 1 , 2 , … , k y \in {1, 2, \ldots, k} y1,2,,k分类问题时,被称作softmax regression。这就是logistic regression一般形式。

接着,我们的输出为(结合式39): h θ ( x ) = E [ T ( y ) ∣ x ; θ ] = E [ 1 ( y = 1 ) 1 ( y = 2 ) ⋮ 1 ( y = k − 1 ) x ; θ ] = [ ϕ 1 ϕ 2 ⋮ ϕ k − 1 ] = [ e x p ( θ 1 T x ) ∑ j = 1 k e x p ( θ j T x ) e x p ( θ 2 T x ) ∑ j = 1 k e x p ( θ j T x ) ⋮ e x p ( θ k − 1 T x ) ∑ j = 1 k e x p ( θ j T x ) ] (46) \begin{aligned} h_\theta (x) &= E[T(y)|x;\theta]\\ &= E \left[ \begin{array}{cc|c} 1(y=1)\\ 1(y=2)\\ \vdots \\ 1(y=k-1)\\ \end{array}x;\theta \right]\\ \\ &= \left[ \begin{array}{c} \phi_1\\ \phi_2\\ \vdots \\ \phi_{k-1}\\ \end{array} \right]\\ \\ &= \left[ \begin{array}{ccc} \frac {exp(\theta_1^Tx)}{\sum^k_{j=1}exp(\theta_j^Tx)} \\ \frac {exp(\theta_2^Tx)}{\sum^k_{j=1}exp(\theta_j^Tx)} \\ \vdots \\ \frac {exp(\theta_{k-1}^Tx)}{\sum^k_{j=1}exp(\theta_j^Tx)} \\ \end{array} \right]\\ \end{aligned} \tag{46} hθ(x)=E[T(y)x;θ]=E1(y=1)1(y=2)1(y=k1)x;θ=ϕ1ϕ2ϕk1=j=1kexp(θjTx)exp(θ1Tx)j=1kexp(θjTx)exp(θ2Tx)j=1kexp(θjTx)exp(θk1Tx)(46) 换句话说,我们的假设将对每一个 i = 1 , … , k . i = 1, \ldots, k. i=1,,k.值输出概率估计 p ( y = i ∣ x ; θ ) p (y = i|x; \theta) p(y=ix;θ) 。( 尽管 h θ ( x ) h_\theta(x) hθ(x) 定义在 k − 1 k-1 k1 维,但显而易见, p ( y = k ∣ x ; θ ) p (y = k|x; \theta) p(y=kx;θ) 可以通过 1 − ∑ i = 1 k − 1 ϕ i 1− \sum^{k-1}_{i=1}\phi_i 1i=1k1ϕi得到。)

最后,讨论下参数拟合。

跟前面原始最小二乘法一样,如果训练集中有 m m m个训练样本,想通过学习算法得到,则需要同以前一样,先写出似然函数: L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ( ϕ 1 1 { y ( i ) = 1 } ϕ 2 1 { y ( i ) = 2 } … ϕ k 1 { y ( i ) = k } ) = ∏ i = 1 m ( ∏ l = 1 k ( exp ⁡ ( θ l T x ( i ) ) ∑ j = 1 k exp ⁡ ( θ j T x ( j ) ) ) 1 { y ( i ) = l } ) (47) \begin{aligned} L(\theta) &=\prod_{i=1}^{m} p\left(y^{(i)} \mid x^{(i)} ; \theta\right) \\ &=\prod_{i=1}^{m}\left(\phi_{1}^{1\left\{y^{(i)}=1\right\}} \phi_{2}^{1\left\{y^{(i)}=2\right\}} \ldots \phi_{k}^{1\left\{y^{(i)}=k\right\}}\right) \\ &=\prod_{i=1}^{m}\left(\prod_{l=1}^{k}\left(\frac{\exp \left(\theta_{l}^{T} x^{(i)}\right)}{\sum_{j=1}^{k} \exp \left(\theta_{j}^{T} x^{(j)}\right)}\right)^{1\left\{y^{(i)}=l\right\}}\right) \end{aligned} \tag{47} L(θ)=i=1mp(y(i)x(i);θ)=i=1m(ϕ11{y(i)=1}ϕ21{y(i)=2}ϕk1{y(i)=k})=i=1ml=1k(j=1kexp(θjTx(j))exp(θlTx(i)))1{y(i)=l}(47) 对数似然为: l ( θ ) = ∑ i = 1 m log ⁡ p ( y ( i ) ∣ x ( i ) ; θ ) = ∑ i = 1 m l o g ∏ l = 1 k ( e θ l T x ( i ) ∑ j = 1 k e θ j T x ( i ) ) 1 ( y ( i ) = l ) (48) \begin{aligned} l(\theta)& =\sum^m_{i=1} \log p(y^{(i)}|x^{(i)};\theta)\\ &= \sum^m_{i=1}log\prod ^k_{l=1}(\frac {e^{\theta_l^Tx^{(i)}}}{\sum^k_{j=1} e^{\theta_j^T x^{(i)}}})^{1(y^{(i)}=l)}\\ \end{aligned}\tag{48} l(θ)=i=1mlogp(y(i)x(i);θ)=i=1mlogl=1k(j=1keθjTx(i)eθlTx(i))1(y(i)=l)(48) 使用了式45得到第二行,我们可以用梯度上升法和牛顿法来得到参数 θ \theta θ的似然函数 l ( θ ) l(\theta) l(θ)最大似然估计。

最新回复(0)