深度学习要另起炉灶,彻底抛弃反向传播

人工智能先驱Hinton近期表示,他对反向传播算法持怀疑态度,并建议科研界放弃该算法,寻找新的AI路径。他认为无监督学习是关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文

其它链接

其它链接2原文

浅析

浅析更新

【导读】 Hinton在接受 Axios 网站采访时表示,他现在对反向传播算法“深感怀疑”。反向传播算法是我们今天在AI领域所看到的进步的“主力”,包括对照片进行分类的能力、与Siri 对话的能力,等等。Hinton 说:“我的观点是把它(反向传播)全部丢下,重起炉灶。”



科学每经历一次葬礼就前进一步:为了进步,必须要有全新的方法


1986年,Geoffrey Hinton与人合著了一篇论文:Learning representations by back-propagation errors,40年之后,反向传播算法成了这一波人工智能爆炸的核心。但 Hinton 却说,他的这一突破性方法应该被抛弃,我们应该找到AI的新路径。


上周三在多伦多举行的一个AI会议上,Hinton在接受 Axios 网站采访时表示,他现在对反向传播算法“深感怀疑”。反向传播算法是我们今天在AI领域所看到的进步的“主力”,包括对照片进行分类的能力、与Siri 对话的能力,等等。Hinton 说:“我的观点是把它(反向传播)全部丢下,重起炉灶。”


会议上的其他科学家说,在人工智能的未来,反向传播仍然是一个核心的角色。但Hinton说,为了推动进步,必须要有全新的方法被发明出来。“Max Planck 曾说:‘科学每经历一次葬礼就前进一步。’未来取决于对我所说的一切都非常怀疑的那些研究生。”


反向传播的工作原理:在反向传播中,标签(label)或“权重”(weight)被用于表示类似于大脑的神经层里的照片或声音。然后逐层对权重进行调整,直到网络能够以尽可能少的错误实现一个智能的功能。


但Hinton认为,要想让神经网络能够自己变得智能,即所谓的“无监督学习”,“我认为这意味着需要放弃反向传播。


“我不认为这(反向传播)是大脑运作的方式,”他说,“我们的大脑显然不需要对所有数据进行标注。”




1986:Hinton等人将反向传播算法引入多层神经网络训练


1986年,Geoffrey Hinton与David E. Rumelhart 和Ronald J. Wlilliams合著了一篇论文:Learning representations by back-propagation errors。首次将反向传播算法引入多层神经网络训练。为后来反向传播的大范围普及奠定了基础。


论文摘要


我们描述了一种新的学习过程,反向传播,用于类似神经元单元的网络。这一学习过程通过反复调整网络中连接的权重,从而最大程度地减小网络实际输出向量与期望输出向量之间的差值。由于权重被调整,不属于输入或输出的内部“隐藏”单元(hidden units)来表示任务域的重要特征,而任务中的规则则被这些单元的交互捕获。反向传播创造有用的新特征的能力,将其与早期的、更简单的方法,如感知-收敛过程( perceptron-convergence procedure)区分开来。


论文地址:https://www.iro.umontreal.ca/~vincentp/ift3395/lectures/backprop_old.pdf



如果没有得到谷歌实习机会,都怪Geoffrey Hinton把门槛设得太高



Geoffrey Hinton 是人工智能领域最著名的研究人员之一。他的工作帮助我们开启了今天我们所看到的深度学习的世界。他在1977年获得人工智能博士学位,自那40年后,他在反向传播和波尔兹曼机的发展中扮演了重要角色。因此,几天前谷歌大脑团队在 Reddit AMA 中谈及 Hinton 2012年时在谷歌当实习生,引起相当多人们的兴趣。


由一个有关“谷歌大脑的实习生的年龄限制”的问题引起,谷歌高级研究员兼谷歌大脑负责人 Jeff Dean 解释说,他的团队对实习生的年龄没有任何限制。他说,确切意义上来讲,Geoffrey Hinton 在2012年时就当过一段时间他的实习生。


“2012年夏季时,我们小组请 Geoffrey Hinton 作为访问研究员,但出于种种原因,他被归类为实习生了。”Jeff Dean 在交流中开玩笑地说道:“实习生没有年龄限制。我们要求的是,实习生要有天赋,要渴望学习,像Geoffrey 那样:).”


一年之后,谷歌收购了 Hinton 当时的初创公司 DNNresearch,以扩充他们在深度学习方面的能力。谷歌花了多少钱买下 DNNrearch 仍然是个迷,但经过一年的实习,这似乎是个很好的交易:)


谷歌大脑团队是谷歌深度学习研究的核心,也是当下最受欢迎的 TensorFlow 深度学习框架诞生的敌方。如果你申请去那里学习但没有得到实习机会,不要伤心,都怪 Geoffrey Hinton 把门槛设得太高了!



深度学习大神Hinton:反向传播和对比散度发明人



杰弗里·埃弗里斯特·辛顿(英语:Geoffrey Everest Hinton)(1947年12月6日-)是一位英国出生的计算机学家和心理学家,以其在神经网络方面的贡献闻名。辛顿是反向传播算法和对比散度算法的发明人之一,也是深度学习的积极推动者。


辛顿于1970年在英国剑桥大学获得实验心理学学士学位。此后于1978年在爱丁堡大学获得人工智能博士学位。此后曾在萨塞克斯大学、加州大学圣迭戈分校、剑桥大学、卡内基梅隆大学和伦敦大学学院工作。他是盖茨比计算神经科学中心的创始人,目前担任多伦多大学计算机科学系教授。辛顿是机器学习领域的加拿大首席学者,也是加拿大高等研究院赞助的“神经计算和自适应感知”项目的领导者。辛顿在2013年3月加入Google,同时Google并购了他创办的DNNresearch公司。


研究兴趣


关于辛顿工作的浅显解释可以参考他在1992年9月和1993年10月于《科学美国人》发表的两篇科普文章。他研究了使用神经网络进行机器学习、记忆、感知和符号处理的方法,并在这些领域发表了超过200篇论文。他是将反向传播算法引入多层神经网络训练的学者之一。他与特里·赛杰诺维斯基一同发明了波尔兹曼机。他对于神经网络的其它贡献包括分散表示(distributed representation)、时延神经网络、专家混合系统(mixtures of experts)、亥姆霍兹机(Helmholtz machines)等。辛顿当前的工作是处理丰富传感器输入的神经网络无监督学习。


获奖


辛顿是鲁梅哈特奖的首位获奖者,1998年当选皇家学会会士。


辛顿获得了2005年IJCAI杰出学者奖终生成就奖,同时也是2011年赫茨伯格加拿大科学和工程金奖获得者。


轶事


辛顿是逻辑学家乔治·布尔的曾曾孙,布尔的工作最终成为了现代电子计算机的基础。与此同时,辛顿也是外科医生和作家詹姆士·辛顿的后裔。


在遇到结点时,若车左转,则:若d[p]为1,则a[p]加1,否则若c[p]为1,则d[p]加1,否则若b[p]为1,则c[p]加1,否则若a[p]为1,则b[p]加1。称此为左侧结点转向法。 在遇到结点时,若车直走,则:若b[p]为0,则c[p]加1,否则若c[p]为0,则d[p]加1,否则若d[p]为0,则a[p]加1。称此为前侧结点转向法。 在遇到结点时,计算方法为:(小车在调头动作完成后,N置1)当小车驶到一个任意结点时,若N为1,则判定此节点为原结点,p不变,此时转向时再根据情况同理调用结点转向法,此时p为p,完成转向算法后将N置0。 否则若N为0,若A[p-1]为2,则判定此结点为已过结点,p不变此时转向时继续根据情况调用结点转向法,此时p为p-1,完成转向算法后将A[p]置为0,为无效结点。 否则,则立即将a置1,此时结点状态为新节点,p加1,A[p]置为1,为有效节点,此时若车左侧有线,则调用左侧结点转向法,否则调用前侧结点转向法,此时p为p。 以上述算法走到终点时,已将所走过的每个结点都归纳到算法中,每个小车已走过的结点都有属于自己的值,用另一套算法逐个处理结点值即可计算出最短路径。 在小车回起点时,我们抛弃原有的一切算法,另起炉灶,此时要先把所有有效节点剥离出来,然后按从终点到起点的顺序将有效节点存到一个数组中,在这里先介绍我的第三种算法。 在遇到结点时,若此结点d为1,则左转,否则若c为1,则直走,否则若b为1,则右转,我称此为结点回溯法, 由此算法可顺利回到起点。因为在每一个结点计算一次,统一计算再运行,故而此算法对算力要求低,占用运行内存少,运算速度极短,不会影响其他程序的运行。详细解释
最新发布
05-09
<think>好的,我需要详细解释基于结点转向法、前侧结点转向法和结点回溯法的小车路径规划算法,包括左转、直走、调头和有效节点处理的逻辑。首先,我需要回忆用户提到的引用内容,其中提到了结点类型和转向优先级。用户之前的问题可能涉及到如何让小车在迷宫中高效导航,而这里提到的算法可能与传统方法不同,能够统一处理不同结点类型。 首先,结点转向法应该涉及小车在到达结点时如何选择方向。根据引用,优先左转,其次直走,最后右转。这类似于左手或右手法则的迷宫解决方法,但具体实现可能不同。需要解释每个结点类型(十字、正T、左T、右T)如何被统一处理,而不是分别处理。可能需要说明无论结点类型如何,转向优先级始终固定,这样简化了判断逻辑。 接下来是前侧结点转向法。这可能指的是在接近结点前,根据前方的情况提前决定转向。比如,当检测到前方有结点时,根据预设的优先级调整方向,而不是等到完全进入结点再处理。这可能涉及到传感器检测到结点前的预判,提前减速并准备转向。需要区分“结点转向”和“前侧结点转向”的不同点,前者是在结点处处理,后者是在结点前的处理。 然后是结点回溯法,这可能用于处理死路的情况。当小车进入一个死胡同时,需要回溯到之前的结点,并选择其他未走过的路径。这里需要说明如何记录路径,标记已访问的结点,以及在回溯时如何调头并返回上一个结点。调头逻辑可能是在无法左转或直走时,选择右转,但如果右转也不行,则调头。 有效节点处理可能涉及判断哪些结点是需要处理的,比如只处理未访问过的结点,或者根据某些条件判断是否为有效路径的一部分。需要说明如何标记结点为已访问,以及在回溯时如何处理这些标记。 现在需要将这些方法整合成一个连贯的流程,可能包括以下步骤: 1. 小车移动时持续检测前方是否有结点。 2. 当接近结点时,根据前侧结点转向法预判转向方向。 3. 到达结点后,按照结点转向法的优先级(左转>直走>右转)选择方向。 4. 如果选择的路径导致死路,启动结点回溯法,调头并返回上一个结点,选择其他方向。 5. 有效节点处理需要记录每个结点的访问状态,避免重复处理。 可能需要用伪代码或流程图来展示这些步骤,但用户要求中文解释。需要确保每个部分逻辑清晰,特别是转向优先级和回溯机制。同时,引用中提到暴力枚举到达终点,可能意味着该算法通过不断尝试所有可能的转向组合,直到找到出口,但通过优先级减少尝试次数。 需要注意术语的一致性,比如“结点”是否指交叉点,转向的具体实现方式(如如何左转,是否需要旋转90度等),以及传感器如何检测结点类型。由于引用中提到算法能统一处理不同结点类型,可能不需要区分结点具体形态,只需根据当前可行方向按优先级选择。 可能存在的疑问点:如何处理环形路径或循环?如何避免无限回溯?可能需要标记已访问的结点,并在回溯时撤销标记或采用其他策略。此外,调头的实现可能需要小车旋转180度,这在实际操作中需要考虑机械结构和控制逻辑。 总结下来,需要分步骤解释每个方法的逻辑,并结合转向优先级、回溯机制和有效节点处理来说明整个路径规划过程。</think>### 基于结点转向法、前侧结点转向法与结点回溯法的路径规划算法 #### 一、结点定义与转向优先级 将迷宫路径交叉点抽象为**结点**,分为四种类型:十字结点(四向通路)、正T型结点(前/左/右通)、左T型结点(左/直通)、右T型结点(右/直通)。算法通过统一的转向规则处理所有类型: 1. **左转优先**:若存在未探索的左转路径,则优先选择 2. **直行次之**:左转不可行时选择直行 3. **右转最后**:前两项不可行时选择右转 4. **调头判定**:当三个方向均受阻时执行调头 ```python # 结点转向逻辑示例 def node_turning(current_dir, available_paths): priority_order = ['left', 'straight', 'right'] for direction in priority_order: if direction in available_paths: return direction return 'uturn' # 触发回溯 ``` #### 二、前侧结点转向法 在**接近结点前1-2个车身距离**时启动预判机制: 1. 通过红外/视觉传感器检测前方结点类型 2. 根据预设转向规则生成候选路径集合$P=\{p_1,p_2,p_3\}$ 3. 动态更新路径权重$w_i=α·d_i+β·s_i$,其中$d_i$为路径方向得分,$s_i$为历史成功率[^1] 4. 选择综合得分最高的路径方向 $$ \text{决策函数}:\arg\max_{p∈P} (0.6d_p + 0.4s_p) $$ #### 三、结点回溯法 当进入死路时触发回溯机制: 1. **路径标记**:使用栈结构记录经过的结点序列$S=\{n_1,n_2,...,n_k\}$ 2. **逆向回溯**: - 弹出栈顶结点$n_k$ - 调头返回$n_{k-1}$ - 在$n_{k-1}$处标记当前路径为无效 3. **状态重置**: ```python while stack: current_node = stack.pop() if current_node.has_unexplored(): reactivate(current_node) return rebuild_path(stack) mark_dead_end(current_node) ``` #### 四、有效结点处理 1. **结点激活条件**: - 新发现未记录结点 - 历史结点出现新通路 - 系统复位后需重新验证 2. **动态更新机制**: - 使用哈希表存储结点状态$H=\{n_id:(x,y,status)\}$ - 状态编码:0=未探索,1=已通过,2=死路 #### 五、调头逻辑实现 1. **物理调头**: - 两轮差速旋转180° - 路径修正补偿$\delta=vt+\frac{1}{2}at^2$ 2. **逻辑调头**: ```python def uturn_handling(): global current_direction current_direction = (current_direction + 2) % 4 clear_forward_cache() reset_sensor_threshold() ``` #### 六、算法执行流程 1. 初始化路径栈与方向状态 2. while 未到达终点: - 前侧检测到结点 ⇒ 执行前侧转向预判 - 进入结点区域 ⇒ 激活结点转向逻辑 - 路径受阻 ⇒ 触发回溯机制 - 更新结点状态表 3. 输出优化路径序列
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值