前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >新手必看:深度学习是什么?它的工作原理是什么?

新手必看:深度学习是什么?它的工作原理是什么?

作者头像
AI研习社
发布于 2018-12-21 08:29:39
发布于 2018-12-21 08:29:39
1.2K0
举报
文章被收录于专栏:AI研习社AI研习社

本文为 AI 研习社编译的技术博客,原标题 : What is Deep Learning and how does it work? The easy guide for everyone 作者 | Alexandre Gonfalonieri 翻译 | M惠M、孙大力 校对 | 酱番梨 整理 | 菠萝妹 原文链接: https://towardsdatascience.com/what-is-deep-learning-and-how-does-it-work-the-easy-guide-for-everyone-3fd7b65dbd55

我们都熟悉“人工智能”这个词。但你最近可能听说过“机器学习” ( Machine Learning )和“深度学习” ( Deep Learning ) 等其他术语,它们有时会与人工智能 ( AI ) 互换使用。因此,人工智能、机器学习和深度学习之间的区别可能非常不清楚。 关于这个主题的文章通常都有很多的高等数学、代码,或者是其他令人困惑的高层次,以致于无法触及。 通过本文,您将了解AI和机器学习的基础知识。此外,您将了解最流行的机器学习类型深度学习是如何工作的。

定义

在深入学习深度学习的原理之前,我们必须先解释下重要术语之间的差异。

人工智能vs机器学习

人工智能是计算机科学的一个分支,研究计算机中智能行为的仿真。

每当一台机器根据一组预先定义的解决问题的规则来完成任务时,这种行为就被称为人工智能。

开发人员引入了大量计算机需要遵守的规则。计算机内部存在一个可能行为的具体清单,它会根据这个清单做出决定。如今,人工智能是一个概括性术语,涵盖了从高级算法到实际机器人的所有内容。

我们有四个不同层次的AI,让我们来解释前两个:

  • 弱人工智能,也被称为狭义人工智能,是一种为特定的任务而设计和训练的人工智能系统。弱人工智能的形式之一是虚拟个人助理,比如苹果公司的Siri。
  • 强人工智能,又称人工通用智能,是一种具有人类普遍认知能力的人工智能系统。当计算机遇到不熟悉的任务时,它具有足够的智能去寻找解决方案。

机器学习是指计算机使用大数据集而不是硬编码规则来学习的能力。

机器学习允许计算机自己学习。这种学习方式利用了现代计算机的处理能力,可以轻松地处理大型数据集。

基本上,机器学习是人工智能的一个子集;更为具体地说,它只是一种实现AI的技术,一种训练算法的模型,这种算法使得计算机能够学习如何做出决策。

从某种意义上来说,机器学习程序根据计算机所接触的数据来进行自我调整。

监督式学习vs非监督式学习

监督式学习需要使用有输入和预期输出标记的数据集。

当你使用监督式学习训练人工智能时,你需要提供一个输入并告诉它预期的输出结果。

如果人工智能产生的输出结果是错误的,它将重新调整自己的计算。这个过程将在数据集上不断迭代地完成,直到AI不再出错。

监督式学习的一个例子是天气预报人工智能。它学会利用历史数据来预测天气。训练数据包含输入(过去天气的压力、湿度、风速)和输出(过去天气的温度)。

我们还可以想象您正在提供一个带有标记数据的计算机程序。例如,如果指定的任务是使用一种图像分类算法对男孩和女孩的图像进行分类,那么男孩的图像需要带有“男孩”标签,女孩的图像需要带有“女孩”标签。这些数据被认为是一个“训练”数据集,直到程序能够以可接受的速率成功地对图像进行分类,以上的标签才会失去作用。

它之所以被称为监督式学习,是因为算法从训练数据集学习的过程就像是一位老师正在监督学习。在我们预先知道正确的分类答案的情况下,算法对训练数据不断进行迭代预测,然后预测结果由“老师”进行不断修正。当算法达到可接受的性能水平时,学习过程才会停止。

非监督式学习是利用既不分类也不标记的信息进行机器学习,并允许算法在没有指导的情况下对这些信息进行操作。

当你使用非监督式学习训练人工智能时,你可以让人工智能对数据进行逻辑分类。这里机器的任务是根据相似性、模式和差异性对未排序的信息进行分组,而不需要事先对数据进行处理。

非监督式学习的一个例子是亚马逊等电子商务网站的行为预测AI。

它将创建自己输入数据的分类,帮助亚马逊识别哪种用户最有可能购买不同的产品(交叉销售策略)。

另一个例子是,程序可以任意地使用以下两种算法中的一种来完成男孩女孩的图像分类任务。一种算法被称为“聚类”,它根据诸如头发长度、下巴大小、眼睛位置等特征将相似的对象分到同一个组。另一种算法被称为“相关”,它根据自己发现的相似性创建if/then规则。换句话说,它确定了图像之间的公共模式,并相应地对它们进行分类。

深度学习如何工作

什么是深度学习,以及它是如何工作的。

深度学习是一种机器学习方法 , 它允许我们训练人工智能来预测输出,给定一组输入(指传入或传出计算机的信息)。监督学习和非监督学习都可以用来训练人工智能。

Andrew Ng:“与深度学习类似的是,火箭发动机是深度学习模型,燃料是我们可以提供给这些算法的海量数据。”

我们将通过建立一个公交票价估算在线服务来了解深度学习是如何工作的。为了训练它,我们将使用监督学习方法。

我们希望我们的巴士票价估价师使用以下信息/输入来预测价格:

神经网络

神经网络是一组粗略模仿人类大脑,用于模式识别的算法。神经网络这个术语来源于这些系统架构设计背后的灵感,这些系统是用于模拟生物大脑自身神经网络的基本结构,以便计算机能够执行特定的任务。

和人类一样, “AI价格评估”也是由神经元(圆圈)组成的。此外,这些神经元还是相互连接的。

神经元分为三种不同类型的层次:

输入层接收输入数据。在我们的例子中,输入层有四个神经元:出发站、目的地站、出发日期和巴士公司。输入层会将输入数据传递给第一个隐藏层。

隐藏层对输入数据进行数学计算。创建神经网络的挑战之一是决定隐藏层的数量,以及每一层中的神经元的数量。

人工神经网络的输出层是神经元的最后一层,主要作用是为此程序产生给定的输出,在本例中输出结果是预测的价格值。

神经元之间的每个连接都有一个权重。这个权重表示输入值的重要性。模型所做的就是学习每个元素对价格的贡献有多少。这些“贡献”是模型中的权重。一个特征的权重越高,说明该特征比其他特征更为重要。

在预测公交票价时,出发日期是影响最终票价的最为重要的因素之一。因此,出发日期的神经元连接具有较大的“权重”。

每个神经元都有一个激活函数。它主要是一个根据输入传递输出的函数。

当一组输入数据通过神经网络中的所有层时,最终通过输出层返回输出数据。

通过训练改进神经网络

为了提高“AI价格评估”的精度,我们需要将其预测结果与过去的结果进行比较,为此,我们需要两个要素:

  1. 大量的计算能力;
  2. 大量的数据。

训练AI的过程中,重要的是给它的输入数据集(一个数据集是一个单独地或组合地或作为一个整体被访问的数据集合),此外还需要对其输出结果与数据集中的输出结果进行对比。因为AI一直是“新的”,它的输出结果有可能是错误的。

对于我们的公交票价模型,我们必须找到过去票价的历史数据。由于有大量“公交车站”和“出发日期”的可能组合,因而我们需要一个非常大的票价清单。

一旦我们遍历了整个数据集,就有可能创建一个函数来衡量AI输出与实际输出(历史数据)之间的差异。这个函数叫做成本函数。即成本函数是一个衡量模型准确率的指标,衡量依据为此模型估计X与Y间关系的能力。

模型训练的目标是使成本函数等于零,即当AI的输出结果与数据集的输出结果一致时(成本函数等于0)。

我们如何降低成本函数呢?

通过使用一种叫做梯度下降的方法。梯度衡量得是,如果你稍微改变一下输入值,函数的输出值会发生多大的变化。

梯度下降法是一种求函数最小值的方法。在这种情况下,目标是取得成本函数的最小值。

它通过每次数据集迭代之后优化模型的权重来训练模型。通过计算某一权重集下代价函数的梯度,可以看出最小值的梯度方向。

为了降低成本函数值,多次遍历数据集非常重要。这就是为什么需要大量计算能力的原因。

一旦我们通过训练改进了AI,我们就可以利用它根据上述四个要素来预测未来的价格。

你应该记住的是…

  • 人工智能可以分为两类,一般的和狭义的。
  • 机器学习只是实现人工智能的一种方式。
  • 深度学习是机器学习的一个分支,它使用神经网络来模拟人类的智力。
  • 神经网络中有三种类型的神经元层:输入层、隐藏层和输出层。
  • 神经元之间的连接与重量有关
  • 训练神经网络是很重要的,大数据集是必须的。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI研习社 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
C++ 异常处理
异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。
C语言与CPP编程
2020/12/02
1.2K0
C++ 异常处理
【c++】异常
异常是处理错误的一种方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数直接或间接的调用者处理这个错误
用户11029103
2025/02/07
1260
【c++】异常
C++异常处理
异常是一个程序执行过程中出现的问题。C++ 异常是对程序运行过程中产生的例外情况作出的响应,比如试图除以零。
软件架构师Michael
2023/08/20
2780
【C++航海王:追寻罗杰的编程之路】异常——错误处理方式之一
在C++编程中,异常处理是一种重要的技术,用于处理程序在运行时可能出现的错误或意外情况。异常是指在程序执行过程中发生的某种不正常的情况,例如除以零、内存访问错误或无效的输入等。传统的错误处理方式通常涉及使用错误代码或返回特殊值来指示问题,但这种方式可能会导致代码混乱、繁琐,并且容易被忽略或处理不当。
枫叶丹
2024/06/04
1070
【C++航海王:追寻罗杰的编程之路】异常——错误处理方式之一
【C++高阶】深入理解C++异常处理机制:从try到catch的全面解析
前言:在编程的浩瀚宇宙中,C++以其卓越的性能、强大的灵活性和对底层硬件的直接控制而著称,是无数开发者心中的瑰宝。然而,在追求高效与极致的路上,错误处理与异常管理往往成为不可忽视的重要环节。C++通过引入异常处理机制,为开发者提供了一套强大而灵活的工具,以优雅地应对程序执行过程中可能遇到的各种异常情况,从而确保程序的健壮性和可靠性
Eternity._
2024/08/09
1.1K0
【C++高阶】深入理解C++异常处理机制:从try到catch的全面解析
项目中你会用C++异常处理吗?
在 C++ 中,异常处理是一种用于处理程序运行过程中发生的错误或异常情况的机制。当程序出现异常情况时,可以使用异常处理机制来捕获、传递和处理异常,以保证程序的稳定性和可靠性。
Linux兵工厂
2024/04/01
2140
项目中你会用C++异常处理吗?
【C++】异常之道,行者无疆:解锁 C++ 的异常捕获哲学
C语言中的 strerror 将参数对应 errno 的错误信息的字符串返回。errno 是一个全局变量,当使用标准库的函数发生错误时,就会将对应的的错误码放到 errno 中,每个错误码对应着不同的错误信息,strerror 就可以将错误码对应的字符串返回。 以下为错误码 0~10 对应的信息:
HZzzzzLu
2024/12/26
2790
【C++】异常之道,行者无疆:解锁 C++ 的异常捕获哲学
【c++】c++异常&&c++的异常处理详解
实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的错误
用户10925563
2024/08/06
1670
【c++】c++异常&&c++的异常处理详解
C++异常处理机制
实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的错误。
南桥
2024/09/20
990
C++异常处理机制
[C++] 异常
异常机制是一种重要的错误处理方法,可以帮助程序在运行时检测并处理问题,从而提高程序的可靠性和可维护性。C++异常机制的核心思想是:将错误检测和错误处理分离,从而让程序结构更清晰。
DevKevin
2024/11/17
820
[C++] 异常
【C++进阶学习】第十二弹——C++ 异常处理:深入解析与实践应用
1. 异常是通过抛出对象来激活的,该对象的类型决定了应该激活那个catch的处理代码
GG Bond1
2024/08/09
1540
【C++进阶学习】第十二弹——C++ 异常处理:深入解析与实践应用
C++异常
注:实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的错误
用户9645905
2022/11/30
7240
C++异常
C++异常的介绍和分析
C++11:异常 1.C语言传统的处理错误的方式 与 C++的对比 传统的错误处理机制: 终止程序,如assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。 返回错误码,缺陷:需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码 放到errno中,表示错误 C 标准库中setjmp和longjmp组合。这个不是很常用,了解一下 实际中C语言基本都是使用返回错误码的方式处理错误,部分情况下使用终止程序处理非常严重的错误。 c++处理方式 使
雪芙花
2022/10/31
8420
C++异常的介绍和分析
C++自定义异常案例
C++ 在 <exception> 中提供了一系列标准的异常,我们可以用在我们的程序中。这些异常使用父-子分层结构展示如下:
软件架构师Michael
2023/08/20
3230
C++:异常
异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。
二肥是只大懒蓝猫
2023/03/30
7230
C++:异常
C++:异常
实际中 C 语言基本都是使用返回 错误码 的方式处理错误,部分情况下使用终止程序处理非常严重的
啊QQQQQ
2024/11/19
800
C++:异常
C++异常
基于以上问题,C++衍生了一种新的处理错误的方式。异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。
梨_萍
2023/05/14
4490
C++异常
【C++高阶】:异常详解
🧩·C++针对上面的不足,引入了异常的概念,不会终止程序,并且会将错误信息详细介绍。
IsLand1314
2024/10/15
1530
【C++高阶】:异常详解
【C++修炼之路】31.异常
异常是一种处理错误的方式,当一个函数发现自己无法处理的错误时就可以抛出异常,让函数的直接或间接的调用者处理这个错误。
每天都要进步呀
2023/10/16
2440
【C++修炼之路】31.异常
C++ 异常处理深入探讨,一文打通任督二脉!
 则将调用并退出程序。 在 c + + 中,可能会引发任何类型,但是,建议引发直接或间接从 
Lion 莱恩呀
2025/04/18
740
C++ 异常处理深入探讨,一文打通任督二脉!
相关推荐
C++ 异常处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档