深度学习与人工智能革命:part III

简介: 本文是该系列内容的第3部分内容,主要介绍人工神经网络、深度学习的基本原理,着重介绍深度学习中数据库的选择需要考虑的问题。

首发地址:https://yq.aliyun.com/articles/407641


本篇是系列博客的第部分,如果没有看过前面两部分内容的读者建议阅读一下。

I部分内容中,主要是讲解人工智能的历史以及它现在高速发展的原因;

II部分内容中,将讨论一下人工智能、机器学习和深度学习之间的区别;

在今天的第III部分内容中,将深入研究深度学习以及在为新项目选择数据库时需要评估的关键事项;

IV部分内容中,将讨论深度学习为何使用MongoDB,并提供相关使用实例;

由于本文内容是第III部分内容,主要介绍深度学习以及在为新项目选择数据库时需要评估的关键事项。如果读者想快速将四部分的内容全部看完,可以下载本文的附件。

深度学习是什么?

深度学习是机器学习研究领域中的一个分支,近年来在图像识别、自然语言处理和图像分类等领域应用十分火热,受到世界范围内的广泛关注。深度学习是人工神经网络ANN)的一种改进,正如人工神经网络一样,是模拟人类大脑学习和解决问题的一种方法。

在深入了解深度学习的工作原理前,首先理解人工神经网络(ANN)是如何工作的。人工神经网络是由一组互相连接的神经元组成,类似于人类大脑中的神经元网络。

ee953b918e5108b0596b958b9b7fe92c9638e8e3

上图是一个简化的神经元连接示意图。神经网络中的每个神经元接收与之连接的其它神经元的输入信息(Xi),然后通过计算后输出到网络中的其它神经元或节点。神经元之间的连接参数用权重(Wj)表示,权重的大小表示二者连接的强度,权重的值可正可负。将所有的输入信息都与对应的连接权重相乘(X1W1,X2W2等)并进行求和作为该节点的输出。最后一步是对神经元执行计算或激活函数处理。激活函数允许人工神经网络模拟简单模式无法正确表示的复杂的非线性问题,常用的激活函数是Sigmoid函数。

2b635bc3c87bd340c75e5d2c7573828d22597e24

上图表示一个三层的神经网络,从左往右第一层为输入层,输入对应的特征(X1,X2,X3),第二层被称作隐藏层,隐藏层可以有多层,第三层是输出层。对于一个层而言,只要该层不是输入层或输出层,那么该层就可以称作隐藏层。

“深度”学习最初就是这样产生的,因为其含有多个隐藏层,通常包含多于3个的隐藏层。在一些情况下,隐藏层的个数高达1200多个。

多个隐藏层的好处是什么呢?在某些模式下,可能需要更加深入的调查,因此多个隐藏层可以进行额外的特征处理。深度学习在图像分类领域中表现优异,甚至在某些特定任务上超过了人类的表现。现在,通过一个额外隐藏层有助于面部识别的例子来说明这一点。

06a35d552082d10b468d5fd04b00eaa4baf68041

当一张图片被输入到一个深层次的学习网络中时,它首先被分解成图像像素。然后该算法将在图像中的某些位置寻找特定形状的图案。第一个隐藏层可能试图揭示特定的面部模式:眼睛、嘴巴、鼻子、耳朵等。添加一个额外的隐藏层来解析更加细粒度的属性。例如,嘴巴可以进一步分解为牙齿嘴唇牙龈等。添加额外的隐藏层可以将这些模式更进一步抽象。最终的结果是一个深层的学习网络可以将一个非常复杂的问题分解成一系列简单的问题。隐藏层的本质是一个层次化的特征学习,它们能够更好地提取特征。目前,大多数深度学习算法都是有监督学习,即对已知的标记数据进行深度学习。

训练是如何工作的?

训练深度学习的最终目的是降低代价函数,即期望输出与实际输出之间的差异尽可能小。节点之间的连接将会有特定的权重,不断修改这些权重参数使得网络的代价函数变小。通过修改权重值,可以将代价函数最小化到全局最小值,这意味着模型的误差降到最小值。深度学习之所以计算如此密集就是因为它需要找到合适的数以十亿的连接权重值,这需要通过不断迭代训练调整得到,以找到使得代价函数全局最小值的权重集。

ff6b4f6c2bfff3e2c30a72ff573dac14d21f4104

深度学习中最为常用的训练方法是反向传播梯度下降算法。梯度下降算法是一种有效的数学优化方法,它能有效地处理大量的数据(特征),而不必强力进行维度分析。梯度下降算法根据权重函数的全局最小值来计算梯度(斜率)。在训练过程中,首先随机分配权重并计算出一个误差。然后基于这个误差,通过使用梯度下降算法来修改权重,之后反向逐层调整每层的权重参数,当调整完每层参数后又正向进行传播,计算得到一个新的误差,之后基于新的误差调整每层的参数,一直迭代到代价函数达到全局最小值为止。可能会出现一些例子,梯度下降算法是以局部最小值而不是全局最小值来计算的,减轻这个问题的方法是使用凸的代价函数或对参数产生更多的随机性。

深度学习中对数据库的思考

非关系数据库在促进机器学习和深度学习技术的最新进展中起着不可或缺的作用。收集和存储大量结构化和非结构化的数据的能力为提升深度学习预测提供的必要的原材料。在构建深度学习应用程序时,选择用于管理底层数据的数据库时要牢记一些注意事项。

灵活的数据模型。在深度学习中,数据需要经历三个阶段——输入数据、训练数据和结果数据。深度学习是一个动态的过程,通常涉及大量的实验,比如,实验过程中参数调整是很正常的事情,加上非结构化数据的输入、输出结果的修改是自然而然地发生。随着新的信息和见解被发现,重要的是在灵活数据模型上选择一个合适的数据库,避免在数据结构需要改变时需要执行昂贵的模式迁移。

规模。深度学习面临的最大挑战之一是模型训练耗费的时间比较长,有些模型可能需要几个星期的训练时间,这是由于梯度下降等算法需要通过多次迭代来调整模型的数十亿个参数。为了减少训练次数,深度学习框架尝试并行运算,将训练负荷分布到多个高性能的服务器上。

并行化训练主要有两种方式:数据并行性和模型并行性。

  • 数据并行性。通过分布式系统将数据分割成多个节点进行处理并存储,比如Apache SparkMongoDBApache Hadoop
  • 模型并行性。通过相关软件库和框架在多个节点上分割模型及其相关层,如TensorFlowCaffeTheano。分裂提供并行性,但是在协调不同节点之间的输出时会产生性能代价。

除了模型训练阶段耗费时间长外,深度学习的另一个大挑战是输入数据集不断增长,这增加了训练参数的数量。这不仅意味着输入数据集可能超过可用的服务器内存,而且还意味着涉及梯度下降的矩阵也能超过节点的内存。因此,缩放比扩展更加重要,这使得工作负载和相关的数据集在多个节点上分布,允许并行执行计算。

容错。许多深度学习算法使用检验点作为故障发生时恢复训练数据的一种方法。然而,频繁设置的检查点需要大量的系统开销。另一种方法是利用驻留在分割节点上的多个数据副本,这些副本提供冗余和数据可用性,而无需消耗系统主节点上的资源。

一致性。对于大多数深度学习算法而言,建议使用强数据一致性模型,具有强一致性的分布式数据库集群中每个节点都运行在最新的数据副本上。虽然有些算法可以容忍一定程度的不一致性,比如随机梯度下降算法(SGD),但强一致性能够提供最精确的结果。然而,在某些情况下,算法更加看重训练时间而不是精度,那么最终的一致性是可以接受的。为了优化精度和性能,数据库应该提供可调的一致性。

作者信息

Mat Keep,产品营销总监,目前就职于MongoDB团队。

个人主页:https://www.linkedin.com/in/matkeep/

本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题《Deep Learning and the Artificial Intelligence Revolution: Part 3》,作者:Mat Keep,译者:海棠,审阅:袁虎。

文章为简译,更为详细的内容,请查看原文

目录
相关文章
|
11天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
143 55
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
7天前
|
机器学习/深度学习 人工智能 搜索推荐
医疗领域的人工智能:诊断和治疗的革命
医疗领域的人工智能:诊断和治疗的革命
137 84
|
21天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
112 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
揭秘人工智能:深度学习的奥秘与实践
在本文中,我们将深入浅出地探索深度学习的神秘面纱。从基础概念到实际应用,你将获得一份简明扼要的指南,助你理解并运用这一前沿技术。我们避开复杂的数学公式和冗长的论述,以直观的方式呈现深度学习的核心原理和应用实例。无论你是技术新手还是有经验的开发者,这篇文章都将为你打开一扇通往人工智能新世界的大门。
|
20天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的革命性应用####
本文不采用传统摘要形式,直接以一段引人入胜的事实开头:想象一下,一台机器能够比人类更快速、更准确地识别出图片中的对象,这不再是科幻电影的情节,而是深度学习技术在图像识别领域带来的现实变革。通过构建复杂的神经网络模型,特别是卷积神经网络(CNN),计算机能够从海量数据中学习到丰富的视觉特征,从而实现对图像内容的高效理解和分类。本文将深入探讨深度学习如何改变图像识别的游戏规则,以及这一技术背后的原理、关键挑战与未来趋势。 ####
43 1
|
23天前
|
机器学习/深度学习 人工智能 编解码
深度学习在图像识别中的革命性进展###
近年来,深度学习技术在图像识别领域取得了显著成就,极大地推动了人工智能的发展。本文探讨了深度学习模型如何通过模拟人类视觉系统来提高图像识别的准确性和效率,并分析了几种主流的深度学习架构及其在实际应用中的表现。此外,还讨论了当前面临的挑战及未来可能的发展方向。 ###
47 4
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
揭秘AI:深度学习的奥秘与实践
本文将深入浅出地探讨人工智能中的一个重要分支——深度学习。我们将从基础概念出发,逐步揭示深度学习的原理和工作机制。通过生动的比喻和实际代码示例,本文旨在帮助初学者理解并应用深度学习技术,开启AI之旅。
|
28天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的革命性进展####
近年来,深度学习技术已彻底革新了图像识别领域,实现了从量变到质变的飞跃。本文旨在探讨深度学习如何推动图像识别技术的边界拓展,通过分析其核心算法的演变、关键突破及未来趋势,揭示这一领域快速发展背后的关键因素。不同于传统摘要形式,本文将以故事化手法,简述深度学习与图像识别交织发展的历程,展现技术背后的创新火花与挑战应对。 ####
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解人工智能中的深度学习技术及其最新进展
深入理解人工智能中的深度学习技术及其最新进展