机器学习和深度学习都是人工智能的形式。 您还可以正确地说,深度学习是一种特定的机器学习。 机器学习和深度学习都从训练和测试数据以及模型开始,然后经过优化过程以找到使模型最适合数据的权重。 两者都可以处理数字(回归)和非数字(分类)问题,尽管在对象识别和语言翻译等多个应用领域中,深度学习模型往往比机器学习模型更适合。
机器学习算法通常分为有监督的 (训练数据用答案标记)和无监督的 (可能存在的任何标签均未显示在训练算法中)。 监督式机器学习问题又分为分类 (预测非数字答案,例如错过抵押贷款的可能性)和回归 (预测数字答案,例如下个月在曼哈顿商店出售的小部件的数量)。
无监督学习又分为聚类 (查找相似对象的组,例如跑鞋,步行鞋和正装鞋), 关联 (查找对象的常见序列,例如咖啡和奶油)和降维 (投影,特征选择) ,以及特征提取)。
分类问题是有监督的学习问题,要求在两个或多个班级之间进行选择,通常为每个班级提供概率。 除了需要大量计算资源的神经网络和深度学习外,最常见的算法是朴素贝叶斯,决策树,逻辑回归,K最近邻和支持向量机(SVM)。 您还可以使用集成方法(模型的组合),例如“随机森林”,其他“装袋”方法以及增强方法(例如,AdaBoost和XGBoost)。
回归问题是有监督的学习问题,要求模型预测数字。 最简单,最快的算法是线性(最小二乘)回归,但您不应止步于此,因为它通常会给您带来中等的结果。 其他常见的机器学习回归算法(缺少神经网络)包括朴素贝叶斯,决策树,K最近邻,LVQ(学习矢量量化),LARS套索,弹性网,随机森林,AdaBoost和XGBoost。 您会注意到,用于回归和分类的机器学习算法之间存在一些重叠。
聚类问题是一种无监督的学习问题,它要求模型查找相似数据点的组。 最受欢迎的算法是K-Means聚类; 其他包括均值漂移聚类,DBSCAN(基于噪声的基于应用程序的空间聚类),GMM(高斯混合模型)和HAC(分层聚类)。
降维是一个无监督的学习问题,它要求模型删除或组合对结果影响很小或没有影响的变量。 这通常与分类或回归结合使用。 降维算法包括删除具有许多缺失值的变量,删除具有低方差的变量,决策树,随机森林,删除或组合具有高相关性的变量,后向特征消除,前向特征选择,因子分析和PCA(主成分分析)。
培训和评估可以通过优化监督算法的参数权重,找到最适合您数据真实性的一组值,从而将监督学习算法转变为模型。 算法通常将最速下降的变量用于优化程序,例如随机梯度下降,它是从随机起始点多次执行的最速下降。
上校正所述梯度的方向基于动量,或调整基于进度从一个穿过数据学习速率随机梯度下降附加因素共同精炼(称为历元或批次)到下一个。
野外没有干净的数据。 为了对机器学习有用,必须积极过滤数据。 例如,您将要:
您可以做更多的事情,但这取决于收集的数据。 这可能很乏味,但是如果您在机器学习管道中设置了数据清理步骤,则可以随意修改并重复进行。
要将分类数据用于机器分类,您需要将文本标签编码为另一种形式。 有两种常见的编码。
一种是标签编码 ,这意味着每个文本标签值都用数字代替。 另一种是一键编码 ,这意味着每个文本标签值都将变成具有二进制值(1或0)的列。 大多数机器学习框架都具有为您进行转换的功能。 通常,单热编码是首选,因为标签编码有时会使机器学习算法混淆,以为编码列应该是有序列表。
要将数字数据用于机器回归,通常需要将数据标准化。 否则,具有较大范围的数字可能趋于主导特征向量之间的欧几里得距离,其影响可能会以其他场为代价被放大,并且最陡的下降优化可能会难以收敛。 有多种方法可以对数据进行标准化和标准化,以进行机器学习,包括最小-最大标准化,均值标准化,标准化以及缩放至单位长度。 此过程通常称为特征缩放 。
特征是观察到的现象的单个可测量属性或特征。 “特征”的概念与解释变量的概念有关,该解释变量在诸如线性回归之类的统计技术中使用。 特征向量将单行的所有特征组合为数值向量。
选择特征的部分技术是选择一组最少的解释问题的自变量。 如果两个变量高度相关,则要么需要将它们组合为一个特征,要么应将其删除。 有时人们进行主成分分析以将相关变量转换为一组线性不相关变量。
人们用来构造新特征或降低特征向量维数的一些转换很简单。 例如,从Year of Death
Year of Birth
减去Year of Birth
Year of Death
然后构建Age at Death
,这是生命周期和死亡率分析的主要自变量。 在其他情况下, 特征构造可能不是那么明显。
在受监督的机器学习中,通常的做法是将数据集划分为子集,以进行训练 , 验证和测试 。 一种工作方式是将80%的数据分配给训练数据集,将10%的数据分配给验证和测试数据集。 (确切的划分是一个优先事项。)大部分训练是针对训练数据集进行的,而预测则是在每个时期结束时针对验证数据集进行的。
验证数据集中的错误可用于识别停止标准或驱动超参数调整。 最重要的是,验证数据集中的错误可以帮助您找出模型是否过拟合训练数据。
通常在最终模型上对测试数据集进行预测。 如果测试数据集从未用于训练,则有时称为保持数据集。
还有其他几种分割数据的方案。 交叉验证是一种常见的技术,涉及将完整数据集重复拆分为训练数据集和验证数据集。 在每个时期结束时,将对数据进行混洗并再次拆分。
在Python中, Spark MLlib和Scikit-learn是机器学习库的绝佳选择。 在R中,一些机器学习包选项是CARAT,randomForest,e1071和KernLab。 在Java中,不错的选择包括Java-ML,RapidMiner和Weka。
深度学习是机器学习的一种形式,其中所训练的模型在输入和输出之间具有多个隐藏层 。 在大多数讨论中,深度学习意味着使用深度神经网络 。 但是,除了神经网络之外,还有一些算法可以使用其他类型的隐藏层来实现深度学习。
“人工”神经网络的思想可以追溯到1940年代。 基本概念是,由相互连接的阈值开关构建的人工神经元网络可以像动物大脑和神经系统(包括视网膜)一样学习识别模式。
基本上,通过在训练过程中同时激活两个神经元之间的连接来进行学习。 在现代神经网络软件中,最常见的问题是使用称为误差 ,反向传播或BP的反向传播的规则来增加神经元之间连接的权重值。
神经元如何建模? 每个都有一个传播函数,该函数通常使用加权和来转换连接的神经元的输出。 传播函数的输出传递到激活函数,当其输入超过阈值时将激活。
在1940年代和50年代,人工神经元使用了逐步激活功能,被称为感知器 。 现代神经网络可能会说他们正在使用感知器,但实际上具有平滑的激活函数,例如逻辑或乙状结肠函数,双曲线正切或整流线性单位(ReLU)。 ReLU通常是快速收敛的最佳选择,尽管如果将学习率设置得太高,它在训练过程中会出现神经元“死亡”的问题。
[ 同样在InfoWorld上:使机器学习失败的6种方法 ]
激活函数的输出可以传递到输出函数以进行其他整形。 但是,输出函数通常是身份函数,这意味着激活函数的输出将传递到下游连接的神经元。
现在我们了解了神经元,我们需要了解常见的神经网络拓扑。 在前馈网络中,神经元被组织为不同的层:一个输入层, n个隐藏处理层和一个输出层。 每层的输出仅进入下一层。
在具有快捷连接的前馈网络中,某些连接可以跳过一个或多个中间层。 在递归神经网络中,神经元可以直接或通过下一层间接影响自己。
就像任何其他机器学习一样,可以进行神经网络的监督学习:向网络展示训练数据组,将网络输出与所需输出进行比较,生成误差向量,并根据误差向量对网络进行校正。 在应用校正之前一起运行的一批训练数据称为时期。
对于那些对细节感兴趣的人,反向传播使用误差(或成本)函数相对于模型的权重和偏差的梯度来发现正确的方向,以最大程度地减少误差。 两件事控制着校正的应用:优化算法和学习率变量。 学习速率变量通常需要很小,以确保收敛并避免引起死的ReLU神经元。
神经网络的优化程序通常使用某种形式的梯度下降算法来驱动反向传播,通常采用一种机制来避免陷入局部最小值中,例如优化随机选择的微型批次(随机梯度下降)并将动量校正应用于梯度。 一些优化算法还通过查看梯度历史记录(AdaGrad,RMSProp和Adam)来调整模型参数的学习率。
From: https://www.infoworld.com/article/3512245/deep-learning-vs-machine-learning-understand-the-differences.html