机器学习纵览(the machine learning landscape)

Hands on Machine Learning with Scikit-learn and TensorFlow 读书笔记

不愧是深度学习四大名著之一,个人认为非常适合入门,没有太多数学推导,问题由浅入深,主要聚焦于机器学习方法的使用。所以在这里写一本读书笔记。

Chapter 1 The Machine Learning Landscape

机器学习的定义没什么好说的,就是使计算机在没有特定程序的情况下拥有学习的能力。

机器学习系统的类型(主要从三个角度进行分类):
1.是否需要人工监督进行训练;
2.是否能递增式学习;
3.是基于比较新数据与旧数据的相似度来学习还是基于数据的分布模式来学习。
这些类型不是互相排斥的,他们可以结合使用,比如一个垃圾邮件过滤器,它是在线递增学习也是监督学习。

  1. 根据训练过程中的监督类型可以分为四大类:监督学习(supervised learning),非监督学习(unsupervised learning),半监督学习(semisupervised learning)和强化学习(reinforcement learning)。
    对于监督学习来说,喂给算法的训练数据里应该包括每条数据的标签即该条数据的期望结果。以垃圾邮件过滤系统为例,喂给这个系统的训练数据应该包括了它的分类(即该邮件是否为垃圾邮件)。
    非监督学习,跟监督学习相反,训练数据里没有标签。很多降维算法都是非监督算法。
    半监督学习,训练数据有一部分是有标签的,大多数时候只有一小部分有标签,大部分没有标签。大部分的半监督学习是非监督学习和监督学习的结合。
    强化学习非常不同,他能通过观察环境选择行为,并且将获得的反馈(正向反馈or负向反馈)返回给系统,在这个循环过程中,他自己能学习到最合适的策略(能获得最好的正向反馈的策略)。

  2. 根据是否是递增式的从一串输入数据中不断学习来分类,可以分为批量学习(batch learning)和在线学习(online learning)两类。
    批量学习必须一次性用所有数据来训练,比较费时也比较占用资源。
    在线学习可以把数据分成多个小部分来训练,这些小部分数据通常我们叫mini-batches;一个非常重要的超参数是学习率(learning rate),他决定了学习系统应该以怎样的速度去适应新数据,如果学习率很高,那么学习系统将很快的去适应新数据并很快忘记旧数据,相反如果学习率很低,那么学习系统会有很大惯性,它的学习速度会比较慢,但是它有个好处是它对于新数据中的噪音也不会那么敏感。

  3. 根据机器学习系统如何泛化来分类,可分为基于实例的学习(instance-based learning)和基于模型的学习(model-based learning)两类。
    基于实例的学习指的是系统把所有的实例记住,通过计算新的例子与所记住的旧的例子的相似性来泛化预测新的例子的标签。
    基于模型的学习是通过一系列的例子来构建一个模型,然后用这个模型对新数据做预测。

机器学习的主要的挑战是两点:糟糕的算法,或者糟糕的数据。

  1. 从数据角度来看主要有以下几点:
    训练数据不够充足。

    训练数据不具有代表性。
    这是一个决定性的因素,但他实际上比听起来还要难;当样本数量很小的时候很容易出现采样偏差,但即使是样本数很大的情况,如果采样方法有缺陷依然会造成采样偏差(sampling bias)。

    数据质量差。
    如果某个实例明显是异常值,最好是扔掉这条数据或者修改其中的错误,如果一些实例在某些特征上有丢失,你必须选择要么忽略这一整个属性、忽略这一条实例或者填补丢失值,要么同时训练包含该特征的模型和不包含该特征的模型。

    不相关的特征。
    在机器学习项目中,一组合适的特征是非常重要的,得到这样一组好的特征的过程叫做特征工程(feature engineering)。
    它包括以下三步:特征选择(feature selection),选择最有用的那些特征来进行训练;特征提取(feature extraction),结合已存在的特征来生成新的更有用的特征(降维就是一种类似的算法);通过收集新的数据来创建新特征。

  2. 从算法角度来看就是两点:
    训练过拟合:即模型在训练数据上表现非常好,但其泛化能力不够好,不能准确预测新数据。
    过拟合常常发生于模型相对于其数据量来说过于复杂,同时训练数据存在噪音;可以通过简化模型(减少特征数或约束模型)、收集更多数据、减少数据噪音(修复数据中的错误或移除异常值)等方式来解决。

    训练欠拟合:训练欠拟合与过拟合相反,是指因为模型过于简单而不能学习到数据的潜在结构。
    可以通过选择更复杂的模型、通过特征工程构造更好的特征来训练模型、减少对模型的约束(降低正则化指数)等方式来解决。

你可能感兴趣的:(机器学习,机器学习,machine,learning,Python,AI)