本文主要是介绍机器学习数学语言(7.28作业),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.累加累乘与积分
- 将向量下标为偶数的分量累加, 写出相应表达式.
∑ i m o d 2 = 0 x i \sum_{i \mod 2=0} x_i imod2=0∑xi - 各出一道累加、累乘、积分表达式的习题, 并给出标准答案.
①将矩阵中大于等于1的分量平方并累加:
∑ x i j ≥ 1 x i j 2 \sum_{x_{ij}≥1}x_{ij}^2 xij≥1∑xij2
②将矩阵中不为0的分量累乘:
∏ x i j ≠ 0 x i j \prod_{x_{ij}≠0}x_{ij} xij=0∏xij
③函数 x 3 − x + 2 x^3-x+2 x3−x+2在0到1上积分:
∫ 0 1 x 3 − x + 2 d x \int_{0}^{1}x^3-x+2 \mathrm{d}x ∫01x3−x+2dx - 你使用过三重累加吗? 描述一下其应用.
在代码中三重循环算时间复杂度时会用到三重累加: ∑ i = 1 n ∑ j = 1 i ∑ k = 1 j 1 \sum_{i=1}^n\sum_{j=1}^i\sum_{k=1}^j 1 i=1∑nj=1∑ik=1∑j1 - 给一个常用的定积分, 将手算结果与程序结果对比.
定积分: ∫ 0 1 x 2 + 1 d x \int_{0}^{1}x^2+1 \mathrm{d}x ∫01x2+1dx
手算结果: 4 3 = 1.33333... \frac{4}{3}=1.33333... 34=1.33333...
程序结果: 1.32835 1.32835 1.32835
2.线性回归
-
如何获得 w \mathbf{w} w?
推导过程:
∥ X w − Y ∥ 2 2 = ( X w − Y ) T ( X w − Y ) = ( w T X T − Y T ) ( X w − Y ) = w T X T X w − w T X T Y − Y T X w + Y T Y \begin{aligned} \|\mathbf{Xw}-\mathbf{Y}\|_2^{2} & =(\mathbf{Xw}-\mathbf{Y})^\mathrm{T}(\mathbf{Xw}-\mathbf{Y}) \\ & =(\mathbf{w}^\mathrm{T}\mathbf{X}^\mathrm{T}-\mathbf{Y}^\mathrm{T})(\mathbf{Xw}-\mathbf{Y}) \\ & =\mathbf{w}^\mathrm{T}\mathbf{X}^\mathrm{T}\mathbf{Xw}-\mathbf{w}^\mathrm{T}\mathbf{X}^\mathrm{T}\mathbf{Y}- \mathbf{Y}^\mathrm{T}\mathbf{Xw}+\mathbf{Y}^\mathrm{T}\mathbf{Y} \end{aligned} ∥Xw−Y∥22=(Xw−Y)T(Xw−Y)=(wTXT−YT)(Xw−Y)=wTXTXw−wTXTY−YTXw+YTY
将该式关于 w \mathbf{w} w求导 (使用向量求导法则) 并令其为 0, 可得
X T X w − X T Y = 0 \mathbf{X}^{\mathrm{T}}\mathbf{X} \mathbf{w} - \mathbf{X}^{\mathrm{T}}\mathbf{Y} = 0 XTXw−XTY=0
最后
w = ( X T X ) − 1 X T Y \mathbf{w} = (\mathbf{X}^{\mathrm{T}}\mathbf{X})^{-1}\mathbf{X}^{\mathrm{T}}\mathbf{Y} w=(XTX)−1XTY
岭回归:
arg min w = ∥ X w − Y ∥ 2 2 − λ ∥ w ∥ 2 2 \argmin_{\mathbf{w}}=\|\mathbf{Xw}-\mathbf{Y}\|_2^2-λ\|\mathbf{w}\|_2^2 wargmin=∥Xw−Y∥22−λ∥w∥22
可推导出
X T X w − X T Y + λ w = 0 \mathbf{X}^{\mathrm{T}}\mathbf{X} \mathbf{w} - \mathbf{X}^{\mathrm{T}}\mathbf{Y} + \lambda \mathbf{w} = 0 XTXw−XTY+λw=0
最后
w = ( X T X + λ I ) − 1 X T Y \mathbf{w} = (\mathbf{X}^{\mathrm{T}}\mathbf{X} + \lambda \mathbf{I})^{-1}\mathbf{X}^{\mathrm{T}}\mathbf{Y} w=(XTX+λI)−1XTY -
自己写一个小例子 ( n = 3 , m = 1 ) (n=3, m = 1) (n=3,m=1) 来验证最小二乘法.
令函数 y = 2 x + 1 y=2x+1 y=2x+1, x x x取值5, 6, 7, y ^ \hat y y^取值10, 13, 14.
y ^ = a x + b \hat y=ax+b y^=ax+b, 用最小二乘法求 a , b a,b a,b :
a = ∑ i = 1 3 x i y ^ i − 3 x ‾ y ‾ ∑ i = 1 3 x i 2 − 3 x ‾ 2 = 2.028 a=\frac{\sum_{i=1}^3x_i\hat y_i-3\overline{x}\overline{y}}{\sum_{i=1}^3x_i^2-3\overline x^2}=2.028 a=∑i=13xi2−3x2∑i=13xiy^i−3xy=2.028
b = y ‾ − a x ‾ = 0.132 b=\overline{y}-a\overline{x}=0.132 b=y−ax=0.132
3.推导, 并描述这个方法的特点 (不少于 5 条).
arg max w L ( x ) = ∏ i = 1 n P ( y i ∣ x i ; w ) \argmax_\mathbf{w} L(x)=\prod_{i=1}^nP(y_i|\mathbf{x}_i; \mathbf{w}) wargmaxL(x)=i=1∏nP(yi∣xi;w)
- 相乘计算困难, 将其求一个对数, 不改变单调性
log L ( w ) = ∑ i = 1 n log P ( y i ∣ x i ; w ) = ∑ i = 1 n y i log P ( y i = 1 ∣ x i ; w ) + ( 1 − y i ) log ( 1 − P ( y i = 1 ∣ x i ; w ) ) = ∑ i = 1 n y i log P ( y i = 1 ∣ x i ; w ) 1 − P ( y i = 1 ∣ x i ; w ) + log ( 1 − P ( y i = 1 ∣ x i ; w ) ) = ∑ i = 1 n y i x i w − log ( 1 + e x i w ) \begin{aligned}\log L(\mathbf{w}) & = \sum_{i = 1}^n \log P(y_i \vert \mathbf{x}i; \mathbf{w}) \\ & = \sum_{i = 1}^n y_i \log P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}) + (1 - y_i) \log(1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w})) \\ & = \sum_{i = 1}^n y_i \log \frac{P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})}{1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})} + \log (1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w})) \\ & = \sum_{i = 1}^n y_i \mathbf{x}_i \mathbf{w} - \log (1 + e^{\mathbf{x}_i \mathbf{w}}) \end{aligned} logL(w)=i=1∑nlogP(yi∣xi;w)=i=1∑nyilogP(yi=1∣xi;w)+(1−yi)log(1−P(yi=1∣xi;w))=i=1∑nyilog1−P(yi=1∣xi;w)P(yi=1∣xi;w)+log(1−P(yi=1∣xi;w))=i=1∑nyixiw−log(1+exiw) - 对 w \mathbf{w} w 求偏导
∂ log L ( w ) ∂ w = ∑ i = 1 n y i x i − e x i w 1 + e x i w x i = ∑ i = 1 n ( y i − e x i w 1 + e x i w ) x i \begin{aligned} \frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} & = \sum_{i = 1}^n y_i \mathbf{x}_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}} \mathbf{x}_i \\ & = \sum_{i = 1}^n \left(y_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}}\right) \mathbf{x}_i \end{aligned} ∂w∂logL(w)=i=1∑nyixi−1+exiwexiwxi=i=1∑n(yi−1+exiwexiw)xi - 令该偏导为 0, 无法获得解析式, 因此用梯度下降.
w t + 1 = w t − α ∂ log L ( w ) ∂ w \mathbf{w}^{t+1}=\mathbf{w}^{t}-\alpha\frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} wt+1=wt−α∂w∂logL(w)
- sigmoid函数更符合分类问题;
- 将累乘变换为累加;
- 输出为概率形式;
- sigmoid函数任意阶可导;
- 特征离散化,增加泛化能力.
这篇关于机器学习数学语言(7.28作业)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!