【Python深度学习(第二版)(2)】深度学习之前:机器学习简史
发布时间:2026/11/3 1:14:33 锦皓数字建站
(2)】深度学习之前:机器学习简史`)
文章目录一. 深度学习的起源1. 概率建模--机器学习分类器2. 早期神经网络--反向传播算法的转折3. 核方法 -- 忽略神经网络4. 决策树、随机森林和梯度提升机5. 神经网络替代svm与决策树二. 深度学习与机器学习有何不同可以这样说当前工业界所使用的大部分机器学习算法不是深度学习算法。深度学习不一定总是解决问题的正确工具有时没有足够的数据深度学习不适用有时用其他算法可以更好地解决问题。如果第一次接触的机器学习就是深度学习那么你可能会发现手中只有一把深度学习“锤子”而所有机器学习问题看起来都像是“钉子”。为了避免陷入这个误区唯一的方法就是熟悉其他机器学习方法并在适当的时候进行实践。这里我们将简要回顾这些方法并了解这些方法发展的历史背景。这样一来我们便可以将深度学习放入机器学习的大背景中更好地理解深度学习的起源和重要性。一. 深度学习的起源1. 概率建模–机器学习分类器概率建模probabilistic modeling是统计学原理在数据分析中的应用。它是最早的机器学习形式之一至今仍在广泛使用。在概率建模中最著名的算法之一就是朴素贝叶斯算法。朴素贝叶斯是一类机器学习分类器基于对贝叶斯定理的应用。它假设输入数据的特征都是独立的这是一个很强的假设或者说是“朴素”的假设其名称正来源于此。贝叶斯定理和统计学基础可以追溯到18世纪只要学会这两点就可以开始使用朴素贝叶斯分类器了。另一个密切相关的模型是logistic回归logistic regression简称logreg它有时被认为是现代机器学习的“Hello World”。不要被它的名称所误导——logreg是一种分类算法而不是回归算法。与朴素贝叶斯类似logreg的出现也比计算机早很长时间但由于它既简单又通用因此至今仍然很有用。面对一项分类任务数据科学家通常首先会在数据集上尝试使用这种算法以便初步熟悉该分类任务。2. 早期神经网络–反向传播算法的转折虽然人们早在20世纪50年代就开始研究神经网络及其核心思想但这一方法在数十年后才被人们所使用。在很长一段时间里一直没有训练大型神经网络的有效方法。这种情况在20世纪80年代中期发生了变化当时有多人独立地重新发现了反向传播算法——一种利用梯度下降优化来训练一系列参数化运算链的方法并开始将其应用于神经网络。神经网络的第一个成功的实际应用来自于1989年的贝尔实验室当时YannLeCun将卷积神经网络的早期思想与反向传播算法相结合并将其应用于手写数字分类问题。由此得名的LeNet在20世纪90年代被美国邮政署采用用于自动读取信封上的邮政编码。3. 核方法 – 忽略神经网络神经网络取得了第一次成功并从20世纪90年代开始在研究人员中受到一定重视但一种新的机器学习方法在这时声名鹊起很快就使人们将神经网络抛诸脑后。这种方法就是核方法。核方法kernel method是一组分类算法其中最有名的就是支持向量机support vector machineSVM。SVM是一种分类算法其原理是寻找划分两个类别的“决策边界”如下图所示。SVM通过以下两步来寻找决策边界。(1)将数据映射到新的高维表示此时决策边界可以用一个超平面来表示如果数据像图那样是二维的那么超平面就是一条直线。(2)尽量让超平面与每个类别最近的数据点之间的距离最大化从而计算出良好的决策边界分离超平面。这一步叫作间隔最大化maximizing themargin。这样一来决策边界便可以很好地推广到训练数据集之外的新样本。将数据映射到高维表示从而使分类问题简化这一方法可能听起来很不错但实际上计算起来很棘手。这时就需要用到核技巧kernel trick核方法正是因这一核心思想而得名。核技巧的基本思想是要在新的表示空间中找到良好的决策超平面不需要直接计算点在新空间中的坐标只需要计算在新空间中点与点之间的距离而利用核函数可以高效地完成这种计算。核函数kernel function是一个在计算上容易实现的运算它将初始空间中的任意两点映射为这两点在目标表示空间中的距离从而完全避免了直接计算新的表示。SVM刚刚出现时在简单的分类问题上表现出非常好的性能。当时只有少数机器学习方法得到大量的理论支持并且经得起严谨的数学分析因此非常易于理解和解释SVM就是其中之一。由于SVM具有这些有用的性质因此它在很长一段时间里非常流行。但事实证明SVM很难扩展到大型数据集并且在图像分类等感知问题上的效果也不好。SVM是一种浅层方法因此要将其应用于感知问题首先需要手动提取出有用的表示这一步骤叫作特征工程。这一步骤很难而且不稳定。如果想用SVM来进行手写数字分类那么你不能从原始像素开始而应该首先手动找到有用的表示比如前面提到的像素直方图使问题变得更易于处理。4. 决策树、随机森林和梯度提升机决策树decision tree是类似于流程图的结构可以对输入数据进行分类或根据输入预测输出值如下图所示。决策树的可视化和解释都很简单。在21世纪前10年从数据中进行学习的决策树开始引起研究人员的浓厚兴趣。到了2010年决策树往往比核方法更受欢迎。决策树需要学习的参数是关于数据的问题。举个例子问题可能是“数据中第2个系数是否大于3.5”随机森林random forest算法引入了一种稳健且实用的决策树学习方法即首先构建许多专门的决策树然后将它们的输出集成在一起。与随机森林类似梯度提升机也是将弱预测模型通常是决策树进行集成的机器学习技术。它使用了梯度提升gradient boosting方法这种方法通过迭代地训练新模型来专门弥补原有模型的弱点从而可以提升任何机器学习模型的效果。将梯度提升技术应用于决策树时得到的模型与随机森林具有相似的性质但在绝大多数情况下效果更好。它可能是目前处理非感知数据最好的算法之一如果非要加“之一”的话。5. 神经网络替代svm与决策树自2012年以来深度卷积神经网络convnet已成为所有计算机视觉任务的首选算法。更一般地说它适用于所有感知任务。在2015年之后的主要计算机视觉会议上绝大多数演讲或多或少与convnet有关。与此同时深度学习也在许多其他类型的问题上得到应用比如自然语言处理。它已经在大量应用中完全取代了SVM与决策树。举个例子欧洲核子研究中心CERN多年来一直使用基于决策树的方法来分析来自大型强子对撞机LHCATLAS探测器的粒子数据但CERN最终转向基于Keras的深度神经网络因为后者的性能更好而且在大型数据集上易于训练。二. 深度学习与机器学习有何不同主要不同深度学习让解决问题变得更加简单因为它将特征工程完全自动化而这曾经是机器学习工作流程中最关键的一步。先前的机器学习技术浅层学习仅涉及将输入数据变换到一两个连续的表示空间通常使用简单的变换比如高维非线性投影SVM或决策树。但这些技术通常无法得到复杂问题所需要的精确表示。因此人们不得不竭尽所能让初始输入数据更适合于用这些方法处理不得不手动为数据设计良好的表示层。这一步叫作特征工程feature engineering。与此相对深度学习将这一步完全自动化利用深度学习可以一次性学习所有特征而无须自己手动设计。这极大地简化了机器学习工作流程通常用一个简单、端到端的深度学习模型取代复杂的多级流程。连续应用浅层学习方法的问题你可能会问如果问题的关键在于有多个连续表示层那么能否重复应用浅层方法以实现与深度学习类似的效果呢在实践中如果连续应用浅层学习方法那么其收益会随着层数增加而迅速降低因为三层模型中最优的第一表示层并不是单层模型或双层模型中最优的第一表示层。深度学习的变革之处在于模型可以在同一时间共同学习所有表示层而不是依次连续学习这被称为贪婪学习。通过共同的特征学习每当模型修改某个内部特征时所有依赖于该特征的其他特征都会相应地自动调节适应无须人为干预。一切都由单一反馈信号来监督模型中的每一处变化都是为最终目标服务。这种方法比贪婪地叠加浅层模型更强大因为它可以通过将复杂、抽象的表示拆解为多个中间空间层来学习这些表示每个中间空间仅仅是前一个空间的简单变换。深度学习从数据中进行学习时有两个基本特征通过逐层渐进的方式形成越来越复杂的表示对中间这些渐进的表示共同进行学习每一层的修改都需要同时考虑上下两层。这两个特征叠加在一起使得深度学习比先前的机器学习方法更成功。参考《Python深度学习第二版》–弗朗索瓦·肖莱
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。