第一篇 机器学习概述

主要内容

1 什么是机器学习

2 机器学习分类

3 机器学习的挑战

4 测试与验证

开始

1 什么是机器学习

来自百度百科的定义:

机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

引申问题(为啥需要机器学习):

例如:使用传统编程手段处理垃圾邮件,一般通过正则表达式匹配常用垃圾邮件的关键字,然后区分是否是垃圾邮件,

问题是,程序中的匹配规则相对是固定的,而垃圾邮件不断的发展,程序中的 匹配规则不能及时更新(也做不到实时更新,只能适应一段时期的规则);而机器学习不同之处在于可以通过对邮件数据的学习,根据我们建立的模型增量的方式进行自动的学习,自动适应新的垃圾邮件的特点,从而自动标识出垃圾邮件。(问题是我们建立的模式是什么,机器学习如何进行实施等问题,这里需要进一步的知识点..., 如果一下子就说的明白,机器学习你也用不着学了!)

2 机器学习分类

①按是否在人类的监督下训练:

监督学习、无监督学习、半监督学习和强化学习;

②按是否可以动态地增量学习:

在线学习和批量学习

③按不同方式

基于实例的学习(将新的数据点和已知的数据点进行匹配)

基于模型的学习(像科学家一样对数据进行模式检测,建立一个预测模型)

多种模式可以相互结合完成最后的任务,邮件过滤器可以是使用深度神经网络模型对邮件进行过滤,

实际上是一个在线的、基于模型的和监督学习的学习系统。

2.1 按是否有标记分类

按训练是接收监督的数量机器学习分为4中类型:

1️⃣监督学习:

分类任务是一个典型的监督式学习任务,例如邮件过滤器通过大量的电子邮件示例以所属类别进行训练,然后学习如何对新邮件进行分类;

还有通过预测变量,对一组给定的特征来预测一个目标数值,例如汽车的价格,这类任务称为回归任务,要训练这样的系统需要大量的汽车示例,包括它们的预测变量和标签。

备注:

在机器学习中,属性是一种数据类型,例如“里程”;而特征取决于上下文,包含多种含义,特征意味着一个属性加上它的值,例如“里程=20000”;

常见的监督式学习算法有

K-近邻算法、线性回归、逻辑回归、支持向量机(SVM)、决策树和随机森林和神经网络

2️⃣无监督学习

无监督学习数据都是未经标记的

例如拥有大量自己博客的数据,我们通过一个聚类算法来检测相似访客的分组,这个算法不太可能告诉每个访客属于哪个分组,算法只能自己寻找访客相互之间关联,无须人的帮助。

可视化算法在提供了大量的复杂的、未标记的数据,得到2D或3D的呈现。

例如:t-SNE算法的可视化示例,突显了各种语义簇


降维任务是在不丢失太多信息的前提下简化数据,其中一个方法是将多个相关特征合并为一个,例如汽车的里程与车龄有很大的关系,使用降维方法会将它们合并起来形成一个汽车磨损的特征,这个过程叫特征提取;

异常检测是无监督学习的一个重要任务,例如检测异常信用卡交易防止欺诈。

无监督学习中还有关联规则学习,目的是挖掘大量数据,发现属性之间的关系,例如超市中买烤肉酱和薯片的人也倾向于购买牛排,这样就将几样商品排放得近一些。


常见的算法有

聚类算法、k-Means、分层聚类分析(HCA)、最大期望算法、可视化和降维、主成分分析(PCA)、核主成分分析(Kernel PCA)、局部线性嵌入、t-分布随机近邻嵌入(t-SNE)、关联规则学习、Apriori、Eclat

3️⃣半监督学习

半监督学习可以出来部分标记和大量未标记的训练数据;

例如:google的相册自动识别人物A出现哪几张照片中,然后告诉这个是谁,系统会自动给每一张照片中这个命名,对应图片搜素非常重要。

4️⃣强化学习

强化学习系统(在其语境中称为智能体)能够观察环境,做出选择,执行操作,并获得回报( reward),或者是以负面回报的形式获得惩罚。所以它必须自行学习什么是最好的策略( policy),从而随着时间推移获得最大的回报。

2.2 批量学习和在线学习

从传入的数据流角度进行增量学习;

1️⃣批量学习

在批量学习中,系统无法进行增量学习——即必须使用所有可用
数据进行训练。这需要大量时间和计算资源,所以通常情形下,都是离线完成的。离线学习就是先训练系统,然后将其投入生产环境,这时学习过程停止,它只是将其所学到的应用出来。

2️⃣在线学习

在在线学习中, 你可以循序渐进地给系统提供训练数据, 逐步积累学习成果。

注意:

在线学习系统的一个重要参数是其适应不断变化的数据的速度,

这就是所谓的学习率。

在线学习面临的一个重大挑战是,如果给系统输入不良数据,系

统的性能将会逐渐下降。我们需要监控输入数据, 并对异常数据做出响应( 例如, 使用异常检测算法)

2.3 基于实例与基于模型的学习

泛化的主要方法有两种: 基于实例的学习和基于模型的学习

名词解释:

在机器学习方法中,泛化能力通俗来讲就是指学习到的模型对未知数据的预测能力。在实际情况中,我们通常通过测试误差来评价学习方法的泛化能力。

1️⃣基于实例的学习

例如:如果以这种方式创建一个垃圾邮件过滤器, 那它可能只会标记那些跟已被用户标记

为垃圾邮件完全相同的邮件——这虽然不是最差的解决方案, 但肯定也不是最好的。

除了完全相同的, 你还可以通过编程让系统标记与已知的垃圾邮件非常相似的邮件。

基于实例的学习: 系统先完全记住学习示例, 然后通过某种相似度度量方式将其泛化到新的实例

2️⃣基于模型的学习

从一组示例集中实现泛化的另一种方法是构建这些示例的模型,然后使用该模型进行预测。 这就是基于模型的学习。

3 机器学习的挑战

一个成功的机器学习项目, 关键部分是提取出一组好的用来训练的特征集, 这个过程叫作特征工程, 包括以下几点。
 特征选择: 从现有特征中选择最有用的特征进行训练。
 特征提取: 将现有特征进行整合, 产生更有用的特征( 正如前文提到的, 降维算法可以提供帮助) 。
 通过收集新数据创造新特征

3.1 训练数据过度拟合

假设你正在国外旅游, 被出租车司机狠宰了一刀, 你很可能会说, 那个国家的所有出租车司机都是强盗。 过度概括是我们人类常做的事情, 不幸的是, 如果我们不小心, 机器很可能也会陷入同样的陷阱。 在机器学习中, 这称为过度拟合, 也就是指模型在训练数据上表现良好, 但是泛化时却不尽如人意。


当模型相对于训练数据的数量和噪度都过于复杂时,会发生过度拟合。可能的解决方案如下。

·简化模型:可以选择较少参数的模型(例如,选择线性模型而不是高阶多项式模型),可以减少训练数据中的属性数量,又或者是约束模型。

·收集更多的训练数据。

·减少训练数据中的噪声( 例如, 修复数据错误和消除异常值) 。

3.2 欠拟合

现实情况远比模型复杂得多,所以即便是对于用来训练的示例,该模型产生的预测都

一定是不准确的。

解决这个问题的主要方式有:

·选择一个带有更多参数、更强大的模型

·给学习算法提供更好的特征集(特征工程)

·减少模型中的约束(比如,减少正则化超参数)

4 测试与验证

将数据分割成两部分:训练集和测试集。顾名思义,你可以用训练集的数据来训练模型,然后用测试集的数据来测试模型。应对新场景的误差率称为泛化误差(或者样例外误差),通过测试集来评估你的模型,就可以得到对这个误差的评估。这个估值可以告诉你,你的模型在处理新场景时的能力如何。
如果训练误差很低(模型对于训练集来说很少出错),但是泛化误差很高,那说明你的模型对于训练数据存在过度拟合。

你可能感兴趣的:(第一篇 机器学习概述)