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

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

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

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

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

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

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

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

深度学习是什么?

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

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

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

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

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

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

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

训练是如何工作的?

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

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

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

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

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

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

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

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

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

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

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

作者信息

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

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

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

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

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

相关文章
|
14天前
|
机器学习/深度学习 人工智能 安全
探索AI的未来:从机器学习到深度学习
【10月更文挑战第28天】本文将带你走进AI的世界,从机器学习的基本概念到深度学习的复杂应用,我们将一起探索AI的未来。你将了解到AI如何改变我们的生活,以及它在未来可能带来的影响。无论你是AI专家还是初学者,这篇文章都将为你提供新的视角和思考。让我们一起探索AI的奥秘,看看它将如何塑造我们的未来。
51 3
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
16天前
|
机器学习/深度学习 数据采集 人工智能
AI赋能教育:深度学习在个性化学习系统中的应用
【10月更文挑战第26天】随着人工智能的发展,深度学习技术正逐步应用于教育领域,特别是个性化学习系统中。通过分析学生的学习数据,深度学习模型能够精准预测学生的学习表现,并为其推荐合适的学习资源和规划学习路径,从而提供更加高效、有趣和个性化的学习体验。
73 9
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能与深度学习:探索未来技术的无限可能
在21世纪,人工智能(AI)和深度学习已经成为推动科技进步的重要力量。本文将深入探讨这两种技术的基本概念、发展历程以及它们如何共同塑造未来的科技景观。我们将分析人工智能的最新趋势,包括自然语言处理、计算机视觉和强化学习,并讨论这些技术在现实世界中的应用。此外,我们还将探讨深度学习的工作原理,包括神经网络、卷积神经网络(CNN)和循环神经网络(RNN),并分析这些模型如何帮助解决复杂的问题。通过本文,读者将对人工智能和深度学习有更深入的了解,并能够预见这些技术将如何继续影响我们的世界。
33 7
|
4天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
21 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
4天前
|
机器学习/深度学习 人工智能 算法
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
手写数字识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Flask框架,开发网页端操作平台,实现用户上传一张图片识别其名称。
17 0
【手写数字识别】Python+深度学习+机器学习+人工智能+TensorFlow+算法模型
|
4天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
18 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
12天前
|
机器学习/深度学习 分布式计算 自动驾驶
深度学习在图像识别中的革命性应用####
【10月更文挑战第29天】 本文深入探讨了深度学习技术如何彻底革新图像识别领域,通过卷积神经网络(CNN)的架构优化、数据集增强策略及迁移学习的应用,显著提升了图像分类与目标检测的准确率。文章概述了深度学习模型训练的关键挑战,如过拟合、计算资源依赖性,并提出了创新性解决方案,包括正则化技术、分布式计算框架及自适应学习率调整策略。强调了深度学习在自动驾驶、医疗影像分析等领域的广阔应用前景,同时指出了隐私保护、模型可解释性等伦理法律问题的重要性,为未来研究提供了方向。 ####
35 5
|
14天前
|
机器学习/深度学习 监控 自动驾驶
深度学习在图像识别中的革命性突破###
本文探讨了深度学习如何彻底变革图像识别技术,从传统方法的局限到深度学习的崛起,再到其在不同领域的广泛应用,揭示了这一领域内的创新性进展。 ###
|
15天前
|
机器学习/深度学习 人工智能 算法
AI在医疗:深度学习在医学影像诊断中的最新进展
【10月更文挑战第27天】本文探讨了深度学习技术在医学影像诊断中的最新进展,特别是在卷积神经网络(CNN)的应用。文章介绍了深度学习在识别肿瘤、病变等方面的优势,并提供了一个简单的Python代码示例,展示如何准备医学影像数据集。同时强调了数据隐私和伦理的重要性,展望了AI在医疗领域的未来前景。
38 2