机器学习技术系列:一篇图文笔记了解机器学习基础知识

author author     2023-01-09     682

关键词:

导言

最近有小半年由近半数工作和生活时间在机器学习技术(ML)的学习与工程实践中,感觉自己阅读了几本ML方面好书,找到了一些更好的学习网站,所以重新梳理了一下自己理解的的ML基础知识。

相关参考摘录书籍及网站如下

  • 《机器学习实战:基于Scikit-Learn、Keras和TensorFlow》(第2版)
  • 《Python深度学习》(第2版)
  • 网站:https://www.showmeai.tech/

一、机器学习概述

1、什么是机器学习

人工智能(Artificial intelligence)

简而言之,人工智能可以被描述为试图将通常由人类完成的智力任务自动化。因此,人工智能是一个综合领域,不仅包括机器学习和深度学习,还包括更多不涉及学习的方法。

机器学习(Machine learning)

让计算机有效工作的常用方法是,由人类程序员编写规则(计算机程序),计算机遵循这些规则将输入数据转换为适当的答案。如下图所示——经典的程序设计

机器学习把这个过程反了过来:机器读取输入数据和相应的答案,然后找出应有的规则,如下图所示——机器学习。机器学习系统是训练出来的,而不是明确地用程序编写出来的。将与某个任务相关的许多示例输入机器学习系统,它会在这些示例中找到统计结构,从而最终找到将任务自动化的规则。 机器学习与数理统计相关,但二者在几个重要方面有所不同

  • 与统计学不同,机器学习经常要处理复杂的大型数据集(比如包含数百万张图片的数据集,每张图片又包含数万像素),用经典的统计分析来处理这种数据集是不切实际的。因此,机器学习(尤其是深度学习)呈现出相对较少的数学理论(可能过于少了),从根本上来说是一门工程学科
  • 与理论物理或数学不同,机器学习是一门非常注重实践的学科,由经验发现所驱动,并深深依赖于软硬件的发展。

机器学习的定义

其中一个工程化的概念

一个计算机程序利用经验E来学习任务T,性能是P,如果针对任务T的性能P随着经验E不断增长,则称为机器学习。 比如一个电商领域的应用

  • T:将用户可能购买的商品推荐给用户;
  • E:用户查看、忽略或购买了某商品;
  • P:用户成功购买商品的比率;

机器学习算法

对于一项数据处理任务,给定预期输出的示例,机器学习系统可以发现执行任务的规则。

  • 输入数据。如果任务是语音识别,那么输入数据可能是记录人们说话的声音文件。如果任务是为图像添加标签,那么输入数据可能是图片。
  • 预期输出的示例。对于语音识别任务来说,这些示例可能是人们根据声音文件整理生成的文本。对于图像标记任务来说,预期输出可能是“狗”“猫”之类的标签。
  • 衡量算法效果的方法。其目的是计算算法的当前输出与预期输出之间的差距。衡量结果是一种反馈信号,用于调整算法的工作方式。这个调整步骤就是我们所说的学习。

机器学习模型将输入数据变换为有意义的输出。简而言之,机器学习就是指在预先定义的可能性空间中,利用反馈信号的指引,在输入数据中寻找有用的表示和规则。

深度学习

深度学习是机器学习的一个分支领域:它是从数据中学习表示的一种新方法,强调从连续的层中学习,这些层对应于越来越有意义的表示。 ~ 深度学习之“深度”是指一系列连续的表示层,数据模型所包含的层数被称为该模型的深度(depth)。现代深度学习模型通常包含数十个甚至上百个连续的表示层,它们都是从训练数据中自动学习而来的。与之相对,其他机器学习方法的重点通常是仅学习一两层的数据表示(例如获取像素直方图,然后应用分类规则),因此有时也被称为浅层学习(shallow learning)。 ~ 在深度学习中,这些分层表示是通过叫作神经网络(neural network)的模型学习得到的。神经网络的结构是逐层堆叠。如下图所示——用于数字分类的深度神经网络 这个神经网络将数字图像变换为与原始图像差别越来越大的表示,而其中关于最终结果的信息越来越丰富。你可以将深度神经网络看作多级信息蒸馏(information distillation)过程:信息穿过连续的过滤器,其纯度越来越高(对任务的帮助越来越大)。如下图所示——数字分类模型学到的数据表示

2、机器学习三要素

机器学习三要素包括数据、模型、算法。这三要素之间的关系,可以简单示意如下: data + Algorithm ——> model

数据

AI中的“数据驱动”是通过数据实现“智能”的体现——通过数据获取、数据分析,基于算法和模型形成数据应用、数据反馈的闭环。

算法

指学习模型的具体计算方法。统计学习基于训练数据集,根据学习策略,从假设空间中选择最优模型,最后需要考虑用什么样的计算方法求解最优模型。通常是一个最优化的问题。

模型

在AI数据驱动的范畴内,模型指的是基于数据X做决策y的假设函数,可以有不同的形态,计算型和规则型等。

3、机器学习基本流程

机器学习工作流(WorkFlow)包含数据预处理(Processing)、模型学习(Learning)、模型评估(Evaluation)、新样本预测(Prediction)几个步骤。

  • 数据预处理:输入(未处理的数据 + 标签)→处理过程(特征处理+幅度缩放、特征选择、维度约减、采样)→输出(测试集 + 训练集)。
  • 模型学习:模型选择、交叉验证、结果评估、超参选择。
  • 模型评估:了解模型对于数据集测试的得分。
  • 新样本预测:预测测试集。

4、机器学习的核心应用场景

  • 分类:应用以分类数据进行模型训练,根据模型对新样本进行精准分类与预测。
  • 聚类:从海量数据中识别数据的相似性与差异性,并按照最大共同点聚合为多个类别。
  • 回归:根据对已知属性值数据的训练,为模型寻找最佳拟合参数,基于模型预测新样本的输出值。
  • 异常检测:对数据点的分布规律进行分析,识别与正常数据及差异较大的离群点。
应用场景示例
分类 用户画像、情感分析、用户行为预测、图像识别
聚类 市场细分、模式识别、空间数据分析、图像处理与分析
回归 趋势预测、价格预测、流量预测
异常检测 日常运行监控、风险识别、舞弊检测

二、机器学习的基本名词

  • 监督学习(Supervised Learning)【有特征有标签】:提供数据并提供数据对应结果的机器学习过程,学习方式有分类和回归。
  • 无监督学习(Unsupervised Learning)【有特征无标签】:提供数据但不提供数据对应结果的机器学习过程,学习方式有聚类和降维。
  • 强化学习(Reinforcement Learning)【有延迟和稀疏的反馈标签】:通过与环境交互并获取延迟反馈进而改进行为的机器学习过程。

  • 示例/样本:上表中数据集中的一条(行)数据。
  • 属性/特征:「体型」「毛发」等。
  • 属性空间/样本空间/输入空间x:由全部属性形成的空间。
  • 特征向量:空间中每个点对应的一个坐标向量。
  • 标签:关于示例结果的信息,如((体型=大,毛发=长,特点=友善),阿拉斯加),其中「阿拉斯加」称为标签。
  • 分类:若要预测的是离散值,如「阿拉斯加」,「哈士奇」,此类学习任务称为分类。
  • 假设:学习模型对应了关于数据的某种潜在规律。
  • 真相:潜在规律自身。
  • 学习过程:是为了找出或逼近真相。
  • 泛化能力:学习模型适用于新样本的能力。一般来说,训练样本越大,越有可能通过学习来获得具有强泛化能力的模型。

三、机器学习的算法分类

机器学习算法从数据中自动分析获得规律,并利用规律对未知数据进行预测。

机器学习算法依托的问题场景

  • 分类:从若干离散值中做选择;
  • 回归:预估输出连续值结果;
  • 聚类:发现与挖掘数据分布的聚集特性;

监督学习

1、分类问题

分类问题是机器学习非常重要的一个组成部分。它的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。分类问题可以细分如下:

  • 二分类问题:表示分类任务中有两个类别,新的样本属于其中之一,比如邮件中的正常邮件和垃圾邮件。
  • 多类分类(Multiclass classification)问题:表示分类任务中有多种类别,比如数字识别。
  • 多标签分类(Multilabel classification)问题:给每个样本一系列的目标标签,比如一个用户属于高价值用户也属于即将流失用户……。

2、回归问题

根据数据样本中抽取出的特征,预测连续值结果。比如房价的预测、销量的预测……

无监督学习

1、聚类问题

根据数据样本中抽取出的特征,挖掘数据的关联模式。比如相似用户群体挖掘、新闻聚类……

2、降维问题

将高维数据用低维数据进行表达,进行数据映射。比如在互联网大数据场景下,我们经常需要面对高维数据,在对这些数据做分析和可视化的时候,我们通常会面对「高维」这个障碍。在数据挖掘和建模的过程中,高维数据也同样带来大的计算量,占据更多的资源,而且许多变量之间可能存在相关性,从而增加了分析与建模的复杂性。

四、机器学习模型评估与选择

1、数据拟合

机器学习最典型的监督学习为分类与回归问题。分类问题中,我们学习出来一条「决策边界」完成数据区分;在回归问题中,我们学习出拟合样本分布的曲线。

2、训练集与数据集

  • 训练集(Training 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平方等。

  • 准确率(accuracy):分类正确的样本数占样本总数的比例,值越大性能越好。公式为:$Acc = \\frac TP+TNTP+TN+FP+FN$
  • 错误率(Error Rate):分类错误的样本数占样本总数的比例,值越小性能越好。公式为:$Err = \\frac FP+FNTP+TN+FP+FN$
  • 查准率(也称精确率 precision),即在检索后返回的结果中,真正正确的个数占我们认为是正确的结果的比例,值越大性能越好。公式为:$Precision = \\frac TPTP+FP$
  • 查全率(也称召回率 recall),即在检索结果中真正正确的个数,占整个数据集(检索到的和未检索到的)中真正正确个数的比例,值越大性能越好。公式为:$Recall = TRP = \\frac TPTP+FN$
  • 误报率(也称误检率 false alarm), 即负样本被预测为正样本占总的负样本的比例。值越小性能越好。公式为:$falsealarm = FPR = \\frac FPFP + TN$
  • F1是一个综合考虑查准率与查全率的度量,其基于查准率与查全率的调和平均定义:即:F1能让我们表达出对查准率、查全率的不同偏好。公式为:$F1 =2* \\frac Precision * RecallPrecision + Recall$

  • ROC曲线(Receiver Operating Characteristic Curve) 全称是「受试者工作特性曲线」。综合考虑了概率预测排序的质量,体现了学习器在不同任务下的「期望泛化性能」的好坏。ROC曲线的纵轴是查全率(TPR),横轴是误报率(FPR)。ROC 曲线反映了 TPR 和 FPR 随阈值的变化情况,曲线越接近左上角,表示该分类器的性能越好。
  • AUC(Area Under ROC Curve) 是ROC曲线下面积,代表了样本预测的排序质量。AUC 值越大,就能够保证 ROC 曲线越接近左上方。

9、评估方法

如何可靠地评估模型?关键是要获得可靠的【测试集数据】(Test Set),即测试集(用于评估)应该与训练集(用于模型学习)「互斥」。 ~ 什么样的模型好?泛化能力强的模型,即能很好的适用于没见过的样本。 ~ 常见的评估方法有:**留出法(Hold-out)、交叉验证法( Cross Validation)、自助法(Bootstrap)**。

(1)留出法(Hold-out)

是机器学习中最常见的评估方法之一,它会从训练数据中保留出验证样本集,这部分数据不用于训练,而用于模型评估。

(2)交叉验证法( Cross Validation)

机器学习中,另外一种比较常见的评估方法是交叉验证法( Cross Validation)。k 折交叉验证对 k 个不同分组训练的结果进行平均来减少方差,因此模型的性能对数据的划分就不那么敏感,对数据的使用也会更充分,模型评估结果更加稳定。

$E = \\frac 1K \\sum_i=1^m E_i$

(3)自助法(Bootstrap)

是一种用小样本估计总体值的一种非参数方法,在进化和生态学研究中应用十分广泛。Bootstrap通过有放回抽样生成大量的伪样本,通过对伪样本进行计算,获得统计量的分布,从而估计数据的整体分布。

10、模型调优与选择准则

我们希望找到对当前问题表达能力好,且模型复杂度较低的模型:

  • 表达力好的模型,可以较好地对训练数据中的规律和模式进行学习;
  • 复杂度低的模型,方差较小,不容易过拟合,有较好的泛化表达。

如何选择最优的模型?

(1)验证集评估选择

  • 切分数据为训练集和验证集。
  • 对于准备好的候选超参数,在训练集上进行模型,在验证集上评估。

(2)网格搜索/随机搜索交叉验证

  • 通过网格搜索/随机搜索产出候选的超参数组。
  • 对参数组的每一组超参数,使用交叉验证评估效果。
  • 选出效果最好的超参数。

(3)贝叶斯优化

  • 基于贝叶斯优化的超参数调优。

希望大家关注我的 GitHub 开源项目

 https://github.com/yaocoder/Architect-CTO-growth

包括技术实践及手册撰写:涵盖DevOps,云原生技术,大数据,人工智能,高并发&高性能&高可用服务等,后续会逐渐细化一些知识点。一起学习成长!如果对你有用,也请星标一下O(∩_∩)O

机器学习数学系列:机器学习与数学基础知识

目录:机器学习基础:  机器学习的分类与一般思路微积分基础:  泰勒公式,导数与梯度概率与统计基础:  概率公式、常见分布、常见统计量线性代数基础:  矩阵乘法的几何意义  这是一张非常著名的图,... 查看详情

开始学习机器学习之前你必须要了解的知识有哪些?机器学习系列入门篇

...和精力去完整把这篇博客写完,只介绍了机器学习的基础知识,感知机和KNN等知识。个人认为这篇博客在每个知识点上总结得非常 查看详情

吴恩达《机器学习系列课程》学习笔记:监督学习

...f0c;不过看着还是有些云里雾里,倒是杉山将的《图解机器学习》介绍得更易懂些。在此进行结合学习。杉山将是这么通俗地定义监督学习、无监督学习和强化学习,它们是机器学习的主要种类:监督学习:有求知... 查看详情

从冷战到深度学习:一篇图文并茂的机器翻译史

从冷战到深度学习:一篇图文并茂的机器翻译史 选自Vas3k.com作者:IlyaPestov英语版译者:VasilyZubarev中文版译者:Panda实现高质量机器翻译的梦想已经存在了很多年,很多科学家都为这一梦想贡献了自己的时间和心力。从早期... 查看详情

机器学习笔记

机器学习笔记(一)文章目录机器学习笔记(一)概述机器学习的定义机器学习的一些基本术语误差与过拟合评估的方法训练集与测试集的划分留出法交叉验证法自助法概述机器学习是目前信息技术中最激动人心... 查看详情

机器学习笔记

机器学习笔记(一)文章目录机器学习笔记(一)概述机器学习的定义机器学习的一些基本术语误差与过拟合评估的方法训练集与测试集的划分留出法交叉验证法自助法概述机器学习是目前信息技术中最激动人心... 查看详情

机器学习笔记

机器学习笔记(一)文章目录机器学习笔记(一)概述机器学习的定义机器学习的一些基本术语误差与过拟合评估的方法训练集与测试集的划分留出法交叉验证法自助法概述机器学习是目前信息技术中最激动人心... 查看详情

华为云技术分享机器学习(02)——学习资料链接

以下是我学习机器学习过程中的部分学习资料,当然除些之外还有更多的文章和视频,实际看了后觉得好多内容都太难,自己目前的数学基础很难理解里面讲解的内容。另外,资料太多反而影响学习效率,很多内容都是重复的,... 查看详情

machinelearn机器学习及其基础概念简介

机器学习及其基础概念简介作者:白宁超2016年12月23日21:24:51摘要:随着机器学习和深度学习的热潮,各种图书层出不穷。然而多数是基础理论知识介绍,缺乏实现的深入理解。本系列文章是作者结合视频学习和书籍基础的笔记... 查看详情

[机器学习]实验笔记-表情识别(emotionrecognition)

前言  [机器学习]实验笔记系列是以我在算法研究中的实验笔记资料为基础加以整理推出的。该系列内容涉及常见的机器学习算法理论以及常见的算法应用,每篇博客都会介绍实验相关的数据库,实验方法,实验结... 查看详情

学习笔记|机器学习决策树

文章目录一、算法原理二、基础知识1.自信息、信息熵与条件熵2.信息增益和增益率3.Gini值和Gini指数三、过拟合与剪枝四、连续值和缺失值处理1.连续值处理2.缺失值处理五、总结通过这篇博客,您将收获如下知识:熟悉决策树相... 查看详情

学习笔记|机器学习决策树

文章目录一、算法原理二、基础知识1.自信息、信息熵与条件熵2.信息增益和增益率3.Gini值和Gini指数三、过拟合与剪枝四、连续值和缺失值处理1.连续值处理2.缺失值处理五、总结通过这篇博客,您将收获如下知识:熟悉决策树相... 查看详情

机器学习基础

  之前学习了Cousera上华盛顿大学的机器学习课程,近期准备整理当时的学习笔记。本篇总结是基于该专项课程中第一篇的内容分类算法:  1.分类算法实际用途:情感分析等,比如分析餐馆的评论,根据某个人的评... 查看详情

深度学习-机器学习第一篇

...,仅供学习交流.(欢迎大家提供宝贵的意见,共同进步)正文:机器学习,顾名思义,就是研究计算机如何学习和模拟人类的行为,并根据已学得的知识对该行为进行增强和改进。举例来说,假设邮箱收到了一封新邮件,通常我们可以通过邮... 查看详情

ng机器学习视频笔记——神经网络基础

ng机器学习视频笔记(六)——神经网络基础 (转载请附上本文链接——linhxx)  一、概述        神经网络,可以理解为输入的内容,经过一系列的内部的处理,得到输出的假设函数。简... 查看详情

机器学习基础教程笔记---机器学习概述(代码片段)

目录机器学习概述1.1人工智能概述1.1.1机器学习与人工智能、深度学习1.1.2机器学习、深度学习能做些什么1.1.3人工智能阶段课程安排1.2什么是机器学习1.2.1定义1.2.2解释1.2.3数据集构成1.3机器学习算法分类学习目标分析1.2中的例子... 查看详情

[机器学习]coursera笔记-supportvectormachines

序言  机器学习栏目记录我在学习MachineLearning过程的一些心得笔记,包括在线课程或Tutorial的学习笔记,论文资料的阅读笔记,算法代码的调试心得,前沿理论的思考等等,针对不同的内容会开设不同的专栏系列。  机器学... 查看详情

系列ml.net学习篇——初识机器学习

由于公司项目涉及到机器学习和图像识别,虽然我并不是算法专家,但毕竟需要了解和知道其运转原理,因此自我进行了学习进化,决定在机器学习上有所进展,结合.NET技术的ML.NET,把机器学习的技能提升一个Level&#... 查看详情