1. 机器学习规划
做大数据已经有2年多的时间,Spark、HBase、ElasticSearch等大数据组件也在多个项目中进行了应用实践,总想着除了在广度上多接触各类大数据开源组件之外,还应该在深度上多做些研究,因为从早期 MR引擎到Spark引擎再到FLink引擎等,各种工具层次不穷,我不想只是做一个工程开发人员,我想做数据分析方面的专家,沿着大数据应用—>机器学习—>深度学习的路线发展。因此后面打算利用3个月的时间,进行机器学习的一个入门学习。主要的学习思路是:《统计学习方法》—>《机器学习》(西瓜书) —> 《机器学习实践》与TensorFlow的使用,我会在博客上更新所学到的知识点以及学习心得,也算是一个自我鞭策过程。
2. 统计学习方法概论
统计学习是关于计算机基于数据构建概率统计模型,并运用模型对数据进行预测与分析的学科。
统计学习由监督学习、非监督学习、半监督学习和强化学习等组成。
统计学习方法包括模型的假设空间、模型选择的准则以及模型学习的算法,称其为统计学习方法的三要素,简称为模型、策略和算法。
输入空间、输出空间:输入和输出所有可能取值的集合,可以是有限元素的集合,也可以是整个欧式空间。
特征空间:特征向量用来表征每个输入的具体实例,所有特征向量存在的空间成为特征空间。
假设空间:模型属于由输入空间到输出空间的映射的集合,这个集合就是假设空间。
回归问题:输入变量与输出变量均为连续变量的预测问题。
分类问题:输出变量为有限个离散变量的预测问题。
标注问题:输入变量与输出变量均为变量序列的预测问题。
统计学习的目标在于从假设空间中选取最优的模型。
损失函数/代价函数:表征预测值f(X)与真实值Y的误差。损失函数是f(X)与Y的非负实值函数,记作L(Y, f(x)),常用的有0-1损失函数、平方损失函数、绝对损失函数和对数损失函数。
经验风险:学习的目标就是选择期望风险最小的模型,期望风险与联合分布有关,不能直径计算,实际中我们往往使用经验风险来代替期望风险。经验风险最小化(ERM)认为,经验风险最小的模型是最优的模型
$$
R_{emp}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))
$$极大似然估计就是经验风险最小化的一个例子。当模型是条件概率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然函数估计。
结构风险:当样本容量很小使,经验风险最小化策略选取的最优模型,由于过拟合问题,测试误差往往较大。结构化风险最小化是为了防止过拟合而提出的策略。结构风险最小化等价于正则化。
$$
R_{srm}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i)) +\lambda J(f)
$$
其中$J(f)$为模型复杂度,模型$f$越复杂,复杂度$J(f)$就越大,反之亦然。复杂度表示了对模型的惩罚。$\lambda>=0$是系数,用以权衡经验风险和模型复杂度。结构化风险小的模型往往对训练数据和未知的测试数据都有较好的预测。
- 贝叶斯估计中最大后验概率估计就是结构化风险最小化的例子。当模型是条件概率分布,损失函数是对数损失函数,模型复杂度由模型的先验概率表示时,结构风险最小化就等价于最大后验概估计。
- 监督学习问题就变成了经验风险或结构风险函数的最优化问题。这时经验/结构风险函数就是最优化的目标函数。
- 过拟合:如果一味追求提高对训练数据的预测能力,所选模型的复杂度则往往会比真模型更高,这种现象称为过拟合。
- 正则化是模型选择的典型方法,正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大。
- 在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型。
- 交叉验证是另一种常用的模型选择方法,其基本想法是重复地使用数据,把给定的数据进行切分,将切分的数据集组合为训练集和测试集,在此基础上反复进行训练、测试以及模型选择。
- 生成模型由数据学习联合概率分布P(X,Y),然后求出条件概率分布P(Y|X),作为预测的模型,它表示了给定输入X产生输出Y的生成关系。
- 判别模型由数据直接学习决策函数f(X)或条件概率分布P(Y|X)作为预测的模型。
- 回归问题的学习等价于函数拟合:选择一条函数曲线使其很好地拟合已知数据且很好地预测未知数据。
3. 章后习题解答
3.1 习题1解答
统计学习的三要素为模型、策略和算法。
伯努利模型,又名两点分布或0-1分布,是一个离散型概率分布,记其为1的概率为$\theta$,则为0的概率为$1-\theta$,
定义Y为伯努利的实验结果,则P(Y=1)=$\theta$,P(Y=0)=$1-\theta$,D为样本集合。伯努利模型的似然函数则为:
$$
P(D|\theta)=P(y_1,y_2,…y_n|\theta)
$$
由于可以将每个样本看做独立同分布,样本集D中n个样本有k个为1,则似然函数又可转化为:
$$
P(D|\theta)=P(y_1,y_2,…y_n|\theta)=\prod_{i=1}^nP(y_i|\theta)=\theta^k(1-\theta)^{n-k}
$$
其中,n为样本总数,k为样本中Y=1的个数。
根据最大极大似然估计,假设空间中最优的模型为使似然函数$P(D|\theta)$最大的模型,也就转换为了求最大值的问题。对$P(D|\theta)$求导,并使导数为0,可得:$\theta=\frac{k}{n}$,由上面可知$\theta$伯努利模型中为1的概率,因此根据极大似然估计,伯努利模型中结果为1的概率$\frac{k}{n}$
根据贝叶斯公式:
$$
P(H|D)=\frac{P(D|H) P(H)}{P(D)}
$$
其中,P(H)为先验概率,P(D|H)为似然概率,P(H|D)为后验概率。
我们可以得出伯努利模型下的贝叶斯公式:
$$
P(\theta|D)=P(\theta|y_1,y_2,…y_n)=\frac{P(y_1,y_2,…y_n|\theta)P(\theta)}{P(y_1,y_2,…y_n)}=\frac{\prod_{i=1}^nP(y_i|\theta)P(\theta)}{P(y_1,y_2,…y_n)}
$$
其中$P(\theta)$为先验概率,我们假设$\theta$服从$\beta$分布,则$P(\theta)=\frac{\theta^{a-1} (1-\theta^{b-1}}{常数}$
根据贝叶斯选择假设空间最优模型,需要使后验概率$P(\theta|y_1,y_2,…y_n)$最大,最大后验概率就是在已知观察结果的前提下,选取使$\theta$出现概率最大的模型。由此可知需要使$\prod_{i=1}^nP(y_i|\theta)P(\theta)$最大:
$$
\prod_{i=1}^nP(y_i|\theta)P(\theta)=\theta^k(1-\theta)^{n-k}P(\theta)=\theta^k(1-\theta)^{n-k}\theta^{a-1} (1-\theta)^{b-1}
$$
对上式求导可得:$\theta=\frac{k+a-1)}{n+a+b-2}$,因此根据贝叶斯估计,伯努利模型中结果为1的概率为$\frac{k+a-1)}{n+a+b-2}$
3.2 习题2解答
当模型是条件概率分布,损失函数为对数损失函数时,损失函数为:
$$
L(Y,P(Y|X))=-\log P(Y|X)
$$
经验风险公式就变成了:
$$
R_{emp}(f)=-\frac{1}{N}\log\prod_{i=1}^NP(y_i|x_i)
$$
这时经验风险最小化就等价于$\prod_{i=1}^NP(y_i|x_i)$最大值,也就是让所选择的模型,保证测试集中各样本的条件概率$P(y_i|x_i)$之积最大,也就是保证各样本出现的概率最大,这正符合极大似然估计的概念。因此,也就证明了模型是条件概率分布,当损失函数是对数损失函数时,经验风险最小化等价于极大似然估计。