Geoffery Hinton教授的Neuron Networks for Machine Learning的第四讲主要介绍如何使用back propagation算法来学习到词汇的特征表示。
Learning to predict the next word
接下来的几小节主要介绍如何使用back propagation算法来学习到词汇的特征表示。我们从一个很简单的例子开始,介绍使用back propagation算法来将词汇间的相关信息转换成特征向量。
下图给出了一个家庭的树状图,我们要做的就是让神经网络去理解树状图中的信息,将其中的信息翻译成一个个命题,如下面第二张图所示。
现在的关系学习任务是从类似上图中的由树状图中得到的三元关系得到规律性的东西,一个典型的表示方法如下图红色字体所示。要知道,从树状图中搜索这种典型的规律是一个很困难的事情,因为搜索空间是离散的。一个与众不同的方法是使用神经网络来搜索权值的连续实数域,从而尝试从树状图中提取到类似的关系表示。
如果神经网络能够根据三元组信息的前两个信息元素预测出第三个信息元素,我们就说神经网络能从树状图中提取到信息。下图是神经网络的一个示意图,底部为输入,顶部为输出。在底部,我们输入一个人名p1和一种关系R;在顶部,输出则是神经网络找到的与p1有着关系R的人名p2。
现在我们需要做的是对信息以一种中性(不加感情色彩)的方式进行编码。因为前面给出的家庭关系树状图例子中有24个人,所以,在流程图的底部会产生24个neuron,每一个person one对应24个人中的一个。类似的这里应该有12个neuron对应着12个不同的关系,对于给定的person one和relationship神经网络应该有唯一的输出。当然,比如说图中没有给出Christopher的mother,那神经网络给出的答案肯定是错的。
这里截图一下视频中的小测试,我认为还是值得思考的。
我们使用类似小测试中的编码方法,最大程度的减少因编码问题而造成的人物之间的相似度信息,这样神经网络应该就不会得到由不当编码而暗含的关系信息(we’re not cheating by giving the network information about who’s like who)。就是说,对于神经网络而言,人物编码只是一组没有任何意义的标志。
在神经网络的第二层,我们已经得到了the local encoding of person one,然后将其与24个neuron的一个子集联系起来,在这个例子中这个集合的大小为6(一个人最多有6个关系),神经网络需要针对这6个neuron对person one进行re-represent。下图是神经网络得到的信息(具体如何得来的后面课程会介绍),用24维的二元向量来表示每一个人,下面给出了6个unit,上面一行代表英国人,下面一行代表意大利人。仔细观察发现,右侧第一个的第一行全为positive(黑色),第二行全为negative(白色),说明学习到了这十二个人全是英国人;右侧第二个学习到了辈分,辈分最高的人全对应中等大小的方块,辈分第二的人全对应的是最小的方块,辈分最小的人全对应最大的方块;左侧最后一个学习到了分支,标记为negative(白色)的人全都在树状图的有分支,标记为positive(黑色)的人全都在树状图的左分支。(这里是按照应该人一组说明的,对意大利人是一样的)可以看到,神经网络自动的从树状图中挖掘到了一些隐含的信息。
下面两张图告诉我们神经网络学到了什么。
对于大规模问题,下图给出了建议。
这一小节不太懂,希望学过的同学分享一下你们的理解。