Chapter 1——认识机器学习

在正式学习机器学习之前,我们需要先对以下几个问题进行回答,掌握一些关于机器学习的基础知识,让我们的学习事半功倍!
Q1:What Is Machine Learning?
机器学习是编程计算机的科学(和艺术),是一个让计算机无需编程就能学习的研究领域。系统用来学习的例子称为训练集。每个训练示例称为一个训练实例(或样本)。

Q2:Why Use Machine Learning?
回答这个问题,我们可以举一个典型的机器学习案例,即垃圾邮件的过滤。首先,你需考虑到垃圾邮件通常的形式,哪些单词或短语经常出现在垃圾邮件里,我们把这个叫做垃圾邮件的特征,然后,将检测垃圾邮件特征,编写一个检测算法,如果检测到很多这样的模式,那么你的程序将其标记为垃圾邮件,接着将进行程序测试,并重复以上两个步骤,直到它足够好,可以启动为止。但若数据量过大,检验规则冗杂且复杂,垃圾邮件特征也进场变化,整个程序将变得难以维护。
这时,基于机器学习的垃圾邮件过滤器的优势就显著突出了。相比之下,基于机器学习技术的垃圾邮件过滤器通过检测垃圾邮件示例与非垃圾示例中异常频繁的单词模式,自动学习哪些单词和短语是垃圾邮件的良好预测器。程序更短,更容易维护,而且很可能更准确。
机器学习有一个巨大的优势,即稳定且强大的自学习能力,他能跟随实时变化的特征,不需要人工干预即可确定是否为异常频繁,是否属于垃圾邮件特征,进而大大简化了人工更新代码的繁琐。

Q3:Examples of Applications 常见的应用实例
(1)分析生产线上的产品图像以自动分类
这就是所谓的图像分类,通常使用卷积神经网络(CNNs)来实现。
(2)在脑部扫描中发现肿瘤
这是一种图像分割,对图像中的每个像素进行分类(因为我们想要确定肿瘤的确切位置和形状),通常也使用卷积神经网络技术(CNNs)实现。
(3)自动分类新闻文章
这就是自然语言处理(NLP),更具体地说,文本分类可以使用循环神经网络(RNNs)、卷积神经网络(CNNs)或transformer模型来处理。
(4)自动标记论坛上冒犯性的评论(识别垃圾评论)
这是一种文本分类,使用相同的自然语言处理工具(NLP)。
(5)自动总结长文档
这是NLP的一个分支,叫做文本摘要,同样使用相同的工具。
(6)创建聊天机器人或个人助理
这涉及到许多NLP组件,包括自然语言理解(NLU)和问答模块。
(7)根据许多业绩指标进行预测
预测问题是一个典型的回归任务(即预测值),可以使用任何回归模型,如线性回归或多项式回归模型,回归支持向量机,回归随机森林,或人工神经网络。如果您想要考虑过去的性能指标序列,您可能想要使用循环神经网络(RNNs)、卷积神经网络(CNNs)或transformer模型来处理。
(8)让APP对语音指令做出反应(语音识别)
这就是语音识别,它需要处理音频样本:因为它们是长而复杂的序列,所以通常使用循环神经网络(RNNs)、卷积神经网络(CNNs)或transformer模型来处理它们。
(9)发现信用卡欺诈
这是典型的异常检测
(10)根据客户的购买情况进行细分,这样你就可以为每个细分市场设计不同的营销策略
这是集群分类
(11)以清晰而深刻的图表表示复杂的高维数据集
这就是数据可视化,通常涉及到降维技术
(12)根据客户过去的购买记录,推荐客户可能感兴趣的产品
这是一个典型的推荐系统。一种方法是将过去的购买行为(以及关于客户端的其他信息)输入人工神经网络,并让它输出最有可能的下一次购买行为。这个神经网络通常会对所有客户过去的购买序列进行训练。
(13)为游戏构建智能机器人
这通常是通过强化学习(RL)实现的,这是机器学习的一个分支,它训练代理在特定环境(如游戏)中选择能够随着时间而最大化其奖励的行动。在围棋比赛中击败世界冠军的著名程序AlphaGo就是用RL构建的。

Q4:Types of Machine Learning Systems
机器学习系统有很多不同的类型,所以根据以下标准将它们分类是有用的:
【分类标准】:
1、他们是否接受过人类监督(有监督、无监督、半监督和强化学习)的训练,以此将系统分为监督式学习、非监督式学习、半监督式学习、强化学习
2、他们是否能够在动态中增量学习(在线学习还是批量学习),以此将系统分为在线学习与批量学习
3、工作原理是简单地将新数据点与已知数据点进行比较,还是像科学家所做的那样,检测训练数据中的模式并建立一个预测模型(基于实例的学习与基于模型的学习),以此将系统分为实例学习与模型学习
以上标准均不是排他的,两两之间均可以任意进行组合,例如垃圾邮件过滤的训练案例,就是一个在线的、基于模型的、有监督的学习系统。

现对主要模型形式进行简单介绍:
A、Supervised Learning 监督式学习
在监督学习中,你提供给算法的训练集包括所需的解,称为标签。一个典型的监督学习任务就是分类,例如垃圾邮件识别,其二例如预测目标数字的值,实现一个预测器,这种任务称为回归。在监督学习中,你需要提供大量的标签和预测器。训练数据含大量的标签,用标签进行数据分类,将其分成训练集和测试集,标签用于数据分类,以供数据测试监督。
NOTE:在机器学习中,属性是一种数据类型,与特征有所不同,特征一般需根据上下文,通常来说,特征为属性加上其值,例如:mileage = 15,000,mileage为属性。但目前,许多人交替使用属性和特征这两个词。
【常见算法】:一些回归算法也可以用于分类,反之亦然。例如Logistic Regression算法是常用的回归算法,该算法需进行预测,该算法可以输出一个值,该值对应于属于给定类的概率。
举例:
(1)k-Nearest Neighbors 近邻算法
(2)Linear Regression 线性回归
(3)Logistic Regression 逻辑回归
(4)Support Vector Machines (SVMs) 支持向量机
(5)Decision Trees and Random Forests 决策树和随机森林
(6)Neural networks 神经网络
B、非监督性学习
在非监督性学习中,训练数据没有标签,不进行提前确定。
【常见算法】:
举例:
(1)Clusting 聚类分析:
· K-Means 算法
· DBSCAN算法 基于密度的分类算法
· Hierarchical Cluster Analysis (HCA)算法 层次聚类分析(HCA)
(2)Anomaly detection and novelty detection 异常检测和新奇检测
·One-class SVM 单类支持向量积
·Isolation Forest 孤立森林
(3)Visualization and dimensionality reduction 可视化和降维
·Principal Component Analysis (PCA) 主变量分析
·Kernel PCA 核心变量分析
·Locally Linear Embedding (LLE) 局部线性嵌入(LLE)
·t-Distributed Stochastic Neighbor Embedding (t-SNE) t-分布随机邻域嵌入
(4)Association rule learning 关联规则学习
·Apriori 先验算法;推测算法
·Eclat 深度优先算法
(5)可视化算法:可视化算法也是非监督性学习的一个重要的算法,您向它们提供大量复杂和未标记的数据,它们就会输出您的数据的2D或3D表示,通过可视化图形的方式进行表示。该算法尽可能的保持结构,尝试在输入空间中保持独立的集群,避免在可视化中发生重叠。
C、半监督式学习
常用于已标记的数量较少,未标记的数量较多,半监督式学习算法,就可以处理部分标记的数据。例如人脸识别进行分类,就是算法的无监督部分(聚类)。
大多数半监督学习算法是无监督算法和监督算法的结合。例如:
deep belief networks (DBNs):深度信念网络(dbn)是一种基于无监督构件的受限玻尔兹曼机(rbm)层层堆叠在一起的,然后利用无监督的方式对rbm进行顺序训练,然后利用监督学习技术对整个系统进行微调。
D、强化学习
强化学习是一个非常不同的东西,在学习系统中,在这种情况下被称为代理,可以观察环境,选择并执行行动,并获得回报(或以消极奖励形式的惩罚。然后通过自学习找到什么是最好的策略,即所谓的政策,以便随着时间的推移获得最多的回报。策略定义代理在给定情况下应该选择什么动作。
例如很多机器人采用强化学习算法来学习如何走路。AlphaGo程序也是强化学习的一个好例子。
E、批量学习
另一个用于分类机器学习系统的标准是,该系统能否从输入的数据流中逐步学习,因此分为了在线学习与批量学习。
在批量学习中,该系统无法循序渐进地学习:它必须使用所有可用的数据进行训练。会花费大量的时间和计算资源,所以它通常是脱机完成的。首先对系统进行培训,然后将其投入生产,无需再学习即可运行;它只是应用它所学到的东西。这就是所谓的批量学习,也称为离线学习。
若需要进行批量学习,则需要在完整系统数据集上从头训练系统的新版本,包括旧数据,然后停止旧系统,使用新系统代替它。
但基于机器学习自身的强大优势,批量学习系统也可以适应变化。只要根据需要经常更新数据和训练系统的新版本。
但由于批量学习需要实现自动的更新数据集,代替旧系统,因此会花费大量的资源。当数据量过大时,批量学习算法将不支持采用。因此推荐使用增量学习算法。
F、在线学习(增量学习)
在线学习中,可以通过按顺序提供数据实例来增量地训练系统,这些实例可以是单独的,也可以是小批量的小组。每个学习步骤都是快速和廉价的,所以系统可以实现根据新数据进行实时学习。
在线学习对于以连续流的方式接收数据(例如,股票价格)并需要快速或自主地适应变化的系统来说是非常棒的,适用于变化更新速度较快的系统
在线学习算法也可以用于训练大型数据集上的系统,而这些数据集无法在一台机器的主存中存储(这被称为非核心学习)。
【算法逻辑】:算法加载部分数据,在该数据上运行一个训练步骤,然后重复这个过程,直到在所有数据上运行为止,适用于数据量较大系统,采用分批循环进行数据处理。
【重要参数】:在线学习系统中,学习率是一个用来适应数据变化的参数,若设置了较高的学习率,则系统将快速适应更新的新数据,同时系统也会更倾向于快速忘记旧数据。反之,学习率越低,系统的惯性就越大;也就是说,它会学习得更慢,但它对新数据中的噪声或非代表性数据点序列(离群值)的敏感性也会更低。
【挑战】:在线学习的一大挑战是,如果向系统输入错误数据,系统的性能将逐渐下降。因此,为了减少这种风险,您需要密切监视系统,并在检测到性能下降时及时关闭学习(并可能恢复到以前的工作状态)。
G、基于实例的学习
另一种分类机器学习系统的方法对数据进行归纳,大多数机器学习任务都是关于做出预测。主要有两种方式:基于实例的学习和基于模型的学习。
系统熟记例子,然后通过使用相似性度量将它们与学习过的例子(或其中的一个子集)进行比较,归纳为新的案例,模型对数据实例自学习,进行特征提取,将相似度进行比较,然后归纳为新的案例。如果该算法是基于实例的,它只是熟记实例,并通过使用相似性度量将它们与已学习的实例进行比较,从而推广到新的实例
=>实例适应模型
H、基于模型的学习
一组例子中归纳的方法是建立这些例子的模型,然后使用该模型进行预测。如果算法是基于模型的,它会调整一些参数以使模型适合于训练集(即,对训练集本身做出良好的预测),然后希望它也能对新的案例做出良好的预测
=>模型适应实例
Q5:Main Challenges of Machine Learning
(1)Insufficient Quantity of Training Data
训练集数量不足,导致模型匀速那结果偏低
(2)Nonrepresentative Training Data
训练数据特征不明显,代表性不足。因此需要进行特征分析,选择代表性强的数据。
(3)Poor-Quality Data
低质量的数据 (在数据进行进入模型进行测试之前,需先进行数据过滤)
(4)Irrelevant Features
相关性低的数据 对数据进行相关性分析,选择相关性较好的数据进行过滤。
(5)Overfitting the Training Data
训练数据过拟合(过度概括):它意味着模型在训练数据上表现良好,但它不能很好地一般化。
当模型相对于训练数据的数量和噪声过于复杂时,就会发生过拟合。
【解决方案】如下:
(1)选择参数较少的模型,简化模型
(2)收集更多的训练数据
(3)减少训练数据中的噪声
对模型进行约束以使其简化并降低过拟合的风险称为正则化。
(6)Underfitting the Training Data
训练数据拟合不足(欠拟合):欠拟合是过拟合的对立面:当您的模型过于简单而无法了解数据的底层结构时,就会出现欠拟合。例如,生活满意度的线性模型容易出现欠拟合。
【解决方案】如下:
(1)选择功能更强大,参数更多的类别数据
(2)为学习算法提供更好的特征
(3)减少对模型的约束

你可能感兴趣的:(Python,机器学习,算法,机器学习)