# 机器学习的基本概念

> 原文： [https://machinelearningmastery.com/basic-concepts-in-machine-learning/](https://machinelearningmastery.com/basic-concepts-in-machine-learning/)

机器学习的基本概念是什么？

我发现，发现和掌握机器学习基本概念的最佳方法是查看机器学习教科书的介绍章节，并观看在线课程中第一个模型的视频。

[Pedro Domingos](http://homes.cs.washington.edu/~pedrod/) 是华盛顿大学机器学习的讲师和教授，也是一本新书的作者，题为“[主算法：寻求终极学习机器将如何重塑我们的世界](http://www.amazon.com/dp/0465065708?tag=inspiredalgor-20) ]“。

多明戈斯有一个免费的在线机器学习课程，标题为“[机器学习](https://www.coursera.org/course/machlearning)”。每个模块[的视频都可以随时在 Coursera 上预览](https://class.coursera.org/machlearning-001/lecture/preview)。

在这篇文章中，您将发现从 Domingos 机器学习课程第一周总结的机器学习的基本概念。

![Basic Concepts in Machine Learning](img/670d407a69e83eb4fe033797e12c40b6.jpg)

机器学习的基本概念
[Travis Wise](https://www.flickr.com/photos/photographingtravis/16253152591) 的照片，保留一些权利。

## 机器学习

讲座的前半部分是关于机器学习的一般主题。

### 什么是机器学习？

为什么我们需要关心机器学习？

> 机器学习的突破将值十个微软。

- [比尔盖茨](https://en.wikipedia.org/wiki/Bill_Gates)，微软前主席

机器学习让计算机自己编程。如果编程是自动化的，那么机器学习就是使自动化过程自动化。

编写软件是瓶颈，我们没有足够好的开发人员。让数据代替人工作。机器学习是使编程可扩展的方法。

*   **传统编程**：数据和程序在计算机上运行以产生输出。
*   **机器学习**：在计算机上运行数据和输出以创建程序。该程序可用于传统编程。

机器学习就像农业或园艺。种子是算法，营养是数据，gardner 是你和植物是程序。

![Traditional Programming vs Machine Learning](img/bce94c92e94b64c4665c217ccb520e8c.jpg)

传统编程与机器学习

### 机器学习的应用

机器学习的示例应用：

*   **网络搜索**：根据您最有可能点击的排名页面。
*   **计算**生物学：基于过去的实验在计算机中合理设计药物。
*   **财务**：决定谁发送信用卡提供给谁。评估信贷提供的风险。如何决定在哪里投资。
*   **电子商务**：预测客户流失。交易是否是欺诈性的。
*   **太空探索**：太空探测器和射电天文学。
*   **机器人技术**：如何处理新环境中的不确定性。自主性。自驾车。
*   **信息提取**：通过网络向数据库提问。
*   **社交网络**：关系和偏好的数据。机器学习从数据中提取价值。
*   **调试**：用于计算机科学问题，如调试。劳动密集型过程。可以建议 bug 可能在哪里。

您感兴趣的领域是什么？如何在该领域使用机器学习？

### 机器学习的关键要素

每年都有数以万计的机器学习算法和数百种新算法。

每个机器学习算法都有三个组件：

*   **表示**：如何表示知识。示例包括决策树，规则集，实例，图形模型，神经网络，支持向量机，模型集合等。
*   **评估**：评估候选项目（假设）的方式。示例包括准确度，预测和回忆，平方误差，似然性，后验概率，成本，边际，熵 k-L 发散等。
*   **优化**：生成候选程序的方式称为搜索过程。例如组合优化，凸优化，约束优化。

所有机器学习算法都是这三个组件的组合。用于理解所有算法的框架。

### 学习类型

机器学习有四种类型：

*   **监督学习** :(也称为归纳学习）训练数据包括所需的输出。这不是垃圾邮件，学习是受监督的。
*   **无监督学习**：训练数据不包括所需的输出。示例是群集。很难说什么是好学习，什么不是。
*   **半监督学习**：训练数据包括一些所需的输出。
*   **强化学习**：从一系列动作中获得奖励。 AI 类型喜欢它，它是最雄心勃勃的学习类型。

监督学习是大多数机器学习算法使用最成熟，研究最多和学习类型最多的学习方法。在没有监督的情况下学习，比监督学习容易得多。

归纳学习是我们给出数据形式的函数（`x`）和函数输出（ _f（x）_）的例子。归纳学习的目标是学习新数据的功能（`x`）。

*   **分类**：当学习的函数是离散的。
*   **回归**：正在学习的函数是连续的。
*   **概率估计**：当函数的输出是概率时。

### 机器学习在实践中

机器学习算法只是在实践中作为数据分析师或数据科学家使用机器学习的一小部分。在实践中，该过程通常如下所示：

1.  开始循环
    1.  **了解领域，先验知识和目标**。与领域专家交流。目标通常很不明确。你经常可以尝试更多的东西，然后你可以实现。
    2.  **数据集成，选择，清理和预处理**。这通常是最耗时的部分。拥有高质量的数据非常重要。您拥有的数据越多，数据就越脏就越糟糕。垃圾进垃圾出。
    3.  **学习模型**。有趣的部分。这部分非常成熟。这些工具很通用。
    4.  **解释结果**。有时，只要它产生结果，模型的工作方式无关紧要。其他域要求该模型是可理解的。您将受到人类专家的挑战。
    5.  **整合和部署已发现的知识**。在实验室中取得成功的大多数项目都没有在实践中使用。得到一些东西很难。
2.  结束循环

它不是一次性过程，而是一个循环。您需要运行循环，直到获得可在实践中使用的结果。此外，数据可能会发生变化，需要新的循环。

## 归纳学习

讲座的第二部分是关于归纳学习的主题。这是监督学习背后的一般理论。

### 什么是归纳学习？

从归纳学习的角度来看，我们给出了输入样本（x）和输出样本（f（x）），问题是估计函数（f）。具体而言，问题是从样本和映射推广以用于估计未来新样本的输出。

在实践中，估计函数几乎总是太难，所以我们正在寻找函数的非常好的近似值。

一些实际的归纳实例是：

*   **信用风险评估**。
    *   x 是客户的属性。
    *   f（x）是否获得信贷批准。
*   **疾病诊断**。
    *   x 是患者的特性。
    *   f（x）是他们患的疾病。
*   **人脸识别**。
    *   x 是人脸的位图。
    *   f（x）是为面部指定名称。
*   **自动转向**。
    *   x 是来自汽车前方摄像头的位图图像。
    *   f（x）是方向盘应转动的程度。

### 你什么时候应该使用归纳学习？

有一些问题，归纳学习不是一个好主意。重要的是何时使用以及何时不使用有监督的机器学习。

归纳学习可能是个好主意的 4 个问题：

*   **没有人类专家**的问题。如果人们不知道答案他们就无法编写程序来解决它。这些都是真正发现的领域。
*   **人类可以执行任务，但没有人可以描述如何做**。人类可以做一些计算机无法做或做得不好的事情。例如骑自行车或开车。
*   **所需功能频繁变化的问题**。人类可以描述它，他们可以写一个程序来做，但问题经常变化。这不符合成本效益。例子包括股票市场。
*   **每个用户需要自定义功能的问题**。为每个用户编写自定义程序并不符合成本效益。示例是 Netflix 或 Amazon 上的电影或书籍推荐。

### 归纳学习的本质

我们可以编写一个完全适用于我们所拥有的数据的程序。此功能将最大程度地过拟合。但我们不知道它对新数据的效果如何，它可能会非常糟糕，因为我们可能再也看不到相同的例子了。

数据还不够。你可以预测任何你喜欢的东西。而这对于这个问题没有任何意义。

在实践中，我们并不朴素。存在潜在的问题，我们感兴趣的是函数的精确近似。在输入状态的数量中存在双指数数量的可能分类器。找到一个好的函数近似是非常困难的。

我们可以尝试一些假设。这是解决方案可能采取的形式或表示形式。我们不知道哪个最适合我们的问题。我们必须使用实验来发现可以解决问题的方法。

关于归纳学习的两个观点：

*   **学习是消除不确定性**。数据消除了一些不确定性。选择一类假设，我们正在消除更多的不确定性。
*   **学习是猜测一个好的和小的假设类**。它需要猜测。我们不知道我们必须使用试错过程的解决方案。如果您确切知道域名，则无需学习。但我们不是在黑暗中猜测。

你可能错了。

*   我们先前的知识可能是错的。
*   我们对假设类的猜测可能是错误的。

在实践中，我们从一个小的假设类开始，慢慢增长假设类，直到我们得到一个好的结果。

### 学习归纳学习的框架

机器学习中使用的术语：

*   **训练示例**：来自 x 的样本，包括目标函数的输出
*   **目标函数**：从 x 到 f（x）的映射函数 f
*   **假设**：f，候选函数的近似值。
*   **Concept** ：布尔目标函数，1/0 类值的正例和反例。
*   **分类器**：学习程序输出可用于分类的分类器。
*   **学习器**：创建分类器的过程。
*   **假设空间**：算法可以创建的 f 的可能近似值集。
*   **版本空间**：与观察数据一致的假设空间的子集。

机器学习的关键问题：

*   什么是好的假设空间？
*   什么算法适用于那个空间？
*   如何优化看不见的数据的准确率？
*   我们如何对模型有信心？
*   是否存在计算难以解决的学习问题？
*   我们如何将应用程序问题表述为机器学习问题？

选择假设空间有三个问题：

*   **大小**：可供选择的假设数量
*   **随机性**：随机或确定性
*   **参数**：参数的数量和类型

您可以通过 3 个属性选择算法：

*   **搜索程序**
    *   **直接计算**：无需搜索，只需计算所需内容。
    *   **Local** ：搜索假设空间以改进假设。
    *   **建设性**：逐个构建假设。
*   **时间**
    *   **渴望**：学习在前面进行。大多数算法都很渴望。
    *   **懒惰**：在需要时进行学习
*   **在线与批量**
    *   **在线**：根据观察到的每种模式进行学习。
    *   **批量**：学习一组模式。大多数算法都是批量

## 摘要

在这篇文章中，您发现了机器学习的基本概念。

总之，这些是：

*   什么是机器学习？
*   机器学习的应用
*   机器学习的关键要素
*   学习类型
*   机器学习在实践中
*   什么是归纳学习？
*   你什么时候应该使用归纳学习？
*   归纳学习的本质
*   学习归纳学习的框架

这些是大多数机器学习课程的介绍和任何关于该主题的优秀教科书的开篇章节中涵盖的基本概念。

虽然以学者为目标，但作为一名从业者，在这些概念中站稳脚跟以便更好地理解机器学习算法在一般意义上的行为方式是有用的。