zoukankan      html  css  js  c++  java
  • 机器学习入门基础

    书籍:

    Deep Learning

    《统计学习方法》李航

    网站:

    林轩田老师主页

    总结自林轩田老师的机器学习基石课程的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" ,不懂。

    还有好多各种学习问题。

  • 相关阅读:
    学习篇之函数就是对象
    @Controller和@RestController的区别
    maven 阿里云 国内镜像 中央仓库
    IntelliJ IDEA使用教程
    解决“无法从套接字读取更多数据”
    at java.util.Arrays.copyOfRange(Arrays.java:3209)导致的java.lang.OutOfMemoryError: Java heap space 错误的解决办法
    maven中引入ojdbc包
    Oralce增加表空间
    Web服务框架发展与REST服务开发
    Oralce解锁表
  • 原文地址:https://www.cnblogs.com/zhanchao/p/9006940.html
Copyright © 2011-2022 走看看