只记得我在一个昏暗潮湿的地方喵喵地哭泣着。
——夏目漱石《我是猫》
到目前为止,我们看到的神经网络都是前馈型神经网络。前馈(feedforward)是指网络的传播方向是单向的。具体地说,先将输入信号传给下一层(隐藏层),接收到信号的层也同样传给下一层,然后再传给下一层……像这样,信号仅在一个方向上传播。
虽然前馈网络结构简单、易于理解,而且可以应用于许多任务中。不过,这种网络存在一个大问题,就是不能很好地处理时间序列数据(以下简称为“时序数据”)。更确切地说,单纯的前馈网络无法充分学习时序数据的性质(模式)。于是,RNN(Recurrent Neural Network,循环神经网络)便应运而生。
小结:RNN出现的目的就是:处理前馈型神经网络不能解决的问题--时序数据,说人话就是单方面的恋爱几乎没有结果,可怜了一厢情愿的痴儿;这时候,感情大师RNN出现啦,大哥帮痴儿解决一下单相思的缺限,两情若是长久时,又岂在朝朝暮暮?
本章我们将指出前馈网络的问题,并介绍 RNN 如何很好地解决这些问题。然后,我们会详细解释 RNN 的结构,并用 Python 对其进行实现。
5.1 概率和语言模型--2024.4.22
作为介绍 RNN 的准备,我们将首先复习上一章的 word2vec,然后使用概率描述自然语言相关的现象,最后介绍从概率视角研究语言的“语言模型”。
5.1.1 概率视角下的 word2vec
以上是通过两边的单词预测中间的单词的CBOW概念讲解。
接下来是通过一侧的两个单词来预测旁边的单词,举个简单的例子,就比如说“娜儿,我喜欢你。”使用这个模型预测“我喜欢(空白)”,机器就会自动联想到下一个字很大可能是“你”这个词汇的。抛开这个话题不讲,这让我不禁想到了各类输入法的联想功能的,感觉这里学习的这个功能好像输入法联想功能的简化版的嘞!调皮
这里主要叙述了CBOW模型的交叉熵的写法模式以及晦涩难懂,看起来很吓人的数学公式,呵呵,一个纸老虎罢了。
又和交叉熵老兄重逢,开心!
5.1.2 语言模型
了解了语言模型是个啥子的,说人话就好比你在表达对娜儿小公主的爱慕时,算法告诉她:“这家伙在表白,所以尽量多给这家伙输送表白土味情话,绝不可以给他推送分手的伤感语言的,要把情话概率调极高,分手伤感语言的推送概率调到极低,快!!!”输入法知你心意,不会为你在输入了一半恋爱情话时,当个智商250的人工低能儿,为你后补一句:娜儿,我真的很讨厌你一样。这个要是发给了爱恋的女孩,那这个智能联想功能的差评绝对满天飞,输入法会被用户差评到自闭,怀疑机器人生。最后结果就是宣告优化输入法联想功能,这让我不禁想到小米CEO雷军曾经在小米发布会上问人工智能小爱同学:“三个木是什么?”小爱姐机智地回答“人家还小,我不知道的”导致雷总直接暴口:“这绝对是捣乱的!”
初步引入连续乘积的表示方法的,激动!数学上还没学,又进步一点点。
介绍了高中知识点:事件A在事件B的情况下发生的概率,以及事件B在事件A的情况下发生的概率的区别,避免混淆。说人话就是:举例:事件A是:今天特殊情况,放假休息一年 概率为0.5,事件B是:今天安夏走了狗屎运,找到了一个温柔似水,也喜欢安夏的女朋友的!概率:0.1
这P(A,B)=0.5x0.1 = 0.05(这里仅仅讲的是两个相互独立事件的例子)
这里讲述了用拆分法(说人话就是:例如:980x5不怎么好算,咱们可以把他拆成(1000 - 20)x5的算法来简化运算的。上述道理一样)来简化理解联合概率的。