论文传送门:
https://arxiv.org/pdf/1703.00810.pdf
(一)简介
上面这个图是论文中第一个实验结果,展示的是信息平面(Information plane)在训练过程中的变化。左图训练了5%的样本,右图训练了95%的样本。
所谓 Information plane,和X-Y平面一样,也是一个平面,不过information plane的横纵坐标是互信息的大小。横轴是I(X;T),也就是输入和隐层T的互信息。 纵轴是I(Y;T),也就是输出(神经网的决策)和隐层的互信息。信息平面的位置体现了不同的隐层保留了多少关于X和Y的信息,如下图所示。
实验结果里那条粗的竖着的渐变色的曲线,是随着迭代进行,某一隐层T包含的关于X,Y的信息量的在信息平面上的轨迹。深紫色是开始迭代,颜色越黄表示迭代越多次。
实验结果里细线连的是一个神经网络中不同的隐层,右上角是第一个隐层,往左下依次是第二到五个隐层、输出层。第一个隐层自始至终在信息平面右上角,训练过程中,它的位置没怎么变,一直包含了很多关于X,Y的信息。而后面的隐层,包含的X,Y的信息逐渐减少,但是随着训练,在信息平面的位置发生了较大的改变。 这个改变分为两个阶段,按照作者说的,一个是“学习阶段”,第二个阶段是“压缩阶段”。一开始,隐层会学到关于输入输出的信息,所以在信息平面上朝着右上方移动。第二个阶段,隐层开始忘记关于输入的信息,包含的关于X的信息开始下降,朝左移动。
(二)实验设计
(1)网络结构:
各层级点数: 12(输入)-10-7-5-4-3-2(输出层)
激活函数:输出层(output)使用sigmoid,其他层使用hyperbolic tangent
损失函数:交叉熵
训练方法:随机梯度下降
(2)实验任务
输入数据:12个二进制输入(即2^12=4096种pattern),这12个点在球面上均匀分布。
输出标签:二分类,即0或1
——————————————————————【注】————————————————————————————
学习一下大佬zhuangbility的姿势:
binary decision就是两种决策(就是2分类)~
O(3):这里O实际上就是 Orthogonal,3就是三维。是群论里群的概念。O(3)实际上就是所有3*3的正交矩阵构成的集合。 正交矩阵是一个旋转矩阵 ,这里说的 “ invariant under O(3) rotations of the sphere ",意思就是使用在三维空间里,使用正交矩阵投影(实际上就是各种旋转),决策不会受到旋转的影响,始终是不变的。
2D Sphere:就是我们日常里说的球体。这个挺有意思的。放一个网址:Is a shpere 2D or 3D
http://mathforum.org/library/drmath/view/54696.html
我们平时所说的球,的确是由一大堆3维空间里的点构成的。首先确认一下,这里说的球,实际上是一个球面,而不是实心球体(回想一下球的定义,到球心距离都相等的点),所以本质上球就是一个曲面,是2D的。同样我们所说的圆,实际是一条曲线,是1D的。
关于判断2D还是3D,有一个很有趣的说法,对于一个球面,放大极限的倍数,我们看到的是一个平面。而对于圆锥体,它的确是一个3D物体,因为圆锥的尖儿不管怎么放大,始终和其他面不在一个平面上。
所以在2D球上均匀分布了12个点,就是下图这样,不过有12个点而已。
开始不明白怎么在3维球面上12维数据,所谓的二进制,就是这十二个点可能是1可能是0。
总结下来,实验的意思,用一个例子来讲,
大概就像球面是一张棋盘,上面均匀的画着方格,我们在上面可以放12个棋,每个位置可以放白棋(0)也可以放黑棋(1),然后判断这种放法是白棋赢了或者黑棋赢了(标签0或1)。
———————————————————————————————————————————————————————
(3)给数据打标签
上面已经设计好了12维的二进制数据X,标签的产生的步骤:
1. 使用球谐函数映射。二进制数据是分布在球面上的,球谐函数SH(X)在物理学上是描述各个方向的振动幅度的,在我们的设定之下,球谐函数可以描述12个方向上的“振动幅度”,只不过这个所谓的振动幅度取值只能是0或1。
2.经过球谐函数映射后的数据要平移。
的确定方式为,使用sigmoid函数计算平移后数据的概率,两个类别概率应该接近于相等。(因为后面这个步骤说的是用阶跃函数,也就是平移后的数据,正数概率和负数概率大致相等)
3. 平移之后,用阶跃函数映射到0或1。
—————————————————— 注 ———————————————————————————————
记一下sigmoid为什么可以用来预测概率~~先贴一篇豆瓣鹅的笔记
https://www.douban.com/note/610822773/
首先sigmoid的好处就不用说了,值域在(0,1),容易求导,还和高斯分布的累积函数长得很像。
我们可以使用sigmoid映射进行回归,也可以根据映射值大小进行分类。sigmoid和二分类关系很密切。有很多函数,为什么会选择sigmoid??实际上它是在不知道概率分布的时候最优的决策方式。那为什么sigmoid最优呢?
首先,如果知道具体的数值,均匀分布的时候熵最大。比如说,掷骰子猜数,最好认为各个面出现的可能性一样,猜中的可能性最大。如果只知道数据的均值,不知道方差,我们最好认为数据是指数分布的。 然而如果均值方差都不知道,这个时候,最大熵定理告诉我们,最好认为数据是高斯分布,于是,这种情况下,我们默认数据是高斯的。二分类的话,它们的pdf应该长下面这样:
用贝叶斯准则来判断的话,
化简一下,竟然得到的是sigmoid函数
也就是说,如果我们不知道数据的均值方差的时候,只知道数据,希望预测数据类别的时候,最好认为它的概率用sigmoid得到比较好。
但是如果知道数据的均值和方差的时候,sigmoid函数就不是最好的了。
—————————————————————————————————————————————————————
(4)互信息估计