机器学习

(传统机器学习)
(Machine Learning)

预测的是离散值,则学习任务称为“分类”(classification)任务;预测的是连续值,则是“回归”(regression)任务。
对于二分类任务,一类通常称为“正类”(正例,positive class/label),另一类称为“负类”(负例,negative)。

根据训练数据是否有标签(label)信息,学习任务分类“(有)监督学习”(supervised)和“无监督学习”(unsupervised)。分类和回归是监督学习的代表,聚类(clustering)是无监督学习的代表。

用数据集训练和评估的方法:

  • hold-out(留出法):分层采样(分布与母数据集尽量相同)出一定比例的验证集,即数据集分为占大部分的训练集和小部分的验证集,一般验证集占0.2左右。
  • K-折交叉验证法(k-fold cross validation):通过分层采样将数据集分成k组大小相近的互斥子集,选择其中一个子集作为验证集,剩下子集的合并为训练集,对k个子集分别如此操作得到k组训练集-验证集,进行训练、验证得到k次验证结果,取均值作为评估结果。分为k组子集的交叉验证又称k折交叉验证(k-fold cross validation)。一般可做10次10折交叉验证(100次训练/测试)。
  • Leave-one-out(留一法):k=N(样本总量)的交叉验证法,被认为是较为准确的评估方法,但数据集大时评估太耗时。
  • bootstrapping(自助采样):从数据集D中随机选择一个样本复制到集合D‘(放回采样导致D’中可能有重复样本),进行m次采样,用D'训练,D-D'用作测试。此方法适合数据集小、难以直接切分训练集/验证集的情况。

accuracy(正确率): \(acc=\frac{1}{n}\sum_{i}^{n} I(f(x_i) = y_i)=\frac{TP+TN}{n}=\frac{TP+TN}{TP+FP+TN+FN}\)

accurary在每个类别对应的样本量是不均衡时是不准确的。如负类别样本占比99.9%的测试集,用一个被设计为对所有样本均回答“负类别”而不做任何处理的模型,其accruray可高达99.9%.

precision(查准率、准确率) \(P=\frac{TP}{TP+FP}\)

recall(查全率、召回率) \(R=\frac{TP}{TP+FN}\)

F-measure:

\[F = F_\beta = \frac{(\beta^2+1)PR}{\beta^2P+R} \\ = \frac{1}{\alpha \frac1P + (1-\alpha)\frac1R} \]

Values of \(\beta>1\) favor recall. Values of \(\beta<1\) favor precision. when \(\beta=1\)

F-measure在p,r同时为0时是未定义的,但可以其极限作为函数扩展值,P,R趋于0时,Fβ趋于0,即 \(\lim_{(p,r)\to (0^+,0^+)}F=0\)

Proof: 当p、r中仅有一个为0时易得结论,下述p,r>0时的情况:

\[p>0, r>0, \delta >0, \sqrt{(p-0)+(r-0)}<\delta \implies p^2+r^2<\delta^2 \implies p,r<\delta \\ \beta\ge 0 \implies \beta^2p+r\ge r >0 \implies 0<\frac{1}{\beta^2p+r}\le \frac{1}{r} \implies \frac{pr}{\beta^2p+r}\le p \\ \implies \frac{(\beta^2+1)pr}{\beta^2p+r}\le (\beta^+1)p\le(\beta^2+1)\delta \\ (\beta^2+1)\delta<\epsilon \implies \delta<\frac{\epsilon}{\beta^2+1} \\ \text{故取 } \delta<\frac{\epsilon}{\beta^2+1} \text{ 可使得下式成立,继而证明极限为0} \\ \forall \epsilon>0 \exists\delta>0: \frac{(\beta^2+1)pr}{\beta^2p+r}<\epsilon \implies \\ \lim_{(p,r)\to (0^+,0^+)} \frac{(\beta^2+1)pr}{\beta^2p+r}=0 \]

F1-measure(F1值)
\(F_1=\frac{2PR}{P+R}\)
i.e. 调和平均:

\[\frac{1}{F_1} = \frac{2}{\frac{1}{P}+\frac{1}{R}} \]

macro-P, macro-R, macro-F1:
对n组测试数据,

macro-P(macro-average): \(\text{macro-P}=\frac{1}{m}\sum_{i}^{m}{P_i}\)
  即先计算每次的P,然后对n个P求平均; macro-R亦如此;

\[\text{macro-F1} = \frac{2\times\text{macro-P}\times\text{macro-R}}{\text{macro-P}+\text{macro-R}} \]

micro-P, micro-R, micro-F1:
对n组测试数据,先求TP、FP、FN均值,然后求P, R, F1。

micro-P: \(\text{micro-P}=\frac{\overline{TP}}{\overline{TP}+\overline{FP}}\)

混淆矩阵(误差矩阵 confusion matrix):是一个方阵,关于n个类别之间的误差,单元格 \(c_{ij}\)

knn分类算法:在训练集中选取与待分类数据最近(考虑欧氏距离)的k个点,将出现最出现的类别作为预测类别。

决策树分类算法:针对标称型数据。树每一层是同一维特征的离散值(或离散化后的值子域),树叶子是类别标签,可根据熵决定特征的决策的顺序。决策树(及其变种)将输入空间划分成不同区域,每个区域具有独立参数。

朴素贝叶斯分类算法

\[p(c_i|\boldsymbol{w})=\frac{p(\boldsymbol{w}|c_i)p(c_i)}{p(\boldsymbol{w})} \]

朴素贝叶斯的朴素(naive)体现于对向量变量 \(\boldsymbol{w}\) 的独立同分布性(i.i.d.)假设,即假设 \(\boldsymbol{w}=(w_1,w_2,...,w_n)\) 中n个变量服从相互独立的同分布,因此 \(p(\boldsymbol{w})=\prod_i{p(w_i)}\) , \(p(\boldsymbol{w}|c)=\prod_i{p(w_i|c)}\)

常用参数估计法:最小二乘法(均方误MSE)、极大似然估计法、最大后验估计(MAP)。

最大后验估计中,L2正则化相当于在约束条件:w服从于均值为0的正态分布,下的优化。L1正则化相当于在约束条件,w服从于Laplace分布分布,下的优化。

++最小二乘++损失函数: \(J(\bm \theta)=\sum_i(y_i-f(x_i|\bm \theta))^2\)

++极大似然估计++(最大似然)目标函数:

\[L(\bm \theta)=p(x_1,x_2,...,x_n|\bm\theta)=\prod_i{p(x_i|\bm\theta)} \text{ (i.i.d假设)} \\ l(\bm\theta)=\ln L(\bm\theta)=\sum_i\ln p(x_i|\bm\theta) \\ \frac{\partial l(\bm\theta)}{\partial\bm\theta} \\ \bm\theta=\underset{\theta\in\Theta}{\mathrm{arg\,max}}L(\bm\theta) \]

极大似然(分量概率连乘)认为特征间是正交的,多元高斯分布可捕捉特征间的关系,但对于高维度特征,多元高斯模型计算量太大。

++最大后验估计++:

\[\bm\theta_{\text{MAP}}=\underset{\bm\theta}{\arg\,\max}p(\bm\theta|\bm x)=\underset{\bm\theta}{\arg\,\max}\log p(\bm x|\bm\theta)+\log p(\bm\theta) \]

梯度求极值:

求最大值 -> 梯度上升: \(w^{(t+1)}=w^{(t)}+\alpha\nabla_w{J(w=w^{(t)})}\)

求最小值 -> 梯度下降: \(w^{(t+1)}=w^{(t)}-\alpha\nabla_w{J(w=w^{(t)})}\)

欠拟合 underfitting:没能很好的拟合数据,有太多错误的预测。

过拟合 overfitting:在训练出的模型在训练集上表现相当优秀,但在预测时大多数情况下表现不好。

正则化 regularization
为了避免过拟合,在常规损失函数上增加一个正则化项,正则化项是约束模型参数过分拟合训练集、允许模型在训练集上有一定犯错机会的函数。

随着训练了越来越多的样本,训练误差越来大,交叉验证误差(开发集误差)也未回落到低位水平,始终和训练误差保持在高位,二者误差相差不大,这表明模型存在欠拟合问题(高偏差)。

随着训练了越来越多的样本,训练始终保持在低位,几乎无训练误差,但交叉验证误差(开发集误差)一开始迅猛下降,随后在低点波动,然后在接着训练不多的样本后验证误差开始走高,二者误差有一定大的相差,这表明模型存在过拟合问题(高方差)。

代价函数 损失函数( cost function, loss function):度量模型(预测函数) \(\bm h(\bm x|\bm\theta)\) 与训练集真实值 \(\bm y\) 间的差距(代价、损失),一般记为 \(\bm J(\bm\theta)\)

我们希望代价函数是凸函数,这样就能运用凸优化算法来求解最小值。

在随机梯度下降算法中损失函数一般随着迭代次数增加而降低(迭代越多损失越小),如果迭代次数增加损失增加(越迭代越损失)则很可能是因学习率太大,损失总是忽大忽小地震荡,也可能是因学习率太大。

只要学习率足够小,则损失值就随着迭代次数增加而变小,但太小的学习率会导致算法程序收敛得很慢。

梯度下降(Gradient Descent)算法中参数的更新规则:

\[\bm\theta \leftarrow \bm\theta - \alpha \nabla_{\bm\theta} J(\bm\theta) \]

线性回归 (linear regression)

模型函数为

\[\begin{aligned} \hat y =h(\bm x)&=b+w_1x_1+w_2x_2+..+w_nx_n \\ &=\bm w^T\bm x+b \\ &=\bm\theta^T\bm x \end{aligned} \]

式中n为变量个数(特征数),简化后的线性变换形式的向量乘积 \(\bm\theta^T\bm x\) , 是原始特征 \({x_1,x_2,...,x_n}\)

代价函数为均方误

\[l(\bm\theta)=\left[h(\bm x^{(i)})-y^{(i)}\right]^2 \text{ 单样本} \\ \begin{aligned} J(\bm\theta) &=\frac1{2m}\sum_i^m \left[h(\bm x^{(i)})-y^{(i)}\right]^2 \\ &=\frac1{2m}(\bm X\bm\theta - \bm y)^2 \end{aligned} \\ \begin{aligned} \nabla_{\bm\theta} J(\bm\theta) &= \frac1m \sum_i^m \left[ \left(h(\bm x^{(i)})-y\right)\bm x^{(i)} \right] \\ &= \frac1m \bm X^T(\bm X \bm\theta-\bm y) \end{aligned} \]

X为数据矩阵, \(X\in\R^{m\times n}\)

参数 \(\bm\theta\)

\[\bm\theta^*=(X^TX)^{-1}X^T\bm y \]

尽管线性回归有解析解,但要求样本数m大于特征数n,否则 \(X^TX\)

加入正则项后代价函数为:

\[l(\bm\theta)=\left[h(\bm x^{(i)})-y^{(i)}\right]^2+\lambda\bm\theta^2 \text{ \;\;单样本} J(\bm\theta)=\frac1{2m}(\bm X\bm\theta-y)^2+\frac1{2m}\lambda\bm\theta^2 \]

解析解为:

\[\bm\theta^*=(X^TX+\lambda\begin{bmatrix}0 & \bm0\\ \bm0 & \bm I_{n\times n}\end{bmatrix})^{-1}X^T\bm y \]

\(\lambda\) 后的矩阵是将单位矩阵I扩充一维的对阵方阵,多出的元素全以0填充, \(I\in \mathbb R^{n\times n}\)

\[(X^TX+\lambda\begin{bmatrix}0 & \bm0\\ \bm0 & \bm I\end{bmatrix}) \]

仍可逆(解析式仍有意义)。

逻辑回归(logistic regression, LR)分类算法

注意这个“XX回归”听起来像是一个拟合连续数据的回归问题,但实际上一般用在二分类问题。
二分类情况中样本的标签非此即彼,则一个样本 \(\bm x\) 的两种标签的概率和应为数值1,记二分类标签为01,则 \(p(y=0|\bm x)+p(y=1|\bm x)=1\) ,因此二分类问题中只需一个随机变量。利用极大似然估计 \(p(y=1|\bm x;\bm \theta)\)

模型函数:

\[h(\bm x)=\sigma(\bm\theta^T\bm x)=\frac1{1+e^{-\bm\theta^T\bm x}} \hat y=\begin{cases} 1 & \text{if} & h(\bm x)\ge0.5 \\ 0 & \text{if} & h(\bm x)<0.5 \end{cases} \]

++线性回归++对应分布族

\[p(y|\bm x;\bm\theta)=\mathcal N(y;\bm\theta^T\bm x,\sigma) \]

++逻辑回归++对应分布族

\[p(y=1|\bm x;\bm\theta)=\sigma(\bm\theta^T\bm x) \]

logistic函数的值域在0至1之间。

逻辑回归的一种单样本损失函数:

\[\begin{aligned} l(\bm x,y) &=\begin{cases} -\log(h(\bm x)) & \text{if } & y=1 \\ -\log(1-h(\bm x)) & \text{if} & y=0 \end{cases}\\ &=-y\log(h(\bm x))-(1-y)\log(1-h(\bm x)) \end{aligned} \\ \frac{\partial l}{\partial\bm\theta} = \left(y^{(i)}-\sigma(\bm\theta^T\bm x^{(i)})\right)\bm x^{(i)} \]

训练集整体损失函数:

\[J(\bm\theta)=-\frac1{m} \sum_i^m \left[y^{(i)}\log(h(\bm x^{(i)}))+(1-y^{(i)})\log(1-h(\bm x^{(i)}))\right] \\ \begin{aligned} \nabla_{\bm\theta} J(\bm\theta)=\frac {\partial J}{\partial\bm\theta} &=-\frac1m \sum_i^m \left[\left(y^{(i)}-\sigma(\bm\theta^T\bm x^{(i)})\right)\bm x^{(i)}\right] \\ &=-\frac1m \bm X^T\left[\bm y-\bm\sigma(\bm X \bm\theta)\right] \\ &=\frac1m \bm X^T\left[\bm\sigma(\bm X \bm\theta)-\bm y\right] \end{aligned} \]

逻辑回归与交叉熵损失: 首先,Bernouli过程概率分布:记随机变量x表示Bernouli过程中的二项状态,为便于概率计算将二项定义为1或0,记x=1时的概率是s,由于Bernouli过程的观测结果非此即彼,即仅有两种互斥状态,则x=0的概率为1-s,即 \(p(x)=\begin{cases}s & \text{ if } x=1 \\ 1-s & \text{ if } x=0 \end{cases}\) ,该等式可简记为 \(p(x)=s^x(1-s)^{1-x}\) 。
然后,逻辑回归判断标签为1或0也即是个二项分布,该标签记为随机变量y,设y=1的概率为 \(\hat y\) ,则概率 \(p(y|x)=\hat y ^y(1-\hat y)^{1-y}\) ,两边取对数, \(\log p(y|x)=\log\left[\hat y^y (1-\hat y)^{1-y}\right]=y\log\hat y + (1-y)\log(1-\hat y)\) ,(最大后验概率估计MAP)最大化该对数概率等同最小化其相反数(凸优化问题求解更偏向使用最小化而非最大化) \(L(y,\hat y) = -[y\log\hat y + (1-y)\log(1-\hat y)]\)

logistic regression中不使用均方误(mean square error, MSE)作为损失函数,因为那将使得损失函数不是凸函数,此时MSE有若干局部最优解。

该函数是凸函数,且在预测完全错误时的损失值相当大。如果使用均方误作为损失函数,那将是非凸函数,不利于优化求解。

损失函数J事实上也是交叉熵损失(cross entroy loss),式中 \(y^{(i)}\in\{0,1\}\) 、 \(h(\bm x^{(i)})\in(0,1)\) 分别是样本 \(\bm x^{(i)}\)

正则化的损失函数:

\[J(\bm\theta)=-\frac1{m}\sum\cdots + \frac1{2m}\lambda\bm\theta^2 \\ \nabla_{\bm\theta} J(\bm\theta)=\frac1m \bm X^T[\bm\sigma(\bm X\bm\theta)-\bm y]+\frac\lambda m\bm\theta \]

logistic regression vs. naive Bayes:
the difference in performance between naive Bayes and logistic regression
is due only to the fact that the first is generative and the second discriminative;
the two classifiers are, for discrete input, identical in all other respects.
If a logistic regression model is trained to maximize the joint likelihood \(p(y,\bm x)\) , then it is a naive Bayes. If a naive Bayes is trained to maximize the conditional probability \(p(y|\bm x)\)

adaboost分类算法

组合不同的分类器(不同模型或同模型不同参数)得到的复合模型,这种方法叫元算法(meta-algorithm)或集成方法(ensemble method)。

adaboost是一种监督的元算法,通过组合弱分类器,更关注弱分类器错误分类的样本。

应用数据类型:数值型或标称型。缺点:对离群点敏感。

每个基本分类器(弱分类器)都有权重 \(\alpha=\frac1{2}\ln(\frac{1-\varepsilon}\varepsilon)\)

每个样本都用权重,样本权重 \(\bm d\)

\[\text{初始权重 } \bm d^{(0)}=\bm1 \\ d_i^{(t+1)}= \begin{dcases} \frac{d_i^{(t)}e^{-\alpha}}{\mathrm{sum}(\bm d)} & \text{ if sample is correctly classified } \\ \\ \frac{d_i^{(t)}e^{\alpha}}{\mathrm{sum}(\bm d)} & \text{ if wrongly} \end{dcases} \]

局部加权线性回归(LWLR)的权重矩阵是对角阵,利用高斯核:

\[W_{i,i}=\exp\left(\frac{|\bm x^{(i)}-\bm x|}{-2k^2}\right) \\ \text{ for each point i in train set, and test point x} \]

SVM 支持向量机

记类别为 \(y\in\{+1,-1\}\) ,其中+1表示阳例,-1表示阴例。我们希望找到合适的决策参数 \(\bm w, b\) 使得决策函数 \(\bm w^T \bm x+b\) 对于样本( \(\bm x\)

\[\bm w^T \bm x+b \ge +1, \text{for } y=+1 \text{(即x为\textbf{阳例}时)} \\ \bm w^T \bm x+b \le -1, \text{for } y=-1 \text{(即x为\textbf{阴例}时)} \]

其可被重写为一个公式:

\[y(\bm w^T \bm x+b) \ge 1 \]

注意这里要求 \(\ge 1\) ,而非简单地 \(\ge 0\)

样本t( \(\bm x^t\) )到决策面(其为超平面) \(\bm w^T \bm x+b\)

\[\frac{|\bm w^T \bm x^t+b|}{\|\bm w\|} \]

因 \(y^t\in\{+1,-1\}\)

\[\frac{y^t(\bm w^T \bm x^t +b)}{\|\bm w\|} \]

我们希望样本到决策面的距离大于某个值 \(\rho\) ( \(\rho>0\)

\[\frac{y^t(\bm w^T \bm x +b)}{\|\bm w\|} \ge \rho, \forall t \]

希望最大化边距 \(\rho\) 。但是通过缩放 \(\bm w\) 可得到无限多个解,为得到唯一解,我们固定 \(\rho\|\bm w\|=1\) ,这样,为最大化边距 \(\rho\) 可转而最小化 \(\bm w\)

\[\min \frac{1}2 \|\bm w\|^2, \text{s.t.} y^{(t)}(\bm w^T \bm x^{(t)} +b)\ge 1, \forall t \]


图中,空心圆和叉号代表两类数据,两侧虚线决定了边距(margin),中间实线为决策面(超平面 \(\bm w^T \bm x +b\)

软边距超平面:对于数据不是线性可分的情况,不能找到一个超平面使得两类数据能被完全分开,上述优化目标不能解决问题。则转而寻找出错最少的超平面,这是需要引入松弛变量(slack variable) \(\xi^t\) ( \(\xi \ge 0\) )(对于样本t)以容忍错误。此时我们要求决策函数对样本t( \(\bm x^t\) )的判别值 \(\bm w^T \bm x +b\)

\[y^t(\bm w^T \bm x +b) \ge 1-\xi^t\]

\(\xi\)

  • \(\xi=0\) 。对 \(\bm x\)
  • \(0<\xi<1\)
  • \(\xi\ge 1\)

定义软误差(soft error)为 \(\sum_t \xi^t\)

\[L_p = \frac{1}2 \|\bm w\|^2 +C\sum_t\xi^t, \text{ s.t. } y^t(\bm w^T\bm x+b)\ge 1-\xi^t, \forall t\]

其中C为惩罚因子。

SVM分类器适用于(大致)线性可分的数据。

SVM缺点:预测耗时与训练集样本数量成正相关(不论用于大致线性可分的朴素SVM还是用于高维空间线性可分的核技巧SVM,都存在数据集大时预测速度慢的问题)。

ν-SVM

\(\nu\in[0,1]\)

\[\min \frac1{2} \|\bm w\|^2 - v\rho + \frac1{N}\sum_t\xi^t \\\text{s.t. } y^t(\bm w^T\bm x+b)\ge\rho-\xi^t, \xi^t\ge 0, \rho\ge 0 \]

SVM with kernel

kernel-SVM

核技巧

如果问题不是线性可分的,可将其映射到某个新空间使问题在新空间是线性可分的。

核机器(kernal machine)的基本思想是用支持向量和原输入空间中的实例之间的核函数 \(K(\bm x^t, \bm x^s)\)
取代基函数的内积 \(\bm\Phi(\bm x^t)\bm\Phi(\bm x^s)\) 。如此不必费力寻找基函数 \(\bm\Phi\)

\[L_d=\sum_t\alpha^t-\frac1{2} \sum_t\sum_s \alpha^t \alpha^s y^t y^s K(\bm x^t, \bm x^s)\]

判别式

\[g(\bm x)=\bm w^T\bm\Phi(\bm x) =\sum_t \alpha^t y^t \bm\Phi(\bm x^t) \bm\Phi(\bm x) \\ = \sum_t \alpha^t y^t K(\bm x^t, \bm x) \]

核方法 核技巧(kernal trick):

\[\bm w^T\bm x+b=b+\sum_i \alpha_i k(\bm x, \bm x^{(i)})\]

和 \(\bm x\) 越相似(欧氏距离越小)的点具有更高权重。
SVM主要缺点在于计算代价与训练样本量成线性关系,能够通过学习主要包含0的向量 \(\bm\alpha\) 来缓和该问题,如此判断新样本仅需计算非零 \(\alpha_i\) 对应训练样本的核函数,这些非零 \(\alpha_i\) 对应的训练样本称为支持向量

决策函数关于 \(\bm x\) 可能是非线性的,关于高维向量 \(\phi(\bm x)\) 是线性的。 \(k(\bm u,\bm v)=\phi(\bm u)\cdot\phi(\bm v)\)

Gram matrix:元素为核值的矩阵 \(\bf K\) ,其中 \(\mathbf K_{ts}= K(\bm x^t, \bm x^s)\)

常用核函数

  • 高斯核:

\[k(\bm u,\bm v)=\mathcal N(u-v,0,\sigma \bm I)\]

  • q次多项式

\[k(\bm x^{(t)}, \bm x)=(\bm x^T \bm x^{(t)})^q\]

  • 高斯径向基函数 gaussian radial basis function, RBF

\[k(\bm x^{(t)}, \bm x)=\exp\left[-\frac{\|\bm x^{(t)}-\bm x\|^2}{2s^2}\right]\]

其定义了一个球形核,其中 \(\bm x^{(t)}\) 是中心, \(s\)

  • S形函数(sigmoidal function)

\[k(\bm x^{(t)}, \bm x)=\tanh(2\bm x^T \bm x^{(t)})\]

核机器可用于回归(regression)问题。

SVM for Regression

协同过滤 collaborative filtering

(低秩矩阵因式分解 low rank matrix factorization)
同时学习训练集中样本的特征向量和参数向量。

以用户对电影评分为例,假设有用户和电影若干,从用户角度看每个用户会对影库中的部分电影产生评价,评价为一个分值(如1~5分),从影片角度看每部电影会被部分用户评价,我们使用协同过滤算法在数据集上学习到每个用户和每部电影的特征向量,然后预测尚未被用户评价的电影可能获得该用户的评价分数预测值。
训练集中,样本电影量为 \(n_{movie}=n_m\) ,样本特征维度为d(需要预设的超参数),样本电影i记为 \(\bm x^{(i)}\) ,样本电影总量记为X,则 \(X\in\R^{n_m\times d}\) ,用户量为 \(n_u\) ,用户j的特征向量(参数向量)记为 \(\bm\theta^{(j)}\) ,总量记为 \(\Theta\in\R^{n_u\times d}\) ,训练集中存在用户j评价过电影i则表示为r(i,j)=1,总量记为 \(R\in\mathbb R^{n_m\times n_u}\) ,评价星级为 \(y^{(i,j)}\) ,评价总量 \(Y\in\mathbb R^{n_m\times n_u}\) ,用户对电影间的评价分数为线性模型( \(\bm\theta^T\bm x\) ),均方误损失函数(考虑对 $\bm x $ 和 $\bm\theta $ 的正则化)为 \(J(x^{(1)},x^{(2)},...,x^{(n_{m})},\theta^{(1)},...,\theta^{(n_u)})\) ,协同过滤求解过程:1.将 \(X,\Theta\)

\[\begin{aligned}J(\bm X,\bm\Theta) &=\frac12 \sum_{(i,j):r(i,j)=1} \left[(\bm\theta^{(j)}) ^T \bm x^{(i)} - y^{(i,j)}\right]^2 + \frac\lambda 2 \sum_i^{n_m} \|\bm x^{(i)}\|^2 + \frac\lambda 2 \sum_j^{n_u} \|\bm\theta^{(j)}\|^2 \\ &=\frac12 \|X\Theta^T\odot R-Y\|^2+\frac\lambda 2 \|X\|^2+ \frac\lambda 2 \|\Theta\|^2 \end{aligned} \\ (\bm x^{(i)})^{(t+1)}=(\bm x^{(i)})^{(t)} - \alpha\left(\sum_{j:r(i,j)=1} [((\bm\theta^{(j)})^T\bm x^{(i)} -y^{(i,j)})\bm\theta^{(j)}]+ \lambda {\bm x^{(i)}}\right) \\ \text{即(注意上式中累加式对j的限制): } \\ \bm X^{(t+1)}=\bm X^{(t)}-\alpha(X\Theta^T\odot R-Y)\Theta - \lambda X \\ (\bm \theta^{(j)})^{(t+1)}=(\bm \theta^{(j)})^{(t)} - \alpha\left(\sum_{i:r(i,j)=1} [((\bm\theta^{(j)})^T\bm x^{(i)} -y^{(i,j)})\bm x^{(i)}]+ \lambda {\bm \theta^{(j)}}\right) \\ \text{即(注意未评价情况):} \\ \begin{aligned} \bm \Theta^{(t+1)}&=\bm \Theta^{(t)}-\alpha(\Theta X^T\odot R^T-Y^T)X - \lambda \Theta \\ &=\bm \Theta^{(t)}-\alpha(X\Theta^T\odot R-Y)^TX - \lambda \Theta \end{aligned} \]

预测:对于已收录的电影 \(\bm x\) ,用户 \(\bm\theta\) ,用户尚未对该电影拍打分评价,模型可预测其评价分数为 \(\bm\theta^T\bm x\)

规范化输入数据的均值能够使得模型表现更好,主要是可以将特殊情况(如0值、边缘情况)引向数据中心(均值)。如在电影评分例子中,如果用户 \(\theta\) 未对任何电影评价过,则模型学习到该用户的特征向量为 \(\bm 0\) ,当未均值规范化时模型关于该用户对任意电影的预测评分为0,计算式为 \(\bm\theta^T\bm x^{(i)}=\bm0\bm x=0\) ,这样的预测很难有意义;而进行均值规范化时,模型预测该用户对电影 \(\bm x^{(i)}\) 的评分为该电影的评分均值 \(\mu_i\) ,模型预测值计算式为 \(\bm\theta^T\bm x^{(i)}+\mu_i=\bm0\bm x+\mu_i=\mu_i\)

The principal advantage of discriminative modeling is that it is better suited to including rich, overlapping features.


discriminative and generative models

监督学习方法可以分为生成方法和判别方法。学习到的模型分别称为生成(generative)模型和判别(discriminative)模型。
生成模型的特点:可以还原出联合分布P(X,Y),而判别模型不能;收敛速度更快;存在隐变量时仍可以使用生成方法,无法使用判别方法。
判别模型的特点:学习条件概率P(Y|X)或判别函数f(X),直接用以预测,判别模型的预测值反应的是类别之间的差异程度而非输入值和预测类别之间的联合分布(相似度),但训练集分布越真实约丰富则越使得判别的“边界”越接近各类别的真实“轮廓”(相似度);准确率(accuracy)一般更高;直接定义、使用特征,简化了学习的问题。

Bayesian Optimization

Bayesian optimization does not refer to one particular algorithm but rather to a philosophical approach to optimization grounded in Bayesian inference.

无监督学习

聚类 Clustering

k-means聚类算法

聚类出k个簇(k为事先设定的),利用簇内元素均值向量作为簇的向量表示。过程是初始化出k个簇中心(从待聚类数据集中随机生成/选取或者在数据边界内随机生成),对每个待聚类数据点,分别计算与k个中心的距离,选择最近的一个作为它的归属簇,计算该簇均值并作为簇的中心。簇中心改变时会导致所有点重新选则簇,中心改变-重新组织簇-新簇中心,进行这种波动计算直到收敛。

聚类过程主要是通过不断迭代两个步骤直至收敛,两个步骤为:1.对每个样本x,找出簇中心距离x最近的簇c(最优化过程),将x加入c;2.对每个簇重新计算簇中心。

online k-means clustering 在线K均值聚类

又叫sequential k-means clustering, 流式数据上的k-means版本。其在每个元素(或每个小批次)到来时将K个簇中与其最近者向元素移动一定距离,不断进行该步骤直至收敛。

期望最大化 Expectation-Maximization (EM算法)

当存在隐变量时,常规的最大似然估计方法无法估计出模型参数,这时需要EM算法。

层次聚类 Hierarchical Clustering

通过两两样本间的相似性来聚类。

局部模型

自适应共鸣理论算法 ART

Adaptive Resonance Theory(ART) (Carpenter & Grossberg, 1988).

自组织映射 SOM

Self-Organizing Map, SOM (Kohonen, 1990, 1995).

径向基函数 RBF

Radial Basis Function(Broomhead&Lowe 1988; Moody&Darken 1989)

关联分析

寻找数据之间(物品之间、特征之间)的关系,被称为关联分析或关联规则学习。

频繁项集(frequent item sets):频繁共现项的集合。
项集支持度(support):项出现集合量的占比。

Apriori算法

如果一个项是非频繁的,那么其超集非频繁(逆否:如果一个项是频繁的,那么其子集也频繁)。


Basics

均值规范化(mean normalization,均值规范化 mean normalization,零均值化,零均值化,数据中心化):
将数据均值规范化处理(对训练数据均值规范化,然后在预测时把均值加回来),将数据的均值对齐到中心(即零均值),能够在一些特殊值上获得好的表现。

方差归一化(variance normalization,方差规范化):计算数据的方差,将数据点除以方差进行缩放,使得新数据的方差为数值1。

输入规范化(input normalization):先规范化数据均值,然后对均值已规范化的数据进行方差规范化(方差归一化),将规范了均值和方差的数据作为模型输入。

当各个特征的数值尺度(数值范围)差异较大时,可考虑对输入规范化,当数值范围相似(各个特征的范围都在相似的区间)时可不做规范化。输入规范化的数据能够使得优化过程中的梯度下降方向更偏准最优值,加快优化过程(训练过程)。(???训练集和测试集所用均值和方差需相同,不能分别估计各自的均值和方差去做规范化???)

设计矩阵数据矩阵(design matrix, data matrix, model matrix)是以行向量表示样本的矩阵。即,每个样本有n个特征,有m个样本,则数据矩阵为 \(\bm X\in\mathbb R^{m\times n}\) 。例,假设样本序列为 \(\bm x^{(1)},\bm x^{(2)},...,\bm x^{(m)}\)

\[\begin{bmatrix}\text{——}(\bm x^{(1)})^T\text{——} \\ \text{——}(\bm x^{(2)})^T\text{——} \\ ...\\ \text{——}(\bm x^{(m)})^T\text{——} \end{bmatrix} \]

权重初始化
\(w^{(l)}=np.random.randn(m,n)\) vs. \(w^{(l)}=np.random.randn(m,n)/np.sqrt(n)\)

等变性(equivariant):如函数 \(f(x), g(x)\) 满足 \(f(g(x))=g(f(x))\) ,则称f对于g具有等变性。 Denoted using function composition as \(f\circ g = g\circ f\)

卷积层分三级,第一级,仿射变换;第二级,探测级,非线性(如整流线性);第三级,池化级。

前向传播(forward propagation):输入 \(\bm x\) 作为原始信息,经过层层隐藏单元,最终产生输出 \(\hat\bm y\) 的过程。训练过程中,前向传播可以持续向前知道产生一个标量代价函数 \(J(\bm\theta)\)

反向传播(back propagation):允许来自代价函数的信息通过网络向后流动。

计梯度的解析式是直观的,但是数值化地求解这样的表达式值在计算上的代价很大。反向传播算法使用简单和廉价的程序来实现这一目。
反向传播常被误解为神经网络上的整个学习算法,事实上,反向传播指用于计算梯度的方法,而其他算法,如类似随机梯度下降方法,使用该梯度来学习模型。
反向传播也易被误解仅能用于多层神经网络,但原则上可以用于任意函数导数的计算。

向量函数 \(\bm y=\bm f(\bm x)\) 是 \(\mathbb R^n\) 到 \(\mathbb R^m\) 的函数,对 \(\bm x\) 的导数 \(\frac{\partial\bm y}{\partial\bm x}\) ,有时需要将 \(\bm y\) 作为行向量来理解,即 \(\frac{\partial\bm y}{\partial\bm x}\) 理解为 \(n\times m\) 的雅克比(Jacobian)矩阵,而不是列向量对列向量的导数产生的 \(nm\times 1\)

实值函数对张量的梯度的链式法则:

\[\nabla_{\bm X}z=\sum_j{(\nabla_{\bm X}\bm Y_j)}\frac{\partial z}{\partial\bm Y_j}\]

j是张量Y的坐标索引元组(如Y是三阶张量则j是一个整数三元组,如(7,5,4)定位了这样位置的一个标量:一阶第7,二阶第5,三阶第4)。

异常检测 vs. 监督学习:
当数据集很倾斜某种类别时(如负例相当多,正例特别少),可考虑异常检测算法。当类别分布均衡时考虑监督学习算法。

为避免太多个0~1之间的概率数值乘积导致结果数值产生数值下溢(underflow)问题,可利用对数函数 \(log\) 对概率取对数,这样,原数值的乘法等同 \(log\)

\[\prod p_i = \exp \sum log p_i\]


autoregressive: A model is autoregressive if it predicts values based on previously generated values.

residual connection: a type of skip connections.

带有二分类任务的python代码 二分类任务是什么_数据集

e.g. residual connection in Transformer, in RNN.