AI漫画AI进化史之“反向传播的星星之火”

技术

1. 引言

这个系列是为所有爱好人工智能的同学写的AI通识,我试图用最简单的语言和大家讲述历史以及AI的基本技术原理,文中一半插图为AI工具所作,所以命名这一系列为: 《AI漫画AI进化史》。

按照历史顺序预计的后续篇章有:

《AI漫画AI进化史: 从故事到原理之“全面遭遇寒冬“》(撰写中)
《AI漫画AI: 从故事到原理之“人工神经网络复萌“》(已完成)

《AI漫画AI: 从故事到原理之“专家系统复兴“》(撰写中)

《AI漫画AI: 从故事到原理之“反向传播的星星之火“》(已完成)

《AI漫画AI: 从故事到原理之“贝叶斯网络的活水“》(撰写中)

《AI漫画AI: 从故事到原理之“深度学习崛起“》(已完成)

这是第四篇

《AI漫画AI: 从故事到原理之“反向传播的星星之火“》,之所以并没有历史顺序来发表主要是因为它太重要了,可以说当下你所熟悉的AI工具诸如GPT, MidJourney都可以追溯于此,希望这篇能帮助你了解工具背后的原理和故事,本文 总计3000 字,读完需要6分钟。

picture.image

  1. 人工神经网络黎明前的黑暗

在1980s年代初,全能科学家Hopfield(在物理学、化学、生物学、神经科学、心理学、计算机科学都有研究的科学家)提出了Hopfield network, 打开了尘封已久的“人工神经网络”的大门,为后来的年轻研究者开辟了一片新天地。

与此同时,有一位远在英国的一位博士也开始研究人工神经网络,在他看来,这正是人工智能的希望所在,但当他向导师陈述这一思想时,却被导师泼了冷水。

picture.image

其实,这瓢冷水也确实不能怪导师,要知道1970s年代末的人工智能,正在经历寒冬时代。而人工智能的“符号主义”派靠着”专家系统“刚刚有了生存希望,整个学术的中心都集中在那里, 人们根本就无暇顾及人工智能的另一门派”连接主义“,更何况他早在1969年就被图灵奖得主,符号主义领军人物“Marvin minsky” 所批判。

picture.image

但这位博士生依然坚守信念,但他博士毕业时(1978年),却无法找到一份合适的工作。 在他显赫的家族里(他的曾外祖父是发明布尔值的数学家乔治.布尔,从布尔开始延续了200年的学术家族),这的确有点让人沮丧。

picture.image

是的,这个人就是后来的深度学习教父:Geoffrey Hinton(2018年Hinton 获图灵奖。) 好在不久之后,他有了一次赴美做访问学者的机会,于是只身来到大洋彼岸追寻梦想, 历史的车轮开始旋转。

picture.image

在这里,他发现之前那些不被人们接受的观点,在这里竟然找到了志同道合的朋友

David Rumelhart。

picture.image

在1986年和1988年,Hinton 和David Rumelhart先后发明了玻尔兹曼机和back propagation。不过back propagation的诞生,其实并非一帆风顺。

  1. 人工神经网络内核:Back propagation的曲折诞生

1986年,Hinton 和David 在BP 方面的研究实验结果感到非常自豪,但那时候的神经网络连接派仍然被符号主义派压制,要想在《Nature》上发表关于神经网络的文章,很可能就是石沉大海。

当时的Nature有一位审稿人叫Stuart Sutherland是Hinton 的老乡(英国人),他是一位心理学家,同时也对人类认知学非常感兴趣,当时并不出名的Hinton花了非常大的力气向Stuart Sutherland讲述他的想法,最终打动了Stuart Sutherland。可以说,Stuart Sutherland对Hinton 算是知遇之恩。

picture.image

最终终于在1986年在Nature上发表。

picture.image

凭着这篇文章,Hinton和David也得到了相应的回报。

picture.image

Hiton终于在CMU(卡耐基梅隆大学,计算机专业全球排名前三)得到了助理教授的职位。

Back Propagation的意义

要说这个BP的影响有多大,我们先直观体会一下。

我们知道,当下爆火的chatGPT , MidJourney 等AI工具是算法、算力、数据三股力量共同撑起来的。

picture.image 在算法这一支力量中,又分为有监督,无监督,增强算法,但这三兄弟的目前的力量可以悬殊非常大了,其中有监督学习算法的比例远远大于其余两者,而BP正是有监督学习算法的内核,可以说,BP撑起了当下AI的半边天。 而back propagation 这篇30多年前的文章,到现在已经引用高达6万多次。

picture.image 那么到底什么是back propagation,我们先用一个简单的例子了解一下。

  1. 用比喻直观理解Back propagation(反向传播)

别一听到算法就头疼,其实用个比喻就非常好理解了,这部分内容是没有公式推理的,仅仅帮助大家做常识性的理解。

我们想象游戏场景:把你的眼睛蒙上,给你一把弓箭, 然后在你的周围不知道的地方放一个靶,射中就算赢。

picture.image

这个游戏总共有三个项目。

第一项:听天由命式。每次打完之后会告诉你命中还是未命中,然后下次你再找一个不同角度继续射击。

picture.image

第二项:距离反馈式。每次打完之后会有人告诉你 打中的地方与靶心的距离 。

picture.image

第三项: 方向反馈式。 每次打完之后会不仅会告诉你与靶心的距离,还会告诉你下次应该朝哪个方向走一点。

picture.image

没错,这个游戏中最后一项就是Back propagation一个非常简单的诠释。

Back propagation的全称是back Error propagation,这里的 Error 意思是误差,指的就是即用实际输出值(实际打中的点)与目标值(靶心)之间的差异拆解后(拆解为垂直、水平方向)作为反馈向后(back)去调整影响下一次训练的权重(下次一次打靶方向),从而加快神经网络的学习进度。

而当我们有多级反馈时,就形成了一层一层的向后传播(propogation) 行为。

  1. 深入理解Back propagation(反向传播)

6.1 单层神经网络的数学模型

我们把上述的例子转换成常见的神经网络的表示, 这里只有一层网络,这层网络上有两个神经元,一个是水平方向因素,一个是水平方向因素。

picture.image

我们假设箭要沿着

picture.image 的方向射击才 能射中

picture.image 为了简化,我们把偏差B也省去,仅仅看方向,那么我们的目标就是要知道 picture.image 的值。接下来我们看看BP算法是如何训练得到 picture.image 的。

6.2 BP算法训练步骤

第一步:最开始,我们只是随机射一箭。假设箭射到了靶外的某点Y,靶心为T,那么我们用Y与T之间的距离平方作为误差,这里使用平方是为了防止同时有多个训练样本时,误差抵消。

picture.image

这时候我们就要考虑如何调整 picture.image 。我们的目的是让Error 最小,而Error 与picture.image

相关,且是平方关系,这里回顾一个初中抛物线知识,这里的Error 与picture.image 就是一个抛物线,要想使Error 最小,就要找抛物线的最低点。

picture.image

但这里的Error 是同时与两个参数picture.image 都是抛物线的关系,实际就是三维空间的一个抛物体。

picture.image

大家点击下面动图可以展示出这个抛物体的样子,我们的目标就是调整picture.image 使得Error达到这个抛物体里的最低点。

picture.image

要想调整

使Error最小,就是让Error分别对

picture.image

进行求导,这里就要用到非常简单的高等数学,大家可以暂停回忆一下求导方法,这里我们已知定义:

picture.image

那么:

picture.image

也就是说

的每一步调整

都是 picture.image 的一点点 picture.image ,这个一点点专业术语叫“学习率”,展示在图片里就是下图的样子。

picture.image

6.3 学习率的选择

这个学习率不能太大,也不能太小。

1) 梯度爆炸

太大就好像游戏中每次给的反馈太大,会导致箭离靶心越来越远。

picture.image

用数学表示就像下图这样,每次W的变化并没有使Error变小,而是变大,专业术语叫 “梯度爆炸”。

picture.image

2)梯度消失

如果调整太小,我们需要的调整的步数很多,调整速度太慢。

picture.image

用数学表示就像下图这样,每次W的变化使Error变化特别小,小到可以忽略不计,专业术语叫 “梯度消失”。

picture.image

每次要调整多少,我们定义为学习率,学习率的选择也是一门学问,这里不做细讲。

6.4 多层Back propagation的数学模型

有了Back propagation之后,之前的那个单层神经网络数学模型就可以演变为如下:

picture.image

当我们把这个结构发展为多层,多个神经元,就得到了下面这样一个结构,

picture.image

到了这里,你大概知道啥是撑起深度学习半边天Back propagation了吧。 也许你会觉得太简单,这么伟大的东西怎么能如此浅显的就可以理解呢。

实际上,Back propagation最早提出并非Hinton ,而是1974年 Paul John Werbos 就提出来了, 那时候受美国经济影响,整个人工智能正处于极度寒冬,根本没有人注意到。

直到Hinton 的论文发表在Nature上之后,Back propagation所支撑的人工神经网络这一派才引起关注,在当时这就像是寥寥莽原上的星星之火。

picture.image

不过Back propagation即使带了Nature的光环,人工神经网络这一派的道路也并非一路坦途,我们下一篇在探讨。


读到这里了,不妨关注一下吧,后续更精彩。

我是关注AI产品的产品二姐,致力于带来丰富的AI学习分享、体会。目前在做两件事:一是撰写AI历史,二是带来人人可用的AI绘画技巧。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论