深入浅出机器学习的概念特征及算法.docx
- 文档编号:17248564
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:65
- 大小:1.24MB
深入浅出机器学习的概念特征及算法.docx
《深入浅出机器学习的概念特征及算法.docx》由会员分享,可在线阅读,更多相关《深入浅出机器学习的概念特征及算法.docx(65页珍藏版)》请在冰豆网上搜索。
深入浅出机器学习的概念特征及算法
深入浅出机器学习的概念特征及算法
前言
机器学习是一个数据驱动的过程,数据科学也是一个广泛而令人兴奋的领域,从聚类、关联、到探索标准化,大数据的感性与互联网变革的风暴正在完美的诠释着科学精准与预知预判的洞察意义。
正如MelissaBurkleyPh.D所说:
发散的思维会带来新的和创造性的想法。
机器学习就是一个不断发散、量化、裂变的过程,社会经济进入分化的时代,机器学习在智能应用领域每时每刻都在产生难以复制的创新。
本文将从概念性及部分核心算法上深入浅出带大家全面系统的剖析机器学习,对于渴望了解机器学习算法基础知识的机器学习新人来说,这是一篇非常有价值的文章。
一、机器学习的基础概念
机器学习概要
从现实意义上来说,机器学习(machinelearning)是一种程序或系统,用于根据输入数据构建(训练)预测模型。
这种系统会利用学到的模型根据从分布(训练该模型时使用的同一分布)中提取的新数据(以前从未见过的数据)进行实用的预测。
机器学习还指与这些程序或系统相关的研究领域。
机器学习是人工智能的核心,包含传统机器学习的研究和大数据环境下的机器学习研究,以及未来更多领域的定向化的分析和探索,同时机器学习涉及领域极广,涵盖科学门类极多,概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。
主要是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
理论认识—基本概念
1、A/B测试与ROC曲线
•A/B测试(A/Btesting)
A/B测试是一种统计方法,通常用于将两种或多种技术进行比较,常见的是将当前采用的技术与新技术进行比较。
A/B测试不仅旨在确定哪种技术的效果更好,而且还有助于了解相应差异是否具有显著的统计意义。
A/B测试通常是采用一种衡量方式对两种技术进行比较,但也适用于任意有限数量的技术和衡量方式。
•准确率(accuracy)
准确率是分类模型的正确预测所占的比例。
在多类别分类中,准确率的定义如下:
在二元分类中,准确率的定义如下:
请参阅正例和负例。
•激活函数(activationfunction)
一种函数(例如ReLU或S型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。
•AdaGrad
一种先进的梯度下降法,用于重新调整每个参数的梯度,以便有效地为每个参数指定独立的学习速率。
如需查看完整的解释,请参阅这篇论文。
•ROC曲线下面积(AUC,AreaundertheROCCurve)
一种会考虑所有可能分类阈值的评估指标。
ROC曲线下面积是,对于随机选择的正类别样本确实为正类别,以及随机选择的负类别样本为正类别,分类器更确信前者的概率。
2、基准、偏差、分类认识
•*反向传播算法(backpropagation)*
在神经网络上执行梯度下降法的主要算法。
该算法会先按前向传播方式计算(并缓存)每个节点的输出值,然后再按反向传播遍历图的方式计算损失函数值相对于每个参数的偏导数。
•基准(baseline)
一种简单的模型或启发法,用作比较模型效果时的参考点。
基准有助于模型开发者针对特定问题量化最低预期效果。
•批次(batch)
模型训练的一次迭代(即一次梯度更新)中使用的样本集。
另请参阅批次大小。
•批次大小(batchsize)
一个批次中的样本数。
例如,SGD的批次大小为1,而小批次的大小通常介于10到1000之间。
批次大小在训练和推断期间通常是固定的;不过,TensorFlow允许使用动态批次大小。
•偏差(bias)
距离原点的截距或偏移。
偏差(也称为偏差项)在机器学习模型中用或表示。
例如,在下面的公式中,偏差为:
请勿与预测偏差混淆。
•二元分类(binaryclassification)
一种分类任务,可输出两种互斥类别之一。
例如,对电子邮件进行评估并输出“垃圾邮件”或“非垃圾邮件”的机器学习模型就是一个二元分类器。
•分箱(binning)
请参阅分桶。
•分桶(bucketing)
将一个特征(通常是连续特征)转换成多个二元特征(称为桶或箱),通常根据值区间进行转换。
例如,您可以将温度区间分割为离散分箱,而不是将温度表示成单个连续的浮点特征。
假设温度数据可精确到小数点后一位,则可以将介于0.0到15.0度之间的所有温度都归入一个分箱,将介于15.1到30.0度之间的所有温度归入第二个分箱,并将介于30.1到50.0度之间的所有温度归入第三个分箱。
3、校准、采样、卷积过滤
•校准层(calibrationlayer)
一种预测后调整,通常是为了降低预测偏差的影响。
调整后的预测和概率应与观察到的标签集的分布一致。
•*候选采样(candidatesampling)*
一种训练时进行的优化,会使用某种函数(例如softmax)针对所有正类别标签计算概率,但对于负类别标签,则仅针对其随机样本计算概率。
例如,如果某个样本的标签为“小猎犬”和“狗”,则候选采样将针对“小猎犬”和“狗”类别输出以及其他类别(猫、棒棒糖、栅栏)的随机子集计算预测概率和相应的损失项。
这种采样基于的想法是,只要正类别始终得到适当的正增强,负类别就可以从频率较低的负增强中进行学习,这确实是在实际中观察到的情况。
候选采样的目的是,通过不针对所有负类别计算预测结果来提高计算效率。
•分类数据(categoricaldata)
一种特征,拥有一组离散的可能值。
以某个名为housestyle的分类特征为例,该特征拥有一组离散的可能值(共三个),即Tudor,ranch,colonial。
通过将housestyle表示成分类数据,相应模型可以学习Tudor、ranch和colonial分别对房价的影响。
有时,离散集中的值是互斥的,只能将其中一个值应用于指定样本。
例如,carmaker分类特征可能只允许一个样本有一个值(Toyota)。
在其他情况下,则可以应用多个值。
一辆车可能会被喷涂多种不同的颜色,因此,carcolor分类特征可能会允许单个样本具有多个值(例如red和white)。
分类特征有时称为离散特征。
与数值数据相对。
•形心(centroid)
聚类的中心,由k-means或k-median算法决定。
例如,如果k为3,则k-means或k-median算法会找出3个形心。
•检查点(checkpoint)
一种数据,用于捕获模型变量在特定时间的状态。
借助检查点,可以导出模型权重,跨多个会话执行训练,以及使训练在发生错误之后得以继续(例如作业抢占)。
请注意,图本身不包含在检查点中。
•*类别(class)*
为标签枚举的一组目标值中的一个。
例如,在检测垃圾邮件的二元分类模型中,两种类别分别是“垃圾邮件”和“非垃圾邮件”。
在识别狗品种的多类别分类模型中,类别可以是“贵宾犬”、“小猎犬”、“哈巴犬”等等。
•分类不平衡的数据集(class-imbalanceddataset)
一种二元分类问题,在此类问题中,两种类别的标签在出现频率方面具有很大的差距。
例如,在某个疾病数据集中,0.0001的样本具有正类别标签,0.9999的样本具有负类别标签,这就属于分类不平衡问题;但在某个足球比赛预测器中,0.51的样本的标签为其中一个球队赢,0.49的样本的标签为另一个球队赢,这就不属于分类不平衡问题。
•分类模型(classificationmodel)
一种机器学习模型,用于区分两种或多种离散类别。
例如,某个自然语言处理分类模型可以确定输入的句子是法语、西班牙语还是意大利语。
请与回归模型进行比较。
•*分类阈值(classificationthreshold)*
一种标量值条件,应用于模型预测的得分,旨在将正类别与负类别区分开。
将逻辑回归结果映射到二元分类时使用。
以某个逻辑回归模型为例,该模型用于确定指定电子邮件是垃圾邮件的概率。
如果分类阈值为0.9,那么逻辑回归值高于0.9的电子邮件将被归类为“垃圾邮件”,低于0.9的则被归类为“非垃圾邮件”。
•*聚类(clustering)*
将关联的样本分成一组,一般用于非监督式学习。
在所有样本均分组完毕后,相关人员便可选择性地为每个聚类赋予含义。
聚类算法有很多。
例如,k-means算法会基于样本与形心的接近程度聚类样本,如下图所示:
之后,研究人员便可查看这些聚类并进行其他操作,例如,将聚类1标记为“矮型树”,将聚类2标记为“全尺寸树”。
再举一个例子,例如基于样本与中心点距离的聚类算法,如下所示:
•协同过滤(collaborativefiltering)
根据很多其他用户的兴趣来预测某位用户的兴趣。
协同过滤通常用在推荐系统中。
•混淆矩阵(confusionmatrix)
一种NxN表格,用于总结分类模型的预测效果;即标签和模型预测的分类之间的关联。
在混淆矩阵中,一个轴表示模型预测的标签,另一个轴表示实际标签。
N表示类别个数。
在二元分类问题中,N=2。
例如,下面显示了一个二元分类问题的混淆矩阵示例:
上面的混淆矩阵显示,在19个实际有肿瘤的样本中,该模型正确地将18个归类为有肿瘤(18个正例),错误地将1个归类为没有肿瘤(1个假负例)。
同样,在458个实际没有肿瘤的样本中,模型归类正确的有452个(452个负例),归类错误的有6个(6个假正例)。
多类别分类问题的混淆矩阵有助于确定出错模式。
例如,某个混淆矩阵可以揭示,某个经过训练以识别手写数字的模型往往会将4错误地预测为9,将7错误地预测为1。
混淆矩阵包含计算各种效果指标(包括精确率和召回率)所需的充足信息。
•*连续特征(continuousfeature)*
一种浮点特征,可能值的区间不受限制。
与离散特征相对。
•收敛(convergence)
通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。
也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。
在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。
另请参阅早停法。
另请参阅Boyd和Vandenberghe合著的ConvexOptimization(《凸优化》)。
•凸函数(convexfunction)
一种函数,函数图像以上的区域为凸集。
典型凸函数的形状类似于字母U。
例如,以下都是凸函数:
相反,以下函数则不是凸函数。
请注意图像上方的区域如何不是凸集:
严格凸函数只有一个局部最低点,该点也是全局最低点。
经典的U形函数都是严格凸函数。
不过,有些凸函数(例如直线)则不是这样。
很多常见的损失函数(包括下列函数)都是凸函数:
•L2损失函数
•对数损失函数
•L1正则化
•L2正则化
梯度下降法的很多变体都一定能找到一个接近严格凸函数最小值的点。
同样,随机梯度下降法的很多变体都有很高的可能性能够找到接近严格凸函数最小值的点(但并非一定能找到)。
两个凸函数的和(例如L2损失函数+L1正则化)也是凸函数。
深度模型绝不会是凸函数。
值得注意的是,专门针对凸优化设计的算法往往总能在深度网络上找到非常好的解决方案,虽然这些解决方案并不一定对应于全局最小值。
•凸优化(convexoptimization)
使用数学方法(例如梯度下降法)寻找凸函数最小值的过程。
机器学习方面的大量研究都是专注于如何通过公式将各种问题表示成凸优化问题,以及如何更高效地解决这些问题。
如需完整的详细信息,请参阅Boyd和Vandenberghe合著的ConvexOptimization(《凸优化》)。
•凸集(convexset)
欧几里得空间的一个子集,其中任意两点之间的连线仍完全落在该子集内。
例如,下面的两个图形都是凸集:
相反,下面的两个图形都不是凸集:
•卷积(convolution)
简单来说,卷积在数学中指两个函数的组合。
在机器学习中,卷积结合使用卷积过滤器和输入矩阵来训练权重。
机器学习中的“卷积”一词通常是卷积运算或卷积层的简称。
如果没有卷积,机器学习算法就需要学习大张量中每个单元格各自的权重。
例如,用2Kx2K图像训练的机器学习算法将被迫找出400万个单独的权重。
而使用卷积,机器学习算法只需在卷积过滤器中找出每个单元格的权重,大大减少了训练模型所需的内存。
在应用卷积过滤器后,它只需跨单元格进行复制,每个单元格都会与过滤器相乘。
•卷积过滤器(convolutionalfilter)
卷积运算中的两个参与方之一。
(另一个参与方是输入矩阵切片。
)卷积过滤器是一种矩阵,其等级与输入矩阵相同,但形状小一些。
以28×28的输入矩阵为例,过滤器可以是小于28×28的任何二维矩阵。
在图形操作中,卷积过滤器中的所有单元格通常按照固定模式设置为1和0。
在机器学习中,卷积过滤器通常先选择随机数字,然后由网络训练出理想值。
•卷积层(convolutionallayer)
深度神经网络的一个层,卷积过滤器会在其中传递输入矩阵。
以下面的3x3卷积过滤器为例:
下面的动画显示了一个由9个卷积运算(涉及5x5输入矩阵)组成的卷积层。
请注意,每个卷积运算都涉及一个不同的3x3输入矩阵切片。
由此产生的3×3矩阵(右侧)就包含9个卷积运算的结果:
•卷积神经网络(convolutionalneuralnetwork)
一种神经网络,其中至少有一层为卷积层。
典型的卷积神经网络包含以下几层的组合:
•卷积层
•池化层
•密集层
卷积神经网络在解决某些类型的问题(如图像识别)上取得了巨大成功。
•卷积运算(convolutionaloperation)
如下所示的两步数学运算:
1.对卷积过滤器和输入矩阵切片执行元素级乘法。
(输入矩阵切片与卷积过滤器具有相同的等级和大小。
)
2.对生成的积矩阵中的所有值求和。
以下面的5x5输入矩阵为例:
现在,以下面这个2x2卷积过滤器为例:
每个卷积运算都涉及一个2x2输入矩阵切片。
例如,假设我们使用输入矩阵左上角的2x2切片。
这样一来,对此切片进行卷积运算将如下所示:
卷积层由一系列卷积运算组成,每个卷积运算都针对不同的输入矩阵切片。
•成本(cost)
与损失的含义相同。
•交叉熵(cross-entropy)
对数损失函数向多类别分类问题的一种泛化。
交叉熵可以量化两种概率分布之间的差异。
另请参阅困惑度。
•自定义Estimator(customEstimator)
您按照这些说明自行编写的Estimator。
与预创建的Estimator相对。
4、数据分析及模型化构建
•数据分析(dataanalysis)
根据样本、测量结果和可视化内容来理解数据。
数据分析在首次收到数据集、构建第一个模型之前特别有用。
此外,数据分析在理解实验和调试系统问题方面也至关重要。
•DataFrame
一种热门的数据类型,用于表示Pandas中的数据集。
DataFrame类似于表格。
DataFrame的每一列都有一个名称(标题),每一行都由一个数字标识。
•数据集(dataset)
一组样本的集合。
•DatasetAPI(tf.data)
一种高级别的TensorFlowAPI,用于读取数据并将其转换为机器学习算法所需的格式。
tf.data.Dataset对象表示一系列元素,其中每个元素都包含一个或多个张量。
tf.data.Iterator对象可获取Dataset中的元素。
如需详细了解DatasetAPI,请参阅《TensorFlow编程人员指南》中的导入数据。
•*决策边界(decisionboundary)*
在二元分类或多类别分类问题中,模型学到的类别之间的分界线。
例如,在以下表示某个二元分类问题的图片中,决策边界是橙色类别和蓝色类别之间的分界线:
•密集层(denselayer)
与全连接层的含义相同。
•深度模型(deepmodel)
一种神经网络,其中包含多个隐藏层。
深度模型依赖于可训练的非线性关系。
与宽度模型相对。
•密集特征(densefeature)
一种大部分值是非零值的特征,通常是浮点值张量。
与稀疏特征相对。
•设备(device)
一类可运行TensorFlow会话的硬件,包括CPU、GPU和TPU。
•离散特征(discretefeature)
一种特征,包含有限个可能值。
例如,某个值只能是“动物”、“蔬菜”或“矿物”的特征便是一个离散特征(或分类特征)。
与连续特征相对。
•丢弃正则化(dropoutregularization)
正则化的一种形式,在训练神经网络方面非常有用。
丢弃正则化的运作机制是,在一个梯度步长中移除从神经网络层中随机选择的固定数量的单元。
丢弃的单元越多,正则化效果就越强。
这类似于训练神经网络以模拟较小网络的指数级规模集成学习。
如需完整的详细信息,请参阅Dropout:
ASimpleWaytoPreventNeuralNetworksfromOverfitting(《丢弃:
一种防止神经网络过拟合的简单方法》)。
•*动态模型(dynamicmodel)*
一种模型,以持续更新的方式在线接受训练。
也就是说,数据会源源不断地进入这种模型。
5、集成学习与样本周期
•早停法(earlystopping)
一种正则化方法,是指在训练损失仍可以继续降低之前结束模型训练。
使用早停法时,您会在验证数据集的损失开始增大(也就是泛化效果变差)时结束模型训练。
•嵌套(embeddings)
一种分类特征,以连续值特征表示。
通常,嵌套是指将高维度向量映射到低维度的空间。
例如,您可以采用以下两种方式之一来表示英文句子中的单词:
•表示成包含百万个元素(高维度)的稀疏向量,其中所有元素都是整数。
向量中的每个单元格都表示一个单独的英文单词,单元格中的值表示相应单词在句子中出现的次数。
由于单个英文句子包含的单词不太可能超过50个,因此向量中几乎每个单元格都包含0。
少数非0的单元格中将包含一个非常小的整数(通常为1),该整数表示相应单词在句子中出现的次数。
•表示成包含数百个元素(低维度)的密集向量,其中每个元素都存储一个介于0到1之间的浮点值。
这就是一种嵌套。
在TensorFlow中,会按反向传播损失训练嵌套,和训练神经网络中的任何其他参数一样。
•经验风险最小化(ERM,empiricalriskminimization)
用于选择可以将基于训练集的损失降至最低的函数。
与结构风险最小化相对。
•集成学习(ensemble)
多个模型的预测结果的并集。
您可以通过以下一项或多项来创建集成学习:
•不同的初始化
•不同的超参数
•不同的整体结构
深度模型和宽度模型属于一种集成学习。
•周期(epoch)
在训练时,整个数据集的一次完整遍历,以便不漏掉任何一个样本。
因此,一个周期表示(N/批次大小)次训练迭代,其中N是样本总数。
•Estimator
tf.Estimator类的一个实例,用于封装负责构建TensorFlow图并运行TensorFlow会话的逻辑。
您可以创建自定义Estimator(如需相关介绍,请点击此处),也可以实例化其他人预创建的Estimator。
•样本(example)
数据集的一行。
一个样本包含一个或多个特征,此外还可能包含一个标签。
另请参阅有标签样本和无标签样本。
6、假正负例与特征集
•假负例(FN,falsenegative)
被模型错误地预测为负类别的样本。
例如,模型推断出某封电子邮件不是垃圾邮件(负类别),但该电子邮件其实是垃圾邮件。
•假正例(FP,falsepositive)
被模型错误地预测为正类别的样本。
例如,模型推断出某封电子邮件是垃圾邮件(正类别),但该电子邮件其实不是垃圾邮件。
•假正例率(falsepositiverate,简称FP率)
ROC曲线中的x轴。
FP率的定义如下:
•*特征(feature)*
在进行预测时使用的输入变量。
•特征列(tf.feature_column)
指定模型应该如何解读特定特征的一种函数。
此类函数的输出结果是所有Estimators构造函数的必需参数。
借助tf.feature_column函数,模型可对输入特征的不同表示法轻松进行实验。
有关详情,请参阅《TensorFlow编程人员指南》中的特征列一章。
“特征列”是Google专用的术语。
特征列在Yahoo/Microsoft使用的VW系统中称为“命名空间”,也称为场。
•特征组合(featurecross)
通过将单独的特征进行组合(求笛卡尔积)而形成的合成特征。
特征组合有助于表达非线性关系。
•特征工程(featureengineering)
指以下过程:
确定哪些特征可能在训练模型方面非常有用,然后将日志文件及其他来源的原始数据转换为所需的特征。
在TensorFlow中,特征工程通常是指将原始日志文件条目转换为tf.Example协议缓冲区。
另请参阅tf.Transform。
特征工程有时称为特征提取。
•特征集(featureset)
训练机器学习模型时采用的一组特征。
例如,对于某个用于预测房价的模型,邮政编码、房屋面积以及房屋状况可以组成一个简单的特征集。
•特征规范(featurespec)
用于描述如何从tf.Example协议缓冲区提取特征数据。
由于tf.Example协议缓冲区只是一个数据容器,因此您必须指定以下内容:
•要提取的数据(即特征的键)
•数据类型(例如float或int)
•长度(固定或可变)
EstimatorAPI提供了一些可用来根据给定FeatureColumns列表生成特征规范的工具。
•少量样本学习(few-shotlearning)
一种机器学习方法(通常用于对象分类),旨在仅通过少量训练样本学习有效的分类器。
另请参阅单样本学习。
•*完整softmax(fullsoftmax)*
请参阅softmax。
与候选采样相对。
•全连接层(fullyconnectedlayer)
一种隐藏层,其中的每个节点均与下一个隐藏层中的每个节点相连。
全连接层又称为密集层。
7、线性模型与梯度裁剪
•泛化(generalization)
指的是模型依据训练时采用的数据,针对以前未见过的新数据做出正确预测的能力。
•*广义线性模型(generalizedlinearmodel)*
最小二乘回归模型(基于高斯噪声)向其他类型的模型(基于其他类型的噪声,例如泊松噪声或分类噪声)进行的一种泛化。
广义线性模型的示例包括:
•逻辑回归
•多类别回归
•最小二乘回归
可以通过凸优化找到广义线性模型的参数。
广义线性模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深入浅出 机器 学习 概念 特征 算法
![提示](https://static.bdocx.com/images/bang_tan.gif)