机器学习基础

监督学习和无监督学习

简单来说:是否有监督(supervised),就看输入数据是否有标签(label)。输入数据有标签,则为有监督学习,没标签则为无监督学习。
首先看什么是学习(learning)?一个成语就可概括:举一反三。此处以高考为例,高考的题目在上考场前我们未必做过,但在高中三年我们做过很多很多题目,懂解题方法,因此考场上面对陌生问题也可以算出答案。机器学习的思路也类似:我们能不能利用一些训练数据(已经做过的题),使机器能够利用它们(解题方法)分析未知数据(高考的题目)?最简单也最普遍的一类机器学习算法就是分类(classification)。对于分类,输入的训练数据有特征(feature),有标签(label)。所谓的学习,其本质就是找到特征和标签间的关系(mapping)。这样当有特征而无标签的未知数据输入时,我们就可以通过已有的关系得到未知数据标签。在上述的分类过程中,如果所有训练数据都有标签,则为有监督学习(supervised learning)。如果数据没有标签,显然就是无监督学习(unsupervised learning)了,也即聚类(clustering)。目前分类算法的效果还是不错的,但相对来讲,聚类算法就有些惨不忍睹了。确实,无监督学习本身的特点使其难以得到如分类一样近乎完美的结果。这也正如我们在高中做题,答案(标签)是非常重要的,假设两个完全相同的人进入高中,一个正常学习,另一人做的所有题目都没有答案,那么想必第一个人高考会发挥更好,第二个人会发疯。
这时各位可能要问,既然分类如此之好,聚类如此之不靠谱,那为何我们还可以容忍聚类的存在?因为在实际应用中,标签的获取常常需要极大的人工工作量,有时甚至非常困难。例如在自然语言处理(NLP)中,Penn Chinese Treebank在2年里只完成了4000句话的标签……
这时有人可能会想,难道有监督学习和无监督学习就是非黑即白的关系吗?有没有灰呢?Good idea。灰是存在的。二者的中间带就是半监督学习(semi-supervised learning)。对于半监督学习,其训练数据的一部分是有标签的,另一部分没有标签,而没标签数据的数量常常极大于有标签数据数量(这也是符合现实情况的)。隐藏在半监督学习下的基本规律在于:数据的分布必然不是完全随机的,通过一些有标签数据的局部特征,以及更多没标签数据的整体分布,就可以得到可以接受甚至是非常好的分类结果。(此处大量忽略细节)因此,learning家族的整体构造是这样的:
有监督学习(分类,回归)

半监督学习(分类,回归),transductive learning(分类,回归)

半监督聚类(有标签数据的标签不是确定的,类似于:肯定不是xxx,很可能是yyy)

无监督学习(聚类)

损失函数(Loss Function)

一般来说,我们在进行机器学习任务时,使用的每一个算法都有一个目标函数,算法便是对这个目标函数进行优化,特别是在分类或者回归任务中,便是使用损失函数(Loss Function)作为其目标函数,又称为代价函数(Cost Function)
损失函数是用来评价模型的预测值\(\hat{Y}=f(X)\)与真实值\(Y\)的不一致程度,它是一个非负实值函数。通常使用\(L(Y,f(x))\)来表示,损失函数越小,模型的性能就越好。
设总共有N个样本的样本集为\((X, Y)=(x_i, y_i)\)\(y_i, i\in[1, N]\)为样本\(i\)的真实值,\(\hat{y_i}=f(x_i), i\in[1, N]\)为样本\(i\)的预测值,\(f\)为分类或者回归函数。那么总的损失函数为: \[ L = \sum_{i=i}^{N}\mathscr{l}(y_i, \hat{y_i}) \] 常见的损失函数\(\mathscr{l}(y_i, \hat{y_i})\)
0-1损失函数(Zero-one Loss) \[ \mathscr{l}(y_i, \hat{y_i})=\begin{cases} 1 & y_i\neq\hat{y_i} \\ 0 & y_i=\hat{y_i} \end{cases} \] 0-1损失函数是一种较为简单的损失函数,如果预测值与目标值不相等则为1,否则为0。
感知损失(Perceptual Losses) \[ \mathscr{l}(y_i, \hat{y_i})=\begin{cases} 1 & |y_i-\hat{y_i}|>t \\ 0 & |y_i-\hat{y_i}\leqslant{t} \end{cases} \] 平方损失(Square Loss) \[ \mathscr{l}(y_i, \hat{y_i})=(y_i-\hat{y_i})^2\qquad{y_i, y\in{R}} \] 绝对值损失(Absolute Loss) \[ \mathscr{l}(y_i, \hat{y_i})=|y_i-\hat{y_i}|\qquad{y_i, \hat{y_i}\in{R}} \] 指数误差(Exponential Loss) \[ \mathscr{l}(y_i, \hat{y_i})=exp(-y_i·\hat{y_i})\qquad{y_i\in \{-1, 1\}} \] reference
https://www.zhihu.com/question/23194489/answer/25028661 http://blog.csdn.net/bitcarmanlee/article/details/51154481 http://blog.csdn.net/bitcarmanlee/article/details/51165444 http://blog.csdn.net/heyongluoyao8/article/details/52462400 https://www.zhihu.com/question/24259872/answer/82598145