监督学习和无监督学习
简单来说:是否有监督(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