zoukankan      html  css  js  c++  java
  • 机器学习基石第三讲:types of learning

    博客已经迁移至Marcovaldo’s blog (http://marcovaldong.github.io/)

    刚刚完毕机器学习基石的第三讲。这一讲主要介绍了机器学习的分类。对何种问题应该使用何种机器学习方法。将笔记整理在以下。

    Learning with Different Output Space

    前面讲的信用卡发放问题是一个是非题,也就是说最后的输出仅仅有两种。是一个二元分类(binary classification)。下图中给出了很多其它的二元分类问题的样例。对于这类问题我们要做的就是找到一个hypothesis(超平面或超曲面)能够非常好的将下图中的圈圈和叉叉分开。当然。后面我们介绍很多其它的解决二元分类问题的算法。

    3_1

    以下要介绍的是多元分类(multiclass classification)。

    这里给出了一个实际的样例:贩卖机怎样将不同面额的硬币分开(美元中的硬币有四种),这就是一个多元分类问题。多元分类问题是非常多应用。特别是在计算机视觉等方面,下图介绍了当中的几种:

    3_2

    以下介绍回归分析(regrssion)。

    我们如今让机器做这样一件事,输入进去病人的状况,输出病人恢复健康须要的时间。

    这里的输出应该是在一个正实数域。对于这种输出空间是一个连续的区间的问题。我们称之为回归分析问题(输出空间有上下限的话称为bound regression)。比方依据一家公司以往的数据来分析其股票价格就是一个典型的回归分析问题。回归分析在统计学中是一类重要的问题。其构成了机器学习的又一数学基础。

    如今我们考虑这样一个问题:给定一个句子,我们让机器来自己主动标出句子中每一个单词的词性(名词/动词/代词/副词等)。能够想象这个问题的输出空间存在着某种逻辑在里边,但又不能用穷举法(一个是输出空间太大,还有一个是某些组合方式不存在:如一个句子中不可能全是动词等)。所以我们希望让机器去学习到当中的一些结构。能够正确的处理句子。

    相似这种输出空间巨大且暗含某种结构的,我们称之为结构化学习(structured learning)。

    3_3

    这里简介了多元分类、回归分析、结构化学习。是为了告诉大家机器学习不仅仅是为了解决是非题,还有很多其它的复杂形式。只是这里最核心的是二元分类和回归分析。

    最后是小測试:

    3_4

    Learning with Different Data Label

    相似上面讲的硬币分类的问题我们称之为监督式学习(supervised learning),所谓监督是指我们不仅向机器提供了每一枚硬币的重量、尺寸等,我们还提供每一枚硬币的分类结果(就是该硬币实际的面额)。

    相相应地,假设我们仅仅给出硬币的重量、尺寸等信息而没有给出硬币的实际分类结果,我们让机器自己想办法将硬币分成k类。这种问题我们称之为聚类(clustering)。以下给出了一个对照图,左側图中的数据点已经被标记了不同的颜色,表示机器已经知道每一个数据点所属的类别;而右側图中的数据点还没有标记类别,须要机器从数据中学到这些数据点应该分几类,以及每一个数据点应该分到哪一类(这个问题更复杂)。

    3_5

    下图给出了几种非监督式学习:聚类(clustering)、密度分析(density estimation)、异常检測(outlier detection)。想要了解很多其它的话能够翻看我之前的博客

    3_6

    前面说了监督式学习和非监督式学习,以下介绍半监督式学习(semi-supervised learning)。

    在半监督式学习中,我们给机器的数据集中仅仅有非常少一部分数据是被标记的,我们希望机器从这种数据集中学到一些东西。

    比方,社交站点上人脸识别。我们仅仅标出非常少一部分照片的类别(姓名等)。然后让机器帮助我们去完毕标记工作。半监督式学习用在人工标记数据的成本非常高的问题上。

    3_7

    视频中还介绍了增强式学习(reinforcement learning)。大意是说当机器犯错时会作出相应的惩处项以修正hypothesis。当机器分类正确时给予一定的奖励(就好比训练宠物狗时。当狗作出正确的反应时给吃的,错了不给),相关知识会在以后的博客中具体介绍。

    最后是小測试:

    3_8

    Learning with Different Protocol

    在垃圾邮件分类系统中,我们通常先搜集大量的邮件。比方说2000封,并标注好每一封邮件的类别,然后将整个训练数据集输入给机器,机器从中学习到分类的技巧。我们称这种学习方式为批量(batch)学习。

    相应的。我们将数据一条一条的输入给机器。机器推断其类别。依据其结果的正确性相应修正hypothesis,这种学习方式成为在线(online)学习。

    PLA算法、增强式学习通常应用于在线学习。

    近期又发展处了能够主动“问问题”的机器学习算法,比方有一个手写识别的机器,其主动写出一个数字(比方8),人工去标记它(标记为8)。然后机器就知道了“哦,相似这种手写数字可能是哪个(可能是8)”。相似这种学习方式,我们称之为主动(active)学习。

    主动学习使机器能够有技巧的主动“问问题”。通经常使用于标记数据成本昂贵的问题。

    下图给了三者的一个形象比喻。这个课程主要介绍批量学习。

    3_9

    然后本小节測试:

    3_10

    Learning with Different Input Space

    这一小节讲的是特征project(feature engineering):将原始的数据转化为真正能够作为机器学习的training set的过程。特征project实际上用到了一些待处理问题所在领域的一些相关问题,比較复杂,在后面的课程还会介绍。实际上这一小节要告诉大家的是,我们要对最原始的数据进行特征提取等处理后,再输入给机器,去做机器学习。

    3_11

    本节小測试:

    3_12

    最后一张图是对这一讲内容的概括。

    3_13

  • 相关阅读:
    【转】 java中Class对象详解和类名.class, class.forName(), getClass()区别
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    107. Binary Tree Level Order Traversal II
    109. Convert Sorted List to Binary Search Tree
    108. Convert Sorted Array to Binary Search Tree
    110. Balanced Binary Tree
    STL容器迭代器失效问题讨论
    113. Path Sum II
    112. Path Sum
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/7338982.html
Copyright © 2011-2022 走看看