-
2022-01-29 10:40:22
什么是机器学习?我们能读到机器学习的权威定义但实际上,机器学习是由正在解决的问题定义的。因此,理解机器学习的最好方法是看一些示例问题。
机器学习问题10例
机器学习问题很多。它们构成了你每天在网络或桌面上使用的软件的核心或困难部分。想想Twitter上的“你想要遵循”的建议,以及苹果Siri的演讲理解。
下面是10个机器学习的例子,它们都是关于机器学习的。
1.垃圾邮件检测
在收件箱中给出电子邮件,识别那些垃圾邮件和非垃圾邮件。有了这个问题的模型,程序可以将非垃圾邮件放在收件箱中,并将垃圾邮件移动到垃圾邮件文件夹中。我们都应该熟悉这个例子。
2.信用卡欺诈检测
根据一个月内客户的信用卡交易情况,确定客户进行的交易和未进行的交易。具有此决定模式的程序可以退还那些欺诈性交易。
更多相关内容 -
机器学习编译入门课程学习笔记第一讲 机器学习编译概述
2022-06-21 08:20:001. 课程简介 2. 本节课内容大纲 3. 机器学习编译的定义 4. 机器学习编译的目标 5. 为什么要学习机器学习编译? 6. 机器学习编译的核心要素 6.1. 备注:抽象和实现 7. 总结1. 课程简介
该门课程是由
XGBoost
的作者陈天奇进行授课的。 从2022年6月18日正式开始(新鲜出炉的),每周讲授一节课程。具体内容可参考链接:中文官网或者英文官网。如果有相关问题也可以在讨论区进行留言:中文讨论区、英文讨论区。课程目录如下所示:
- 机器学习编译概述
- 张量算子函数
- 张量函数与整网模型的整合
- 整合自定义计算库
- 自动化程序优化
- 与机器学习框架的整合
- 自定义硬件后端
- 自动张量化
- 计算图优化:算子融合和内存优化
- 部署模型到服务环境
- 部署模型到边缘设备
客观来说,本课程并不适合机器学习或者深度学习的初学者。但强烈推荐同学们先学习第一课:机器学习编译概述。然后再决定是否进行更加深入的学习。
本节课的slides链接如下:https://mlc.ai/summer22-zh/slides/1-Introduction.pdf;notes链接如下:https://mlc.ai/zh/chapter_introduction/。
2. 本节课内容大纲
- 什么是机器学习编译?
- 机器学习编译的目标是什么?
- 为什么要学习机器学习编译?
- 机器学习编译的核心要素是什么?
3. 机器学习编译的定义
机器学习编译 (machine learning compilation, MLC) 是指,将机器学习算法从
开发形态
,通过变换和优化算法,使其变成部署形态
。简单来说,就是将训练好的机器学习模型应用落地,部署在特定的系统环境之中的过程。开发形态是指我们在开发机器学习模型时使用的形态。典型的开发形式包括用 PyTorch、TensorFlow 或 JAX(主要指的是深度学习学习模型)等通用框架编写的模型描述,以及与之相关的权重。
部署形态是指执行机器学习应用程序所需的形态。它通常涉及机器学习模型的每个步骤的支撑代码、管理资源(例如内存)的控制器,以及与应用程序开发环境的接口(例如用于Android 应用程序的Java API)。
不同的AI应用对应的部署环境是互不相同的。以下图为例:电商平台不可或缺的推荐系统算法通常是部署在云平台(服务器)上;自动驾驶算法通常是部署在车辆上的专用计算设备;手机的各种APP以语音转文字的输入法为例,最终是部署在手机上的计算设备的。
在进行机器学习模型部署时,不仅要考虑硬件系统环境,与此同时也需要考虑软件环境(如操作系统环境、机器学习平台环境等)。4. 机器学习编译的目标
机器学习编译的直接目标包括两点:最小化依赖和利用硬件加速。机器学习编译的最终目的是实现性能(时间复杂度、空间复杂度)优化。
最小化依赖可以认为是集成(Integration)的一部分,提取出与应用相关的库(删除与应用无关的库),从而减少应用的大小,达到节省空间的目的。
利用硬件加速指的是利用硬件本身的特性进行加速。可以通过构建调用原生加速库的部署代码或生成利用原生指令(如 TensorCore)的代码来做到这一点。
5. 为什么要学习机器学习编译?
- 构建机器学习部署的解决方案。
- 对现有机器学习框架形成更加深刻的理解。
6. 机器学习编译的核心要素
-
张量
(Tensor) 是执行中最重要的元素。张量是表示神经网络模型执行的输入、输出和中间结果的多维数组。 -
张量函数
(Tensor functions) 神经网络的“知识”被编码在权重和接受张量和输出张量的计算序列中。我们将这些计算称为张量函数。值得注意的是,张量函数不需要对应于神经网络计算的单个步骤。部分计算或整个端到端计算也可以看作张量函数。也就是说,不仅单个函数可以认为是张量函数,也可以把其中一部分(或者整个整体)看作是张量函数。
下图中举了个实际的例子,第一个linear层和relu计算被折叠成一个linear_relu 函数,这需要有一个特定的linear_relu的详细实现。
6.1. 备注:抽象和实现
对同样的目标有不同颗粒度的表示。例如对linear_relu而言,既可以使用左边两个框图进行表示,也可以用右边的循环进行表示。
我们使用抽象
(Abstraction)来表示我们用来表示相同张量函数的方式。不同的抽象可能会指定一些细节,而忽略其他实现(Implementations)细节。例如,linear_relu 可以使用另一个不同的 for 循环来实现。抽象
和实现
可能是所有计算机系统中最重要的关键字。抽象指定“做什么”,实现提供“如何”做。没有具体的界限。根据我们的看法,for 循环本身可以被视为一种抽象,因为它可以使用 python 解释器实现或编译为本地汇编代码。机器学习编译实际上是在相同或不同抽象下转换和组装张量函数的过程。我们将研究张量函数的不同抽象类型,以及它们如何协同工作以解决机器学习部署中的挑战。
在后续课程中分别会涉及到四种类型的抽象:
- 计算图
- 张量程序
- 库(运行时)
- 硬件专用指令
7. 总结
-
机器学习编译的目标
- 集成与最小化依赖
- 利用硬件加速
- 通用优化
-
为什么学习机器学习编译
- 构建机器学习部署解决方案
- 深入了解现有机器学习框架
- 为新兴硬件建立软件栈
-
机器学习编译的关键要素
- 张量和张量函数
- 抽象和实现是值得思考的工具
-
图解机器学习算法(1) | 机器学习基础知识(机器学习通关指南·完结)
2022-03-09 22:35:51本文覆盖机器学习常见知识要点,包括机器学习流程、算法分类(监督学习、无监督学习、强化学习)、依托的问题场景(分类、回归、聚类、降维)、机器学习模型评估与选择等。- 作者:韩信子@ShowMeAI
- 教程地址:http://www.showmeai.tech/tutorials/34
- 本文地址:http://www.showmeai.tech/article-detail/185
- 声明:版权所有,转载请联系平台与作者并注明出处
1. 机器学习概述
1)什么是机器学习
人工智能(Artificial intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它是一个笼统而宽泛的概念,人工智能的最终目标是使计算机能够模拟人的思维方式和行为。大概在上世纪50年代开始兴起,但是受限于数据和硬件设备等限制,当时发展缓慢。
机器学习(Machine learning)是人工智能的子集,是实现人工智能的一种途径,但并不是唯一的途径。它是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。大概在上世纪80年代开始蓬勃发展,诞生了一大批数学统计相关的机器学习模型。
深度学习(Deep learning)是机器学习的子集,灵感来自人脑,由人工神经网络(ANN)组成,它模仿人脑中存在的相似结构。在深度学习中,学习是通过相互关联的「神经元」的一个深层的、多层的「网络」来进行的。「深度」一词通常指的是神经网络中隐藏层的数量。大概在2012年以后爆炸式增长,广泛应用在很多的场景中。
让我们看看国外知名学者对机器学习的定义:
机器学习研究的是计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构,使之不断改善自身。从实践的意义上来说,机器学习是在大数据的支撑下,通过各种算法让机器对数据进行深层次的统计分析以进行「自学」,使得人工智能系统获得了归纳推理和决策能力
通过经典的「垃圾邮件过滤」应用,我们再来理解下机器学习的原理,以及定义中的T、E、P分别指代什么。
2)机器学习三要素
机器学习三要素包括数据、模型、算法。这三要素之间的关系,可以用下面这幅图来表示:
(1)数据
数据驱动:数据驱动指的是我们基于客观的量化数据,通过主动数据的采集分析以支持决策。与之相对的是经验驱动,比如我们常说的「拍脑袋」。
(2)模型&算法
模型:在AI数据驱动的范畴内,模型指的是基于数据X做决策Y的假设函数,可以有不同的形态,计算型和规则型等。
算法:指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型。通常是一个最优化的问题。
3)机器学习发展历程
人工智能一词最早出现于1956年,用于探索一些问题的有效解决方案。1960年,美国国防部借助「神经网络」这一概念,训练计算机模仿人类的推理过程。
2010年之前,谷歌、微软等科技巨头改进了机器学习算法,将查询的准确度提升到了新的高度。而后,随着数据量的增加、先进的算法、计算和存储容量的提高,机器学习得到了更进一步的发展。
4)机器学习核心技术
-
分类:应用以分类数据进行模型训练,根据模型对新样本进行精准分类与预测。
-
聚类:从海量数据中识别数据的相似性与差异性,并按照最大共同点聚合为多个类别。
-
异常检测:对数据点的分布规律进行分析,识别与正常数据及差异较大的离群点。
-
回归:根据对已知属性值数据的训练,为模型寻找最佳拟合参数,基于模型预测新样本的输出值。
5)机器学习基本流程
机器学习工作流(WorkFlow)包含数据预处理(Processing)、模型学习(Learning)、模型评估(Evaluation)、新样本预测(Prediction)几个步骤。
-
数据预处理:输入(未处理的数据 + 标签)→处理过程(特征处理+幅度缩放、特征选择、维度约减、采样)→输出(测试集 + 训练集)。
-
模型学习:模型选择、交叉验证、结果评估、超参选择。
-
模型评估:了解模型对于数据集测试的得分。
-
新样本预测:预测测试集。
6)机器学习应用场景
作为一套数据驱动的方法,机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别和机器人等领域。
-
智能医疗:智能假肢、外骨骼、医疗保健机器人、手术机器人、智能健康管理等。
-
人脸识别:门禁系统、考勤系统、人脸识别防盗门、电子护照及身份证,还可以利用人脸识别系统和网络,在全国范围内搜捕逃犯。
-
机器人的控制领域:工业机器人、机械臂、多足机器人、扫地机器人、无人机等。
2.机器学习基本名词
-
监督学习(Supervised Learning):训练集有标记信息,学习方式有分类和回归。
-
无监督学习(Unsupervised Learning):训练集没有标记信息,学习方式有聚类和降维。
-
强化学习(Reinforcement Learning):有延迟和稀疏的反馈标签的学习方式。
-
示例/样本:上面一条数据集中的一条数据。
-
属性/特征:「色泽」「根蒂」等。
-
属性空间/样本空间/输入空间X:由全部属性张成的空间。
-
特征向量:空间中每个点对应的一个坐标向量。
-
标记:关于示例结果的信息,如((色泽=青绿,根蒂=蜷缩,敲声=浊响),好瓜),其中「好瓜」称为标记。
-
分类:若要预测的是离散值,如「好瓜」,「坏瓜」,此类学习任务称为分类。
-
假设:学得模型对应了关于数据的某种潜在规律。
-
真相:潜在规律自身。
-
学习过程:是为了找出或逼近真相。
-
泛化能力:学得模型适用于新样本的能力。一般来说,训练样本越大,越有可能通过学习来获得具有强泛化能力的模型。
3.机器学习算法分类
1)机器学习算法依托的问题场景
机器学习在近30多年已发展为一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动「学习」的算法。
机器学习算法从数据中自动分析获得规律,并利用规律对未知数据进行预测。机器学习理论关注可以实现的、行之有效的学习算法。很多推论问题属于无程序可循难度,所以部分的机器学习研究是开发容易处理的近似算法。
机器学习最主要的类别有:监督学习、无监督学习和强化学习。
监督学习:从给定的训练数据集中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。
- 更多监督学习的算法模型总结可以查看ShowMeAI的文章 AI知识技能速查 | 机器学习-监督学习。
无监督学习:与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有生成对抗网络(GAN)、聚类。
- 更多无监督学习的算法模型总结可以查看ShowMeAI的文章 AI知识技能速查 | 机器学习-无监督学习。
强化学习:通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。
2)分类问题
分类问题是机器学习非常重要的一个组成部分。它的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。分类问题可以细分如下:
-
二分类问题:表示分类任务中有两个类别新的样本属于哪种已知的样本类。
-
多类分类(Multiclass classification)问题:表示分类任务中有多类别。
-
多标签分类(Multilabel classification)问题:给每个样本一系列的目标标签。
了解更多机器学习分类算法:KNN算法、逻辑回归算法、朴素贝叶斯算法、决策树模型、随机森林分类模型、GBDT模型、XGBoost模型、支持向量机模型等。
3)回归问题
了解更多机器学习回归算法:决策树模型、随机森林分类模型、GBDT模型、回归树模型、支持向量机模型等。
4)聚类问题
了解更多机器学习聚类算法:聚类算法。
5)降维问题
了解更多机器学习降维算法:PCA降维算法。
4.机器学习模型评估与选择
1)机器学习与数据拟合
机器学习最典型的监督学习为分类与回归问题。分类问题中,我们学习出来一条「决策边界」完成数据区分;在回归问题中,我们学习出拟合样本分布的曲线。
2)训练集与数据集
我们以房价预估为例,讲述一下涉及的概念。
-
训练集(Training Set):帮助训练模型,简单的说就是通过训练集的数据让确定拟合曲线的参数。
-
测试集(Test Set):为了测试已经训练好的模型的精确度。
当然,test set这并不能保证模型的正确性,只是说相似的数据用此模型会得出相似的结果。因为在训练模型的时候,参数全是根据现有训练集里的数据进行修正、拟合,有可能会出现过拟合的情况,即这个参数仅对训练集里的数据拟合比较准确,这个时候再有一个数据需要利用模型预测结果,准确率可能就会很差。
3)经验误差
在训练集的数据上进行学习。模型在训练集上的误差称为「经验误差」(Empirical Error)。但是经验误差并不是越小越好,因为我们希望在新的没有见过的数据上,也能有好的预估结果。
4)过拟合
过拟合,指的是模型在训练集上表现的很好,但是在交叉验证集合测试集上表现一般,也就是说模型对未知样本的预测表现一般,泛化(Generalization)能力较差。
如何防止过拟合呢?一般的方法有Early Stopping、数据集扩增(Data Augmentation)、正则化、Dropout等。
-
正则化:指的是在目标函数后面添加一个正则化项,一般有L1正则化与L2正则化。L1正则是基于L1范数,即在目标函数后面加上参数的L1范数和项,即参数绝对值和与参数的积项。
-
数据集扩增:即需要得到更多的符合要求的数据,即和已有的数据是独立同分布的,或者近似独立同分布的。一般方法有:从数据源头采集更多数据、复制原有数据并加上随机噪声、重采样、根据当前数据集估计数据分布参数,使用该分布产生更多数据等。
-
DropOut:通过修改神经网络本身结构来实现的。
5)偏差
偏差(Bias),它通常指的是模型拟合的偏差程度。给定无数套训练集而期望拟合出来的模型就是平均模型。偏差就是真实模型和平均模型的差异。
简单模型是一组直线,平均之后得到的平均模型是一条直的虚线,与真实模型曲线的差别较大(灰色阴影部分较大)。因此,简单模型通常高偏差 。
复杂模型是一组起伏很大波浪线,平均之后最大值和最小组都会相互抵消,和真实模型的曲线差别较小,因此复杂模型通常低偏差(见黄色曲线和绿色虚线几乎重合)。
6)方差
方差(Variance),它通常指的是模型的平稳程度(简单程度)。简单模型的对应的函数如出一辙,都是水平直线,而且平均模型的函数也是一条水平直线,因此简单模型的方差很小,并且对数据的变动不敏感。
复杂模型的对应的函数千奇百怪,毫无任何规则,但平均模型的函数也是一条平滑的曲线,因此复杂模型的方差很大,并且对数据的变动很敏感。
7)偏差与方差的平衡
8)性能度量指标
性能度量是衡量模型泛化能力的数值评价标准,反映了当前问题(任务需求)。使用不同的性能度量可能会导致不同的评判结果。更详细的内容可见 模型评估方法与准则
(1)回归问题
关于模型「好坏」的判断,不仅取决于算法和数据,还取决于当前任务需求。回归问题常用的性能度量指标有:平均绝对误差、均方误差、均方根误差、R平方等。
-
平均绝对误差(Mean Absolute Error,MAE),又叫平均绝对离差,是所有标签值与回归模型预测值的偏差的绝对值的平均。
-
平均绝对百分误差(Mean Absolute Percentage Error,MAPE)是对MAE的一种改进,考虑了绝对误差相对真实值的比例。
-
均方误差(Mean Square Error,MSE)相对于平均绝对误差而言,均方误差求的是所有标签值与回归模型预测值的偏差的平方的平均。
-
均方根误差(Root-Mean-Square Error,RMSE),也称标准误差,是在均方误差的基础上进行开方运算。RMSE会被用来衡量观测值同真值之间的偏差。
-
R平方,决定系数,反映因变量的全部变异能通过目前的回归模型被模型中的自变量解释的比例。比例越接近于1,表示当前的回归模型对数据的解释越好,越能精确描述数据的真实分布。
(2)分类问题
分类问题常用的性能度量指标包括错误率(Error Rate)、精确率(Accuracy)、查准率(Precision)、查全率(Recall)、F1、ROC曲线、AUC曲线和R平方等。更详细的内容可见 模型评估方法与准则
-
错误率:分类错误的样本数占样本总数的比例。
-
精确率:分类正确的样本数占样本总数的比例。
-
查准率(也称准确率),即在检索后返回的结果中,真正正确的个数占你认为是正确的结果的比例。
-
查全率(也称召回率),即在检索结果中真正正确的个数,占整个数据集(检索到的和未检索到的)中真正正确个数的比例。
-
F1是一个综合考虑查准率与查全率的度量,其基于查准率与查全率的调和平均定义:即:F1度量的一般形式-Fβ,能让我们表达出对查准率、查全率的不同偏好。
ROC曲线(Receiver Operating Characteristic Curve)全称是「受试者工作特性曲线」。综合考虑了概率预测排序的质量,体现了学习器在不同任务下的「期望泛化性能」的好坏。ROC曲线的纵轴是「真正例率」(TPR),横轴是「假正例率」(FPR)。
AUC(Area Under ROC Curve)是ROC曲线下面积,代表了样本预测的排序质量。
从一个比较高的角度来认识AUC:仍然以异常用户的识别为例,高的AUC值意味着,模型在能够尽可能多地识别异常用户的情况下,仍然对正常用户有着一个较低的误判率(不会因为为了识别异常用户,而将大量的正常用户给误判为异常。
9)评估方法
我们手上没有未知的样本,如何可靠地评估?关键是要获得可靠的「测试集数据」(Test Set),即测试集(用于评估)应该与训练集(用于模型学习)「互斥」。
常见的评估方法有:留出法(Hold-out)、交叉验证法( Cross Validation)、自助法(Bootstrap)。更详细的内容可见 模型评估方法与准则
留出法(Hold-out)是机器学习中最常见的评估方法之一,它会从训练数据中保留出验证样本集,这部分数据不用于训练,而用于模型评估。
机器学习中,另外一种比较常见的评估方法是交叉验证法( Cross Validation)。k 折交叉验证对 k 个不同分组训练的结果进行平均来减少方差,因此模型的性能对数据的划分就不那么敏感,对数据的使用也会更充分,模型评估结果更加稳定。
自助法(Bootstrap)是一种用小样本估计总体值的一种非参数方法,在进化和生态学研究中应用十分广泛。
Bootstrap通过有放回抽样生成大量的伪样本,通过对伪样本进行计算,获得统计量的分布,从而估计数据的整体分布。
10)模型调优与选择准则
我们希望找到对当前问题表达能力好,且模型复杂度较低的模型:
-
表达力好的模型,可以较好地对训练数据中的规律和模式进行学习;
-
复杂度低的模型,方差较小,不容易过拟合,有较好的泛化表达。
11)如何选择最优的模型
(1)验证集评估选择
-
切分数据为训练集和验证集。
-
对于准备好的候选超参数,在训练集上进行模型,在验证集上评估。
(2)网格搜索/随机搜索交叉验证
-
通过网格搜索/随机搜索产出候选的超参数组。
-
对参数组的每一组超参数,使用交叉验证评估效果。
-
选出效果最好的超参数。
(3)贝叶斯优化
- 基于贝叶斯优化的超参数调优。
视频教程
可以点击 B站 查看视频的【双语字幕】版本
【双语字幕+资料下载】斯坦福CS229 | 机器学习-吴恩达主讲(2018·完整版)
【双语字幕+资料下载】斯坦福CS229 | 机器学习-吴恩达主讲(2018·完整版)
https://www.bilibili.com/video/BV1TT4y127Nf
ShowMeAI图解机器学习算法系列(完整版)
- ShowMeAI 图解机器学习算法(1) | 机器学习基础知识
- ShowMeAI 图解机器学习算法(2) | 模型评估方法与准则
- ShowMeAI 图解机器学习算法(3) | KNN算法及其应用
- ShowMeAI 图解机器学习算法(4) | 逻辑回归算法详解
- ShowMeAI 图解机器学习算法(5) | 朴素贝叶斯算法详解
- ShowMeAI 图解机器学习算法(6) | 决策树模型详解
- ShowMeAI 图解机器学习算法(7) | 随机森林分类模型详解
- ShowMeAI 图解机器学习算法(8) | 回归树模型详解
- ShowMeAI 图解机器学习算法(9) | GBDT模型详解
- ShowMeAI 图解机器学习算法(10) | XGBoost模型最全解析
- ShowMeAI 图解机器学习算法(11) | LightGBM模型详解
- ShowMeAI 图解机器学习算法(12) | 支持向量机模型详解
- ShowMeAI 图解机器学习算法(13) | 聚类算法详解
- ShowMeAI 图解机器学习算法(14) | PCA降维算法详解
ShowMeAI系列教程精选推荐
- 大厂技术实现:推荐与广告计算解决方案
- 大厂技术实现:计算机视觉解决方案
- 大厂技术实现:自然语言处理行业解决方案
- 图解Python编程:从入门到精通系列教程
- 图解数据分析:从入门到精通系列教程
- 图解AI数学基础:从入门到精通系列教程
- 图解大数据技术:从入门到精通系列教程
- 图解机器学习算法:从入门到精通系列教程
- 机器学习实战:手把手教你玩转机器学习系列
- 深度学习教程:吴恩达专项课程 · 全套笔记解读
- 自然语言处理教程:斯坦福CS224n课程 · 课程带学与全套笔记解读
- 深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读
-
机器学习和深度学习的区别
2022-01-11 05:10:56终于考上人工智能的研究僧啦,不知道机器学习和深度学习有啥区别,感觉一切都是深度学习 挖槽,听说学长已经调了10个月的参数准备发有2000亿参数的T9开天霹雳模型,我要调参发T10准备拿个Best Paper 现在搞传统...Python微信订餐小程序课程视频
https://edu.csdn.net/course/detail/36074
Python实战量化交易理财系统
https://edu.csdn.net/course/detail/35475
- 终于考上人工智能的研究僧啦,不知道机器学习和深度学习有啥区别,感觉一切都是深度学习
- 挖槽,听说学长已经调了10个月的参数准备发有2000亿参数的T9开天霹雳模型,我要调参发T10准备拿个Best Paper
现在搞传统机器学习相关的研究论文确实占比不太高,有的人吐槽深度学习就是个系统工程而已,没有数学含金量。
但是无可否认的是深度学习是在太好用啦,极大地简化了传统机器学习的整体算法分析和学习流程,更重要的是在一些通用的领域任务刷新了传统机器学习算法达不到的精度和准确率。
深度学习这几年特别火,就像5年前的大数据一样,不过深度学习其主要还是属于机器学习的范畴领域内,所以这篇文章里面我们来唠一唠机器学习和深度学习的算法流程区别。
1、机器学习的算法流程
实际上机器学习研究的就是数据科学(听上去有点无聊),下面是机器学习算法的主要流程:主要从1)数据集准备、2)探索性的对数据进行分析、3)数据预处理、4)数据分割、5)机器学习算法建模、6)选择机器学习任务,当然到最后就是评价机器学习算法对实际数据的应用情况如何。
1.1 数据集
首先我们要研究的是数据的问题,数据集是构建机器学习模型流程的起点。简单来说,数据集本质上是一个M×N矩阵,其中M代表列(特征),N代表行(样本)。
列可以分解为X和Y,X是可以指特征、独立变量或者是输入变量。Y也是可以指类别标签、因变量和输出变量。
1.2 数据分析
进行探索性数据分析(Exploratory data analysis, EDA)是为了获得对数据的初步了解。EDA主要的工作是:对数据进行清洗,对数据进行描述(描述统计量,图表),查看数据的分布,比较数据之间的关系,培养对数据的直觉,对数据进行总结等。
探索性数据分析方法简单来说就是去了解数据,分析数据,搞清楚数据的分布。主要注重数据的真实分布,强调数据的可视化,使分析者能一目了然看出数据中隐含的规律,从而得到启发,以此帮助分析者找到适合数据的模型。
在一个典型的机器学习算法流程和数据科学项目里面,我做的第一件事就是通过 “盯住数据”,以便更好地了解数据。个人通常使用的三大EDA方法包括:
- 描述性统计:平均数、中位数、模式、标准差。
- 数据可视化:热力图(辨别特征内部相关性)、箱形图(可视化群体差异)、散点图(可视化特征之间的相关性)、主成分分析(可视化数据集中呈现的聚类分布)等。
- 数据整形:对数据进行透视、分组、过滤等。
1.3 数据预处理
数据预处理,其实就是对数据进行清理、数据整理或普通数据处理。指对数据进行各种检查和校正过程,以纠正缺失值、拼写错误、使数值正常化/标准化以使其具有可比性、转换数据(如对数转换)等问题。
例如对图像进行resize成统一的大小或者分辨率。
数据的质量将对机器学习算法模型的质量好坏产生很大的影响。因此,为了达到最好的机器学习模型质量,传统的机器学习算法流程中,其实很大一部分工作就是在对数据进行分析和处理。
一般来说,数据预处理可以轻松地占到机器学习项目流程中80%的时间,而实际的模型建立阶段和后续的模型分析大概仅占到剩余的20%。
1.4 数据分割
训练集 & 测试集
在机器学习模型的开发流程中,希望训练好的模型能在新的、未见过的数据上表现良好。为了模拟新的、未见过的数据,对可用数据进行数据分割,从而将已经处理好的数据集分割成2部分:训练集合测试集。
第一部分是较大的数据子集,用作训练集(如占原始数据的80%);第二部分通常是较小的子集,用作测试集(其余20%的数据)。
接下来,利用训练集建立预测模型,然后将这种训练好的模型应用于测试集(即作为新的、未见过的数据)上进行预测。根据模型在测试集上的表现来选择最佳模型,为了获得最佳模型,还可以进行超参数优化。
训练集 & 验证集 & 测试集
另一种常见的数据分割方法是将数据分割成3部分:1)训练集,2)验证集和3)测试集。
训练集用于建立预测模型,同时对验证集进行评估,据此进行预测,可以进行模型调优(如超参数优化),并根据验证集的结果选择性能最好的模型。
验证集的操作方式跟训练集类似。不过值得注意的是,测试集不参与机器学习模型的建立和准备,是机器学习模型训练过程中单独留出的样本集,用于调整模型的超参数和对模型的能力进行初步评估。通常边训练边验证,这里的验证就是用验证集来检验模型的初步效果。
交叉验证
实际上数据是机器学习流程中最宝贵的,为了更加经济地利用现有数据,通常使用N倍交叉验证,将数据集分割成N个。在这样的N倍数据集中,其中一个被留作测试数据,而其余的则被用作建立模型的训练数据。通过反复交叉迭代的方式来对机器学习流程进行验证。
这种交叉验证的方法在机器学习流程中被广泛的使用,但是深度学习中使用得比较少哈。
1.5 机器学习算法建模
下面是最有趣的部分啦,数据筛选和处理过程其实都是很枯燥乏味的,现在可以使用精心准备的数据来建模。根据taget变量(通常称为Y变量)的数据类型,可以建立一个分类或回归模型。
机器学习算法
机器学习算法可以大致分为以下三种类型之一:
- 监督学习:是一种机器学习任务,建立输入X和输出Y变量之间的数学(映射)关系。这样的(X、Y)对构成了用于建立模型的标签数据,以便学习如何从输入中预测输出。
- 无监督学习:是一种只利用输入X变量的机器学习任务。X变量是未标记的数据,学习算法在建模时使用的是数据的固有结构。
- 强化学习:是一种决定下一步行动方案的机器学习任务,它通过试错学习(trial and error learning)来实现这一目标,努力使reward回报最大化。
参数调优
传说中的调参侠主要干的就是这个工作啦。超参数本质上是机器学习算法的参数,直接影响学习过程和预测性能。由于没有万能的超参数设置,可以普遍适用于所有数据集,因此需要进行超参数优化。
以随机森林为例。在使用randomForest时,通常会对两个常见的超参数进行优化,其中包括mtry和ntree参数。mtry(maxfeatures)代表在每次分裂时作为候选变量随机采样的变量数量,而ntree(nestimators)代表要生长的树的数量。
另一种在10年前仍然非常主流的机器学习算法是支持向量机SVM。需要优化的超参数是径向基函数(RBF)内核的C参数和gamma参数。C参数是一个限制过拟合的惩罚项,而gamma参数则控制RBF核的宽度。
调优通常是为了得出超参数的较佳值集,很多时候不要去追求找到超参一个最优值,其实调参侠只是调侃调侃,真正需要理解掌握算法原理,找到适合数据和模型的参数就可以啦。
特征选择
特征选择从字面上看就是从最初的大量特征中选择一个特征子集的过程。除了实现高精度的模型外,机器学习模型构建最重要的一个方面是获得可操作的见解,为了实现这一目标,能够从大量的特征中选择出重要的特征子集非常重要。
特征选择的任务本身就可以构成一个全新的研究领域,在这个领域中,大量的努力都是为了设计新颖的算法和方法。从众多可用的特征选择算法中,一些经典的方法是基于模拟退火和遗传算法。
除此之外,还有大量基于进化算法(如粒子群优化、蚁群优化等)和随机方法(如蒙特卡洛)的方法。1.6 机器学习任务
在监督学习中,两个常见的机器学习任务包括分类和回归。
分类
一个训练好的分类模型将一组变量作为输入,并预测输出的类标签。下图是由不同颜色和标签表示的三个类。每一个小的彩色球体代表一个数据样本。三类数据样本在二维中的显示,这种可视化图可以通过执行PCA分析并显示前两个主成分(PC)来创建;或者也可以选择两个变量的简单散点图可视化。
性能指标
如何知道训练出来的机器学习模型表现好或坏?就是使用性能评价指标(metrics),一些常见的评估分类性能的指标包括准确率(AC)、灵敏度(SN)、特异性(SP)和马太相关系数(MCC)。
回归
最简单的回归模式,可以通过以下简单等式很好地总结:Y = f(X)。其中,Y对应量化输出变量,X指输入变量,f指计算输出值作为输入特征的映射函数(从机器学习模型中得到)。上面的回归例子公式的实质是,如果X已知,就可以推导出Y。一旦Y被计算(预测)出来,一个流行的可视化方式是将实际值与预测值做一个简单的散点图,如下图所示。
对回归模型的性能进行评估,以评估拟合模型可以准确预测输入数据值的程度。评估回归模型性能的常用指标是确定系数(R²)。此外,均方误差(MSE)以及均方根误差(RMSE)也是衡量残差或预测误差的常用指标。
2、深度学习算法流程
深度学习实际上是机器学习中的一种范式,所以他们的主要流程是差不多的。深度学习则是优化了数据分析,建模过程的流程也是缩短了,由神经网络统一了原来机器学习中百花齐放的算法。
在深度学习正式大规模使用之前呢,机器学习算法流程中药花费很多时间去收集数据,然后对数据进行筛选,尝试各种不同的特征提取机器学习算法,或者结合多种不同的特征对数据进行分类和回归。
下面是机器学习算法的主要流程:主要从1)数据集准备、2)数据预处理、3)数据分割、4)定义神经网络模型,5)训练网络。
深度学习不需要我们自己去提取特征,而是通过神经网络自动对数据进行高维抽象学习,减少了特征工程的构成,在这方面节约了很多时间。
但是同时因为引入了更加深、更复杂的网络模型结构,所以调参工作变得更加繁重啦。例如:定义神经网络模型结构、确认损失函数、确定优化器,最后就是反复调整模型参数的过程。
参考文献
- [1] https://github.com/dataprofessor/infographic
- [2] 陈仲铭. 《深度学习:原理与实践》.[M]
-
机器学习心得
2021-10-27 14:03:221. 机器学习的概念: 解释1:机器学习是一门通过编程让计算机从数据中进行学习的学科。 解释2:机器学习是一个研究领域,让计算机无须进行明确的编程就具备学习能力。 解释2:一个计算机程序利用经验E来学习任务T... -
《机器学习的数学》出版了,彻底解决程序员学机器学习的数学问题
2021-01-19 11:30:58如何解决机器学习领域的数学问题,打下坚实的数学基础?是很多初学者乃至进阶者关心的话题。我们把这个问题拆解成下面几个问题: 1. 为什么需要数学? 2. 机器学习中究竟用到了哪些数学知识? 3. 如何掌握这些... -
当机器学习遇上隐私保护,聊聊联邦学习和分布式机器学习
2021-06-29 00:51:39导读:我认为,任何一门技术的突破发展,首先都需要解决问题,然后才是创造新价值。最近比特币行情大起大落,身边炒币的哥们纷纷大呼刺激。我一直不太清楚,支撑比特币背后的价值究竟是什么,不过,作为... -
深入理解机器学习——机器学习概览
2021-10-06 15:25:55机器学习算法是一种能够从数据中学习的算法。卡耐基梅隆大学计算机科学学院机器学习系主任Mitchell给出了机器学习算法的定义:对于某类任务TTT和性能度量PPP,一个计算机程序被认为可以从经验EEE中学习是指,通过... -
十大机器学习算法
2022-03-08 22:55:09初学者应该知道的十大机器学习算法 来源:https://builtin.com/data-science/tour-top-10-algorithms-machine-learning-newbies 机器学习算法被描述为学习一个目标函数 (f),它最好地将输入变量 (X) 映射到输出... -
机器学习基础环境部署 | 机器学习系列
2021-10-31 14:50:53本文主要是分享一下机器学习初期,基本的环境搭建。也适用于其他python工程化项目环境搭建。都差不多。 Anaconda安装 anaconda官方链接:Anaconda | The World's Most Popular Data Science Platform 点击Get... -
什么是机器学习?机器学习与AI的关系?
2021-02-26 11:56:15而这类问题正是机器学习所能够解决的。 传统上来讲,计算机编程指在结构化的数据上执行明确的程序规则。软件开发人员动手编写程序,告诉计算机如何对数据执行一组指令,并输出预期的结果,如图1-1所示。这个过程与... -
机器学习期末考试
2021-06-05 00:28:12机器学习期末考试 一、机器学习链接 1、机器学习期末复习试卷_zhouyan2000的博客-CSDN博客_机器学习期末考试} 2、[机器学习笔试题]((4条消息) 机器学习笔试题目_北冥有小鱼-CSDN博客_机器学习题目) 3、机器学习面试... -
机器学习教程 - 分步指南
2021-12-10 20:24:07机器学习 (ML)是技术领域最受关注的话题之一。如果你已经了解机器学习和相关技术的基础知识以及它的应用领域,本文将对这些知识进行补充。如果你还不熟悉机器学习,本教程中涵盖的基础知识会帮你快速上手。文章较长... -
开始学习机器学习之前你必须要了解的知识有哪些?机器学习系列入门篇
2021-09-07 18:07:33距离上次介绍机器学习相关的内容,已经过了一年的时间了,而这篇博客目前的阅读量也将近3000k,这样数据看起来似乎也还算不错,可惜因为我当时没有足够的时间和精力去完整把这篇博客写完,只介绍了机器学习的基础... -
python机器学习资料小合集
2017-04-19 13:10:30python机器学习资料小合集,包括机器学习十大算法以及python机器学习等资料指导,一些训练常用的代码和数据集 -
北大林宙辰:机器学习一阶算法的优化
2016-08-29 18:13:002016中国人工智能大会(CCAI 2016),机器学习的明天论坛,北京大学信息科学技术学院机器感知与智能教育部重点实验室教授林宙辰的演讲PPT。报道:http://geek.csdn.net/news/detail/97844 -
斯坦福大学吴恩达Coursera机器学习公开课中文笔记
2016-03-28 13:37:44此笔记为2014年Andrew Ng在Coursera 开设的机器学习Machine Learning公开课的中文笔记。 原作者为中国海洋大学博士生,感谢原作者的贡献。 -
李宏毅2020机器学习资料汇总
2020-04-08 11:33:44前言 可能受到新冠病毒的影响,台大也开始了...和吴恩达的CS229机器学习相比,中文版本的机器学习显得亲民了许多,李宏毅的机器学习是英文的ppt+中文讲解,非常有利于大家入门。吴恩达的CS229中偏向于传统机器学习…… -
机器学习一般用来解决哪些方面的问题?
2019-07-13 00:56:21随着互联网的不断发展,程序员在学习编程语言的种类上也开始偏向于人工智能AI技术方面的知识学习了,下面我们就一起来了解一下,关于机器学习我们都需要解决哪些问题。 机器学习一般用来解决哪些方面的问题? 要问... -
5 大常用机器学习模型类型总结
2022-03-29 10:06:56本文介绍了 5 大常用机器学习模型类型:集合学习算法,解释型算法,聚类算法,降维算法,相似性算法,并简要介绍了每种类型中最广泛使用的算法模型。我们希望本文可以做到以下三点:1、应用性。 涉及到应用问题时,... -
机器学习知识点全面总结
2021-04-11 16:37:45机器学习按照模型类型分为监督学习模型、无监督学习模型和概率模型三大类,文章对十大机器学习算法进行详细介绍并阐述机器学习其他概念问题,可作为机器学习初学者学习使用。 -
【机器学习】python实现吴恩达机器学习作业合集(含数据集)
2022-04-04 20:17:01目录 1.0 实现线性回归预测 ...3.0 logistic逻辑回归手写多分类问题 3.1 神经网络正向传播 4.0 神经网络反向传播(BP算法) 5.0 方差与偏差 6.0 SVM支持向量机 7.0 kmeans聚类 7.1 PCA主成分分析 ... -
人工智能、机器学习、深度学习 三者关系
2022-01-16 21:34:421、AI ML DL关系 为了赋予计算机以人类的理解能力与逻辑思维,诞生了人工...机器学习是实现人工智能的途径之一,而深度学习则是机器学习的算法之一。如果把人工智能比喻成人类的大脑,机器学习则是人类通过大量数.. -
机器学习背景及简介
2021-07-02 21:03:10由于近20年的飞速发展,机器学习已经具备了一定的解决实际问题的能力,似乎逐渐开始成为一种基础性、透明化的“支持技术、服务技术”。 基础性:在众多的学科领域都得以应用(“无所不在”) 透明化:用户看不见... -
机器学习(概述一)——定义
2019-05-28 16:18:17机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要... -
机器学习基本概念
2018-09-21 22:26:40本文首先介绍机器学习的基本流程,然后针对机器学习涉及的数据、算法和评估这三个方面用到的基础概念进行介绍。 1.机器学习流程 机器学习是一个数据流转、分析以及得到结果的过程,它的整个流程大致可以分为六个... -
如何搞懂机器学习中的线性回归模型?机器学习系列之线性回归基础篇
2021-09-12 12:59:26目录前言1 概述2 线性回归与机器学习3 线性回归的机器学习表示方法3.1 核心逻辑3.2 优化目标3.3 最小二乘法 1 概述 在正式进入到回归分析的相关算法讨论之前,我们需要对有监督学习算法中的回归问题进行进一步的分析... -
机器学习入门要学习什么内容呢?
2021-07-19 17:00:58随着人工智能的发展,从事机器学习、数据挖掘等相关工作,包括推荐算法工程师、数据挖掘工程师、机器学习工程师,填补人工智能领域人才稀缺就业前景非常好,因此学习机器学习的人越来越多。不过这一方面的要求也很高... -
李宏毅2021&2022机器学习
2022-03-01 18:35:27从零到就业 视频地址 【吴恩达亲授】适用于所有人的人工智能课程(中字) 视频地址 (强推 双字)网易版吴恩达机器学习课程 视频地址 (强推 双字)2022吴恩达机器学习Deeplearning.ai课程 视频地址 (强推 双字)2018秋季... -
机器学习7个主要领域
2019-06-13 08:24:58机器学习是识别隐藏在数据中的可能性并将其转化为完全成熟机会的技术。巧合的是,机会是促进业务运营并在竞争对手中脱颖而出的因素。 了解机器学习算法如何应用于各个领域以获得可带来合法业务优势的结果至关重要。...