人工智能(AI)和机器学习(ML)是目前最热门的话题之一。
你每天都能不经意地听人提起“AI”这个词。你听到有抱负的开发者说他们想学习AI。你也听到管理人员说他们想在他们的服务中实现人工智能。但是很多时候,这些人中有很大一部分其实并不理解AI是什么。
阅读完本文后,你将理解AI和ML的基础知识。更重要的是,你将理解目前最流行的一种ML——深度学习是如何工作的。
本指南面向所有人,因此不会涉及高等数学。
dnn
图片来源 Datanami
背景
理解深度学习如何工作的第一步是掌握重要术语之间的差异。
人工智能 vs 机器学习
人工智能是人类智能在计算机中的复制。
当人工智能研究开始时,研究人员试图复制人类智能来完成特定的任务——比如玩游戏。
他们给计算机引入了需要遵守的大量规则。计算机有一个可能行动的特定清单,并根据这些规则作出决定。
机器学习是指机器使用大数据集而不是硬编码的规则进行学习的能力。
ML允许电脑自行学习。这种类型的学习利用了现代计算机的处理能力——可以轻松处理大数据集。
有监督学习 vs 无监督学习
监督学习涉及使用标记好的数据集,这些数据集具有输入和预期输出。
当你使用监督式学习来训练AI时,你给它一个输入并告诉它预期的输出。
如果AI生成的输出错误,它将重新调整自己的计算。这个过程是通过数据集迭代完成的,直到AI不再犯错。
监督学习的一个例子是天气预报AI。它学习使用历史数据来预测天气。训练数据有输入(压力、湿度、风速)和输出(温度)。
无监督学习是使用没有特定结构的数据集进行机器学习。
当你使用无监督学习训练AI时,你让AI对数据进行逻辑分类。
无监督学习的一个例子是电子商务网站的行为预测AI。它不会通过使用具有输入和输出的标记数据集来学习。
相反,它会创建自己的输入数据分类。它会告诉你哪类用户最有可能购买某种商品。
现在,深度学习如何工作?
你现在已经准备好理解什么是深度学习,以及它是如何工作的。
深度学习是一种机器学习方法。给定一组输入,它允许我们训练AI来预测输出。有监督学习和无监督学习都可以用来训练AI。
我们将通过建立一个假想的机票价格估算服务来了解深度学习是如何工作的。我们将使用有监督学习方法进行训练。
我们希望我们的机票价格估算器使用以下输入来预测价格(为简单起见,我们不考虑回程票):
始发地机场
目的地机场
出发日期
航空公司
神经网络
来看看我们的AI的大脑。
像动物一样,我们的估算AI的大脑也有神经元。我们用圆圈表示它们。这些神经元是相互连接的。
nn
图片来源:CS231n
神经元可以分为3种不同类型的层:
输入层
隐藏层
输出层
输入层接收输入数据。在我们的例子中,输入层有4个神经元:始发地机场、目的地机场、出发日期和航空公司。输入层将输入传递给第一个隐藏层。
隐藏层对我们的输入进行数学运算。创建神经网络的挑战之一是决定隐藏层的层数,以及每层神经元的数量。
深度学习中的“深度”是指具有不止一个隐藏层。
输出层返回输出数据。在我们的例子中,它给我们价格预测。
机票价格预测网络
那么它如何计算价格预测呢?
这正是深度学习魔法开始的地方。
神经元之间的每个连接都关联了一个权重。这个权重决定了输入值的重要性。初始权重是随机设置的。
在预测机票价格时,出发日期是较重要的因素之一。 因此,出发日期的神经元连接将有一个高权重。
weights
图片来源:CodeProject
每个神经元都有一个激活函数。不依靠数学推理,很难理解这些函数。
简单来说,激活函数的目的之一是“规整化”神经元的输出。
一旦一组输入数据通过了神经网络的所有层,它就将通过输出层返回输出数据。
没什么复杂的,对吧?
训练神经网络
训练AI是深度学习中最难的部分。为什么?
你需要一个大数据集。
你需要大规模的算力。
对于我们的机票价格估算器而言,我们需要找到票价的历史数据。由于可能的机场和出发日期组合数很多,我们需要一个非常大的票价清单。
为了训练AI,我们需要给它提供数据集中的输入,并将其输出与数据集的输出进行比较。由于AI尚未经过训练,其输出将是错误的。
一旦我们训练完了整个数据集,我们就可以创建一个函数,告诉我们AI的输出相比真实输出错了多少。这个函数被称为损失函数。
理想情况下,我们希望我们的损失函数值为零。那时我们的AI输出和数据集中的输出完全一致。
如何降低损失函数?
我们改变神经元之间的权重。我们可以随机地改变它们,直到我们的损失函数变低,但是这样效率不是很高。
相反,我们将使用一种梯度下降的技术。
渐变下降是一种可以让我们找到一个函数的极小值的技术。在我们的例子中,我们寻找损失函数的极小值。
它通过在每个数据集迭代之后少量增加权重来工作。通过计算一定权重下的损失函数的导数(或梯度),我们能够看到极小值在哪个方向上。
梯度下降
图片来源:Sebastian Raschka
为了最小化损失函数,你需要多次遍历数据集。这就是为什么你需要大量算力。
使用梯度下降来更新权重是自动完成的。这就是深度学习的魔法!
一旦我们训练了我们的票价估算AI,我们就可以用它来预测未来的价格。
哪里可以学到更多?
本文来自工业机器人网,如若转载,请注明出处:https://www.jqr.com/news/008968 |