Machine learning note(1)

发布时间 2023-09-08 18:26:16作者: tongyf

注:本笔记不给出完整解释

正规方程

\(z=\theta^{T}x\)

设损失函数为\(J(\theta)\),求令\(\frac{\partial J}{\partial \theta}=0\)\(\theta\)

由此得出最优的\(\theta\)

牛顿迭代

回顾一下梯度下降:\(\theta'=\theta-\alpha*\frac{\partial J}{\partial \theta}\)

另一种方法是牛顿迭代

\(\theta'=\theta-\frac{\frac{\partial J}{\partial \theta}}{\frac{\partial^2 J}{\partial \theta^2}}\)

参数较少的时候相比梯度下降更快,但是参数较多的时候求解\(\frac{\partial^2 J}{\partial \theta^2}\)会很消耗时间。表示\(\frac{\partial^2 J}{\partial \theta^2}\)的矩阵也称为\(Hessian\)矩阵

局部加权回归

\(x\)为要预测的,然后设\(w_i=e^{\frac{-(x_i-x)^2}{2}}\),就有\(\widehat{y}=((X^T W X)^{-1}X^T W y)^{T}x\)

\(((X^T W X)^{-1}X^T W y)^{T}\)就是最优的\(\theta\)

上述\(\theta\)使得\(\sum^{m}_{i=1} w_i (y_i-\theta^T x_i)^2\)

GLM

指数族:概率密度可以写成\(P(y,\eta)=b(y)e^{\eta^T T(y)-\alpha(\eta)}\)

其数学特性是让优化变成凸优化问题

\(E(y;\eta)=\frac{\partial \alpha(\eta)}{\partial \eta}\)

\(Var(y;\eta)=\frac{\partial E(y;\eta)}{\partial \eta}\)

\(P(y|x;\theta)\)符合指数族分布的都可以用GLM解决

GLM梯度下降的方式可以表示为\(\theta_j=\theta_j+\alpha(y^{(i)}-h_{\theta}(x^{(i)}))x^{(i)}_{j}\)

根据这个式子我们可以得到一个结论:最优的\(\theta\)\(x^{(i)}\)的线性组合,后面\(SVM\)的时候会用到

高斯判别分析

首先说一下生成学习算法。生成学习算法预测\(P(x|y)\),而不是\(P(y|x)\),然后根据\(P(y|x)=\frac{P(x|y)P(y)}{P(x)}\)\(P(y|x)\)\(P(y)\)是某种概率分布,\(P(x)\)是常数

然后我们假设\(P(x|y)\)为多元高斯分布,然后\(P(y)\)为伯努利分布

先考虑\(y=1\)的情况,对\(P(x|y=1)\)进行最大似然估计

\(\mu_1\)为均值,\(\sum\)为协方差矩阵,可以得到以下:

\(\mu_1=\frac{\sum^{m}_{i=1}[y^{(i)}==0]x^{(i)}}{\sum^{m}_{i=1}[y^{(i)}==0]}\)

\(\sum=\frac{\sum^{m}_{i=1}(x^{(i)}-\mu_{y^{(i)}})(x^{(i)}-\mu_{y^{(i)}})^{T}}{m}\)

将上述值代入\(P(x|y=1)\)即可得到最优的\(P(x|y=1)\)\(y=0\)的情况同理

\(P(x|y)\)为高斯分布才好用

朴素贝叶斯

同样是生成学习算法

一般情况有\(P(x_1 x_2 ... x_n|y)=\prod^{n}_{i=1}P(x_1 x_2 ... x_i|y)\)

这样子可不好算啊QAQ

然后我们假设\(x_i\)\(IID\),于是上式就变成\(P(x_1 x_2 ... x_n|y)=\prod^{n}_{i=1}P(x_i|y)\)

分别预测每一个\(P(x_i|y=j)\)即可,逻辑回归中\(j=0\)\(1\)

\(\prod^{m}_{i=1}P(x_i|y)P(y)\)进行最大似然估计,得到以下:

\(\phi_y=\frac{\sum^{m}_{i=1}[y^{(i)}==1]}{m}\)

\(\phi_{j|y=1}=\frac{\sum^{m}_{i=1}[y^{(i)}==1][x^{(i)}==1]}{\sum^{m}_{i=1}[y^{(i)}==1]}\)

\(\phi_{j|y=0}=\frac{\sum^{m}_{i=1}[y^{(i)}==0][x^{(i)}==1]}{\sum^{m}_{i=1}[y^{(i)}==0]}\)

预测的时候\(P(y=1|x)=\frac{P(x|y=1)P(y=1)}{P(x|y=1)P(y=1)+P(x|y=0)P(y=0)}\)

当然上述情况可能出现分母为零的情况,这时需要拉普拉斯平滑

SVM

最大化几何距离,构建最优边界分类器

然后问题变成:

\(min \frac{||w||^2}{2}\)

\(s.t. y^{(i)}(w^Tx^{(i)}+b) \geq 1\)

再根据最优的\(w\)可以用\(x^{(i)}\)线性表示出来(基于此的只是直觉,并非严谨证明),转化为以下问题:

\(max \sum \alpha_i - \frac{1}{2} \sum \sum y^{(i)}y^{(j)} \alpha_i \alpha_j <x^{(i)},x^{(j)}>\)

\(s.t. \alpha_i \geq 0,\sum \alpha_i y^{(i)}=0\)

一般情况下会把\(\alpha_i \geq 0\)条件加强为\(0 \leq \alpha_i \leq C\)

这样,SVM实际上就是一个约束优化问题。

具体实现:

迭代若干次,每次选取两个\(\alpha_i , \alpha_j\),然后根据约束条件\(\sum \alpha_i y^{(i)}=0\),得出\(\alpha_i\)\(\alpha_j\)的关系,用\(\alpha_i\)表示\(\alpha_j\),转化为二次函数区间最大值问题。优化目标对\(\alpha_j\)求导,再结合\(\alpha_j\)的范围得出最优的\(\alpha_j\),同时得出最优的\(\alpha_i\),然后更新b

如何选择\(\alpha_i , \alpha_j\)\(\alpha_i\)选择一个不满足\(KKT\)条件的,然后\(\alpha_j\)选择使得\(|E_i-E_j|\)最大的\(j\)\(E_i=\widehat{y_i}-y_i\)

更加具体的解释见这篇论文

决策树

对数据所在的n维空间进行某种划分。

每次划分随机选择几维,找出最优的分界值,然后把空间内的点分为两个集合,然后对每个集合再进行划分。

上述划分关系可以形成一棵树,对每一棵子树求损失函数,优化目标就是最大化某个点的损失函数和子节点损失函数之和的差

\(max L(i)-\sum L(son(i))\)