七月在线公开课笔记-三十八-

龙哥盟 / 2024-11-11 / 原文

七月在线公开课笔记(三十八)

论文公开课(七月在线出品) - P1:随机梯度下降算法综述 - 七月在线-julyedu - BV1fW411T7GP

今天是。咱们论文公开课第一课,我们。那个已经筹划很久了,就是我们有一个7月在线,有一个论文翻译组,我们一直在翻译一些最新的或者是比较经典的文章嗯。

我们希望将来能够把这些文章呢一方面是翻译好的文本给大家比较方便看。另一方面呢就是我们希望能够通过这种论文公开课或者将来论文课的形式嗯给大家讲解。然后。

让大家更加方便的去接接触到这些就是呃机器学习或者是人工智能这些呃比较前沿的比较新的知识。因为现在这个领域发展还是非常快。嗯。就是我们可能。比较实用的呢还是都是一些最近写的文章,最近发表的一些工作。

那今天这篇文章呢第一篇文章呃,这个文章它并不是一个研究型的论文,它是一个呃综述性的论文。就是他把以前的一些工作呢,他给总结了一下嗯。这个总结什么东西呢?就是说随机气度下降法的一些不同的变种。

我们知道嗯在机器学习或者是这个。统计学里面很多时候我们做工作呢是是分两个部分。第一部分呢是建立模型就是。啊建立模型这部分呢,你可能需要很多需要一些具体的知识,专业的知识。

或者现在机器学习里可能你这个呃专业知识需要的没有那么多,但是你也需要建立一些东西。比如说呃你同样是深度学习,你可以做语音,可以做视频,可以做什么什么,对吧?不一样,你建立模型以后呢,你就要训练你的模型。

训练的过程中呢。通常而言,你就是需你就是需要这个定义一个。损失函数或者是一个目标函数啊,损失函数呢,一般你就要把它给最小化。目标函数你可能需要最大化,总之是一个优化的问题。优化的问题呢。

我们其实也开了一些班讲过一些关于优化的主题。但是呃基本的原理就是我们现在用的比较多的都是用把把这个优化这个损失函数看成是一个呃可谓的函数。然后我们采取用这个梯度下降法这样的做法。

所以这个方法呢其实是最简单的。🤧就是说。😊,这方法呢其实最简单的,但但现在看起来呢也是目前而言比较实用。大家这个呃刚才有同学问到这个关于视频的问题啊,这视频的话呃,你打开那个群群的右右边有一个群视频。

你点击就可以进入了。然后现在的这个我们不支持麦克的群视频,QQ不支持麦克视。所以你可能如果有m克的同学,你就得或者找一个windows机器或者是嗯。用手机好像是可以的。好。我们看今天这篇文章的这个。啊。

具体是什么文章?这个具体文章是这个作者。还有名字我也不太会读seine不知道啊,这个作者呢他在他写的他写的一个综枢性的,就是把随机梯度下降法的各种变种总结了一下啊,给大家分析了一下它的原理。

然后各个方法的优劣性,为什么要做这种方法,这个文章写的还是非常好,非常清楚。这很有用,我觉得可以作为一个工具类型的文章,你把它存在你电脑里。然后当你需要用的时候呢,你可以查一下。

然后我们这里会给他做一个更。啊,直观一点呢跟这个总结性的给大家介绍一下。那这个这个文章我们7月在线的翻译组也翻译了。大家有那个课件的话,你点击这个主题就标题,你可以看到这个文章的呃,应该是原来的。

就是原版的文章在archive上发表那个文章的链接。然后点击这个下面的7月在线翻译组,你就可以看到我翻译的那个结果是一个英汉会译的一个一个文章。我也把那个结果发到咱们的群里面。大然大家也可以直接下载。

好。那这个文章它主要的内容是什么呢?主要结构呢?内容呢我们说了两遍了啊,就是说这个文章旨在为读者提供不同的算法的原理,以及这个效果的直观展示,希望读者能能够在实际问题中更合理的选用这个梯度下降类的算法。

那作者提到过,就是说因为现在呃。在他写这个文章之前呢,我们没有一个系统性的去介绍各种不同的梯度类梯度下降类算法的优劣性。然后原理的文章。所以大家呢总是你得需要在文献里找,有可能你知道这个算法。

你不要那个算法,然后真正用的时候呢。就把这些东西当成黑箱来用了,因为也也不是很清楚到底该用哪一个对吧?这个很讨厌。因为其实当时作者们他们就是。发明这些不同的算法的时候,还是各有目的的。呃。

如果大家能清楚一点的话,你使用的时候可以更有针对性一些。违章结构就是说。分为6个章节啊,第一节呢就是非常简单,就介绍一下什么叫梯度加降卡啊,我们大概也是follow它这个呃文章的这个结构。

就是因为它的结构本身也非常清楚。嗯。第二节呢就是说啊从梯度向降法出发。为了解决他的一些问题,然后又发明了这个随机提出下应,那他还是会有一些问题。在第三节做个总结。那第四节就是这个文章的主要内容。

就是说他把这个几种不同的方法都列出来。然后呢,他们都针对于第三节讲的那些问题和挑战,就是每一个算法提出出来是为了解决什么问题,就写的写的比较清楚。然后第五第六节呢,第五节它是一个介绍。

就是说因为算法是一方面了。但是你具体实现的时候,我们现在很多东西做计算都是用变形计算或者分布式架构。它当然就是他介绍了一下,说历史上我们都有呃提出过哪一些可以可行的架构啊,包括现在也可以用。嗯。

最后一节呢,他就是说从其他的角度来看,就是不是从这个算法角度来看,就是。从其他角度来看,说是不是还能够有一些办法去呃优化一下气度下降。是这。嗯,大家有关于这个视频的问题啊。

就是那个如果大家现在看不了视频的话啊,我们也在录屏啊,等到那个结束之后,我想我们应该是可以回放。好,那我们。就正式开始之前,大家有什么问题吗?还有什么关于这个。学术的问题吗。

或者包括如果要说你大家觉得我说话太快,或者说话太慢之类的,也都可以提醒我一下,这样我可以调整一下我的节奏。啊,有同学问这个是不是最基础的啊,这个基本上是比较基础了。这个文章写的还是很清楚,就是大家只要。

我想只要微积分比较熟悉的话,应该都可以看。只不过。就是说首先它是英文的,然后然后我们翻译了一下就会好一些了。然后让大家同学可能。就是如果同学读文章读的比较少的话呢,可能会对这些所谓的论文有一点恐惧感。

其实大家不要有恐惧感的论文,它就是。就也是研究型的文章嘛,就想解决一些问题。只要你把那个核心抓住了,就做完嗯。还是还是很还是很很容易看。呃。关于他这个提度这个方法,在深度学习中的应用啊。

这个在本文中没有仔细的设计,但是呃我们可以看到一点说就整个这套系统呢,它为什么要这样做?其实多少跟我们在应在这个机器学习中的应用是有关系的啊,等会大家可我会看到一些。🤧好。然,我们就。开始正式内容了啊。

第一节我们简介一下。比是说什么叫做梯度下降?啊就是说。我们刚才提到了,就是说我们在训练模型的时候。平时可能。就是我们在训练这个模型的时候。经常会涉到一个损失函数,比如说这个J。这个非常呢。

就是这个模型的参数,它有好多好多参数。那J呢就是说那个模型的损失函数。我们通常而言,希望调整这个参数,使得这个JC塔越小越好。那这个函这个函数是什么呢?那通常是根据的样本来的,就是说如果没有样本。

那你就不知道这模型参数应该是多少,也没啥条,对吧?就是说因为有有的样本就是有个X大X。JX对的它是根据你的样本得到的一个函数,然后你希望把它最小化。最好化的时候呢呃一个最简单的办法就是说你在。

这个任何一个点处,对这个函数进行一个线性逼近啊。这横州标是C塔。中国标呢。是这个JC塔是吧?你的任何点出的最后做一个逼近。线性笔近。就是说我们求一些导数就做线性离径对吧?呃,如果西塔是多元函数呢。

这个地方就是dael塔西塔是个向量啊,求求转制乘以这个记度。所以说你做性性B之后就能明白一件事。就这个函数啊,它是往哪的方向是增加的,往哪个方向是减小。就我们意愿函数是这个。那如果你知道哪个方向减小了。

其实通常而言,这个增加的方向就是梯度方向,这个梯度方。然后另外一方向呢就是减少。所以我们。😊,怎么做这个呃下降法,怎么去寻找这个呃函数绩效值呢?就是说我们从一个点出发。

我们从这个点减去它这个梯度的某一个。倍数这个倍数呢我们就叫做学习率。就你想这个倍数越大的话,你这个走的步度就越远的。就这个题速正常,你的倍数不等于一,那下一个西塔。在夏点。其大一就回这了,对吧?

你在此处再做一个这个。就是。已直接决定。下去二根跑这来了。跑这来了,过头了对吧?你再做一个清简理解,你回来了,其他算回这来,总之你就是不断的做这种事情,最后你就1。1点接近于你的这个局部的绩效指点。嗯。

所以说这个东西呢它基本上就有两个步骤。第一个步骤做线性逼近,就是算求出这个梯度,这个向量把它算出。第二个步骤就是你要选一个比较合适的。不长,或者我们现在叫学习率。来进行你的这个参数中心。这两步。

第一步是计算,第二步是选择这个学习率。所以说呢。他这个方法的做法和它的困难通常是相结合的。你有一方法你有一些手段,你的困难通常也是从你这些手段里出来的,就是通常任何一个东西都是双刃剑。

所以它困难哪来的呢?第一个困难就是提速的计算。就是说啊我们机器学习和统计呃参数估计问题中,这目标函数通常是这种求和的形式。就是我们这个上面写出来的,就人跟我们说了,你这个函数怎么确定出来的?

它是通过一个样本,一大堆样本来确定这我们通常这大XC塔这东西啊。般来讲。我们经常遇到的情况都是这样,它是一个对于每一个小样本,每一个样本你都可以算出1个JXIC的。然后呢,最终的这个呃。呃,损失来说呢。

其实是你把这一堆东西加起来。通常都是这样。这种情况下,你想算左边这个函数的导数想求导。其实你就是对右右边这一堆函数挨个求导,让它加起来。对吧就是说一般来讲,当你没有什么比较简简单的这个公式的时候啊。

对大部分函数你都得这么算,就是挨个算,这边就挨个求导的加起来。这件事情其实是非非常这个耗时耗力的,就是很费劲的。因为你那个样本太多了,通常我们现在呃数据比较大了,作一个样本就是几百万上千万或者甚至更多。

那你每一算一次梯度,你得对上百万个东西求导,然后再加起来。或者更多啊就是这个事情非常的耗时耗力,它使得你这个模型的这个训练呢。比较缓慢。谢谢。所以这是第一个问题。提这个。记不下来了。第二个问题呢。

我看同学也有问到说学习率怎么选择。你怎么才能找到一个合适的学习率呢?正好合适。就这个问题呢。如果你只用现在这种方法的话,基本上没有什么好办。你只能是具体问题,具体分析。就是说你。你先弄一个试试。

你看它收不收敛。如果学习率一般太大的话,那就不收敛。跑那干去干就是了。比如说你刚才有个问题啊。如果你学习力很大,你从C到0出发,你跑跨跑这来了。是吧,下一回这来,然后下一厨发,你跑他还回这来。

那就是你可能就震荡震荡震荡,总是停下来,你就没办法收敛,对吧?那你要学习率选太小了,你每一步都走的太太近太近。那你这个本身都说了,前面算梯度都很费劲了。你要是算一次梯度还走不多远,不是就很很不划算了。

那就很不惊喜,对吧?所以说这个问题呢,学习率的选择就变成了一个需要具体问题具体分析的事儿了。那这个很讨厌。因为我们你做这个机器学习或者人工智能,你是希望你尽量人少参与,对吧?你希望让机器做更多的事情。

你现在这个事儿你还得具体问题具体分析。你还得看那个训练的结果,然后再去调整这学习率啊,这个过程就比较讨厌。而且你这个学习率选的太小了。还有一个问题,就是有的时候你弄么好被噪音给误导了。

可能这地方有小噪音。你学习太小了,你跳过去,那也是也是很讨厌的,总之就是。这两个问题,那这两个问题怎么解决呢?第一个问题。啊,就是。随机吸度下压就这个随所谓随机记度下压法主要就是为了解决刚才第一个问题。

关于梯度计算就梯度计算呢。太太太太慢了,太费劲了,因为样本太大号,所以怎么办呢?样本大吗?不是那就把它缩小一点,对吧?最极端的做法就是什么?就是每次计算题度的时候,你只使用其中一个样本。去做计算。

你刚才看到了,我们这个梯度其实是。算这一堆样本的那个呃就这一堆函数的那个T对加起来,对吧?有可能会除一个什么东西,成一常乘个常数。就说。😊,他第一个方法什么呢?就是只剪出其中一个。

假设你这个样你这个整个样本。整个样本集合啊只有一个样本。把这一个梯度算出,那他肯定跟那个整体的这个梯度是不一样的,但是不要紧,反正就是。嗯。🤧嗯。它虽然跟整体不一样,但是因为你要算很多次嘛。

呃这次你用这个,下次你用那个啊,加一块儿,可能大家也就做用到了,对吧?那。每一次只用一个样本这样的好处是什么呢?就是刚才你这个样本里边啊,好多其实XI之间它是类似。因为可能你呃你这个问题本身呃。

你在XY出现次数就是那个密度概率密度比较大的地方。那XY出现的频率也比较高。那你在这个很类似的XY上,你都要重复计算这个函数的题度,然后你还得把它做个平均。你平训完之后又回去了,对吧?那就没意思。

所以你就做了很多的冗余的计算。他这种做法好处是什么呢?因为你每次只算一个,那你就避免了这种容易计算,对吧?比如说X1和X2也得很近,你这次只用X一没有用X2,你算出来这个,其实你就你就少了一个计算。

对吧?但这个。缺点是什么呢?就是说。你就每做一次计算他这个。就是你X一可能代表X一这个特性。X2代表X2这个特性。你每做一次计算呢,你都等于是选了一个特殊的样本做的。所以它的这个稳定性比较差。

就它这个呃你算什么梯度啊,它一会往左指,一会往右指。整体上,比如说你其实你是盈量往前指,对吧?但是你这个X一可能往左往左前放指,X2往右前方止,整体上是往前的,但你这个就震荡比较大。可能X3还有后置啊。

这都有可能。所以说。的缺他缺点是这个呃震荡比较厉害,但震荡比较厉害这件事吧,它本身也不完全缺点。他也有一些优点,就是说他增加了你跳出当前的局部最小值的潜力。比如说嗯。像现在这个问题,我们这个例子里边。

我们从这出发,通常而言,以前的方法,你基本上呃步长选小一点,你就会缩敛到这个就不这个就不较值了。那可能这个函数呢。在远处还有一个哎呀更低一点的局部角织,对吧?就还是可能长这样子。

那如果要是你现在选的是这个随机需求下量吧,因为它震荡比较大,它这个。🤧就是说。还比较性格,呃有时候跳的比较远啊,那你从这点出发,可能你咚的一下。就这。呃,然后你从这儿再走走,然后又动了一下车子来了。

然后再走走走走,就是他不见得真正能像咱们想的那么好,那可能还往反的方向调。那总归他会帮助你尝试各种不同的机会机会需求。这是有他这是多少有点好处,就他这种不稳定性的可能会给你带来一些好处。

我们在这个最后一节呃讲到这个其他优化嗯。提呃提出权量法的这个方法当中也会提到有些人这不但。这个随机度这个这个这个不稳定性他还觉得不够,他还要再引入一些随机性,就也是为了这个目的。然后我们也说了。

就是说这个不稳定的时候不稳定这个坏处是什么呢?就是说收敛的怎么转换了,我挑来挑去了,他怎么不回来,对吧?那但是我们在实际应用当中,实际推点当中发现当你如果是把这学习率给它逐渐缩小。

一开始你的学习率可能是0。1啊,或者00点几的或者是一。然后你呢按步骤,你每每做一次,你就削削减一点,每做一次你削减一点。那这样呢你。用这种方法去做的话。

这个随机梯度下降法的收敛速度其实跟之前这个正常的原始的这个梯度下降法,就是收敛速度也是相当的。所以说这种方法呢那缺点可以通过这种方式来避免优点还可以得到一些发挥。

所以现在我们通常说这个在机器学习当中说的呃梯度下降法。那一般来讲都指的是。某一种随机记录下来,所以这也是我们这个文章的标题,随机记录下来,这个意思。那这个讲所所讲的随机呢。

就基本上就是说因为你每次选的那个呃样本那个点都不确定是吧,你就是你可能自己随便排了个序,然后呢。你可能还要进行一个随机排序,那这样他就引入了随机性。就你每次你你你今天做一次训练和明天做一次训练。

结果可能是稍有不同。第三个是什么呢?就刚才我们说了,就是我们。之所以你每次只使用一个样本,主要是为了这个呃简化计算,先算的快点,对吧?那但是稳定性也比较差。第三个什么呢?就是。

介于一和一和2之间那种办法,也就是说啊我每次不要只选一个样本,一个样本他觉得这个。太乱了啊,就是觉得。对。呃呃这个。就选一个的话,你万一有一些这个非常大的这个outlier就是不好的点。

可能你不是很影响你自己,对吧?他想什么办法呢?那选一个小批量。就是说在你这个上上百万上千万的样本当中选出这个几十个,把这几十个拿出来算一下这个题度,这也是很好算的。为什么呢?

因为现在我们还是有很多的这个。啊,现成的这个优化的一些公寓啊,就是说你在这个尺度上算。这不一点也不比你刚才那个均一个样本慢,呃,这速度还是可以保障的。然后呢,他这个梯度计算还要更加稳定一些。就他。

小批量它比那个单个的要稳定很多。嗯而且呢它比那个。呃,用全部的这个算法还快啊,而也他也比较有效,所以他也可以调,他也可以达到一些这目的。就是说多少的呃。可以找到一些旁边的这个更好的这个局构教育。这样。

所以说现在一般来讲,在神经网络训练的文献当中,当大家说到这个SPD的时候,就是这个随机提速下降的时候,其实它指的就是这个。小批量随T随机虚度下降法,这种mini batchSD。

这这这个就是一个呃语言上的一个问题了。就是历史上可能大家就是这么就把这前面这个mini batch给省掉。所以大家看文章的时候呢,要注意,就他他说这个SGG的时候,其实他指读过时候指的是这个。好。

大家有没有什么问题?在的位置。嗯,好的,那我们继续来啊。呃,同学问到说这个啊小批量怎么选?啊,这个小批量呢一般来讲现在都是因为固定的数,就是啊文章里有提到,就是说现在可能一般是这个几十到几百之间啊。

这个数字。也跟时间有关系,但是。这个数字的区别可能不是特别大。你可以自己选。哎,有同学问说,这个当你用小批量这个提出加减法的时候,不同小批量里的元素会重复嘛。嗯,我想一般的做法应该是不重复的。

就是说他他把这个。整个样本。先给他分割位。咁过嚟。就每一个小分割是一个小批啊,比如说比如说这100。100个。那整个可能是比有10个6层。然后呢,你就得到了多少个呢?得到了1万个这个小批量。

那1万个小批量,你就你做那个循环的时候啊,你就挨个小批量算,每一个小批量你算一个这个呃梯度,你更新一下参数,算完之后不全算完了吗?1万次循环结束了,结束之后你再从头来。从头来的时候吧。

啊这个时候还是多少有点技巧,就是说。你要把原来的这个。给他重新打乱一下。给他洗个牌,这个在我们最后一节我稍微介绍一下。重新打重新打断一下,然后再给他分解分割成这个这1万个小时。然后你再来一遍。

就打乱的目的呢,就是说他不希望你这个。样本的顺序影响了你的训练的结果。因为可能你无意之中选了一个很特殊的顺序,这个顺序。会对你的结果有影响。比如说打比方说吧,咱们这个前面说有的时候你做计算的时候。

你要那个啊。你这个学习率可能是逐渐递减,那你递减这个事儿就就就很讨厌了,对吧?那你就意味着你对第一个小批量你是比较重视。所最后一个呢你就相对没那么重视。那这样的话,你这个顺序就决定了你对谁重视。

对谁不重视,那这个就不好。所以说你当第二次循环的时候,你要把这个啊。讨论一下,多少能挽回一些这个问题。呃,然后看同学们的问题啊。啊,关于小批量的这个数字是不是要在代码里面写死,我想是可以的。

这个反正一般来讲不把这个。我知道的情况应该不把这个小P量的这个大小当成是一个超参数。嗯,然后。还有同学说,如果要是那个整个批量呃就小批量和样本总量不成正比,就是说你不能恰好分割的时候,剩下一家样本。

因为不要紧,其实你就剩下几十个样本,你可以把它。就是。这个是比较灵活了。你比如说你剩下的这个,就这是最后你没有剩下100个,乘以20个,20个怎断,你把它放到前面来,重新打断之后再来一遍是吧?看了这个。

然后有同学说还要解释一下那个我为什么认为小这个随机提速下降法,可以增加你跑到呃。就跳出这个局不集绝的权力啊,就是说我刚才说到啊,就是你。如果要是用全部样本算梯度的话,它是比较稳定的。

它基本上是往那个真真真实的那个梯度最大那方向走。但如果你要是用那小批量的话,它噪音比较大。就说白就是噪音。你你你每次只用一个样本,那个样本可能是一个。就是他可能是有比较特殊的情况。

那这个情况下他只是你就走的比较远,就是从这个点出发,跑哪去,没有正常的按照这个方。那你不就跑到旁边那个呃就是聚不聚这点去了。啊这种做法啊就是说他不见得给你好的结果,但他是给给了你产生好结果的可能性。

然后呃还有说同学说这个数据打乱的问题啊,我说这个情况是把这个原始的数据捣乱,然后重新做一个分割。就是说你也不想保证这个没这些数据在一个培养,你希望他这个重新混合一下。然后呃。呃,这样问题啊。

还有同学关关于这个收敛性的问题啊,就是说啊这个如果要是你噪音太大,当然有什么都不收敛。所以这个提到啊,就是说随机方法这个提出加降法在逐渐缩小学习率的情况下。

它的收敛收敛的这个性能就可以跟原来那个差不多了。就是说你的学习率越来越小。其实也就是说一开始的时候给你更多的自由度。那以后呢一点点就把你这自由度给限限制住。嗯,对。

就是说有同学问你说那个呃现在优化的举证工具,对,大概是有些是可以向量化。对,就是说呃因为你那个向量也不用太长了,你要是几百万那个向量。那可能也都算不了,但是你要几十个向量,这样的话。

现在我们呃计算的时候是可以统一处理的。比如说。读加法吧。你这个V1加上V2。那以前呢你得做循环,挨个加加完之后,你得得出来。现在的话你啪一下就夹过去。这个这个是在硬件里面实现,或者是。基本上讲对这个都。

没法展开讲就会走。好,有同学说我讲快点我讲快点啊。😊,嗯。那么这个随机提出向降法,它是不是就什么问题就解决了?那他其实还是有很多很多这个困难。就他主要的困难是什么呢?

我们说了我们这个第一个问题是关于需求计算的。呃,这个主要由这个随习系求化来解决。那第二个问题是什么?就是学习率的学习率的选取。这个问题没有解决,所以说这个问题呢也就构成了随机提数下降法主要的可。

🤧那第一个。第一个不是这方面,第一个说的是你这个局部梯度方向的反方向,就是那个梯速下降法的方向。不见得是函数整体下降的方向。这个在我们下面讲到这具体算法的时候,会给大家呃自己说一下。

就主要对一个图像比较崎岖的那个山路比较崎岖的函数啊,就是说这个到处都有不同方向的下降。那可能。你任取一个点,他可能是因为这块石头比较高,所以它旁边那个往往往往往左,它就有一个很大的这个梯路。

那实际上你主要是往前走的那你的往左的梯度不影响了你的这个哎你这个这个计算嘛,就是这是一个问题,就是尤其是对在对于这种隧道型的曲面,就是你像那个隧道啊,在整体上是缓缓的下降的。

但是这个隧道两侧呢这个弯弯的,那个梯度也是很大的。就比如说你呃如果要是就你想象中用那隧道,你拿一球放在隧道上边。如果你放在隧道这个侧面,而不是放放到这个隧道正中心正中心啊。

你撒手那球其实是会在隧道两边来回震荡震荡震荡,不断震荡,然后再下降。这个震荡的过程并不是你想要的。你希望的是他沿着主要的方向走,对吧?这是一个问题。第二个问题呢就是说学习学习率的问题。我们刚才说啊。

你可以把这个学习率的衰减。啊,作为一个方法,就是说你让学习力越来越小啊,这样呢你这个算法基本上就越来越熟敛。那这种做法有一个问题,就是你只能说先预定一个学习率的衰减过程。你说呃一开始是定一个数。

一开始是0。1,然后呢,你呃经过100次迭代之后,你把它变成0。95,然后你再经过100次,对吧它变成0。9对吧?你可以你可以这样做,那这样做缺点就是你这一个方法就得用在所有的训练的这个数据上的。

你可能不同的数据,你想适应的是不同的这种衰减率,衰减方法。那你怎么才能够自动的对于每一个数据集拿过来之后,然后自动的去产生一种衰减,就是比较适应于这个数据自身的衰减,而不是你一开始人工定的然。

这是一个问题。因为那样会更加智能一些啊,这个当你人工定这个跟你这个数据集不是很匹配的时候呢呃。嗯,那种自动的方法会好一些。第三个是。就说啊我们现在这个做法还对所有参数都采取了同样的学求。

这个看上去好像还行,那其实它是有问题的。就是说比如说你现在做的是一个。啊,关于这个。文本识别的问题啊,就是说你关于这个垃圾邮件的标记的问题。那你的垃圾邮件标记啊,它有一些词语一旦出现。

你基本上就确定它是垃圾邮件。但这些词语出现的词非常少啊,这就有可能。Yes。这个比如说呃大家都知道有一个什么。那么最终我国的网址的问题对吧?呃大家都知道这个事儿,一旦出现这个网址。

基本上你这个邮件就是垃圾邮件。啊,但是这种邮件可能大家一共也没收到过几封,对吧?如果你是现在想用你自己的这个邮件系统去训练一个垃圾邮件的识别器的话,你这个网址这个词儿没出现过几次。

那这个词的参数它的系数。就只能在这几次出现,就出现了他的这几次里面做做训练。那这几次如果你恰好把它放到了这个一个后面。就你那个样本啊,比如说你放到这个比较后边的地方,那学习率很小。你这当那训练的时候。

你这个词儿一共出现这么几次,每次学习率都很小,你那个参数虽然不是零,但是也很小。你这个几乎在将来你做预测的时候,它用到你你参数太小的时候,你再做预测的时候,它就等于是不存在,等于是0,对吧?

所以那样做呢。对于你这个呃出现频率很少的这种feature,它的参数很公是很不公平。那个fisher明明很重要,但是呢由于它出现次太少了,然后你呃学习率又很低,嗯也没训练出来。

所以说呢当初据有这种稀疏性的时候,稀数性就是说有些参数出现的比较多,有些参数出现的比较少。在这种情况下,你希望对不同的特征采取不同的学习。你对于频繁出现一些特征,你就正常学习就行了。你可以让学习率衰减。

对吧?小一点,因为它不断出现嘛,你就不断的去去去适应,它去更新它。对于那些出现次度很少的那些特征,你就得采取比较高的学习率啊,那这种做法。也跟前面这个有重大问题,你新给你一个数据。

你哪知道哪个参数出现多,哪个参数出现少,对吧?你是不是就得让它自动的去识别哪些应该更接的更多,哪些应该更多精少,这也是个问题。那最后一个呢就是说在实际应用中发现这个神经网络训练中啊,你QQ加减法。

它不但是有这种局部犄较值的问题,但还有安点的问题。这是时候我们知道。那个开审举战,他就是说局部教只说的是他这个。这汗山矩阵确实是个零矩阵啊,但是呢它局部上级较值整体好实。但是还有一什么情况呢?

就是那个你汗山矩阵呢,它。在某些方向上是定在某些方向上不是或者某些方向是负否定的,有些方向是正经的,有些方向上就这种情况下叫鞍点。那一个鞍点呢,它通常会就是在这安点附近,那看是非常的平坦。

就是我们我们画过那个马面。你可能上大学的时候,大家都看到过这个。最简单的一点就是掌声了行。是啊,我这个几我块1块,但。呃,同学们稍等一下,我这个笔好像。哎,这个还没有出现过,我我我我刚才关掉下。O。

So。实分抱歉啊,刚才这个不知道为什么不不能。🤧。那最常见的这个案点。就这个麻面。诶。我这个上大学的时候学习的画这个马面。Yeah。对,就话的。不是特别好。什么意思?哎。这样的一个就是马鞍嘛。

就是你做的那起码还是做那个马鞍对。这个点它其实就是一个安点。那这个点呢附近这这个区域。你看它沿着这个X方向,它是往里翘的,沿着这个Y方向,它是往下凹的,但整体上这一片呢它都比较平。

所以说如果你那个参数训练的时候跑这儿来了。他就很难出去了,在这附近他就走不动了,对吧?那这也是个问题。所以比起这个局局部几小时来讲啊,这个安点更加可怕。

就是这些都是我们使用随机吸收下降法的时候容易遇到的困难。啊。对,有同学发了一个这个在呃群里面,就是这个马面就画的非常好。机器化。大家可以看一下,就是这这些都是我们这个呃随机提出下降法。

或者说一般来讲任何一个提速下降法都会存在的。那我们怎么去解决这些问题呢?这个事情就构成了我们今天这个课程主要内容。这个文章第四节,他就列举了们各种不同的这个随机系数加权法的变种。

来告诉我们这些方法是怎么去解决前数的这些问题。就当你的这个数据集。当你当你对你这个问研究问题呢肯定有一些了解了,对吧?当你了解了你自己这个问题之后。

你知道前述这些哪些问题是对你来说是比较严重的那你就应该用这个特定的方法去克服他,对吧?这是我们这个文章主要内容主要的主要的目的。好。那不是说选取学习率吗?很多同学可能会有个疑问,为什么不用牛顿法?

刘润法。它就自动给你选取了一个类似于学习率的东西,对吧?它是什么呢?它是对你这个函数做了一个二级培训。整有问题。了解一下他的实质。就还是刚才那个样子。对。也写这常了。好,你对于这个函数。

还是刚才那个问题,从一个C塔零出发。我们说求一梯度的话,你都应该往左走,你不知道该走多远,所以会有学习力的问题。但是我们还有个办法,就是说做一个二阶比近,我们在这个地方不用直线对它做比近。

我们用一个抛物线对它做一个比。え。我们拟合一叫抛物线,就叫抛物线呢,显然跟原来的函数不一样,但是呢有点小,就是我们二阶之线对吧?所以抛物线极角之点,我们把它作为。这个函数绩效值点的一个直径。

C大一就在这儿。那四大一这出发呢,你再做一个抛物线。哎,6得到几小时间,6是4。2。不断做这种事情,最后你就回到这里。这种方法就做牛顿法,就当年牛顿。

可能用这种方法来解这个呃近似解这个三次方程的就解那个。这方能求跟那种啊转移动。那这种方法大家一看,哎,这很好。对,这个你从一点出发,你知道该走多远。你很清楚,就是告诉。那这个方法啊。

在我们实际应用中有很多的问题。啊第一个问题。就是我们现在做这个问题里边什么大数据啊,大数据有两个维度大,一个维度是那个样本点多,还有一个就是你的。特重。特征是什么呢?特征就是说你这个下边这个西塔的倍数。

我们现在这个西塔写的是一维的,就为了简化嘛,对吧?那实际上你这个西塔还没有成成百上千0个,比如1000个。1000函数啊,就是1000个这个feature。那在这种情况下。你要求一个二级导数。

那二级导数其实是一个指针。对吧如果是你1000个样的的这个这个。呃,teachature的话没有矩阵就是100乘1000的。所以你需要算1个1000乘1000的矩阵,那就里面有100万个点。

100万个数。你每一次每一次做迭代的时候。不管你用多少样本,哪怕你用小批量的,你就用单个样本来算的,你都得。算一个呃1000乘1000的这个含成指证。这件事情首先就是很难算。我们刚才说了。

这本身计算就是个问题。你要是那么算的话,那太费事了,对吧?嗯那你这个随机虚度向下法都拯救不了你了,对吧?就是你太矩阵就太大了,没办法,那那不行,存储都成问题。你可能内存从下,你要是太大的话。

你反复的拿这么大的矩阵过来算,你就存储都成问题。这是一个。第二个呢,就是说当你使用小批量的时候,比如说你使用单样本,你那个牛顿法对于二阶导数的估计噪音就太大。就是本身一阶导数估计它就有噪音。

你的高这个接触越高,那个噪音就越大,就越就就越容易是错。这个就就也不符合我们现在应用的一个需求。🤧那最后一个呢。就是说当你这个目标还是不是凸函数的时候,顶牛顿法还是非常脆。顶牛顿法其实它是找什么的呢?

它不是在找那个。就正常的顿法,它并不是在找极少之点,它其实是在找安点。或者说是在找这个局部极制点,应该说是所以找的是局部极制点,它非常容易被这个极大窒吸。比如你从这出画的话,它就画出一个这样的。二曲线。

然后你选我们牛顿法一般都选这个二曲线的那个基制点,那基值点就跑出来了。所以你其实这方法就在找那个极大质点。还有就是这个意味的状态不太好看,就是高维情况下,这个牛顿法非常容易把你拧到那个暗键上去。

就刚我们说的暗键。他就是在找这种点。那你这样的话,我们现在研究的这个。问题啊就是我们这个神经网络训练里边,就是这网络训练里边,经常你这个函数都不是图的,都不是图函数,我们都不指望去找那个全局绩效值。

那个太难了。我们就说你最起码得给找个局部绩交值。但牛德法呢很容易把你给弄到单点上去。那你弄晚点,这就就最讨厌,所以我不喜欢,对吧?所以由于这种种的原因呢,我们在实际应用中,当你这个在大数据处理的时候。

就为数大,数据点多啊,然后你这个优飞wo的时候,我们通常就不使用这个法。所以这个方法我们在此不做讨论啊。呃,关于。同学说的这个。遗传网络移群算法,这些我就不是很了解了,这个就不给大家介绍。

然后说为什么会引到安点?那这个呃我刚才说啊,就这个我们具体要是算的话。这可能有点占时间了。但是我大概就是说就是说顶牛顿法他主要是在找那个哪个地方最平坦,就是他在做这件事,就影响你做一个二阶B信。

然后你就找那个二阶B信最平坦的那个点,你就让你就你就你就。对吧如果你要有安点的话。那个首先理论法它不区分那个极大还是极小。你的安点呢,比如在这个马面这了,你的按点呢,你在这个方向,它这个点是价值。

在这个方向呢,这个点是极小值。如果在这个附近触发的话,这牛顿法就会把安钮。因为你从极大值角度说,他也能往哪走。从极小的角角度说,他也应能往哪走,就不是这个意思。呃,二级老师的几何解释呢就是这个曲率。

就所以你的办法其实在帮你寻找这个。我想应该是。高是曲率比较小的地方。那不对不对,说错了,就说2级小时取例,有办法还是再帮你找那个比较平坦的地他曲例只是它中间内部。好,还有没有其他的问题?噪音大。

大家有同学问说,为什么说这个?二阶导数估计的噪音太大,就是说。Oh。就说。比如说你用牛顿法的时候,那牛顿法的公式我给大家稍微写一下。为什么说这个造型非常讨厌?C塔一等于C塔0。减去这个。

M here在哪里?除以F撇撇。就大概是这么式的。这个胰岛树啊还放在孙子,胰岛树啊还是放在孙子。你这个东西噪音大了之后,它导致你这个数变化特别大。就是你这个呃就比如说他从在零的分间在长。

就是说如果说他从一个比如说0。1。由于有有到一变成0。5话,你这个上涨码还能放大两倍,对吧?就是说。或者说如果要是嗯这个在零的附近震荡呢,你就是说你不动就完了。你这个下面如果在零的附近震荡。

你就可能会导致上面这个呃变化极大,对吧?嗯,明白我意思吧?所以说这个二级老师的噪音呢,对你这个模型训练影响非常大。好,还有没有其他的问题?好,然后那个关于呃几何的问题啊,就是说马鞍点的问题。

他就是说在一个方向上它是这个极小值,另一个方向上它是极大值。这样一点。没那我们继说啊。来介绍这个。文章中我提到的。实际呃应用当中,我们比较常用去解决刚才提到的一些问题的一些方法。好,第一个问啊。动亮了。

这个方法非常的直观,它适用于什么呢?适用于解决我们刚才提到的第一个问题。第一个问题什么忘掉啊,就局部梯度的方向啊,这个这反方向不见得是函数整体下降的方向。我给大家稍微说一下这个什么情况下。

比较适应的题度。在说什么事呢?是是。擦一个黑板。Oh。哎,有些这样的。比如说你这个。曲面啊,就不不画那坐标坐标轴了,你这个函数的图像是个曲面。开这区。嗯。就像一个竹筒饭一样,就竹筒是吧?是吧?

这是竹筒饭,要斜着放在这。这个时候呢。比如说你要选点选的这儿。它其实沿着这个向竹筒中心的方向,这个方向梯度很大,就是这个斜度很大。所以说你算出来个梯度呢,其实是一个斜着既有这个方向的梯度,又有这个方向。

而且这个垂直于竹筒的方向力几乎会会会非常大。因为你竹筒是一个很细的竹。对吧这种。所以它是一个这个方向走成。所以你用虚求向量法呢,你就会往。垂直于主筒方向走的比较多,沿着竹筒方向走嘛,也走了一点,走的多。

你往这个方。你这走走走哪去了呢?你通常而言,因为这腿很大,对吧?这个总孔中很能很细,他就会跳到对面去。第二呢再做吸的时候呢,他往回走。他也是。既偏向下一点。但是呢用偏向这方这这方面一些。这样走。

然后他这个因为他这个垂直方向比较比较比较陡嘛,就走的比较多,噔了一下又跑这边。所以最终结果就是你反复的这个点。反复的在这个竹筒两边这样做,震荡震荡震荡是吧?他也回来了,也下来了,但是呢它在震荡。

这些震荡的过程就浪费了你的时间。因为每一步你在这个主体方向上走的很少,在这个垂直方向上反正做的很多,这是什么造成呢?就是因为你这个。垂直方向上有这个不是很平坦啊这个。造造成这个问题啊。

这个这种情况就是我们刚才说第一个问题。当你这个这个曲线这个曲面啊它比较崎岖的时候,你会。就是会浪费你很多时间,让你的手两变半,对吧?动量法是说什么呢?多样法啊就是说你假设你丢下去这个东西。

这重量是很大的。你的物理上小,它质量很大。它也会这样震荡,但是因为体量大呀,它会积累一个在这个方向上,因为这个方向上一直下降的,在这个方向上会积累一个速度,那个速度会越来越大。但在垂直方向上呢。

因为它一会儿往左是一会儿往右。那这个就导致他这个呃呃就是一会儿受向左的力,一会儿受向右的力,那导致他这个在垂直方向上呢,这速度积累不起来,他都看他都这个消除掉,所以他会在垂直方向上这个速度。

基本上保持一个稳定的程度,就是说在做那个中摆运动,对吧?在。顺着这坡的方向,它的速度会越来越快。所以在当你这球比较大的时候,它就不会像这样这样频繁震动,它会变成什么呢?它也会震动。他会变成。

一开始的时候这种足播还比较大,上学了啊,回来了。然这个做佢越嚟越。就是大家如果要是有生活经验的话,你去这个扔一个球再这用。发现。那后面呢。就一开始震动频率可能比较大,后面的振动这个震动频率啊就会越来小。

所主体上还是沿着这个。大的方向的下降。那在我们这个。我画的这个是立体图,如果你看的是一个等高线的话呢。大家就可以看到,嗯普通的方法它会在这两边来回震荡,来回震荡走的比较慢。这个加入动量之后呢。

它一开始震荡呢也是一样的,都是走中沿着震荡一次对吧?震荡一次。那后面呢它这个震荡就会啊越来越越来越少,在主体上就会沿着这个方向。的数量也会快一些。这怎么去实现这个物理的现象?

这这我们讲的这是一个物理的模型。我你这个球如果没有重量的话,它震荡比较厉害,如果重量比较大呢,震荡呢就会比较小,会比较满足我们的要求,对吧?那怎么去实现这件事,所以物理上说这实现这件事怎么实现的呢?

就是说它这个球是有惯性的,所性质量其实是惯性。他的惯性决定他之前那个速度会得到一定程度的保持。对吧如果你有空气阻力的话,之前的速度会被削弱一些。但如果没有阻力的话,你这个速度会得到一定的保持。

所谓得到一定宝石,就是你在这点处,他的梯度要求你往某一方向走。但是呢你得用你之前的速度加上你这个梯度所要求你的变化,才是你下一步的。啊,这个是有重量的,就是如果你有重量的话,他会是这样这样做的。

物理上是这样做的那我们怎么去模拟这件事情,怎么去实现呢?就是这样。我们呢。一般来讲,之前的那个参数更新啊是西塔T等于西塔T减一减去一个梯度就就完了,或乘一个一产就完了。现在呢。我们还是要减去一个东西。

那这个东西啊它不但由以塔这个梯度来以塔和梯度来决定,它还有上一步你的速度来决定这个B就是速度。在T这一步的速度,由上一步的速度乘以一个削减还削减的系数。这个系数可能是呃你可以取0。9啊。

就是说你假设有一些空气阻力。加上么呢?加上这一步应该改变的那个。这个是就是这点出来听。这样你就既保持之前的那个速度,又加入了你新进的这个情况。所以这种更新的方式呢,它就更像是你扔了一个铁球在闪上。

它它有一定惯性,它可以保持刚才的一些速度,然后形成一个新的速度。你用这个速度进行对它进行更新,你就得到了一个叫动量法的。叫这个为什么动量化呢?就是那物理模型就是。由于这个铁球有动量。

它会保持保持一定的速度。这种方法就可以一定程度上改善我们这个嗯算法。在这种崎岖的路面上的表现。好,大家有没有什么问题?对于这东亚,我觉得这个方法呢还是一个非常直观,然后啊想法很巧妙的一个。

有同学说那个声音不好啊,好像是是不是你自己的那边网络不是很好之类的。好。那这个哎这个方法看上起来还是不错的啊,就是我们呃物理上很直观。然后在这个数学上呢也很容易实现,那就这就你稍微把这改一下就行了。

这地方不要解示那个梯度,把这个题就是做多多做一步这个计算就吧。这个算不错的那他有没有什么不好的地方?大家有没有看到这有些不好?他有一个非常不好的地方,就是啊。他会不断的积累在这个所谓主体方向上的素质。

那如果要是你退到山底了怎么办?就是你把一个铁球推下山。你想让他尽快到山顶,那这个铁这种做法。它最大的问题就在于那个铁球到了山顶之后,还停不下来。他又在旁边那山像头又上去,对吧?就变什么样。

就他一个重要的问题。先对就这样就动向法的一重要问题就是说从山顶推一个球下去,他的球会滚的越来越快。到了山顶之后,它就停下来,就是就是这样。比如说你这个山是照小。在这个方向上是主体的下降方向。

在旁边呢还有一些奇岖的东西,对吧?然后呢,我们用了一个铁球啊推。然后因为我们用了多样法,所以它避免了这两边震荡,它就基本上直直的掉下去。这个时候他速度越来越快越来越快。你到这儿的时候他没停下来。在上。

对,这个是动量化的一个问题。你上去了之后,你半天停下来了,然后你就还得回来就来,没在这震荡,你跑这震荡来了,对吧?还是个问题,还是收敛很快,这还是不影响你受敛。所以说呀。

怎么样才能让你这个算法有一些先见之明?对吧让他。快到达底部之前,自己就是刹车减速。啊,这是一个很有意思的。如果能这个算法能做到这一点,是不是就会好一些?所以说。就有这个人提出了一个改进的做法就是。这个。

那曹豆我我猜可能应该这么多啊,你可能是一个俄国人,他对动量法做一个改进算法是什么呢?他说呀,刚才不是说你走到每一步的时候,你在这一步你算一个梯度,你再加上刚才保留的那个速度,你用那个速度进行下降,对吧?

他说你不要在本处做做梯度,你你你已经知道你现在在这个点出来。你你因为你知道你要保留一个速度,所以你先到你。就你知道你保留速度,你就先不算那梯度,你先到。假设你这梯度是零,你下一步应该到哪去那个点去。

你到那儿算一个题度。把条歌。就说我现在这个问题吧。第一步的时候。我们知道他在这儿,然后他希望提问你发出来是吧?这这是这个。30。这个是4加一。第二步的时候呢。一般让你再下一直上一个梯度。

你就加上刚才那个速度,然后就加速了,对吧?但他说你不要这样做,你先你已经知道你会沿着刚才那个方向走。你如果你要是现在你不算题度的话,下一步你肯定会跑在这儿叫做西塔2一撇这个位置。就跟刚才的一样多,对吧?

就这来。你想想看你即将要到达那个位置,它是不是已经不是下降的股牌,反正你肯定要跑哪跑哪去了,对吧?那。你在这个点出三个题目。啊,你你发现这点题度确实少很多,对不对?所以你把它在跟之前那个叠加的时候。

你就产生了一个刹车的效果。我为从C塔2再出发的时候呢,你这个如果你什么都不做,你四大三应该在这里这个点呢,其实他提实已经往回走了,对吧?所以。你在这点算,而不是在4。2处算,你就得到一些先见知明。

你就说你。在铁球往下滚的过程中,他往前看了一眼,他看前面啊,如果要是有东西挡住他了,他就。首先上一说。他能往前看多远呢,他也看不了太远,他只能看到自己当前这个速度下,他下一步应该走到哪,就他。

预判了一下,所以他先见之明,就预判一下他下一步的位置,在那个位置上,他应该往哪边偏,他预先先偏一点,这样的话呢他就避免了。撞在墙上或者是撞在山坡上回不来的。Okay对。🤧所以说。😊。

我们在这个地方有一个图示,这个这个是其实是那个呃painton的一个呃lecture里面的图示。在文章里边你可以有链接,你点条。嗯。是是吧从这点出发。他有一个呃。

就是说它有一个原始的这个最长长的这条缆线,是原始的那保留的那个速度。这个方向量呢是此数它算出来的那个梯度。如果要是你在此处算梯度,再加上原始保留的速度,你就这点应该跑哪去跑这儿来,对吧?现在他不这样做。

他先假定你先沿着原来那个原始题图走到一个距离走这来。你在此处算一个梯度,往这个方向走。然后呢。这两项的价钱经到这了。用这种方式调整,你看这个什么呢?就是你往这个方向走啊,这有一个这个红色梯度。

说明你这个曲面是往。往,这个左侧开始移了,对吧?所以他预判了一下,你的取面往左侧移,我不往那个沙坡上跑,我就。喂。那再下一步呢。他在此处知道自己要保持刚才这个。这个绿色的线这个方向我要走,对吧?

他知道我要保要保持的,保持那么远。然后呢,我不在此处算他当前的梯度,我先预判我我大概是要好的这势,我在这点处算一个梯度。所以说我真正移动的方向是你看这点处,他已经开始往回走了,就就刹车了,对吧?那就。

你再往后走,可能刹车更厉害,最后这个收敛。如果你要不做这种事情。他爬跑到左边的山坡上去了,然后等会儿又跑右右边的山坡去去,那最重要的是到最低点的时候,它它冲出去,对吧?所以这个就是改动的地方。

就是说推一个铁球下山那跑太快怎么办?为了避免这个问题。你就这个啊。让他预判一下,看看前方是不是有墙啊,要串上去这个意思。然后具体实现呢啊也很简单,什么叫预判呢?就是说。

刚才不是说VT等于前面那个VT减一乘以伽马,加上此数的梯度嘛,他说不要这样,他说我不在此处算梯度,我只需要把这里边的函数改一下,改成此处减去一个,你看伽马VT减1。这个东西就是你保留的个速度。

你用此处的位置。沿着保留那个速度走一点啊,然后在那个地方再提度,你再做一下这个参数东西就得到这个目标。所以计算起来仍然是非常简单。好,这个这个改进的方法,大家有没有什么问题?啊。

有同学问说是前两部都有关系吗?这个我没有看懂这这个是什么意思?是哪个前两部。She。然后前面还有问同学问这个呃,就大概是多样法案例啊,这个速度对应到机器学习中的是哪个材量,呃速度呢对应的是这个V啊。

就是说你那个参数更新的那个步伐。啊,大家对这个第二个算法有没什么问题?这个比前面那个稍微的复杂了一点。但是你先从物理上去理解的话,大概你可以理解的好一些。呃,在我们这个问题当中,这个速度呢。

它并不是学习率啊,同学问说这个速度是不是学习率。这个这个一塔这个是学习率。这个速度呢其实是你每一步走的这个距离。就是呃因为我们这个你你我们假定这时间是均匀分步就均匀的向前的。每次比如说前前一点。

然后那你每一次走的距离除以你这个均匀的这个时间,它就是速度。学习率你可以理解成是一个。呃,就是你推那几个下车啊,就是说他。应该走东么远。但是由于某种这个摩擦力或者什么东西,他没有让你走东么业。

就是这个你实际走的和你应该走的这个差。这个这个做一个商,那个东西大概是你学习率。呃,同学说。问你说这个V是不是学习率,我我们说到了,这个V不是学习率,这个e塔这个e塔是学习率啊。好。

然后还有同学让这个希望能把这个公式再仔细讲一下,就是我们这个公式啊,你就是自己看的时候也是这样,你对比一下。因为我说的这个方法动量法的这个改进算,所以你要做什么呢?你要把它跟前面。进行对比。这公式里边。

就是VT是VT减1乘以伽马,这伽马是一个你可以小于一的一个数,或者等于也行。加上后边这个。一卡乘以它的梯度对吧?是在当前这个点处算出来的梯度你。这个方法呢呢只有一个区一个区别,只有这不一样。

他不是在当前这点算去提度,他是在。其实他沿着那个上次更新的那个方向走了一步,然后再算题。这就是这这一步就是他的先见之明。他先往前看一眼,就他没走这步,他往前看了一眼,再看看前面。如果我走到那儿的话。

我应该怎么动。然后我就必须按照那个地方开始动。是这个意思。啊,对,有学学问说这个地方为什么减法?因为我们这个梯度向降法啊,你看我们主体的公式也是一样的,这参数更新呢是用当前参数减去梯度。

我们要往梯度方向是函数增加最快的方向。我们要往还数这个减减小最快的方向走,这是减。好,大家还有没有别的问题?有同学问这样和增大不长有什么区别?我不知道大家说的是哪一个,是提出是那个呃多量房。

还是这个方法,这个跟增大补偿还是很有区别的,看不出什么是什么相似的地方。呃,然后。同学还在问我说,为什么这就减法说过了,就是说。我们做参数更新的时候呢,应该要沿着梯度的反方向更新。

而不是沿着梯度方向更新。就そ以这。好,这个大家有些很细节的问题,大家可以自己自己讨论一下。就是说关于这个为什么减法的问题,关于这个嗯。增大补偿是吧这个。大家可以再思考一下。然后我们继续。啊。

大家还有一个问题,就是说大家说这个是不是这种思想是不是把前面走的记一下,这不是的,我们后面的算法是现在这个不是的,他没有记前面的事儿,他是往前看一,往后往后看一。好。现个问题。就我们刚才这两个算法啊。

因为第一个是动量法,第二个动向法的改变算法,他们都是要解决这个呃局部吸数方向反方向,不见得是函数整体下降方向这个问题对吧?所以他做了一些这个类似于积累的作品啊。对,就同学问我说。

这是不是相当于把前面的这个东西记录下来,也是有道理的。就是说他是把这个前面这个动量给保持了。所以这个是候咋。好。那第二个问题呢,就是说这个。我们如何去筛减我们的学习率?

还有就是说我们如何能够智比较智能的对不同的参数呢采取不同的学题。如何你在训练过程中让这个算法自己去发现这些事情,让他自己去做。这样才能够对每一个数据体呢进行量身定做啊,这这个是一个很很的。就说。

这个我们就涉及到我们下下面讲的一个算法,就叫做ad gray。就这个ADA啊前面是adapive的意思就是适应。调整的意思就是自动的使用自动调整的意思。然后gd呢就是规定就是那个Q。啊。

所以就是我们提到的这种问题,就是说我们对所有参数都使用相同的学习率,而且它那个嗯。不知道该怎么衰减是吧?就是你不知道怎么去在训练之前就预定一个学习率的衰减方式。啊,这个问题就比较讨厌。

所以所以这个这种自适应的学习方法啊,那怎么办呢?他希望达到这个目的。随着模型的训练呢,学习就应该自动衰减,而且筛减的方式应该适用于你当前这个数据集,而不是说你随便定义。然后呢,对于更新频繁的参数。

中我刚才说了,你要希望他采取比较小的学习率。对于更新不频繁的参数,就是一共他没出现几次,你必须把这个它出现它出现的时候,你必须把它这个出现的信息给它良好的记录下来。这个时候呢你需要采取较大的学习。

总要还能做这一点。哎,这个办法这个办法呢,他其实就是他也是他要把之前走过的做过的事情把它记录下来。那他记录的呢不是那个动量,他记录的是你每一次这个参数它被更新了多少?不是说频繁的参数,更新频繁的参数。

我希望少更新一遍,更新不平繁的参数,我希望多更新一遍,对吧?那我先想想看在我这次训练过程当中,哪些参数获得了多多次更新,哪些参数我没有获得多次。这个是。我问一下他。如果那个参数已经前面。

比如说我这个迭代要有上百万次,那我迭代了1000次的时候,发现有些参数每次都出现更新了。那我以后对它更新率就会小一点。那我更新1000的时候,发现有些参数只更新了一次啊,那我大概下次他再出现的时候。

我要抓抓住机会了,对吧?我要给他好好的更新一下这个意。那具体怎么做?就是说他做了一个乘法函数。比如说你现在有两个参数。在一。哪儿。然后呢,你每步更新的时候啊,你这个C加一有1个V1。TVT1吧。

这一般价钱。对,然后C加R有1个VTR。就这个T呢。等0选1。呃,相等于这个好络100啊之类的往下走。每次更新你都有一个V,这个V呢就是随塔一的变化。这个。VT1就是西大一的变化。

这个VT2就是西大二变化。然后你可能是比如现在二更新次数很少,就不怎么更新,都不能出现。那不出现的话。就很多都是0啊好多是00。这个呢在一行能更新次数比较多,都都都不是0。

每次正的负的正的负的来回又跳来跳去,对吧?就是好多的好多的数。嗯,好的书。然后我怎么通过之前这个历史。让算法自动的去把这两个区分开来。其实一个办法就是这样,我把这七打一不是更新次数多嘛。

我就把它这个VTE呀。这些东西给平方和一下。因为我们正常来养这个V体就为具体。就是那个grading。实际上我们做的不是比,因为是G了,就是说。我这样想,我们不要这个有误导,这个地方不要写B。

就选择在这点呢算梯度的时候,那个在一这个方向的梯度。这个。这个呢是在其他二方向题。这个如果它出现次数少呢,那你这个梯度你就不怎么更新它,那梯度就按多0。那如果这个C大一出现次数多呢。

它这个梯度就都不适应,对吧?然后呢就去。然后在这种情况下呢,我们怎么去记录他们之前发生这些变化。我怎么去让这个算法自动识别这件事呢?我就把它记录一下,把大G。T。11。证明什么用?等于这个之前这些G。

T1他们求和K吧。K等于从0到T减1啊,就之前的所有的那些个呃题录。做个平方盒。分号。啊,这接没开更好,这无所谓了。这个呃最后还开的更好了,就是说。大大剧这个人没看上号。Yes。我的这个平方。

比说大地是没开根号的啊,就是说。你把它都给记下来,这个数越大,就说明你更新的越频繁,更新越多啊,这个数越小嘛,就说明更新的越少,对吧?那我。做下一步更新的时候,我就来做个调整。我对于这个DI的参数。

我把这学习率用它再除以一个,我算出这个积累的这个大致。都给积累,这个数越大。整体的这个实现的学习力就越小。这个数越小呢,你整体实现这个学习率啊就越大。所以这样就实现了一个事情。

就使得你这个参数更新越频繁的,它自己适应出来了,越频繁的,你下一步更新呢就更新越小。以前更新的少呢,你下一步更新呢就更新的越多啊,这样就实现了。而整体上来言,这个大致呀它是递增的。随着你更新不断增加。

你就是网上不断加这个平方下,它永远递增的。所以说你任何一个参数的学习率都是越来越小。这样我们就完成刚才说的一件事。第一,随着模型的训练,所有参数的学习率都是衰减。至于哪个衰减的厉害,哪个衰减的不厉害。

取决于他们之前更新的次数。你更新的越厉害了,你这个就题度越变化越多的,你这个学习率就越小,题速变化越少的你这个学习率呢就越大。那这就完成了这个事情,对吧?所以他这想法也是非常简单。什么也没做。

做了很少的事情,就是每次一更新,你就把这个G。啊,记录下来下次更新的时候,你把它放到松面上这样子。这就完成了刚才的事情,对吧?好,看同学问题啊。嗯。对。

然后有同学说这样是不是要这个额外开内存存这个参数的更新次数啊,那是要的。就是说你不但要知道这个参数更新次数,其更重要的是什么呢?你要知道这个你要把这个求和,其实你你那个开根内存,你要存什么呢?

要存一个香药,对吧?就是说。对于。这打一来说,要存1个这个GTE1这个数呢每一次更新之后,你都要把它也要更新一下。然后这个GT。R就是个R。只要你要存一个,比如说你要有NN个参数的话。

你要存一个N维的向量。但这个向量一般是比较少。因为参数即便有100个,你就是存1个1000维的向量。那,这里就是1000数,这个是非常小。Oh。对,有同学说能不能解释一下吸数稀疏数据,就是说这个呃这个。

这个数据里边。现在很多都是脸。睡长。好,然后这个还有没有其他的问题?所以大家看到这个当我们一般来讲你描述前面这个目的的时候啊,我们都会觉得哟呦这个好像挺复杂的,这个挺挺麻烦啊,不知道该怎么办。

然后你看到他实现就是这个前面人想出的一些方法的时吧,你发现他都是用一个非常简单的方法去实现这事。这个也是这个事情是非常重要的。在工业里面。在工业应用里面,你想实现一件事,你可以用复杂的方法用简单的方话。

那你一定要用最简单的方法去做。你这样不容易出错。逻你的逻辑越简越简单越好,而且你的这个实现也是越简单越好。好,这个地方还有没有别的问题?好,那我们继续。好,那这个方法。还是存在一些问题啊就说。

整个这个呃文章的顺序和包括我们这个讲解的顺序都是这样。我们先提出一些主要的问题,然后解决一些。然后你那你解决这个问题的方法呢,它本身可能还是有一些问题。那我们再看怎么去改进,就这样。

那我们这个呃at grade这个方法的一个主要问题啊,就是说我们刚才其实他这主要问题也是我们刚才说它的一个特点。就他学习率衰减比较厉害。你每更新一次,你这个大G就增加一次。

然后你要更新的是咱们说这个上百万次上千万次的时候,那你这个。衰减太厉害,很快就没了,就是大家都不学了。就卡死不动,对吧?那这是一个问题。他这个学习率快速的单掉衰减,这衰的缺点肯定。所以说呢。所以说呢。

我们。他与其说你把这个所有前面的这个东东西啊都给我加起来。那我说我别都加起来,我离得太远那些,因为那个过去时间长了,可能也不是很适应当前情况了。那个我就不要了,怎么办呢?我做一个移动平均值。

我们把这大G改成这个E。因为一般我们用E表示平均值,对吧?我们大致就是aggregate是那意思啊,就是说全积累起来。那E呢指的是一个平均值,直接值怎么做呢?就说我们上一阶段的平均值,我们乘以个伽马。

这个伽马是一个。小一的数小一大于零的。然后呢,我们把上一阶段的平均值和当前这个值做为一个平均得到一个新的平均值。就是你不用把前面那些步骤都就是前100部分都给拿出来。

重新把它们加一块除以100次平不用态,你就把前面那个平均值跟当前那个值做个平配就行。这样得到效果其实是一个指数。就是他最终这个东西得到效果是什么呢?就是说。这个大家可以自己思考一下。这个一般来讲。

我们说算这个随时T,做这个移动平均什么意思?一个函数,这函数是关于T的函数,就TT。做一段空间呢就是说你选出其中一段。你在这点处你往前看一点,然后在这儿做个平均,平均大概在这儿。

如果你要是一开始你在这儿触发的呢,我先看一下这个屏幕屏幕就在这儿,这叫移动屏。那我们信这个就是等于说你做了一个积分,从A到B做了一个积分,对吧?那这我们这种做法跟他不太一样。

我们这种做法做的相当于是啊你也做了个积分,但不是从A到B,直接对G做积分。这种做法它其实是一个效果。肯定有一个G。是那个本身那个自然给你。还有一个东西是什么呢?就这个。一个衰减衰减率。

这是一个溢处的什么。呃,那个X大概这样可。然后呢,我们其实这个我们没有做直接这个审别,我们做的是这样一个积分。从零开始到当前那个T。用这个E兰姆达X乘以了。啊,你这个这。啊,这个机分。啊。

最后除以一个这个。这个权重自己的积分。加强音嘛。这个积分呢它的好处是什么呢?就他把你这个你看你离你当前这个时间越近的这些点你的权重越大,你这个越远的点权重越小。因为这个指数嘛。

所以说你呃时间这个离得越远,这个衰减专力了,就前面基本上就没有。然后呢。这是达到这个目的。然后呢,还得考虑什么?这好算。你这个数学表达是让成长标死的,那实际上特比较好算,他就是这样算。

至于为什么这样算就到这个小果,大家可以自己思考一下。那么这样的话我们就用这个E啊,这个大E啊就直接取代了前面一个大题,我们还是对比。当你算一个改进算法的时候,你就直接对比他们两个区别的哪。

几乎都是一样的,就这个点不一样,这个是大E对吧?把这变成大E了啊,这东西了,这大E呢是一个移动平均,而不是整整个的这个求。那他呢?就可以应成到呃就是说它可以避免你这个学习率这个快速的单价费。

所以这个就是呃艾 delta,就是我们这个艾gra的一个概进算。但这个算法啊它不止于此。但实际上当这个作者们开发这个算法的时候吧,他们还注意到了一个问题,什么问题呢?就是说他们发现你这个。

你般这个式子有什么问题啊?他这个。这个东西的单位就是你对那个它它是这个梯度的单位。梯度就是说你对这个函数求导。比如说你的函数是啊。重量,然后你那个参数呢是这个时间,那你这个T数单位就应该是重量除以时间。

是这样对吧?或者说你的函数如果是钱。dollar嗯你这个记录就是dollar注意时间这样那。这就出现问题了,就是你这个。参数它的单位是时间或者是什么别的参数还是就比方说时间。

然后你这个梯度的单位是dollar除以时0间,就它俩其实不是一个单位。不是一单位怎么做加减法,这物理上是不成立的,也不可以做加减。对吧所以说新入下降法本身它就存在这个问题。从一开始就有这个问题。

只是大家都没有去关注它。🤧然后。现在这改变算法里边呢,它这个这个学习率啊,它不是个常处了,它有分母。你看这个分母。它其实是这个梯度的平方,再开一根号。所以这个分母的这个单位啊就跟梯度单位是一样。

那你从这个量钢上来讲,你这个单位在这小掉。所以说后边整个这一项它是没有单位的。没有单位的,所以你这还还是存在一个问题。你用一个没单位的东西去更新一个有单位的东西,这还是不对的处理。所以说呢。

这些作者呢他们说那我为了呃首先从物理上我希望清楚一点,怎么办呢?我希望把。这个东西的单位也给它改一下,把它改成你这个参数中心的单位,参数单位怎么变怎么办呢?就是啊他在这个仪塔上面,他不要采用仪塔。

它采用的是我这地方写错了,这个daelta西塔的平方。就是个它采用的不是仪塔,它采用的是跟这个用了你西塔历史上更新的步伐,下面这个是梯度的大小,上面那个呢是你每一次更新的步伐。做了一个评运。

我们知道当我们用这个算法的时候啊,它其实每一步更新它不等于梯度。因为我们不是已经做了这个衰氧,对吧?那既然你每一步更新它不等于梯度,那。这个东西。参数更新嘛,参数自己做个差,那肯定就是参数单位。

所以他把这个一塔这没单位的东西换成了一个参数自己单位的比。那这个时候后边这一项它的单位。亮钢就和你前面这个最大量钢是一样。这时候做减法这比较合适。那这样做呢,从物理上来讲是这样,你是为了把量刚统一。

对吧?那从实际上他做了一件什么事?他把仪塔给去掉了,这也很重要,发现没有?这个仪塔虽然前面做了好多自动化的自适用啊,什么,这仪塔它一直存在,你得以前你得还是得自己去定。这个比较讨厌。说到这儿的时候呢。

啊一场没了。这个就很有意思,因为你那个彻底没参数,你把那个一彩去掉。它彻底是一个自动使用,从一开始就没有学习率,然后自己搞出去学习率,然后一点点就就就就过来,对吧?所以说这种方法呢。不管从原理上来讲。

还是从实际上来讲,都是还是有结议。就是说你再对比一下,从这到这,只是把仪塔。换成那个参数自己更新,自己的这个更新的一个这个啊。移动平均。啊,然后同学问说这个E是不是单调递增的,这个E不是,这个不简单是。

就是说呃比如说我们刚才画这个图里吧,这个G是从一开始上升,后来下降了,对吧?那你这个呃当你往后走的时候呢,你的平均值其实也就是下降了。所以这种方法呢,它不见得能保证那个学习率要不断的下降。

但是呢呃他通过自己的这个适应啊,它就保证你那个学习率是在一个合理的位置上。就是说其实学习率我们并不是说非得让他必须一定要下降。我们前面说有这个目的了,就是希望他这个学习率自动衰减。

那是因为我们没有办法找到一个合适的学习率。那你为了保证这个模型收敛,那你就得让它这个最好是一直衰减比较好,但是后来就改进方法啊,它更多的是找到了一种比较合适的学习率,而不是说一味的让他衰减。

它可以也有可能是一味的衰减。就是说如果你这个更新。啊,越来越大。那为了避免它这个发散出去了,那我就会说一点,如果你更新越来越小了呢。就随着随着样本往后看,你发现这个参数在刚才那些样本里面更新的比较多。

那可能是因为你这排序的问题,对吧?那你在现在的样本里的更新很少,那我觉得也得增加增加的学习率,对不对?这个意思。所以他更多的是找到一个合理的呃学习率,而不是一味的让和去让这个呃学习率是这个降低。这样。

这是一个非常好的问题。还有没有其他的问题?好,那我们当然这个地方我们稍微提一句啊,就是说呃刚才那个第一个版本就这个版本,这个版本还有另外一个名字,就是说这个一个。继续学习的大学级的人物啊这个。

因此啊这个独立于之前这些作者,他也提出过这个算。但他没有提出这个下面这策,所以我们就把它给归进去。就对就是这个主要目的是说,当大家看文献,比如说别人提到这种算法的时候,大家就知道的啊。

这个算法也知道是什么。🤧并不是一个你不懂的东西。好。啊,最后一个。啊,最后一个我们在这个第四章讲的这个算法,就说它是干什么呢?它结合了动量法与这个啊。挨eldlta的这地方写错了呀,这个没有M。

就是刚才那挨eldlta。它结合了两种算法。我明白说了,就刚才有同学提了一个非常好的问题,我刚才还那个一下解释错了,就是说动量法呢,它其实是记录了之前。那个移动的主要的方向。这样形成一个动量,对吧?

就是产生了惯性嘛,你把以前的那个方向记录下来,架起来,产生那个惯性。这个。艾到delta方法是什么?它记录了以前震动的幅度。就是说他没有把那个按照一个方向加起来,他想知道的是你之前那个呃振动的幅度。

就所以说平方和。他不管方向,他做的平方,正了四都无所谓,反正是只要你动了就行。这个动量法呢,它其实是正负很有关系。就是说我们刚才提到的,就是说。为什么正负有关系呢?沿着这个方向,一人一直是向右的。

所以说它向右的方向积累起来。沿着这个垂直方向呢,它是正负正负都有,所以说它就抵消掉了,所以它才可以避免你这个无谓的震荡来保证你在主要方向进行优化,对吧?所以说这个动量法呢一定要关注你的这个负号。

符号相反就互相。开le掉符相符号相同就可以不断积累。它是这个目的。这个东西在统计学上特别像什么呢?特别像一个局部性问题。就是说我们对于这GT的这个这个东西,GT其实是随着每次T它GT得到一说的不一样。

对吧?你可以把它看成想象成是一个类似于随机变量的东西。动荡什么呢?就是这期的一些局。我们想知道这个G期整体往是往哪上走的这叫动量。刚才那个。移动平均也好,还是这个这个全加一块也好,这东西这是什么?

它有点像二阶距是吧具T的平方给加起来。对吧所以说呢。这种结合了两种算法的算法,这个iteam就是adapive momentum。这个算法它呢。既考虑了一阶举这个动量,也考虑了二阶举的这个。

其实我不知道为什么要弄V啊,这个V不是速度的意思,这个V指的应该是啊voltility,就是说那个震荡幅度或者是啊这个viance之类的这个这个意思。就是套把这样都都记下来,那这于怎么用呢?

参参数更新法其实是说这样。这个一塔还在啊。他把这个方向性的这这个这一项,就是那梯度那一项换成动量。把这个衰减这一项呢。用了这个。大概这个意思吧。就说我们在动量法的时候。我回去看一看。

我们把衰减这个方向性东西换成了。动量这个V。此V非比V啊,这个V一是通量的意思。我们把衰减这个方向换成了动量。然后在做这个自适应的这个方法的时候呢,我们把这个乘法项采取了这个P的平方的一个积累。

不管平均也好,还是全部积累也好,总归是关于这个啊有G的平方的一个积累。现在这个新的算法呢,他既把多量算出来,也把这个这个平方积累算出来。然后在方向性这里用了同向,在衰减这里用了这类。

所以它其实是一种结合的动量法与这个呃。开动delta的方法。这两两个就是各曲其长那种算,对吧?它既有自动的衰减,又有。保持速度的一种。所以说呢。啊。它就技能保技能这个解决。

前面说第一个问题就是说如果你这个梯度方向不是很好,这有震荡怎么办啊,这个都难解决。然后这第二个问题呢,就是说如果你参数有的更新快有更新,有的更新多有的更新少,有些吸数性怎么办,它这个这些。所以这种算法。

它从原理上来说就是会更好一些。他照顾的面更多一些,而且实现起来并不复杂。并没有比刚才年说的,这只不过是。按同学说话说就是多开展内存。就多记录点东西,你要摔减的时候,公西也很简。Yeah。好。

那实际操作的时候吧,这个VTMT他们采取了一个无偏估计,就是跟这个式子还略有不同。The。这个文章里有就有有有介绍,就说它主要目的是说,当你一开始这个所谓的移动平均啊,就是你越往后它越稳定。

你一开始的时候呢,移动平均它不就是取一个点,那就很不稳定。所以说那个时候呢他稍微做了一点调整。大家可以。呃。有同学问说那个无片估计是子。B万上标题指的什么啊?大家统重新看一下那个原始文章。来看一眼。

那这个是?啊,直接在这看。这个物片估计。这里我稍微放大一点啊。啊,这是我刚才说这个。就是他没有他定义了这个MT和BT,但他没有直接用他用了个MT是MT除以1减之贝塔,VT是VT除以一减之贝塔。这样做。

然后那个耳边的T次方,这个T次方呢就是说大家看啊这个嗯。当这个就因为贝塔一贝塔二都小于一的。当你这个T这个T次方就T这个上到T就是这个幂次的意思。那你当这个T非常大的时候,这个事儿就没了。这变零了。

所以分母就没了,这M hatT就和MT相等,也是一样,对吧?所以只是当那个T比较小的时候T等于一的时候。这样说才不行的,所以他主要是解决这个当题比较小的时候啊。

你后这个呃就他说啊他说这两个都训练中都存在向零方向偏差的问题,就是说他比真实的需求要小一点,所以他除以了一个小一的数,把它给放大在一起,这个意思。所以这就是那无边无际的。大家可以自己看。

正我就得有有的这样讲。呃,然后有同学问刚才那个平均的问题啊,那个呃因为是刚才的,然后我们要不等会儿大一的时候再给大家说一说。好。到这里还有没有别的问题?啊,对,有同学问了一个很好问题是。

这个算法有没有代码实现。其实这个大家可以看到这个算法其实本身是很简单的。所以这个代码呢首先在这个什么上,就是那个文章里面,他提到了一些呃这个简单的伪代码,大家可以用那个来实现。

还有就是说大家可以看看这个各种库里面,基本上应该都有。你可以看看那个SKSK learn里头是不是有我我因为这个准备的时候没有来得及给大家把代码写出来,就是说。大家可以自己找一下。She。

我估计SK learn里面都是有的,就是他那可能是一个包,就是你直调用就行。那具体的那个代码怎么写的呢?啊,你可能看不到。然后如果你如果你自己想写一个,你就根据这个算法定义,自己自己来写是可以的。哎。

所以现在有同学问了一个非常好的问题,就是说你如何根据数据去选择不同的优划算。第一个呢。就说你要看这些优化算法,他们解决了什么问题,对吧?就是它还是一个原则上说,它还是一个具体问题,具体分析的事情。

但是呢你会得到一些指导指导性的意见。就比如说你现在这个问题,你知道你那个你你可以大概就是比如说你可以先把你那个函数可视化一下,对吧?你从各个维度上你画一个画个图,你看看它是不是很奇缺。

是不是这个震荡很厉害呀?如果很厉害的话,那这个动量法,你是不是要考虑一下,对吧?那如果要是你发现你这个问题本身,比如说你是一个文本处理的问题。

那很有可能你是有系系疏性的去考虑的那你是不是就要考虑一下这个自动衰减的事情,对吧?啊,就是说这个不同参数要采取不同的这个。学习率对吧?这,所以就是针对于你的这个呃。问题啊这是。你就需要啊。

就是从你的问题本身的特点,你去选选选择你的需要算法。而但是这个除此之外呢。我们这里其实他还给了个总结。就说啊。😊,如何选取算法?就他大概比较了一下。整体上来讲,我们刚才也说到了这个呃iteam这个算法。

它基本上包含了前面这几种算法的所有的优点。所以它其实它可能是几种算法中综合表现最好的。那事实上可能大概也有些实验结果保表明,他基本上就当你不知道你这个数据是什么样的,你也不是很了解,你就想选一个。

你也没什么办法,那你可能就选这个就行。那如果你要是对你这个数据非常了解。比如说它不存在这个系数性的问题,那你其实没有必要去那个用这个自适应的事,你可能用多量法就行。因为因为凡是你加入一些新的特征啊。

这个teacher他都是可能把你都变的。就说。这可能最简单方法去做就行。哎,有朋友问说,如果是股市股票的这个。呃,数据用什么算法这个。就不知道,因为这股票里面这个数据也可能有各种不同的,这还是你要看。

🤧这是一的问题。而且一般来讲嗯。交易的数据噪音非常大。就是。你要考虑如何去消除一些噪音解是。有可能有话都行。啊,当你比如说有同学问关于这个模型选择,就是说你如何去验证这些啊。优化算法效果。这个问题呢。

是这样,就是说你可以用。就是首先你一个模型的效果啊,有几个有几个参考的维度啊。第一个呢就是说你的模型收敛速度是怎么样,这个事情很容易测演,对吧?你拿出一个拿出一拿出你一个比较关心的数据。

你把不不同模型跑一遍,你就知道它这个收敛速度怎么样,对吧?这是一个。还有一个是你需要知道这模型稳定程度。对就能跑到安点上那种,它稳定性都不好。因为安点它通常是因为你这个数据起造成。你下一数据那你不在那。

你知吧?就就就不好。所以说。稳定性怎么测呢?用这个前面同学有提过这个crassl。就交叉验证。这个比如说你也可以到那个呃se learn里边看一下,那里边有一些工具,就是告诉你他就是现成的。

你给他一个数据集,100万个点,他啪给你分成一呃呃。100大份。是错十0份,比如说然后呢他拿9份做一个训练,在剩下那一份上做一个预测,然后再拿另外9份做个实验。在剩下的一份上做预测啊。

就是这个叫做这个啊N two one的这个foldco,就是这种东西。然后你看看这种你用一部分数据训练去在另一部分数据上做预测这种做法,它是不是给你一个很好预测。如果是的话,那就比较好。

那你当然你可以对不同的模型做这件事,你看哪一个模型,它这个稳定性更好呢,那这也是一个挑选的方式。一般来讲这个class是你。教学模型的最后一步就是说如果这几个模型啊这个收敛速度都okK。

都能满足你的需求,不会太慢慢到你忍不了程度,对吧?然后呢。他们在自己这个呃你给他一个数据,不考虑这个验证的情况下,你给他一个数据,他确实能走到你这个绩效时点。尤就得这样的模型都都不错。

那你呢你最后用一个这个gspad试试看说哪个比较好一些。哎,然后有同学说这个。训练样本和测试样本数量两分。那这个事情嗯。就是。这可能也是一个比较主观的事情,就是说。呃。一般来讲呢。

你比如说我刚才说那个N two one这个做法。就说你这个N越大,你是。做这个验证的时候,你花的时间越长。你想你要越大,意味着你要训练N次,然后你再剩下那一点你做预测,你要十010比1的话,你就算十次。

每次做一个预测,你要100笔,你就要算100次。所以这个事儿呢你应该算的越多啊,你这个对稳定性的这个考察越明显。但是呢你算越多,你花的时间越长,所以这个取决于你计算能力,也是或者就是反正。

大概你也不用不用分太多。还有没有其他的问题?哎,对,所以看着办的意思。就是说有些东西就没办法。因为你看我们这些算法呢。他基本上也是想要帮你解决一些这样的问题。就有些东西你本来就是只能自己看办了。

比如说学习力学习力这个衰减的。这算法呢他帮你解决了一部分啊,就是说。你可以让他自动。但是终归还是有很多事情你得自己来办,但这个事情也是好事情,为什么呢?如果是所有的事情都自动化了。

没有什么是你人工可以参与的那大家也不用学了。你你也根本就不需要找这个工作,你你不存在这种工作。机器就罢,就是因为这里面多少含有人工参与的成分,有它的艺术的部分在,所以才需要人。是啥。啊。

那个同学问还是提到这个交叉验证啊,class就是说。你怎么去看这模型是不是稳定?那一般来讲,你那个做classization的时候,它就是说你你会有一个这个正确率。比如说你预测的那个准确率,就是准确率。

当然不同的问题定义不一样了。然后你就看这个准确率哪个高就行。有些准确率。对对对,就是一个同学说的这个有好多这个呃积极学习的很很细节的这个问醒大家。我们最近有一个非常好的一个项目班啊。

这个这个我们我我也看了这个项目班的这简介,就是里面的主题非常的。😊,呃,注重我们工业的实这个实践,就是应用非常好。我们最后也有这个一个宣传,就是大家可以看一下。然后呢讲师呢就是非常非常好的讲师。

就是好几位非常好的讲师。好,大家还有别的问题。啊,大家说adapive加上MV,那这个本文中没有介绍,这个大家可以自己看一看,是不是他这个我看你说adapive加上NV就是这个呃减。

减原始速度梯度的那个这个是不是跟我们这里面有一些地方重复的?你看一下。好,还有没有其他问题?啊,对,还有包括这个视频的问题啊,今天没听课,还可以回放吗?可以的,我们这个正在录屏。

然后还有包括这个课程链接啊,就是我们那个。这个PPT里边最后一页,大家可以点一下那个啊就是课程链接,你点到。哎,唐老师讲是问说能不能讲一下这个分布式优化。这个。😊,本文中提到的也提到一些,提到的比较少。

就在这里就说他说。列举分析这个呃随机叙数向量法的并行率分布式加架构。就是说我这里也只是把这名字列了一下啊,具体的呢呃我实现的并不多,所以说这个就得让大家去这个去实践一下看看哪些架构里面它这个实现不好。

就是他基本上就是说我们现在都不是用一个机器来做计算,对吧?那你可不可以去比较好的用并行计算这种方式去实现你的这个算法。就说把你的数据。包括你的梯度样本把它分散在各个不同的机器里存。首先你得保存是吧?

太大,你存在一个内存,你本身就很费劲。然后你存在不同机器里,然后每个机器呢只负责计算一部分。但这个时候你必须让他们机器之间有交流。你最直接算你这部分。这个参数更新。比如说我们说这参数更新的时候啊。

很多东西都跟以前算那种关系的。你怎么去保证这些机器有合理的交流,然后保证这些算法呢,这个就能够实现,对吧?要尽可能多的机器,然后还不能出错,不能说那个。算完了,这边还没算呢。

然后这个明明是上一步参数更新的数据,然后跑这边用用在下一步参数更新上面去了等等些这就比较讨厌的问题,对吧?就是他需要一个很好的架构去保证它不要出问题。啊,所以说呢这就有很多这个公司啊。

还有这些研究机构呢,他们就开发了一些架构。这个大家就只能去嗯让大家去实现呃去进行这个实验一下。对我觉得分布式这个东西。也是蛮复杂的,就是这个还是很复杂。而且我并不是这方面专家,所以这个可以可以考虑。

这是以后如果大家很有兴趣的话,大家只要叫的欢,对吧?最后这个东西都是会有的。好,还有没有其他的问题?好,那我们进入最后一个软点。这个地方啊他还讲了一些其他的这个。方法也是来优化这个随机提供现量法的。

就说呃。刚才那些呢就是就是。主要解决我们前面说这些问题。对这些这些东西。现在呢就是说你除除此除了这些算法之外,还是有一些别的办法。它可能不像是那种呃嵌入在每一次更新当中。他不是好像真正拍像。

前面我主要是讲就是改变这个参数更新法则来实现一计算。那这个呢它就不是做一件事儿,它并不是去嗯在每次更新中做这种手脚。它它是在另外的维度上也是要改进这个呃这个随机气度下降。第一个做法就是刚才提到的。

就说啊你要做一个洗牌,每次大循环之前做一个洗牌,看那个牌造。是。就是说我们弄那个mini batch这个小小票是吧?不是把那个。整个书籍切刀切分成肉干粉。然后每一份算一题录。

然后这个每一份你做一次这个参数更新,啪更新一遍,满试对吧?满试完之后呢。你把整个人打断一遍,然后再重新做一次去划分。然后再啊更新音遍然再完成然后再不能不断打走。这个是避免什么。

就避免你那个一开始你定这个顺序,你不是随便定的这个顺序,万一你要定的不太好,你有可能造成。这个顺序本身。给以影响你这个训练的结果,这这不是你想要的。你你这个模型你一般来讲这种呃随机取样。

你是希望他们这个顺序是没关系的。一般来讲,很多情况面都是这样,像顺序没关系。所以你需要每次大循环之后洗一次牌,再进行一次大循环,再洗一次牌,这样消除你这个顺序的影响。你得到一个比较稳定的模型。

否则的话你这次是用这个顺序的,你得到一个模型。你等你预测的时候,你不是这个顺序了,那你模型可能就是装式,所以就不稳定了,对吧?这主要增量稳定性。然后当然有另外一种做法,就是这个呃pre这个呢他说是。

人为对这个数据排始,就是有些问题上。嗯,但是这个我具体的问题我这个不太了解,但他说。这个文章里面有一些链接,就告诉你说哪些文章提到一件事。有些问题上啊,这个人工培序是很必要很有必要的。

就是你应该给他先排一个序。不要给打乱。就是应该先开一个区那种情况下。那就也先拍好,下次你再大评完结束之后,你也还是要把心拍好。那就这怎排,这个一定是需要你用到那个领域的专业知识。

而不是及学习本身这个抽象知识。必须要用专业知识,为什么这么排?这一个一定是这样。就是这个洗牌和这个人为排序这样的做法。都是可以促进你的这个学习。当然在不同情况下。第二个呢是这个叫做批规范法。呃。

P规范化和P再规范化。写这篇文章的时候呢,还没有P再规范化,这还不存在的。这个是今年2月份的。只有这个P规范化,他是他只提到这个。他做这件事呢,就是说。这个也是我们呃翻译过的一篇文章。

所以大家如果有兴趣的话,这个也是可以给大家讲。但这这次我们只能是稍微的就是简单介绍一下,就说你这个。每次一过来的时候,这小批量来的时候,他这个呃。他这个呃。

他这主要是针对于那个多层设计网络多层网络学习的。就是您呃,比如说有这好几层,三层四层是吧这?你这个训练的时候怎么样呢?你是拿一小批方过来?打这一层先得出一些输出,然后你到下一层。

然后又又什么又得出一些输出,又得到一些输出。这样。然后通常我们比如说我们做机这个训练一个模型的时候,我们都喜欢把那个样那个样本数据啊给它归一化一下,在训练之前,怎么这样去做这种事情,为什么这么做呢?

他可以让你计算功能出不能出问题。比如说你当你算矩阵的时候,你就不规一化,你一算那个covariance。有的时候它那个特生值有的是非常大的成非常小,你算矩阵东总归会出问题。然后呢,嗯。还有就是你这个呃。

有些问题,比如说你打个比方说你算的是这个。呃。推荐系统吧,比如说啊你想算某一个参数,对你这个人对某些东西的兴趣的这个corition。然后你不同的参数,它和本身的这个震荡幅度度不一样大。

但但是你想要的是这个预测的能力,你不关心震荡幅度。所以你该先把那个不关心的数据尽在去掉,所以说会规化,我们经常做这种事情。那做了规一化之后呢,但规化只对第一层起的效起的效果,就第一层的输入是规一化之后。

你到第二层的时候,它不是用了第一层的输出结果,这堆东西它可能没有可是没有进行规化,它随着你训练的进行的,这这堆东西它那个偏差会越来越。那就影响了你后边这训练的效果。而且你层随着层数增深呢。

这训练效果越来越差,这个不好,对吧?所以这个批规范化什么意思呢?每一层训练之后,在这边加了一个夹层,他把你那个输出。给会一化了一下。差不多这,规范化一下。然后把那规范化面系数给记下来。

比如说你平移了一下,又伸缩了一下,把两数记下放在这。然后你下一步的时候呢,你就用这个规范化之后的数据进行训练。所以每一次每一层的输入都变成了规范化之后的数据,这样使得每一层的训练都不容易呃由于这个来回。

这个东西应该会震荡而影响了你训练的速度。就是说是这样一种方法,这个方法呢还是很巧妙,很有意思。它的实现起来也不是很复杂。所以这个如果大家感兴趣,也可以给大家讲。

这个是google的一些这个研究人员做的一个。然后第四个呢是这个early stopping,这什么意思呢?这个其实是一个很广泛的一种想法。就如说当你训练的时候,比如说。你跑到一个很平的地方。啊。

我这个没有。比如说你现在是优化一个函数是吧?哎,到这就屏幕。所以说你沿着这个方向走的时候呢,比如四大零学在这儿,那四大一在这42在这下三在这儿,你就发现你还是可以不断走下去。但是就是你的步伐也不是很小。

你还是不不断走下去。但是你这个目标还是会减少啊,就已经很小。不怎么动。对吧那在这种情况下,就是说你虽然这个步长还没有达到你终止实验的终止这个训练的那个需求,但你知道你这个U函数已经不动了,不动了就算了。

不动了结束。知道吧?小个道。当你这个误差减小程度小于某一个阈值的时候,你就不弄。中止什么,这样你也可以减减少一些你这个在无味的地方花的时。Do ready stop。最后一个呢就我们刚才也提到了。

叫 gradientn,什么意思呢?在每一次更新中,人为加值投。就是不是说这个有局不较值的问题,对吧?有好多局不较值。你要比如跑到这来了,如果你不加噪音呢,他就在这个地方收敛。但是你加点噪音。

那就还有一点可能性,到处乱乱到处乱跳,然后最后收敛有更好一点的就这个就就像什么呢?就像是。你这个我们生活当中有一个例子,就说。你这个。因为一个。用一个框啊盛东西的时候,比如用框。盛这个石头石子沙过时。

框大一下,那框面啊很不平坦。汤就是拿那个。整条边子放。抓沙子之后呢,他这个这个缝里边。赛马啥的对吧,到处都是,你这那光不光好。然后有时候你你弄它的时候,你希望把它那个东西聚聚到中间一点。

因为它这个这边有个塞了一堆,这边塞了一堆,你下一步不好装了,怎么办呢?大怎么办?你把它来回晃一晃,震荡你当敲一敲,踢两脚,它就集中到下面了。为什么?因为你把它从这局部角值给踢出来。他他还可能往上跳啊。

但是他也可往下跳。总之是你踢上脚,他最后整体上来说它就提升到。这天样要的过程就是这事,你知道吧?每一次更新的时候加入个人为造音,让他从局部角值跳转,然后寻找到一个更好的教值,是这个意思。好。

对大家喜欢举例子。对我也觉得这个。嗯,就是这样形象一点的,大家可能理解更清楚。好,那对这个地方还有什么问题?哎,对,至于怎么怎么加噪引,就个说具体实现的是候怎么办?就是说啊我文章里头有写到它。

比如说在那个G上面加一个专项。哎,你看其实非常简单,职业,我这稍微放大一点。看。😊,这个GTI啊是那个梯度,在T哪一步对I这个参数算出那个梯度。他直接把它加上了一个人为造音。

就是你用那个计算机生成了一个呃。正态分布的一个。一个随机数。往上一加就完这个噪音。但这个detaT呢,我想它应该逐渐逐渐缩小。比如说你的噪音呢你不能一直太大。就是说你这个不是踢上脚就好。比如说你踢脚。

你可能好一点,你再踢脚时候你就不能使用把劲了,你都已经踢下去候,你再使用出来这,你就踢上来,对吧?所以说你这个晃动幅度,我的时一开始比较大,效果比较好。然后你到后边就个是小一些。相对应这里呢。哎。

就是这个标T,这个西igmaT啊对这是西maT啊,它随着T增大肯定是要越来越小。这个你可能是要加入一个人为的。睡觉的方式。那实际上就是你看他这里也给了这sT呢是一个依塔除以一个一加T的大码方。

这T就大就最小,最后就看零了。所以说你基本上已经收敛到那个极角值之后,你就不要再再再去碰碰,你再去碰它不是自找麻烦对?所以当你T表较大的时候,这事。然后还有别的问题。

同学说这个梯度下降基本上是所有机器学习算法的基础。啊,这个说法呢是。你可以认为是这样的,就是说。他并不能说是基础,他应该说是一部分,就是说。你做一期学习的时候呢,一定要先模型。然后就建立模型。然后呢。

再训练。这个所谓吸收下降法啊,它主要是在这个训练。就是一对先有模型,然后做训练的时候就对。那现在基本上可能这种方法应该比较简单。然后呃根据应用费应用呢就非常广泛。所以也可以认为你在学习机器学习的时候呢。

一定会用到这个。可以认为它是一种技术。在上面这如何去建立模型,这是另外一个问题,可它完全不一样。这个这个还是那句话,大家可以去我们的项目管理看看,在不同的工业应用当中是如何建立这行模型。好。

那这个我们今天主要内容就讲完了,感谢大家。然后因为这是我们第一次的论文班,然后也是欢迎大家来尽可能的给我们呃多的反馈。就是说我们需要把地方需要改进,哪些地方做的可能比较好呢,这样做的不好。然后我们呢。

根据这个反馈呢给大家就是将来贡献更好的这个课程。然后最后呢我需要。

啊,要的。最后这个PPT最后一页,我们课程飞燕,然后我写了好多次,我们即将开班的这个机器学习的项目版,这个里面就是解决了很多我们这里的问题。model就是说你在不同的工业问题当中。

你应该选择什么样的模型,如何建立模型?这个是。我们基续学习的核心问题就优化这部分呢,因为已经做的很多了,而且它比较有统一性啊,不同的问题大不差不多都是在用这些U法。那。

但是不同的问题建立建立的模型那很重是不一样的,这个是非常重要的。所以而且呃你可以抽象的把出很多模型。但是呢在工业应用当中,到底哪些模型是好使的,为什么好使?然后大家现在普遍都在用些什么?啊。

你如果要是想加入这个领域,你应该学习些什么?

这个问题就由我们这个项目办。

论文公开课(七月在线出品) - P2:深度学习中的归一化 - 七月在线-julyedu - BV1fW411T7GP

🤧好,那咱们就开始今天的课程。今天是咱们的这个论文公开课第二讲。这次我们讲的内容是关于深度学习中的规划的这些问题。这个这个并不是一篇具体的文章,这个是我们最近有一篇那个很有意思的文章。

就是这个呃这这位作者写了一个呃自规划网络的文章。哎呀,这好像我丢到了一个作者,那个有一个。很牛的一个人没有写大家大家可以在原可以在那个原文里面看到啊,就是然后他他这个。就是规划的这种问题呢。

以前有一些很多别的文章讨论过,就是说这是一个现在呃已经是我们做深度学习里面的一个比较标准一个标比较标准的一个步骤。就是说。之前。啊,我注意到的这个批量规际化和批量再规际化。然后我们这次呃。嗯。

就是以这个批量规划作为以前的一个标一个标准。然后呢,以这个自规划作为我们刚刚出现的一个新的想法。然后我们借助这两篇文章呢来主要是给大家嗯串讲一下说这个深度学习当中这个规化是怎么回事。他为什么需要这东西?

然后呢,他在干什么?他起到什么样的效果,他是怎么做的?大家可以这个之前没有看过文章不要紧,但是大家可以这个啊听完课之后再去看这个文章,也可以现在把它打开,然后可以对照一下。好。

大家对于这个呃文件有没有什么问题,大家都能下载吗?那些那个。O。好,那我们这个今天的主要内容。今天我们主要是通过这两篇文章和大家一起探讨深度学习模型中的规一化的问题。我们这个主要分四个部分。

第一个部分说我们首先稍微回顾一下这个深度模型呃,的大概的结构是什么样的,然后我们主要是呃利用这个就比较基础的这个呃多层感知器这种想,那也回顾一下,然后呢。嗯。

我们回顾一下这个在深度模型当中的这个激活函数。就是大家可能如果要熟悉的话,当然就知道了。如果要是大家呃不是很了解这些细节的话呢。

你可能也会在很多的这个呃博客上或者是新闻上或者什么地方能看到这个激活函数这个词啊,就是给大家稍微介绍一下,说为什么会有东西,这是什么干什么用。然后呢,我们。

这个基术之差我们可以看到这个呃激活函数会导致一种叫做梯度消失的一种现象。就是英文叫做呃gradent vanish。我不知道中文应该叫做梯度消失。就是说你在训练过程之中,我们通常使用那个呃梯度下降法。

那有的时候你发现那个梯度没了,你梯度没了,呃就是等于零或接近于0。这种事情呢,你要是说你在一个突优化里面,那就是很好的事,你就是基本上达到最优值了,对吧?但如果要是呃在这个。呃,深度模型训练中啊。

它其实有很多时候是人为引入的这个梯度消失。就是说你那个函数并不是一个凸函数,然后它有很多个局部的比较平坦的地方啊,比较极制点啊,就是有些是自然产生的。

有些可能是人为引入的那你这个时候如果你被困在那个地方的话,你就无法继续进行训练的对?所以说这是一个不好的事情。但是没有办法,我们这个机划来说经常会导致这种事情啊,所以说这是一个问题。然后嗯。

这项规一划的引入呢一部分是为了解决这个问题。当然还有更重要的他是有他自己的考虑,他他有一些别的原因,我们也会讲到,那我们是主要是以梯度消失这个为线索来说一件事情。

然后我们就会提到一下这个批量规一划怎么做的。然后。那个那个文章大概是几年以前的了,然后啊他们做批量会一化的这个作者呢,他们他们。其中一个今年又写了一篇批量最规计化呃,再规际化。

那个我们也呃就是企业在线的翻译组也翻译了。大家如果有兴趣的话可以看一。但是基本的思想没有变,他就是加入了一些细节。然后最后一个就是我们说最近我们啊出来的这篇文章,就是字规一化神经网络。就是说。哎。

他很他这个文章其实还是很神奇的,就是说他呢呃没有改变你这个呃整个训练的架构,它只是改变了这个激活函数。因为我们我们之所以要在前面一定要就是讲说激活函数导致的T入消失。

就是说我们要看一下说激活函数是如何引入这些不好的事情,如何引入一些问题的。然后呃在这个基础之上,我们可以更好的理解说为什么这个字不一化这个这篇文章呢,它可以通过引入一个。

他们新构建的这个呃激活函数来避免很多上面所提到的问题。这就是我们今天这个课程的主要的脉络。哦,大有什么问题吗?好,咱们开始啊。那首先我们稍微回顾一下这个深度模型啊,就是我们经常讲的这个各种神经网络。

那最简单的一种呢就是说嗯。啊,就是这个多层感殖机就是大家如果我稍微给大家这个回顾一下这个概念,就说。多生感你是干什么的呢?其实这个这个我们现在有非常好的教材了。

就是那个嗯就是deep learning book。就是那个那个书的名字叫d learningarning,你可以在就是直接google一查能查到。

然后我们那个呃中国的呃有有有有有也有这个翻译的把它给翻译的差不多,大家可以找到它中文版,都是都是免费的。呃看到那。多层感机干什么的呢?它的目的是去借此估计一个危机的函数,把这个说起来呃看上去好像是。

离咱们这个。啊,机器学习好像看起来远啊。其实它这个我们继器学习呢基本上就是在组织一个函数。就是说你有输入,然后你要找这个输出,就是函数嘛,就主要这个意思。那这个函数可能会非常复杂。

而我们以前的这个统计方法呀,它通常我们估计的是一些比如线性函数。大比方说我们做那个线性回归,其实线性回归就是估计有个线性函数,对吧?就是说嗯你知道那XY大概有一个线性的关系。这不是很准的。

大概啊估计这个信象还是跟的废的好一点啊,在这能一个线性回归。然后我们做那个嗯。逻辑回归的时候呢,其实是说这个呃。是一个分类问题,你抓二分类。然后呢嗯。比如说你那个有两个X页券。你希望通过这个X1和X2。

就对这个平板上点进行分类,你可能这个有这个点就叉叉叉。有些点是个这个乘612是吧?然后你希望怎么分类呢?这个逻辑回归,它它基本原理是说希望能找到一条这个线,它这么切,然后呢把他们两个分在这个线的两边。

然后离这个线越近的呢,它就越不明呃越不好分类。离这个线越远的呢,你这个分类就越明确。就是他们总有一个交叉,比这也有一圈有个。都。但是远一点,他就希望这个基本上。这个标准。

因为他他他说的这个呃基本上是利用你这个点一个线的距离啊,这个远近来算出一个概率,就是说。你在这个线的上方越远,这个是差的概率越越大,是这个线的下方越远呢,这个是圈的概率越大。

那其实他也是在呃估计一个函数。那它这个函数是什么呢?就那概率函数,就是说呃得到1个XX1X2。等于这个概率。它是这于零和一之间的一个东西。现在是一个二分类问题。啊,这个就是说我们其实以前做的各种分类啊。

或者是这种连续的呃这种预测啊,其实都是在呃去近似估计一个未知的函数。但以前的这种呢一个线性函数,一个还有这个呃逻机回归这种呢,它这个函数都是比较简单的那如果要是我们需要做这个问题比较复杂啊。

就是说你可能不是需要现,它可能这个本身这个函数就是一个。就是很复杂的函数。就这个画不对了,就说就是函总比较复杂吧,一个曲面。那你怎么去估计呢?呃,我们一个一个很好的想法。

就是说通过若干层简单函数叠加来实现一个复杂函数。就是说你数学上经常是这样,就计算机上经常也是这样,就是说你想要实现一个复杂的事情。不太可能说。一蹴而就一下就实现了。通常都是说你先做一些简单的事情。

然后把他们给组合起来。然后至于怎么组合。如何组合?这个。就很有意思了。就是过去的话,我们可能要找到一些原因,找到一些物理上的解释,或找到一些统计上的,或者是你这个比如里面就是经济学的问题。

你想找到一个经济学的解释,你找到一种方法去把简单东西组合起来。那现在呢机器学习做什么事情。他是说我不找了,我也不会啊,就是我们也没办法去了解那么多知识,我们怎么办呢?我们就假设有一堆函数组合起来。

就是这个就能够拟合我们那个复杂的函数,至于怎么拟合。我们用数据去训练的是用数据去学习的对吧?啊,这个是机器学习的一个主要的想法。就是说这部分需要具体知识的,需要专业性知识的这部分。我们争取让机器。

尽可能多的去做用数据来告诉我这应该怎么做。然后当然你。你的专业性知识越多的话,你肯定在这个在这一步里面可以提供更多的这个指导意见,对吧?可能你训练起来也会更加更加容易一些。那。那这里面有一个问题啊。

就是说我们通常说简单的东西。我们其实以前经常讲讲这个数学课的时候,都会跟大家说,如果你说一个函数,最简单的函数什么函数啊,啊就是线性函数。所以我们那个呃你看我们讲微积分的时候,就是说怎么理解微积分。

一微积分就是呃把一个函数利用线性函数去做逼近啊,局部线性化就是微积分的基本思想。然后呃还有一个重要的数学课什么?就是线性代数。就为什么学线性代数呢?因为线性线性这个线性函数最简单。

所以他可以这个了解的比较深入,所以我们才会去这个学线性代数。所以基本上你看这两个课就就就他们两个组合起来,你就可以实研究数学了。为什么呢?你拿来一个复杂的东西,你先把它近似成一个线性函数。

然后呢线性函数呢,你又比较懂啊,所以你就可以做做复杂的事情。所以说我们通常会用线性函数。但是呢。在我们这个呃。呃,这就在我们这个问题里面。

如果说你每一个简单的函数FI就是我们说你要你和一个复杂函数的时候,如果你每一个简单的FI。它都等于呃都是一个线性函数的话,那你这个这个符合函数,它就还是一个线性函数。啊,那你这个就是说如果你。

用这种方法去做的话,你就无法得到一个呃非现象来说。就如果你想拟合的东西是一个比较复杂的。打比方说就是不是太复杂,就是一个抛物线,就是一个多样式,多样式函数吧。如果你这个。呃,每个小的家伙都是现函数。

你就做不到?我我看一下这里好多问题。我们刚才看到好像。我看到这个录屏。我我看。嗯,好像没问题。那继续啊呃。就是说它不能都是线性函数,就这些函数里边必须要有一些非线性项。就你这每一个小函数。

就别说所有的吧,反正是至少这里边某些,你必须得是非线性来说,你才能达到你这个目的。好。那一般而言呢那就是我们这个逻逻辑结构呢,就是右边这个样子。

就是说比如说我们输入输入输入是这个X1X2这样的是一个向量。那我们第一步。Fle。我们这个我们这个写法这个符合是F一符合是F2啊,就是先把F2作用在这个X上,然后再把F一作用在他们的结果上,对吧?

那第一步是什么呢?就在这儿就是说嗯。你先有一个函数,把这X1X2这个向量。嗯,嗯不。那我就不在这上画,我们那个还是在旁边那板着话。就是说第一步呢,你用1个F2把这个向量并射到上面的向量,对吧?然后呢。

第二步你再把这个F1纵在这两这个向量里面得到一个Y,就是说两步,第一步,第二步这个W这个你就共管。那一般而言呢。我们就前面这这个这个这个呃。这个步骤哈就是说呃后包括后边的步骤。

就是我们一般而言都是先给它做一个性性变换。就是线性函数把它变成一个数字。就是说怎么得到H1呢?我们先把X1X2乘以一个。这个嗯。对H1吧。现算什么呢?它等于G乘以这个。W11。X1。加上WB2。

X2加上。B一吧这样。就是说啊我们先把这个呃这个向量做一个仿射变换,就是说线性函数得到一个数。然后呢,在这个数基础之上,我们再给它符合上一个G。就是说前面这部分是线性,我们说了。

我们必须要有一个非线影象。那这个非线影象从哪来呢?我们通常就把它集中体现在这个G上,那这样呢就比较简单,就是说你这个形式比较简单,你主体上是一个就首先你是一个线性函数,对吧?然后呢。

你把那个所需要的复杂项放到这个G上,你这个G呢,你肯定也是我们说了,我们希望这每1个FI呀还是简单一点,所是G呢也不会是特别复杂。就是说他要有飞线性象,飞线象。是这样一种,一般来讲是这样做。

那这是一个那如果我们这样做,就是说啊前面这部分它不能体现出太多的信息,它能体现出一部分。但是这个非线性项是聚在体现的。我们管这个G就叫做激活函数,就它是干什么呢?

它就是在这个我们训练模型当中引入非线性项目。他起到这个作用。就是在他引入的时候,他是干这个事。所以说这样大家当看到那个啊机油函数的时候,大家可能会问,你为什么要设计成这个样子?你设计成一条直线不好吗?

那是不行的,必须要这个它必须得是有非线性。好,大家的这个问看有没有什么问题?就这个其实就是这个所谓的深度模型的一个基本结构。就是说嗯。这嗯讲到这里吧啊,就是说。你一旦有了一个架构以后,你看你有输入。

然后呢,这每一步就是你先做这这个每一个比如说H,你做个线性变换,然后线性线性函数,然后符合上一个机构函数,然后这你得到H1H2,你就得到Y时候呢,你就把H1H2又做了一个线性呃线性函数。

就是小W嘛就线性函数。然后呢,做完之后你再符合上一个那个机构函数,你就得到一个Y。如果你有输入,你有输出,这里边这些W们。和B门还有一个G。是你不知道的对吧?他们可能是由一些参数来决定的。

然后你希望做什么事情呢?训练的过程就是调整这些参数,使得你这个结果Y是你想要的Y。就这个意思啊,就是说啊如果你这个。比如说你这个X1X2它是一个二位向量了。你可能比如说你这图片的话。

可能是这个呃比如说256乘以26的啊,也就是一个呃。这个呃4万呃5万,就反正是几万维的这个向量,对吧?那个向量呢,你用过去,你就得了个Y,你这个Y想知道什么呢?

你说你想知道是我这个图片中是不是有一只猫啊之类的,然后。那你这个Y如果是那种情况,你这个Y大概就是一个概率对吧?它这个有猫的概率没猫的概率对的,然后这是分类性,然后。

你要希望你的这种预测跟那个因为有监督学习嘛,我们这个情况一般都是。你知道那个呃那个图片事实上有没有网你知道的是吧?然后呢,或者在哪个位置,有往,你也知道的。然后呢。

你希望你这个你这个学习出来的Y跟你真实情况越近越好。那什么叫越近越好呢?那你就需要设计一个这个损失函数,对吧?你就啊那个损失函数越小,它就跟真实情况越近,所以就变成了一个你想你有好多好多参数。

然后你有一个损失函数,你做个优化,这不就是一个积极学习的一个基本的思想。好。大家这个地方还有没有什么问题?好,我们继续。啊,这个对,就是我们提到说这个模型的训练。

模型的训练呢就是说通过调整简单函数的这些se塔。我们刚才说到这个我们刚才这个例子里边啊,就是WB,然后这个呃还有包括G里面的一些参数,并称为这个ze塔这个。我们这好多个C塔,对吧?你看这个啊。

我们N个N个N层嘛,就是每一层把所有的那些参数都放在一块,叫做C大N啊,就这第一层叫C加一啊这些东西。你把它叫做一个。这是个模型嘛,对吧?好多参数的一个模型。那对于每一个数据题呢。

我们就可以定义它的损失函数。我们就是也甭管这损失函数怎么定义的。这个我们呃当然有一些常用的定义方法,就是对于呃比如说呃我们经常经常喜欢使用的是一种极大自然估计的定义。就是说呃我们最后估计的呢。

其实是这个。给定X的时候,这个Y的一个比如均值。之类的对吧?因为你有的时候你给另外X的Y也不是固定,对吧?那。它是个概率分布。然后呢,那你怎么办呢?你你如果能找到这概率分布的这个期望那点。

那不就是一个比较好的预测吗。呃,之类的这这种事情。嗯。那我们其实很多时候是做这种事情。那那个呢呃这个损失函数啊通常是一个这个交叉商,大家。呃,这个地方我们就不细讲了,就是大家可以如果有兴趣的话。

如果不了解而而且有兴趣的话,可以去这个鼓励大家参加一下我们的课程。深度学习的课程下个礼拜开始。会很详细的给大家讲解这个啊深度学习,深度学习里面这些模型,不同模型啊,这些各种不同的设计。他是为什么这样做。

然后具体怎么实现,还有很多代码都给大家讲解。嗯。然后。我们这个损失函数啊,它其实你可以认为就是说来描述参数se塔在数据集X上的表现。就是说你这个se塔是不是很符合我们这个数据集,因为你不同的数据集。

你可能会得到不同的s塔,对吧?那我们这个数据集呢按数应该体现出我们当前所要研究的一个问题。那那如果在这个数据影像表现的好,那我们认为他的这个问题上表现的可能也比较好。然后我们就去机器学习嘛。

我们有很多这个啊交叉验证那种structization的方法去去研究这个东。那么。训练的目的呢就是找到合适的推塔来最小化这个。那常用的办法就是这个随机提除下降法。我们上节课讲的我们上节课讲就是说。

那分析了这个这个SGD的各种变种,对吧?比如说呃这个随机梯度下降啊,它这个。首先你要对七度进行计算啊吧?然后呃你要是这个样本非常大的时候,你的计算首先比较复杂啊,所以说怎么办呢?

现在通常的做法是用这个小批量。的这个随金气度下降,这是每一次当你需要计算梯度的时候。你不用把所有的样本都拿来算,你就这个拿出一部分啊,几百个是吧?或者几十个啊,你就是说在这些样本上,你这题度是多少。

你先给他走一步。然后下一步呢,你再再拿出另外的这几十个样本出来。所以这几十样本呢叫小批量。嗯,小P的好处就是说算的比较快。嗯,还有一个好处就是说它这个。其实说它噪音比较大了。

就是影响你每次只只看这一部分。你那这个结果就是说它可能会跳的比较厉害啊,就是说因为你随意梯度下降,呃梯度下降这种办法,有一个缺点是经常会跑到那个局部极小值。尤其是在我们这个飞徒的情况下,对吧?

那如果你要是这个小P量的时候呢,它可能会引出一些。不确定性比较大一点啊,他可能会帮助你跳出这个啊就会纪要。这是一个好处。然后。但是他也有一个问题,就是说嗯你不知道自己的这个学习率应该怎么选,对吧?

所以我上上次上次课讲的这个好多个变种,他们主要就是集中在如何让这个算法可以自动的去选取一个学习学习率,或者自动的去有一些预见性啊,然后让它这个或者自动的去调整不同的参数更新的这个频率和强度让他这个。

比较快的收敛,就是说我们要这个这个里面有很多的技巧。那。具体到这个问题而言,比如说我们抛开那些技巧不说我们这个复杂这么复杂的一个函数,你看好多个函数嵌套。当我们训练它的时候,我们如何去得到这个梯度呢?

对吧怎么办?那实际上这个地方。比如大家如果数学熟悉的话,就知道这里面我们可以用一个这个练式法则。就是说如果你对一个嵌套的函数,比如说你要对这个西塔一求导的话,因为现在不是X是固定的啊。

西塔是不固定的对吧?你知道C塔一求导的话。你就等于是。首先对这个外边这个大F求一求导,对吧?然后对这个里边那个小F求导的时候呢。这些跟四亚一没关系,所以它是个常数,你放着就完了。

然后这部分跟四亚一是有关系的。所以说你对赛亚一求导啊,成全就练式法德,对吧?如果你对CR求导呢,你就得先对外边这层求货导C一求导。然后你再乘以这里边这个这这这这部分扯导,这部分呢。

你会发现它跟上边这部分它是一样的。所以说你做计算的时候呢,你你并不需要这个比如你算C2档数的时候,你就不需要把前面这再算一遍。你可以这个拿一个一内存把它存起来。然后呢,你算这步的时候。

你只要把这个算出来。然后把前面两步拿出来乘一下那就行了,对吧?就这样。那么这个。嗯。这个链式法则呢,其其实这个公式呢其实就是会导致我们今天看到的一些问题。因为我们发现这个导数啊。

比如你对其中一个四塔I求岛的时候,它跟这这往前的所有的四塔都有关系。所以前面一旦出了点什么不好的事情。他通常都不影响到后面。啊,这就是我们今天要说的这个啊问题的一个主要的原因。大家有什么问题?好。

那么这个。在这个结构之下呢,其实我们这个就等于是。给我们这个呃深度模型的一个回顾,就基本上就是这么回事。啊,大有同学问说这个四塔2跟四塔一有没有关系,他们俩是就是他俩没有关系,他们就是独立的这个参数。

只是说当你对四塔二求导的时候,因为你这个函数这个形式嘛。你必须先把这个四塔一的这个导数求出来。然后再求这个四塔2这个倒数,那乘全才能才是你这个四塔2就这。才是这个损失函数关于其他二这的导数。就说。

你就在求岛的时候,跟外边这套这个嵌套的函数有关系这样。但他们是独立的参数,就是他们参数之间没什么关系。好,所以说呢当你训练一个呃深度模型的时候,其实它有几个呃就你的训练好不好啊。

你能能做的事情呢有什么呢?其实就是有一个第一个网络结构,就是说你这个嗯。什么叫网络结构呢?就是我们上面这个你可以比如你从这个输入层到中间这个隐藏层的时候,你可以说这个H1跟下面所有的X都有关系。

你你也可以说这个H1跟下面某一些X有关系。然后呢,你可以让这个每1个HE的这个W。就是比如H1的W和H2的这些W,你可以让它没关系啊,你也可以让他们有关系,你可以让他们向等。

就是说你可以通过你需要研究这个具体问题的一些特点,你可以选择你的这个结构。然后呢。还有就是这个呃。参数W和B的初始化。因为什么这个很重要呢?就是说因为你现在要做的是一个呃梯度下降法的优化问题。

那你这初始化要好的话,对吧?它通常而言,它比较容易让你得到一个比较好的结果。如果初始化不好,梯度下降了,就很有可能会给你一个局部极小值之类的。就是说这个初始化。有关系的。然后最后一个呢就是这个激活函数。

因为你看你每一步求导。你对于这个啊。G的每一次求导,你这这个这里边看不到G,那实际上对于每一个小FI呀,大都看到这个G,就是G也非常重要啊。就是这几个东西都会影响到你这个模型的训练。有同学问说。

刚才我提到那个呃小票方法,如何会呃这个。如何会这个避免局部最优值,就这个他就是就什么意思?就那个小PR他。那个那个就是说他噪音比较大,噪音大的好处呢,就噪音大不见有坏处,有时候也有好处。就是说啊。

比如说你这个。这样一个函数对吧?其实呃当你说我们当我们说我们对一个函数进行这个呃自优化的时候,我们这些问题里通常没有一个能写出来的函数,就这个函数是用你的样本对的,对吧?那么嗯。

这个抽象的函数呢通常是那个就我们脑子想一个真实的值。然后你就在你做这个呃优化的时候,通常你你给一个给个样本,那个样本给你的函数可能不是这样。跟那个比较粗糙。涨价。或者是可能这是比较好的情况了。

有可能长成。这样对吧?然后你对这个优化的时候,你当然可能会跑到一个局部教上。但是呢因为你用小P量的时候吧,就是说每一个函数都不太准,它每一个都跟这个有点像。比如你第一个小P项,你那个函数其实是这样的。

第二小P量可能。这样你这个第二小偏项的时候,你你你你优化跑这来了。嗯,然后你要换一个小皮箱,那函数又变了,然后你可能就就往后走,你就不会碰在这。就是这个噪音到底能不能帮助你这个主体确定。

就是说他们有一定的概率可帮。就如果你要是看那个等高线索的话。就是说。有的时候。比如这块有逾据物止。然后呢,那个如果你是那个呃全样本的话,它可能就它走的比较慢嘛,所以一下一下一下一下一下进头。

那小P样的时候,它的噪音较大,那这一下那儿一下这一下那儿一下这儿一下。然后他他他有的时候他就它就它就避开了这个这个就不较。或者说他都快进来了,然后噪音大它不跳左声。好,大家还有没有别的问题?对。

就是说甚至有的时候那个我们上次讲那个STD的时候吧,甚至有的人为了避免这个GB要值,他会在这个。梯度上面直接引入一个人为的噪音,就直接加一个高音高斯噪音进去。然后当然呢高斯噪音呢,它那个强度越来越小。

就是说随着你这个收点的好,它那个噪音越来越小,然后最后这个就能帮帮就是我们上打了个比方,就是说你这个框上面好多土,对吧?然后呢,这个你想那框底是局部消失。那框中间为什么土会粘在框边上的。

因为那框边上不是弯的,对吧?它光滑是滑出来,不是光滑,就是弯的,所以那边上好多都局部消失,那有时候你怎么办呢?你也不可能一个个把它们扒拉下去,你直接踢两脚,那个框上土的都掉到底下。踢掉什么意思?

就是一T一震动,就引容一噪音。然后呢他们就从局部间就跳出来就跳出来,这个意思。好,我们继续。嗯。那我们这节课呢主要是讲这个。我们主要讲那个呃。关于就是由激活函数引起的这个所谓的梯度消失的问题。

为什么几乎函数对会导致这个梯度消失呢?啊,我们看几个例子,就我们看几个这个几乎函数的例子。那首先我们呃就是第一个常用的激活函数,是这个这个函数,就是这个这个函数干嘛用的呢?

就是我们做那个嗯逻辑回归的时候,你会经常看到这种东西。就那个逻辑回归就是在你回一个这样来说做一个分类问题,就是说。当你这个X如果是长成这个标准形式的话,就是说X比较大的时候,它接近于一。

那X比较小的时候呢,它接近于0。就是说你X比较大的时候大于零的时候,那你可以认为嗯。这个呃那个图那个图片里面有猫的概率是这么大啊,当是这个X比如就是快到-6的时候啊,那个图片里面有零有猫的概率就是。

像这样子的。那这个它有一个优点,就是说有很好的这个统计学意义就是说它最简单的情形啊就是那个逻辑回归。而且这个函数非常好,就是计算起来非常好。它的这个光滑可为,而且它导数计算方便。

你不用求导你你只要知道这个函数等于多少,你就可以求出这个导数等于多少,就是这个sigma撇呃这个。一个导数等于这个函数乘以一减这个函数啊,这就非常方便。缺点是么?第一个我们形容后边一个。

第一个这个函数啊,它只能取正值。又不能是负的。所以说这是0到1嘛,对吧?那有同学说你给平衡一下就完了,当然可以了,对吧?所以那个问题还比较好解决。那。还有一个问题,这比较重要的问题啊,就是这个数轴。

它在数轴大部分区域导出近乎一0,这个话说有点绕了,就是说啊。这个函数它的导数。只在这个比如说你看这个图,它从大概从这个负3到正3之间,它导数还比较大。但你超过这个区域之后。

比如说X大于3或者X小于--4吧,大于四或小于-4的时候,你这个函数几乎已经平了。就是这个只画了一部分,再往后都是平的。这也是账前一都是平的。所以说你这个函数,如果你的初始值。

你的X落在了这个平坦的区域的话,你这个西塔撇尔X可就几乎等于零了。我们说前面我们做这个学习过程中,你这每一个。导数每一次求导,你都会出现这个激活函数的求导。对吧。因为这里边好多个几乎函数的导数在里头。

如果说你这个奇函数在呃。你这个取值范围里面绝大部分啊都是零,你就很容易会得到一个。就游其练式法则里,你可能不用得零了。你比如说这个部分它是小于4分之1的,这个部分也小于4分之1,1乘。

那就小于16分之1,对吧?如果你这网络非常深,你想每一个数它都是不会特别大,从哪而从哪而言,你如果网络非常深,有好多好多层,你这里面只要有有那么几层是非常小的,你乘起这个数就很小,对吧?

那样就会导致什么呢?就会导致你这个呃在训练过程中,你这个损失函数的导数就趋于0了,就等于0了就。就尤其是对于这个比较前面的这些层。你对于这个C加一的层,那问题还不大。因为你就是自己嘛,那只有自己。

但你要是比如说你算到C加2的时候,如果在这一块它等于零了,你你你这C代2这块也就是0。因为你你对C2的导数,也是C加一对的导数乘以这后边的导数。尤是对于后边比如说你C100了,对层比较深的。

前面只有有有那么几个不好的项,你这个整个这个成绩就完了,对吧?所以说。一旦要是有某些这个取值啊,这中间的那个呃这个几乎函数的这个呃。这个变量这个X,它落到了这个平坦区域的话。

它就会影响到你这个你这个训练,对吧?你这很多。那个其中里面很多项就没了,你就新成不了了。所以所以他主要是啊这个这个是就是啊这个题几乎函数导致的T数消失,主要就是这个原因。那以前我们喜欢用这个函数。

这个函数缺点什么?就是它它绝大部分都是正常。就以说为了解决一个问题呢。我们还是可以。Oh。是一些其他的函数,那是啊当然我们这个第一个变种啊,这个呃双曲双曲的这个tangent这个函数呢。

他其实那个差不多,它的好处就无非就是说这个啊。这个正负都有了,这个正负是对称的。然后呢,但是还是有这个问题,就是说他这个。呃,几乎。绝大部分都是平坦的,所以他还是有这个问题。

然后这个比较好的解决刚才说的问题是什么呢?这是这是一个现在比较常用的这个激活函数,就是说这个阶段的一个线性函数。这个RE是retified,就是截断的那种。然后L是 linear的意思。

这个U是 unitit就是我们这个旋经元嘛,这个U是单元的意思,就是这个是。阶段性函数。啊,这个函数它是怎么样的呢?它非常简单。它是一个分段的线函数。当X小于零的时候,它就是零常数。当X大于零的时候。

它就是X就是个。简单这样说。啊后这个函数呢它导数计算非常方便。因为你在这个做训练的时候,你要无数次的去算这个导数。然后。他这个嗯还有一好处就是说这个在很大的范围内,这个X导数呢得都是一。

那这个是个好处了。然后那缺点说了,就是说他只能取正治,不能取副职。那这个只能取正直。为什么不好啊?就是给他给他稍微。稍微说一下。就只能取证治其实不好的。就是说它可能会导致你这个训练找不到最优的方向。

就是说。打有说呢?如果你训练的是这个一个这样的函数啊,就是。F什么。W1X1加上哎W2。X2。呃。这样一个函数,就是这个呃西格玛嘛,就刚才那个那个基有函数对吧?那。然后这个XEH什么东西呢?

X一可能就是一个sigma of这个什么嗯。WE调查。这个万一这个。有异。加上W2车他。之类的,就是说它是从下一层传上来的。然后因为这个X1和X2,它都等于这东西。

X1X2他们都是这个某一个西格玛的取值,所是他们俩个都是正的。那么在这种情况下呢,你当算最外面这层的时候。你在这个车道。这点什么呢?它等于这个平圆斜方撇对吧?乘以这个X这样。然后另外一个就是。

那这样的发现什么问题呢?就是说你的梯度它这个W1和W2关于W1W2的梯度,它永远都是两个正数。这样都在。那也就是说你只能沿着两个方向进行学习,就是你只能往哪个方向走。所这是W一,这是W2。比如说嗯。哎。

我这个例子举的是不是不是特别不是特别好?嗯。我一下子有点想不起来了,但就是说这个什么意思呢?就比如说呃如果要是这个你对他的这个符号有限制的话,那比如这个情况。但是但是这个意思就是说。

你就只能呃从一个点出发,你只能往右走或者往上走,对吧?你没有别的选择。那如果说你这个现在一个最优值在这儿,那你这个训练的时候,你怎么办呢?你就不能往下走了啊,这个可能我说的还是不太对劲啊。

但但就是说呃你就无法沿着那个最优的方向进行进行更新的参数,你就只能是呃走这些折线,但是那个就不太好啊,就是就这是这个如果你这个参数,这个取值只能是正的,不能是负的,会造成这样的问题。

但是哎这个我回头那个我下课之后给给大家这个写一个。好。啊总之呢就是说如果你这个指正的不能负的,这不是很好。那这个。啊,这个这个我们这个细节我们就那个下周再说啊,这个我刚才下弄好,大家不在这里。

我们先不在这个地方耽误时间。嗯。然后那我们改进它一下怎么办呢?就是说可以把它稍微动一下。就是说嗯刚才那个RELU这个这个就是截段的这个现象线上的这个函数跟这个。跟下面这个比。

就是说我们把它稍微往下平移一点,我们可以直接平移一点,就是这个直线下来横过来也行。然后呢,那样个缺点就是说你。你看我们之前说这个函数不好的地方,在于它比较平坦,地方太多,那还是比较平坦。

那刚才这函数呢在这那就不是比较平坦了,它就直接就是平了,对吧?就是彻底是平的。所以说你一旦要是那个呃呃它这个输入输入值啊落在这个点的话,它那个它那个梯度就不是说小的问题了,它就是等于零了。

所以说那样的话就也非常不好。它可能会导致你某些神经元直接就死在那里,对吧?那。那个为了解决这两个问题呢,一个问题是它没有负的取值。一个问题是它太平了。所以说引用这样一种函数。

就是说它正的部分还是一个线性函数,负的部分呢它下来了一点到负的方向。对吧但是呢它不是直接变成零的,它是缓缓。所以说就有这样一个,就是左边这部分是一个指数函数。当X区复穷的时候,他就。

我们这个情况是负一朗其应该是阿法。负杂阿法啊,当这个X代于零的时候呢,哎这就是一个X,就是一个简单的现象函数。那这个函数呢还是一样的,就是说它导出计算也是比较方便的。那这个呃函数在正数的范围内呢。

找转一就这个是好的,就是说因为呃。他不太容易。产生这个梯度消失的问题。而且这函数呢取值还有正负。当然一点啊,它必须得是一个非线性函数,就是他我们我们当然希望它线性的部分多一点可能比较好。

但是呢它必须得有非线性的部分。如果没有的话,你就白搞了。刚才说了,那个你这个整个这个网络就就多层网络就变成一层网络就没意思,对吧?就是一定要引入这个非线性部分。好。

这刚才同学我问说那个呃WX加B已经是一个线象函数了。为什么这个激化函数里面还要加入这个很大的一个线象的部分?就这个地方啊,就就说我们是。因为必须要引入一个非线性的,才引入这个非线性的。就是我们刚才说了。

为什么引入这个呢?是因为你要只估计一个复杂函数,你必须得这样做。嗯,这个线性部分越多呢,其实就是说你这个你想这个激活这部分是干什么的?就是你前面的输入一个X,然后你的X越大,你希望你这个激活的值也越大。

你来越小,你希望你的激活值也越小,就是它要体现出你输入那个X的性质。那你如果要是直接就是Y等于X那是最好的了,就是你不就直接体现的性质。但那样不行,就是它是没有非线性部分,所以必须引入一个非线性部分。

那这只是一种引入的方法。好,对。那么那实际操作之中呢,就是现在我们。比较常用的啊,就是说你可以用这个ELU,这个是exential linear unit,就是说左边是指数的,右边是线性的。

合在一块儿叫做explanial linear unit。然后这个还有这个这两个都是比较长。是吧。一般来讲,可能认为下面这好一点,但是。再稍微复杂一点,那计算下你看三个指数,对吧?

就是说有可能用上面那个更更简单直接。然后我们刚才那个啊这边这个东西我这个下课之后再给大家看。这个不是举证惩罚,就是数字惩罚。好,大家还有没什么问题?好,那这个。我们已经讲到这么多几乎函数了。他问我们说。

只要他有。这一片比较平坦的区域,它就有可能造成我们刚才说的这个梯路消失的问题。那但是这个东西好像也不可避免。就说嗯。如果你没有这个平坦区域呢,它其实还有可能会造成那个提头爆打的。

就是说嗯因为你这个训练中是有噪音的嘛,有的时候你会。就是那个呃。那个X值可能会比较比较疯狂一点,他可能跑到这个负的很多。然后如果你有这个平坦区域呢,他可以把这个拉回来。是这个意思那。那么。

既然说你这个机乎好像数不可避免的,会有一段频坦区域,然后这东西确实会造成梯度这个消失。那我们怎么可能还有什么办法去避免这个问题呢?那一个问题一个方法就是说什么呢?如果你的这个。输入X值。

它是集中在X等于零附近的。如果它是一个,你可以把它看成是一个随机变样,对吧?因为它是每一个样本来了之后,你都会算出一个不同的X。那。如果说这个随机变量,它是它这个分部,它是在这个零附近的。

那样是比较好的,既有非线性部分,又有,而而且它又不是特别的平。然后呢啊它又占了这个线性的。就对于所有的这个几乎函数来说,如果你能做到那一点,那都是比较好,对吧?那怎么才能做到那一点呢?

因为你在训练过程中,刚才我们看到这个网络的形式啊是这样的,就是你可能有很多很多层的网络,比如两层的这种情况。你输入一个你这输入的X,你是可以做这个啊规一化的。就是说我们通常做训练一个模型的时候。

我们会把我们输入进行规一化一下。就是我们最简单的模型,就是说那个线性回归。我会把每一列都变成一个嗯标准化,对吧?就是那个以零为中心,以这个一维洗一维起这个这个方差的一个。响量,然后呢。然后呢去做训练。

我们可以做在第一层。这个输入做这件事情。但是一旦他进行了一次映射以后,这个H。他可就不见得是满足我们刚才说的事情,对吧?我们好多样本,每一样本都算出一个小H是一个向量。那这一堆H他们会不会形成一个呃。

这个以零为中心,意为这个。啊,方差的一个随机变量呢啊,我们都不知道了。然后如果你层数越来越多,你就更不知道了。就是他可能。就是你前面的一点微小的变化,对后面就会产生很大的影响。对吧?就是说的忽略效应。

你程序越多,它像移动系统一样。就会产生这种现象,那这个怎么办?那这个就候也是我们下面说的这个问题了,就是说我们要做一规划。刚讲那个之前。我们可以给大家稍微这个。推荐一个课程。

就是说啊我们最近我看这个是什么时候。啊,这也是我们最近要开的一个线下的一个积极学习的训练营。这个大家可以有兴趣看一下就是。你只要在这个PPT里边点击一下这些这个页面上这个图片或者上面这个东西。

你就可以看到那个。网页链接了。就是。它有一个特点就是说从零开始,然后用一个比较集中的时间,几个月的时间给大家做一个训练。就是说你可以只要我想知道知道基本的数学。然后我们这边的资源就可以帮助大家。

我们有这个有项目的实训啊,有这个我们可以涵盖所有进行学习的重要知识点。然后们包括我们很重要一点,我们可以提供这个GPU的云实验平台。这个是现在可能国内只有我们在在做这件事情。

甚至可能别的国家也没有做这件事情。嗯,对。然后包括最后的这个面试的这个辅导和就业推荐。呃,基础的话,我想这个基础。我们说零从零开始嘛,就是说不需要不需要很深的这个基本功,就是说。基本上你只要。

就是咱们大学学过这个大学的数学,就是微积分现代数。应该就可以了。那即便那个不学可能都没问题。因为我们是有数学课。对,就不需要特别深的。因为我们现在呃这个积极学习用到的数据也没有特别特别深。

就我们今天要看这篇文章吧。哎,他多少用到用到一点比较深的数学,但他那个证明等会儿我给大家说,那个证明非常的奇怪。那个是我见过的最最奇怪的数学证明。好,那这个推荐就到此为止。嗯,这个不多说了。错。那个。

对,就是我们。下半下半节课。就主要讲这两篇文章的一个中心思想,一个是偏量规一化的思。还有一个就是我们呃最近这篇文章这个字规一化的这思。我们可以先稍微休息几分钟,我今天这个嗓嗓子不是很舒服。休息5分钟吧。

然后我们再继去继续开始讲。好,我们重新开始啊。喝点水之后,感觉感觉感觉就好多了。嗯,我我这个想起刚才这个地方有什么问题。是不是?我稍微补充一下。就说这个我们不是说那个你对W1W2求导之后。

你慢都是正的啊,你发能往这个方面更新。其实不一定,就是说它这个对WEW2求导,它这可能只是一个中间层,它前面可能还要成立一个东西。就是说我们刚才看到那个求就这一页吧,你求导的时候。

比如说你对中间这个CR求导吧。这只中间一层,前面还有一个数啊,这个数可能正也可能是负的对吧?但但是如果你这个呃schema长成这个形式的话,不管前面那是正还是负的,就这两个数,它俩肯定。符号相同。

要么都是正,要么都是负。就是现在情况,如果前面啥都没有,那他俩都是正的。如果前面给你一个负数的话,那么他俩都是负的。所以说你这个在参数更新的时候啊。只有两个方向可以走,只有两个区域的方向可以走。有。

只有两个方向,这个区域的方向可以走,一个是往这个方向走,一个往这个方向走。当然如果你这个最终最优值在这儿的话,你就怎么办呢?你也能你也能到,就是说你可以他就会这样走,这样先走一步,然后再这样走一步。

然后可能又往下走一步,可能这样走一步,然后这样走一步。就是说他要走一条折线。对吧他只能往这个方向或这个方向,它不能往斜着走。所以说你这个更新呢就不是一个最优的办。如果要是你既有正的,有负的。

这个所有方向都有,你能直接一步就到。这个意思,但这个不是一个特别严重的问题。就为他主要是因为我们前面说这个激活函数的这个。只能取证或只能取负造的。只要这个东西稍微平移一下改一改就行。好了我们这个。

继续啊继续这个。讲上我们今天的这个主要的内容。就是两种思路,两种不同的思路去解决我们前面提到的这种问题。好。第一个就我们前面说到了,说如果我们的这个呃激乎函数的输入。他是一个比较稳定的状态。

就说他是一个比较好的这个概率分布。比如说以零为中的嘛,是最好的情况吧,以零为中心的。然后以一个比如说意味这个放差的这样的分布,那么它基本上不大会产生这个。就是。T度为零的情况。

那如果要是它就是说它也是个分布,但不是像刚才说的那情况,比如说它分布在这儿了,对吧?它比较稳定,其实也行,就是那说明他可能就是应该分布在这儿。然后呢,它这个T度等于0也是应该的那也可以,其实也挺好的。

那如果它分布在右边,它的梯度就是不是这,那也也也很好,就是说不好的什么,不好的就是说它一会儿在这儿一会儿在这儿。如果他那样的话,会会怎么样呢?如果他一上来就在左边。那些参数系度啪就是零了。

它一旦是零了以后,它就永远都是零。在几乎留远那聊,因为你我们说了。就是因为这个公式原因啊,就是说如果中间某一个参数西塔的那个呃梯度是0,那么它会影响到它后面跟它有关的所有的那些。节点那些的时经源。

那它就会可能导致后边所有那些节点的神经员呢,他们的那个参数都不更新。他们一旦不更新,你现再来的说候还是刚才这种情况,那还是不更新,总也不更新。那你这个我现在实间不好,但是。

所以就取就就跟你那个初这个问题的初始化就非常有关系了。你初始化不好,一不小心就会导致这个问题,对吧?就是说如果那个呃你这个输入值的这个分布啊到处候乱窜的话。甚至是可能比如那个啊。他的那个风差大一点。

放声大一点可能问题不大。就主要是那个他如果要是呃串就是那个均值,就是串到你那个平台区域的话,它就会导致你这个神经元一旦瘫痪了以后就再也起不来了,对吧?回答这个问题。所以说如果我们能让他这个分布比较稳定。

哪怕是稳定在这个平坦区域了,那也是因为它应该在这儿,那也行,对吧?那。可能会好一些。这个这个这个这个这样的问题。那么怎么样才能让你这个。神经元的这个输入,它的分布比较稳定,就是你层次越多啊。

每一层的训练都会受到前面那些层的影响。那。每一层的梯度都跟前一层的输入有关系。那这样的话,比如说这个C大一的梯度,它是与这个CF2的输入有关系的。

这个C大2的梯梯度呢跟这个F3的这个输入也是有关系的那如果要是。我们能够让这个输入。稍微这个稳定一些,就是说它得到一个稳定的分度,那就好,对吧?那一个最简单直接的办法是么?

就是说啊我们对这个做小批量随经系数下降的时候,我们每一个小批量给我们。都是比如说你小批量也有这个100个。样本。那么你每一个学员都会被计算100次,你会得到100个数,对吧?那你就会得到一个。

长度是100的一个向量。那这个向量其实它就给了你一个大概的分布,对吧?那每一次你会找到一个分布,我们怎么做呢?我们把这个分布进行一个规划。就说。你的时间员。比如说我们前面这个。我们还要那图看。

比如这个H是吧?在一小批量B里面。首现有小脾样病。它等于这个S1到S小M。这每1个SI呢。都会得出1个HI的值值,对吧?还行。没啥。然后我们。怎么做呢?我们把这个HR。我们不是得到一一堆嘛。

它有它是个分布,我把它给规划一下,我们做这个H这个I height等于什么呢?等于HI。减去这个。H化。然处理这个什么。下的这个。Vage。加上一个参数,加上一个常数,这常数是为了万一加上等于0的话。

你这个这个除罚就成立了,再加上一个。就是说你把它给规一划一下,你把这堆H可能他们集中在。他们可能产生这样一个分布对吧?我们把它规一化一下,这是H分布,把它变成一个。H hat。原这。

然后我们试图把这个H再输入到下一层里面去。这样的话,下一层这个输入不是就得到一个很好的控制了。我们想这样做,对吧?但是我们刚才说了,那有的时候他这这是我们想避免的是那种意外的,他跑到这个呃平台区域。

导致你这个声经员瘫痪。但有的时候你这个训练过程他就应该到那去,那怎么办呢?那不是就你你这不是把我们训练那个功能给取消了吗?就是说我们的训练。这H的平移也是我们这个训练部这个这个功能之一啊,对吧?那。

那么们怎么去避免这个对原来训练原年原来这模型的表达能力的这个损害呢?就是我们。在做完了这个标准化之后。我们再给他加上一个。我们再加上一个这个方式变换。就说。我们真正传到下一层的不是这个。嗯。

真正传到下一层呢是这个。我们把这个东西贝塔HH。嗯他。把它传了下。就说我们做件什么事情呢?我们等教育在两层网络之间插入了一个线性层。呃这是刚才那层。这是下一层。正常而言,我们是这样。进入一个U。然后呢。

他出了一个X。然后呢。进入他这里,然后他在个下下一步。我们这char一层。把这个X。But it没X。有白个X。变成了这个。Expect。然后又变成了这个。我们这里写的是Y,其实这个Y不太好。

因为最终也是Y的了,就变成了个贝塔。X right。我们刚才说了,在这个训练过程中,这个激活函数啊,它不能是线不能是一个纯的线性函数,它应该是每个里面都有一些非天印象,这样才比较好。

那个因为那个部分才是让我们来估计复杂的作用。所以说中间加入个线性层嘛,它并不帮助你,也不减弱你对于那个复杂函是。他只做了一件事情,就是把你这个东西给更加规范化。

因为每一个不同的这个成员都有一个不同的规塔。然后你把这堆东西传到下一步去。然后这贝塔伽啊什么的,他们也是参数,就是也是你这个模型训练的参数。一开始你也不知道,你可以给它初始化一下。

比如你贝他这写成一伽马选成零啊,这这这你就初始化,但是。就像刚才所说的,如果你那个呃他就应该。不在零个附近,因为它就应该平移的话,那你在这个训练你这个模型的时候,那个呃损失函数会告诉你。

你的伽马不应该取零,应该取一个正的数或者一个负的数,你就可以得到它。对这个伽马也是训练参数之一,就是你在这里面插入了一个线性层,那这样为什么比一开始那好嘛?你就说那我这个好不容易从那个平坦区域移回来了。

你这不就移回去了吗,对吧?它的好处就是说它这个贝塔伽马是你训练,就是不断的训练训练出来的。它不是一个呃由于这个。不好的数据造成的,也不是由于你这个由于样门这个小取太小造成的,它是你训练出来的。

所以它是比较稳定的。如果这个贝塔 gam告诉你应该是那个平台区域,那你就应该去。但是你刚才那个如果要是。呃呃,由于一个小批项给你,就是比如第一个第一次迭代来一个小批量,你这X直接都在。

这事儿是随机产生的,它不是你这个模型要求的,你就是在那了,然后你的新经源就启动不了了,然后你就没法训练,对吧?所以说我们在这加一个性性层呢,它就可以有效的避免你刚才说的这种现象。他就可以。第一。

可以有效避免啊由于这个随机性产生的这个呃。规定完对吧?然后。而且呢它每一次传递给下一个神经元的这个输入,它会是一个稳定的分布,而不是一个跳来跳去的。这个事情对于下一个新经源的训练也是有帮助。

就是说啊我们通常说做一个训练模型的时候,我们都想把数据给它先规范化一下。我们不希望它太乱,对吧?也是这个原因。那我们在训练过程中,这个分布如果来回变。那你下一个新经神经源的输入总是一会儿这个分布。

一会儿那个分布,那你这个训练来,你这个参数不是也就就总是乱挑乱改,对吧?也是不好。啊,所以说嗯这个他达他主要是达到两个目的,一个目的是呃让这个。到下一个星经员的分布比较稳定。

另外一个目的呢就是说它稳定同时,它很多情况下也避免了那种。就是皮消失问题。好,这个地方有没有什么问题?呃,有同学问要不要录像,这个我们有录屏,然后等那个下个礼拜二或者是礼拜三,可能是大家会看到那个视频。

啊,我们这个部分讲的就是这个所谓的批量不一化这种方法,它的一个主要的思想。就那篇文章非常短,那个文章写的非非常的漂亮,非常清楚。而且我们也就大家有兴趣的话,我们也是尝试做了一个翻译。

就是说如果大家英文有问题的话,那大家最好还是看原文吧,这个翻译的呃质量就是我们毕竟花的时间也比较少了,这个这个不一定特别高,大家是做一个参考。好,大家还有没有别的问题?哎,对。

有朋友问说这样的训练速度是不是变快?是的,就是说。第一个,如果你要是能够一定程度上避免这个呃梯度为零的这个问题的话,你的训练速度就首先会变快,对吧?因为你躲开了一些个局部计要值,确实说白着。

那些局部基要值呢,它不是模不是这个问题本身给你的,是我们的模型选取,我们自己人为搞出来。那些东西当然不好的了。那我们避免了一些那种东西。那这个模型许练会变快,对吧?

然后还有一个就是说就是也是这个就是说呃嗯对于每一个神经元来讲,它的输入越稳定,它的训练也就更容易更容易受敛。你想他。如果你的输入不稳定的话。你这个每个学员里不是有好多参数嘛,你先来一批谁输入。

那个参数调好了。对于这种输入它已经调好了不错了。然后你啪就换了换另外一种,然后呢他又调一遍,然后又换了,又调一遍,就以他会做很多无用功。当你做那个梯度下降的时候。

我们说我们刚才就是我们有一些嗯为了避免他的不收敛,我们通常会减小学训,比如说减小这个学习率啊,或者我们会呃。随着这个。就是我们上次讲的那个其中有一个方法,什么呢?就是如果你这个参数。

以前那个grreding每次都特别大,更新的也很频繁的话,我们会。给他一个拍上水,让他以后更新能慢一点。然后呢,让对那些以前更新的少的,我们让他更新的多一点。就这种是对于这个比较spae的 data。

所以比较勇。但是你要做这种事情呢,你发现问题。比如说你对这里边这个参数进行更新。有好多时候你做的是无用功。但是它会被记录下来,你知道更新了,然后呢,它就会自动的让你少更新一点。就是你因为做了无用功。

而导致你后边一有用功都没都都没有这个呃权重去做了。那你不是会减弱你的训练,对吧?总之就是如果这个输入不稳定,你会造成很多不必要的这个麻烦,你的训练就变化。所以。这个批量规一化呢。

它就可以有效提升你的训练速度。然后对,然后刚才同学说那个这个贝塔是怎么训练出来的?就说。😊,你说这个。非常刚嘛,因为因为就是你如果把它理解成是一些中间层的话,就好理解。比如说。

以前这个从U到X是比如这啥呀。そう。丢对。FNU。F加1。对吧。本来应该是U变成FN,然后再。所以。通来N等X再通YN加1。变成后边有个Y。我这腿哎不要害怕,是对了,因为我刚那个。ZZ你这样。

那现在呢怎么办呢?现在是U通过FNN对X,然后通过这个中间这层这个我们把它叫做。止赢了。70变成了这个Y。只Y等于贝塔X加上贝塔X派t。加上加码是吧,然后呢,再通过这个。

变G就是它变成了一个多一层的负函数,对吧?就是这个函数变成了这个。FN加1FN。X。然后符合上个P0。再符合上1个FN。加一加。等于这个问题。然后你对这个Z,你要对这些参数求导的时候。

你就G不是也其中一部分嘛,你当然就可以对伽马求导对贝塔求导。然后你做那个梯度下降的时候,你就把把伽马和贝塔一块给训练,就是它是。就是你这个G的这个它。我们其实它是一个规划步骤。

但是呢你在做这件事情的时候,你可以把它理解成是。插入了一个线性层。然后你这个所有训练呢还跟以前一样,因为你不是多了一层。就这一层不是拿来训练模型的,这一层是让模型训练更稳定。啊以前有一个比方。

我觉得特别好就是。如何去理解如何用比较直观的方法去理解这个P量呃规化。就说啊。就是这样一种说法。就说呃你可以认为这个是好多人在传。好多个人。每一个神经城都是一个人,每一个神员都是一个人。然后呢。

你输入一个信息。比如说这个人看到了一堆东西,然后他把这个信息就告诉第二个人。然后第二人做一些处理,找第三个人,这就在做处理,就是每一个人都有一个任务,对吧?能够做一些处理。最后一个人做完之后。

你就得到结论。因为你通常我们做一个复杂的事情,确实是要需要很多人做这种事情,对吧?一步一步做一步。然后呢。有一个什么问题呢?就是说。这些人呢他们说话学口音的,你打电话是吧,打一个电话。

每两个人之间说话都是有口音的,或者说这个信号呢这口音嘛,就是每个人说话有口音的。所以说这个人他说了一顿一堆话,到第二人的时候,他一开始就说四川话,然后第二个人他反正也经常听四川话他有个熟性。

他不知道然后他就不知道怎么处理了。这话不好穿,但问题是什么不好呢?那第一个人一开始就是四川人。然后等进入下一次迭代的时候,比如说你每一次提不是一小批量进来了。就下一小批子,特又变成河南人。

然后他说河南话了,然后又又他又变成北京人了,就说又说北京话了。所以中间这个人呢他就得不断适应前面这人说的话,他一会说四川话,一会儿说河南话,他说什么话特恶调整一下。调承成我自己的语言。

比如他可能是一个广东人,他把这个四川话先翻译成粤语啊,然后做处理,成为下一步。然后他还得做一套这个把河南话翻译成粤语,再再处理,再到下一步。那更可怕的是,他根本不知道前面的人到底会说什么话。

他也得做判断啊,这个东西就很混乱。然后偏M不一块干什么呢。就是说啊呃大家先你不管你说的什么话,你先把它归归统一成普通话。那可能呢你这一步说普通话不太好,你稍微调整一下。

调整一个比较适应于你这这个任务的那个话就是。比如说你这个任务这个用一些这个啊。你的这部分任务啊,比如说。呃,主要是处理这个唐山地区的某事某些事情啊,你这个反正你就用那些当地方言。

但你这个是因为你这个任务产生的,而不是因为你人产生的。所以说你这个就比团长化,但是永远都是团。所以第二个人他只要知道讨人化就行了,他不需要知道别的对吧?然后后面也一样,就是批量规一化就来做这件事情。

中间你可以认为是加入了一个翻译的东西。每两个人应间加入了一个翻译。他把它翻译成一个比较标准的形式,传给第二人。那这个呢又翻译成比较标比较标准的形式传给第三个人。然后每一次你都接到那个标准形式。

你就不容易产生混乱。Thanks。嗯。然后老师他问能不能讲一下这个joout这个哎呀我不是特别熟悉,所以这个嗯。大家可以去关注一下我们的深度学习的课程。这个里面就有很多。专业的老师来给大家讲解。

然后有同学问说。是不是因为数据都分布。变化下算的快嗯。啊,变化小算度快。对,就是说就我刚才讲的这个,就是说你每次都标准化以后呢,它对于下一个神经元的训经有帮助。然后关于学习率。

就是说嗯还有一点就是说就是说如果你能。把它标准化的话,你就可以任意许你使用更大一点的学习率。你不用你不用担心,这没法讲的。你个参数不会到乱调,像刚才说这个就是什么。就是说你那个做了很多不用功的时候。

那个参数他来会乱跳,那个你就觉得这模型不收敛,对吧?所以你就只好去降低你的学习率,那,降低学习率嘛,学习妈了。如果你不用我少子们,你跳的。问跳的少了,那你这个学习学序快一点。

然后还有同学说我不知道这是从哪看到,就是说使用动量法是度过这个停滞期啊,就是说。动量法是我们上次讲的那个频度下降里边的一个技巧。比如说它等于是积累了你前面参数更新的那个一个速度。然后呢。

比如说你到了停止期了,因为你前面不是有惯性嘛,你就冲出去。对我们就不细讲,大家可以有兴趣的话,可以回顾一下我们上次那课程的那个美术录像。然后有同学问说这个卷机神经网络和一般的神经网络的这个呃。

小票这个规划是不是一样,它可能还是稍有差别。因为那个卷型神经网络它是追到这个呃。就稍有区别嘛,就基本上思想是一样的,就是选机新网络的一个特点。什么呢?嗯,你每一个行经源它只跟前面的这个一小部分相关。

而且它还要这个分享这个参数。就是这个神经员,我们只跟前面这两个有关系,这个呢跟这两个有关系。然后。它等于前面就比如说第一个减第二个,那它等于这个的第二个减第三个,它是分享参数的。

就是说只是你在做这件事情的候,你要注意到这些。啊,这个文章里面其实他是把那个转接视经网络单体来写了一下。大家可以有兴趣看一下,我们也有也有翻译的部。嗯,对,就是关于这个转机神经网络的。

大家都可以再去看一下那个呃文章里面的细节。好,还有没有其他的问题?好,那这个。我批量规化这个方法就是说。我们总结一下。就说。我们那个贝塔伽马。它是作为这个学习的参数,呃理想的情况下呢。

它肯定在训练过程中也就逐渐趋于稳定。就是这个翻译器啊它就逐渐稳定。那。啊,所以每一个神经员接收到的输入呢,就会趋于服从一个稳定色。呃,这个。它的好处是什么?第一降低了这个这个词,就斜变转移。

就是说什么叫协变转移呢?就是说这个人一会说四川话,一会说河南话,这个东西叫协便转移。就降低了模型训练中的这种现象。啊,那防止了由于数据噪音造成的这个提库消失。比如说你这个东要跳到那个呃平台区域了。

然后这个提库消失了,然后你瞬应该死了。这是他防止了这种事情。但如果你是员训练到那一步,他就应该不应该动了。训练好了,他应该就停了,那也行,那也是不是什么坏事。但不应该是意外造成。然后。

而且它还保有了原模型表达能力。就是说有这个贝塔伽马的话,这可以保有原模型的表达能力。如果你没有这个的话。你就简单的把它规一化,那不行。比如说你。就是说你训练的过程中,比如说你要是这个贝塔伽马。

你写成固定的值,那你这个训练过程中你就没法得求到。就是他本来应该把伽马的挪一下才比较好,但你现在挪不了了那。没事。就是他把这两个作为学习参数啊,这是一个比较好,这是一个非常好做。那我们就。啊。

看我们最新的这篇文章这个。这叫做自规一化。就是说啊我们前面说的东西都是。本身这个。神经元的这个输出输入啊都不是没有规际化的。你也不知道他们是什这什么分布,能挑一挑选子练。然后我们引入了这种人为的方法。

先添入一个层给他做鬼划。现在这个最新的这个结果呢,他做什么呢?他是说我们不用人为去做这件事。我们希望这个。模型自己具有不一化能力。那怎么去理解这个东西呢?怎么去实现这东西,或者怎么去理解这种想法哈。

我们首先把这个梯度消失和梯度爆炸,我们换一种观点去看。我们假设H是一个隐藏层。输出X,输出是Y,对吧?那么H所承担的这个梯度就在训练过程中。他所承担梯出就是。关于X球一个导数。哎,我这是写的不对了。嗯。

他其实应该是关于那个参数求导。那我们现在就就先先这样写,就是说他所承担的一个就不能说他承担梯度了。就是说他承担的责任什么呢?就是说你输入一X,我给他处理一下,变成Y。对吧然后。

然后这个呃这部分是H做的工作。那他呃这个你可以用这个题度,就是H关于X的体度去描述这个呃。去描述这个呃呃Y随着X的变化率。比以我想说这件事情。那我们理解一下这个什么意思?就是说如果X的微小变化。

可以导致Y的较大变化的。那么H在它就放大了你这个前面的输入,对后面的产生影响,对吧?就是说你X,比如说你变化变化一点,Y就变得很多。那你的H这层其实它起的作用就比较大。说白了就是它起的作用非常大。

那在这种情况下,Y的这个方差呢,它就会大于这个X的方差。就说你X的微小变化导致出YY比较大的变化。X是一个很集中的一个分布。但是由于这个现象呢,Y的就是一个很。很很宽那很多。那么反过来。

如果Y的角X较大变化,只能导致Y的角微小变化的话,那么H就呃它起的作用就比较小。就这一层呢,它因为你想你经不经过这一层,它得到那个数,最后那数都是一样的固定。比如你这层的输出是一固定的数。

那你这层有没有没意义了,你这一层你的参数也没有意义了,对吧?你改不改的参数,它都不改变那个结果。那你在你逆向传播的时候,你那个参数当然就不会有题,对吧?但是反过来呢。

如果要是呃这个H对于这个呃你X就它是放大这个。放差的话,那么你改变H里面参数,你就会比较大的改变那个结果。所以说在第一种情况下,H在逆向传导中,它是放大的题度的那在第二种情况下呢,H在这个逆向传导中。

它是缩小题度。就是说我们。一般说提速消失,梯速爆炸,说的是一个训练过程中的一个技术上的问题。但是他在原则上说,他也是他也就是他在这个问题本身上,他也是有意义的。就是说。

他想描述的就是你对H究竟有没有在训练过程中起作用,有没有在你的模型里面起作用。如果他对于不同的X得得到了同一个Y,那你对H里面那些参数就没什么印象。如果要是嗯对于。X稍一变,后边Y都变得很厉害。

那你这些参数可能你就是说它有意义,但是它的这个太敏感了,你稍微一动就变化很多。这两种现象都不好,一个是可能会造成这个梯度消失,一个可能会造成梯度爆炸这样。那么。如果我们这样去理解这个梯度消失梯度爆炸。

这我们不直接去看那个梯度。我们看的是他们产生的线产生的影响。就是它产生的影响,是关于这个你经过这一层之后,一个随机变量,它的方差是变大还是变小的这个事情。那么这样去理解它的话。

我们就可以看我们现在的问题了啊,就是说如果网络中的隐藏神经元啊隐藏层这神经元总之可以保持你输入随机变量的均值方差稳定不变。那么你这个训练网络就不会出现你这个虚消失或虚头爆大的现象。就是我们刚才说这个。

它其实就是因为你这个呃。就是为什么会出现那个提球消失修提度爆炸呢?你要是具体做,你会看到它,你会看到就情象。然后你我们可以用人人为人工的方式去避免它就是做这个。规划方法我们就避免了。但是其实。

就稍微更加本质一点的看,就是说因为你这个每一个隐藏层,它导致你这个随机变量的光差变大了会变小了,这个才是那个。就像是稀里吧答的这个。比较稍微本质一点的。那这样想的话,如果我们能够控制每一次。

每一个隐藏层它。的输出的这个啊分布。如果他每一层的输出都会保持一个稳定的分布。然后他那个梯东他那个嗯。嗯。嗯。那个variance就那个方差也不会变大,也不变小,就它是一直都是基本上稳定不变的。

那么你不是就可以避免了这个梯度消失或者气刮大的情况了。而另一方面,我们刚才讲那个呃批呃批量规一化的时候也提到过,就是如果每一层的输入能够保持一个稳定分布的话,那它其实也能减少这个斜变偏移。

就是我才说这个方言的问题,对吧?那如何能实现这个目标呢,我看到这个比较神的吧因。我们刚才。人工做了半天不就是做这么件事,对吧?那现在你怎么能自动的去做这件事啊,这是这篇文章主要的要讲的一个事情。好。

我们看一下激活函数,这个是我们刚才看到的常用的一个激活函数。这函数呢右半部分是线性的。这是Y于X那左半部分呢是一个这个指数函数。就平坦的部分对吧?然后它起到什么作用呢?

就是说如果你要是现在我如果给你一个随机变量。那个随习边上有一个分布。比如说你现有谁这样。对水面上有这么一个幅度。他是。他是这个呃。中心在这个负的一个时啊,它有一个方差,比者方差一吧,来完这儿。

那如果你把这个设机变量。符合上一个这个计化数。你会答。比如我们相一开就有一个X。就这个是1个量。然后它符合上一个这个几函数,也要用。就ELU。Thanks。我写成外Y。这个新的随变量。

这个新的水机变量它的方式是多少?比如说我给你看一下。他不就是一个这个Y成光这手积分是吧?在盖婚安就这分。也就是。PY。小PY。对。然后因为你那个外不是那个X辅函数,它其实这个这部分。

他就是等于这个把Y看的X函数。YX。Ex。就行了。那你YX平方什么呢?它其实就是。就这个复合函数,对吧?但你看在这一部分。你这个YX这X本身是分布很,就是它是一个很宽的区域的。

但你YX呢它就区域很很窄了。就是说X在这个范围内,对吧?Y呢就只能在这个。因为。你这个取值。这时间在这儿是吧。这个Y的范围就变小了。那么啊当然还要减去那个均止。这个情。那。也就是说啊如果你这个函数。

你这个随机变量,它说它是在这个比较偏左边的话,那么。这个映射会减小你的。对吧那如果要是你这个C变在右边呢。留在这边。因为这后边这个Y等于X的一个一个函数,所以你这个随机量根本就没有被改变。

所以它是保持了你的。就是这个函数对一个随机变量产生的作用是,要么就缩小方差,要么就保持方差。所以方差整体上是缩小。均值呢你就反正。你要在左边就在左边,右边在右边,你也得不到什么保障。No。

就我们这个主要讲方差了,这方差整体上是缩小。整体上方差要缩小,我们就讲它会产生前面这个。封他缩小时。就是说Y的方向小于X方差。那么你这个如果层数多的话,它就会产它就会容易变成这个缩小的梯度。

就是说产生这个梯度梯度消失的问题。呃这个其实就是我们为什么当你使用这样一个激活函数的时候,你会导你会产生这个PU销售的问题。这就是这个。那么。我们如何才能够改善这个现这个状况呢?就我们说了。

你一部分缩小,一部分保持,整体上都缩小。所以说一个最简单的方法就是。你把这个函量乘一个乘上一个长期廊的,这个栏的大于一就这个是ELU啊。如问你改换之后变什么样了呢?原这。这边还是有线性的。

但它这斜率可是比较大的这样。这边这个呢还是一个指数的,但还是长成这样子。因,画的不是好了,这个。え就0。这个。这个手画的非常不好,大家就稍微理解一下。就是我想我想跟这个图做的对比,就右边这个呢它是比。

啊,Y等于要更斜更往上斜一些。啊,左边这个呢就是说。它它还是指数的,这个话呢就变成折向,这不是这还是指数的,但他要。往下挖一些,这样这样个。那这个函数有什么特点?就是说它左边还是缩小观差的,但在右边呢。

它是扩大了观差。比如说你这个如果斜率大于一的话,你想如果X的范围是1到2,你那个Y的范围可能就是这个比如说呃。2到4,那你这个本来范围是一,不是那。根据一然后你。符合这个函数之后,跟就宽度变成R。

结果那个方差变大。就是说当你这个比如说你当你一个函数。那你随机变量,它的方它既不是集中在左边,又不是集中在右边的话,是在中间。那么就有可能使得你这个东西的呃方差呢既不变小也不变大。啊。

就是一片一他有变小的部分,也有变大的部分,最终呢导致他不。这个就是我们现在所引入的这种。特制的一个激乎函数,他所他希望起到的作用。就是以前的几乎函数都起不到这个作用。它右边是一个保持的,左边是缩小的。

永远都是这样。前面所有力度都是这样。那这个就当然比较严重了,它这个两边都缩小,对吧?就他这个是啊。呃,基础效失最严重的一个机构函数。这个机构函数大家说为什么呃。这个神经网络在前若干年这个进步非常小。

这进展很慢。那就是因为我们使用了这么一个不太好的机划。这是一个很重要的原因嘛。然后后边这个也解决不了太大问题。啊后这个呢你看右边是宝石的,左边这个就不用说了,就就这原理。啊,这个也是右边bo。

左边就是缩小。那么现在这个新的其实他做的改动真的非常少。它右边只不过它就是成了一个场数,它就在着成了一个场数而已。然后这个长是大一,那右边这部分呢就是增大是呃方差的,左边呢是这样。

但是他还要做的精细一点,就是说啊我们希望说一部分增大一部分减小整体上应该不怎么变。你如何选取你这些参数,才能使得它整体上不怎变的,这个就是一些精细的问题了。你需要做这个数值估计。

那么那么他这个文章里面告诉你吧,如果你这么选。就是为什么这么选呢?就是他其实说如果你这个输入是一个标准正态分布,我希望它的输出。也是一个中心在零点处,而且呢。这个方差是一的一个概率。这个是可以计算的。

因为你这个函数是很具体的。这除了阿尔法和兰姆马之外,不知道之外,你这个函数是很具体的。然后你给给你一个这个标准状态分布,你把它带进去啊,你算它的方差,算它的期望。列出个方程,就7望等于零发下等于一。

你就把栏姆的2解。这部分并不是。你把这个算了。那么。问题在于你这只是说对于这么特殊的一个知要你正态分部来说。它这个计函数可以保持它的方差和期望。但是如果你这个训练过程中,你首先你的X不见得是。

就是你那个每一层的输出,它不见得是标准,不是不见得正态分布出现,对吧?而且它的希望宽长呢也不见得是。0和一。那那。那你这个东西有什么用呢?对吧?你就你你现在只对特殊情况有用,那你这个特殊情况又不成立。

那怎么办呢?就以说。他这要这篇文章主要内容都是证明什。当你选取这种参数的时候,如果模型的宽度比较大啊,这个我们后面会稍微提一提这样,就是说他需要使用这个中心间定理。而且呢而且我们使用这个计函数。

而且初始化始的那个权重,就是那个W们,他们都是均值为零个方向。双音值为一的话,那么这个模型就具有这个自规异化的属性。就是说它。只要你一开始参数选择就是那个初始化的比较好,然后呢,参数按他这么选。

即使你训练过程中,你的每一步。那个X不完全是一个标准来。也没事,问题不大。他告诉你,他都会让你让这个模型有这个自规一化的属性。什么是叫自自规优化的属性呢?就是说当你输入一个X以后。就只要你X是。

比较接近于这个标准的形式的话,那么经过若干层的变换,它这个X就会。逐渐的被规化。就说啊以前我们说的是。因为层数太多了。前面的微小变化会导致后边的极大的变化会变得很离谱。现在再告诉你呢。

我们现在这个网络不是那样的,我们现在这个网络是一个非常。收敛非常自脸的网络。你前面那个只要不要。变化太大。他在后面的传导过程中,它会越来越好的,而不是越来越坏。这个是他要做的事情。

就以前我们没有做没有对这个。然吧呃激乎函数进行这种。细致的。规定的时候呢。你不能确保他这每一步会越来越变越好。通常而言你就是它就会越变越坏了。就是所以我们才需要这个人为的规划,把它变坏了,把它掰回来。

变坏了,把它掰回来。我现在呢。他告诉你说,如果我们这么选。选这样的结函数。然后呢等于这个比记大一点点,然麻烦你这个。我们随着这个神经元深度的加深,就是这个层数的增多,它的。这个。

这个每一层的输出啊它会越来越好的,它会自己逐渐规化。那为什么会有这样的现象?我们刚才说这个。他不只是对一个标准正态分布才比较好。那如果他对于别的东西,他为什么会这么好?我们可以稍微的解释一下。

因为这个证明非常的长,而且这个证明呢。我可以跟你们说,这个是我见过的呃最丑陋的一个证明,就是说他用90页证明了一个还说应该不是很。那我不敢说了,我我还如果我能写出一简单的证明的话。

我相信这个这个就是说我意思是说,如果这个东西最终证明是有用的。那么我相信在几个月之内肯定会出现一个简化证明。因为他那个证明实在是太太太太恶心了,就是他用了很长很长的篇幅,然后呢。

而且他用的是一个数值计算的方法去做的证明,就是这个非常不符合我们数值里面的审美,对吧?所以当我可以这梗概也是很清楚的,就他的想法还是很清楚的,他这个证明主要分两部分。第一部分要利用这个中心鉴定。

就说啊我们刚才说了。这个事儿他只对那种标准中态有用,那说无不是标准状态不就没用了。所以他才说呀,我们这个是网络的宽度要比较宽。嗯。喷度宽了会怎么样呢?比如果我们从一层。到下一层的时候。

而且他用的这个他他所研究这个例子呢,是这个就是一般的这个FN。就是前置这个神经网络,就是他这每一个神经源呢都跟前面所有的神经源有关系。比如这个有打比说前面这层有1000平的。每一个都给了你1个X1啊。

都到这个。X一00。然后你他接到的输他接到的输入是一个向量,那么它的几乎函数接到的输入是什么呢?是这个向量的一个线索。先把这个X一乘以W1。加加到XN。1000N了,这个WN这样。把这个东西。

再送的那个。记术函出来那这东西什么呢?它是一堆随机变量的线性组合。我们中性间中信集间定理告诉我们,如果他们是一堆这个呃。期望比较固定。然后呢。方差也比较类似的一堆函一堆随机变量。他们作为一个线组合。

就是说做了一个平均。你会得到一个什么呢?你就会得到一个状态。即便他们之就是说如果他们之间是这个无关的,你就会得到一个正态。那实际上他们之间即使有一些关系,就不是很强的话,你也会得到一个正态。

就是说用一个比较强一点的这个中心间建。就他的意思是说啊,你前面这个只要你这个非常宽的一个网络的话,你这每一个实英元它的激活函数的输入这个这个这个数它是一个接近于正态分布的东西。

然后它的期望和方差呢取决于你前面这些X。这一步这些X的期这个期望和方差。与嗯这个。这个这个权重W1到WN,它的这个呃取值就是它跟这两件事关系。但家可以大概估计一下,就是比如说前面这东西的这个期望是m。

方差是这个。他管那个这个这个应这个应用叫new啊,这个专译非常小W呢。如果要是这个啊王才用的什么字母,在这个。啊,比如M吧。用小W对欧米伽。如果W这个期呃这个期望是欧米伽呃,均值是欧米伽。

那W这个平平呃平方盒呢是套。那么你这个东西的期望大概就是没有成以。欧米伽这个东西的方差大概就是谬成一套,就是它是由这个这个东西,它的这个切换方差是由由都由这个前面这个X和这个W来决定。他是可以估计出来。

大概。那。这个时候我们就可以说我们G的这个输入是个什么呀?它是一个正态分布,然后切换方向你才大概知道。Yeah。这样。所以这个时候因为这个G的形式是固定的,我们知道这个G长什么样是吧?

它就它是一个很具体的一个函数。那这个时候而且这个郎呢阿ffer他都已经他都选定了,对吧?就是一个具体的函数了。那在这种时候他就可以研究说哎那我。这个什么。这个测试这个计函数这个呃。

skied你它好叫sedexial linear unit的SELU这东西呢。它作用在一个这种正态分布上,我们会得到一个什么结果?他就可以研究这个问题。那么他的结果是什么?

这个地方还用了一点点稍微深入一点的数学。我们发现这个。积极学习里面啊,有部的数学其实还是相对少的。比较少。他这个里面。这面什么数学呢?你说啊。你这个概率分布是可以很复杂的。

但是呢我们如果你用这个一个相空间,比如说。这个是希望。这是方差。任何一个概念分布都会在这里面是个点。就是可能两个不同的概率分布,他们有同样的期望,同样的方差,然后在这同一个点。那不要紧。

就是说不是一个完美的描述,但它是一个你可以把每一个概率分布都放在这边变成一个点。所以这个点。可以充满了整个这个。那他现在想现成什么呢?就如果你这个输入是一个正态。然后然后在这个点上。那么你。从一点出发。

你下一点会跑到哪里去?比人这样个题。那么。在数学上呢,我们这个说是一个不动点的问题,就是说。如果你知道。你的概率分布是在这个空间里面的么。是在这个空间里面的。这样话没有可以是连这个。

比如说你的概率分布是在这个里面的某一个点,这个东西叫G。这个区域。那么如果你知道它只要第一步在这儿,它经过一层一个神经网,就是你那个神经网络的某一层映射之后,它还在这里面。然后你再映射一次,还在这里面。

就是它总是在这里面跳来跳去的话。而且再加上一些别的条件,你就可以说我们这个。这个映射一定有一个不同点。这个就是他后面需要用的一个巴拉树不用点点,比如说什么。就说啊如果这上面两个点。X。X。

如果我们这个神经网络能成功,把它叫做。他从。它从相空间上的,就它是一个从这个相空间到相空间的映射,就是它从一个概率分布,用到另一个概率分布,对吧?所以他从。大致还是老大追。打电话。这个中间应该是小智。

那么。这样一个的是,如果他满到这种条件就是GX1。和GX2的距离。小于等于。一个肉乘以。X1X2是肉小于的。我们管这种映射呢叫做一个压缩映射。就什么叫压缩映射呢?就是它总是把两个点距这个距离变小。

所以他他就是直观什么意思?就是他把这个东西啊。哎,经压缩成这个,所就吧再用一次呢,对吧这个小区呢又压缩各小区,再用一次呢,把这个又压成各小区。你这样应射到无穷多次之后,你会变什么呢?它就会变成一个点。

那这个点它从一开始呢应该是不变的。因为你想。你在不断压缩过程中。他最后回来了。那他跟自己的距离就是零嘛,对吧?这就是说。一开始的时间。就说。这个点就是。那么。也就是说不动点什么意思呢?

就是说你不管你从哪出发的,最后你都要跑到那个点上去。就是它不但是不动点,它是个压缩点,就是说它是一个稳定的不动点,你在它旁边的点都会收缩到。这个就是他想要的性质。就是说如果他这里可以找到一个重点。

就是说。找到一个一个。期望方差,不管你一开始给我的希望方向是什么,你经过若干层的映射之后,他都回到了那个。那个固定的情往方能上面去,那不就达到这个目的,就说。作谓的最自规一化的能力。

就是只要你一开始给我的这个随机变量,它是一个比较好的东能特别好,这还行就行了。那么经过若干层的变换,它就会变变成规异化,就它可以让这不用点了,就位于这个希望20光叉一这个位置。那事实上呢,我们知道。

他前面已经说了。当他选取这个参数的时候。他这个要求啊使得这个标准状态分布是一个不动点,不动点只有一个。如果你标准正态分布不动点,那么啊。一开始如果你给你的不是标准的,他最终也会回到你。在这个思。

那至于嗯。哎,比如说这个图吧,这个图比我画的图好一些啊,就是说如果你一开始就点在这儿,就它下一步会跑哪去呢?就跟着箭头走,跑这儿来,下一步跑哪去呢?就走一步,然后最后走走走,最终最终都跑这来。

就是大家都会集中到这个这个不同点里面去,它这横轴是这个呃放差,纵轴是期望。那么。如果它能够证明这样的性质,就是说你这个这个这种激乎函数,它作用在这种正态分布的随机变量上面去。他有这种现象的话,那么。

其实他这个结论是正,所以他这个文章大概有90页的证明,就是在做这件事情。就研究这个特殊的函数,在正态分布上面产生作用。啊,他最后证明了这个函数对于正态分布上面就能产生这样的作用。

那他就他就这他就他就完成了。所以说呢。他做的事情非常简单。这调整非常简单,它只是把以前一个常用的激活函数乘上了一个常数而已。但是这个场数呢需要非常细致的去选取。然后他就可以说明。

这个特殊的基构函数就具有这种自规异化的性质。那可以想象呢,如果你就不动点,不取在零和一上面,你取在任何一个别的点上,其实都是可以的。你一也可以选别的。那那个时候呢,你的这个参数啊就变了。

你可以选别的参数。那只要你。零和一只是一个特殊的情况。只要你有这个不动点定理,就是说只要你后面这这部分对的,就是说你不管就是不动点你选在这儿。然后你只要你一开始那个点呢,离它不远,你最后都能回去。

那就行了。你可能对于不同的问题呢,你可以选取不同的这个不同点。你就是可以选取不同的这个参数。那现在我们因为他这篇文章刚刚出来,他选取的就是这个最基本就是他希望的700。哎,对。

然后同学问说那这个呃最规划怎么用呢?就他这个因为它改变的非常少的非常简单。你就是以前你做那个神神讯网络的时候,你建立一个网络,对吧?你不是得有中间你定义这个激活函数嘛?你就把它换了就完了。

你都不用改别的,你就把这个计划数换就完了就可以。你那网往就具有他这个思规优化能力。所以这个结论非常的神奇。就是说我们通常认为像这种参数。这种阿尔法这种东西。就它只是一个很软的东西。

就是你可以调一调你怎么调,应该对结果影响不大。但他现在告诉你,你这个。如果你非常适当选取的话,你就会得到一个很神奇的效果。大概这个意思。对,大家可以试一试。然后包括其实现在我看这个文章虽然刚出来不久。

但是我看网上已经有人做过一些测试了。这个bos他们这个测试结果好像。这个还是不错的,就是它确实是work。你后面那个数学证明的部分呢,如果大家这个。数学机构好一点,如果有兴趣的话可以去看一看。就是。

但是我不建议大家去把那个90页证明看完,因为那个你就稍微看一眼就知道他那个。他那个极其复杂,而且他用了很多数值的计算。比如说当他需要证明这个向量都是往边指的时候他怎么做的呢?他先画一个格点。

证明每一个点都算出来,就它确实往里面指的。然后呢,他用一个比较这个基本的那个就是。呃,呃,微积分里面那个呃NY。明白刘 sir就说。证明只要你这些点它都是往里面指的。然后呢。

中间它这个二级小数不会特别大,那它中间都是往里指啊,它就是用那种方法去证明,就它并不是直接用数据的方法证明,它是用借助的数出的方法。然后所以你看那个文章,你就觉得好多好多数字非常。对,然后有同学问说。

那既然你这个不动点经理告诉的是你经过若干层定核之后,哎,它这个呃自动规化。那如果会不会在没有规化完成之前,它就产生提度的问题呢?这个大概是可以避免的,为什么呢?因为其实我们对于这个初始值。是可以做调整。

我们通常对这个初始值是可以做调整,我们可以把它调的比较好一点。就我们初始化的时候,让这个W满足它一些条件,让你这些初始的输入呢也满足那个。え。规划好的。然后你就把它放在这网络里上训练。

那这个时候呃他就不大会呃出现你说这个问题。其实其实本来说的问题是说,你初始值你就基本调好了,你后边控制不了,所以才会产生那些比如替步消失。比如说这个噪音各种问题。那现在是说你初始值设定好之后。

只要你说的还可以,那你后边训练过程中,他不会出现太大太大问题,这是他这是他讲的。这这这这个章。这个。好,有没有其他问题?好,那我们就稍微总结一下今天我们讲的内容啊,我们这是。

我们首先回顾了一下这个呃深深层深度模型啊,这个啊最基本的形式。然后呢。这个就是说自然的引入了这个激活激活函数。然后我们在机会还生基础之上,我们看到它会导致一些问题,就是包括记录消失。

包括后面说那个斜变偏移对吧,这样的问题。然后为了解决这些问题呢。就是我们今天这个主要给大家。船长介绍的这个。两个结果,一个是做的批量规一化,这个是人为的规一化。

它在每一步中间就是在从中间插入了一个线性层。这其实这是一个非常好的想法。插入线象层,它不影响你的这个整体的架构,你整体的那个架构该怎么优化,还是怎么优化,只是你把那个层的结构改了。然后然后他就。

有如很多很多效果。那这最新的结果呢,他走的另外一条路,他走的是我不用去人为的优化。我们让这个。几乎函数呢它自己。就具有了这个规一化能力。但是它有条件呢它有条件就是说你这个我刚才说了,你这个呃。

模型的宽度要比较大。就是说如果你是打比方说你是那个呃整机神经网络的话,如果你这个每一个X和前面只有。比如说你算那个。正常处理的时候,可能你这个每一个。生源他只跟前面的那个,比如说呃。9个神能源。有关系。

那你就不行了。因为9个9个点,你这个中心鉴定也不能用。所以说你这这个大概就不能使。所以你它这个主要还是用于说你的模型的宽度比较大,而且呢每一个神元跟前面的很多个神经元都有关系的时候。

那个中心鉴定的才能用,那个时候才能做件事情。他他才有用。はい。但是他的证明呢就比较复杂。然后大家有兴趣的话,当然就是。可以在自己的code上去试一试,看这个能不能够对你的这个结果有所帮助。好。

我们今天讲的主要内容就到此为止了。感谢大家。来听课,然后。请大家多多批评指正,给我们提出更多的问题。然后我们可以。我们这个论文的公开课。争取开几次之后呢,我们就可以。得到大家的需求以后呢,我们可以。

正式的开这个轮班。然后最后还可以给大家再推荐一个课程,就是我们。呃,下个礼拜就要开的这个深度学习第三期的课程。这个。所会就我们刚才同学问的很多,关于比如说转机网络啊,关于这个RN啊。

关于这个比如说生成模型啊这些东西。他的问题嗯。我们可以经通过这个这多少次课,10次课,每次课2个小时。20小时的这个课程是把这些内容呢给大家进行。非常细致的介绍,而且我们会提供这个。

GPUGPU的云实验平台啊,这个就是你的算法,你可以真的拿去试一下,否则的话那自己就自己的这个计算机上,这个很多算法你是很难实现。

好,今天就到此为止,感谢大家。

论文公开课(七月在线出品) - P3:AlphaGo Zero背后的算法 - 七月在线-julyedu - BV1fW411T7GP

好,呃,咱们到时间了。然后那个可能还有同学陆陆续续的加群。然后我们先大概介绍一下今天这节课,我们今天这节课是这个。🤧那论文公开课系列的第三期啊,好像前面有两次公开课,可能还有一次这个电呃电信公开课。

那也是论文的这这个就算第三期了嗯那个。呃,咱们呃论文公开课呢应该说是可以说是给论文班做一个呃预先预先的这个试验。我们想尝试一下,才能在我们这一个呃公开的平台上面讲论文,能不能让大家收获到一些有用的知识。

然后对我们自己来说也是一个很好的学习的机会和大家一块探讨啊嗯。我们论容班呢从下个周末开始开始开班,我们首次班有呃1。呃,8000人。有啊好几位老师啊,大家一起来呃给大家讲一下。

就是大大概主要的这个topic是在呃集中在深度学习里面,就是大概是。啊,希望从呃几年以前深度学习崛起开始,呃几篇重要的文章啊,包括呃最近的几篇比较最新的进展这样差不多8篇文章。

大家可以去呃网页上可以看到,可以看到那个应该是有文章链接,大家可以就是大概浏览一下有什么文章啊。好,那呃我们今天这节课呢呃主要是讲这个最近。最近这个呃呃比较轰动的一个工作。

这个你准备的时间也不是特别长了,但是主要是要跟大家呃一块来探讨一下,就是说阿法克zero,他背后的这个学习的算法。啊,就是。大概的历史上大家多少都知道,就是说呃大概去年的时候嗯。那么3月份是吧。

我们这是demand,他们推出的第一个阿法。呃,当时我人类对弈就就反正就是很快就战胜了李史石战胜了科题,然后战所有的人类对手。然后那当时的算法的特点呢,它是通过人类对人类棋谱的学习。然后。

来预测人类的多法。就下期的走法,然后以此为基础来就他自己的这个判断,就是他自己的做法是基于人类的做法来做的。就是说他是学了人类。然后呢,但是他计算机呢它算的比较好,所以首先他预测的很准确。

这是他们这个呃工作的重这个一个重点啊。然后。在预测准确的前提下呢,它的这个稳定性那肯定是远远超过人类的啊,当然它也有一些新的走法。所以他就基本上战胜所有人类,就是人类已经不可能再跟他去这个相抗衡了。

然后呃那已经非常轰动了,因为这个围棋算法已经研究几十年了,大家很长时间以来都觉得想打败人类的大师纪选手恐怕还是不太可能的。但是他突然之间就出来这个东西。就超过所有人的选手。然后。

今年呢这篇工作这个工作呢它的重要性是什么呢?就在呃之前的那个需要学习人类的基础之上,他们开发了一个新的系统,就这个阿巴克Z这个训练方式呢就是说他不需要人类的任何知识了。

他只需要让这个计算机从一开始从小白开始什么也不会啊,下不断下一些来开始自己跟自己下,自己跟自己学啊,通过不断的胜负啊,来判断怎么下才比较好。这样的训练。他只用3天就可以达到以前的那个学人类的。

那个初期的阿法狗,然后经过40天的训练呢,它现在已经无底了,就是跟跟学打都是百分之百胜率差不多啊。所以。所以这个就是呃我们这个这个他们这个工作的背景啊。那在这个背景之下,我们想看一下。

那他背后呢使用什么样的算法啊,他就是他想法是什么?因为这个算法呀几乎呃不怎么用data了对吧,因为他以前的话还用了一些数据,现在几乎已经不用数据了。那他基本上就是。靠他的算法啊。

靠他的这个工程能力来实现这件事情。那我们想今天呢就主要来探讨一下啊这个。工作它背后都使用了哪些算法?我们进入正题哈。嗯。那今天我们主要涉及到了两篇文章。那第一篇呢。

当然就是呃depman他们在nature上发表的这篇文章就是呃。啊,就是不用人类知识,就可以掌握微机啊,就这个意思。呃,第二篇文章呢呃是今年5月份的时候,应该是呃就是这几位作者在。

🤧我看到的版本是在这个archive上的版本。我不知道他们现在有没有正式发表的版本啊,就是说。他们5月份时候做的一些一个一个工作,他他们应该属demand的是独立的。

因为呃deman的那工作的公开是最近的,所以说。对,但是他们提交呢是4月份,所以总之就他们两个会上之间应该是没有这个呃抄期的嫌疑。就是说应该说是几乎。就前后脚就独立的发现了这个这个算法啊。

就是基本上想法就是说我们会会讲到。利用这个呃深度模型,再加上这个蒙蒙特卡罗的输搜索啊,来实现一个不需要外界知识的一种强化学习的一一个一个模型啊。Yeah。啊,这个等大家看PPT的时候。

就知道这个地方都链接,在点就可以看到文章了啊。好,那主要内容呢就是通过两篇文章和大家一起探讨这个算法。呃这个这次课程的结构。第一部分呢我们介绍一下动态规划与强化学习啊,其实这个是框架。

就说这次为什么阿尔法和V尔可以做这件事情,它是在强化学习这个大的框架下来做的那至于具体的实施方式呢,他用了这个。啊,首先用深度模型,深度模型是以前的画口也用的。就是说我们后面也讲到为什么要用啊。

然后呃再使用最新的这个工作,就是深度模型和呃搜搜索的一个一个结合啊,来实现这种强化学习。那呃既然是我们。来了解这个工作,我们先看看什么叫做强化学习啊。

什么叫做就是他他跟我们以前了解的这个很熟悉的一个动态规划是什么样的关系呃。如果你想用强化学习去解决一些问题的话,我们实际上需要做些什么啊,那困难又在哪里?好,我们第一部分就是这个嗯。动态规划与强化学习。

啊,他们。这两个东西啊,他们都是有同一个目标,就是说希望涉及一种。算法使得它能够基于环境而行动来取得最大化的一些利益。就这个环境呢,比如说您可以是下围棋的时候,那个环境是什么?

就是你棋盘上这个这些棋子的位置啊,就是黑棋在哪里下了,黑棋在哪里下了,这就是环境,就当前的环境啊,那你基于当前的环境,你要采取什么样的行动?所说的行动呢?就是说呃你可以在哪下。

然后什么叫最大化为系利益呢?这个当然在为体上来说,就是说你最后要赢对方越多越好,那差不多这个意思。然后这个呃当然你可以做别的事情啊,你可以首先你可以是其他的游体啊,甚至你可以是这个呃。

就是自动化控制对吧?你比如说你机器人,你的环境是什么,你就是OK这机器人他的那个这些探测器能探测到的做的东西,能看到什么,能听到什么,能够这个介介绍到什么,对吧?那你在这些技础之上。

你要你要采取什么行动?比如说你有一个这个扫地机器人,对吧?那你这扫地机器人你买个家了,买家一方。那这个呃。嗯基本上你希望它自动去行扫地对吧?那他其实其实现在就有这种机器人嘛,那他其实扫地怎么办呢?

他就是靠他这个能碰到什么东西,碰到之后他就改变自己的方向,他不会去强撞了。你撞墙了之后他就换个方向走,对吧?他基本上这个想法。那么得走的多了以后,他对你加熟悉了。那最好的是。你在你家扫几次地之后。

他就能在你家很很有规律的,就把地扫好了,就不要那个到处乱跑了。你一开机,然后到处乱跑,二小孩撞倒了就不跑了,对吧?这个意思。也就是说当你们在这个环境里面呃,经过长期就是一段时间的这个呃训练以后。

希望他能够基于你这个环境做出最好的反应。啊这是这个动态规划或者强化执行目标。那他们两个的区别是什么呢?动态规划呀要求你。知道环境的变化规律,就说这个规律必须是确定的,而且是已知的。

那这种情况那等会儿我们举一个具体的例子啊,那强化学习呢就不要求这个条件。就说它应用范围更广泛,就是它当然就更困难。但是我们可以呃在这个课里,我们可以用这个动态规划啊。

作一个简单的版本去帮助我们理解呃这个强化学习。那同时也帮助我们理解啊,我们那个就是我们这次的目标就是阿法go0他主要的想法。呃,随时随地大家如果觉得声音有问题啊,或者什么,就在那个呃QQ里面留言。

然后有什么问题也在里留言,我可能不会马上回答。但是一般我讲完几节PPT都会回来给大家就是大概的梳理一下啊。好,那么这个强化学习的一个啊基本思路是什么呢?就是说。呃,这个这个图是我在网络上面透的啊。呃。

首先我有一个agent agent就是说我们的这个算法这个程序我们的这个机器人那环境呢就是说刚才我们讲到在各个不同的问题中,你可能有不同的环境。那。他基本想法就是说,给你一个环境状态。

那么这个机器人呢他会去采取一个行动,他会有自己的一个算法采取一个行动。但采取行动之后,他这个行动不一定是对的,有可能错的,有可能不是错,但也不是最好的,就总归他这个行动。会给他带来一些奖励或者惩罚。

如果他这个做法比较好,那就得到奖励,如果做法做比较不好啊,就可以受到惩罚。然后他通过学习这些奖励和惩罚啊,就是逐渐的去增加好的做法,去减少这个不好做法。这个过程就是强化学习的这个过程。

那就是说他要不断的和你这个环境进行互动。然后来得到反馈来,然后再更新自己的这些模型里面参数。其实就是说啊嗯。Okay。那他有这样一个想法啊,基本基本的思路是这样。那这个就比较抽象了啊。

那具体来说就是说我们把它。数学化以后会是什么样呢?就这样了。啊,它是一个基本的数学表达这个呃。也可以把它称作是这个马尔克服务决策过程。那这里面啊我们要用1个大S代表输入状态的结合。那比如说围棋的话。

那于打S包含了什么呢?包含了所有可能的局面。就你那个棋盘上。白细有罗两个子,黑锈有的两个子所有可能的局面。就是这个大S。那在每一个大S下,如果你是比如说你是拿白气那个人,那你有多少种可能?

你有你有多少种可能的这个走法呢?啊,那个就是AA代表。所有者采取的行动集合。啊,这是就是说。一切可以采取的行动。来这个结合。那R呢代表的是奖励函数,就是说。你这个给你当前的局面。也弄这种。

走法那每种走法它到底是应该奖励呢,还是应该惩罚呢?这得由R来代替。那这个呢是一个环境可以给你的一个反馈。那这个一般来讲并不是你比如说强化学习当中呢,这个并不是你预先知道的,你要去做一件事。

然后你才会得到反馈这样。啊T呢对表一个转移函数,就是说。就是说你做了一个操作以后,比如说你在这个你看这里有三个变量啊,这个S是当前的局面。A是你的操作。SP是结局。就说你比如说你找了一个点儿。

在微棋当中往上找了一个字儿,那对方会怎么走,你可就不知道了。所以说呢当你做了一个操作以后,你并不知道这个带来的后果确定的是什么。但是呢。有些情况下,你可以估计一下你这个后果,左做种可能性。

每种可能性的概率是多少。就说你知道我这个下围棋的时候,你开机,你在左上角点一点,那很有可能对方会在右下角点一点,或者是左上角或者左下角对吧?就是这大概几种可能性。然后嗯没有可能性的概率啊,你就。

这这这就是这个转移函数。就是说在你当前状态下,我采取一个行动之后,后果可能是什么?那动态规划问题当中啊,这个T应该是已知的。就是说我们应该知道我如果采取行动之后,那这个。

结果和概率分布我们应该知道结果不确定,但是概率分布应该知道了。但是在这个呃强化学习中,这个就是不知道的。比如说下围棋,你很显很显然你面对一个新的对手,或者就是旧的对手,你也不知道你这样走以后他会怎么做。

对吧?他完全是这个他有他的这个想法,有他随机性。嗯。那么这个呃实习目标什么,就前面那些是描述性,就是说把这个系统给描述了一下。你有多少状态,每种状态下,你有多少可能采取的行动是吧?然后这张奖励。

然后转移函数。那最终目标就是说,你要学习出一个策略。就是在每一种。局面下,你要知道你该怎么做哎,这个是你的。这个是你学习的目标。因为学习你就希望得到一个机器人帮你做一件事,是吧?给你一个局面。

太就太平众了。哎,这个是这是一个水晶表,你现要得到这么一个,这个东西叫派,这个等会儿我们。这些符号大家给要稍微留心一下,等会儿我们还会用的,这是我可能会回来给大家再这个复述一下。好,我们举个例子啊。

动态文化。比如说我们就都用游戏来举例子啊,正在对打。比如说这个赌场里面最常见的1个21点的啊赌博游戏。就是这个赌播游戏啊。显然你是赌博嘛,你结果肯定是不确定的是吧?但是庄家的行为模式是固定的。

而且是公开的就告诉你。呃,就大家如果不熟悉这个规则的话,你就给大家讲一下,就是说。这个游戏是这样的嗯。中央呢他自己拿着一张牌是亮出来的。然后呢,他发给你两发给你两张牌。

这个时候呃你把这两张牌的数加起来啊,就是比如说加起来是到是13点14点,对吧?这时候不到21点,你可以再朝他要或者朝到或者不朝调。就说你朝他要的话,你要冒着风险,就如果给你一个十,你就23点24点。

你就啊到你的超过21点就说了。对吧?如果你不朝着要呢,你就停在这儿了。所以这个时候你可以这是你自己的选择,你可以选择要或者不要,这是你的可以采取的。action这个行动是吧?那么你的局面什么呢?

就是你手里有多少分,多少点,他手里有多少点,这两个数字形成的这个向链,就是你的局面。你知道自己有多少点,他有多少点,然后你要决定是否在继续要牌。这个策略呢就是我们最后要决定的东西。

但这个时候什么能确定的呢?就是说一旦你决定说我不要牌了,庄家就开始行动。他这个行动的结果不确定,但是他行动的模式是确定。就是说专家要求不到17点,他就必须继续要排,超过17点他就一定不会再继续要排。啊。

这个是他的固定的行为模式。所以在这种情况下,我们用动动态规划就可以完完整的解决这个像这样1个2C点在这种赌博游戏。就是在任何情况下,你就知道自己啊最优的选择是什么?然后你回升的概率是多少。

那都可以都是都是比较容易算出来。那么强化学习呢。那可能就是哎他如果你也是游戏的话。那么他呃面对的呢就是一些对抗性的游戏。比如说危棋或者电子竞济这种啊,这个不但结果不确定对手的行为模式你也是不能确定的。

你不知道对对手会怎么做啊,你下棋下一步,你不知道对手会怎么办,他也不告诉你啊,肯定事线不会公开的,对吧?也这样一个提个过来。那我们啊具体来看一看,我们想我们举这个例子说比较戏呢。

是因为嗯希望给大家解释一下。这里或者说我们后面提到的一些这个量。他的这个嗯是怎么样的?好,我们看看这个2A点对应的这个状态空间。个略空间就是玩家和庄家各个手中的点数啊,玩家是P,庄家是D。

P就是player,D就deer。对下了。然后呃行动空间就是玩家可以选择继续或者停止摇摆酒家梦产。那奖励函数哎,这个东西啊其实也比较有意思。就说我们之前说这个模型的时候,说的是你每做一个行动。

它都会有一个奖励或者惩罚。但是你发现像这样的一个游戏呢,你的奖励个惩罚是在最终游戏结束的时候才得到的。所以说你如果获胜你的奖励,你这个R是一啊,如果呃失败了,就是负一,就是赢了就赚钱嘛,输了就是会钱嘛。

这个意思是吧?但你并不是呃每走一步都得到奖励。比如说你现在手里点数是10。你可以要牌可以高牌,不是要牌了。那给你一张三你得到13。这个过程中。有先没接处,你还可以继续要,还可以停。但是光走完这一步。

你没有得到任何的奖励或者惩罚。哎,这个就跟前面稍微有点不同了,所以说这就有点哎有点不太符合前面那个描述啊,并不是每一步都得到奖励。所以另外一种去设计这个奖励函数的方法也许以这样说。

说我们可以说玩家行动后,如果获胜的概率增加了。那这个增加的概率就是它的奖励函数。如果概率变小了,那这个呃最小的这部分概率就是它的乘罚函数。哎,所以你可以这样去理解。那事实上这个维棋的情况。

在这个意义上说跟他也很像,就你需要走好几百步。你才能结束一盘游戏,一盘一盘围棋,对吧?那你最后那一步。结束了,你知道自己是赢了还是输了。那前面那么多户你都没有奖励的惩罚怎么办呢?对吧?所以说。

一个呃比较好的一种做法呢,就是说啊。呃,就是至少一种做法吧,就是说你可以去想你这每走完一步之后,你当前的几面下,你获胜的概率是增大了还是变小?呃。这个。你你可以认为这是一个一个想法,就是说他。

在最终实现的时候所使用的用型。那。最后呢就是这个转移函数。转移函数呢这个我们刚才讲到说哎我们玩家呀他可以选择标牌或者不要牌。那他。如果要是这个不要改了啊,那庄家就开始按照他这个规定的这个这个方式。

他就开始改变他的数字,对吧?这个意思。好,那我们。稍微看一下这个我们说这个这种东西是很容易可以用这个呃动态规划来来解决的啊,我们稍微看一下。这很简单的一个例子啊。好。

这是我们的一个简易版的21点游戏策略表啊,我们就是说把这个游戏规定一下,然后基本这跟刚才一样的,告大家这个空坚是什么。然后呢,我们怎么用怎么样用使用动态动态规划去解决这样一个简单的问题呢?啊。

就是说我们首先训练一下这个哦目标。哎,这个怎么那么慢?我之前没有在这个上面。好,你这只是。改构一下。啊,大家稍等一下,这个灯会。我好像后面是有结结果嗯。你说不需要直接在上面跑。你确定一下。

这个好像没有动。啊啊,这个我先不给大家看这个具体的印象,因为这个。我我这个是在另外一个机器上运行的,他这只是想展示一下。我这说面试有结果,你就不许管达了。好,就是说我们可以用动态规划的方式。

去啊去实现一个这种表格的最终目的。我们说了是实现一个策略的表格。这个我们实现一个玩家策略表,就是说。这个啊每一列呢代表的是庄家的手里的点数,这每一行呢代表是玩家手里的点数。

所以这上面每一个点啊就代表了一个状态。比如这一个状态,什么意思?你手里的点数是9,庄家手里的点数是6,在这种情况下,你是应该举需要排呢,还是应该停止呢?Yeah。放大一些。嗯。不。Okay。好,这样啊。

比如这个。大家可以看到这个上面的字吗?我我可以先把它电弄白。我们要重向帮助,那还有一些的啊好,再这。😊,哎。就说啊当这个红这个上面这个横坐标。累列代表的是呃庄家手里的派的点数。

这纵值不表代表的是玩家手里派的点数。庄家手里就是从1到11,玩家呢是从2到这个21对吧?然后。呃,你去选择继续或者是不继续,最融目的是得到这么张表格啊,就如说我们。对。我这个图有点太大了。

就看不看清楚啊。就是说当呃我们手里是9关家是6的时候,我们应该继续。那当我们手里是这个比如15关家是6的时候,我们就不应该继续了,我们该停止。那这个表是怎么来的呢?

那其实我们是从通过这个计算了这个获胜的概率啊来实现这个表。这样一个这样一个表,就比如说我们收里是5,专家收益是哎,我们收里是9,专家受收理6的时候,我们获胜的概率是0。47。啊,就比就就是比0。

5少一点啊,那这这种情况下,如果再要一张牌,我可能会得到什么呢?我可能会得到下面这一堆。啊,东西。对吧就我可我可能跑到下面这个我要得到一的话,我就跑到十0来了。我要得到二的话,就跑到11来了。

我得到这个11的话,我就跑到这个20那里去了。对吧。就是说呃如果我决定第号牌的话,那么我下一张牌的这个可能性就在产里。那下面这些状态,它获胜的概率,这个也提前算出来放在这了,对吧?那我就知道哦。

如果我我再加一张牌,我平均的获胜概率应该是什么?就是把下面这些数加起来算均因数。那大概瞅一眼,我发现哎下边这个有几个点是比我的高的,但是好多好多点啊,大部分点都是比我低的。所以说他仔细一算发现啊。

如果我再要一张牌,我获胜的概率大概其实降低了。所以说我在当前的状态下。那应该是升高还是向底下,哎,升高了,所以还是有这一点的大。那我当是当前这状态下,我还是应该继续标牌的。知了。对。

是这样一个是这样一个过程。那。如果要是比如说我初始状态是这个在这里。18。然后呢。呃,对方是在这个还是在这里?6这里是吧?那我是不是要这去要牌呢?我发现。如果得123的话,我这汇生概率是变大了。

但实际上我还可以得到这个更大的数。后面这个就是这个标况没有列出来,后面就零了。所以说益生菌发现货生概率血实还变小。所以在这个情况下呢,我就更该再继续表盘。所以说。对于一个游戏来说。

如果你能得到这样一张表。我现在说的一个表,P,无论能得到这样一张表。而且你还知道。你每次采取一个行动之后,你可能变成哪些状态。那这个主里面每一个点呢就是你的当前这是你的一个状态。

你知道你现在回程概率是大还是小是多少。然后呢,你还知道如果采取一个行动之后,我可能变到哪些状态里面去。如果有这样一张表的话,我就很容易去得出一个。策略操作就上面这个。每种状态下。

我都可以得到一个最优的策略。那现在这个21点流游行因为都比较简单,可能出现的情况也非常少,就大概这么啊100多种流列在这吧。嗯,200多种啊呃每种呢我都算好了,然后。就结束了。

但是维棋的困难在于什么地方?首先你很难把所有状态都列出来啊,维7的状态呢大概有有人算过啊大概有10个170次方左右那么多。那这个数字已经远远应该是远远超过了这个宇宙中的原子的个数,所以你不可能对吧?

就就存下来,你就原一个原子存一个你都存都存不下,反正就就就就这么多。那所以说这个表是不可能存在的。而且更困难的什么呢?即便你有了这个表了。It。每走一步,你都不知道下一步对手会往哪里走。

就是说对手的行为模式呢,你是不知道的。至少是当前你不知道。那怎么办?所以说那个问题就要比这个21点的时候现的问题要困难的多。所以说当是我们应该做什么?现上很困难,对吧?谢谢。啊,对,大家有些问题。

朋友还把这个。哎,没问题。那就说。😊,有同学说怎么去判断这个获顺呃概率的升价啊,就是说。你当前。啊,这个这个说的是你当前采取最最优策略的啊,你这个回胜概率的大小啊。

就是说其前面还有个表是那个如果你不动的啊,你的回胜概率多少,那其实你应该是拿你当前你不动你回收概率跟你如果你动了,你回胜概率相比,看看哪个大哪个小,然后你采取大的哪个是吧?那呃如果你动了的话。

比如说你当前是在6个位置,那你再有一张牌,你可能是7,可能是17。就是你可能结果是从7到17这个范围内,对吧?那这个范围内,你看呃他们如果你在那里再采取最优的行动,你回收概率有多少,你给他平均一下。

你就知道这个呃你采取行动的话,就再有张台,你回成概率是多少。然后你再比较一下,说你如果当前你就不动了,你回成概率是多少,你这一算就知道了。好。这这个问题清楚了吗?好,然后那个这个扣子等会儿我就下课之后。

把那个呃发到群链接里,我下就要发到群里面,大家就可以看到自己自己印行一下就行啊。这上面我都写了解释,就很简单的一个问题。Oh。😮,呃,对。然后那个。这是这个例子呢,就是给大家告诉大家说。解释一下。

为什么当你做一个这样的游戏的时候,你希望。能够得到一个呃。呃,获胜的概率表格。就如果你有的话。也是非常好的啊,为什么你希望去预测回胜概率?为什么你希望去预测啊对手的行为模式。

就是说如果你能够知道你当前的回胜概率,而且你还知道对手会怎么反应的话,就像我们刚才那个问题一样,你就解决了,事情都解决了。对吧但是对于维企来说呢,他可能有比较困难。就围棋的对应状态空间啊。

它的状态是当前局面。以及一部分的落子历史啊,那这个东西。就刚才说了,它的这定义啊,就这个局面的总数非常庞大,不可能像我刚才对21点那样,给它列个表列出来。然后行动空间呢,那这个是比较明确的。

就是说你可以选择不走了。或者选择下一次啊这个落子的这个位置。这个可能性并没有那么多,这个是比较比较比较确定的比较好的。那奖励函数哎也是一样的。如果要是游戏结束了,那你就可以获得奖励或者惩罚。

但是事实上这个游戏过程会非常长,所以说呢嗯。所以说我们希望这个呃去估计一下这个呃每次玩家行动之后啊,这个获胜概率是增加了还是减小?呃,有同学想让我把这个PPT放大。这个现在这个大小的原因。

主要是因为我后边这个地方可能要写一些字。就是我们左边是PPT,右边是这个板数,一般是这样的。你试试看能不能把那个屏幕放大一些。嗯,就是在你的电脑上面。放大一下。对,然后PPT也可以下载。

我已经发到群里面了。大家可以呃就是在你在你门口来看一下,能更清楚一些。好啊,对这这些。😊,第三,这个奖励函数呢跟前面那个问题是很类似的啊,最后转移函数啊,这个就比较复杂了。

因为玩家这这也是我们说动态规划和强化学题的一个本质区别啊。就动态规划,你的转移函数几乎是确应了。那强化学息呢,你不知道你不知道你在落此之后,对方会怎么做?呃。

同学问什麻将可不可以麻将我不知道组可应该也不可以吧。我看应该也是不可。因为呃如果是麻将的话,你当前的局面并不是说所所有4个人手里有牌,你只能看到你自己手里有牌。所以别人有什么牌也不知道。

然后嗯在这种情况下,对方会怎么做。对吧你也不知道,那就算你交对方牌了,他怎么做,你也不知道他也不是一个公开的,它是一个你需要去。模拟的一个东西不是一公开告诉你的东西,对吧?所以麻将是不可以的。

也是比较复杂的。呃,当然围棋更复杂了,他的情况不会多嘛,对吧嗯。谢谢。Oh。好,那这个。那么。没洗的这个。呃,模型呃不能说强化模型了,就是说这个阿拉狗。这这几个版本的模型基本想法是什么?

首先要估算对手的落死概率。然后呢要估算每一个局面上的回生态率。这这两件事就是我们跟才说的。就是我们刚才那个表格,对吧?就是说。我们这个问题虽然简单啊,但是他基本上告诉就是可以作为一个例子去理解这件事情。

我们这个表格是干什么的呢?就是每一个局面上面你获胜的概率,在你自优的行动下,获胜在利。然后。那个这个游戏的规则告诉了你,当你采取个行动之后,对方会怎么做,就很清楚这两件事你就知道了。然后你通过这两件事。

你就立刻得出了上面这个策略表格,你就知道每种情况下你该你该怎么做。就说。但是煤棋没有没有那种办叫估算是吧?所以他主要的任务就做价值值,一个是估算落子的概率分布,一个是这个局面上的过程概率就可以了。

然后他的困难是什么?那估算也是困难啊,困难是局面太多,还有这么多也非常多,不可能得到一个表啊,还有一个就是变化非常多。你做选择之后,对手的这可能选择也是非常复杂的那是难以估算啊,对手的下。

那么咱们这个我们对峙的方案是什么呢?就是说你有了这些困难了。那么既然他最终这个问题经被解决了,现在可以这么认为,对吧?那他怎么做的,他用什么样的方案去对质你这两个基本的困难。定了。对媒体局面太多的问题。

他采取了深度模型,就大家知道他用了深度模型去做了这个呃围棋的程序。但你要知道他为什么要用深度模型。他用这个到底想解决一个什么问题?其实深度模型在这里面起到作用,主要是要解决这个局面太多的问题。就是说。

😊,当你不能怀那张表,把每种局面下的这个不管对手的行为呃,对手的这个落子分布,还是说你当前这个获胜概率呃,写成一个表格的话,如果你不能选表格的话,你可以把它理解成是一个函数。而深度模型呢?

它基本上做一点什么事呢?它就是用一些较叉参数对一个极其复杂的函数进行逼近。这是深度模型,它基本的核心的目的。一个想法,这也是就是你可以认为是呃。所有的这些就是参号参数化的参数模型的一个想法。就说。

那个问题的函数非常复杂,尽量非常多啊。就是弄不了了。比如说你那个看图片吧,你想那个图片。它是一个比如说呃1000乘1000的图片,它有100万个点。那每个点呢它都可以有一个就是一个像素,它可以有另暗。

有个压缩,对吧?那你就等于是100万个不变量。啊,然后你你。每每个增变量还有棱格取值,有一个取值范围,然后得到一张图片。那你现在想知这图片里显示的是不是一个人是一个人还是一个狗。

那你这个时候就等于你是对一个这么庞大的一个自变量,你想得出一函数一个零或者一的函数,它是是人还是狗啊,或者是既不是人对狗的负一啊,你想得到一个动么力函数,那这个函数太复杂了。针对这样复杂的函数。

我们没法去给它对你没法列出一张表啊,所有的这个图片每每一行是一个图片,然后它到底是人还是狗还是狗,不是你基不是人不是狗,你给它列出来,这太困难了。嗯,列不了,跟文学问题一样,这是你的。可能性太多了。

所以说最后怎么办呢?啊,他就用一个深度模型,深度模型就是说他做了一个网络。等于把你的这些像素啊,这些东西给它这个用线性的方式先组合一下,然后非线性做一下做一个层,然后再线性组合,再推线性。

就是说他会把你这个做了若干的变换之后。这些变换的系数你是不知道的,是你需要训练样的,那系数没有那么多啊,你就得出一个正一-一或者零的一个判断。

就是说他希望用一个呃自变量较少的函数来逼竟这个很复杂的自变量较多的函数。他希望做这样一件事情。那么在这个围棋问题当中呢,既然他很擅长于做这种事情。所以文体围围棋这个问题当中呢呃那么呃。

当前的做法也是利用于深度模型去逼近你这个复杂盘数。女孩太复杂了,没俩做生动模型干这事儿。那对于这个难以预测啊,对手落子分布的问题,就所谓落子分布。就是说你做了一个决断之后,对手会怎么做?

这个可能性是有限的,你就知道的,但是它大概往哪块走的概率比较大,往哪块走的概率比较小,这件事你不知道,对吧?这个叫做落子分布,那么怎么去预测对手的这个落子分布呢?哎这个就有两种不同的做法。

在阿法狗和阿尔法狗这里面你就可以看到区别了啊。那阿法狗里面呢。他利用了这个模仿学习。就说他学习人是怎么做。之所以这样做呢是有道理的。就是说。这个围棋业已经发展了很多很多年了,上千年了。

那在这么多年的这个历史之下呢,就是人类已经。对这个维棋的下法进行了很长时间的研究和演化啊,所以他有了很多的想法,很多的这个定式,很多的。这个抽象的看法。那在这种情况下。

你想让一个机器立刻就自己学会那些复杂的东西,是很困难的。所以说你还不如直接学它,就你看看在当前局面下人是怎么走的,然后我就利用这些数据,我去训练我这个机器人。然后我机器人就是跟人走的越像越好啊。

就跟那个专家就是这高手走的越像越好。单走很像了以后,呃,呃如果你在那多往好看几步,如果你在能算的快一点,那说不定你就可以超过人类的水平。这个是呃阿法狗。第一个版本要做的事情太成功了,那确实超过人类。

那第二个做法就是说我们舍弃那些人类的。之前研究的结果,我们直接让这个一个机器人从什么也不会开始,就是说刚刚刚学会围棋的这个呃规则开始,让他自己跟自己下啊,然后呢,每下预盘之后,你就是知道一个输赢对吧?

你知道输赢以后,你知道赢的人大概他的这个呃走的正确的步数会多一些,呃,输的人走的正确的步数会少一些,对吧?利用这种信息去训练自己。然后最后。掌握这个威胁的一个调的下来。这是后来这个阿法狗做的一个。

主要思路就这些部分他们俩区别。你前面那部分呢,他们是一样的。好,那么这个我们。先稍微休息一下,然后我们那个10分钟6回来,我们后面来继续呃给大家详细的介绍啊这个呃什么叫模仿学习?

什么叫做呃这个门槛门桃输搜索啊,什么叫做。就是阿就是如何使用这个深度模型?加上蒙特卡罗数字索来实现一种不需要外部知识的呃。Yeah。我不需要外部知识的一种这个强化学习的这个思路啊。啊,10分钟之后回来。

好,那咱们继续。啊,这个刚才大家讨论的这个论文班,就是这个深动学习论文班。是那个呃我应该是在PPT里边加链接,等会儿大家如果要是呃下载的PPT,应该是可以直接添进去。然后我刚才群里也发了一个这个。呃。

课程链接。Okay。呃,我们继续,就是说我们刚才呃上半节课呢我们嗯。就是大家只梳理了一下,说什么叫做强化学习啊,什么叫做呃就动态规划。然后他们一下说在。维棋这个问题上,我们如果想要强化学习的话。

我们主要想要做一件什么事情?就主要两件事情。第一个呢是用深度模型去描少。嗯,二是这个呃毕竟这个。啊呃,上覆盖率,还有这个对手的行为模式啊,这个个th分布。啊另外一个呢就是。

在你做这个呃预测路go分布的时候呢,可以采取两种不同的做法。一种是模仿学习啊,就是呃训练一个模型去模仿人。还有一种呢就是啊让他自己自己和自己下来做一些强化学习这种做法。那。

我首先看最初版本里面就模仿学习是一个怎么样的做法啊好。模仿学习呢就是利用专家提供的数据啊进行模型训练。就是你希望你知道在当前局面下,那个人类专家是想要怎么做的那。首先它得要数据啊。

就是他从上百万个的这个呃人类的高手对义的起谱程当中进行这个训练。那这个稀谱呢大概是从我们这个呃网网上的对易平台上找到的那。这个呃最终的这个训练结果呢。

就是说它可以对人类高速我的模拟准确率达到57%这样的一个一个强度。那当并不是说呃他43%情况下是瞎走的,他是指说这个57呢和人是一样的走法,但剩下这些走法不见得比人来强,可能也差不多。

然后但是单靠这样的模拟,它并不能够战胜最呃这水平最高的这个人类选手。那这个原因很简单,因为你想你上百万个这个棋图,虽然说这个高手,但他并不是最最顶尖的几个人,他也没有那么多棋图给你用,对吧?

你模仿的其实是这些人以及比他们稍微差的人的这个这个棋。而且你还是模仿,你还不能保保证十分准确。所以你只是用这个东西去跟据下的话,还是不太可能直接就战胜人类的。那另外一个重要的部分呢,就是这个估值网络啊。

就是说估计当前局面下啊你这个。呃,胜负的数据。这个为什么固值网络可以提供一个策略指导呢?这也是根据我们刚才的那个例子里面讲的,就如果你。Oh。这个我们等一会也会用到,如果你当前。

有一个局面还会有这个S对吧?那我这个怎么感觉稍冷啊。嗯,对,你下一点。这样这样好一点啊。😊,🤧因为当天我局面是S。然后这时候你有很多种选择。对吧。你有这个。嗯。就如果你要是下一次,你可能叫做S1。

你先乱那意变成S2。啊,你可以有很多种不同的选择。那没有选择下呢,你还是可以估计一下,你这个时候会什在6转,就是V1,就是V2,这是BKSK。当前的这个呢是V0。那。你下一识之后,你的概率应该。

如果要是能大等于这个位定,啊,最好,或者说你就是想选出那个这个A1到A2到AK。就如果你只用固执网络的话,那么你应该先选取什么策略呢?应该先选一个A等于maximize这个。Okay。

是 maxaxmatic不。对吧。就是你要选取那个使得你获胜概率最大的那种下法。所以说你都可以在。众多的这个呃选择当中找出一个来,这这是利用估值网。但这个说完你发现没有?他其实并没有去想对方会怎么下。

也没有想,就是他他不他不太涉及到你这个V棋的逻辑,就他为什不想你这到底怎么下的,他只需要判断你在当前的状态下,赢的概率是多少,然后选择那个使你赢的概率大的这种做法就可以了。但是如果要是这个。

第一个呢这是这是估质网络做法。那第一个做法呢就是说你当现一个S。上面有好多种。选择你告诉怎么选。这时候你想想人类最强的高手他会怎么选?他选A一的主要性是P1,选A2可能是P2,然后这就是PK。

那你看看这里腊美,比如说这个。P这个。T是最大的啊这TT。Thank you, Mike。P126K光。那么你想人类最有可能下这个呃,人类的高处就有可能下这个,那我就下这个好啊,这也是什么事。

这是第二个。啊,在我们这PPT里面,这个是第一种选择,上面是第二种选择。这是复制网络的。这个呢是模仿的。策略那个弱子弱弱子策略。魔仿。那些还有种做法,就是说。触及了这个第一个版本拿到做法。

它还有一个做法,就是说他采取了一个,我们说这个模仿利用我我们说这个前面这个故事网络和这个模仿用的都是一个呃训练的,都是一个新自模型。在做就他们这个准确率度还是蛮蛮高的这深度模型。那。Tle。

第一个答法我们还有一个做法,就是说他做了一个重典型的模仿,就快速模仿。确始。不。这个作用这个呢也是一个模仿的一个算法。那这个呢不如上面这个方法好。比是说它的这个准确要低,上面的准确有57%啊。

下面的准确大概24%这多的那很明显你就相当是不好了,不好,为什么他要用呢?他想做这样一件事情?就是如果我有这么一种快速走死的方法,就他这个速度有多快,大概是呃。那10的-6次方感那么快。

就可以决定这一这个啊这一步应该怎么走。在这种速度机制下,前面那个是大概10个-3次方,就是就是后面的快速度比前面的快100倍。那在这种情况下呢,他以做这样的事情。前面你不是只看了一步嘛,对吧?包括估值。

包括你这个走损你都只看了一步,它这个你走的足够快,你可以看多杆股一样,从S出发。我可以先猜一下,如果我要是走了A一的话。我S一去了,下一步对方会怎么走啊,他可能我当然也猜对方是比较聪明了。

他可能也用我这种方法去走了他走了这个。啊,B1,然后他跑这儿来了,就是SEB啊。然后呢,下一步我很多走过个走了这个A3是吧,就是。这是一个竖形结构,我走一步,最光走一步,我走一步,就光走一步。

然后每一步的时候呢,下来都有这两种选择。大家选哪一个选择。呃,当然还有一个想法,就是你大概可以理解成选择他这个当前认为最优的选法,是吧?我认为最优想法这么走啊,对方认为这么走,然后这样走走下去。

我看看最终走到某一部分,走到某一个位置,我是当前的这个回胜概率上叫做第一。然后然后我再把这个返回回来之后,我在想,如果换种走法会怎么样,然后对方又会怎么走,所以我预预预演一下我的走访和对方走法。

看到没有?我走法和这方走法啊这个。就是你通过录单测一演呢,你知道。你每次的时候,你都选取当时认为比较好的做法。然后你对这个每个做法,你选取次数那个记下来N1到N2到NK。然后你经过规单区预言以后。

你回来看你选哪个做法走的最多,你就认为那个是最好的做法。所以这个相当于人类的下棋的种想法。就是说我当前就是这种水平了,然后我认为我现在局面我会怎么下。但是我可以多想一步,想对方在这个我下来之。

他会怎么下。然后再想想我在那个时候又会怎么下。那你多想几步之后,你看看跑到一个什么局面去了,你看你局便是变好了还是变坏了,都变坏了,那我一开始这个想法可能就不太对,对吧?我就是多看几这个意思。

但是你想多看久,你是得看的快才行。你要看的很慢,你就没法弄。所以说它就设设计了一个呃速度更快,但是精度更差的一个走资方式。那么这个方式呢结合这个这个数结构的这个搜索。也给出了一个策略。

就是说经过多看见才能买。这三种方法收好哪个好?对吧所以实际上的阿法狗是把这三种方法结合起来,组成了一个混合的。模型。这这三种。的一个混合关系。那这这个混合模型下,他才终于站上来来。就说你只是模仿不行。

然后加上一个估值,然后加上一个策略。那还可能还不行,我商家一块儿。它这个高度才终于超过了这个最场面。啊,我们可以大概看一下啊。Okay。那它的模型训练,这个步骤怎么做?首先。他训练出两个模拟模型。啊。

左边这个批配,这个叫做它叫做roout policy。这个呢就是快速热股这个模型。我们只有下面写的哎24%这个精度的快速乐股的模型。你看这个网络比较小啊,就是原来这个模型稍微简单一些,然后呢。

右边这个就是模拟的这个骆个模型,就是说深度模型,你要网络稍大一些,它的精度也更好一些。另么钱。在实际操作中呢,他把这个模拟的模型又经过了一次呃这个。呃,强化学习,把它给优化了一下。

变成了一个强化的这个乐字模型。那这步怎么做呢?这步者说你现在不是有一个乐字模型了吗?就是一个下法了嘛,那我就让这个机器和自己对弈,然后下几百万次,几百万盘,每一盘呢就会有结果。然后基于这个结果。

你看看哪些下法在当就是呃当前局面下,哪些下法比较好,哪些下不好的,然后把这个强化了一下。就是说嗯因为你之前呢这个模拟的一部分呢,它真的纯粹的就是模拟,他就是希望模拟的越精确越好。

那损失函数是就是人类下滑越接近越好。那它。他的目的好像不是为了战胜对手,而是为了模仿对手而出现的。所以说他希望把这个东西变成正确的目的,正确的目的是战胜对手。所以说呢他让这个模拟好的这个西亚。先自己下。

然后只选那些呃。争取是只选了一些比较正确的下法,那这样得出一个新的问题。这个呢和前面这个其实它差不了太多的,就实际上表现也差不多嗯。就是当时他们的一个解释呢,就是说可能人类下发里边呢呃他有一些大局观。

有一些这个长远的考虑。嗯,你从你模仿出来其实就就挺好的了。但如果你要自己和自己下呢,他并没有能够掌握到那些长远的考虑。所以自己和自己下的时候呃,比如说你下这一步是有长远考虑的,你也模仿出来了。

但是你自但是你机器人并不知道这一步其实是有那个考虑的。所以种下下一步的时候,前面那个长远计划就被这忘了。然后所以你这个。就没用上,所以导致你在自己强化训练的时候,把那些大局端给训练没了。

所以说他可能反差还是差了一点啊,但是这个也就被留下来了。然后最终使用的时候是把他们俩结合起来,就是这个放在一块,好像是大概的是50%对50%平均了一下。然后。你可以把这两个放一块。

就认为是这个中间这个啊。生么模型的这个呃模拟啊。呃,最右边这个什么呢?这个是估值网络。这你看那个训练的过程啊。对估值网络是最后训练的,为什么呢?因为你很难用人类的这个棋谱去训练估值网络。

因为人类起谱这个说有限。呃,太少了嗯,所以他呢就用他这个。强化之后的这个版本的这个这个这个机器,自己和自己下了3000多万盘的飞棋。然后每一盘里面取出一个局面。等于一个局面对应的一个胜负。

一个局面对应的数胜负,它得到了1个3000多个数据点的一个数据数据库。然后用那个数据去训练的它的这个估值网络。那为什么他需要搞出3000多万盘?他的原因就是说。你同一盘里面的两个局面有很多地方是相同的。

这什么意思?还是这样?就是说你下一起的时候,你虽然说变了很多,但是你同一盘时你下了100个字了,和下了150个字了。它那个局面在机器看来它有很多相同的部分,有好多地方是一样的那这样的话呢。

就是说你这个数据不是你这两个数据不是相互独立的,它俩是高度相关的。当你这个训练数据里面呃有大量数据是之间高度相关的时候,你就容易会过拟合。所以说呢他就下了3000万牌。

每一盘只选只选出只随机的选出一个局面。那在这种情况下去训练它的估值网络。就他不能说底盘里面有几载的局验,我都得拿出去。他一盘只选一个,这就防止了它的过离合,这是一个它很重要的一点。所以在这种情况下。

它就可以训练固值网络,就是它是有一个顺序的,它必须先训练这个初级的模拟,然后在这个呃做它这个呃强化的模拟。那么强化的模拟呢,对应几千万盘再训练出它这个固值网络啊,最后使用的时候。

123三个部分各自提供了一部分策略啊,结合起来才达到了战胜人类的高度。嗯,你看这个模型表现。啊,你看他这个分数啊。樊辉呢是那个呃欧洲的冠军啊,是。是20万骑手,他的一个表现呢。

他在这上面的分数呢是在这里啊接近3000那。我们这个阿拉狗呢它有三种做法,一个ro就是那个快速热题这个做法。然后这个mod network就是估值网络。

那policy network就是中间这个呃模拟算法,模拟这个走题对吧?那如果这三个各自只有一个的话,这分数只能达到1500。上下这个程度,那这个还是远远。打不过这个人类选手了啊,那。

那他这里面给我们展示就是说任何两个组合起来,我还是打不过这人类选手。三佳一喜这终于跟人类选手达到了这个相当的水平。但这个呢是说他的机器用的还没有那么多,让他把它这个呃。呃。

你看它这个呃单机呃这个这个GPU和CPU数量增加以后,它这个水平又提高了。当他用用了这个分布式系统以后,那水平进一步提高。实际上这时候这个分数已经达到了。3000多了,那这个时候他想战胜。

这个这里面标注的反馈就已经比较容易了。那,实际上他已经可以战胜啊几乎所有的人类选手啊这样一个故程。好,大家有没问题看看啊。呃,给同学问那个乐子网络什么意思?就是乐子网络,就是我们说这个呃模拟的乐子。

就是下棋嘛,就是嗯模拟的那个模拟人类的那个下棋的网络,就是说。你不是有很多的这个人类基础吗?人类起础就是说。你当前有局面,然后那个专家那个人那个酒段某某酒段,他怎么下的这都有记录的对吧?有些记录。

然后他就利用。这个记录就这个局面以及当时他下颌的那个位置来训练了一个深度深经,然后深深这个深层模型他用的是CNN来做的啊。那。这个网络叫做这个乐子网,就它是用来模拟人类是如何做的。占有西。

然后呃那是深度的乐子,然后它旁边还有一个简易版的,这个用的不是深度模型,他用的是那个比较原来比较简单的那个什么的一些呃。这个具体我就不知道了。

他因为我看那个有较权威的老师解读说啊这个网络呢他们声称只达到了24%的这个准确率。但是呢呃其实只达到这准确率还不足以让它达到就是他右面展示的这种奇异的程度。所以说它可能在这个里面还做了很多优化。

但不怎说,它就是比这个右边的网络简单的一个网络。Yeah。然后有同学问说,3000万盘布局后都不会有重复的局面,为什么只取一个局面,对吧?哎,这个是他一个比较关键的一个点。这你3000万局啊,你确认为。

每一局有几百个局面,那你就是有。啊,几十亿个局面对吧?这些局面几乎都不会有重复的,这是对的。但是呢。在同一局。其里面的两个局面,它们的相似度是很高。就当你渲练模型的时候,你希望你的数据点是越读力越好。

你不希望你的数据点有一堆是类似的,那一堆也是类似的,这个不好,这容易造成我们过聚合啊。所以说它是在每一局里面只选出一个局面来训练。所以他才需要做那么多那么多句,所以他需要很长的时间去训练啊。

这是他最耗时间内。大家认为这个地方讲的比较不是很清楚啊。那我来给大家再说一下,就是说。嗯,从从哪里开始?快速的深入删除这个局面啊,首先解决这个问题啊,就是说这个局面。文章上说是随机选去的。

但是他不一定完全是随机。我想他可能不会选那个特别早期的。比如说刚刚布举那些地方,我猜他可能还是会选呃比较中后期的局面吧。我我猜可能这样这个或者说他要求你必须进入早期的有中后期的。就是他有一个呃采样方式。

但那个说是精新采样,所以咱们不知道是怎么定新采样。对,这个就是他的功能实现的细节了。然后。嗯,有同学说随机选取的重复率会是会很高,我不知道这是什么意思啊。对,应该不会吧。

就是你每一只只选一个总会有重复率很高的。嗯。有同学有问题说。随机选取重复局面的出现,我不认我不这样认为,我觉得不可能的。因为你首先那个局面的肯定很多,然后你只只训练了3000万句,然后你每局只选一个。

他就不会重复呢,我不是明白啊。啊,然后那个。有同学问是是不是单纯是为了过理合才停选,哎,基本上是这样。就是你训练模型,你不能让你的数据会相相关性太高。Yeah。因为因为那个是毁编性的。

如果你要是呃每一局的元素基本都选出来的话,你基本上你这模型就不想了,不能用了。所以他必须牺牲很多的时间的成本去训练这3000万句。然后。呃。对,前面还有同学问到这个快速络子啊。

这个呢我并没有研究过他那个快速乐子网络是怎么训练,就他是说。就说。我们前面说呃,当你研当你想要做一个模型,是逼竟这个人类专家的落子策略的时候,你可以选择这个深度模型,你也可以选择别的模型。

别的模型是什么呢?就是说你只看这个棋盘的局部。你的模型是整个集团整个棋盘都看了,然后他用的CN就是等于你看那个就图图像识别一样的,他整个图像都看了。然后他为了简化呢。

他他把那个他在把这个图图片给分成一小块小块,然后再去看,但是每一小块都看了。然后这个简易的模型啊,他可能只看了这个棋盘一个局部。比如说你当前或者前几步,大家都在这个左下角下的。那他是只看左下角这一块。

然后在这一块这个限制很就是很小的一个范围之内呢,他用一些这个更简单一点的模型。比如说这个。这个回归模型或者是一些这个我看好提到有这个比如说呃线象分类的一些模型。然后来决定他怎么想啊,这样,然后。

这个的话,因为他输的输据比较少,然后他也比较好训练,他就主要是快,就他这个呃快速他这个呃嗯。速度是深度模型的10000倍那么快。然后但是这个准确率呢当然就上很多了。比如说你实际人类到会下棋的时候。

它可能满盘到处乱到处都下。但是你都只看有几步,那你只能是说当这个人类在这附近下的时候,你模拟的标准,他要是跑别地时,你就模拟不出来了。所以说它这个准确率又低了。就他牺牲了一些准确率的情况下,其高速。

它主要为这个。对,这个是这个快速。这我稍微重新梳理一下,就是可能刚才讲的时候我没有照这个图讲的有点乱啊。就是说首先通过奇谱,这是奇普,它训练两个呃模拟的价,一个是简单简易版的,然后呢速度快。

但是准确率低,一个是复杂版的啊,这个呃速度慢,但是准确率也非常高。然后。利用这个准确率很高的这个下滑,它做了一个强化模型,就是说就稍微给它。改变了一下,这不能说改进了。因为实际上都有表现的差了。

然后利用这个强化之后的模型呢。他给他做做我对弈啊,然后呃对应3000万盘,每盘选出一个局面。是这一盘里面有好几百个局面。从开始到节奏结束,从里面抽出一个来,然后得到这个3000万的局面。然后每个局面。

因为它对应一盘嘛,他知道都我们都知道他最后到底是谁赢谁输了啊,他就可以用这种数据来训练一个估值网。然后最后走的时候呢,中间那两个结合起来,作为一个呃模拟。模拟器啊就是模拟人类的一种种一种走法。其中一种。

就是他他提供了一个策略,告诉你该怎么走,基本上就告诉你人类该怎么走。那,左边那个呢。它是一个快速的反现那不准。不准之后呢,他利用了后面说的这个。往前多看几步这种做法。啊,虽然说以看一步不准。

但是多看几步,他会得到一个更长远的信息。呃,他就用这个也得到了一种作法。那,最后他用物质网络也得到一种做法,物质网络怎么走?就是说你看走一步之后,你获成概率怎么走,获成概率才最大啊,这也得到一个指导。

这三个结合起来啊,就得到了最后他这一个法。就是这个中间这个图,这里面最左边的这个分数。那现在这个地方呢有没有比刚才更清楚一些?呃,三个是怎么结合的?呃,这个。我没有仔细的看。

但是我知道他不是很复杂的办法,要么就是嘉线竞争了一下,然后这走。不是不是很复杂吧。就是他当时这个也是那个一个嗯大家觉得他很有可能会改进的东西,就是因为他没有用很复杂的方法去集合。

对具体的就嗯等我要看一下,他们给大家这个确定的数啊。但是这个东西啊呃。很难这个在线,因为他这里面他讲到的一些想法。但是比如说就这个快速root这个网络,就是左边那个。实际上实现起来就很困难。就是说。呃。

也许你能实现它的那个准确率,但是你想实现它这个提力却没那么容易。所以它这里面还是有很多的那个技巧,就是你可它它并没有完全写出来。Oh。好。嗯,大家现在有没有对这个出版的阿法狗有更多的理见?好,好们。

往下。下一个号。哎,有同学问说这个固执网络很神奇,说3000万也无法覆盖全部的。呃,我看他有同学说的是这个3000万没法覆盖这全部的可能局面,对吧?那当然了,那可能局面说是有10的170次方那么多。

那3000万当然是极小的一部分。那神奇的地方就在这里就是说。我们神奇的惊奇的发现,你只用这么小的一部分,自然就可以得到一个不错的模型,这说明什么问题?这说明维棋不是一个随机的游戏。

他并不是就那个10的100多次方这么多种局面,其实不会得出现。有很多局面是。对这位同学说,凡是出现这边都是大概率出现,就剩下那些有些非常不好的下法,可能永远都不会有人那么下。他就是错的。

就是不可能能下的。这围棋其实它貌似有那么多种可能性,但实际上有效的可能性呢,就是人类真正会去下或者是任何一个下围棋的人,有玩家,机器人或者人或者外星人,他真的会去下局免没有那么多。

然后你这3000万可能真的已经覆盖到了其中的就是已经算有代表性。就是不能说覆盖的时候,他可能已经真的很有代表性。所以说他训练出来的结果就已很好。包括这个走期网络。

其实他这个不是他这个应该是比你这个微网络。呃,预测的数字更多嘛,对吧?点进局面你要给出压堆概率。他也一样的,你这个你即便是几几百几百万局棋,你每局棋就算有100个局面,你不也就是。呃,有多少嗯。呃。

几十亿的局面。那你跟那个10个170次方比还是非常非常小的。你居然就可以从这些训练里面得出一个比较好走路策略,你这不也很神奇的事情吗?所以这个应该也说明了维棋本身具有的一些特点,就它不是那么随机的。

它其实。是很有直限性。只是我们以前不做,然后这个训练这种模型的成功就说明了这个问题。这。Yeah。好。然后我们稍微往后。看一看好。呃,那么这个蒙特卡罗输搜索。

我们这个第三部分主要讲的是呃深物模型加持下的蒙特卡罗输搜索。就他主要想讲的。我们这这部分主要想讲的是想说这阿阿狗它呃之所以可以不需要人类知识是怎么做的啊,怎么才能舍弃人类知识。我看前面这个做法。

人类知识是源是源头,这部分是最重要的。你有了这个之后,你才有后面所有东西。这任何一个东西,的源头都是它对没有这个的知识,不知道从何谈体。那怎么样才能舍弃它呢?它是怎么做的呢?哎。

这是我们需要看这个这个输搜索的一些细节啊啊,首先这个其实我刚才画这个图啊,已经定上一定程度上呃,就解释了这个输搜索的概念什么事了。就是你从一个局面出发,后面所有可能局面会组成一个数。

你这一步有未完能选择,到下一步之后,又有未完能选择,不就变成一个数了嘛,对吧?然后。但当你在你预习当就是当你在你头脑中预演这个将来可能发生局面的时候,你不会把这个数里面所有节点都看一遍,那是不可能的。

人想去的时候也不可能,计算机也多保,那他怎么做呢?你只能是有效的舍弃一些。那怎么舍弃?就是利用你当前的知识。你认为在这个基面下最好下的是什么?所以说他大概就往这边想。那对方也是当你猜测对方做不好的时候。

你也要想,如果我是他,我在那种局面下会怎么下,那你再走下一。然后其实你看到这个数啊,你只看到这些数里面的很小的一部分,这个就是这个怕就这个路径啊,只是你只看到很小的一个路径。那到达这业务的时候呢。

其实你也很难一直预想到这只棋下完完是很困难。比如说你现在才下了十几个字。然后你在你想当你研究下一个流量等下的时候,你就把这一盘局都给预想完了再去下,这太长了,计算机也做不到,人肯定是更做不到。

所以说你只能是比如说你预想个几步,你设一个上限,对吧?到几步为止就停了就不想了,到那为止了。然后你这样先走一圈走过来,你看看这当前之间是好还是不好,完后你回去你这个试的多的的想法呀,你就把权重降低一些。

那些没有试的想法逐间就浮出水面啊,你再试试那些没有试的想法,然后你再往上走,然后这样你最终呢就是说嗯比如说你再设一个上限时候,你最终最多就试个,比如1000盘或者是200盘或者是一万盘是吧?

你这个设设个数。那你生完过以后,你把每种做法。看看你最终在哪一种走法上花的这个时间最多,就证明那种手法是在你当前的这个这个啊。知识水平下啊,最好的做法,你就实际上操作,你就选这种做法就行了。

所它就是一种预演的方案,就是跟你的头脑中预想就差不多。那这个。因为这个呃抽长来说嘛,就是为未来局面建立一个数结构,每一节点代表一个局面是吧?每条边呢代表一个行动。这个哎就是一个自我回忆的推荐,对吧?

好呃,继续继续来说啊,就是说。😊,你的每一个行动。我们给它赋予一个叫做action value,就是这样行动的价值。然后呢。你在每一个情况上面呢会记录一个访问次,就是你一共走了多少次这个这个。

这个这个这种走法。然后你再记录一下这个呃在当前举面一下每一个行动的乐词概率。这个概率是你。怎么来的?从你这个快速落取的这个神经网络来呃,就这个这个模型来的,你就是每到一个局面,你运行一下你这个。

这个快速模型你就知道你下一步该怎么走了,是吧?这个意思。然后一开始这个呃呃actionvalue是什么呢?Okay。应该始是H全万有。呃,你可认为它0一开始的时候,就是一开始你不知道怎么做好。

你所知道信息之后面的。法问测水是0,因为一开始你还没有开始做呢,你知道这个路的概率是多少。一开始的时候。那一开始在基本情况下,你怎么处始化,就怎么开始走这个系。就是说你当你什么信息都没有。

你不知道这个XY9,不知道这个跑问次数,然后你只有ro子在率的时候,你首先要走的就是你柚子概率最大问题。等你来了,怎么开始?你在这局面下,你先有一个快速入走的这个策略。那你怎么走呢?

你只能选选那个概率最大的那个方法,那个方法就是你当前认为最好的方法对吧?你怎么走?然后下一步怎么走呢?你还是选按照这个嗯概率最大的方法,你走然后最后走走到一个节点,你结束了,你说你。到此为止。

我获胜概率是30%,那就是30%了。就这样走,最终导致你获胜概率是30%。那这个。在这个之后,你的Q什么呢?Q就是那个回成待率。就说。我走了这么一圈,发现我的后程率率30%。

那我就在这个SA这个边上记上30%写上。然后我下一步走的时候。我看什么呢?就是说。我这个边上已经有30%了,然后我这个。这两项是什么?第一项是这样走的过程的平均概率。第二项是基本上是一个呃我。

本来的策略的loose概率除以我访问的次数是什么意思呢?就是我访问的次数越多,我越不愿意去访问它。就说如果你要是不加这项应发什么呢?你总是在访问同一个策略。就是你一开始的时候,你访问A了,那走到那儿。

你发现这个概率30%啊,其他的都是0。然后你你下次你还走这儿,你就走一圈,你发现还是30%。你就你就是你没有去探索不同走法。那他这个做法什么呢?首先你要走这个呃汇动概率最大的那个。加上一个乘罚项。

这乘罚项就是说。你的这个呃走次越多,你就越不愿意走它。你就形向于走一些你没有走的路,就是说呃就是概率大一个,你就试几次,试几次之后,你发现也不太好啊。这个呃回胜概率太小,这逐渐你这个打惩罚箱还越来越小。

整这两个加小越来就越来越小,你就开始试那个概率第二大那个啊,概率第二大那个呢,你再试试,你发现哎它这个回胜概率还可以啊,这个但是你当你识多了以后呢,这个惩罚线会导致你这个数越来越小。

然后这时候你第三个概率第三个呢就出来了,你就再试试那个然后那个呢。你发现试几次发现这个获胜概率越缩越小,你也不是他了。所以最终导得到一什么结果呢?你是最多的一个方向,就是你获胜概率最大的一个方向。

而且呢你还尽可能探索了几种多多多探索了几种走法。那这个时候呢这个地方你可以加个系数,就Q加上U,这个U的系数越大,那么你就越愿意去探索那些概率小的走法。这个系数越小,你就越愿意集中在你这个。啊。

就是呃固定的做法上面,所以这个取决于你这个模型训练的时候。这属于这个超参数的,就是你看你怎么选,然后。哎,这样一种做法就是说在你的既有支持下,如何通过预演去优化你的策略。这就是蒙特卡洛斯著作的一个思想。

我不知道这个地方我有没有讲清楚。Yeah。他最终的目的嗯。哎,对我觉得可能对同学问这个问题,说明我还是没有打清楚。我再给大家重新说一遍,就是说我想想啊。就说。我们当前这个局面。是S对吧?

然后这个时候我们有现为这这种选择。然后我们当运行到某一步的时候啊,我们发现我们有这个。Q啊啊我这里头没有写这个Q的更新方式,这个是我疏服的啊,我来写这吧。Yeah。Yeah。2。诶系。

当你每模拟完一盘模拟完这盘布之后,QSA等于什么呢?等于这个。NI分值。X here。这个SA。渠道SPR。这个BF。是。我给大家解释一下这个公式啊。就说。也那么从第一步开始吧。我们。😊,到了这个局面。

我们什么信息都没有,我们只知道快速走私网络给我们的一个概率啊,我们知道某一种走法概率最大。好,我们就这么走了,我们就是没有真的这么走,在脑子里想,我就我大概要这么走,对吧?然后呢呃我想想对方会怎么走。

我也用这个快速走私网络给他一个概率,啊后他也找那个概率最大的方式来再走一下,然后这样不断走不断走不断走,比如走了100步,哎,到这停了,我说我最多走100步,我不不多走,可能100个太多了。

就是比如说最多走这么多步不走了,到这为止。那到底是好还是坏,怎么判断呢?我们需要用这个估值网络判断一下。估值网这时候给你一个数告诉你它是好还是不好,就是获胜概率是多少。那这个数。你为什么会跑出来?

因为你一开始这么走了一下。对吧。所以这么走的价值是什么?就是使得你的回成概率变成这个V了。所以说Q一开始是0,没有,现在把它更新一下,更新成什么了呢?更重这个。这个N是一音指。

因为你这个策略你只做了一次,对吧?你只设一次。然后你最终的结果就是这个获成概率吗?啊,你就把这个给金弄有。Oh。然后。其实这个下面每个节点上,你都要更新一下,因为你这里最终把你的局面变成这样了。

你这个呃这更新能么都低。那下一步呢地方它不也走了一步嘛,它这里面也有一个action value,就是它这个地方局面叫S撇,它那个action叫A撇。那这个Q ofS撇A撇,也更新成了这个数。

因为这也是或者一减数则后他他获胜的概率,是一减去你自己你获胜的概率,对吧?那下一步就是你走的了。那你走的时候,你又有一个Q呃S撇撇Q撇A撇撇那S撇撇AP撇撇的这个呃Y6是什么呢?啊,还是你这个OB。

你就这样呢你就在这条路径上的每一条边上你都更新了一下你的value。然后当你下次再推演的时候,你就要注意了。你在这不带有的概率,你还有一个歪路。你个Y的Q。然后这个时候后面业务是干什么的呢?

就是说啊你虽然说走这一步的概率很大,但是你走的次数越多,我就越不愿意这么走。但是你走第二步的时候,可能你。这个仍然是一个很大的概率要走的,你就又走了这个,所以你就第二次访问了这条边。

你第二次访问这条边之后,下面。对手呢他还要第二次访能去小便,但是取决于他这个这个概率分布。可能会产生一个变化,然后又走了一圈,你得到了一个另外一个B,你回去又把这个各个节点更新了一遍。

当你这边这个边访问次越多的时候,你的Q啊就越来越稳定。你就大概知道了,如果你这么走,你会得到一个什么样的。啊,结果。对有了。就会越来越小。因为你看U,这是一个P除以一加N的过程,然又大这个数越来越小。

所以这Q加U呢,它最后可能就是变成一个点小数,就小一些吧。可能它就会小于你另外一个边的那个概率。在那种情况下,他你就不再演这条选择了,你就开始预演另外一个选择。然后你就重复了一遍图案的故事。

你就把那个边的这个呃Y6大概给算出来了。然后你又开始选另外是第三个选,然后你。其实你大概也就不会选太多选择吧,可能设几个,你从这里面选出最大的那个那个Q,就是你要做的事情。呃。同学们说这个。有同学问说。

请问诺此该率的重复次入高如何理解?我不太明白这句话是什么意思。你嗯我猜可能。我还是没看明白,你可以再写一,可以再清楚的写一下嘛这个问题。大家有没有大概明白这个莫托卡这个。想法我有没有讲清楚?啊,对。

有同学说对有同学问说为什么同复次数多的就越不喜欢,对吧?就这个原因就这个U啊,你看你每次落索的时候,你要最大化这个函数。就你该找到那个最个含数最大的那个A,对吧?这个A两部分组成。

一部分是这个QQ是那个你由于这种做法所导致的你的回胜概率。那这个数呢基本上是就是Y嘛,就是你这样做的价值,对吧?就是你占率越高反越好了。右边这个数呢什么呢?是你在这个位置落子的概率除以你的。

就是你在这个方向上推演的。就是你在这个方向推演次数太多了,我就不想再继续推演下去了。因为我觉得已经没意义了,我想再试试别的方法,还这个意思。就是呢最大化这么一个东西。

就是如果最原始的做法应该是没有一个优的,就你只最大化这个Q啊。但是后来可能我发现这种算法,如果你只大只是最大化这个Q,它很容易会卡在一个固定的方这个路径上,你就不再去识别的想法了。

其实别的想法也许也可以的。因为。你这个概率只是看了一部,你不知道下一步怎么样。因为你大家都是这个都是一些近似的概率嘛,你只看了一部。它不一定是真的是最好的。但是因为你只看了,如果你不加按乘法项的话。

你可能只看这个,你不看别的了,你失去了那些探索其他方法有机会。所以说他会加上这个惩罚项是这个意思。Oh。然后。啊,同学问说这个V等于Q加U,不是的,V是那个。V是那个估值网络给你的反馈。

就是说当你推演完了一个路径之后,你会到达一个终点。这个终点出你到底是在此处,你的回成概率是多少?这个是那个V,这是你要用估值网络给你算的那个V。然后这个就问出这个U的R,那这个英文是什么?

U这是Rbound的。嗯。Yeah。然后有同学问你说那个。PV等于F对塔,这是后面写的吧,这不是这部分的。啊,这个是有在这里嗯。这个你先不用管,因为这个图呢是从那个2号go zero里面选出来的。

这个呃其实我们现在讲的是那个2go那部分嗯。比如说这部分其实不应该比如说这个。Thank。他这POV应该从两个网络来的,P是从这个快速路子来的,V应该是从那固值网络来的。你给啥人了嗯。好,这个。

有没有更清楚一些嗯。Okay。其实大家如果想理解这个事情呢,你可以先把这U取掉,就出来。呃,你先不管这个优,你先把它去掉,你就说我每走一步,我先试一下这步,然后按照我们这这个你现有知识去推演。

你到某一步,你看看他这个回程概率多少,你就回来更新一下这个秀,对吧?你就说我这么走,回程概率是这么多,然后我呃下来再走一步,再走一次。然后根据我刚才的这个一些结论,对吧?

我们不是每个节点都更新了一下嘛啊,就不但有概率了。我还知道这个呃我这么走下去呃汇胜概率会就不但有落实概率了。我还知道我们我这么走下去这个汇胜概率多少,是吧?我就。我就再试一遍,我每次都试那个最好的做法。

然后我可能视为若观种走法。然后嗯因为我尽可能是最好走法,所以说我访问最多的那个走法应该就是最终平均起来最好的做法对吧?这样一个想法,但是那样走呢,那样做呢,有个缺点。

就是它可能会让你卡在一个走法上就不出来了,就它当前最好的走法,然后他就一直是因为别的往别的走法没有没有得到更新,你知道吧?所以他就你当前走法是卡住流动了,然后你就没有机会去试试验一个方法。

那为了增强你这个探索性嘛,它在这里面加了一个成画像,就是说嗯你访问多个走法呢,我这个。就越不去的偶啊,所以说你就可以给你一些机会去探索其他走法,是这么个意思。就他听出来就是。哎。

这测演过程就是要求出各个各个路径的嗯value。你要知道各个路程走下去,你最终的那个得到的结果覆败率是怎么样的。然后呢,你就知道。你是。哪个位置比较好,然后你就。你就选择最好路线,是这个意思。

就一开始你只看了一部,就说那个P呀,他等于是只看了一部。当天情况下,我最好怎么走,就这么只看一步。然后这个数字或者说在你有这种水平的情况下,你要多看几部会怎么样,就这就这么个意思。

然后这些个优呢就告诉你,你要多试几种不同的做法。就不要只是盯着你那个当前认为最好的做法,就不断的识别个你再试试别的,说明别的最后告诉你更好。这样一个意思。P是什么意思?P就是你这个落子概率啊。

这快速落子算法给你的漏子概率。当前局面下,你每种做法的概率S的局面,A是做法,P是概率。嗯。好,那那个。我们这个在这个数求我很重要啊,就是大家有问题,我还是希望给大家尽可能的解释一下嗯。我们先解到这里。

然后我们继续往后,等会儿那个如果师后面涉及到这个问题的时候,再有什么困难,大家再再来提问啊。好,那这个。而输索索的这个呃意义呢,就是说它类似于人类在星期时的思维方式,他说可以提高你的落个策略。就是说。

你当前的水平下,你多想几步,你肯定比你至场一步要好,这个意思。然后这个呃阿拉狗的这个快速的的做法呢,它这是它提高速度,牺牲了准确率。然后在这种提升准确率情况下,他对详解和你只考的准确率情况下,只考一步。

这两种做法其实各有优劣啊,这有时候这个好是那个好。所以说他就最后的时候才把这个综合起来考。这是混合策用的部分。然后这个如前所述,这个模拟学习呢对数据要求很高了,对吧?

当我们对一些人类专家数据不够的领域嗯不容易实现模拟学习。那这个时候怎么办?那我们这次涉及的两篇文章呢,就别在独立提出了这个用生的模型加上这种实搜索的方式进行自我强化学习。想你看一下。Oh。

我看我们就是以这个阿号0为例啊,理解这种叫做呃专家expert iteration这种网络。首先,初始化一个深度模型。这什么东西呢?他。北定当前局面,他预测两件事。这PP什么呢?就是说啊。在这个局面下。

我应该或者是我的对手。的乐死的概率就是说你所谓乐死概率就是你有好多种乐子方式,对吧?棋盘上面嘛,对吧?有好多种不同的选择,那没有选择的概率多少,这是个题。我第一呢就是当前的局面下,我获胜的概率是多少。

我们看它就等于是把之前阿巴狗里面的那个。boose策略深度网络和那个估值网络给结合起来了,他用一个网络来输出这两个数,对吧?就他们两个共用了共同的这个嗯开数空间。来输入,这是用了一个网络来做来做演示啊。

Yeah。那么这个。这是初始化。初始化之后你要去优化这个模型,所以你要做迭代是吧?今天第一部分我们又回到这个数来了,我们在这儿再看一下啊。利用这个输搜索对已有策略进行优化,得到一个专家策略。

就你舒始化这个策略啊,这个P啊肯定是比较差的。呃,一开始应该是随机的,就是瞎漏乱走那样一个策略。嗯。你用这个呢对这个初始化对对已有策略进行优化。那怎么优化法呢?就还是我们刚才那个。做法啊。

他这个就画的更简略了啊,就当前一个局面S1。在这个情况下。我就预演一下,我在这个情况下会怎么走,然,对对方会怎么走,然后然后预演出一个结果,然后你看看是获胜概率有多少,再看我我会这么给我换种走法呢啊。

别对方会怎么走呢?然后再预演一下啊,就获得到一个获胜概率。啊后最后你综合学来考虑,考虑那个最终获胜概率最高的那种走法。你把这种走法作为你的下一步走法,你就跑到S2去了。就这些是在脑袋里面想。

然后找到一个最好的办法之后,走到下一步啊,对手。当然这是一个这个呃自我对义来那对手也会。做这么一个网络,他也会这么想,也会做这么一个数,也会这么去预演,然后他又走了一步,然后不断走不断的走。

不断走之后就完了。这是第一部分。就是他这个自我对义并不是简单的用你这个初始化的这个模型去走。对不起他是每走一步的时候都多想一会儿。人类学知识也是一样的。你现在时你不怎么会下棋,对吧?你你就是学了个规则。

然后有人教了你几招,然后你拿这几刀去下,你不会每次都简单用这几招下的。你会稍微想一下,如果我这么下的,对方也会那几招啊,说他也会想究怎么下,然后他会怎么做。那他有可能他用,他就把我的招破了。

这时候可能呢。那如果那样的话,我就不要这么下和换种办法下。那这我也想法,所以你就通过多想几种多想几步这种方法,把你当前的这个策略给优化了啊,优化出一个专家策略。你使用这种专家策略进行自我对弈。哎。

Okay。下一步呢就是你要去呃优化你的模型了,迭到第二部分。游戏结束之后,你获得这个结果。也如说你有一个人赢了有人输了,那获胜的没有专家策略。应该是你呃啊这个说法不是很准确啊,就说你不管仍来说了吧。

你的专家策略应该是比你刚才那处理话策略好的。所以你希望你的这个呃策略呀接近于你的专家策略比较好。就说你一开始有一个只想一步的算法。然后后来你通过这个呃下棋啊,你得到了一个想了好几步的算法。

那你好想想了好几步的算法,应该比你想一步的方法好。所以所以你要改进你的模型,让你只想一步就能达到那个想了好几步那个效果。怎么做叫最小化这个函数,中间的函数。报个屁是这个你当前这只想一步的算法。

这派是什么?是那个呃专家算法。这个是他们俩的相对商,你最小画这个数,就让P和派越接近越好。啊,就是相对商的话,大家就可以自己自再查一下,我不知道了啊。这个是对于这个测这个这个预测的网络呃。

这个这个策略网络的优化。这部分什么呢?这部分说固执网络,因为你那个网络不是输出了一个策略,也输出一个估值嘛,对吧?你这个估值是这个V是你当前网络的估值。Z是。有戏的结果。你为这种是你下一步踏下一步。

你下一步踏下一步。所以说结果就是如果你赢了的话,就是你这步是正一,它那部是负一,这步正义,它那部负一啊这样的一个过程。所以你希望你这个Z和这个V越接近越好,就是说你希望你的估值越准确越好。

所以你要最好化这个。相减平方。最后这个什么?这个是一个。就那个。呃,防止过离合的一些等于是因为这个是比较像那个呃rangech呃re那那就经领回归那种,对这个那参数大小做了一个平方和的一个。一个呃乘法。

就你希望你的这个参数啊能尽可能小一点比较好,那这个意思。所以说当你游戏结束之后,你就要调整你的模型,让你的模型去最小化这个函数,这场景非常是大最小化这个函数。然后这个时候你的这个只看一步策略。

就离你刚才那个看了好几步策略稍微近了一些。然后你哎再来一遍。再拿你的新策略,再下一集棋,每再下的时候呢,你把你的新策略每一步,你又往后想了几步,得到一个更加专家的策略。然后你再回来学一遍。

你再调整里面参数。呃,这样一个过程。他就把你的这个呃估值网络和你的那个策略网络就合在一起那这样的。Okay。这个呢我发现他其实他的这些想法。他所用的这个模块,基本上在前面的阿法格里面都出现。

包括这个数也出现了,但他这里他把这个数加到了训练当中。之前那个数呢是用在了这个对立当中,就到最后一步跟人讲题的时候,它是用这个快速落子和那个树提供了一种下去的策略。就他优化成快速的这个策略。

There's。他可能从那里面得到一些启发,就是说你这个数是可以优化你当前策略。那。如果我从复学习的话,我每次都拿这个数优化一点,然后让我的模型冲着那方向走一点,然后我下次再拿它优化一点。

再让我的模型冲着数走一点啊,冲这方向走一点。这样做法能不能让我的模型最终达到一个很好的效果呢?其实在他训练之前应该是一个未知的,不知道,但是最终实验结果怎么样。然后就确实在几天之内就超过了之前的。

所以说这就证实了围棋真的可以这样做,这个应该是一个实验的结果。这不是说他做之前就能想到的。所以呃应该说这个结果是非常的意外的一个结果,但是非常非常好。这样的一个过程。好,大家对刚才这个有没有什么问题?

我发现这个数字出来了,这个地方刚才其实还是有些问题。哎,就同学学了一个非常好的题方,就说。有没有可能你这个估值网络太不准了,至于你多考了几步,反倒还不如只考了一步好。有可能。但是所以这里面。

就需要你这个呃,所以这只是一个思路嘛,你真正实现的时候,可能是不是需要这个。稍微调整一下,比如说你初始化的时候给的一个这个。呃,我猜他们可能没有用人类知识,那他可能就是这样做,不就他就实现,这就在。

它确实是这长实现,就因为估值网络也是不断进化的。一开始的时候固值网络肯定很慢,然后呢。然后呢,他那个呃策略网络也很懒,然后可能一开始他进化不太好。但是你即使策略网络得到净化。

你那固独网络一定会得到简化的。因为你多下几步,你总会对这个当前节验得到一个好的创顿,对吧?你每次你做到其下好多。你说你。你对完注之后,录完局之后,你的固定网络总会好一些。它好了之后。

自然测的网络也会得到监督。然后他是不是借至于是不是借助了阿过的第一版?呃,我相信他们如果没有说谎的话,那就没有借触。因为他强调的说他没有借助人类知识。如果他用了第一版的,那这个就配有就不对了。

那应该是没有借助。嗯,人类那应该还是没有使用人类的技巧。而且呃这个还说明了一个什么问题呢?就是说。那最终发现这个巴菲re有它比那个。呃,就之前的版本要好,变好很度。

就这可能说明你就是说人类只探索了这个维机可行的一部分的好的方法,好的做法,探索出来的一部分。然后呢,因为人都毕竟有局限性嘛,你的思维不能太活跃,不能太疯狂,对吧?

所以你的想法主要还是依据于以前的人的一些定时一些走法。所以可能越是往后,人就越失去了机会去探索啊,更更加就是更加离奇的做法,但是他们这种训练方式呢,因为他从随机的开始吧啊,所以。

所以他可能而且他毕竟计算机嘛,它可以模拟的局数很多,他这个也模拟了几百万台器那。那他可能探索出了一些以前人类没有找到办法,有好的走法,所以他就可以更好的诞生这个呃过去的版本。但是这时呢围棋的一个问题。

就是说如果围棋真的非常非常的广博,就是说。可以走的话太多的话,那你这种做法应该是不奏销的。就是你训练几百万盘,很有可能你什么都没生产,什么都没训产出来。我觉得这个还是说明了维棋本身是有很强的局限性的。

就是说。你基本上盘真的可以训练出来,只不过人就是做到。人不能那么做,你下一盘棋要好几小时,你无论如何也做不到这么多。这意思你只能通过学习以前人的一些好的算法下法。一旦你学了以前人的好的下法。

你就容易被拒骗。Yeah。嗯,然后有同学问是不是公共网络和测作网络二合一。是的,就他两个合在一起了。然后那个代码的话,我们这边大概没有人做实实现,你们可以查一下,看看有没有新闻。因为毕竟时间比较短。

恐怕你还要再等一等嘛唉。那个之前有人问过那个这个作者,说他们会不会开源,但是他们说呃这个好像比较复杂,应该不大不大会近期,应该不大会开源。我相信他们即使要开源的话,他也要把这个代码给。呃。

优化到一定程度才会开始。嗯,然后对这里面可以学习的东西是什么?就是说。什么样的问题?我们可以用这样的方法去推。呃,首先。你的这个就是像这个方法呀。这个预演刚才有同学提的非常好的一点啊,就说。

你的这个估值网络要稍微好一点,你这事儿才能做。就这个。预演这件事,如果你的规程网络非常差,根本就是随机的随机数,那这就没用了。你多看几部和只看一部有什么区别。这首先你得有一个比较好的能够作为预演的模型。

梅棋还是比较容易做的,而且好很容易做这个模拟,速度非快。他一共每一步就那么几百种做法。然后。你可以很快的就到达中间一步,你就就优化你的相面做法,就是你该走一步,你就是概念上走一步就行了,你就可以更新了。

但如果你这个东西更新很慢。比如说像有人提到说,你做材料科学或者做这个生物学做做制药什么的。你不是说在电脑上这么模拟才是行。你必须去做实验,那你这种太慢了,你就做不了了。所以说呃这是一个局限性。

就大家知道你能够在每一步用这种数搜索的方式去优化你既有的方法,这是不是什么问题都可以做的。这微棋可以,可能很多题业也可以。但是比如说你。电子竞济你去玩这个星际流浪,呃,大概可能就比较困难。因为他那个。

你怎么知道你让你的小兵往前走一步,他那小编会怎么走?对就是所以他那个可能性在就太多了,就更不了好嘛,对吧?嗯,老版的阿购,我猜可能更困难。因为那个里面有很多的问题不好实现嗯,我也可以找一找。

我我们我没有找过,我不知让不让简单的找到。如果你找的话,记再跟大家分享一下。呃,然后就是即使你的这个问题,可以用这种数搜索方式进行优化。你这种训练也不见得能奏效,就说维棋是很惊奇的发现。

原来在那么广泛的维棋的ros空间里面。居然只用几百万盘就可以训练出一很好结果。这件事是不是这件事是实验结果,就这个事不是预先可以预见到的。所以其他的问题也是一样,你只能去尝试。然后当然如果将来有一天。

我们对于深度网络。的理解更进一步,就是我们更能够理解什么样的问题,可以用深度网络去描述。或者说什么样结构神度网络可以更好描述你这个当前的问题。这种情况下,你就可以作个预先的判断说。

我可不可以通过呃比较少的训练量就可以达到一个好的结果?应该说他包括只有这个。实现了它证明了媒体是可以用CN来做一个非常好的模拟的。就他证实了,不能是证明了,就是说理论上还证明不了。

我们实际上谁也不知道为什么CNN可以模拟维信,但是他就证实了可以,就是这么一个一个概念。然后如果你对CN理解好了,将来有一天,你发现哦,其实是有原因的。你可以提出一个理论。

你能够证明说啊CN弄网微信很好弄好那个别的东西也很好。然后那你你就可以把这个东西推广更更广泛的。然后有的同学问说医学领域可不可以做这个计算机模拟各种定历交哎,那这个就不知道了这个。这很难说了。

我听说呃那个现在的诊断已经很准确了,甚至有的时候已经可以超过那个人类意上的诊诊断的准确率。但这是一个呃这是刚需到的问题啊,就是说。你没有现实的病例的话,你在这个医疗上面,你怎么去做模拟啊?那比较困难。

际就是维棋可以好好模你,但是你那种生病啊什么的。就比较难帮你。所以大家也不用太担心说这个强化学习突破了,然后以后什么都没有人,这所有的工作都被计算机抢过了,也不至于。对啊。

有同学说给心脏建立一个数字模型。那这个东西就是给心脏建立一个模型就更困怕,其实不太容易。所以你可以建立一个简单的模型。对他的一些粗粗粗略的东西可以怎么理解。在。这俩都还是不行,肯定还是不行。

目前应该是不行。W。一定要找到一些。简单的嗯。可以描述它重要特性的这个描述方式,然后才能建立这种。不可能每个细胞都给一个位置,然后前体非在太。好,那这个。第一。然后就所有的这部分。

大家有没有什么别的问题?就它的模型非常简单,特别解释这下那个。要好多呃,然后有有路标的,这个到时候会给大家。重播。哦,我给大家报告一个不好的消息,我这个。录播好像只有第一部分,还有第二部分。嗯。

那这样吧这个。我们。呃,我我这个我给得真,不好意思,那这个这样吧。嗯,既然我们第二部分我不好意思,我这个没有回到。但是但是那个。嗯。我PP会给大家,然后大家有什么问题的话呢,还可以到论坛上问。

然后这样的话我可以在论坛上给大家解答一下嗯。那我们问说自己和自己下去的时候,是否自己和自己的策略不同会好些。Okay。这个的话是这样的,就是你当然你不同的话,可能适众会好一些。但是问题是。

当你想优化你的这个策略的时候,你手上只有一种策略。那你怎么办呢?怎么才能让这点直不同了。就是就不好弄对吧?但是他但是他的话这个这个东西。其实你说这个好事儿吧,在哪实现呢?家主要的一依依靠这个优怪实现。

就尽可能去探索一些不同的走法。一直在做这件事情。给你个Q。给你个优,这Q是告诉你。当前这种走法下,你看哪个做法最好。优呢就告诉你说哎你别局限在你现在这个看法里面,你这个你当前这种走法走太多。

就不要再走了,你试试别的啊,这意思,然后你试别的翻译,哎,那个更好,然后你就会不断的再重试重复那个那个重复次数都都更多。但是多了个重复之后呃也不行了,然后你就去试另外的。

就是说原则上说你试了这个数搜索呀,原则上说你可以如果你能试0限多次的话,你就可以得到最后的做的走法,你就一定可以做。但是显然计算机也不能试5000多次,所以说你就有局限性,这个,首先步数有限。

然后这个模拟次数有限。然后你大概找到一个比较好的就可以了。然后ok。呃,我们最后一下。哎,我们是不说完了?啊,对对,然后这个最后说一下就是这两个比较一下这个旧版的阿 go和这个新的阿。

那阿呢是一个混合性算法,有三种主要策略策略来源啊,但是都要记住人类知识。那这个人版呢就是大大简化了以前的设计,啊,舍去了这个人类知识,这是第一个,然后取消了一些因为前面的三种做法。

那其中有一个快速快速效果,是这个想法就已经被整合到那个实当中去,就已没了。然后包括那个数也都整合到实年当中去了?然后。最后一个的是这个实验网络同时给出了这个下次分布和生概率,就把那两个网络也合二为一了。

啊,最后就证实了啊,这是就是说。其实媒体并没有想象中那么复杂,它是真的是可以用CN做一个很好的很好的这个模拟的。然后但同时也说明我们对这个深度模型啊还有非常多的就了解还很有限。

我们不能预先知道它可以可以用,我们只能通过实验的方式才。所以这里面有很多可以直研究的东西,它有很多的潜力。让同学们。就是将来也。可以。😊,想象你们如果要是努力学习的话,就是大家就是增强沟通,的努力学习。

也可以在这方面啊做出自己的一些贡献。好。那就今天的课到此为止,然后啊就非常抱歉,我后半后半节课没有录。然后那个有没有听到同学呢这个。就是大家可以在论坛上提问了,然后我们尽可能的给大家回答啊。

然后OK然后感谢大家,就欢迎大家批评指正。啊,中间就讲的一些包括那个数,我就讲的不认清楚的地方以后,我们都会逐渐的就尽可能的让采取更好的讲法,让大家就是理解的更更好一些。😊。

🤧然后对最后再做一个课用推荐,我们。有一个呃上海的一个人工智能工程师就业班啊,这个就很具体了。你我们就就业班就是说最后会给大家不但是一部分知识了,是让大家能够啊我们所谓从4个4个月从0起步啊就可以。

挑战这个30万年薪的工作。给他。也还是很好,就是因为线下班嘛,就老师同学交流会更好一些,这样好。然后最后这后面那个是数派上数据分析的集训年盟啊,也是我们最近正在推荐的,在官网上大家可以找到。

然后这个我应该在这里面也都加入链接了。如果没有链接的话,大家反正又有二维码,反应大家应该很易找到这些班。然后感兴趣同学欢迎大家报班。然后要努力学习,然后争取对这个人工智能做出更多的贡献。好。

也就到此为止。谢谢大家。😊。