Machine Learning Notes
机器学习 笔记
Progress is not Create by Contented People
作者:Mage
日期:May 16, 2018
Version: I
V.k0/D1XtD0htln.1/CtlnktiDln.1/1XtD0tC1XtD0th1./t1lnCtlnk0iD1lnk0Cln.1/1Cln./1XtD0t1./t1D1lnk0Cln.1/1C.1/.1/ln./左边DV.k/D1lnkCln.1/1C.1/.1/ln./4D1lnkCA右边Dmaxnuf.k/yCV.y/o利用FOC和包络条件求解得到yDk,代入,求右边。右边Dmaxnuf.k/yCV.y/oDuf.k/g.k/Ch1lng.k/CAiDln.kk/Ch1lnkCAiDln.1/ClnkCh1lnClnkCkiDlnkC1lnkCln.1/C1lnCAD1lnkCln.1/C1lnCAD1lnkC.1/ACAD1lnkCA所以,左边D右边,证毕。
前言
在学习的过程中,免不了经常上网去翻看别人的博客,但总是发现不同博客的知
识点描述侧重点不一样,需要翻看多个人的博客才能够把问题理解透彻。所以,一直
就想把自己平时所理解的一些机器学习的模型,以阅读笔记的方式整理出来。笔记中
可能有漏洞错误之处,读者若发现了,还请告知。感谢《Latex 开源小屋》提供的模板。
2017 年 10 月 26 日
深圳坂田
目 录
1 胶囊网络
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.2 胶囊网络的结构 .
1.1 胶囊网络产生的背后直觉 .
.
.
1.1.1 传统卷积神经网络的固有缺陷 .
.
1.1.2 生物视觉系统对图像的解析过程 .
.
.
.
.
.
.
.
.
.
.
1.2.1 “胶囊”中的信息传递 .
.
1.2.2 “胶囊”与传统神经元的差异 .
.
.
.
1.4.1 边界损失 .
.
1.4.2 重构损失 .
.
PrimaryCaps 层和 DigitCaps 层的实现 .
.
.
.
.
1.3 网络的一种实现架构 .
1.4 损失函数的确定 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.5
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
参考文献
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
1
2
5
5
7
8
10
10
11
11
14
20 世纪 80 年代中期,David Runelhart、Geoffrey Hinton 和 Ronald Wllians、David-
Parker 等人分别独立发现了误差反向传播 (Error Back Propagation,BP) 训练算法,系
统性地解决了多层神经网络隐含层连接权值学习问题,并在数学上给出了完整推导。
人们把采用这种算法进行误差校正的多层前馈网络称为BP 神经网络。
时隔 20 年后,Geoffrey Hinton 于 2006 年在《Science》上发表了《Reducing the
Dimensionality of Data with Neural Networks》[1] 一文,掀起了深度学习的浪潮,成为
了深度学习的开创者。
又隔 10 年后,Geoffrey Hinton 及其团队在总结卷积神经网络对物体部件的空间
位姿1不敏感的缺点基础上又提出了胶囊神经网络(Capsule Networks,CapsNet)。本
章将详细介绍胶囊神经网络原理(TensorFlow 版下载地址)。
第 1 章 胶囊网络
MAGE
1.1 胶囊网络产生的背后直觉
1.1.1 传统卷积神经网络的固有缺陷
在众多深度学习模型中,基于卷积神经网络(Convolutional Neural Network,CNN)的
深度模型占据了举足轻重的地位,甚至解决了过去长时期内都无法完成的事情。尽管
如此,卷积神经网络在特征抽取的过程中还是存在一些问题。
卷积神经网络应用于图像视觉领域时,卷积层主要用于特征的检测与提取,完成
了从低层提取简单可解释特征到高层融合复杂抽象特征的过程。这一过程的数学实质
就是低层次特征加权求和,然后再进行非线性映射到高层特征。从低层特征到高层特
征的非线性映射过程中,低层特征之间的组合并没有实质性地考虑其位姿关系,而是
通过 Pooling、卷积窗口尺度与卷积核数量来改变数据空间尺度的方式,实现增加高
层网络神经元的“感受野(Perception)”范围来获取较大图像范围的高阶特征关系。
虽然这种迂回替代方式让深度卷积神经网络也取得了空前优异的性能,但是 Pooling
操作也带来了有用价值特征信息的损失。
注: CNN 的网络结构对“旋转”没有不变性,但是在学习过程中是通过“数据增强
方式(Data Argumentation)”让其达到了旋转不变性,CNN 中其余的不变性(如平
移、视角不变性)主要是通过 Pooling 等下采样过程实现,因此 CNN 在网络结构上可
以说是舍弃了“坐标框架”的。此外,CNN 中的卷积层是同变性。
1位姿,即位置与姿态,其本质是平移和旋转
–2/14–
第 1 章 胶囊网络
不变性(Invariance),即物体表示不随变换而变化,如空间不变性,是对物体平
移之类的操作不敏感,物体在不同的位置不影响它的识别。
同变性(Equivariance),即用变换矩阵进行转换后,物体表示仍然不变,它是对
物体内容的一种变换。
在图像视觉中,卷积神经网络更多地是关注于构成物体的部件的存在性,而弱化
了部件的空间位姿关系,也即网络的内部特征表达没有考虑到简单和复杂对象之间
的重要空间层级。简言之,一幅描述某物体的图片,只要构成物体的部件出现图片
中,而无需考虑其具体出现的位置与姿态,卷积神经网络都能够将其识别成该物体。
图1.1所示的两幅图像能够很好地说明这个问题。
1.1.2 生物视觉系统对图像的解析过程
计算机在对几何图像进行表达时,既考虑了图像中对象本身的内容(采用数组表示),
又考虑了对象之间的相对位置和朝向(采用矩阵表示)。当计算机在对图像进行渲染
时,只需将这两种表示转换为屏幕上的像素点,即可得到我们看得见的图像。
Hinton 认为人类大脑对图像的处理过程与计算机渲染过程相反,即将视网膜接受
到的原始视觉图像,通过大脑加工解析图像中的对象形成分层表达,进而构成特定表
达模式(或许类似于对象内容、位置和朝向)与大脑中已经学习到的模式进行匹配,
最终完成识别的过程。这里最重要的一点是,人类大脑对图像的表达并不依赖于视
角,图1.2最能够说明这一特性。
图1.2展示了 5 幅图片且各自有不同的视角,但是我们的大脑能够轻易地识别出具
有不同视角的 5 幅图片都是表达的同一个物体对象——自由女神像。这是因为在大脑
(a) 人脸
MAGE
图 1.1: 两种不同的物体
(b) 非人脸
图1.1展示了两个完全不同的物体图像,图1.1(a)与1.1(b)又同时具有相同的部件
(两只眼睛、一张嘴和一个鼻子),只是部件的位置与姿态不相同。由于卷积神经网
络更多地关注物体部件的存在性而弱化了部件的空间位姿关系,从而会将图1.1(a)与
图1.1(b)所示物体认为是相似的,进而识别为同一个物体。
1.1 胶囊网络产生的背后直觉
–3/14–
中对自由女神像表达并不依赖于视角,这也是为什么虽然你从来没有见过和这些一模
一样的图片,但你仍然能立刻识别出是自由女神像。
然而,传统人工神经网络却不一定拥有这种能力,也即如果网络之前没有学习过
类似角度的图片,则可能无法识别出它们。如何让传统人工神经网络也有这种能力
呢?从直觉上考虑,构建神经网络时就需要考虑人脑对图像表达的这种方式,即对象
的分层表达与空间位姿关系。
注: 构建神经网络时考虑“对象的分层表达与空间位姿关系”这一想法非常简单,估
计很多人都想到过。事实上,Hinton 数十年来也一直在研究这个问题,然而并没有将
其研究成果发布出来,主要是在技术上没有实现拥有这种能力的神经网络的方法,原
因如下:
图 1.2: 同一物体的不同视角呈现
MAGE
其一,在 2012 年之前,是基于 CPU 进行运算的时代,其计算能力有限;
其二,没有一种算法可以实现并成功学习能够进行“对象的分层表达与空间位姿
关系”的神经网络。
这一点似乎与反向传播算法的发展历史相似。人工神经元的概念是在 20 世纪
40 年代出现的,50 年代末 Rosenblatt 提出了前馈无隐层神经网络模型,即感知器
(Perceptroa),但是在 60 年代末 Minskey 和 Papert 指出感知器并不能解决异或问题、非
线性问题以及高阶谓词问题,然而直到 80 年代初期才将反向传播算法应用到神经网
络上(事实上,反向传播算法的概念在 60 年代就已经提出了),至此我们才能够成功
地训练多隐层神经网络,从而解决了困惑已久的异或问题、非线性问题以及高阶谓词
问题。
因此,胶囊网络的发展历程也类似。“胶囊”这个概念本身并不算新,Hinton
之前也提到过它,但是直到现在才出现了一种能够实现它的算法“囊间动态路
由”(Dynamic Routing Between Capsules),它允许胶囊之间相互通信,并创建类似计算
机图形中场景图的表示。
在讨论如何构建具有对象分层表达与空间位姿关系的人工神经网络前,需要对人
工神经网络与生物神经网络的结构差异进行一些了解,表1.1给出了生物神经网络与
–4/14–
人工神经网络在结构上的一些差异。
第 1 章 胶囊网络
表 1.1: 生物神经网络与人工神经网络的对比
生物神经网络
人工神经网络
解剖学尚未发现
链式法则求导实现
反向传播
层次数量
前向传播速度
单层网络结构 皮层微柱存在多个小分层
毫秒(ms)量级
较多
微秒(ms)量级
单一的一层
较少
有
无
认知“坐标框架”
注: 灵长类动物大脑皮层中大量存在着一种称为“皮层微柱”(Cortical Minicolumn)
的柱状结构,其内部含有数百个神经元,并存在内部分层,也即人脑中的一层并不是
像人工神经网络中的一层,而是有着其复杂的内部结构。
从认知神经科学上讲,人在视觉认知过程中会不自觉地根据物体形状建立一种
“坐标框架”(Coordinate Frame)。人通过视觉进行认知时,坐标框架参与到了认知过
程中,认知过程会受到空间概念的支配。因此“坐标框架”的不同会极大地改变人的
认知结果。显然,在传统人工神经网络结构中,很难看到类似“坐标框架”的结构。
为了能够体现出以“坐标框架”的思想来构建对象的分层表达与空间位姿关系,
Hinton 提出了如下猜想:物体和观察者之间的关系(比如物体的姿态),应该由一整
套激活的神经元表示,而不是由单个神经元或者一组粗编码2(Coarse-Coded)的神经
元表示。这样的表示才能有效地表达关于“坐标框架”这一先验知识。
注: 如图1.3所示,两个字母 R 分别处于不同的“坐标框架”下,我们在认识这两个
R 字母前,需要先将其“坐标框架”变得一致,然后才能够从直觉上知道它们是否一
致,是否表示了同一个字母。
MAGE
图 1.3: 同一物体在不同“坐标框架”下的呈现
因此,Hiton 提出的胶囊网络 [2] 具有如下特点:
(1). 网络的一层具有复杂的内部结构;
(2). 能够表达“坐标框架”;
2指类似一层中并没有经过精细的组织。