书籍:
《统计学习方法》李航
网站:
总结自林轩田老师的机器学习基石课程的ppt:
机器学习的框架:
输入x,输出y,我们的目的是要找到从x映射到y的映射关系f,或者说模式pattern,这个f是未知的,称为目标函数target function。
但是显然这个映射关系是不能精确找到的,我们要做的是通过machine learning去学习得到一个假设hypothesis,这个假设g就是f的近似。
就像人从经验中学习一样,机器从训练集training examples中学习;那么这个机器怎么学习?我们需要发明一些算法leanring algorithm,
让机器按照特定的算法A去学习得到近似f的g。
同时我们需要一个假设集hypothesis set,这个假设集H规定了我们要找的的假设g的一些性质,学习算法A要做的就是从H中找到最近似f的假设g。
比如在线性回归中H是平面上所有直线的集合(这样就规定了假设g是线性的y=a+bx),A要找到其中最好的那条线(就是找参数a和b),叫做回归线。其实就是去估计回归线的slope和intercept。
线性回归是统计学的内容,不过可以把线性回归放到机器学习的框架中去讲。
感知器例子:
刚才说假设集H规定了假设g的形式,比如线性模型。不过一般要找的映射f是非线性的,所以要用非线性模型。一种简单的非线性模型是感知器perceptron。
感知器的数学描述是(图片来自林轩田老师的ppt):
用语言描述就是假设g由权重w刻画characterize,当输入按权重求和后大于阀值threshold时就输出正1,小于阀值就输出负1。这显然是一个二分类器。
举一个二维平面上的例子,比如横坐标是西瓜的色泽,纵坐标是西瓜的拍声(拍西瓜听到的声音),我们要根据西瓜的这两个特征去判断是好瓜还是坏瓜,
好瓜用圆圈在图上表示,坏瓜用叉号表示,我们的目标是用学习算法A从假设集H中找到能够比较好的区分好瓜和坏瓜的假设g。
现在我们的假设集是所有$h(x)=sign(w_0+w_1 x_1+w_2 x_2)$的集合,即若$w_1 x_1+w_2 x_2>-w_0$就是好瓜,若$w_1 x_1+w_2 x_2<-w_0$就是坏瓜,在平面图上,好瓜和坏瓜被直线
$x_2=(-frac{w_1}{w_2})x_1+(frac{w_0}{w_2})$
划分。所以这个感知器又叫线性二元分类器linenar binary classifiers。
我们现在的目的是通过学习算法从训练集中学习找到最好的参数$w_0,w_1,w_2$能够最好的区分好瓜和坏瓜。
PLA算法perceptron learning algorithm:
下面说明一种学习算法。先从随机一个假设$g_{0}$出发,不断迭代修正correct错误,若迭代收敛就得到假设g。我们先假设这个迭代可以收敛好了,也是就是说假设这个数据集是线性可分linear separable的。
比如下图有一个圆圈在直线下面,这是错误的,我们就需要把直线旋转一下让那个圆圈在直线上面。
算法的描述如下图:
也就是说我们怎么修正矢量$w$可以使得$w^{T}x_n$和$y_{n}$同号呢?我们找到一个错误点不满足$w^{T}x_n=y_{n}$,即若$y_{n}>0$,矢量$x_{n}$和$w$应该成锐角,但是现在矢量$x_{n}$和$w$成钝角,如上图上半图所示,$w_{k+1}=w_{k}+y_{n}x_{n}$可以让矢量$w_{k+1}$更靠近$x_{n}$。
学习问题的分类type of learning:
上面讲了一种二元分类的例子,还有很多不同的学习问题。可以根据输出空间来区分,比如输出是一个只有两种可能的离散值,那么就是二元分类问题;输出是有K种可能的离散值,那么就是multiclass classification;输出是连续值,那么就是回归问题regression;等等。
也可以根据有没输出outcome分为supervised和unsupervised问题。
还有reinforcement learning : learn with "partial/implicit information" ,不懂。
还有好多各种学习问题。