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

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

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

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


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

 

内容介绍

一、Flavors of Neural Networks

二、Back to Basics: Backpropagation

 

内容简介

之前过普通的神经网络,全连接的神经网络,过作用于图像的卷积神经网络,深度强化学习。将一个神经网络插入一个强化学习算法此时这个系统不仅要感知世界还要发挥作用,并收集奖励。今天将会讲到递归神经网络。首先是关于课程的事项。网址是 cars.nit.edu。如果是一个正式的学生需要注册一个账户,这是要求之一。需要有一个帐户如果想获得分数,需要提交代码,在DeepTaftitIS,DeepTeslaJSE 上,而在 DeepTaftitIS 必须有一个速度超过65英里/小时的神经网络。

 

一、Flavors of Neural Networks

image.png

Vanilla 神经网络是计算一个输入映射到一个输出的逼近函数一个例子是将图像映射到图像中显示的数字在 imagnet 中是将图像中的对象,它可以是任何东西实际上卷积神经网络可以对音频进行操作,可以给它一段音频一个五秒的音频片段,它仍可以算作一个输入因为它是固定大小只要输入的大小是固定的那就是一段输入只要有基准数据将那段输入映射到某个输出的基准数据这就是Vanilla神经网络无论是否有全连接的神经网络,或卷积神经网络递归神经网络他们计算的函数有一对多,多对一以及多对多也可以是双向的这意味着什么?它们会输入序列时间序列音频,视频只要有一个数据连接数据的时间动态性比每个单独帧的空间内容更重要所以当有大量的信息,按顺序传送是随着时间变化的任何类型的数据那就是想用递归神经网络的时候如语音自然语言音频而它功能就是对它们中大多数来说他们发光的地方是输入的大小是可变的所以没有固定的数据块输入是可变的输出也是一样所以可以给它一个语音序列几秒钟然后输出说话者是男性还是女性的单一标签这就是多对一同样可以进行多对多的翻译可以将自然语言输入网络比如西班牙语输出是英文。机器翻译这就是多对多而且多对多都不需要直接映射到相同大小的序列对于视频来说序列大小可能标注每一帧输入某人打篮球的秒剪辑可以标注每一帧计算每一帧中的人数这是多对多输入和输出的大小一样

问题:是否有任何模型有输出和输入的反馈

这正是递归神经网络它产生输出并复制该输出将其循环回去这几乎是递归神经网络的定义在那里有一个循环产生输出并且再次将输出作为输入对于多对多来说,其序列是不对齐的比如机器翻译输出序列的大小可能与输入序列完全不同可以开始一首歌学习一首给定歌曲的音频让递归神经网络接着这首歌创作一段时间所以它可以学习,生成音频,自然语言,视频序列

 

二、Back to Basics: Backpropagation

image.png

不会有太多方程式但是这是优雅的简单必须涉及反向传播这也是如果有点懒情去上网并开始使用 TenSorFlow 的基本教程忽略了如何反向传播工作在的操作下可以认为它是正常的给它一些输入一些输出就像乐高积木一样可以把它们组装起来就像可能用 DeepTraffic 完成的一样把一堆图层放在一起然后按Tain,反向传播目前神经网络的机制是所知道的用于训练最好的机制所以需要了解反向传播简单的能力但也需要了解缺点总结一下在图片的顶端网络上有一个输入图像还有一堆神经元每个神经元都有可微的平滑的激活函数然后当通过激活函数时将一个输入通过这个网络可微的计算节点产生一个输出在这个输出中,也有一个基准数据想要或期望网络产生的值是正确的和,可以观望网络实际产生的值所希望它产生的值的差异这就是误差然后反向传播那个误差用于惩罚和奖励权重和参数来改变输出

1、Backpropagation: By Example

image.png

f(x,y,2)=(x十y)z

Modularity: We compute an arbitrary function locally in stages

q=x十Y

f=qz

一个简单的例子,有一个数,它的输入放在最前面,三个变量xyz这个数做两件事,对 x y 求和。然后在将求和结果与z相乘,然后将这个过程构想成一个电路,一个电路门它有一个加法门和不乘法门,输入些数,那些蓝色的数就是输入 x 令为-2,y 是5,z是-4,然后通过电路做正推法,来产生结果。2加正5等于3,q是那个中间值。等于3,这很简单并且理解它很重要,因为关于神经网络的一切都是建立在这些概念之上的。加法门得到了q然后3乘以-4是-12。这是输出。该神经网络电路的输出。如果按照这样去做了,将会得到-12,正推法用蓝色标注,逆推法之后会用红色标注,想要做的是让 f 满意的事为了输出尽可能高。-12马马虎虎可能会更好怎么来训练它呢?又该怎么来调整xyz来保证它会产生更高的f。进行反向推逆法。将在输出1上计算梯度,这意味着希望它增加,希望f增加这就是编码满意的方式希望它增加1。

image.png

为了之后的传递,希望f增加1的事实,必须看看每个门上的梯度。什么是梯度?这是一个关于其输入的偏导数,门的输出相对于其输入的偏导数,这只是表示当稍微改变输入时,输出变化多少。如果为第一个加法函数增加x,这个变化的斜率是多少?f(x,y)等于x加y。如果稍微增加xf会发生什么?如果稍微增加yf会发生什么?取这些关于xy偏导数会得到斜率1。当增加x时,f线性增加,y也是一样的乘法则复杂一点。当增加x时,f随着y增加而增加,fx的偏导数是yfy的偏导数是x。当改变x时,梯度的变化与x无关。它只和y有关翻转了。

2、Backpropagation: Backward Pass

image.png

所以可以反向传导那个1,让x满意的标志。这是通过计算局部梯度完成的。对于qf相对于q的偏导数,即中间值。梯度会是-4,它会利用z的值这是乘法门,它会利用z的值并将它的值分配给梯度,而f对z的偏导数,也是一样的它将分配给q推法时q的值,这里有推法时的3,-4用蓝色表示在逆推法时-43,被翻转了,这是梯度。

3、Modular Magic: Chain Rule

image.png

So, instead of computing the gradient of this:

f(x,y,z)= (x十y)z

We compute the gradients of these:

Q=x+y

然后继续同样的过程,让这些起作用的是链式法则,很神奇,它许做的是计算样度。f相对于输入xyz的梯度,不需要分解构造,关于xyz的复杂方程f的偏导数可以一步一步地反向传播梯度,可以将梯度相乘,而不是做f对于x的偏导数,只用中间的,f 对于 qq 对于 y 的局部梯度,并把它们相乘,所以不需要计算,那个复杂的方程x加z的梯度,在这个练习中它并不是那么复杂,但是在神经网络中是特别复杂的,看第一个方程简单的加法,q 等于 x y以及第二个方程,乘法,f等于q乘以zx和y上的梯度f相对于x和y的偏导数是通过将可输出的梯度-4,乘上输入上的梯度当操作是加法时就是1所以等于-4乘以1,这意味着什么?来看看这些数字,现在有在xy和z上的梯度,f关于xyz的偏导数对x和y是-4,对于z是3,这意味着为了让f满意需要减少有负梯度的输入并增加有正梯度的输入,x和y是负的z是正的多次提beautiful这很简单优雅的简单因为梯度在局部工作,它为你传播但对于更广泛的f的满意,它并不了解计算输入和输出间的梯度,它可以传播这个梯度,基于在此例中f梯度1,即误差可以把输出的误差而不是1,作为衡量满意的指标可以反向传播那个误差这些门是重要的,因为可以分解,在使用神经网络时,几乎所有能想到的操作,成一个或几个这样的门,最受欢迎的门有3个,是增加乘法,和最大化操作,对于加法过程是通过网络做正推法,所以在每一个门上都有一个值,然后做逆推法,并通过逆推法,计算这些梯度,对于一个加门将输出的梯度同等地分配到,到输入上,当输出的梯度-4,而忽略了正推法的值当做逆推法时,这个3被忽略,在乘法门上,交换正推法的值,如果看f这是一个乘门正推法的值被交换,并与输出中的梯度相乘,这令人困惑慢慢跟着图片。

4、Interpreting Gradients

另一个门最大化这需要输入并输出,较大的值当计算最大化门的梯度时,它分配梯度,类似于加门,但只对一个输入,最大的一个不像加门,它会注意输入,正推法的输入值。

5、Modularity Expanded:Sigmoid Activation Function

很多数字,但这里的重点是一个神经网络就是这些门的简单集合,做正推法,计算一些函数,梯度在最后面,将它传播回来通常对于神经网络有一个误差函数,损失函数,目标函数,成本函数都是一个词这是Sigmoid函数,当有3个权重,w0,w1,w2,有两个输入x0,01,这是Sigmoid函数,这是如何计算,神经元的输出但是可以分解那个神经元。可以把它分开,只是像这样一系列的门加门乘门还有指数门和除门,但都是类似的重复完全相同的过程,有5个输入3个权重,两个输入x0,x1。通过这个电路做推法还是在这个例子中:想让它增加,所以输出的梯度是1,向传播那个梯度,1到输入中在神经网络中有一堆参数,尝试通过这个过程修改它们。不能修改输入,你可以修改权重和偏置,输入是固定的,输出是固定的,希望网络输出的,在修改的是权重,所以会尝试在梯度的方向上。调整这些权重。

6、Learning with Backpropagation

Task: Update the weights and biases to decrease loss function

image.png

Subtasks:

(1)Forward pass to compute network output and "error "

(2)Backward pass to compute gradients

(3)A fraction of the weight's gradient is subtracted from the weight.

这是反向传播的任务,神经网络学习的主要方式,是更新权重和偏置,去减少损失函数,损失函数越低越好,在这个例子中,有左上方的三个输入,一个简单的网络,三个输入,每个输入都有三个权重,节点上有一个偏置b 并且产生输出,a那个小符号表示一个 sigmoid 函数,损失是用 y 减去 a 的平方,除以2来计算,y是基准数据,是想要网络产生的输出,而那个损失函数是通过反向传播的子任务,涉及到更新权重和偏置,是正向传递计算,每个神经元的网络输出,最后输出层计算错误a和b的差值向后传播梯度,输出上不是一而是输出的误差,然后反向传播它,然后只要知道了梯度,调整权重和偏置,在梯度的方向上,实际上是与梯度的方向相反,因为想要损失减少,做出调整的数额,被称之为学习率,学习率可以在整个网络都是一样的,也可以每个权重都不同。

7、Learning is an Optimization Problem

这不调试权重和偏置的过程,就是最优学习就是一个优化问题你有一个目标函数试图最小化它变量是参数,权重和偏置,神经网络碰巧有十万数百万的参数尝试求最小值的函数是非线性的但是归结为有两个重,两个实际是一个权重,当你调整损失调整的方式是最大限度地降低输出损失有许多优化方法可以做到这一点

Task: Update the weights and biases to decrease loss function

image.png

Use mini-batch or stochastic gradient descent.

这是一个凹函数可以找到一个局部最小值如果知道这些术语局部最小值和全局最小值是一样的没有奇怪的丘陵地形会将你困住目标是达到这个函数的底端如果是一个很复杂的地形,很难到达底这个方法是梯度下降有很多不同的方法来做梯度下降,在过中加入各种随机性所以你不会陷入地形中的缝隙

8、Optimization is Hard: Vanishing Gradients

image.png

但是它很复杂,要十分小心,这是要注意一部分,当在DeepTraffic上设计一个网络时,但没有什么效果,这可能是其中的原因,梯度消失或梯度爆炸,当偏导数很小时,如果用sigmoid函数,这是最流行的激活函数,当在底部的时候导函数为零,当sigmoid输入过高或者过低,导函数为0,梯度提醒要调整权重的程度,梯度可能为0,反向传播那个0,一个很小的数学它会越来越小,当反向传播,结果就是,认为不需要调整权重,当一大部分的网络,权重不需要被调整时,它们就不会调整权重,不会去做任何学习,所以学习效率会很低。

9、Optimization is Hard: Dying ReLUs

image.png

If a neuron is initialized poorly, it might not fire for entire training dataset.

Large parts of your network could be dead ReLUs!

对此有一些对策,有一些不同种类的函数,举个例子,relus 函数是最受欢迎的激活函数,但是同样如果神经没有被很好地初始化,函数就不会被激活,整个数据集的梯度可能会变为0,没有产生任何输出,运行所有的猫的图像,一个都没有被激活,这就是要注意的地方所以一定要细心挑选

10、Optimization is Hard: Saddle Point

 image.png

优化机器使用的求解器和激活函数,不能像乐高一样玩即插即用,要注意这些函数,SGD 随机梯度下降这是针对梯度下降的 vanilla 优化算法,用优化梯度上的损失函数,这里显示的是如果做了任何数值优化和非线性优化,这就是名的鞍点,对这些算法来说很棘手,会发生的是函数很容易摆动,在鞍点来回摆动,不是他们想做的,向不走,会为发现了这个低点而开心,但是忘记了还有比它更低的点,所以被梯度困住了会不断地来回摆动,没法到全局最小值有,许多巧妙的办法可以解决它,atom 优化器就是其中之一,但在这种情况下只要梯度不会消失,SGD 随机梯度下降,其中一个算法会帮到可能需要一点时间,但最终会帮到

问题在处理一个非凹的函数,如何确保能收敛到足够好的地方?

局部最优收敛于,答案是不能,这不只是个非线性的方程,而且是高度非线性的,神经网络的力量和美丽在于,它可以表示这些任意复杂函数的功能,这是难以置信的可以从数据中学习这些函数,人们把训练神经网络比作为艺术,是因为试图处理参数,使它们不会陷入局部最优,无论出于何种原因,这个问题关键是在处理函数,但不知道全局最优在哪,这是问题所在,谈到的一切解释文字解释视频甚至是驾驶,驾驶的最优化是什么,永远不发生意外,必须制定这个世界,这样它就定义了所有事情,而且它成为了非线性的目标函数,不知道最优是什么,因此要不断尝试,而且对它每次变得更好而印象深刻,基本就是这个过程,也可以作些对比,和人的表现做对比

11、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:

① Genetic Algorithms

② Particle Swarm Optimization

③ 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?

对于imagenet人可以辨别出猫和狗而且概率最高的五个类别,达到96%的准确率,会留下深刻的印象,当机器可以做的比这更好的时候,但你不知道最好是什么。

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

热门文章

最新文章