00:05
嗯哈,大家好,我现在我给大家带来的是一个关于LSTM原理的介绍,因为我发现在我们社区中有很少有关于呃,神经网络算法这方面的介绍,所以算是给大家普及一下这方面的知识吧。呃,谈起LSTM的话就不得不从RN说起,因为LST的话是为了解决RN中存在的一些问题来产生的,才找到这个L。那么R是什么样的?R的话,就是我们下图所说所看到的这样的一个结构。就看到了这样一个结构哈,它的话,它的话你看起来像是一个链儿一样,这样是不是,是不是现在这样看起来像一个链儿一样。把它移一下。嗯,它其它看起来像一个链儿一样,它其实呢,只是一个单单个的细胞,就相当于这就是你你大脑中的一个,呃,你大脑中的一个脑细胞,而这个的话是表示他,呃潜意识刻,这是表示他是他后意识刻。
01:12
嗯,其实还是这一个细胞,你你明白就是这个只是为了让大家好看一下,呃,他上一时刻的输,呃,输出就会作为当前时刻的输入,带着输入进来,然后他的输出呢,就会作为下一时刻的一个输入,是这样的。可以看到哈,R中的话,它是不是很简单的结构,里面只有一个碳神经网络层,它本质上是一个函数,下面会给大家具体介绍,先不着急,然后还有一个TST是作为他当前时刻的一个输入,以及他的一个输出HT。它结构是不是就很简单?那么简单的东西是不是做不了很多重要的事情?那么我们看一下啊,关于安安的话,如果说我们。嗯,I,其实它的弊端是什么?不能解决长期依赖问题,而我们LSTM,而我们的LSTM的话,也是为了解决这个长期依赖问题而产生的。那我们来看一下什么叫长期依赖问题,下面给大家举了这样一个例子。
02:17
呃,如果说文章的内容是天上云,天上朵朵,我希望他预测出什么,我希望他预测出白云来,那么我在这个结构中是这样的一个过程,它会将一个字段进行不断的分,呃,将这个句子分成不同的一个呃字段。嗯,然后它会经过好多次循环,比如说我第一次循环进来的是一个蓝天,然后我第二次,呃,接收到的是一个上,第三次的话,呃,接收到的是朵朵,然后我我下一识好了,下面就没有输了,对吧,然后我希望下一时刻可以自己预测出白云来。是这样一个过程。就说说他们两个是挨着的,就说我朵朵下面很自然的就能预测出白云来,或者说我很自然的想起来啊,用我们人的思维来说,很很容易就能想起来下面是白米是不是?
03:09
哦,那这个是很简单的,但是但是呢,对于那种长依赖问题。对于那种很长的句子,比如说他出生在中国,去过很多国家,能够能够说流利的什么什么什么,那么我希望他能预测出什么来呢?按照我们人的思维来说。他出生在中国,是不是他很可能能流利的说中文?但是他这个网络他不知道呀,他中国他中间经历了很多很多的这样的段间隔,你看我中国跟我的中文是不是距离很远,中国啊,中间还有这么多什么说什么什么流利,这些是不是都要不断的,呃进入我的那个。嗯,就是我们可以理解为神经元细胞吧,或者说单元。嗯,那我是不是可能就忘掉了我之前,哎,我之前是不是有中国这个词在我脑子中,呃,过来一遍了是吧,那么安的话,它是记,它是没法记忆这些的,因为它里面只有一个很简单的呃,碳函数。
04:14
嗯,也叫碳网络层,那么LSTM呢,是在这个是在这个基础上解,嗯,除了T之外的话,我们还增加了三个什么sIgMa的函数,然后来解决这个问题,下面我们具体介绍一下哈。这呃,我们先来介绍一下它的一个逻辑结构,我们下面还会介绍它的物理结构。嗯,我LSTM呢,它的目的是什么?就是为了能尽可能的将有用的信息,关键信息保留下来,什么叫关键信息?我刚才那个句子里面是不是?呃,中间这些也算是欣喜吧,说流利啊,是不是也是欣喜?嗯,但是呢,中国对我来说是不是,嗯对于我来,对于我能推测出中文来说,是不是属于一个很关键的信息,那么我就想保留这个中,呃,这个中国对中文的呃影响,那我可以,我可以保留他对他的影响,可以设置成0.9%,然后说和流利这些是不是对他来说是无无关紧要的东西啊,我可以设置它的,它的保留权重为0.1。
05:19
啊,那我最后是不是他对他影响最大了。那我们就能推出中文来了。嗯,所以LSTM的话就是解决这个问题的。将有用的信息保留下来。管理信息保留下来。他是怎么解决的呢?他是在in的基础上。增加了什么?他是怎么在R的基础上进行改进,然后来实现这个目的呢?嗯,他除了在原有的H线。呃,保留原有的H线之外,还增加一条叫做嗯c state,也就是单元状态线,就是这个上面这一条,你看到这一条线。这一条线就称为是。
06:01
S。他也称为C。这个是在an中是没有的。R中是没有的,我们看一下哈,安中是怎么样的,安中是不是断开的这一块,你看他过来之后,这样,它是不是中间这一块没有,他没有一条贯穿哦,从头贯穿到底的一个C线对不对。这是他第一个不同,第二个不同是什么,可以看到啊,我们的,我们这个是不是增加了很多的门。嗯,我们原来的R的话,只有一个碳函数,而我们这有多少。这个笔好难弄。哦,在这。那么我们是不是增加了,又增加了三个,可以看到吗?我先把它清一下哈。
07:01
我们是不是除了这个T之外,我们还增加了这个S,增加了两个S函数?它们的统称为是激活函数。我们正是通过这些函数来实现它的一个预测功能的,就是控制重要的信息保留下来。还有一个是什么,它的它的那个自然循环的权重是变化的,对于他跟就是它跟那什么的不同哈,我这应该标重点的就是它跟I的不同,它的自循环的权重是可以变化的,就是我第一遍,我第一遍输进来的这一些的话,经过呃,经过这些函数的一些,经过这些函数的一些处理,那么我的权重可能就不一样了,我第二遍再输入的时候,它的可能就不一样了,嗯。也不是这样,应该是应该是这样的,比如说我中国。我中国这个哈,中国有用的信息输入到我脑子里面的话,我给他权重是0.9,然后那些说呀流利呀什么的,呃,在经过我的这个脑子的时候,然后我给他的权重是0.1,那么它这个权重是可以自己变化的调整的,但是呢,你对于碳来说,碳来说它是没法,它是没法这么随心所欲的进行调整的。
08:11
你们可以可以给你们看一下碳函数的一个,嗯,一个那个。他的一个。它是一个什么样的函数呢?它是一个S线的。嗯,它其实是一个这样S线的函数,大家找一下。它仅仅就是一个这样的函数,那它是没法控制权重的,就是我如果只有这块没有没有加权重的话,我是实现不了这一块的。就是他没法,嗯,通过我我我增加了这些,呃,这些粉红色的圈。粉红色圈呢,表示的是它里面的。
09:02
在这里面,这些粉红色的圈表示的,嗯,是它的运算,它这里面涉及到两种运算,一个是按V乘法,还有一个是按V加法运算,嗯,大家可能不太清楚什么叫按V乘法,或者说你根本就没有深深究过这个问题。呃,我们先来看一下普通的。乘法运算矩阵乘法运算。是这样的,这是你们所见到的,就是说我要求那行的数的话,我会。啊,我第一行,呃,第一个矩阵的第一行去乘以第二个矩阵的第一列,然后形成第一个数,呃,叫做58,然后它是怎么一个构成呢?一乘以七加上二乘以九加上三乘以11。嗯,得到58就确定第一个数,同样的道理。我。我第一行。第一个矩阵第一行去乘以第二个矩阵的第二列,然后确定这里面第一行第二列数就是一乘以八加上二乘以十什么什么什么,然后然后最后得出了这个和就是第二个数。
10:08
这是大家所知道的关于线性代数中的矩阵相乘,但是我们这里是不同的。我们这就叫做按位乘法运算,哦对这个主点乘法用什么表示,是不是这种符号,就我们常知道差,然后或者说点都可以,或者说省,呃,省略不写不行。待几郑州。然后我们的二位乘是什么运算,二位乘的话是对应位相乘,我一乘啊。我一乘以零,然后得到我第一个数这,然后我三去乘以这个数。去乘以对应对应的第,呃对应位置上的这个数吧,直接这样说就是得零是不是,然后我第二,然后我二的话,去乘以这个对应位上的这个数,然后得的是二乘二得到四,诶就这样就很简单是不是。然后那么安安加法呢,安位加法也是这样的。
11:03
IV Java。它也是这样的,是对应位上进行相加,我现在是相乘。值得注意的是,什么是它的符号表示?按位乘法的话,它是用新花来表示,或者说这种圈点。你们可能之前没有接触过,一定要记住这个他是用新华或圈点来表示,你千万不要把它弄混成这种差。它是不一样的运算方式的,现在是不是也给大家介绍了,一个是什么对应行相乘啊,一个是对应位相乘,哦对,还有一点是你要你要进行按位乘法运算的话,你必须要保证它是同行的矩阵,什么叫同行矩阵?我第一个矩阵是M行N列,呃,不是N行。N行M点,那么我这个的话。也必须是N乘以M这样的形式。比如说我这是三乘以二的一个矩阵,那我这也必须三乘二。要不是不是就空出来了,我如果说这个下面这个比它多一行,比如说有一个311,那对,因为这个谁给他去商城呢,是不是。
12:06
所以,所以必须强调它是一个同型矩阵。同行矩阵,然后第二个这是第一个点,第二个点的话就是它的符号表示。因为这个的话,我在学姐的一些论毕业论文里面,然后就看到过,嗯,她那个论文里面是弄混了,将这种心和这种差都弄混了,他根本就没有理解到这一层。然后呢,在这个图里面还有一点值得注意的是它的线。它这里面是不是有断开的这种线,断开这种线的话表示的是,呃,这个肯定是。表示是不传输过去的这个信息。这笔好难用啊。
13:11
这一块。你看到了吗?这个这个断开的这个线,断开的这个线的话,表示这消息不会传过去的,然后这种合并的这种分开的线是怎么回事呢?我数据过来之后,它会分开,表示是同样的消息,从呃就相当于复制了两份板,我一会往这走,一会往这走这样的。然后合并起来的那种的话,嗯,比如说我我这一个数过来,以及我这个数过来,它是不是有个合并,合并的话表示这种串联。其实在我们这里面体现出来的话就是拼接。鼻疾。将他的举阵,将他的矩阵进行了拼接。下面给大家看一下。就是这种拼接。它输入过来这个的话是这灰色这个的话是HT。
14:12
灰色的这部分的话,表示的是HT2,呃,不是X体,而橙色橘色这一部分的话就是HD演液,然后再经过这个地方,它俩是不是有一个汇合了啊,他这汇合的话就是让他俩拼接起来了,然后再进行后续的一些步骤。嗯,我回到这哈,我们再讲一下LTM的核心思想,它可以可以在这个图里面看,很明显啊,它有一条C线,就刚才大家说的那个传送带。再有长期记忆。这些。然后这H的话是短信机线,然后X的话表示当前世界的一个输入。嗯,它主体的信息的话,都会在这个C线上进行传递,就刚才给大家介绍那种传送带的形式,我我我想要的这个句子,这些块,呃这个或词块,比如说呃,它然后出生是一个块是吧,这样然后这些都相当于一个个小物品一样,然后不断在传送带C线上进行一遍一遍的传播传送。
15:14
是吧,然后我需要啥就在下面进行去,就这样一个概念。然后呢,他嗯,他那个他跟安最大的不同,你知道在哪吗。是在它的门设置上,它添加了三种门,遗忘门、输入门和输出门。他通过三种门来控制它的单元。他哦,对,他这个遗忘门是什么意思,遗忘门的话是遗忘条不重要的信消息,而保留下重要的信息,比如说我们那个中国字段是不是很重要这个。但我要保留它,然后那个那些什么呃,流利的什么什么什么玩意儿,然后说呀什么什么的。
16:04
说。啊,我这些都不重要,那我就不保留它,或者说给他很小的权重只有0.1,它的话我就要保留,那遗忘我们就是这样的作用,我们下面会具体介绍一下。嗯,再看一下它的物理结构,可以看到哈,这个是它的一个逻辑结构,这是它的物理结构。他们是不是相对应,呃,看颜色的话,它是不是相对应的。啊,这是什么蓝色呀,这边也是这种蓝色。然后角色什么的,然后就你就可以混合着来看就好了。他们的话就是输入,输入的话就是两部分进行的一个拼接,一个是HD点,一个是HT。这两部分进行一个拼接。拼接之后的话,会作为下一识刻的一个输入。嗯,不是下意识刻,是当前时刻啊。不好意思,口误了。他会再进行其他的运算,什么按位乘法运算呀,按位加法运算什么什么的。
17:04
嗯。那么下面具体介绍一下门儿。嗯,遗忘门的话,遗忘门它作用是什么?遗忘掉或丢弃掉一些信息。它结构是这个样子的,可以看到在图里面哈,我就是嗯中那个黑色线标中这一块就是它的一个遗文纹结构。他遗忘名的话,它会取一个数值,它遗忘那个数的话,会有零到一。他会给一个这样的值,如果说我是跃近于零,比如说我0.1,那我就想差不多就是把这个词给忘了,对不对,那我如果说0.9,比如说中国那个词,我给他0.9的权重。嗯,那他是不是就保留下来了。然后它是一个怎么样的一个,呃,公式呢,在这里面。
18:00
它其实是将HT和HT减一,就上一时刻这个输出嘛,和HT。呃,输入那个这一部分你们知道的哈,它都是它是一个拼接。哎呀,这个笔。他俩进来之后。这个地方是进行一个拼接。拼接成一个新的矩阵,然后呢,它的拼接是怎么回事,就是我原来比如说是110这样的一个矩阵。嗯。稍微的有点。然后呢,我跟一个新的矩阵进行拼接,比如说是呃,全是一的吧。那拼接出来的新学人是什么样子?是?直接把它放这儿。嗯,OK,这是我刚才这个矩阵是不是,然后呢,我再把这一块放在这1111111这样,诶这就完成了一个拼接。这就叫这这个就叫做拼接。
19:02
然后呢,它们拼接之后会经过什么?会经过一个smo的函数。就这个这我的C函数。就是一个这样的公式,STEM函数。SIgMa函数。嗯,它是形成的是什么东西形成的是这个FTFTT,我们称为是什么遗忘因子,那么遗忘因子这一块再跟这个CT减一,它两个FT。在跟CT减一进行一个暗位按位程,我们用什么表示?是不是脚签?CT建议。FT,那么这两部分进行运算之后,就会就就可以输出了,就就可以往下一时刻进行输出,下一个运算进行输出了。那那这就是他的这个遗忘门的一个过程,那么我们再介绍一下它这个遗忘因子是什么。遗忘因子大家可以看到哈,它是一个C格摩的函数,是不是经过一个C格摩函数处理,那么S格摩函数里面的话是,呃,你自己给它的一个权重,然后加上这个这一块,这一块是什么?是不是咱们刚才所说那个矩阵拼接。
20:11
这个是矩阵拼接。他就这样表示。然后再加上一个偏执,你自己加的,这两个书都是你自己加的,然后是为了调节它,你你不是咱不是有那个训练集,然后还有什么测试机啥的吗。就是你根据已有的数据,呃,这些训练机里面的数据,然后你不断的调整这个BF和WF的这这这两个权重,然后使它这个公式更加吻合。那么我们就可以正式的运用,是不是就这样?然后我们来看一下sIgMa函数是什么样子的。C函数,呃,如图所示,是一个S形,但是它这个图里面有很多的讲究,下面给大家一一道来。
21:05
可以看到它的它的这个,嗯,范围是不是从零到一。那么它的均值在哪,是不是在这一块。0.5,那它就是有一个0.5的偏置。你聊我的片子。这是他他的那个含他的那个式子,你这个在呃运在那个你训练中的话,你就可以直接输入到你的系统里面去了。嗯,这是两点哈,还有一点是他的梯度消失。这也是我们在做,呃,算法训练的是很重要的一个事情,在这和这是不是发生了梯度消失。就是说它越接近于10.1的时候,它的变化越小,这个梯度是不是梯度的话,我们可以看得出它的斜率。我们数学中所说的斜率。这一块是不是越来越小,或者说嗯,对,越来越小,那么就会产生一个梯度消失,以及我们这一块从零刚开始的这一块也会产生一个梯度消失,这个其实是一个不好的现象,然后我们后期会解决的,但是在我们介绍LSTM中的话,嗯,暂时先不给大家展开介绍,他后面的话会通过一个嗯这个。
22:17
Relu函数来解决它。等会儿我们再介绍这块儿。先给大家介绍一下sIgMa函数是怎么样的一个公式,那我们就是这个公式,我把数代进去。嗯,这个的话是为了图的话,是为了让大家了解C函数是怎么样一个图像,它存在哪些弊端,以及它的一个偏置。OK,我们继续哦,那我们以往们就介绍完了,然后我们介绍一下输入门,输入门的话是,嗯,如图所示啊,它是从HT减一和HT这两个输入进来一个合并,就还是这一块拼接嘛。矩阵的拼接。然后要经过两个,一个经过C格的函数,一个经过呃,碳函数,激活激活函数,这两个都是啊,也称为是神经网络层,然后呢,经过s sIgMa的话,会形成一个it,然后经过。
23:15
然后经过那个嗯,探的话,我们会形成一个呃CT,这个一开始我理解为他是一个CT工作。但后来经过老师跟我说,他说这个其实就是为了区分跟CT减一区分啊,加了一个这样的符号,你们可以不去深究它的这个这种符号,呃,后期如果有改进的话,有新的认识的话,会带给大家说的,因为现在在呃,我们市面上普遍的文章里面,我也没有看到他关于这方面的介绍,甚至很多文章里面对于他是按他怎么是安卫城啊,怎么叫主点城都没有介绍。所以说你今天你如果说想了解这方面的知识,来看我这个视频,我觉得你是。嗯。
24:00
找到了一个好的。好的,知道。嗯,可以看到哈,它这个函sIgMa函数跟这个碳函数它其实是差不多的,但是它里面的公式是不一样的。这个这里面是不一样的,我们我们点一下smon,呃,点击一下T,我们刚才介绍过S。T函数呢,你大体一看,诶,怎么是一样的图像是吧,但你会发现它的公式是不一样的呀,这是我们的S格函数的公式。那肯定算出结果一数一样的对吧。这个是我们smare的。然后这是我们看的肯定不一样对吧,但它的图像表示是差不多的。这是碳函数,碳数它的区间我们可以看一下,这也是不一样的,它是从负一到一,它的均值在哪?在一,零上。它这样就不会产生偏移现象。
25:00
嗯,而且它是不是跟那个呃,SIgMa函数有一个一样的问题,都记录消失。那么解决T消失怎么解决呢?这大体给大家说一下,它是通过后期优化的话,我们可以通过re Lu函数来解决,Re用函数化,如图所示,它是在超过零的时候才会被激活。啊才会被激活,然后它的它的范围是零到十。它最大的特点是不是这是一条斜线,斜线的话我们知道这叫什么,它的斜率是不是一个固定的值。它斜率是不是一个固定的值,固定值的话,那它的梯度是不是就是一个稳定的值,我们的梯度就相当于我们数学中所学的那个斜率。那好了,那我到这个地方的时候也不会产生系统消失的现象,对吧,这个的话后期会用到的,但是我们在本本个LM介绍中先不给大家展开说。
26:10
然后呢,它会将it和减供轭的话,会经过这个逐点程运转。然后会做下一个输出,会做下一识刻的一个输出,然后再经过一个逐点加法运算。然后就输到C线上去了。然后呢,下面有一个单元更新,什么叫单元更新,单元更新的话是不是大家可以看到哈,我们刚才两部是不是都把呃,那我们的我们的遗忘门这一块,遗忘门这一块,以及是我们的输入门这一块,是不是最后都将都将那个东西输入到C线上去了,那我一开始输进还是CT减一,然后我又嗯,我CT减一这个数过来之后,根据我第一步这个处理进行了一个逐点乘法运算,然后呢,我又往前走走走走走,诶这第一个状态哈。
27:02
得到第一个,得到第一个状态,这样跟大家说。我CT减一过来的,诶,我经过一个中点加法运算之后,然后我变成了CT减一杠一在这哈,然后呢,我又跟这个第二步输入门过来的处理后得过来的这个值呢,呃,进行了一个逐点加法运算,那我现在得到一个什么,得到CT减一杠两撇,然后也就是我们这个CT,我就输入了,我是不是这个细胞已经更新了。对吧,我是不是下一遍再输入进来的时候,它已经是一个新的了,新的CT了。就是这样一个过程。那么它公式是怎么表示的呢?故式里面表示成这个样子,就是我们里面所说的这个啊,他俩他这这两部分进行一个主点乘,然后再再加上再加上什么,再加上这后面这两部分进个电成。住电车加上这一块。
28:03
他俩会进行一个那个安危。哎呀,不好意思啊,不是不远城,是安慰城。全这样围城。嗯,说说溜嘴了,然后这然后呢,这两部分的话,会进行按位加法运算,那就得到新的值。然后我们输出门是怎么回事呢?我将输入嗯,过来这个信我我传送带上已经更新了,对吧。那我想输出一个下面输出在这儿呢,那我输,那我输出门的话,就是将一些信息,然后输出到这儿来。它是为了是传递,再将这个信息呢,会传递给下一个单元,再作为一个新的呃,HT点一输入进来,它这个公式呢话是也是两部分构成,一个话经过sig函数进化函数,另一个经过碳进化函数。Simon,结合函数的话是这一块。他将WW0。
29:01
这个是你自己给他的一个权重之号W。然后,然后与它形成的这个拼接的这个矩阵,就这两部分,呃,进来之后进行的这个矩阵拼接这一块过来,然后你自己乘一个全重,诶你有没有注意我这中间是不是没有东西,没有东西。是不是我这里没有什么惩罚啊,也没有新花这样的吧,那我表示什么,就是最简单的这种安慰,这种叫做朱点城。朱点城,这真的是驻点城,然后下面新花这种是叫什么?叫做暗卫城。不一样啊,他俩不一样。然后HT,我们再看一下HT哈,HT的话是这一块得到HT这一块的话,我是是不是将这个OT这一个,然后然后通过这个安位成,然后与这个碳函数处理过的这个CT啊。
30:03
是不是是不是经过,因为它这个地方产生的不是CT,检疫过来之后会产生一个CT吗。是不是就我们这个图里面是不是CT,这个线上全是CT。啊,将这个更新过来的细胞这一块。经过一个碳函数,然后与它进行一个暗围成A。好了,我输出了。这就是他的一个过程。最后这一块再给大家表示一下哈,这个地方是CT。然后A过来了,过来,然后我OT这个地方也过来了,然后CT在经过它函数处理之后,再与他进行一个安围成,然后AA输出了这个地方就是HT。这就是叔叔们了。那么总结一下,嗯,现在大给大家介绍的是关于LCL的内部结构,我们是不是介绍了他的一个逻辑结构?逻辑结构,还有它的一个物理结构。但是我们介绍逻辑结构要更多一些,因为这一部分是重点。
31:02
然后呢,我们是不是区分了安。和LSTM的一个做一个区分。I是不是很简单?中间值是有一个T的函数层RTM是什么?是不是加了在T的基础上又加了三个smo的函数?能使它结果更复杂了,是不是,他除此之外还加了一个什么,加了一个C线是不是。呃,他通过增加这一些的话来实现他能够更长期的记忆,呃,而忘掉不重要的,不重要信息是什么,使用那些流利的。嗯,说那些重要的是什么,是不是中国。是吧,然后就这样一个过程。然后具体的门介绍,是不是给大家介绍了三种门?三种,呃,那个遗忘。然后输入。输出。
32:01
这个非常非常重要,你如果其实这些图网上都有,但是呢,你如果只看网上那些文章,你是不懂他这个过程的,你你只有通过这样的视频的讲解,你才能理解透它里面的内容。也就是通过这一些东西的话,那个L的话,就不会像简单一种记忆方式,它不是还增加了一些权重什么的,这样的话就能达到长期记忆的效果,也就是说实现长期依赖。嗯,但是呢,嗯,说个题外话哈。其实在实际中的话,我们使用的并不是LSTM,我们使用的是这个。我们使用的是。Are you。它俩是效果是一样的,但是这个参数要更少,就更方便一些,嗯,你们可以后期了解一下好了,这就是关于这一块的整个介绍了。
33:07
嗯的话可以在评论区留言,然后我们,呃,或者想要资料的话,也可以给你们把PPT发上去。
我来说两句