# 机器学习

机器学习是人工智能的一个分支，目前（2015\~2016年）是非常实用且发展迅速。

## 监督学习的案例

监督学习是最常见的分类问题，因为目标往往是让计算机去学习我们已经创建好的分类系统。监督学习是训练神经网络和决策树的最常见技术。这两种技术（神经网络和决策树）高度依赖于事先确定的分类系统给出的信息。对于神经网络来说，分类系统用于判断网络的错误，然后调整网络适应它；对于决策树，分类系统用来判断哪些属性提供了最多的信息，如此一来可以用它解决分类系统的问题。我们将会看到这两者（神经网络和决策树）更多的细节，但在目前，它们用预先确定分类方法的形式来“监督”就足够了。

案例：垃圾邮件过滤系统、根据搜集到的地区房屋面积和售价的数据判断某套房产应该的出售定价（因为给出了房屋面积和房价的正确数据集，所以属于监督学习）

监督学习需要持续的数据，也就是会使用到趋势拟合

监督学习中有一类是"分类问题"（classific problem），处理的数据是离散的而不是连续的。例如根据"乳腺肿瘤数据"预测肿瘤的良性或者恶性（要么是良性0，要么是恶性1，只有这两种离散值），这也是一种监督学习，因为你给予机器一个标准的答案（良性或者恶性）。有多种输入数据（如年龄和肿瘤大小的关系和肿瘤良性恶性的区分，细胞的一致性，肿瘤的厚度等等），则属于多维数据。

> 对于有非常多维度的输入数据，需要使用一种称为"向量机"把数据映射到无限维度的空间

## 非监督学习

非监督学习看起来非常困难：目标是我们不告诉计算机怎么做，而是让它（计算机）自己去学习怎样做一些事情。

非监督学习一般有两种思路：

* 第一种思路是在指导Agent时不为其指定明确的分类，而是在成功时采用某种形式的激励制度。需要注意的是，这类训练通常会置于决策问题的框架里，因为它的目标不是产生一个分类系统，而是做出最大回报的决定。这种思路很好的概括了现实世界，Agent可以对那些正确的行为做出激励，并对其他的行为进行处罚。

由于没有必然的途径学习影响世界的那些行为的全部信息，因此Agent把它的行为建立在前一次奖惩的基础上。在某种意义上，所有的这些信息都是不必要的，因为通过学习激励函数，Agent不需要任何处理就可以清楚地知道要做什么，因为它（Agent）知道自己采取的每个动作确切的预期收益。对于防止为了计算每一种可能性而进行的大量计算，以及为此消耗的大量时间（即使所有世界状态的变迁概率都已知），这样的做法是非常有益的。另一方面，在尝试出错上，这也是一种非常耗费时间的学习。

不过这一类学习可能会非常强大，因为它假定没有事先分类的样本。在某些情况下，例如，我们的分类方法可能并非最佳选择。在这方面一个突出的例子是Backgammon（西洋双陆棋）游戏，有一系列计算机程序（例如neuro-gammon和TD-gammon）通过非监督学习自己一遍又一遍的玩这个游戏，变得比最强的人类棋手还要出色。

* 一种次要的非监督学习类型称之为聚合（原文为clustering，译者注）。这类学习类型的目标不是让效用函数最大化，而是找到训练数据中的近似点。聚合常常能发现那些与假设匹配的相当好的直观分类。例如，基于人口统计的聚合个体可能会在一个群体中形成一个富有的聚合，以及其他的贫穷的聚合。

非监督学习的案例：

* 基因试验中对基因的形状进行分组（并没有告知计算机分类的方法，而是让计算机自己学习判断来分组）
* 使用聚类算法来进行图像处理，计算机学习像素进行聚类（即判断这些像素可能是在一起的）来绘制出抽象的图像（类似线描、色块的图像），这对计算机图像识别非常有用。（甚至可以将二维的照片转换成三维的立体图像）
* 社交网络分析(Social network analysis)
* 市场划分(Market segmentation)
* 组织计算机集群（Orginize computing clusters）
* 天文学数据分析(Astronomical data analysis)

鸡尾酒会问题：在嘈杂环境中将需要听取声音分离出来，无监督学习算法可以将声音分离（如人声和背景音乐分离，多人声的分离）

## 强化学习（reinforcement learning）

回报函数 - 训练一只狗，狗会做更多你满意的事情，逐渐成为一只"好狗"以尽可能获得好的回报减少惩罚。

## 总结

非监督学习已经获得了巨大的成功，例如西洋双陆棋程序world-champion calibre以及自动驾驶技术。当有一种为行为赋予权值的简单方法时，它可以成为一项强大的技术。当有足够的数据构成聚类（尽管有时这非常困难），聚合可能会非常有用，特别是一个聚类中关于成员的附加数据由于这些附加的数据可以用于产生更多的结果。

如果有恰当的分类系统（例如疾病处理程序，它一般会在实施自动诊断之后直接决定设计），分类学习也会非常强大，或者当分类是一件非常简单的事情，此时我们非常乐于让计算机为我们进行识别。如果通过算法作出的决定需要输入别的地方，这时分类学习是必要的。否则，对于需要输入的一方来说，计算它的含义将会非常困难。

## 参考

* [机器学习该怎么入门？](https://www.zhihu.com/question/20691338)
* [斯坦福公开课：机器学习-介绍](https://d18ky98rnyall9.cloudfront.net/_974fa7509d583eabb592839f9716fe25_Lecture1.pdf?Expires=1479772800\&Signature=XeKTg7xJD4gEBk8sc6r8AnkYo~Pjs9xbXcaVtpvNm8uzCkKDQUk1VGyE6WVhRvWgvtWHBIa9wUoQJAdOQQijpgYudU8ygEDJiYSvg4L32s3qcDIVBzMUTWznFCN9W0rF9N9OKd6Xd-4qSDfFgzIO95dg7Ou3O9URuJlBJKMuwkQ_\&Key-Pair-Id=APKAJLTNE6QMUY6HBC5A)
* [机器学习（Part I）机器学习的种类](http://www.cnblogs.com/ysjxw/archive/2008/04/11/1149002.html)
* [机器学习PartII：监督学习和无监督学习](http://www.cnblogs.com/ysjxw/articles/1149004.html) - 本文关于监督学习和非监督学习的内容摘自此文


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://huataihuang.gitbook.io/cloud-atlas-draft/machine_learning.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
