自动驾驶中的循环神经网络(2)|学习笔记

简介: 快速学习自动驾驶中的循环神经网络(2)

开发者学堂课程【深度学习与自动驾驶:自动驾驶中的循环神经网络(2)】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/533/detail/7158


自动驾驶中的循环神经网络(2)

 

内容介绍

一、Optimization is Hard

、Reflections on Backpropagation

、Unrolling a Recurrent Neural Network

 

一、Optimization is Hard

1、Optimization is Hard:Vanishing Gradients

问题在实际中你怎么知道当你梯度消失问题

这个梯度消失可能是梯度上的导数趋于0,这发生在激活函数爆炸的时候像很高的初始值与很低的初始值对于很高的初始值这是比较容易的你的网络几近崩溃它会产生很大的数值

image.png

你可以通过限制激活函数来解决很多问题而很小的初始值导致梯度消失则很难被察觉到有许多研究试图弄明白如何发现这些问题如果你不够谨慎很多时候会发现这并不难做到,40%或50%的网络神经神经元无效了对于relu他们是无效的relu他们根本没有激活你如何察觉到那些这是学习的一部分如果它从未被激活过你会察觉到异常通过让它在整个训练集里运行那里面有很多技巧但是这才是问题所在你尝试着学习然后你去看损失函数它没有收敛到一个合理的值摇摆不定或者收敛得很慢这预示着有什么东西出错了这可能是损失函数不好导致的或者是你已经找到最优解了或者是梯度消失这就是它为何是一门艺术

2、Optimization is Hard: Saddle Point

image.png

Hard to break symmetry

至少有一部分神经元需要被激活否则初始化就做的很失败

 

二、Reflections on Backpropagation

1、Pause to reflect: Backpropagation and gradient descent is the mechanism of machine intelligence. Can it lead to human-level reasoning" ?

2、Some alternatives:

(1)Genetic Algorithms

(2)Particle Swarm Optimization

(3)Ant Colony Optimization

3、Q1: What other ways can we optimize

the weights of a neural network?

4、Q2: What other ways can we optimize

(evolve) the design of the network?

反向传播的简易性以及反向传播的强大之处这种局部将损失函数反向传播到梯度的步骤正是神经网络学习的方式这真的是唯一能够高效地训练个神经网络学习一个函数调整权重和偏置的方式大量的权重和偏置以及参数是通过这个来优化它反向传播误差你有监督的基准数据问题是这个过程拟合调整高度非线性函数的参数来最小化单个目标的过程是否是你实现智能的方式是否人类水的智能这是需要思考的事需要思考对于实现驾驶的目的这种方法的局限性是什么什么没有发生神经网络的设计架构没有被调整任何边、层都没有发展还有其他的优化方法不高效但非常有趣和给人启发比如这是一个使用柔软的立方体这是已经不是进化机器人的领域这里演化出机器人的动力学借助遗传算法这些机器人被教会这是仿真出来的走路和游泳这一个正在游好处是那个高度非线性的空间同样控制着这个奇形怪状的机器人的运动有很大的自由度这与神经网络相似实际上人们应用了遗传算蚁群优化算法各种自然启发式算法用自动调整权重与偏置但是这些方法目前似于并没有那么好这是一个很酷的想法使用自然型的演化算法来演化出神经网络中已经自然启发出来的东西但是仍有一些需要考虑的

Back to Recurrent Neural Networks (RNNs)

image.png

关于反向传播的是管很简单这个过程是否能够产生一般智能推理

 

三、Unrolling a Recurrent Neural Network

image.png

1、Input (x): (example: word of a sentence)

2、Hidden state (s): function of previous hidden state and new input

3、Output (o): (example: predict next word

in the sentence)

接下来是递归神经网络在左侧有一个输入x输入的权重U,有一个隐藏状态隐藏层s有权重在边上将隐藏状态彼此连接是更多的权重v在输出o这是一个很简单的网络有输出有隐藏状态这个网络的记忆还有输出但事实是这个环是隐藏状态彼此连接的意味着与产生一个单独的输入不同这个网络接收任意个数的输入它只是一直接收x每次一个产生一个x的序列在一段时间后根据你所感兴趣的序列的持续时间你可以认为这个网络处于展开状态你可以展开这个神经网络输入都位于底部xt-1,xtxt+1,输出都位于顶部。Ot-1,otot+1,它变得像一个普通的神经网络它变得展开任意的次数参数有权重有偏置

image.png

4、Parameters U, V, W are shared across time

Similar to CNNs: this reduces the # of parameters we need to optimize

And it allow us to process arbitrary temporal size" of input

Process is the same for any input / output mapping:

类似于卷积神经网络正如卷积神经网络确保空间一致性的假设循环神经网络假设参数中的时序一致性分享这些参数这个w,u,v在每个时间步长中是一样的你正在学习相同的参数无论序列持续时间它允许你查看任意长度的序列并且没有参数的爆炸性增长这个过程与之前重复的完全一致基于不同的变种根据输入和输出个到多多到一多到许

5、Backpropagation Through Time (BPTT)

(Fancy name for regular backpropagation on an unrolled RNN)

image.png

反向传播过程与普通的神经网络完全一致基于时间的反向传播是一个很奇特的名字bptt但是它仅仅是一个展开的循环神经网络中的反向传播误差是在输出上计算的梯度被计算被反向传播并在输入上计算的但遭受相同的梯度消失的问题在于这些网络可以为任意长如果在任意一个点度变成很小的数神经成为饱和状态这个梯度被称作饱和的这个梯度使得所有之前的层变为零因此很容易遇到问题

6、Gradients Can Explode or Vanish

image.png

这是用 python用伪代码来看这个问题你有一个相同的 w记住你有时会分享权重和所有参数因此如果权重是 whh如果这样的权重他们有一个负值来导致梯度值降为0,从而传播通过剩余的部分这就是反向传播的伪代码穿过rnnwhh

7、Gradients Can Explode or Vanish

(Geometric Interpretation)

Error surface for single hidden unit RNN

image.png

反向传播伴随着梯度的爆发与消失例如rnn的单隐层的误差曲面 梯度的可视化权重的值偏置的值误差的值误差变化可以很平缓也可以剧烈这些都会导致你的权重变化过于慢或过于快这是几何的解释

8、RNN Variants: Bidirectional RNNS

image.png

Example:

Filling in missing words

Deeper =

more learning capacity

but needs lots of training data

其它变量他们是rnn的吗它不仅仅是单流向的也可以是双流向的它可以有正向的边和反向的边所需要的是类似于填充缺失无论数据是什么填充数据中缺失的元素无论是图像单词还是音频一般而言正如神经网络它越深越好这里的深指的是层数在单一的时间实例中展示在图片的右边在时域上堆积节点每层都有自己的一组权重自己的一组偏置这些东西很棒但是它们需要大量数据

9、Long- Term Dependency

当你以这种方法增加额外的层问题在于循环神经网络理论上应该可以学习各种序列但事实是它们不善于记住一段时间前发生的事情以及长期的从属物这是一个很简单的例子考虑这样一个故事Bob正在吃一个苹果这个苹果是由循环神经网络生成的你的循环神经网络可以学习生成苹果因为它在许多句子中都见过Bob和吃所以它可以生成果这个词至于一个更长的句字,比如Bob喜欢吃苹果他很饿并且决定吃点东西因此他现在正在吃一个苹果你必须维持关于Bob和苹果的状态通过一些语义不连续的句子这种长期的记忆并不是记忆由于各种影响除了梯度消失是很难传播发生了一段时间的重要咨询来维持生成苹果的语境或者给一些发生了很久的概念分类

10、Long Short Term Memory (LSTM) Networks

image.png

当人们在这些年来谈论到循环神经网络他们总是谈论lstms长短期记忆网络因此所有引人注目的在时间数列音频视频上的结果它们都是需要lstms

香草rnns在图片的首部每个单元都很简单里面有一些隐藏的单元有输入也有输出在这里使用tanh作为一个激活函数这是另一个流行的s型激活函数lstms是更复杂的或者可以说他们看起来更复杂但是在一些方面他们理解起来更加直观每一单元都有一堆的门将会穿过这些门黄色表示的是不同的神经网络层sigma和tanh是不同类型的激活函数tanh是一种激活函数它将输入的范围压缩在-11的范围内sigmoid函数将输入压缩在01的范围内这两种函数为不同的目的服务这其中有一些逐点的运算加法乘法以及它们的连接数据由层到层进行传输图中箭头所示这里有串联同时在输出上还有一个复制的操作复制每个单元的输出被复制到下一个单元以及总输出试着把它解释得

11、LSTM: Pick What to Forget and What To Remember

image.png

Bob and Alice are having lunch. Bob likes apples. Alice likes oranges.

She is eating an orange.

Conveyer belt for previous state and new data:

(1)Decide what to forget (state)

(2)Decide what to remember (state)

(3)Decide what to output (if anything)

这里有传送带横穿每个单元内部所有传送带都需要完成三个步骤第一个sigmoid函数来决定遗忘什么以及忽略什么它负责接收输入新的输入xt接收先前单元的状态先前单元输出先前的时间步骤并且决定我是否要把这些保存下来以及我是否要把这些整合到我的记忆里这让你可以对于你所要学习的信息进行选择比如这里有一个句子bob和alice在吃午饭bob喜欢吃苹果alice喜欢吃橘子bob和alice在吃午餐bob喜欢苹果如果你现在说你有一个隐藏的状态对所谈论人物的性别信息进行跟踪你或许会说的第一句话里包含了男性和女性在第个句字中只有男性个句子中有女性如果这样你想生成一个有关于谁在吃什么的句子你就会知道你跟踪性别信息为了生成精确的内容对应于正确的人你需要遗忘一些事物比如说那一刻忘掉bob的存在你还需要忘掉bob喜欢苹果但是你必须记住alice喜欢橘子所以你应该选择性地记住和遗忘某些事物概括的说这就是长短期记忆你决定遗忘什么和记住什么并且决定单完格的输出

12、LSTM Conveyer Belt

image.png

State run through the cell

3 sigmoid layers output deciding which information is let through (~1) and which is not (~O)

有状态贯穿单元这个传送过往的状态比如性别这个状态是你所要保持跟踪的并且贯穿单元这里有三个sigmoid输出一个1,一个01之间的数字如果你希望信息通过就输出1,如果你不希望信息通过就输出0。

13、LSTM Conveyer Belt

image.png

Step 1: Decide what to forget / ignore

传送带会保持这个状态首先sigmoid函数是可以决定遗忘哪些以及忽略哪些这是第一点将先前时间步骤和当前时间步骤下网络的输入并且决定我要遗忘或者是忽略这些

image.png

Step 2: Decide which state values to update (w/sigmoid) and what values to update with (w/ tanh)

并且决定更新状态的哪个部分针对这一信息需要更新记忆的哪个部分以及在更新的过程中要插入哪些值

image.png

Step 3: Perform the forgetting and the state uodate

第三就是要进行实际的更新以及进行实际的遗忘这就是选择sigmoid函数的原因你将输入与它相乘输出为0,则遗忘为1,则让信息通过

image.png

Step 4: Produce output with tanh [-1, 1] deciding the values and sigmoid [0, 1] deciding the filtering

最后在单元格内生成一个输出如果它是翻译输入为西班牙语产生一个英语输出接下来同样的输出被复制到下一单元格

14、Application: Machine Translation

image.png

能用这个办法做什么研究一下机器翻译

问题对于状态的表达方式是什么?它是类似于浮点数?还是类似于向量?或是什么其他具体的方式?

状态是一种激活函数乘以它的权重它是sigmoid函数或者tanh函数的输出有很多的神经元发送了一个-11或者01之间的数字这整个就是一个状态将它称为状态这只是一种简化但是关键点在于有许多数字会不断地被权重和偏重修改这些数字保持着状态同时这些数字的修改由它们的权重所控制如果所有这些都完成了递归神经网络所产生的结果就会与理想结果进行比较误差会被反向传播给权重机器翻译是一种很普遍的的应用所有这一切都是一样的所有这些所谈论的网络都有相似的构造你有一些输入无论是什么语言可能是德语我习惯把所有都想成德语输出输入是一种语言一组字符组成了一个某种语言的词语这里有被传输的状态当句子结束的时候与收集输入不同你开始产生输出你可以产生英语的输出

14、Application: Handwriting Generation from Text

在机器翻译上有很多很棒的工作这是歌的翻译主要使用的相同的原理都是利用lstm产生手写字符任意风格的手写字符它可以控制书写的过程输入是文本输出是手写体使用的是相同的具有一定层数的网络输入是需要的文本输出是你所控制风格的手写体

15、Application: Character-Level Text Generation

字符级的文本生成人生的意义是文字识别和古人繁衍后代的传统相同的过程一次输入一个字符输入层有对输入字符进行编码这里有隐藏状态隐藏层记录激活状态也就是每个激活函数的输出每次的输出都是对下一个字符的最佳预测在很多应用中你希望忽略输出直到输入一个完整的句子然后再接收输出但实际上网络会不断地生成文本无论有没有输入因此你的输入是在增加引导循环神经网络你可以回答

16、Application: Image Question Answering

image.png

关于张图像的问题你有一个输入你几乎可以任意将特征堆在一起如图片所示一张图片作为输入将图片输进一个卷积神经网络然后接收问题有个术语叫词嵌入是用来增广单词的表征含义提出的问题是“有多少本书”你希望输入词嵌入以及图片来产生对问题的最佳估计对于问题“猫的颜色是什么可能是灰色或者黑色这是不同类型的 lstm产生的答案类似的数图片中的椅子你可以输入一张有椅子的图片并输入问题有多少张椅子?它能够提供答案三”这是一件非常困难的任务任意的图片上询间你需要同时理解你在一个网络同时做自然语言处理,以及计算机视觉。

相关文章
|
7天前
|
存储 算法 网络虚拟化
【计算机网络】学习笔记,第三篇:数据链路层
现在的光纤宽带接入 FTTx 都要使用 PPPoE 的方式进行接入。在 PPPoE 弹出的窗口中键入在网络运营商购买的用户名和密码,就可以进行宽带上网了 利用 ADSL 进行宽带上网时,从用户个人电脑到家中的 ADSL 调制解调器之间,也是使用 RJ-45 和 5 类线(即以太网使用的网线)进行连接的,并且也是使用 PPPoE 弹出的窗口进行拨号连接的
20 5
|
19天前
|
机器学习/深度学习 安全 自动驾驶
网络安全与信息安全:防御前线的科学与艺术基于深度学习的图像识别在自动驾驶技术中的应用
【5月更文挑战第27天】 在数字化时代,网络安全和信息安全已成为维护信息完整性、确保数据传输保密性和保障系统可用性的关键。本文深入探讨了网络安全漏洞的概念、加密技术的应用以及提升安全意识的重要性。通过对网络威胁的分析,提出了一系列创新的防护措施,旨在为读者提供全面的安全防护策略和技术应用指导。 【5月更文挑战第27天】 随着人工智能技术的飞速发展,深度学习已经成为推动许多创新应用的核心动力。尤其是在图像识别领域,深度学习模型已经展现出了超越传统算法的性能。本文将探讨深度学习在图像识别技术中的最新进展以及这些进展如何被应用于自动驾驶汽车系统中,以实现更准确和可靠的环境感知能力。我们将分析当前最
|
23天前
|
网络协议 Docker 容器
Ubantu docker学习笔记(七)容器网络
Ubantu docker学习笔记(七)容器网络
|
1月前
|
监控 Java 数据库连接
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
【后台开发】TinyWebser学习笔记(1)网络编程基础知识
29 3
|
1月前
|
网络协议 网络架构 数据格式
计算机网络学习笔记(一)
OSI七层网络模型旨在支持异构网络互联,从下到上分别为物理层(传输比特流)、数据链路层(帧传输,如交换机)、网络层(IP数据包路由,如路由器)、传输层(TCP/UDP,端到端通信)、会话层(管理会话)、表示层(数据格式转换)和应用层(用户接口,如FTP, SMTP)。每一层负责不同的通信功能,并通过协议如PPP, IP, TCP等协同工作。
|
1月前
|
缓存 网络协议 开发者
计算机网络学习笔记(三)
TCP的异常终止使用reset报文,用于强制关闭连接,不等待正常四次挥手。RST标志位设置时,发送方直接丢弃缓存,接收方无需确认。常见情况包括:尝试连接服务器未开放的端口、一方异常崩溃、收到不属于现有连接的报文、超时未收到确认报文或应用开发者优化效率。reset报文帮助释放资源,防止连接挂起。
|
1月前
|
安全 数据安全/隐私保护
计算机网络学习笔记(四)
HTTPS流程涉及服务器的公钥/私钥和客户端随机密钥。首先,客户端向服务器443端口发起请求,服务器发送公钥给客户端。客户端验证公钥后生成随机密钥(client key),用公钥加密后发送回服务器。服务器用私钥解密获取client key,然后用它加密数据成密文传回客户端。客户端用client key解密完成安全传输。
|
1月前
|
机器学习/深度学习 自动驾驶 安全
基于深度学习的图像识别技术在自动驾驶系统中的应用网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第30天】随着人工智能技术的飞速发展,深度学习已成为推动多个技术领域革新的核心力量。特别是在图像识别领域,深度学习模型已展现出超越传统算法的性能。在自动驾驶系统中,准确的图像识别是确保行车安全和高效导航的基础。本文将探讨深度学习在自动驾驶中图像识别的应用,分析关键技术挑战,并提出未来的发展方向。
|
1月前
|
域名解析 缓存 网络协议
【计算机网络基础篇】学习笔记系列之二《游览器输入URL后发生了什么?》
【计算机网络基础篇】学习笔记系列之二《游览器输入URL后发生了什么?》
43 3
|
1月前
|
消息中间件 网络协议 算法
【计算机网络基础篇】学习笔记系列之一《TCP/IP 网络模型》
【计算机网络基础篇】学习笔记系列之一《TCP/IP 网络模型》
41 1