如何才能深度学习呢?:人工智能和深度计算人工智能(Artificial Intelligence,AI),是指基于底层算法、计算机技术模拟、扩:-深度,学习,才能,如何
人工智能(Artificial Intelligence,AI),是指基于底层算法、计算机技术模拟、扩展人大脑智能的理论、方法、技术和应用系统的一门新的技术科学。人工智能一直学界研究和关注的重点,跨越了数学、生理学、计算机等多学科的明星学科,已经发展了好几十年,BP神经网络、SVM都曾经带动AI火了好一阵子。最近AI火又烧起来了,自2006年以来,依赖于分布式计算、云计算使得计算机并行处理能力大大加强,而且而且在算法上又有了突进。我们说的算法就是深度计算 Deep Learning。
12年6月,媒体报道了Google Brain项目,大家的广泛关注。项目有著名机器学习教授Andrew Ng和JeffDean共同主导,用16000个CPU Core的并行计算平台训练一种称为“深度神经网络”(DNN,Deep Neural Networks)的机器学习模型(内部有10亿个节点),在语音识别和图像识别等领域获得了巨大的成功。
15年谷歌开源了,旗下著名的AI和深度学习 TensorFlow引擎,引燃了AI和DL在大火。
TensorFlow 是谷歌在DistBelief基础上发展的第二代人工智能学习系统。关于其名称来源:Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow是指张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。
TensorFlow可广泛地应用于语音识别,自然语言理解,计算机视觉,广告等等。
同时各大厂商也都推出了类似的机器学习框架。
深度学习是在AI,神经网络的一个新算法,如果要系统学习AI,你必须有一定基础的数学技能、AI和模式算法的基础,不是一下深入的。
建议先打一些数学和AI、模式识别等基本算法的基础,然后可以学习机器学习的公开课,比如Hinton 的Neural Networks for Machine Learning,斯坦福 CS231。
关于中文课程,台湾一个教授李宏毅的一个中文在线课程Hung-yi Lee :
课程设置非常合理,内容由浅入深,内容很全,大概会涵盖近几年最新的paper ,而且也会引用reddit 讨论的deep learning问题,同时他也会讲很多调参的技巧。
注重应用和实践的一些课程和工具框架的教学。比如2015年时候讲theano,17年讲tensorflow以及keras。他的课程主页上有ppt,video,homework,非常适合初学者食用,如果你的数学很差,他的课程主页有一门linear algebra,还有一门machine learning ,这两门课会补很多数学知识。
另外李宏毅的视频教程,去搜索下,各大视频网站基本上都有。
我将从意识与潜意识层次的视角来谈学习。
挑选一本书,粗略看,不求甚解,如果觉得不好,就淘汰。
如果觉得可以进入深度读书阶段。
刻意练习
掌握这本书的知识。【意识层次的学习】
设计知识,使它变成大脑的思维。【意识层次】
刻意实践使用
通过思维使用知识形成潜意识持有的信念,意识层次的反复修炼过程。把新学的知识应用于实际的实践。
方法:大脑模拟回放、思考、行动。
自动化思维层次
意识层次掌握的东西贯彻到潜意识层次。【潜意识层次】。
意识层次的一些特点,学习要根据意识的特点。
单任务
串行
慢思考
计算量大
比较耗能量
前台运作
非自动化
学习一本新书,刚开始时,由于在意识层次学习东西,它只能是单任务的,串行、而且计算量大、比较费能量。
要把知识拆解成多个部分,A知识、B知识、C知识。寻找维度拆解、各个击破。
掌握一些意识层次与潜意识层次工作的特点,有助于我们去明明白白学习,并能根据意识与潜意识层次的特点,来规划和安排学习。
要达到深度学习,要了解意识层次与潜意识层次的特点,这只是深度学习其中最基础的一个视角。
Medium上获得超过一万五千赞的深度学习入门指南,结合图文为你缕清深度学习中的各个基础概念的内涵。
Image credit: Datanami
人工智能(AI)
(https://en.wikipedia.org/wiki/Artificial_intelligence)
和机器学习(ML)
(https://en.wikipedia.org/wiki/Machine_learning)
都属于目前最热门的话题。
在日常生活中,AI这个术语我们随处可见。你或许会从立志高远的开发者哪那里听说她(他)们想要学习AI。你又或许会从运营者那里听到他们想要在他们的的服务中实施AI。但往往这些人中的绝大多数都并不明白什么是AI。
在你阅读完这篇文章之后,你将会了解AI和ML的基本知识。而更重要的是,你将会明白深度学习(https://en.wikipedia.org/wiki/Deep_learning),这类最热门的机器学习,是如何运作的。
这篇教程适用于所有人,所以本文并没有涉及高级数学。
背景
理解深度学习如何工作的第一步是掌握下列重要术语之间的区别。
人工智能(AI)v.s.机器学习(ML)
人工智能是人类智能在计算机上的复制。
AI的研究之初,那时的研究人员尝试着复制人类智能来完成像玩游戏这样特定的任务。
他们引入了大量的计算机需要遵守的规则。有了这些规则,计算机就有了一份包含各种可能行动的清单,并基于这些规则作出决定(https://en.wikipedia.org/wiki/Expert_system)。
机器学习,指的是机器使用大量数据集而非硬编码规则来进行学习的能力。
ML允许计算机通过自身来学习。这种学习方法得益于现代计算机的强大性能,性能保证了计算机能够轻松处理样本数巨大的数据集。
监督学习 v.s. 非监督学习
监督学习
(https://en.wikipedia.org/wiki/Supervised_learning)
指的是利用已标注数据集进行的学习,该数据中包含输入和期望输出。
当你利用监督学习来训练AI时,你提供给它一份输入,并告诉它预期的输出。
如果AI所生成的输出是错误的(译者注:与期望输出不同),它将重新调整计算(注:应该是对公式的参数进行重新计算)。这个过程将会在数据集上迭代运行,直到AI不再犯错误。
预测天气的AI便是监督学习的一个典型例子。它通过学习过往数据来预测未来天气。该训练数据拥有输入(气压,湿度,风速)和输出(温度)。
非监督学习
(https://en.wikipedia.org/wiki/Unsupervised_learning)
是机器学习应用没有指定结构的数据集来进行学习的任务。
当你应用非监督学习来训练AI时,你可以让AI对数据进行逻辑分类。
电商网站上的行为预测AI便是非监督学习的一个例子。它无法通过拥有输入和输出的已标注数据集来进行学习。相反地,它在输入数据上创建它自己的分类。它将会告诉你哪一种用户最可能购买差异化的商品。
深度学习又是如何运作的呢?
现在你已经准备好去理解什么是深度学习,以及它是如何运作的。
深度学习是机器学习中的一种方法。在给予它一组输入后,它使我们能够训练AI来预测结果。监督学习和非监督学习都能够用来训练AI。
我们将通过建立一个假设的机票价格预估系统来阐述深度学习是如何运作的。我们将应用监督学习方法来训练它。
我们想要该机票价格预估系统基于下列输入来进行预测(为了简洁,我们除去了返程机票):
起飞机场
到达机场
起飞日期
航空公司
神经网络
接下来我们将视角转向我们的AI的大脑内部。
和动物一样,我们预估系统AI的大脑中有神经元。将它们用圆圈表示。这些神经元在内部都是相互连接的。
Image credit: CS231n
这些神经元又被分为三种层次:
输入层
隐藏层
输出层
输入层接收输入数据。在本案例中,在输入层中有4个神经元:起飞机场,到达机场,起飞日期以及航空公司。输入层将输入传递给第一个隐藏层。
隐藏层针对我们的输入进行数学运算。创建神经网络的一大难点便是决定隐藏层的层数,以及每层中神经元的个数。
深度学习中的“深度”所指的是拥有多于一层的隐藏层。
输出层返回的是输出数据。在本案例中,输出层返回的是价格预测。
那么它到底是如何来运算价格预测的呢?
这便是我们将要揭晓的深度学习的奇妙之处了。
每两个神经元之间的连接,都对应着一个权重。该权重决定了输入值的重要程度。初始的权重会被随机设定。
当预测机票价格时,起飞日期是决定价格的最重要的因素之一。因此,与起飞日期这个神经元相连的连接将会有更高的权重。
Image credit: CodeProject
每个神经元都有一个激活函数(https://en.wikipedia.org/wiki/Activation_function)。若没有数学推导,这些函数十分晦涩难懂。
简而言之,激活函数的作用之一便是将神经元的结果“标准化”。
一旦一组输入数据通过了神经网络的所有层,神经网络将会通过输出层返回输出数据。
一点也不复杂,是吧?
训练神经网络
训练AI是深度学习中最难的部分了。这又是为什么呢?
你需要一个庞大的数据集
你还需要强大的算力
对于我们的机票价格预估系统,我们需要得到过往的票价数据。由于起始机场和起飞时间拥有大量可能的组合,所以我们需要的是一个非常庞大的票价列表。
为了训练机票价格预估系统的AI,我们需要将数据集的数据给予该系统,然后将它输出的结果与数据集的输出进行比对。因为此时AI仍然没有受过训练,所以它的输出将会是错误的。
一旦我们遍历完了整个数据集,我们便能创造出一个函数,该函数告诉我们AI的输出和真实输出到底相差多少。这个函数我们称为损失函数。
在理想情况下,我们希望我们的损失函数为0,该理想情况指的是AI的输出和数据集的输出相等之时。
如何减小损失函数呢?
改变神经元之间的权重。我们可以随机地改变这些权重直到损失函数足够小,但是这种方法并不够高效。
取而代之地,我们应用一种叫做梯度下降(https://en.wikipedia.org/wiki/Gradient_descent)的技巧。
梯度下降是一种帮助我们找到函数最小值的技巧。在本案例中,我们寻找损失函数的最小值。
在每次数据集迭代之后,该方法以小增量的方式改变权重。通过计算损失函数在一组确定的权重集合上的导数(梯度),我们便能够知悉最小值在哪个方向。
Image credit: Sebastian Raschka
为了最小化损失函数,你需要多次迭代数据集。这便是需要高算力的原因了。
利用梯度下降更新权重的过程是自动进行的。这便是深度学习的魔力所在!
一旦我们训练好机票价格预估的AI之后,我们便能够用它来预测未来的价格了。
拓展阅读
神经网络有非常多的种类:用于计算机视觉(https://en.wikipedia.org/wiki/Computer_vision)的卷积神经网络(https://en.wikipedia.org/wiki/Convolutional_neural_network)以及应用于自然语言处理(https://en.wikipedia.org/wiki/Natural_language_processing)的循环神经网络(https://en.wikipedia.org/wiki/Recurrent_neural_network)。
如果你想要学习深度学习的技术细节,我建议你参加一个在线课程。
吴恩达(https://medium.com/@andrewng)的深度学习专项课程(https://www.coursera.org/specializations/deep-learning)是当下最好的深度学习课程之一。如果你并不需要一个证书,你便可以免费旁听这门课程。
小结
1. 深度学习应用神经网络来模仿动物智能。
2. 神经网络中有三个层次的神经元:输入层、隐藏层以及输出层。
3. 神经元之间的连接对应一个权重,该权重决定了各输入数据的重要程度。
4. 神经元中应用一个激活函数来“标准化”神经元输出的数据。
5. 你需要一个庞大的数据集来训练神经网络。
6. 在数据集上迭代并与输出结果相比较,我们将会得到一个损失函数,损失函数能告诉我们AI生成的结果和真实结果相差多少。
7. 在每次数据集的迭代之后,都会利用梯度下降方法调整神经元之间的权重,以减小损失函数。
在今年的 ICML 上,深度学习理论成为最大的主题之一。会议第一天,Sanjeev Arora 就展开了关于深度学习理论理解的教程,并从四个方面分析了关于该领域的研究:非凸优化、超参数和泛化、深度的意义以及生成模型。
2017 年 12 月 NIPS 的 Test-of-Time Award 颁奖典礼上,Ali Rahimi 这样呼吁人们加深对深度学习的理解:
我希望生活在这样的一个世界,它的系统是建立在严谨可靠而且可证实的知识之上,而非炼金术。[……] 简单的实验和定理是帮助理解复杂大现象的基石。
Ali 的目标不是解散各个领域,而是「展开对话」。这个目标已经实现了,但对于目前的深度学习应被视为炼金术还是工程或科学,人们仍存在分歧。
7 个月后,在斯德哥尔摩举行的国际机器学习会议 (ICML) 上,机器学习社区又聚焦了这个问题。此次大会与会者有 5000 多名,并累计发表论文 629 篇,这是基础机器学习研究的「年度大戏」。而深度学习理论已成为此次会议的最大主题之一。
会议第一天,最大的房间里就挤满了机器学习相关人员,他们准备聆听 Sanjeev Arora 关于深度学习理论理解的教程。这位普林斯顿大学计算机科学教授在演讲中总结了目前的深度学习理论研究领域,并将其分成四类:
非凸优化:如何理解与深度神经网络相关的高度非凸损失函数?为什么随机梯度下降法会收敛?
超参数和泛化:在经典统计理论中,为什么泛化依赖于参数的数量而非深度学习?存在其它较好的泛化方法吗?
深度的意义:深度如何帮助神经网络收敛?深度和泛化之间的联系是什么?
生成模型:为什么生成对抗网络(GAN)效果非常好?有什么理论特性能使模型稳定或者避免模式崩溃?
在这一系列的文章中,我们将根据最新的论文(尤其是 ICML2018 的论文),帮助大家直观理解这四个方面。
第一篇文章将重点讨论深度网络的非凸优化问题。
我敢打赌,你们很多人都曾尝试过训练自己的「深度网络」,结果却因为无法让它发挥作用而陷入自我怀疑。这不是你的错。我认为都是梯度下降的错。
Ali Rahimi 在 NIPS 演讲中曾说,随机梯度下降 (SGD) 的确是深度学习的基石,它应该解决高度非凸优化问题。理解它何时起作用,以及为什么起作用,是我们在深度学习的基本理论中一定会提出的最基本问题之一。具体来说,对于深度神经网络的非凸优化研究可以分为两个问题:
损失函数是什么样的?
SGD 为什么收敛?
如果让你想象一个全局最小值,很可能你脑海中出现的第一幅图是这样的:
二维世界中的全局最小值附近,函数是严格凸的(这意味着 hessian 矩阵的两个特征值都是正数)。但在一个有着数十亿参数的世界里,就像在深度学习中,全局最小值附近的方向都不平坦的可能性有多大?或者 hessian 中一个为零(或近似为零)的特征值都没有的概率有多大?
Sanjeev Arora 在教程中写的第一个评论是:损失函数的可能方向数量会随着维度的增长呈指数增长。
直观上看,全局最小值似乎不是一个点而是一个连接管(connected manifold)。这意味着如果找到了全局最小值,你就能够穿过一条平坦的路径,在这条道路上,所有的点都是最小值。海德堡大学的一个研究团队在论文《Essentially No Barriers in Neural Network Energy Landscape》中证明了这一点。他们提出了一个更常规的说法,即任何两个全局最小值都可以通过一条平坦的路径连接。
在 MNIST 上的 CNN 或在 PTB 上的 RNN 已经是这样的情况,但是该项研究将这种认知扩展到了在更高级的数据集(CIFAR10 和 CIFAR100)上训练的更大网络(一些 DenseNet 和 ResNet)上。为了找到这条路径,他们使用了一种来自分子统计力学的启发式方法,叫做 AutoNEB。其思想是在两个极小值之间创建一个初始路径(例如线性),并在该路径上设置中心点。然后迭代地调整中心点的位置,以最小化每个中心点的损失,并确保中心点之间的距离保持不变(通过用弹簧建模中心点之间的空间)。
虽然他们没有从理论上证明这个结果,但他们对为什么存在这样的路径给出了一些直观的解释:
如果我们扰乱单个参数,比如添加一个小常数,然后让其它部分去自适应这种变化,仍然可以使损失最小化。因此可以认为,通过微调,无数其它参数可以「弥补」强加在一个参数上的改变。
因此,本文的结果可以帮助我们通过超参数化和高维空间,以不同的方式看待极小值。
通俗来说,当考虑神经网络的损失函数时,你应该牢记一个给定的点周围可能有非常多的方向。由此得出另一个结论,鞍点肯定比局部最小值多得多:在给定的关键点上,在数十亿个可能的方向中,很可能会找到一个向下的方向(如果不是在全局最小值上)。这种认知在 NIPS 2014 年发表的论文《Identifying and attacking the saddle point problem in high-dimensional non-convex optimization》中被严格规范化,并得到了实证证明。
为什么 SGD 收敛(或不收敛)?
深度神经网络优化的第二个重要问题与 SGD 的收敛性有关。虽然这种算法长期以来被看做是一种快速的近似版梯度下降,但我们现在可以证明 SGD 实际上收敛于更好、更一般的最小值。但我们能否将其规范化并定量地解释 SGD 脱离局部极小值或鞍点的能力?
SGD 修改了损失函数
论文《An Alternative View: When Does SGD Escape Local Minima?》表明,实施 SGD 相当于在卷积(所以平滑)的损失函数上进行常规梯度下降。根据这一观点并在某些假设下,他们证明了 SGD 将设法脱离局部最小值,并收敛到全局最小值附近的一个小区域。
SGD 由随机微分方程控制
连续 SGD 彻底改变了我对这个算法的看法。在 ICML 2018 关于非凸优化的研讨会上,Yoshua Bengio 在他关于随机梯度下降、平滑和泛化的演讲中提出了这个想法。SGD 不是在损失函数上移动一个点,而是一片点云或者说一个分布。
幻灯片摘自 Y. Bengio 在 ICML 2018 发表的演讲。他提出用分布(或点云)代替点来看待 SGD。
这个点云的大小(即相关分布的方差)与 learning_rate / batch_size 因子成正比。Pratik Chaudhari 和 Stefano Soatto 在论文《Stochastic gradient descent performs variational inference, converges to limit cycles for deep networks》中证明了这一点。这个公式非常直观:较低的 batch size 意味着梯度非常混乱(因为要在数据集一个非常小的子集上计算),高学习率意味着步骤混乱。
将 SGD 视为随时间变化的分布可以得出:控制下降的方程现在是随机偏微分方程。更准确地说,在某些假设下,论文表明控制方程实际上是一个 Fokker-Planck 方程。
幻灯片摘自 P. Chaudhari 和 S. Soatto 在 ICML 2018 发表的演讲——《High-dimensional Geometry and Dynamics of Stochastic Gradient Descent for Deep Networks》。他们展示了如何从离散系统过渡到 Fokker-Plank 方程所描述的连续系统。
在统计物理学中,这种类型的方程描述了暴露在曳力 (使分布推移,即改变平均值) 和随机力 (使分布扩散,即增加方差) 下的粒子的演化。在 SGD 中,曳力由真实梯度建模,而随机力则对应算法的内在噪声。正如上面的幻灯片所示,扩散项与温度项 T = 1 /β= learning_rate /(2 * batch_size) 成正比,这再次显示了该比值的重要性!
Fokker-Planck 方程下分布的演化。它向左漂移,随时间扩散。图源:维基百科
通过这个框架,Chaudhari 和 Soatto 证明了我们的分布将单调地收敛于某个稳定的分布(从 KL 散度的意义来说):
Pratik Chaudhari 和 Stefano Soatto 论文的一个主要定理,证明了分布的单调会收敛到稳定状态(在 KL 散度意义中)。第二个方程表明,使 F 最小化相当于最小化某个潜在的?以及扩大熵的分布(温度 1 /β控制的权衡)。
在上面的定理中有几个有趣的观点:
SGD 最小化的函数可以写成两项之和(Eq. 11):潜在Φ和熵的分布。温度 1 /β控制这两项的权衡。
潜在Φ只取决于数据和网络的架构(而非优化过程)。如果它等于损失函数,SGD 将收敛到全局最小值。然而, 本文表明这种情况比较少见。而如果知道Φ与损失函数的距离,你将可以知道 SGD 收敛的概率。
最终分布的熵取决于 learning_rate/batch_size(温度)的比例。直观上看,熵与分布的大小有关,而高温会导致分布具有更大的方差,这意味着一个平坦的极小值。平坦极小值的泛化能力更好,这与高学习率和低 batch size 能得到更优最小值的经验是一致的。
因此,将 SGD 看作是一个随时间变化的分布表明,在收敛性和泛化方面,learning_rate/batch_size 比每个独立的超参数更有意义。此外,它还引入了与收敛相关的网络潜力,为架构搜索提供了一个很好的度量。
探索深度学习理论的过程可以分为两部分:首先,通过简单的模型和实验,建立起关于深度学习理论如何及其为什么起作用的认知,然后将这些理念以数学形式呈现,以帮助我们解释当前的结论并得到新的结果。
在第一篇文章中,我们试图传达更多关于神经网络高维损失函数和 SGD 解说的直观认知,同时表明新的形式主义正在建立,目的是建立一个关于深层神经网络优化的真正数学理论。
然而,虽然非凸优化是深度学习的基石并且拥有大量的层数和参数,但它取得的成功大部分源于其优秀的泛化能力。这将是下一篇文章将分享的内容。
Sanjeev Arora:印度裔美国理论计算机科学家,他以研究概率可检验证明,尤其是PCP定理而闻名。研究兴趣包括计算复杂度理论、计算随机性、概率可检验证明等。他于2018年2月被推选为美国国家科学院院士,目前是普林斯顿大学计算机科学系教授。
学习的目的在于记忆,记忆之真谛在于全神贯注。
那么如何做到全神贯注,我个人有三点来说一说:
第一就是培养兴趣,兴趣是学习的老师,有了兴趣就会去钻研去思考,去努力,学习自己兴趣的东西也往往会事半功倍。
第二是自身状况,要选择自己好的状态,身体舒适,精神明朗,不要没有休息好感觉困得要死要活了,还想着能深度的学习。
第三是环境,人是环境的产物,没有一个好的环境自己是很难学习的。先说关于人的环境,那就是你周边的人都是做什么的,物以类聚,人以群分,你的朋友亲人都是好学的那么你也多少收影响。在说物质的环境,在马路上看书和在图书馆看书学习的深度也是完全不同。
最后要说,培养兴趣,锻炼身体,保持精力,多交向上的朋友,让自己处在有利的环境。
附图一张罗丹的思考者,找到自己学习的状态,深度随之就来了。
深度学习已经在计算机视觉、语音识别、自然语言处理以及很多商业领域都有着特别广泛的应用。
给你介绍两种目前常用的深度学习技术:卷积网络和循环神经网络。
卷积网络,也叫卷积神经网络。卷积神经网络模拟了人眼观察图片的过程。人眼在观察一副图片的过程中,每次仅仅聚焦在一个局部区域,通过扫描的方式可以观察到完整图片。通过该种方式,卷积神经网络大大减少了计算量,加快了学习过程,在图片识别领域获得了巨大的成功。例如,我们经常使用的百度识图,采用的就是深度卷积神经网络技术。不仅如此,卷积神经网络也开始广泛运用在语音识别领域,比如科大讯飞的全新的语音识别系统。
深度学习另外的一个重要技术就是循环神经网络。与卷积神经网络不同,循环神经网络当前的输出结果与上一时刻的结果相关。它可以处理比如文本,语音,视频,气象观测数据以及股票交易数据等具有时间顺序的数据,预测接下来的发展。比如,当给定一句话的前半部分,循环神经网络会利用语言模型,预测接下来最有可能的一个词是什么。很多聊天机器人,比如微软小冰、百度小度、苹果Siri等语音识别、机器翻译、无人驾驶、人脸解锁、刷脸支付就是用了这个技术,甚至在一些领域已经出现慢慢接管人类工作的趋势。
感谢诚邀!
所谓深度学习,是眼、脑、心三处协同专注于内容,以获得最佳的学习效果,个人关于深度学习提供以下几点心得
学前自问。向自己提问,学习的目的是什么?内心对内容的渴求程度、学习计划及学习时间、学习后的用途。自问的目的是让自己有更清醒的认知,保证自己在学习时的专注力
放空大脑。深度学习需要抛出杂念,从而专注于书本的内容,紧跟作者的思维展开联想,才能保证更好的记忆与沉淀
学习笔记。好记性不如烂笔头,边学习边做笔记,可以加深对学习内容巩固,也便于后续的复习
学习总结。总结即意味着回顾,将学习内容进行有效提炼,是验证学习成果最有效的手段
学习实践。实践是巩固学习成果的最佳方式,回到学习的初衷,也是为了最终践行,也将价值最大化。
综上5点,个人心得,供参考!不足之处,还请大家积极评论、补充!
更多学习分享,请关注头条号,每天与职场同仁学习总结,一同进步!
【勤聪云课堂 学习促成长】
如何才能深度学习呢?如何进入深度学习领域呢?
虽然大多数都是自学但是仍得益于专业化的设计。什么是序列模型?什么是注意力模型?是不是非得微积分才能理解这些概念,其实如果只在电脑上操作两个矩阵相乘只需要高中知识就够了。
当然了,深入学习还需要线性代数的支撑,需要了解非常基本的知识,了解一些编程。但是有人已经做了机器学习的调用,所以进行深度学习非常容易。
初学者在学习人工智能的时候,应该多实践,了解算法之间的不同之处,一开始不要费心去收集数据。
在学习的过程中要进行自我测试,花时间修改架构,尝试新东西,高效的构建神经网络,但规模也不要太大,神经网络的规模要在你可支出的范围之内即可。你可以在前六个月建立一个完整项目,眼光不要只放在数据这一个小的方面。
必须着手构建实用的机器学习的系统思维框架,打个比方,我们在学习编程的时候哦,必须必须学习一些语法,Python也好,C++也好。但同样重要的是,也许编码中更重要的部分是理解如何将这些代码融合在一起。什么时候应该在函数列中放置一些东西?你什么时候不放置?什么样的框架能让程序员更加高效?
我记得当我在读本科时,我的一个朋友会先试着用代码来调试他们的代码。
他每一行都要注意语法错误。语法错误是可怕的,应该学习如何调试。另外,机器学习程序中调试的方式与二进制搜索方式非常不同。
非常擅长调试机器学习算法的人,会让某些东西工作起来的速度很容易就快了10倍,也许是几百倍,他们调试的过程非常高效。
与学习数学类似,深度学习的一个挑战是,有太多的的概念。如果你忽略了概念,那么你就可能弄不清后面要做的事情的前提条件。因此,在深度学习的专业化学习中,要尽量打破概念,最大限度提高可理解性。这样的话,当深入学习时,就会有足够的信心。
另外,我发现,如果我尝试教给学生最有用的技巧,并让他们即刻使用,就会缩短他们“强制”学习的时间。
现在的世界变化太快了,也许几年的时间就会天翻地覆,但我认为我们还需要更多的进行强化学习。深度学习令人如此兴奋,但人工智能团队不应该只使用深度学习,我的团队就会使用一系列的工具。有时候我们使用PC电脑,试图在PC上找出解决问题的原因,有时候使用代理模型,有时候使用草稿,这里面或许会有一些对行业有巨大影响的内容。多样化的技能可以帮助我们发现更适用解决问题的工具。
在学术方面我也有期望。假如我只做学术,并且有无限的预算,不用担心短期的影响的话,我会把所有的精力都花在研究无监督学习上,因为无监督学习是一个美丽的想法,它让人兴奋。
举一个自监督学习的例子:我在网上抓取了一些无标签的图像数据,数据的种类各种各样,那么我会将每张图片旋转、翻转,然后训练一个有监督的神经网络预测图片原来的方位。因为旋转了图片,所以产生的有标签的数据就是无限多。
研究人员已经发现,通过无标签数据和捏造标签数据集,然后训练一个大型的新网络,采用隐藏层表示并使用迁移学习能够将其转移到另一个强大的算法上面。
无监督学习越来越重要,并且在现实世界里发挥着作用,尤其是在计算机视觉领域,此概念融合其他学科的概念会让人兴奋。
我对稀疏编码也非常感兴趣,我看到过一个慢特征分析,其想法可以追溯几年前的工作内容,但当时我们都被监督学习所分散精力,所以希望研究者可以围绕主题探索更多的工作,以便能够出圈。
时下,很多人都会存在一个学习误区:把持有当作拥有,把阅读、学习本身,当作学习的效果。
当说起学习,很多人都会自骄的说,一年读了XX本书,学到了XX个知识,并且附上详尽的学习笔记和思维导图。但他们都弄错了学习本身的含义,学习并不是追求你存货多少,而是需要把学到的东西,运用到生活、工作当中去,或者至少对你个人有所启发。
不轻易下任何一个断言,永远保持这思考的习惯,寻求事物背后的规律。深度学习要求你不断的主动去思考,把知识做到内化于己。
1.用自己的话复述。所有的知识都不需要死记硬背,而是试着在理解的基础上,把它表达出来,就好像你把它教给一个完全不明白的人一样。这样,通过不断的讲述,让你的大脑保持思考的习惯,把知识点完全内化。
2.发散联想。学习的过程中,时常会遇到一些很有趣的知识点,或者一些很实用的知识点。此时,你要学会发散性思维,举一反三,把它相关联的知识点都罗列出来,做到系统化、全面化,这是一种更有效的学习方法。
3.用主题去统领内容。因为工作需要,当你需要去学习某个技能或知识时,你可以先罗列出你需要学习的各点各面,再去寻找一切相关的资料,把各种碎片化的信息整合起来,成为自己的知识体系。
4.丰富知识网络。有了以上3个步骤之后,你还要定期对自己的知识进行审视、总结,勾画出一个思维导图,相信我,你又可以得到新的观点,以此不断的进行自我迭代。
谢邀!
机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。
深度学习本来并不是一种独立的学习方法,其本身也会用到有监督和无监督的学习方法来训练深度神经网络。但由于近几年该领域发展迅猛,一些特有的学习手段相继被提出(如残差网络),因此越来越多的人将其单独看作一种学习的方法。
机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对真实世界中的事件做出决策和预测。与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。
拓展资料:
机器学习直接来源于早期的人工智能领域,传统的算法包括决策树、聚类、贝叶斯分类、支持向量机、EM、Adaboost等等。从学习方法上来分,机器学习算法可以分为监督学习(如分类问题)、无监督学习(如聚类问题)、半监督学习、集成学习、深度学习和强化学习。传统的机器学习算法在指纹识别、基于Haar的人脸检测、基于HoG特征的物体检测等领域的应用基本达到了商业化的要求或者特定场景的商业化水平,但每前进一步都异常艰难,直到深度学习算法的出现。
最初的深度学习是利用深度神经网络来解决特征表达的一种学习过程。深度神经网络本身并不是一个全新的概念,可大致理解为包含多个隐含层的神经网络结构。为了提高深层神经网络的训练效果,人们对神经元的连接方法和激活函数等方面做出相应的调整。其实有不少想法早年间也曾有过,但由于当时训练数据量不足、计算能力落后,因此最终的效果不尽如人意。深度学习摧枯拉朽般地实现了各种任务,使得似乎所有的机器辅助功能都变为可能。无人驾驶汽车,预防性医疗保健,甚至是更好的电影推荐,都近在眼前,或者即将实现。
更多有关人工智能的资讯、深度报道、采访欢迎关注AI中国,无论你是小白还是大神,你想要的这里都有!
华裔女赌王就此没落,生前让所有 浓情端午粽飘香,青浦邀你“云体 上海:“云端”展现端午节文化内 “甜咸大战”!明星艺人们喜欢什 如何做一个男人喜欢的情人(如何 当你和你同时出现在同一个场景中 如何在昏暗的光线下设置快门速度 教育在生活中的价值是什么? 世上做坏事的人死后会面临什么因 拜登就任总统后的第一步是什么? 同意/不同意:人生最重要的目标 二战后,德国在调和分歧方面做得 亚伯·林肯恨白人吗? 一个编辑能把你的故事毁得有多严 现在的iPhone6还能坚持再用一年 曹操为什么不杀司马懿? 现在买房是不是最便宜的时候,现 我身边的农业银行营业厅关了,AT 欧洲媒体评选CBA最有实力球员, 荣耀play的6+128和荣耀8X的6+128 蚂蚁集团是科技公司还是金融公司 请问机友华为mate30P与华为mate3 听说老詹修剪一次指甲需要5小时 为什么说宝宝“一月睡二月哭三月 戴笠人称戴老板,这个是怎么叫出 没有工作能一次性补缴社保么? 我想知道定向师范生和免费师范生 肺癌引起的咳嗽是怎样的呢? 5000mAh电池的5G手机推荐吗?要 恒大亚冠表现“差强人意”,你觉