冰川冰融化的瞬间 背景主题图源自阿根廷-莫雷诺冰川
由浅入深,循序渐进。从骨架到填肉。
监督学习
从数学的角度上,机器学习的目标是从原始数据中提取特征,学习到一个映射函数 f 将上述特征映射到语义空间,寻找数据和任务目标之间的关系。
我们在训练一个模型的过程常常会使用两种风险。第一种风险是在训练集上产生的损失,我们称之为经验风险。第二种是在测试集上产生的风险,我们称之为期望风险。经验风险越小,说明我们的模型对训练数据的拟合能力越强,但是可能会产生过拟合的风险,所以需要在训练集上训练的过程中给损失函数加入正则化项,使模型的参数变化幅度变小。模型期望风险越小,说明我们的模型泛化性表现的越好,模型比较具有鲁棒性。我们使用的优化算法,都是在追求经验风险的最小化,而机器学习的目标是追求期望风险的最小化。
主要的监督学习方法包括生成方法和判别方法,所学到的模型分别称为生成模型和判别模型。判别方法通过直接学习判别函数 f 或者条件概率分布 P(Y∣X) 作为预测的模型,判别模型关心在给定输入数据下,预测数据的输出是什么,典型的判别模型包括回归模型、神经网络、支持向量机等等。生成模型从数据中学习联合概率分布 P(X,Y),这可以通过似然概率 P(Y∣X) 和类概率 P(X) 的乘积来求取。监督学习简单来说,数据有标签,一般为回归或者分类等任务。非监督学习数据无标签,一般为聚类或者若干降维任务。强化学习,对序列数据决策学习,一般为与环境交互中学习。
回归分析
在现实生活中,我们往往需要分析若干变量之间的关系,例如房价和房子所处的地带、房价和房子的空间大小等等,这种分析不同变量之间存在关系的研究叫回归分析,刻画不同变量之间的关系的模型称之为回归模型。模型如果是线性的,则称之为线性回归模型;如果是非线性的,则称之为非线性模型。
例如,我们房价的预测项目,就是一个典型的线性回归模型可以解决的问题。如果我们在线性回归模型的输出加上一个 sigmoid 非线性激活函数,那么我们的模型就变成了非线性回归模型。因为加上 sigmoid 之后,我们的输出就变成了(0,1)之间的数字 y^,y^ 可以作为一个正类的概率值存在,相应的负类概率值就为 1−y^,所以,我们的模型可以很方便解决二分类的问题(例如 y=1 作为输入数据 x 属于正例,y=0 作为输入数据 x 属于负例)。
逻辑回归 | 对数几率回归
我们可以用 y^=1+e−(wTx+b)1 表示输入 x 对于正例的预测概率即 p(y=1∣x),负类概率值就为 1−y^。接着我们介绍一个概念,正例的几率(odds) 1−pp 反应了输入数据 x 作为正例的相对可能性。对 odds 取 log 就是 logit 函数,也就是我们将 odds 原本从 [0,+∞] 的取值空间映射为 logit的 [−∞,+∞]。
logit(p(y=1∣x))=log(1−pp)=wTx+b
可见,对输入数据 x 作为正例的可能性取对数就得到了线性回归模型。显然,输入数 x 为正例的概率越大,几率取值也就越大。于是,实际上是在用线性回归模型的输出结果去逼近(拟合)真实标记结果的对数几率,所以逻辑回归函数也被称为“对数几率回归( log-oddsregression)”。
那么,我们常见的交叉熵损失函数怎么来的?
交叉熵损失函数
接着上面的逻辑回归继续分析,我们在求取逻辑回归模型的参数时需要定义损失函数,典型的做法是最大化对数似然函数。模型参数的似然函数被定义为 L(θ∣D)=P(D∣θ),其中 D={(xi,yi)} 表示所有观测数据(或训练数据),θ 表示模型参数 (θ={w,b})。在最大化对数似然函数过程中,一般假设观测所得每一个样本数据是独立同分布(independent and identically distributed),于是可得:
L(θ∣D)=P(D∣θ)=i=1∏nP(yi∣x,θ)=i=1∏n(hθ(xi))yi(1−hθ(xi))1−yi
两端同时取对数,得:
1(θ)=log(L(θ∣D))=i=1∑nyilog(hθ(xi))+(1−yi)log(1−hθ(xi))
如此就推导出了参数 θ 的最大似然估计。最大似然估计目的是计算似然函数的最大值,而分类过程是需要损失函数最小化。因此,在上式前加一个负号得到损失函数,这一损失函数就是对数似然的相反数( negative log-likelihood log,又叫交叉嫡):
T(θ)=−1(θ)=−log(L(θ∣D))=−(i=1∑nyilog(hθ(xi))+(1−yi)log(1−hθ(xi)))