此篇博客记录Scene text detection深度学习相关论文笔记。
Ref:Scene Text Detection and Recognition: The Deep Learning Era
世界没有一定…才能…,just do it.
是一种semantic segmentation深度学习方法。
对于fine detail 处理并不是很好。
在DSN论文中使用了SVM,SVM在DL也有应用,之前并没有怎么深入理解,趁着这篇论文的契机,重新捡起来。this section参考了李航的《统计学习方法》。
从数学角度谈谈自己对超平面的理解。
在数学中,我们可以通过很多方式表达二维平面的直线,例如斜截式、一般式等,对于一般式,我们也能够写成向量的形式
a x + b y + c = 0 W X + C = 0 i n v e c t o r f o r m ax+by+c=0 \\ WX+C=0 \ \ \ \ in\ vector\ form ax+by+c=0WX+C=0 in vector form
可以证明其中的 W W W实质上表示的是垂直于直线的向量。
对于三维空间,亦是如此,可以设定面内的某一点,作出所有的面内向量,很方便地就可以证明 W W W是三维空间面的法向量。
在更高维空间里面,没有我们一般意义上的直线或者平面,我们称 W X + C = 0 WX+C=0 WX+C=0为超平面,超平面的概念和平面、直线的概念均一样,都是指满足 W X + C = 0 WX+C=0 WX+C=0的所有 X X X组成的无限集合。只是在可视化方面,二维和三维很容易地展示出来它们的几何意义,我们能够直观地认识到什么是法向量什么是平面等,而四维或者更高维没有办法像二维三维一样直观地展示出来它们的几何意义,但是抛开几何意义或者说是视觉含义,在数学层面上它们是一致的,都表示一个无限点集合,至于法向量的含义也进行了高维拓展,表示垂直于超平面的高维向量。安利一个很好的数学可视化网站mathematics visible.
进一步,我们可以很容易地将 W W W单位化,这样就可以认为 W X WX WX表示 X X X在法向量方向上的投影,当带符号的投影的长度等于 C C C的相反数时,则表示点刚好在超平面上。称 C C C为截距,在三维空间,很容易理解,我们是能够用投影去衡量点在平面的什么位置。伴随着这样的前提条件,我们可以调整点距离原点的位置和调整点到原点的向量与法向量的角度来改变点在平面的位置。在实际中,我们可以取法向量方向一侧为正类,反向为负类。
有三种类型的SVM,由简单到复杂。
在解决非线性分类问题时,我们尝试将输入空间映射到特征空间,在特征空间中使用线性支持向量机解决分类问题。下面定义核函数(kernel function):
假 设 输 入 空 间 X ( 欧 氏 空 间 ) 和 特 征 空 间 H ( 希 尔 伯 特 空 间 ) , 如 果 存 在 映 射 ϕ ( x ) 将 输 入 空 间 中 的 点 映 射 到 特 征 空 间 中 , 使 得 对 任 意 x , z ∈ X , K 函 数 都 满 足 下 面 条 件 K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) 则 称 K 为 核 函 数 , ϕ 为 映 射 函 数 , 其 中 ⋅ 为 特 征 空 间 中 的 点 积 。 假设输入空间\Chi(欧氏空间)和特征空间\Eta(希尔伯特空间),如果存在映射\phi(x)将输入空间中的点映射到特征空间中,使得对任意x,z\in\Chi,K函数都满足下面条件\\ K(x,z)=\phi(x)\cdot\phi(z)\\ 则称K为核函数,\phi为映射函数,其中\cdot为特征空间中的点积。 假设输入空间X(欧氏空间)和特征空间H(希尔伯特空间),如果存在映射ϕ(x)将输入空间中的点映射到特征空间中,使得对任意x,z∈X,K函数都满足下面条件K(x,z)=ϕ(x)⋅ϕ(z)则称K为核函数,ϕ为映射函数,其中⋅为特征空间中的点积。
kernel trick:由于对偶问题的目标函数和分类器决策函数都包含样本点之间的点乘,加之特征空间往往是高维的或者无穷维的,所以只需要定义核函数,使得存在映射函数 ϕ \phi ϕ将输入空间中的样本点映射到特征空间中近似线性可分样本点,这样能够隐式地在特征空间中使用线性支持向量机对偶学习算法学习一个线性分类器,从而使用线性支持向量机解决非线性问题,而不需要显示地定义 ϕ \phi ϕ和特征空间。这就是核技巧。
针对那些具有完全的线性可分特性的数据集。基于学习目的的不同,感知机对应的解有无穷多个,而SVM仅有一个解,SVM学习的模型不但能够正确分类训练集,且对于整个训练数据集还拥有最大几何间隔,最大的几何间隔就意味着对于最难分的样本点(离分离平面最近的点)也能拥有足够大的确信度,所以SVM是一个最大最小问题,即最大化最低确信度或者说是最大化最小间隔。从几何角度解释SVM,也即我们需要找一个平面,对所有平面我们计算离它最近的点与它的距离,然后选择有最大距离的面,这就是解。更加具体的,SVM的最大间隔formulation如下:
arg max W , C min i y i ( W ∣ ∣ W ∣ ∣ X + C ∣ ∣ W ∣ ∣ ) \argmax\limits_{W,C} \ \min\limits_i{yi}\left(\frac{W}{||W||}X+\frac{C}{||W||}\right) W,Cargmax iminyi(∣∣W∣∣WX+∣∣W∣∣C)
更进一步,我们可以想象这样的一个空间: ∣ ∣ W ∣ ∣ ||W|| ∣∣W∣∣为1的平面是真实世界的平面, ∣ ∣ W ∣ ∣ ≠ 1 ||W||\not=1 ∣∣W∣∣=1的平面位于相对于真实世界被放缩了的世界,在放缩世界里仅仅是空间的长度(size)被放缩了,我们能够利用 ∣ ∣ W ∣ ∣ ||W|| ∣∣W∣∣这个放缩比例轻易地还原为真实世界。在一个完全的 ( W , C ) (W,C) (W,C)空间中,不同的 ( W , C ) (W,C) (W,C)对可能对应同一个平面,但是是在不同的放缩空间中。在所有放缩世界里,我们任意取定一个长度,让所有的点到平面的距离大于或者等于这个长度(在SVM中这个长度设置为1,任意数均可以),保证了最近点到平面的距离也大于或等于这个给定值,也保证了最近点到平面距离还原后也大于给定值还原后的值,我们只用还原给定值,最后找距离最大的 ( W , C ) (W,C) (W,C)对。对于某一个平面来说,当且仅当在某个合适的放缩比例 ∣ ∣ M ∣ ∣ ||M|| ∣∣M∣∣的放缩空间中最近的点到平面的距离等于给定值时,它们还原后的距离相等否则给定值还原后的距离都小于真实空间中最近点到平面的距离,保证了正确性。如果在某个放缩空间中,最近点与平面的距离小于了给定的长度,那么还原这个长度回去得到的距离比真实世界中最近点到平面的距离大。如果暴力搜索完全的 ( W , C ) (W,C) (W,C)空间,由于部分放缩比例是没有意义的,会造成大量时间的浪费。
因此我们先调整上面的式子到放缩空间中,得到如下:
arg max W , C γ ∣ ∣ W ∣ ∣ s . t . y i ( W X i + C ) > = γ \argmax\limits_{W,C} \frac{\gamma}{||W||} \\ s.t.\ \ \ yi(WX_i+C) >= \gamma W,Cargmax∣∣W∣∣γs.t. yi(WXi+C)>=γ
上面的式子保证了 γ \gamma γ是最近的点到平面的距离,再将放缩世界中的 γ \gamma γ固定为1,得到:
arg max W , C 1 ∣ ∣ W ∣ ∣ s . t . y i ( W X i + C ) − 1 > = 0 \argmax\limits_{W,C} \frac{1}{||W||} \\ s.t.\ \ \ yi(WX_i+C) -1>= 0 W,Cargmax∣∣W∣∣1s.t. yi(WXi+C)−1>=0
将上面的最优化问题转为线性可分支持向量机的二次规划优化问题:
min W , C 1 2 ∣ ∣ W ∣ ∣ 2 s . t . y i ( W X i + C ) − 1 > = 0 , i = 1 , 2 , . . . N \min\limits_{W,C}\frac{1}{2}||W||^2 \\ s.t.\ \ \ yi(WX_i+C) -1>= 0,i=1,2,...N W,Cmin21∣∣W∣∣2s.t. yi(WXi+C)−1>=0,i=1,2,...N
因为对于一个线性可分训练数据集,一定存在满足条件的解,即存在可行解,又由于目标函数是一个有界函数,所以上述的优化问题一定存在解。对于参数 W W W,可以通过反证法假定存在两个 W W W满足最优解,利用两个 W W W和的1/2构造一个新的 W W W,利用新的 W W W与其他两个 W W W模的大小关系证明两个 W W W是线性关系,进一步证明这两个 W W W相等。对于参数 C C C,假定存在两个不同的 C C C,因为最优的 W W W一定能够满足最近的点使得限制条件等号刚好成立,所以可以通过利用离两个平面的最近点构造关于两个 C C C的等式,然后做差,证明这个差为0即可。
所以综上,在线性可分训练数据集中,解能够正确划分所有的正负数据,解存在且唯一。
支持向量定义为使得问题的约束条件等号成立的样本点,即离分离平面最近的样本点,这些点决定了分离平面,所以将这个模型称为支持向量机。分别令 y = − 1 a n d 1 y = -1\ and\ 1 y=−1 and 1等号成立的两个超平面称为间隔边界,中间长条称为间隔(margin),位于间隔边界平面上的样本点都是支持向量。可见对于支持向量机来说,最重要的是位于正负样点的边界部分的点。
我们可以这样想象求解过程,以每一个点做任意平面,保证与它同类的所有点在平面一侧且这一侧没有另一类别的点,并做一个平行的平面使得它们之间没有任何样本点,然后取两个平面中间的平面作为一个可行解,然后求间隔大小,最后找到最大间隔对应的平面。
个人认为在李航老师的书中提到移动间隔边界外的点或者去掉不会改变解,这个说法有问题,如果将间隔边界外一个点移到间隔内,由于这个平面对应的支持向量变化了,间隔更窄了,可能导致最终解发生变化,可以举一个极端的例子,例如只有三个点
最终的求解是转换为求解对偶问题从而求解线性可分SVM的优化问题。
线性支持向量机相比于线性可分支持向量机来说,多了一个软间隔参数,使得线性支持向量机应用范围比线性可分支持向量机广,对于线性可分训练数据集中多了奇异点或者噪声,都可以使用线性支持向量机解决,线性可分支持向量机是线性支持向量机的特例,线性支持向量机二次规划表达如下:
min W , C , ξ 1 2 ∣ W ∣ ∣ 2 + B ∑ i N ξ i s . t . y i ( W X i + C ) ≥ 1 − ξ i , i = 1 , 2 , 3... N ξ i ≥ 0 , i = 0 , 1 , 2 , . . . N \min\limits_{W,C,\xi} \frac{1}{2}|W||^2+B\sum_{i}^{N}\xi_i \\ s.t.\ \ \ \ y_i(WX_i+C) \geq1-\xi_i,i=1,2,3...N\\ \xi_i\geq0,i=0,1,2,...N W,C,ξmin21∣W∣∣2+Bi∑Nξis.t. yi(WXi+C)≥1−ξi,i=1,2,3...Nξi≥0,i=0,1,2,...N
其中 B B B是有关于任务的一个惩罚参数,对于对分类错误比较敏感的任务可以设置大一点,反之小一点。因为 y i ( W X i + C ) y_i(WX_i+C) yi(WXi+C)表示的是最近点到平面的有符号的距离,如果为负数意味着分类错误,在几何上,可以理解为点位于分离平面两侧中其所属类别一侧的相反侧,这个新增加的参数 ξ \xi ξ在几何上表示将点沿着超平面法向量方向移动,使得这个点能够在正确的一侧,并且保证与超平面的距离大于或等于1。(PS:即使在正确的一侧,但是距离小于1,那么也需要移动)
当计算出 W W W和 C C C变量后,我们就可以得到最终的分类超平面:
W X + C = 0 WX+C=0 WX+C=0
进而得到线性支持向量机:
s i g n ( W X + C ) sign(WX+C) sign(WX+C)
s i g n sign sign函数是一个符号函数。同样可以使用其二次规划问题的对偶问题得到最终的解,其中 W W W唯一, C C C不唯一。除了间隔边界上的样本点是支持向量外,还有 ξ i > 0 \xi_i>0 ξi>0的样本点。另外线性SVM二次规划问题还有一种等价的形式叫做合页损失函数(hinge loss function),如下:
min W , C ∑ i N [ 1 − y i ( W X i + C ) ] + + λ ∣ ∣ W ∣ ∣ 2 \min\limits_{W,C} \sum_i^N[1-y_i(WXi+C)]_++\lambda||W||^2 W,Cmini∑N[1−yi(WXi+C)]++λ∣∣W∣∣2
有时间再来补一补对偶问题的求解过程和合页损失函数推理吧
对偶形式如下,给定超参 B B B后,求解下面的凸二次规划问题即可得出最终结果:
min a 1 2 ∑ i N ∑ j N a i a j y i y j ( x i ⋅ x j ) − ∑ i N a i s . t . ∑ i N a i y i = 0 0 < = a i < = B , i = 1 , 2 , 3... N \min\limits_{a}\frac{1}{2}\sum_i^N\sum_j^Na_ia_jy_iy_j(x_i \cdot x_j)-\sum_i^Na_i\\ s.t.\ \ \ \ \sum_i^Na_iy_i=0\\ 0<=a_i<=B,i=1,2,3...N amin21i∑Nj∑Naiajyiyj(xi⋅xj)−i∑Nais.t. i∑Naiyi=00<=ai<=B,i=1,2,3...N
在得到了上述式子的解 a ∗ = { a 1 ∗ , a 2 ∗ , a 3 ∗ , . . . , a N ∗ } a^*=\{a_1^*,a_2^*,a_3^*,...,a_N^*\} a∗={a1∗,a2∗,a3∗,...,aN∗}后,对任意一个 ( x j , y j ) (x_j,y_j) (xj,yj)样点满足 0 < a j ∗ < B 0
C ∗ = y j − ∑ i N a i ∗ y i ( x i ⋅ x j ) C^*=y_j-\sum_i^Na^*_iy_i(x_i \cdot x_j) C∗=yj−i∑Nai∗yi(xi⋅xj)
最终的线性分类器决策函数如下:
f ( x ) = s i g n ( ∑ i N a i ∗ y i ( x , x i ) + C ∗ ) f(x)=sign(\sum_i^Na_i^*y_i(x,x_i)+C^*) f(x)=sign(i∑Nai∗yi(x,xi)+C∗)
求解上面的对偶形式,有许多方法例如SMO算法等,可以高效地求解对偶形式的解。
上面的两种模型都是线性模型,解决的是线性问题,对于非线性问题,我们使用核技巧,即结合核函数和线性支持向量机对偶学习算法,解决非线性问题。本质上是将训练集从线性不可分空间变到线性可分空间,然后使用线性支持向量机进行分类。核函数的选择需要依赖于领域知识,它的好坏需要通过实验进行验证。
我们一般称核函数为正定核函数,通过推导(详细请移步李航老师的《统计学习方法》)我们能够得到正定核的充要条件,也可以看作是正定核即核函数的另一个等价的定义。定义如下:
设 X ⊂ R n , K ( x , z ) 是 定 义 在 X × X 上 的 对 称 函 数 , 如 果 对 任 意 x i ∈ X , i = 1 , 2 , 3 , . . . m , K ( x , z ) 对 应 的 G r a m 矩 阵 K = [ K ( x i , x j ) ] m , m 都 是 半 正 定 矩 阵 , 那 么 K ( x , z ) 函 数 称 为 正 定 核 。 设\Chi\subset R^n,K(x,z)是定义在\Chi \times \Chi上的对称函数,如果对任意x_i\in\Chi,i=1,2,3,...m,K(x,z)对应的Gram矩阵\\ K=\left[ K(x_i,x_j)\right]_{m,m}\\ 都是半正定矩阵,那么K(x,z)函数称为正定核。 设X⊂Rn,K(x,z)是定义在X×X上的对称函数,如果对任意xi∈X,i=1,2,3,...m,K(x,z)对应的Gram矩阵K=[K(xi,xj)]m,m都是半正定矩阵,那么K(x,z)函数称为正定核。
这里不是一般意义的Gram矩阵,所以 K K K矩阵仅仅是一个对称矩阵。利用上述定义可以很方便构造地构造核函数,但是要判断一个函数是否是正定核比较困难,因为需要验证所有可能的 { x 1 , x 2 , . . . , x m } \{x_1,x_2,...,x_m\} {x1,x2,...,xm}集合对应的 K K K矩阵是否是半正定矩阵,不太现实。在实际中,往往使用已经存在的正定核。包括多项式核函数、高斯核函数等。
我们利用线性支持向量机的对偶学习算法+核技巧就可以学习得到非线性支持向量机,优化问题依然为凸二次规划问题。在选定一个 K ( x , z ) K(x,z) K(x,z)函数和超参 B B B后,并将上面线性支持向量机的对偶形式中的点积 ( x i ⋅ x j ) (x_i \cdot x_j) (xi⋅xj)换成 K ( x i , x j ) K(x_i,x_j) K(xi,xj),然后就可以求解 a ∗ a^* a∗,最后将 C ∗ C^* C∗和 f ( x ) f(x) f(x)求解式子中的点积 ( x i ⋅ x j ) (x_i \cdot x_j) (xi⋅xj)换成 K ( x i , x j ) K(x_i,x_j) K(xi,xj),即可得到最终的非线性支持向量机。
对于传统的线性感知机和线性可分支持向量机来说,因为线性可分SVM目的是在特征空间中实现最大化间隔,这与线性感知机目的不同,一般地,线性感知机只要求位于分割直线之上(或之下)的区域为正类,之下(或之上)为负类,最小化错误率即可,容易出现过拟合现象,而线性可分SVM的最大化间隔保证了一定的泛化能力。
改论文介绍了现存DL框架的问题,包括在隐藏层学习的特征的意义影响难解释性、在隐藏层低质量的低鲁棒性的学习的特征、消失梯度难以引导学习、DL数学原理难以系统解释。
改论文的contributions:
就实验结果而言,相比于之前的greedy layer-wise pre-training结果overfitting,此实验的结果不错,因为将companion objectives作为hidden layer feature quality的proxy联合训练,regularization能力强。通过实验结果,相比于普通的CNN-SVM,DSN-SVM的generalization能力更强。与普通的CNN网络相比,DSN网络在训练数据集很缺乏的时候性能(test error rate)提升更明显,从这个角度也说明了DSN拥有更好的generalization能力,能够在一定程度上减弱因训练数据集缺乏导致的过拟合现象,所以说DSN是一个强的generalization工具。对于更大的数据集和更深的网络,它能够使得训练更加容易,不会出现像梯度消失的问题。
最初接触multi-scale learning是在学习SSD的时候,在SSD中multi-scale的object可以通过backbone网络后的各个多尺度检测块进行检测和学习。在HED论文中,作者对multi-scale和multi-level learning进行了总结,例如multi-scale learning可以用神经网络本身的学习过程(i.e. multiscale receptive field or multiscale feature representations learned by each layer)和multiscale input image来解释。
接下来,作者将常见的multi-scale deep learning architectures分为了4个类型:
总结:无论哪一种方法,我们都是基于了neural network本身的nature即hierarchical learning,利用这个nature我们能够设计得到各种architectures,这些architectures能够进行multi-scale预测。更进一步,我们并不能用feature map的size去表现multi-scale,更加根本地应从receptive field size去表现,因为即使feature map size与原图保持一致,而感受野可以很大。我们要实现multi-scale学习,可以尝试创建更大的感受野feature map,然后基于这些multi-scale receptive field maps去进行multi-scale object detection,像SSD算法、FPN、Mask-RCNN等都是这样做的。
隐藏层的监督可以提高结果表现。
因为target set中标签分布的不均匀,为了进行平衡,作者使用了一种简单的cost-sensitive loss function for per-pixel,即weighted cross-entropy loss function,使用负类和正类所占比例作为权值。损失函数是建立在side-outputs和fusion output与target set的差别上的。
HED与FCN相比,相同点:
不同点:
由于前面很多的工作是在local region进行搜索text,而且几乎所有的前面的工作都是检测horizontal or near-horizontal的text,忽略了non-horizontal区域
[1] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In Proc. of CVPR, 2015.
[2] C.-Y. Lee, S. Xie, P. Gallagher, Z. Zhang, and Z. Tu. Deeply- supervised nets. In AISTATS, 2015.