Dr.Know-it-all Knows关于V12的讨论

发布于: 雪球转发:1回复:6喜欢:11

这是一篇由gpt4翻译的文章,来自万事通博士的频道。你会发现这篇文章前几段翻译的特别准确,而越往后质量越差,这是因为我写了很长的提示词,告诉他这篇文章的语境、关键术语,以及大概会出现几次广告,还有他惯用的语气词,我要求把无效信息都过滤掉。但是到后面他逐渐忘记了propmt,进入一种“自我”的状态。不过即便如此,也比机翻好很多。

所以在翻译这篇文章的过程中,除了了解自动驾驶,还能学习一下GPT4的使用技巧。

这篇文章中,他提到了自动驾驶不会完全依赖视觉,因为人类开车还有听觉,要能听到其他车辆的鸣笛,还要使用平衡感,能感受到车转弯的压力变化;他还提到了机器人和自动驾驶汽车的不同。

以下是译文:

随着围绕特斯拉、全自动驾驶 beta 12 和埃隆·马斯克的热议,Ella Swammies 前不久在帕洛阿尔托的驾驶引发了关于端到端神经网络处理的确切含义以及它与过去的区别的困惑。所以,我们今天将探讨这个问题。

大家好,让我们来探讨一下。今天,我将从较高的层次讨论这一切。我实际上很快想做一个关于扩散模型、transformer 和卷积神经网络的视频。特别是因为Elon暗示,特斯拉的全自动驾驶团队正在使用除transformer之外的其他方法来完成他们现在的工作,并且这样做是有效率的。

但今天,我想从一个相对较高的层次讨论自动驾驶的三个主要部分,即感知、决策制定和输出控制。当然,自动驾驶的主要示例是我们,人类,因为我们一直在进行自动驾驶。感知是我们的眼睛,以及在较小的程度上,我们的耳朵,因为我们确实会听到像警笛这样的声音。当然,我们还有平衡感,所以当你转弯时,你可以感觉到你是否有很多的侧向力。你也知道,因为你转了很多方向盘。但基本上,如果你感觉你的车速很快,或者你的车很容易翻车,或者你的轮胎很旧可能会打滑,或者下雨或者路面结冰。所以,除了视觉,你确实需要其他感觉。

但对于人类来说,视觉是驾驶的主要方式。然后是决策过程。

当然,这是我们的大脑。我们的大脑在思考:我需要做什么来保证安全,我需要做什么才能尽可能高效地到达目的地。所以有短期的规划,就是不要发生事故。还有长期的规划,例如,我如何导航到我想去的地方?当然,我假设你不使用手机,也不使用GPS等设备。

你是这样做的:有人告诉你去那个地方,所以你试图找到它。然后,当然,最后一步是你用手转方向盘或用脚踩刹车或油门的控制输出。

当然,明确地说,在一个人类驾驶的车辆系统中,我们实际上看到的更像是优化驾驶传统汽车。所以你看到的是一个机器人,它需要做出很多有趣的决策,使用所有的执行器或人类的肌肉等,以产生非常简单的输出给汽车。但在自动驾驶汽车中,我们可以抽象出这一点,因为它可以直接转动方向盘或踩油门。

或者刹车,所以你不必担心有一个人来控制所有这些。但我今天谈论的一切都将直接转移到优化中。所以请理解,对于类人型机器人,控制输出要复杂得多,但基本思路是相同的。好的,让我们从人类转向机器人或计算机/计算机,无论你想怎么称呼它。如果我们看输入视觉系统,换句话说,输入空间,你可以回顾过去。

在机器学习、人工智能的早期版本中,这已经完成了。在80年代和90年代,甚至在此之前,都有过尝试,但它们需要大量的硬编码。一个人会坐下来说,好吧,我们有一个黑白图片,无论我们驾驶的是什么,在开始时都是这样。当然,开始是用遥控车或其他小东西,而不是真正的汽车,但后来它发展到了真正的汽车。

但基本上,你会看图像,然后你会弄清楚如何在它们上运行卷积滤波器或其他东西。这不是人工智能卷积神经网络,但基本思路是一样的。只是由人类完成的。但你会运行这个。你会寻找边缘,你会寻找匹配某种格式的边缘。你真的会使它变得很复杂。最终,你会拼凑出像路边或其他车或某种物体的东西。

然后你的玩具车或真正的汽车可以穿越那个场景,它通常会非常非常慢,通常不到一英里每小时或其他。它会犹豫很多。如果有任何奇怪的事情,或者如果太阳角度不同或其他,它会停止。所以非常非常脆弱的东西。这实际上也适用于决策过程和控制输出。所以当我讲到它时,我不会过多地停留在这上面。

但在过去,所有这些都是硬编码的,是由人类决定的启发式,决定输入空间应该告诉车辆关于视觉的什么。记住,我们不仅仅在看视觉,我们还在看雷达。我们在看激光雷达,我们在看超声波传感器等等。但总的来说,基本的目标是尽你所能处理所有的输入,通过一些滤波器和其他东西运行它,看看它是否与一个人之前编码的东西匹配。

如果匹配,那么你就可以传递给导航决策过程。然后,当然。那个导航决策过程也是一个人编码的一堆启发式。所以他们会做出决策,比如,如果我看到这个,经常这样做。

所以,如果你看到,比如,你撞到一辆车,你撞到一个邮筒,或者你撞到一个垃圾桶或其他东西,所以你会基于此做出决策。所以你会有一堆启发式,比如,如果我看到这个,那么做这个,如果我看到这个,那么做这个

但当然,你会得到非常机械化的驾驶,然后输出控制是,如果决策是向左转,那么我需要转多远,转那么多的方向盘,然后你需要做一些整合,以防止方向盘不断地这样转动。因为记住,这个东西的运行速度是每秒12、15或20帧。

它可能在每一帧都做出不同的决策,这意味着,我相信人们还记得早期的实验。如果你看旧视频和其他东西,你会看到车里的方向盘和其他东西都非常颠簸。但基本上,你使用整合,所以你随着时间的推移整合,试图平滑所有的小颠簸,并在一段时间内得到一种平均的决策过程,使汽车相对平稳地驾驶。

所以这就是你用启发式方法做的方式。使用端到端神经网络的好处是,你将所有的决策过程从人的手中拿走。换句话说,打字。打字、打字、打字、打字。你输入启发式,你说如果你看到这些微小的特征。

也许它加起来是这样的。看看小特征。也许它加起来是这样的。然后你进入控制决策过程。它就像,现在我该怎么办。然后你进入输出过程,它就像,考虑到我做出的决策,我该如何转动方向盘、踩油门或刹车?你所做的是从所有的人类硬编码的东西转变,那将是软件1.0,正如AK所说,到制作一个神经网络。

所以我们今天可以想象它是一个单一的网络。我不相信这是特斯拉的做法,只是因为把所有这些作为一个巨大的网络太复杂了。我认为他们很可能至少有一个用于视觉,一个用于控制决策过程,然后一个用于输出。

他们将它们缝合在一起,这就是为什么Elon在推文中说,99%以上的神经网络代码,因为我认为他们有像从一个模块传递到另一个模块的传统代码的缝合。现在,它可能比这更复杂。

我们之前确实看到了视觉系统如何使用AK称之为hydrant的东西,我认为那甚至是在他离开后,Ashok和其他人也谈到过这个。他们可能不再这样做了。但那就像一个巨大的主干。然后我有了一堆输入和一堆输出。

所以像这样的东西是非常可能的。我认为他们可能正在做类似的事情,因为再次,如果你可以拿出单独的部分,它使训练变得更容易,但他们可能会选择更单一的东西。

所以现在它可能只是一个巨大的输入空间,仅用于车辆的视觉和检测模式。但无论如何,今天,我们只是假设一个巨大的、单一的东西,它从一端接收光子,在另一端,它实际上转动方向盘、踩油门或刹车。记住,这适用于优化,其中输出空间由于移动身体而变得更加复杂,而不仅仅是三个输出控制。

所以,好吧,视觉系统中,你有一个神经网络而不是人类编码的东西。所以你需要做的是,你需要构建一个神经网络架构,你需要构建一个可以理解这个的神经网络。这并不是一件容易的事。

你知道,特斯拉已经工作了多年来构建这个架构,我们有鸟瞰网络或bev nets。有占用网络,我们有车道的语言。我们确实明确地看到了这一点。

在那之前,我们看到了栅格图像,他们会拿每一张单独的图像,取其栅格,然后一帧一帧地弄清楚事情。在过去的7或8年里,特斯拉在这方面的工作经历了很多。所以这经历了很多不同的迭代。

再次强调,超级复杂的隐喻是在黑暗的夜晚在树林里,你撞到树上,你不知道你要去哪里,直到你真正走出森林。这就是特斯拉所处的情况。

所以,你知道,他们尝试了一堆可能被证明是死胡同的东西,或者它们可能是你可以在后端使用的数据来使事情工作得更好的东西。但无论如何,就实际的神经网络而言,它们在版本12中可能不再被使用。

所以一旦你有了这个架构,大问题是你不能再告诉它该怎么做了。换句话说,你不能让一个人说,如果你看到一个停车标志,那么停下来。

这是Elon和Ashok在他们的驾驶中实际提到的,你知道,0.5%的人在停车标志处完全停下来。所以从车队中提取数据实际上是非常困难的。我的观点是,那些司机是糟糕的司机,因为好的司机实际上不会在停车标志处停车。

他们只是滚过去,除非有其他车。但无论如何,你从这次谈话中可以听到,特斯拉不能再告诉汽车他们要做什么了。所以在视觉空间方面,你要做的是为你的神经网络的那部分构建架构,无论它需要什么。

有些人想知道特斯拉英伟达苹果的股价在一个月后会是多少,这实际上是一大块代码。这实际上是一堆张量,这是多维的。它从输入空间中取得数字。换句话说,相机发送原始光子,所以光子进入这个神经网络的输入空间。神经网络只是乘法和加法。一大堆权重。当它在训练时,它实际上不断地改变这些权重。

在你的车里,它不再这样做了。它只是在推断。它不再训练,但在训练场景中,它实际上是这样做的,并做出预测。当它错了,因为你可以告诉它是否错了,你然后将错误传回网络,并调整所有这些,使它们更接近一点。如果你用数百万或数亿或数十亿的视频做这个。

你最终会训练这个网络,在所有情况下,几乎就像一个人一样,它会理解空间中的一切。你不再明确地说这是一个停车标志。事实上,汽车甚至不知道停车标志的概念。它只知道视频输入

写在那之上,我们反过来又是。但那是一个停车标志。我们对停车有一种语义理解。停车也是英文。所以我们知道“停车”在英文中是什么意思。所以对我们来说很有意义。所以你不会得到那辆车,那辆车正在学习,但它是在一个通常很奇怪的空间里学习。所以它实际上必须提出自己版本的语义。这真的很有趣。

事实上,我希望有一天有人能把这个拆开,做一个研究项目,看看完全自动驾驶版本12的底层语义是什么,因为它必须创建自己的。因为基本上,我们只是说,这里有一堆视频。看它。记住,我们还有IMU数据。所以我们不仅有人们驾驶汽车的视频。我们还有加速度曲线。但你知道你的转弯曲线有多难,所有这些东西也都被混合在一起。

但再次强调,对于今天的讨论,我们可以忽略那个,但那是过程的一部分。你也不希望汽车完全颠簸。

至少据我所知,那个Im数据。我的意思是,也许它实际上只能看视频的像素,然后像,哦,我看到这个人在停车标志前10秒就开始减速了,你知道,完全停下来或者什么,我不知道。所以也许他们不再需要那个了。但我认为他们可能会。但那是一个不同的输入流。可以二次完成,但这是一个好主意。

要把它放在那里,确保汽车不仅驾驶得当,而且驾驶得很顺畅。所以,再次,我们不再有一个程序员明确地告诉汽车它看到了什么,或者如何看到那个物体。我们只是向这辆车扔了数亿到数十亿英里的数据。我们只是给它展示视频,它自己弄清楚了。当你听说软件1.0是软件2.0。

那正是它,软件1.0是一个传统的编码器,准确地写入计算机应该做什么。而且,你猜怎么着,你从中得到的正是你所期望的,也就是你得到一个机器人,你得到汽车完全按照它被告知要做的来做。

如果它没有看到那个,它也会崩溃并停止。所以你最终会得到Cruise或Waymo或其他东西,这些车辆实际上会在路上停下来,因为它们不再知道该怎么办了。

特斯拉试图做的整个重点是摆脱那种机器人行为,它的脆弱性,它很容易在看到一个它从未见过的情况时崩溃,因为现实是非常混乱的。所以你必须做的是,你必须能够创建一个足够强大的网络,能够检测到一切。

它可以是模糊的。它就像,我从未见过这样的东西,但我见过非常、非常接近它的东西。因为那种知识,我就像。好吧,我会尽可能接近我以前见过的东西来驾驶,你知道,那是可能的。这和人类的做法是一样的。如果你在一个不同的州或一个不同的国家驾驶。或者你从未遇到过的非常奇怪的天气,你会弄清楚的,你会使用你过去的经验来像这样去做。

窗体顶端

好吧,我以前从未这样做过,但我做过类似的事情。所以我会以与那相似的方式尝试,可能会更保守一些。这是人们反对全自动驾驶的主要原因之一,因为它在决策过程中往往相当保守。但我认为很大一部分原因是它仍然在学习,它仍然像一个新手司机。所以它对正在发生的事情还不那么有信心。所以这就是我们的视觉输入,我们只是接收原始光子,然后我们。

解释它。我们不知道这个黑盒子现在是如何解释它的。我们只是有一个它自己建立的世界模型。我们有一个它自己建立的语义,它与英语或人类理解的任何东西无关。它自己创造了那个。现在它到了整个事情的中心部分,也就是决策过程,这是一个过程。

这个难题有两部分,一是短期的,即撞到东西。2是导航。你如何以最有效的方式到达你要去的地方?所以再次,在这一步,我们从启发式方法,从一个编码器告诉计算机如何做所有这些事情,转移到计算机从大量、大量、大量的数据中自己弄清楚。据我了解,特斯拉做了。

他们移动了视觉部分,解释。理解,这是他们首先转移到神经网络的,因为这是最难处理的事情。对他们来说,处理这个,使世界有意义是非常困难的,所有其他的事情都取决于这个。

所以这是最困难的任务,也是所有其他事情都依赖的任务。所以他们做了。他们已经研究了好几年。你已经看到过研究报告,你已经看到过AI日1和2等,他们真的深入研究了这个,他们主要关注的是他们的视觉。然后下一步是转移到决策过程,说,好吧,我们基于这个视觉决定下一步做什么?再次,在这里,从软件1.0转移到2.0,我们从。

启发式方法,一个人有。如果你看到这个,那么做这个。如果你看到这个,那么做这个。我在想这样的问题。你知道,这个模因。无论如何,所有这些人都必须放进去,而且你只是不能想出每一个可能性或结果。所以,更好的解决方案是采用软件2.0类型的解决方案,只是给它一个神经网络架构,给它一些进来的东西。

这就是我看到的。然后输出是,当你看到这个时,应该发生什么。换句话说。你传递给神经网络的控制输出部分。所以像我说的,这个难题有两部分。而且它们实际上是相互冲突的。短期的,我认为现在实际上已经很好了。那就是。他们不会撞到东西。所以它就像,你知道,现在发生了什么。

我前面的车正在刹车吗?我需要转弯吗,因为我可以看到弯道即将到来?

导航与此无关。你所做的实际上是将导航插入到这个过程的中间。这样做,你引入了一个变量,这个变量实际上不是原始神经网络过程的一部分。我认为正是这种整合导致了问题。

所以基本上,现在的整合是你有谷歌地图,然后它传输给特斯拉,然后你得到一个关于你的路线的决策或某些东西。所以比如说你要从你的车道移动到右边的车道,然后右转。这些决策是基于导航信息和信息。但这些信息传入神经网络的方式是非常不同的。你不能通过观看视频来了解如何做到这一点。如果这有意义的话?

所有这些其他的东西,如果你想象一下,我在想《发条橙》,那里。

天哪,他叫什么名字,我记不起来那个演员是谁了,但是那个场景,他们正在重新训练他,他们撑开他的眼睛,让他看所有的超级暴力和其他的东西,我认为你有一个与全自动驾驶相似的情况,你只是隐喻地撑开它的眼睛,给它数百亿英里的信息和策划的信息,这是非常、非常重要的。真正、真正好的司机正在做。

一个非常、非常好的工作。它说,好吧,我看到这个,我看到这个,我看到这个,我看到这个,然后它开始做虚拟决策。所以它实际上是输出它会做什么,然后它可以检查与人类做的相比。在这种情况下,它就像,哦,我做对了。或者我做错了。如果它做错了,它就会倒退。并调整所有的权重。随着时间的推移,它弄清楚了如何做到这一点。

但问题是,你如何将导航信息整合到这个过程中,如果你考虑一下,这真的不是一件容易的事,因为这是一个完全独立的控制,从外部输入。

这就像一个Davis Ex mocking的东西,就像,嘿,你需要去这里。所以弄清楚。所以这只是被添加到这整个事情中,与你看到的视频无关,除非他们能够实际获取地图数据。所以比如说他们实际上可以抓取不仅仅是我的视频和所有的输入,还有我要去的地方。这可能会导致隐私问题。这可能使得特斯拉很难做到这一点。

但假设我们不必处理那个,他们也可以输入导航信息,就像。现在,你在这里,你需要去这里,我们需要进入右侧车道,然后右转。如果你能做到这一点,与视频同步,那么也许你可以用传统的方式训练它。但除此之外,我真的不知道你怎么做到这一点。这很复杂。

唯一可能发生的是,你会得到一个完整的外部小堆栈,这里有一个小块,告诉你现在你需要进入右侧行驶。这很困难,因为这很像启发式代码,非常脆弱。

在这个超过两分钟的视频中,我想现在向你展示的是一个非常模糊的事物。如果你想象自己在繁忙的交通中,需要移动,你会留意前面的车辆,看看后面的车辆在做什么,什么时候是一个好的机会进入。

还有,你需要提前多远才能真正转弯。所以在这一点上,决策过程是模糊的,你需要对此有些宽松。所以你真的不希望有一个决策,比如说,你还有0.3英里,现在就进入右侧车道。这种决策就这样被放在了这上面。再次,我认为这就是为什么导航对全自动驾驶来说是一个致命的弱点。

现在,我不知道它是如何被整合到全自动驾驶版本12中的,但即使是11.4.7,它仍然不是理想的。汽车在处理这个问题时遇到了困难,但我认为这是它存在问题的主要原因,因为它与整个流程不匹配。

也许特斯拉已经解决了这个问题,他们找到了一种直接将地图数据输入到训练中的方法,并使其弄清楚如何做到这一点,并反向传播所有这些东西。但这是一件相当复杂的事情。所以,无论如何,我不知道他们做了什么,也不知道他们将如何解决这个问题,但当人们因为它导航不佳而生气时,这就是原因。将这个导航信息整合到神经网络结构中真的很难。好吧,这很复杂,但在某个时候,你会得到所有这些东西的输出。

它说,好吧,你接下来需要做的是这个,然后它将其传递到神经网络架构的最后一个模块,也就是,我实际上要做什么?在接下来的1/36秒内,我该转多少方向盘,因为它每1/36秒做出一个决策,正如Elon所说,你知道。我该踩多少油门。我该踩多少刹车。而且,你需要整合这些东西。

你不希望它在1/36秒内做出一个独立的决策。再次,所有这些代码,我相信即使在11.4.7中,这部分代码仍然是启发式代码。它非常基于人类的软件1.0编码。这是11点和12点之间的一个非常大的区别,他们也将这部分移动到了神经网络堆栈中,你做这个的方式就像其他所有东西一样,给定所有这些输入控制。

我正在观看的视频,接下来会发生什么。计算机在训练时做出预测。然后它看到实际发生了什么。它像,哎呀,我犯了一个错误。然后它必须反向传播所有这些东西并修复它。所以随着时间的推移,它不断地调整权重,最终得到了正确的权重,直到它实际上做出了一个好的决策。这将导致适当的驾驶。它将导致平稳。

当你移动时,平稳性是一个非常大的问题,你知道。那些像,我不在乎它是否平稳。它正在驾驶。这真的很酷。我很喜欢这个标准的驾驶员,就像,我不在乎这是如何工作的,我只是不想像,或者,或者,或者,或者,你知道,突然地,让我晕车,让我担心汽车不知道它在做什么。我想要那种信心。我想要那种平稳,就像一个专业的驾驶员。我想要一个真正擅长的人。所以再次,你可以通过这个来训练它。

获取每一个东西的输出和视频输入,并说,你的决策是什么,它做出决策,它是错的。它弄清楚了问题是什么,并且在下次做出预测时做得更好。所以我们正在进行的是,我们有光子进来。我们有神经网络决定它是什么,这是什么世界,这是语义方面。

然后我们有一个神经网络说,现在,我接下来要做什么,有一个奇怪的插件从导航信息中进来,这是从外部进来的。但无论如何,它在某个时候做出决策,然后它将其传递到模块,也就是,我实际上要做什么。

这个决策制定过程导致了转动方向盘或加速器或刹车的物理控制。再次,对于Optimus,所有的东西都是一样的,除了训练数据是不同的,因为它是在建筑物或其他东西里。但它的输出控制部分要复杂得多。从直觉上讲,你可以用一个驾驶机器来应付,这并不困难。只有三个自由度。

但是对于像Optimus这样的东西,也就是特斯拉的机器人,你有多种自由度。每个关节、每个肢体、每个动作都有自己的参数和控制。所以,复杂性呈指数级增长。

神经网络必须考虑行走、平衡、拾取物体、与环境互动,甚至可能与人类或其他机器人互动。这需要对世界有更为复杂的理解和更详细的行动和反应模型。

在驾驶的背景下,汽车的主要目标是安全、高效地导航环境。但是,像Optimus这样的机器人必须在执行任务、避免障碍物,甚至可能与人类或其他机器人互动的同时,导航环境。这增加了决策过程的复杂性。

此外,尽管汽车可以依赖一套为在道路上驾驶定义的规则(如遵循交通信号、保持车道等),但在多种环境中操作的机器人没有这样的结构化规则可供遵循。它必须具有适应性,并从其经验中学习。

这就是神经网络和机器学习真正发挥作用的地方。而不是硬编码每一个可能的场景,机器人可以从其经验中学习,适应新的情况,并随着时间的推移而改进。但这也意味着这样的机器人的训练数据比自动驾驶汽车的训练数据要多样化和复杂得多。

总之,虽然使用神经网络进行决策的基本原则保持不变,但根据手头任务的复杂性,这些原则的应用会有很大的不同。无论是驾驶汽车还是控制人形机器人,目标都是创建一个可以理解其环境、做出明智决策并以安全、高效的方式对这些决策采取行动的系统。

方向盘、加速器和刹车,用启发式方法来处理这些是相对容易的。这就是为什么这是汽车中最后被替换的部分,但对于Optimus来说,情况完全不同。如果你没有一个神经网络架构来运行输出控制,它会像机器人一样移动、摔倒、做各种疯狂的事情。

在我看来,他们所做的是首先为Optimus建立这个输出控制的神经网络架构。然后,他们将其插入到汽车的版本12中。我估计这就是所有这些是如何工作的,或者,当然,他们可以并行工作。但无论如何,我相信Optimus为输出控制的神经网络架构应该是什么样子提供了很多灵感。

好的,这就是人类、传统的自动驾驶汽车以及新的自动驾驶12中的感知、规划和输出是如何协同工作的大局。显然,我省略了很多细节。但再次,我想保持这个相对高层次的,而且它已经超过20分钟了。

$特斯拉(TSLA)$ $英伟达(NVDA)$ $小鹏汽车(XPEV)$

全部讨论

2023-09-18 11:17

@会读ReadFlow 总结一下

2023-09-05 10:59

试试claude.ai呢?

2023-09-05 10:53

导航信息 压感 以及将来可能还会有其他模态的信息 例如语音 应该是下来它要克服的难点吧?

2023-09-05 10:42

老师用心

2023-09-05 10:38

多谢分享