深度学习十大算法

article/2025/9/24 3:34:04

首先先让我们来定义一下什么是“深度学习”。对很多人来说,给“深度学习”下一个定义确实很有挑战,因为在过去的十年中,它的形式已经慢慢地发生了很大的变化。

先来在视觉上感受一下“深度学习”的地位。下图是AI、机器学习和深度学习三个概念的一个关系图。

AI的领域要相对较广泛,机器学习是AI的一个子领域,而深度学习是机器学习领域中的一个子集。

深度学习网络与“典型”的前馈多层网络之间是有一些区别的,如下:

  • 深度学习网络比之前的网络有更多的神经元

  • 深度学习网络具有更复杂的连接层的方式

  • 深度学习网络需要用强大的计算能力来训练

  • 深度学习网络能够进行自动特征提取

因此深度学习可以被定义为在以下四个基本网络框架中拥有大量参数和层的神经网络:

  • 无监督预训练网络(Unsupervised Pre-trained Networks)

  • 卷积神经网络(Convolutional Neural Networks)

  • 循环神经网络(Recurrent Neural Networks)

  • 递归神经网络 (Recursive Neural Networks)


在这篇文章中,我主要对后三个框架比较感兴趣。

卷积神经网络:基本上就是用共享权重在空间中进行扩展的标准神经网络。设计CNN主要是为了通过内部卷积来识别图片,内部卷积可以看到待识别物体的边。

循环神经网络:基本上是在时间上进行扩展的标准神经网络,因为边进入下一个时间步,而不是在同一时间步进入下一个层。设计RNN主要是为了识别序列,例如语音信号或者文本。它里面的循环意味着网络中存在短暂的记忆。

递归神经网络:更类似于分层网络,其中输入序列没有真正的时间面,而是输入必须以树状方式分层处理。


以下10种方法可以应用于所有这些体系结构。

1、反向传播

反向传播是“误差反向传播”的简称,它是一种计算函数(在神经网络中以函数形式存在)偏微分的方法。当你要用一个基于梯度的方法来解决一个最优问题时(注意梯度下降只是解决这类问题的一种方法),你希望在每一次迭代中计算函数梯度。


对于神经网络而言,目标函数具有合成的形式。那么如何计算梯度呢?一般情况下有两种常见的方法:

1)微分分析法。当你知道这个函数的形式时,你只需要用链式法则计算导数即可;

2)用有限差分方法来近似微分。这种方法的计算量很大,因为函数评估的数量是O(N),其中N是参数的数量。与微分分析法相比,这是比较昂贵的。不过,有限差分通常在调试时验证后端实现。


2、随机梯度下降

一个直观理解梯度下降的方法是去想象一条溯源山顶的河流。这条河流会沿着山势梯度的方向流向山麓下的最低点。

如果让人来走,可能就不一样了,你可能会先随便选一个方向,然后沿着这个方向的梯度向下走;过一会儿再随机换一个方向向下走;最后你发现自己差不多也到了谷底了。

数学化的理解就是:

随机梯度下降主要用来求解类似于如下求和形式的优化问题:

梯度下降法:

当n很大时,每次迭代计算所有的梯度会非常耗时。
随机梯度下降的想法就是每次在Delta f_i 中随机选取一个计算代替上面的Delta f_i,以这个随机选取的方向作为下降的方向。这样的方法反而比梯度下降能够更快地到达(局部)最优解。


3、学习率衰减

在训练模型的时候,通常会遇到这种情况:我们平衡模型的训练速度和损失(loss)后选择了相对合适的学习率(learning rate),但是训练集的损失下降到一定的程度后就不在下降了,比如training loss一直在0.7和0.9之间来回震荡,不能进一步下降。如下图所示:

遇到这种情况通常可以通过适当降低学习率(learning rate)来实现。但是,降低学习率又会延长训练所需的时间。

学习率衰减(learning rate decay)就是一种可以平衡这两者之间矛盾的解决方案。学习率衰减的基本思想是:学习率随着训练的进行逐渐衰减。

学习率衰减基本有两种实现方法:

  • 线性衰减。例如:每过5个epochs学习率减半;

  • 指数衰减。例如:每过5个epochs将学习率乘以0.1。


4、dropout

在当前的大规模神经网络中有两个缺点:

  • 费时;

  • 容易过拟合

Dropout 可以很好地解决这个问题。Dropout说的简单一点就是在前向传导的时候,让某个神经元的激活值以一定的概率p停止工作,示意图如下:

每次做完dropout,相当于从原始的网络中找到一个更瘦的网络。

Hinton在其论文中做了这样的类比,无性繁殖可以保留大段的优秀基因,而有性繁殖则将基因随机拆了又拆,破坏了大段基因的联合适应性;但是自然选择了有性繁殖,物竞天择,适者生存,可见有性繁殖的强大。dropout 也能达到同样的效果,它强迫一个神经单元,和随机挑选出来的其他神经单元共同工作,消除减弱了神经元节点间的联合适应性,增强了泛化能力。


5、max pooling

池化(Pooling)是卷积神经网络中另一个重要的概念,它实际上是一种形式的向下采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。

直觉上,这种机制能够有效地原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。 


6、批标准化

包括深度网络在内的神经网络需要仔细调整权重初始化和学习参数。批标准化使这些变得轻松许多。

权重问题:

  • 无论权重的初始化如何,是随机的还是经验性的选择,它们离学习权重都会很远。考虑一个小批量,初期在所需的特征激活方面会有很多异常值。

  • 深层神经网络本身是病态的,初始层中的微小扰动都会导致后面层的非常大的变化。

在反向传播过程中,这些现象会导致梯度弥散。这就意味着在学习权重产生所需要的输出前,必须对梯度的异常值进行补偿,这将导致需要额外的时段来收敛。

批量归一化使这些梯度从分散到正常值并在小批量范围内流向共同目标(通过归一化)。

学习率问题:一般来说,学习率需要保持较低的值,使得只有一小部分的梯度来校正权重,原因是要使异常激活的梯度不影响已学习到的激活。通过批量标准化,可以减少这些异常激活,因此也就可以使用更高的学习率来加速学习过程。


7、long short-term memory

LSTM网络具有以下三个方面,使其与循环神经网络中的常见神经元不同:

1)它能够决定何时让输入进入神经元;

2)它能够决定何时记住上一个时间步中计算的内容;

3)它决定何时让输出传递到下一个时间步。

LSTM的美妙之处在于它能够根据当前的输入本身来决定所有这些。 所以你看下面的图表:

当前时间的输入信号x(t)决定所有上述3个点。 输入门决定点1,遗忘门决定点2,输出门决定点3。任何一条输入都能够采取所有这三个决定。这种设计其实是受到了我们大脑如何工作的启发,并且可以基于输入来处理突然的上下文切换。


8、skip-gram

词嵌入模型的目标是为每个词项学习一个高维密集表示,其中嵌入向量之间的相似性显示了相应词之间的语义或句法相似性。 Skip-gram是一个学习词嵌入算法的模型。

skip-gram模型(以及许多其他的词语嵌入模型)背后的主要思想如下:两个词项相似,如果它们共享相似的上下文。

换句话说,假设你有一个句子,例如“猫是哺乳动物”;如果你用“狗”而不是“猫”,这个句子还是一个有意义的句子。因此在这个例子中,“狗”和“猫”可以共享相同的上下文(即“是哺乳动物”)。

基于上述假设,你可以考虑一个上下文窗口(一个包含k个连续项的窗口),然后你跳过其中一个单词,试着去学习一个能够得到除跳过项外的所有项的神经网络,并预测跳过的这个项。如果两个词在一个大语料库中反复共享相似的语境,则这些词的嵌入向量将具有相近的向量。


9、连续词袋

在自然语言处理问题中,我们希望学习将文档中的每个单词表示为一个数字的向量,使得出现在相似的上下文中的单词具有彼此接近的向量。在连续的单词模型中,目标是能够使用围绕特定单词的上下文并预测特定单词。

 

我们通过在一个大的语料库中采取大量的句子来做到这一点,每当我们看到一个单词时,我们就提取周围的单词。 然后,我们将上下文单词输入到一个神经网络,并预测在这个上下文中间的单词。

当我们有成千上万个这样的上下文单词和中间词时,我们就有一个神经网络数据集的实例。 我们训练神经网络,最后编码的隐藏层输出表示了特定单词的嵌入。 恰巧,当我们对大量的句子进行训练时,类似语境中的单词得到相似的向量。


10、迁移学习

让我们想一下如何在CNN中处理一张图片。假设有一张图片,你对它进行卷积处理,然后你得到的输出是像素的组合,我们姑且称之为“边”吧。我们再次使用卷积,这时候你得到的输出将是边的组合,我们称之为“线”。如果再次使用卷积,那么你将得到线的组合,等等。

每一层都是在寻找相应的特定模式。你的神经网络最后一层一般会给出非常特定的模式。也许你在处理ImageNet,你的网络最后一层可能是在找孩子、狗或飞机或别的任何东西。如果你向前两层看,网络可能是在找眼睛、耳朵、嘴巴或者轮子。

深度卷积神经网络中的每一层的深入都是在构建越来越高层次的特征表示。最后两层会产生你输入模型的数据中的特定模式。换句话说,早期的层提取的特征则广泛得多,在提取的大量的类中有很多简单的模式。

迁移学习就是当你用一个数据集训练CNN时,砍掉最后的一(些)层,再用另一个不同的数据集重新训练最后一(些)层的模型。直观地说,你在重新训练模型来识别不同的高级层次特征。作为结果,训练时间大幅减少。所以当你没有足够的数据或者训练的资源时,迁移学习是非常有用的一个工具。


http://chatgpt.dhexx.cn/article/NuEphvc0.shtml

相关文章

KBS 2021 | 联邦学习综述

目录 前言摘要1. 引言1.1 联邦学习的背景1.2 联邦学习面临的挑战 2. 相关工作2.1 联邦学习的定义 3. 联邦学习的分类3.1 数据划分3.1.1 横向联邦学习3.1.2 纵向联邦学习3.1.3 联邦迁移学习 3.2 隐私保护机制3.2.1 模型聚合3.2.2 同态加密3.2.3 差分隐私 3.3 可应用的机器学习模…

如何高效学习和阅读源码?

作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。热门文章推荐&…

架构学习——ER图

一、什么是ER图? E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 二、为什么要画ER图? 它是描述现实世界关系概念模型的有效方法。是表示概念关系模型…

Thingworx入门学习

Thingworx入门学习 前言thingworx入门总结 前言 Thingworx是啥??? 基于物联网强大必入软件学习 thingworx的优点太多说些主要的 1.强大数据接入 2.数据分析 3.组态化模块化,二次开发节省成本快速开发 thingworx入门 提几点主线…

读后感:【许岑—如何成为有效学习的高手】

本博客的原创文章都是本人平时学习所做的笔记 。不要借鉴,不要参考 , 谢谢合作 本书关键词:适合自己、学习方法、短时间、注意力、解决难题、设定目标、名师

联邦学习(Federated Learning)

联邦学习简介 联邦学习(Federated Learning)是一种新兴的人工智能基础技术,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的机器学习。其…

机器学习类型概述

从不同的视角来看待诸多机器学习算法,有不同的划分。 1、语料视角 根据训练语料对人工参与类别划分或标签标识的需求程度,可将机器学习划分为四种类型: 监督学习、无监督学习、半监督学习、强化学习。 1.1、监督学习 Supervised Learning 在监督学习算…

对偶学习

考虑一个对偶翻译游戏,里面有两个玩家小明和爱丽丝,如下图所示。小明只能讲中文,爱丽丝只会讲英文,他们两个人一起希望能够提高英文到中文的翻译模型f和中文到英文的翻译模型g。给定一个英文的句子x,爱丽丝首先通过f把…

迁移学习简介及用途

迁移学习简介及用途 https://mp.weixin.qq.com/s/5_EYEJUycTtpfbxM_uGwHw --------------------- 本文来自 mishidemudong 的CSDN 博客 深度神经网络,相比于之前的传统机器学习方法,可以看成是一个全新的物种,这背后的原因,最…

十大机器学习算法

初学者应该知道的十大机器学习算法 来源:https://builtin.com/data-science/tour-top-10-algorithms-machine-learning-newbies 机器学习算法被描述为学习一个目标函数 (f),它最好地将输入变量 (X) 映射到输出变量 (Y):Y f(X) 最常见的机器…

贝叶斯学习

目录 贝叶斯学习 ​贝叶斯学习的特点: 朴素贝叶斯方法: 贝叶斯学习 贝叶斯学习就是基于贝叶斯理论(Bayesian Theory)的机器学习方法。 贝叶斯法则 也称为贝叶斯理论(Bayesian Theorem,或Bayesian Rule&a…

深度强化学习

前言 深度强化学习(DRL)已成为人工智能研究的热点之一。它已被广泛应用于端到端控制、机器人控制、推荐系统、自然语言对话系统等各个领域。本文对深度RL算法及其应用进行了分类,并将现有的DRL算法分为基于模型的方法、无模型的方法和先进RL方法进行介绍。 一、无模…

有效学习的6个方法学习方法

今天看了得到 有效学习的6个方法(上) 的一些感想。 1.价值感 这个就是做这件事情的动力,没有动力的话,是不愿意去做这件事的,效果当然也不会很好。做一件事把这做这件事的意义定的越大,越有动力&#xff0…

如何成为有效学习的高手(许岑)——思维导图

总结自许岑精品课《如何成为有效学习的高手》,图片看不清的可以看下面。 最后有彩蛋! 最后有彩蛋! 最后有彩蛋! 定义 高效学习的定义:找到最适合自己的学习手法,在相对短的时间内集中注意力,以…

如何有效的学习

大一时的我,完全就是个彻头彻尾的学渣,挂科、成绩被同学吊打,每天在宿舍浑噩度日。后来靠这个方法,我能做到最长连续学习10个小时,持续了三个月,也不会觉得很累。 如果你跟之前的我一样,学5分钟…

聊一聊我们应该如何有效学习

我之前写过 关于前端学习路线的一些建议(内含自测题)和 聊一聊加班严重时要如何自我提升 两篇文章。文章内容涉及的是学习路线和时间利用,今天我们就聊聊如何做到有效学习。 这里分享一些关于有效学习的经验,希望能对你有些许帮助…

计算机组成原理-单位转换

字节、字、位、比特之间的关系: 1位1比特;1字2字节;1字节8位;1字16位。 在16位的系统中:1字 2字节(byte) 16(bit) 在32位的系统中:1字 4字节(byte)32&…

【计算机组成原理】computer data reputation数值数据表示

Overview: 1.数据表示的目的(略) 2.数值数据的表示 3.非数值数据的表示 4.数值信息的校验(重点) 1.数据表示的目的: 组织数据,方便计算机硬件使用(汇编语言也具有数据类型&…

计算机组成原理:3.7虚拟存储器

3.7虚拟存储器 思维导图 虚拟存储器的基本概念 虚拟存储器将主存或辅存的地址空间统一编址,形成一个庞大的地址空间,用户可以在里面进行自由编址,而不需要在乎实际的主存容量和程序存放的位置 虚拟地址比实际地址大 过程 CPU使用虚地址时…

计算机原理概述

目录 计算机的发展史(稍作了解即可) 从硬件方面来了解计算机 程序的存储 广义数据在内存的存储问题 CPU的基本工作原理 让我们来从以下两个方面来了解计算机: 1.从硬件角度学习计算机的基本原理————CPU的基本工作原理 2.从操作系统…