0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度学习的基础知识,深度学习神经网络和学习过程的历史

倩倩 ? 来源:lq ? 作者:智能甄选 ? 2019-09-20 15:57 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在本文中,我将向您简要介绍深度学习的基础知识,无论您之后可能选择何种语言,库或框架。

介绍

试图用很好的理解来解释深度学习可能需要一段时间,所以这不是本文的目的。

目的是帮助初学者理解该领域的基本概念。然而,即使是专家也可能会在以下内容中找到有用的东西。

冒着极其简单的风险(请专家请原谅我),我会尽量给你一些基本信息。如果不出意外,这可能只会引发一些人更愿意深入研究这个问题。

一些历史

深度学习本质上是一个新的和时髦的名称,一个主题已经存在了相当长一段时间的神经网络

当我在90年代初开始学习(和爱好)这个领域时,这个主题已经众所周知了。事实上,第一步是在20世纪40年代(麦卡洛克和皮茨),但从那时起,这个领域的进展一直很大,直到现在。该领域取得了巨大的成功,在智能手机,汽车和许多其他设备上进行了深入的学习。

那么,什么是神经网络,你可以用它做什么?

好吧,让我们关注计算机科学的经典方法:程序员设计一种算法,对于给定的输入,它会生成输出。

他或她准确地设计函数f(x)的所有逻辑,以便:

y = f(x)

其中x和y分别是输入和输出。

但是,有时设计f(x)可能并不那么容易。例如,想象一下,x是面部图像,y是通信者的名字。对于自然大脑来说,这项任务非常容易,而计算机算法难以完成!

这就是深度学习和神经网络发挥作用的地方。基本原则是:停止尝试设计f()算法并尝试模仿大脑。

好的,大脑是如何表现的?它使用几个无限对(x,y)样本(训练集)训练自己,并且在整个逐步过程中,f(x)函数自动形成自身。它不是由任何人设计的,而是从无休止的试错法提炼机制中产生的。

想象一个孩子每天看着他或她周围的熟悉的人:数十亿的快照,从不同的位置,视角,光线条件,每次进行关联,每次纠正和锐化下面的自然神经网络。

人工神经网络是由大脑中的神经元和突触构成的自然神经网络的模型。

典型的神经网络结构

为了保持简单(并且能够利用当今机器的数学和计算能力),可以将神经网络设计为一组层,每层包含节点(大脑神经元的人工对应物),其中层中的每个节点连接到下一层中的每个节点。

每个节点都有一个由两个限制之间的浮点数表示的状态,通常为0和1.当此状态接近其最小值时,该节点被视为非活动(关闭),而当它接近最大值时,该节点被视为活动状态(上)。你可以把它想象成一个灯泡; 不严格依赖于二进制状态,但也能够处于两个限制之间的某个中间值。

每个连接都有一个权重,因此前一层中的活动节点可能或多或少地对下一层中的节点的活动(兴奋性连接)做出贡献,而非活动节点不会传播任何贡献。

连接的权重也可以是负的,这意味着前一层中的节点(或多或少地)对下一层中的节点的不活动性(抑制连接)做出贡献。

为简单起见,让我们描述一个网络的子集,其中前一层中的三个节点与下一层中的节点相连。再简单来说,假设前一层中的前两个节点处于其最大激活值(1),而第三个节点处于其最小值(0)。

在上图中,前一层中的前两个节点是活动的(on),因此,它们对下一层中节点的状态有所贡献,而第三个节点在非活动(关闭)中有所贡献,因此它不会贡献以任何方式(独立于其连接重量)。

第一个节点具有强(厚)正(绿色)连接权重,这意味着它对激活的贡献很高。第二个具有弱(薄)负(红色)连接重量; 因此,它有助于抑制连接节点。

最后,我们得到了来自前一层的传入连接节点的所有贡献的加权和。

其中i是节点i的激活状态,w ij是连接节点i和节点j的连接权重。

那么,给定这个加权和数,我们如何判断下一层中的节点是否会被激活?规则是否简单如“如果总和为正,它将被激活,而如果负数则不会”?嗯,它可能是这种方式,但一般来说,它取决于您为节点选择的激活函数(以及哪个阈值)。

想一想; 这个最终数字可以是实数范围内的任何数字,而我们需要使用它来设置具有更有限范围的节点的状态(假设从0到1)。然后我们需要将第一个范围映射到第二个范围,以便将任意(负数或正数)数字压缩到0..1范围。

执行此任务的一个非常常见的激活函数是sigmoid函数

阈值(y值达到范围中间的x值,即0.5)为零,但通常,它可以是任何值(负或正,导致sigmoid向左移位)或右边)。

低阈值允许以较低加权和激活节点,而高阈值将仅使用该总和的高值来确定激活。

该阈值可以通过考虑前一层中的附加虚节点来实现,其具有恒定激活值1.在这种情况下,实际上,该虚节点的连接权重可以充当阈值,并且总和公式以上可以认为包含阈值本身。

最终,网络的状态由其所有权重的值集合(从广义上讲,包括阈值)来表示。

给定状态或一组权重值可能会产生不良结果或大错误,而另一个状态可能会产生良好结果,换句话说,就是小错误。

因此,在N维状态空间中移动会导致小的或大的错误。将权重域映射到错误值的此函数是损失函数。我们的思想不能轻易想象在N + 1空间中的这种功能。但是,我们可以得到N = 2的特殊情况的一般概念:阅读本文,你会看到。

训练神经网络包括找到最小的损失函数。为什么一个好的最小值而不是全局最小值?好吧,因为这个函数通常是不可微分的,所以你只能借助一些Gradient Descent技术在权重域中游荡,并希望不要:

做出太大的步骤,可能会让你在没有意识到的情况下爬到最低限度

做太小的步骤可能会让你锁定在一个不太好的局部最小值

这不是一件容易的事,是吧?这就是为什么这是深度学习的总体主要问题,以及为什么训练阶段可能需要数小时,数天或数周。这就是为什么您的硬件对于此任务至关重要以及为什么您经常需要停止培训并考虑不同的方法和配置参数值并重新开始它的原因!

但让我们回到网络的一般结构,这是一堆层。第一层是输入(x),而最后一层是输出(y)。

中间的层可以是零,一个或多个。它们被称为隐藏层,深度学习中的“深层”一词恰好指的是网络可以有许多隐藏层,因此可能在训练期间找到更多关联输入和输出的特征。

注意:在20世纪90年代,你会听说过多层网络而不是深层网络,但这是一回事。现在,已经越来越清楚的是,层越远离输入(深层),它就越能捕获抽象特征。

另请参阅: 从程序员的角度设计Java中的神经网络

学习过程

在学习过程开始时,权重是随机设置的,因此第一层中的给定输入集将传播并生成随机(计算)输出。然后将该输出与所提供输入的所需输出进行比较; 差异是衡量网络错误的指标(损失函数)。

然后,此错误用于对生成它的连接权重应用调整,此过程从输出层开始,逐步向后移动到第一层。

应用的调整量可以很小或很大,并且通常在称为学习率的因素中定义。

该算法称为反向传播,并在Rumelhart,Hinton和Williams研究后于1986年开始流行。

请记住中间的名字:Geoffrey Hinton。他经常被称为“深度学习的教父”,是一位不知疲倦的照明科学家。例如,他现在正在研究一种名为Capsule Neural Networks的新范例,这听起来像是该领域的另一场伟大革命!

反向传播的目标是通过对训练集中每次迭代的权重进行适当的校正来逐渐减少网络的整体误差。再次,考虑到减少误差的这个过程是困难的部分,因为没有任何保证重量调整总是朝着正确的方向进行最小化。

这个问题总结为在n维表面找到最小值,同时用眼罩踩着:你可以找到一个局部最小值,永远不知道你是否能表现得更好。

如果学习速率太小,则该过程可能导致过慢,并且网络可能停滞在局部最小值。另一方面,较大的学习速率可能导致跳过全局最小值并使算法发散。

事实上,在训练阶段,问题往往是减少错误的过程不会收敛,错误会增加而不是缩小!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4815

    浏览量

    104681
  • 函数
    +关注

    关注

    3

    文章

    4388

    浏览量

    65444
  • 深度学习
    +关注

    关注

    73

    文章

    5573

    浏览量

    123158
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    嵌入式AI技术之深度学习:数据样本预处理过程中使用合适的特征变换对深度学习的意义

    ? 作者:苏勇Andrew 使用神经网络实现机器学习网络的每个层都将对输入的数据做一次抽象,多层神经网络构成深度
    的头像 发表于 04-02 18:21 ?1007次阅读

    军事应用中深度学习的挑战与机遇

    人工智能尤其是深度学习技术的最新进展,加速了不同应用领域的创新与发展。深度学习技术的发展深刻影响了军事发展趋势,导致战争形式和模式发生重大变化。本文将概述
    的头像 发表于 02-14 11:15 ?621次阅读

    如何优化BP神经网络学习

    训练过程中发生震荡,甚至无法收敛到最优解;而过小的学习率则会使模型收敛速度缓慢,容易陷入局部最优解。因此,正确设置和调整学习率对于训练高效、准确的神经网络模型至关重要。 二、
    的头像 发表于 02-12 15:51 ?1121次阅读

    BP神经网络深度学习的关系

    BP神经网络深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 一、BP神经网络的基本概念 BP神经网络,即反向传播
    的头像 发表于 02-12 15:15 ?1041次阅读

    深度学习入门:简单神经网络的构建与实现

    深度学习中,神经网络是核心模型。今天我们用 Python 和 NumPy 构建一个简单的神经网络神经网络由多个
    的头像 发表于 01-23 13:52 ?624次阅读

    人工神经网络的原理和多种神经网络架构方法

    在上一篇文章中,我们介绍了传统机器学习基础知识和多种算法。在本文中,我们会介绍人工神经网络的原理和多种神经网络架构方法,供各位老师选择。 01 人工
    的头像 发表于 01-09 10:24 ?1504次阅读
    人工<b class='flag-5'>神经网络</b>的原理和多种<b class='flag-5'>神经网络</b>架构方法

    传统机器学习方法和应用指导

    在上一篇文章中,我们介绍了机器学习的关键概念术语。在本文中,我们会介绍传统机器学习基础知识和多种算法特征,供各位老师选择。 01 传统机器学习 传统机器
    的头像 发表于 12-30 09:16 ?1359次阅读
    传统机器<b class='flag-5'>学习</b>方法和应用指导

    卷积神经网络的实现工具与框架

    卷积神经网络因其在图像和视频处理任务中的卓越性能而广受欢迎。随着深度学习技术的快速发展,多种实现工具和框架应运而生,为研究人员和开发者提供了强大的支持。 TensorFlow 概述
    的头像 发表于 11-15 15:20 ?810次阅读

    深度学习中的卷积神经网络模型

    深度学习近年来在多个领域取得了显著的进展,尤其是在图像识别、语音识别和自然语言处理等方面。卷积神经网络作为深度学习的一个分支,因其在图像处理
    的头像 发表于 11-15 14:52 ?970次阅读

    NPU在深度学习中的应用

    随着人工智能技术的飞速发展,深度学习作为其核心驱动力之一,已经在众多领域展现出了巨大的潜力和价值。NPU(Neural Processing Unit,神经网络处理单元)是专门为深度
    的头像 发表于 11-14 15:17 ?2275次阅读

    深度学习框架中的LSTM神经网络实现

    长短期记忆(LSTM)网络是一种特殊的循环神经网络(RNN),能够学习长期依赖信息。与传统的RNN相比,LSTM通过引入门控机制来解决梯度消失和梯度爆炸问题,使其在处理序列数据时更为有效。在自然语言
    的头像 发表于 11-13 10:16 ?1260次阅读

    Moku人工神经网络101

    不熟悉神经网络基础知识,或者想了解神经网络如何优化加速实验研究,请继续阅读,探索基于深度学习的现代智能化实验的广阔应用前景。什么是
    的头像 发表于 11-01 08:06 ?752次阅读
    Moku人工<b class='flag-5'>神经网络</b>101

    GPU深度学习应用案例

    能力,可以显著提高图像识别模型的训练速度和准确性。例如,在人脸识别、自动驾驶等领域,GPU被广泛应用于加速深度学习模型的训练和推理过程。 二、自然语言处理 自然语言处理(NLP)是深度
    的头像 发表于 10-27 11:13 ?1675次阅读

    激光雷达技术的基于深度学习的进步

    信息。这使得激光雷达在自动驾驶、无人机、机器人等领域具有广泛的应用前景。 二、深度学习技术的发展 深度学习是机器学习的一个分支,它通过模拟人
    的头像 发表于 10-27 10:57 ?1203次阅读

    AI大模型与深度学习的关系

    AI大模型与深度学习之间存在着密不可分的关系,它们互为促进,相辅相成。以下是对两者关系的介绍: 一、深度学习是AI大模型的基础 技术支撑 :深度
    的头像 发表于 10-23 15:25 ?3152次阅读