冰川冰融化的瞬间 背景主题图源自阿根廷-莫雷诺冰川

由浅入深,循序渐进。从骨架到填肉。

监督学习

从数学的角度上,机器学习的目标是从原始数据中提取特征,学习到一个映射函数 f 将上述特征映射到语义空间,寻找数据和任务目标之间的关系。

我们在训练一个模型的过程常常会使用两种风险。第一种风险是在训练集上产生的损失,我们称之为经验风险。第二种是在测试集上产生的风险,我们称之为期望风险。经验风险越小,说明我们的模型对训练数据的拟合能力越强,但是可能会产生过拟合的风险,所以需要在训练集上训练的过程中给损失函数加入正则化项,使模型的参数变化幅度变小。模型期望风险越小,说明我们的模型泛化性表现的越好,模型比较具有鲁棒性。我们使用的优化算法,都是在追求经验风险的最小化,而机器学习的目标是追求期望风险的最小化。

主要的监督学习方法包括生成方法和判别方法,所学到的模型分别称为生成模型和判别模型。判别方法通过直接学习判别函数 f 或者条件概率分布 P(YX)P(Y|X) 作为预测的模型,判别模型关心在给定输入数据下,预测数据的输出是什么,典型的判别模型包括回归模型、神经网络、支持向量机等等。生成模型从数据中学习联合概率分布 P(X,Y)P(X,Y),这可以通过似然概率 P(YX)P(Y|X) 和类概率 P(X)P(X) 的乘积来求取。监督学习简单来说,数据有标签,一般为回归或者分类等任务。非监督学习数据无标签,一般为聚类或者若干降维任务。强化学习,对序列数据决策学习,一般为与环境交互中学习。

回归分析

在现实生活中,我们往往需要分析若干变量之间的关系,例如房价和房子所处的地带、房价和房子的空间大小等等,这种分析不同变量之间存在关系的研究叫回归分析,刻画不同变量之间的关系的模型称之为回归模型。模型如果是线性的,则称之为线性回归模型;如果是非线性的,则称之为非线性模型。

例如,我们房价的预测项目,就是一个典型的线性回归模型可以解决的问题。如果我们在线性回归模型的输出加上一个 sigmoid 非线性激活函数,那么我们的模型就变成了非线性回归模型。因为加上 sigmoid 之后,我们的输出就变成了(0,1)之间的数字 y^\hat{y}y^\hat{y} 可以作为一个正类的概率值存在,相应的负类概率值就为 1y^1-\hat{y},所以,我们的模型可以很方便解决二分类的问题(例如 y=1 作为输入数据 x 属于正例,y=0 作为输入数据 x 属于负例)。

逻辑回归 | 对数几率回归

我们可以用 y^=11+e(wTx+b)\hat{y}=\frac{1}{1+\mathrm{e}^{-\left(w^{\mathrm{T}} x+b\right)}} 表示输入 x 对于正例的预测概率即 p(y=1x)p(y=1|x),负类概率值就为 1y^1-\hat{y}。接着我们介绍一个概念,正例的几率(odds) p1p\frac{p}{1-p} 反应了输入数据 x 作为正例的相对可能性。对 odds 取 log 就是 logit 函数,也就是我们将 odds 原本从 [0,+][0,+\infty ] 的取值空间映射为 logit的 [,+][-\infty, +\infty]

logit(p(y=1x))=log(p1p)=wTx+blogit(p(y=1|x)) = log(\frac{p}{1-p}) = w^Tx+b

可见,对输入数据 x 作为正例的可能性取对数就得到了线性回归模型。显然,输入数 x 为正例的概率越大,几率取值也就越大。于是,实际上是在用线性回归模型的输出结果去逼近(拟合)真实标记结果的对数几率,所以逻辑回归函数也被称为“对数几率回归( log-oddsregression)”。

那么,我们常见的交叉熵损失函数怎么来的?

交叉熵损失函数

接着上面的逻辑回归继续分析,我们在求取逻辑回归模型的参数时需要定义损失函数,典型的做法是最大化对数似然函数。模型参数的似然函数被定义为 L(θD)=P(Dθ)\mathcal{L}(\theta \mid \mathcal{D})=P(\mathcal{D} \mid \theta),其中 D={(xi,yi)}\mathcal{D}=\left\{\left(x_{i}, y_{i}\right)\right\} 表示所有观测数据(或训练数据),θ\theta 表示模型参数 (θ={w,b})(\theta=\{w, b\})。在最大化对数似然函数过程中,一般假设观测所得每一个样本数据是独立同分布(independent and identically distributed),于是可得:

L(θD)=P(Dθ)=i=1nP(yix,θ)=i=1n(hθ(xi))yi(1hθ(xi))1yi\mathcal{L}(\theta \mid \mathcal{D})=P(\mathcal{D} \mid \theta)=\prod_{i=1}^{n} P\left(y_{i} \mid x, \theta\right)=\prod_{i=1}^{n}\left(h_{\theta}\left(x_{i}\right)\right)^{y_{i}}\left(1-h_{\theta}\left(x_{i}\right)\right)^{1-y_{i}}

两端同时取对数,得:

1(θ)=log(L(θD))=i=1nyilog(hθ(xi))+(1yi)log(1hθ(xi))1(\theta)=\log (\mathcal{L}(\theta \mid \mathcal{D}))=\sum_{i=1}^{n} y_{i} \log \left(h_{\theta}\left(x_{i}\right)\right)+\left(1-y_{i}\right) \log \left(1-h_{\theta}\left(x_{i}\right)\right)

如此就推导出了参数 θ\theta 的最大似然估计。最大似然估计目的是计算似然函数的最大值,而分类过程是需要损失函数最小化。因此,在上式前加一个负号得到损失函数,这一损失函数就是对数似然的相反数( negative log-likelihood log,又叫交叉嫡):

T(θ)=1(θ)=log(L(θD))=(i=1nyilog(hθ(xi))+(1yi)log(1hθ(xi)))\begin{aligned} \mathcal{T}(\theta) &=-1(\theta)=-\log (\mathcal{L}(\theta \mid \mathcal{D})) \\ &=-\left(\sum_{i=1}^{n} y_{i} \log \left(h_{\theta}\left(x_{i}\right)\right)+\left(1-y_{i}\right) \log \left(1-h_{\theta}\left(x_{i}\right)\right)\right) \end{aligned}

迪拜歌剧院 位于阿联酋