一文读懂深度学习(附学习资源)
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)。若没有数学推导,这些函数十分晦涩难懂。
简而言之,激活函数的作用之一便是将神经元的结果“标准化”。
一旦一组输入数据通过了神经网络的所有层,神经网络将会通过输出层返回输出数据。
一点也不复杂,是吧?
训练神经网络
训练A是深度学习中最难的部分了。这又是为什么呢?
你需要一个庞大的数据集
你还需要强大的算力
对于我们的机票价格预估系统,我们需要得到过往的票价数据。由于起始机场和起飞时间拥有大量可能的组合,所以我们需要的是一个非常庞大的票价列表。
为了训练机票价格预估系统的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)是当下最好的深度学习课程之一。如果你并不需要一个证书,你便可以免费旁听这门课程。
小结
2. 神经网络中有三个层次的神经元:输入层、隐藏层以及输出层。
3. 神经元之间的连接对应一个权重,该权重决定了各输入数据的重要程度。
4. 神经元中应用一个激活函数来“标准化”神经元输出的数据。
5. 你需要一个庞大的数据集来训练神经网络。
6. 在数据集上迭代并与输出结果相比较,我们将会得到一个损失函数,损失函数能告诉我们AI生成的结果和真实结果相差多少。
7. 在每次数据集的迭代之后,都会利用梯度下降方法调整神经元之间的权重,以减小损失函数。
数据分析咨询请扫描二维码
数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21大数据技术专业主要学习计算机科学、数学、统计学和信息技术等领域的基础理论和技能,旨在培养具备大数据处理、分析和应用能力的 ...
2024-11-21《Python数据分析极简入门》 第2节 3 Pandas数据查看 这里我们创建一个DataFrame命名为df: importnumpyasnpi ...
2024-11-21越老越吃香的行业主要集中在需要长时间经验积累和专业知识的领域。这些行业通常知识更新换代较慢,因此随着年龄的增长,从业者能 ...
2024-11-20数据导入 使用pandas库的read_csv()函数读取CSV文件或使用read_excel()函数读取Excel文件。 支持处理不同格式数据,可指定分隔 ...
2024-11-20大数据与会计专业是一门结合了大数据分析技术和会计财务理论知识的新型复合型学科,旨在培养能够适应现代会计业务新特征的高层次 ...
2024-11-20要成为一名数据分析师,需要掌握一系列硬技能和软技能。以下是成为数据分析师所需的关键技能: 统计学基础 理解基本的统计概念 ...
2024-11-20是的,Python可以用于数据分析。Python在数据分析领域非常流行,因为它拥有丰富的库和工具,能够高效地处理从数据清洗到可视化的 ...
2024-11-20在这个数据驱动的时代,数据分析师的角色变得愈发不可或缺。他们承担着帮助企业从数据中提取有价值信息的责任,而这些信息可以大 ...
2024-11-20数据分析作为现代信息时代的支柱之一,已经成为各行业不可或缺的工具。无论是在商业、科研还是日常决策中,数据分析都扮演着至关 ...
2024-11-20数字化转型已成为当今商业世界的热点话题。它不仅代表着技术的提升,还涉及企业业务流程、组织结构和文化的深层次变革。理解数字 ...
2024-11-20在现代社会的快速变迁中,选择一个具有长期增长潜力的行业显得至关重要。了解未来发展前景好的行业不仅能帮助我们进行职业选择, ...
2024-11-20统计学专业的就业方向和前景非常广泛且充满机遇。随着大数据、人工智能等技术的快速发展,统计学的重要性进一步凸显,相关人才的 ...
2024-11-20