《从机器学习到深度学习》笔记(1)有监督学习

简介: 经过数十年的发展机器学习已先后衍生出百余种算法,几乎每种算法又有若干分支。这些算法根据动机和适用场景可分为三大类型:有监督学习、无监督学习、强化学习。

有监督学习(Supervised Learning)是指这样的一种场景:

有一组数量较多的历史样本集,其中每个样本有一组特征(features)和一个或几个标示其自身的类型或数值的标签(label);对历史样本学习得到模型后,可以用新样本的特征预测其对应的标签。

  1. 场景

在有监督学习中可以将每条数据看成是一条由特征到标签的映射,训练的目的是找出映射的规律。根据标签的类型可以将有监督学习再分为两个子类:

分类(Classification):标签是可数的离散类型,比如疾病诊断(疾病的类型有限)、图像文字识别(文字的总量有限)。
回归(Regression):标签是不可数的连续类型、有大小关系,比如房价预测(值无法枚举)。
图1-8是一个胸科诊断的分类案例。
1_8

图1-8 分类学习示例

图1-8中的年龄、血液PH值、是否吸烟就是模型的特征,诊断结果(肺气肿/正常)是学习的标签。

注意:图1-8中分类问题的特征变量也可以是连续类型(年龄、PH值)。

  1. 算法

有监督学习是机器学习中最易理解、发展最成熟的一个领域,其应用最广泛算法可以分成以下几类:

线性分析(Linear Analysis):来源于统计学,这其中众所周知的最小二乘法(Ordinary Least Squares,OLS)是优化目标最易理解的回归学习算法;通过对优化目标的调整还衍生了Ridge Regression、Lasso Regression等算法。此外还包括线性判别分析(Linear Discriminant Analysis)。
梯度下降法(Gradient Descent):用于寻找函数最小值或最大值问题。主要包括三个分支:批量梯度下降法BGD、随机梯度下降法SGD、小批量梯度下降法MBGD。
朴素贝叶斯(Naïve Bayes):基于概率论的分类方法。在贝叶斯理论中,该方法要求所有特征之间相互独立,但2004年Harry Zhang的论文《The Optimality of Naive Bayes》中阐述了特征之间有比较平和的关联时朴素贝叶斯也能达到很好效果。
决策树(Decision Tree):源自风险管理的辅助决策系统,是一个利用树状模型的决策支持工具,根据其建分支的策略不同派生了很多子算法,如ID3、C4.5、CART等。其优点是学习结果易于人类理解,缺点是当数据集变化时决策图变化较大。
支持向量机(Support Vector Machine,SVM):上世纪六十年代就被提出,直到1992由Bernhard E.Boser等人改进为可以应用于非线形问题后被广泛应用,在本世纪初期的很长时间里被认为是最好的分类器。
神经网络(Neutral Network,NN):由名称可知源于生物神经学,具有较长历史,可以处理复杂的非线形问题。传统神经网络的研究曾一度停滞,但随着计算机计算能力的提升和卷积网络结构的提出,由其发展而来的深度学习(Deep Learning)已经成为当前机器学习中最强大的工具。
集成学习(Ensemble Learning):是一种利用若干个基础分类器共同执行决策的方法。此方法近来被广泛应用,其中的随机森林(Random Forrest)正在逐步取代SVM的地位;此外还有以AdaBoost为代表的提升方法(Boosting Methods)。
所有的有监督学习算法都有一定的容错性,即不要求所有历史样本绝对正确、可以有部分标签被错误分配的样本。当然,样本中的错误越多越不容易训练出正确的模型。

  1. 回归与分类的关系

读者应该已经发现:虽然有监督学习的适用场景可以分成两类,但介绍算法时并没有区分哪些适用于回归,哪些适用于分类。其实大多数的算法都可以同时处理这两类问题。如图1-9,假设某算法可以处理回归问题,那么当然可以将其值域划分成可数的几段用以表征分类问题。
1_9

图1-9 回归模型可以解决分类问题

图1-9中,左图是训练的原始样本;用线性回归学习后可得到中图的回归线,回归线上的点就是之后的预测点;右图示意对回归结果设置阀值可以用来表达分类问题。从这个角度看,回归与分类的区别只不过是从不同角度分析学习结果而已。

另一方面,如果一个模型可以解决分类问题,则在分类类别之间作线性插值就是一种最简单的将分类模型转化为回归模型的方法。

因此,与很多教程书籍不同,本书不刻意区分它们,将有监督学习算法详细原理与实践的介绍统一在了第3章。此外考虑内容的连贯性将神经网路方面的内容放在深度学习章节一起讲解。

 

**从机器学习,到深度学习

从深度学习,到强化学习

从强化学习,到深度强化学习

从优化模型,到模型的迁移学习

一本书搞定!**

d01b2e3c1893d577

相关文章
|
1月前
|
机器学习/深度学习 数据采集 算法
深度学习和机器学习中针对非时间序列的回归任务,有哪些改进角度?
本文探讨了在深度学习和机器学习中针对非时间序列的回归任务的多种改进策略,包括数据预处理、数据集增强、特征选择、模型选择、模型正则化与泛化、优化器选择、学习率调整、超参数调优以及性能评估与模型解释,旨在提升模型的性能和可解释性。
50 1
深度学习和机器学习中针对非时间序列的回归任务,有哪些改进角度?
|
8天前
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
37 6
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
23天前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习:从线性回归到深度学习
【9月更文挑战第4天】在这篇文章中,我们将深入探讨机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过实际的代码示例,揭示这些模型背后的数学原理,以及如何在现实世界的问题中应用它们。无论你是初学者还是有经验的数据科学家,这篇文章都将为你提供新的视角和深入的理解。
|
1月前
|
机器学习/深度学习 人工智能 算法
探索AI的魔法:机器学习与深度学习的奥秘
【8月更文挑战第27天】在这篇文章中,我们将深入探讨人工智能的两个重要分支:机器学习和深度学习。我们将首先理解它们的基本概念,然后通过Python代码示例,展示如何应用这些技术解决实际问题。无论你是AI新手,还是有经验的开发者,这篇文章都将为你提供新的知识和启示。让我们一起开启这场AI的魔法之旅吧!
|
1月前
|
机器学习/深度学习 并行计算 PyTorch
PyTorch与CUDA:加速深度学习模型训练的最佳实践
【8月更文第27天】随着深度学习应用的广泛普及,高效利用GPU硬件成为提升模型训练速度的关键。PyTorch 是一个强大的深度学习框架,它支持动态计算图,易于使用且高度灵活。CUDA (Compute Unified Device Architecture) 则是 NVIDIA 开发的一种并行计算平台和编程模型,允许开发者直接访问 GPU 的并行计算能力。本文将详细介绍如何利用 PyTorch 与 CUDA 的集成来加速深度学习模型的训练过程,并提供具体的代码示例。
75 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】机器学习、深度学习、强化学习和迁移学习简介、相互对比、区别与联系。
机器学习、深度学习、强化学习和迁移学习都是人工智能领域的子领域,它们之间有一定的联系和区别。下面分别对这四个概念进行解析,并给出相互对比、区别与联系以及应用场景案例分析。
29 1
|
20天前
|
机器学习/深度学习 人工智能 自动驾驶
探索人工智能的未来:机器学习和深度学习的融合之旅
本文将带你进入人工智能的奇妙世界,一起探索机器学习和深度学习的融合如何引领我们走向更加智能化的未来。我们将从基础概念出发,逐步深入到技术细节和应用实例,揭示这一技术革新如何改变我们的生活和工作方式。通过深入浅出的解释和生动的例子,本文旨在为读者提供一次内容丰富、启发思考的技术之旅。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能的未来:从机器学习到深度学习
本文将探讨人工智能的发展历程,特别是机器学习和深度学习的兴起。我们将深入了解这些技术如何改变我们的生活,并讨论未来的发展趋势。
31 1
|
1月前
|
机器学习/深度学习 算法 数据挖掘
深度学习之量子计算加速的机器学习
深度学习的量子计算加速机器学习是一种新兴的跨领域研究方向,旨在利用量子计算的独特特性来加速和优化传统机器学习模型,特别是深度学习模型。量子计算具有在处理特定类型问题时指数级加速的潜力,结合深度学习可以带来性能和效率的显著提升
37 1
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习的奥秘:从线性回归到深度学习
【8月更文挑战第26天】本文将带领读者走进机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将探讨各种算法的原理、应用场景以及实现方法,并通过代码示例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的知识和技能。让我们一起揭开机器学习的神秘面纱,探索这个充满无限可能的领域吧!