“我正在参加「掘金·启航计划」”
一、从机器学习到深度学习
我们都知道,深度学习是从机器学习发展出来的,那么接下来就来介绍一下发展过程是怎么样的,同样是从统计学习和概率图模型两方面展开。
- 统计学习
- 正则化:对原有模型的改进,加入惩罚项
- 核化:将核技巧引入到机器学习内
- 集成化:结合多个模型来提高整体预测准确性的方法,以达到减小方差(bagging)、偏差(boosting)或改进预测(stacking)的效果。
- 层次化:使用更多的隐层,构建适当复杂的网络,使之能适应问题规模的方法
- PGM
- Deep Directed Network有着一些简单案例,例如Sigmoid belief Network,VAE,GAN
- 有向和无向通常指的是概率图模型的边是否有方向
Deep Neural NetworkDeep Generative Model}Deep Learningleft.
begin{matrix}
Deep; Neural; Network
Deep; Generative; Model
end{matrix}right}
Deep;Learning
我们可以看到,神经网络和概率图混合到一起,指的是深度学习,但我们通常都将神经网络作为深度学习的代表,这是因为概率图模型如果层数非常多,那么推断起来是非常困难的。但从模型解释层面来讲,往往概率图模型都能用神经网络的方面去解释,很多东西是混合在一起的。
二、从感知机到深度学习
我们上面从模型角度来进入到了深度学习,接下来也应该考虑从时间角度来看待深度学习的一个简要的发展史,这里从感知机开始,将影响深度学习发展的事件或者模型进行总结。
1958:PLA(Percetron Learning Algorithm)
1969:PLA has limitation –> 无法解决Non-linear问题,例如XOR Problem
中间萧条了很长一段时间,主要的原因是提出PLA has limitation的人非常著名:马文 · 明斯基(人工智能之父,AI领域首个图灵奖,1969年)
1981:MLP –> Feed forward NN,可以用来解决非线性问题,才使得人工智能领域重新焕发生机
1986:BP+MLP的提出,RNN提出
1989:CNN提出,Universal Approximation Theorems定理,意思是≥1 hidden layer –> 可逼近连续函数,那么1 layer is good –> why Deep?且BP本身层数过多会造成梯度消失的问题。
1993-1995:SVM + kernel + theory –> SVM流派与AdaBoost,Rand Forest的发展,同行的竞争更佳导致BP+MLP没人使用
1997:LSTM
2006:正式提出Deep Learning 的概念:基于论文Deep Belief Network <=> RBM(Restricted Boltzmann Machine受限玻尔兹曼机),同一年提出Deep Autoencoder
2009:GPU发展迅速,CUDA的提出
2011:深度学习引入到语音识别
2012:imageNet 将深度学习引入图像领域
2013:VAE
2014:GAN
2016:围棋领域
2018:GNN,连结主义+符号主义–> 推理功能
………..
从深度学习的发展史,不难看出
- 深度学习不是一个新的模型,至少06年以前它的基本理论已经成型,之所以火,最重要的原因是从实践上效果好,至少效果 > SVM,有一些相关的因素如下
- 数据量的增大
- 分布式,云计算的发展
- 硬件的发展
- 深度学习的理论可能有些模糊,但随着发展的深入,未必不能得到一些很好的解释,并且SVM PGM流派也可能与深度学习会有一些融合的趋势
三、ML-DL特点对比
在了解机器学习和深度学习的基本概念后,我们可以进一步比较这两种技术的差异。在机器学习中,我们需要向算法提供更多的信息来指导其进行准确的预测,这可以通过执行特征提取等方式实现。而在深度学习中,由于采用了人工神经网络的结构,算法可以通过自身对数据的处理来学习并进行准确的预测。
下面的表格详细比较了这两种技术的特点:
所有机器学习 | 仅限深度学习 | |
---|---|---|
数据样本数量 | 较少样本就能做出预测。 | 需要使用大量的训练样本做出预测。 |
硬件依赖性 | 可在低端设备上运行。 不需要大量的计算能力。 | 依赖于高端设备。 本身具备执行大量的矩阵乘法运算的能力。 GPU环境可以有效地优化这些运算。 |
特征提取过程 | 需要能够准确识别且由用户创建的特征。 | 从数据中学习高级特征,并自动生成新的特征。 |
学习方式 | 将学习过程分解为较小的步骤。 然后将每个步骤的结果合并成一个输出。 | 通过端到端解决问题的方式来完成学习过程。 |
训练时间 | 花费几秒钟到几小时的相对较短时间进行训练。 | 通常需要较长时间才能完成训练,因为深度学习算法涉及多个层次。 |
输出结果 | 输出通常是一个值,例如评分或分类。 | 输出可以采用多种形式,例如文本、评分或音频。 |
四、非线性问题的三种解决方法
现阶段存在的问题已经不局限于线性结构,甚至非线性问题才是大多数急需解决的问题。为此,对非线性问题进行转化将成为至关重要的一环。
有几种常见的方法,如下所示:
- 非线性转换,将低维空间转换到高维空间(Cover 定理),从而变为一个线性问题(明转):
ϕ:x(input space)⟼z(feature space)phi: x(input;space) longmapsto z(feature ;space)
- 核方法,由于非线性转换是变换为高维空间,因此可能导致维度灾难,并且可能很难得到这个变换函数,核方法不直接寻找这个转换,而是寻找一个内积(暗转):
K(x,x′)=⟨ϕ(x),ϕ(x′)⟩ 隐藏了一个ϕx,x′∈Xbegin{aligned}
& Kleft(x, x^{prime}right)=leftlanglephi(x), phileft(x^{prime}right)rightrangle ;隐藏了一个phi
& x, x^{prime} in X
end{aligned}
- 神经网络方法,将复合运算变为基本的线性运算的组合(自转 | 不转)。
在XOR问题中的经典输出逻辑是:
这个逻辑可以用数学符号表示:
这个式子是对异或符号进行拆解后的表达结果。
以异或运算举例:
复合运算−−>复合表达式−−>复合函数复合运算 –> 复合表达式 –> 复合函数
即:MLP,FNN的雏形。
这个就是一个有向无环图,运行这个概率图,就能把非线性问题的0,1分类分开。
实际上,这个就是一个简单的深度神经网络,我们把异或运算看成一个复合函数的话:
那么神经网络就是一个复合函数 。
神经网络中的每一个节点被称为神经元,它由三部分组成:输入、内部参数和输出。
五、总结
机器学习和深度学习是人工智能领域中两个重要且相关的概念。它们代表了不同的方法和技术,用于解决复杂的问题和处理大规模的数据。
机器学习是一种利用数据和统计方法来训练模型,并通过对新数据进行预测和决策的方法。它的核心思想是从数据中学习模式和规律,以便自动地进行预测和决策。机器学习算法通常基于特征工程,即手动选择和提取与问题相关的特征。这些算法可以分为监督学习、无监督学习和强化学习等不同类型,用于解决各种任务,如分类、回归和聚类等。
随着数据量的爆炸式增长和计算能力的提升,深度学习应运而生。深度学习是一种基于神经网络的机器学习方法,其主要特点是多层次的非线性变换和特征提取。通过多个神经网络层的堆叠和权重调整,深度学习模型可以自动学习和表示复杂的数据模式和特征。深度学习在图像识别、语音识别、自然语言处理等领域取得了巨大的成功,刷新了许多领域的最新记录。
相比传统的机器学习方法,深度学习具有以下优势:
-
自动特征学习:深度学习可以从原始数据中学习高级特征,无需手动进行特征工程。这减少了对领域专家知识的依赖,提高了模型的灵活性和适应能力。
-
高性能表现:深度学习模型由多个神经网络层组成,可以处理大规模数据和复杂任务。它在大规模数据集上的训练和推理具有强大的计算能力和并行处理能力。
-
泛化能力:深度学习模型具有很强的泛化能力,可以很好地处理未见过的数据和复杂的情况。这使得深度学习模型在各种现实世界的应用中表现出色。
然而,深度学习也面临一些挑战。例如,深度学习模型的训练需要大量的数据和计算资源,且对超参数的选择和调整非常敏感。此外,深度学习模型的解释性较差,很难理解其内部的决策过程。
总的来说,机器学习和深度学习都是强大的工具,为解决复杂的问题和处理大规模数据提供了有效的方法。机器学习可以通过特征工程和统计方法来进行预测和决策,而深度学习通过多层神经网络的非线性变换和特征提取来自动学习和表示数据模式。随着技术的不断进步和发展,机器学习和深度学习将在各个领域发挥越来越重要的作用,并为我们带来更多令人兴奋的创新和突破。