Hands-on ml2 - 第一章笔记

2 篇文章 0 订阅

什么是机器学习?

1、Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed.
—Arthur Samuel, 1959
机器学习就是研究怎么让计算机在没有被明确编程的情况下拥有学习能力的领域
2、A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E.
—Tom Mitchell, 1997
机器学习就是对于给定的任务T,一个计算机程序能够通过经验E的增多,逐步提高对任务完成度进行测量的指标P

为什么使用机器学习?

有些问题使用传统编程方法需要频繁的更新代码或维护非常复杂的规则,如垃圾邮件过滤
有些问题使用传统编程方法很难实现,或者根本无法实现,比如语音识别
对于经常变化的环境,机器学习能够根据新数据调整它的行为模式
机器学习更擅长处理复杂问题和大规模数据
机器学习能帮助人类学习,发现人类自己很难发现的解决方案,比如数据挖掘

数据挖掘(data mining)

应用机器学习挖掘大量数据有助于发现一些一开始不明显的模式

机器学习的类型

有监督/无监督学习(Supervised/Unsupervised Learning)

监督学习(Supervised Learning):指提供给机器学习算法的训练数据包括了想要的结果,即标签(labels)
无监督学习(Unsupervised Learning):指提供给机器学习算法的训练数据不带有标签,包括聚类算法(Clustering)、异常检测与新颖性检测(Anomaly detection and novelty detection)、可视化和降维(Visualization and dimensionality reduction)、关联规则学习(Association rule learning)等
半监督学习(Semisupervised Learning):指提供给机器学习算法的训练数据包括大量不带标签的数据,以及少量带有标签的数据(因为给数据添加标签是一件很费时费力的工作)
强化学习(Reinforcement Learning):在这种情况下,被称为代理(agency)的学习系统需要观察环境,选择并采取行动,以获得回报(reward)或惩罚(penalty)。它必须通过自学了解什么是最好的策略(policy),以便随着时间的推移获得最高的回报。策略决定了在一个给定的情况下,学习系统需要选择的行动。

批处理和在线学习(Batch and Online Learning)

批处理学习:又叫离线学习(Offline Learning),必须使用全部的可用数据进行训练,如果增加了新的数据,那么批处理学习系统需要用新的完整数据集(包括新增数据和之前的数据)重新训练。缺点是如果数据量过大,会导致训练的成本非常高,甚至是不可能。
在线学习:又叫增量学习(Incremental Learning),可以将数据分成一个个小组(mini-batches),依次使用这些小组进行训练,直到全部小组的数据都被训练过。优点是可以处理大批量数据,尤其是在资源有限的情况下。缺点是对异常数据和极端值比较敏感,需要监控输入并对异常数据做出反应

基于实例的学习与基于模型的学习(Instance-Based Versus Model-Based Learning)

基于实例的学习:该学习系统通过背诵训练样例,然后通过将新案例与“记住的样例(或子集)”进行相似性度量,进而预测新案例的结果
基于模型的学习:该学习系统根据训练样例创建一个模型,然后使用这个模型来预测新案例的结果,通常会定义适应性函数(fitness function)或效用函数(utility function)来评估该模型表现得多好,或者定义开销函数(cost function)来评估该模型表现得多差。典型步骤为:研究数据 -> 选择模型 -> 使用训练数据进行训练 -> 使用训练好的模型对新数据进行预测

机器学习面临的主要挑战

“坏数据”

1、训练数据的规模不足
2、训练数据不具有代表性,包括采样噪声(sampling noise)、采样偏差(sampling bias)等
3、劣质的训练数据
4、训练数据选择的特征与研究目的不相关

“坏算法”

过拟合:在训练集上表现很好,但是在新案例上表现不佳
欠拟合:由于模型太简单导致无法学习到数据的底层结构,因此在训练集和新案例上表现都不好

测试和验证

1、为了在正式使用之前了解学习模型的表现,我们可以把训练数据分成两部分:训练集(training set)和测试集(test set),通常训练集和测试集的规模之比为 8 : 2。学习模型在新案例上的错误率叫做推广错误。(generalization error)或样本外错误(out-of-sample error),我们可以用学习模型在测试集上的错误率估计它在实际使用时的错误率。如果学习模型在训练集上错误率很低,但是推广错误却很高,说明该学习模型是过拟合。
2、超参数优化和模型选择(Hyperparameter Tuning and Model Selection):为了使用正规化方法(regularization )避免过拟合问题,我们可以选择100个不同的超参数来训练100个学习系统,然后选择推广错误最低的。此时需要将训练集再次分成2部分(不然会导致在测试集表现良好的学习系统在实际应用中表现不好):训练集和验证集(validation set),这种方法叫做保持验证(holdout validation)。我们现在训练集中训练学习模型,然后选择多个超参数在验证集中查看效果,选择错误率最低的学习系统,最后再用这个学习系统在测试集的推广错误,进而评估它在实际应用中的表现。这种方法的缺点是训练时间很长。
3、数据不匹配(data mismatch):有时候,即使我们有大量训练数据,但是这些数据仍然不能完美的代表实际情况,即训练集和验证集、测试集的数据不匹配。此时最重要的规则是:验证集和测试集必须尽可能地与实际情况相符。
4、如果学习系统在实际使用中表现不好,我们没法知道这是因为过拟合还是因为数据不匹配。为了解决这个问题,我们可以保留一部分训练集数据(不用这些数据训练)作为训练开发集(train-dev set),如果该学习系统在训练集和训练开发集,但是在验证集表现不好,则问题很可能来自于数据不匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值