机器学习,可以用来干什么呢?
监督学习
举个例子,可以用来预测房价,根据房子的面积来预测房价。
还可以解决分类问题
是良性肿瘤还是恶性肿瘤?
无监督学习
新闻的聚类算法 根据标题的关键字自动聚类,而不用人为去分类。
1.2 机器学习中的关键组件
首先介绍一些核心组件。无论什么类型的机器学习问题,都会遇到这些组件:
- 可以用来学习的数据(data);
- 如何转换数据的模型(model);
- 一个目标函数(objective function),用来量化模型的有效性;
- 调整模型参数以优化目标函数的算法(algorithm)。
1.2.1 数据
与传统机器学习方法相比,深度学习的一个主要优势是可以处理不同长度的数据。
不同长度的数据? 数据的维度不同
数据集的由小变大为现代深度学习的成功奠定基础。请注意,仅仅拥有海量的数据是不够的,我们还需要正确的数据。
1.2.3 目标函数
目标函数也叫做损失函数。
通常定义一个目标函数,并希望优化到它的最低点。也可以优化到最高点,只是翻转一下符号,这两个函数本质是相同的。
1.2.4 优化函数
当有了数据、模型和损失函数后,接下来就需要一种算法,它能够搜索出最佳参数,以最小化损失函数。
深度学习中,大多流行的优化算法通常是基于一种基本方法——梯度下降(gradient descent)
简而言之,在每个步骤中,梯度下降法都检查每个参数,对某个参数进行少量变动,查看训练集的损失会朝着哪个方向移动,然后,它就在可以减少损失的方向上对参数进行优化。
1.3 各种机器学习问题
1.3.1 监督学习
给定输入特征的情况下对标签进行预测。
对于每个“特征——标签”,都称为一个样本。
监督学习的学习过程一般可以分为三大步骤:
1、构建训练数据集
2、选择有监督的学习算法,将训练数据集作为输入,并输出一个“已完成学习的模型”
3、输入测试样本到模型中,模型输出作为预测的标签。
1.3.1.1 回归
给定一特征,当标签可以取任意数值时,我们称之为回归问题
如
- 房价预测
- 这个手术需要多少小时?
目标函数: 可以采用 平方误差损失函数的最小化
预测值和实际标签值的差异模型
1.3.1.2 分类
例如,手写数字可能有10类,标签被设置为数字0~9。
最简单的分类问题是只有两类,这被称之为二项分类(binomial classification)。
有了二项分类,当然也有多项分类,比如上述的手写数字识别。
分类问题的常见损失函数:交叉熵 (cross—entropy)
1.3.1.3 标记问题
学习预测不相互排斥的类别的问题称为 多标签分类
1.3.1.4 搜索
1.3.1.5 推荐系统
1.3.1.6 序列学习
模型拥有记忆功能。
每个视频片段可能由不同数量的帧组成。 通过前一帧的图像,我们可能对后一帧中发生的事情更有把握。
1.3.2 无监督学习
到目前为止,所有的例子都与监督学习有关,即需要向模型提供巨大数据集:每个样本包含特征和相应标签值。
相反,如果工作没有十分具体的目标,就需要“自发”地去学习了。 比如,老板可能会给我们一大堆数据,然后要求用它做一些数据科学研究,却对结果没有要求。
那么无监督学习可以回答什么样的问题呢?来看看下面的例子。
- 聚类(clustering)问题:没有标签的情况下,我们是否能给数据分类呢?比如,给定一组照片,我们能把它们分成风景照片、狗、婴儿、猫和山峰的照片吗?同样,给定一组用户的网页浏览记录,我们能否将具有相似行为的用户聚类呢?
- 主成分分析(principal component analysis)问题:我们能否找到少量的参数来准确地捕捉数据的线性相关属性?比如,一个球的运动轨迹可以用球的速度、直径和质量来描述。再比如,裁缝们已经开发出了一小部分参数,这些参数相当准确地描述了人体的形状,以适应衣服的需要。
- 因果关系(causality)和概率图模型(probabilistic graphical models)问题:我们能否描述观察到的许多数据的根本原因?例如,如果我们有关于房价、污染、犯罪、地理位置、教育和工资的人口统计数据,我们能否简单地根据经验数据发现它们之间的关系?
- 生成对抗性网络(generative adversarial networks):为我们提供一种合成数据的方法,甚至像图像和音频这样复杂的非结构化数据。潜在的统计机制是检查真实和虚假数据是否相同的测试,它是无监督学习的另一个重要而令人兴奋的领域。
1.3.3 与环境互动
1.3.4 强化学习
1.8 小结
- 机器学习研究计算机系统如何利用经验(通常是数据)来提高特定任务的性能。它结合了统计学、数据挖掘和优化的思想。通常,它是被用作实现人工智能解决方案的一种手段。
- 表示学习作为机器学习的一类,其研究的重点是如何自动找到合适的数据表示方式。深度学习是通过学习多层次的转换来进行的多层次的表示学习。
- 深度学习不仅取代了传统机器学习的浅层模型,而且取代了劳动密集型的特征工程。
- 最近在深度学习方面取得的许多进展,大都是由廉价传感器和互联网规模应用所产生的大量数据,以及(通过GPU)算力的突破来触发的。
- 整个系统优化是获得高性能的关键环节。有效的深度学习框架的开源使得这一点的设计和实现变得非常容易。