作者:Radu Raicea
编译:ronghuaiyang
首发:AI公园公众号
前戏
自从大家知道我是做人工智能的以后,亲戚朋友经常会有人问我,什么是AI,什么是机器学习,什么是深度学习。我也常常苦恼该如何向他们解释,现在好了,这篇文章分享给大家,看完之后,希望无论你是什么行业,做什么工作,都能对这些概念有所了解。
人工智能(AI)和机器学习(ML)是目前最热门的话题。
“人工智能”这个词每天都被随意使用。你会听到有踌躇满志的开发者说他们想学习人工智能,你还会听到高管们说,他们希望在自己的服务中实现人工智能。但是很多时候,这些人并不理解AI是什么。
不过一旦你读了这篇文章,你就会理解AI和ML的基础知识。更重要的是,你会理解深度学习,最流行的机器学习方法的工作原理。
本文面向所有人,因此不涉及高等数学。(放心了吧)
背景
理解深度学习如何工作的第一步是掌握几个重要术语之间的差异。
人工智能 vs 机器学习
人工智能 是指通过计算机复现人类的智能.。
当人工智能研究刚开始的时候,研究人员试图复制人类在特定任务上的智力,比如下棋。
他们引入了大量计算机需要遵守的规则,计算机有一个所有可能的操作的列表,根据这些规则做出不同的操作。
机器学习 指的是机器使用大量数据进行学习的能力,而不是使用硬编码规则。
机器学习允许计算机自己学习,这种学习方式利用了现代计算机的处理能力,可以轻松地处理大型数据集。
监督学习 vs 非监督学习
监督学习 到使用有标签的数据集进行学习,有标签是指每个输入有期望的输出。
当你使用监督学习训练AI时,你给它一个输入并告诉它预期的输出。
如果AI产生的输出是错误的,它将重新调整它的计算。这个过程在数据集上迭代完成,直到AI不再出错。
监督学习的一个例子是AI天气预报。它学会利用历史数据预测天气,训练数据有输入(压力、湿度、风速)和输出(温度)。
非监督学习 是使用没有指定结构的数据集进行机器学习的任务。
当你使用无监督学习训练AI时,你让AI对数据自己进行逻辑分类。
无监督学习的一个例子是电子商务网站的行为预测AI。它不会通过使用带有标签的输入和输出数据集来学习。相反,它将创建自己对输入数据的分类。它会告诉你哪种用户最有可能购买哪些不同的产品。
现在,深度学习是如何工作的?
现在你已经准备好理解什么是深度学习,以及它是如何工作的。
深度学习是一种机器学习方法。它允许我们通过给定一组输入,训练AI预测输出。有监督学习和无监督学习都可以用来训练AI。
我们将通过构建一个机票价格估算服务来了解深度学习是如何工作的。我们将使用监督学习的方法来训练它。
我们希望我们的机票价格估算器使用以下输入来预测价格(为了简单起见,我们不包括返程机票):
- 出发机场
- 目的地机场
- 出发日期
- 航空公司
神经网络
让我们看看AI的大脑内部。
和动物一样,我们的价格估算器AI的大脑也有神经元,它们用圆圈表示,这些神经元是相互连接的。
神经元分为三种不同类型的层:
- 输入层
- 隐藏层
- 输出层
输入层接收输入数据。在我们的示例中,输入层中有四个神经元:出发机场、目的地机场、出发日期和航空公司。输入层将输入传递给第一个隐藏层。
隐藏层对我们的输入执行数学计算。创建神经网络的挑战之一是决定隐含层的数量,以及每个层的神经元数量。
深度学习中的“深层”是指拥有超过一个的隐藏层。
输出层返回输出数据。在我们的例子中,它给出了机票的价格预测。
那么它是如何计算对价格的预测的呢?
这就是深度学习的神奇之处。
神经元之间的每个连接都与一个权重相关联。这个权重决定了输入值的重要性。初始权值是随机设置的。
在预测机票价格时,出发日期是一个比较重要的因素。因此,出发日期的神经元连接具有较大的权重。
每个神经元都有一个激活函数,没有数学推理,这些函数是很难理解的。
简单地说,它的目的之一就是“标准化”神经元的输出。
一旦一组输入数据通过神经网络的所有层,它就通过输出层返回输出数据。
没有什么复杂的,对吧?
训练神经网络
训练人工智能是深度学习中最难的部分,为什么?
- 你需要一个大数据集。
- 你需要大量的计算能力。
对于我们的机票价格估算器,我们需要找到机票价格的历史数据。由于有大量可能的机场和起飞日期的组合,我们需要一份非常大的机票价格清单。
为了训练AI,我们需要给它数据集的输入,并将它的输出与数据集的输出进行比较。因为AI还没有经过训练,所以它的输出是错误的。
一旦我们遍历了整个数据集,我们就可以创建一个函数来告诉我们AI的输出与实际输出有多大差别。这个函数称为代价函数。
理想情况下,我们希望代价函数为零。这时AI的输出与数据集的输出相同。
我们怎样才能降低代价函数?
我们改变神经元之间的权重。我们可以随机改变它们直到我们的代价函数很低,但这不是很有效果。
我们将使用一种称为梯度下降的技术。
梯度下降法是一种求函数最小值的方法。在我们的例子中,我们寻找的是代价函数的最小值。
它的工作方式是在每次数据集迭代之后以小增量更改权重。通过计算成本函数在某一权重上的导数(或梯度),我们可以看到最小值在哪个方向。
为了最小化成本函数,需要多次迭代数据集。这就是为什么需要大量计算能力的原因。
使用梯度下降法更新权重是自动完成的。这就是深度学习的神奇之处!
一旦我们训练了机票价格估算器AI,我们就可以用它来预测未来的价格。
我在哪里可以学到更多内容?
还有许多其他类型的神经网络:卷积神经网络用于计算机视觉,循环神经网络用于自然语言处理。
如果你想学习深度学习的技术方面,我建议你参加一些在线课程。
目前,深度学习最好的课程之一是吴恩达的Deep Learning Specialization。如果你对获得证书不感兴趣的话,你不需要支付课程费用,可以免费学习这门课程。
总结
- 深度学习利用神经网络模拟人类的智力。
- 神经网络中有三种神经元层:输入层、隐藏层和输出层。
- 神经元之间的连接与权重有关,决定了输入值的重要性。
- 神经元对数据应用一个激活函数来“标准化”神经元输出的数据。
- 要训练一个神经网络,你需要一个大的数据集。
- 对数据集进行迭代并比较输出,会产生一个代价函数,表示AI的预测输出与实际输出相差多少。
- 每次迭代数据集后,利用梯度下降法调整神经元之间的权重,降低成本函数。
英文原文链接:https://medium.freecodecamp.o...
推荐阅读
- 4个步骤成功构建出一个机器学习团队
- 图解半监督学习FixMatch,只用10张标注图片训练CIFAR10
- Transformer中16个注意力头一定要比1个注意力头效果好吗?
- 2020年以来的图像分割进展:结构,损失函数,数据集以及框架
关注图像处理,自然语言处理,机器学习等人工智能领域,请点击关注AI公园专栏。
欢迎关注微信公众号