A generative vision model that trains with high data efficiency and breaks text-based CAPTCHAs(二)

一种具有高数据效率和突破基于文本的验证码的生成视觉模型

论文作者:Vacarious技术团队

时间:Oct.26,2017

注:本文是对73页论文的理解与翻译

论文框架

论文主要分为两个部分,一是RCN的理论基础,二是RCN的实践,在RCN的理论部分主要分为RCN的生成式模型、给定输入图像的推理、模型参数和结构的学习、相关工作和神经科学的指导,在RCN的生成式模型中根据模型的原理主要分为三个部分目标对象的识别分解为轮廓和表面,形状的生成层次模型,形状和外观的结合。

论文主要内容

下面沿着论文的框架简单阐述一下论文的内容,如果不妥或者错误之处望大家指正。

关键点:

表面使用条件随机场,捕获表面性值的变化的平滑度建模,轮廓线使用层次模型

建模方法的计算量大,研究者通过引入隐含变量来解释图像中的各种相关性从而进行降维,同时进行解相关,如稀疏编码以及后来的Active basis模型,通过从自然图像中学习到一个超完备基来建立图像的加性模型(Additive model),只需要使用少量的基(基的数量远小于像素点的个数,即稀疏性)就可以表示图像。

小样本学习的关键问题是研究产生式模型如何指导判别式模型,这在RCN中得到了很好的体现。

视觉推理计算的目的是在贝叶斯框架下,给定输入图像,求客观世界表达的最优后验概率分布。主要有两类计算模型,一类是自底向上的判别式模型,另一类是自顶向下的产生式模型。判别式模型通过计算图像的局部特征来逼近后验概率或者后验概率比,产生式模型通过使用马尔科夫链蒙特卡洛方法或基于简化模型的(近似)动态规划按贝叶斯规则来自顶向下推理后验概率

内容:

1.将物体分解为形状和外观

2.形状的生成层次模型 ,RCN是分层隐变量模型,所有的隐变量都是离散的

为了描述边缘映射F^{(1)},RCN使用从上到下的特征层和池化层分层交替的模型描述离散的隐变量

层次模型:F^{(l)}、H^{(l)}H^{(l)}表示l层特征层、池化层的隐变量,特征层的隐变量是二进制的,在池化层是多项式的,F^{(l)}、H^{(l)}可被表示为F_{f'r'c'}^{(l)}表示特征(通道)、行、列,H^{(l)}表示为H_{frc}^{(l)},每一层的变量仅取决于前一层的变量

特征层:表示在给定位置(r,c)特征f的存在性,为ON时表示X的中心有一些轻微的扭曲,在F^{(3)}给定时,X拐角的精确形状和位置是不确定的,这些信息被它下面的层解码,并且如果我们固定F^{(3)}的值并产生X的多个样本将会改变。F_{f'r'c'}^{(l)}仅取决于H^{(l)}的几个变量,H^{(l)}的变量是多项式的,有几个状态,每一个都只依赖于F^{(l)}、H^{(l)}中的一个变量,一个池的关联特征变量被称为池成员,多个池可以共享一个池成员

池到特征的连接性称为translational pooling,每一个池H_{frc}^{(l)}作为池成员,池元素F_{f'r'c'}^{(l)}(满足一定要求)。在一般情况下使用正方形的池,一个池可以是off,也可以激活位置为(r,c)特征指标f'的任意变量。但一个池一次只能激活一个池成员。

F^{(l)}、H^{(l)}被给定的H^{(l)}决定,但多个H^{(l)}可以导致相同的F^{(l)}、H^{(l)},这个关系不是双射。

假设最顶层的特征层F^{(C)}包含完整的目标对象,每个通道占据不同的对象类型,通道的每一个位置占据不同的生成对象的位置。

池化层:池化层不确定,RCN中的生成图像的不确定来自于池化层。

   池化层的变量,有多个状态一个是off,其他的是F^{(l)}、H^{(l)}层的特征变量组成了该池的成员。可以把池变量表达同一特征的轻微变化,平移池的成员表达的是同一特征,但位于不同位置,在池位置的半径内。

  在分类特征上有一个隐含的池化层H^{(C)},从不同的特证间选择一个多项式变量(位于H^{(C)}层)

  分为两种,无横向连接(未详细看)(池选择之间没有协调)和有横向连接(通过缠绕有相同父母的池选择协调这些池选择),通过在相同的(或所有的)池状态间引入成对约束来定义有相同父母的池的联合概率,成对约束指的是池i,j间的状态(1或其他),特殊的池协调约束是扰动连接(perturb laterals),扰动因子,两个池之间的最大扰动和他们之间的距离成比例,与扰动因子成反比。

平移不变性:给定一个图像和一组隐变量,如果以相同的量改变输入图像和隐变量的位置值,模型的似然估计不会变化。隐变量H^{(C)}是唯一的,不能移动的,他的值也相应的被改变。

模型中参数的减少(CNN)

子特征允许重叠,特征的局部平移对高层的特征和对象的大小没有变化

 

  1. 形状和外观的结合

边缘映射F^{(1)}在(f,r,c)被连接时,在最终的图像上(r,c)的方向f上将会出现(每个拐角三个方向)

Y是二维的多项式的随机变量,行列和图像中的像素位置一一对应,变量Y代表的是颜色(纹理)和IN/OUT状态,所以Y的状态多。

Y是一个有4—connected 变量的固定结构的CRF,所以每个变量具有将其连接到其近邻的4个其他变量的边缘。

IE表示的是Y中的成对的邻近位置在他们之间有内边缘激活,将剩余的集合称为\overline{IE}

变量Y的条件密度公式为:(类似于CRF中的最大团,这里使用的依据为有没有内边缘激活)

p(Y|F^{(1)})= \frac{1}{​{Z_{F^{(1)}}}} \prod_{(r,c)}^{ }\Phi (Y_{rc})\prod_{(r,c),(r',c')\in IE}^{ }\Phi _{IE}(Y_{rc},Y_{r'c'})\prod_{(r,c),(r',c')\in\overline{IE}}^{ }\Phi _E(Y_{rc},Y_{r'c'})\Phi _E(Y_{rc},Y_{r'c'})

4 推理

上述模型生成的图像和不同孤立的对象相对应,一旦分层模型的参数用一些训练收集的孤立对象设定,在概率模型中识别推断。特别的,识别分离对象的数量进而推断顶部池H^{(C)}的值,它告诉我们关于对象的类别和位置。

当背景杂波或多个对象存在于相同的图像中时,我们仍然可以使用上述过程的方法去挑选图像中最显著的对象,按照顺序挑选出来masking them out,然后寻找下一个最显著的对象。(模型复杂,精确推断不太可能,近似推断)

单一的自下而上的前向传播对于发现一个对象的类别和位置的近似是足够的,随后单一的自上而下的后向传播对于识别每个对象的masks掩模是足够的。

关于loopy 图的近似推断算法例如loopy信念传播或者一些更先进的变体被用于计算每一个隐含变量的边缘后验概率,这些算法不能计算实际的边缘后验概率,即使可以他们也不适合用来解决这些问题。因为近似真实的后验作为边缘后验概率的乘积引入非零后验概率的区域,其中实际的后验概率可能为0.也就是说试图计算潜在变量的边际后验概率可能会导致局部有效的可能性,但不会表现出全局协调和一致性。因此我们的兴趣在最大化后验推断(MAP)

在loopy图形中MAP推断可以使用诸如max-product loopy信念传播、tree-reweighted信念传播、对偶分解等来近似求解。我们主要的近似推理过程将包括一个单一前向传播和使用max-product message passing的后向传播。一些消息可以容易地计算,而其他将需要某种近似。特别地,为了解决横向连接子问题(lateral subproblem), 我们将会局部的使用loopy max-product或者更先进的对偶分解技术

4.1 loopy信念传播:max-product

max-product 信念传播被作为发现最大化树结构的图模型变量状态的精确的技术来发展。任意的概率模型都可以被表示为因子图。p(x)=p(x_{1},x_{2},\cdots ,x_{n})=\prod_{c}^{ }\phi _{c}(x_{c})团分解,MAP推断就是要找到使上式最大的x,即分解方法。

\widehat{m_{c\rightarrow i}}(x_{i}):每一个因子c到每一个变量i的消息

\widehat{m_{c\rightarrow i}}(x_{i})^{new}:max-product 信息更新公式

\mu (x_{i}):变量x_{i}的最大边际的估计

MAP的近似解是经过loopy max-product之后的x_{i}=\underset{x_{i}}{argmax}\mu (x_{i})

信息更新直到收敛(loopy图中不能保证)或者达到固定的迭代次数

算法对于归一化的信息是不变的,在对数域中可以添加任意的常数不改变最终的结果。对于离散变量,在我们的模型中有一个默认的状态(池化层是OFF,特征层是0),所以在传播过程中按照(s20)归一化信息。

4.2 前向传播

在这部分,我们将会从观察到的图像和池的最顶层H(C)计算max-product更新。一个变量可以被连接到多个因子中。

我们将会用一个前向传播自底向上每次更新一层,并并行更新所有的自底向上的信息每一层中的变量。自上而下的所有信息被初始化为-\propto

前向传播中横向连接不会显著提高结果。

4.2.1预处理层

预处理层的输出是自下而上的信息,这些信息被自下而上的输入到F^{(1)}中,根据4.1中描述的max-product以及自上而下的信息的初始化,自底向上的信息应该是m_{bu}(F_{frc}^{(1)}),采用两种方式估计m_{bu}(F_{frc}^{(1)})

Shape and appearance preprocessing layer      看看看!!!         

Shape only preprocessing layer:更简单的方法是使用丢弃外观一致性信息的预处理阶段,这样的预处理阶段只需要在多次循环中执行边缘检测(在每次循环中不考虑三个不同方向),并在实践中仅产生小的性能下降,任何边缘检测算法例如Gabor滤波器都可以产生令人满意的结果

4.2.2特征层

在前向传递中,特征层F^{(l)}的所有二值变量都收到自底向上的信息m_{bu}(F_{frc}^{(1)}),这是标量,这些可以来自预处理层(l=1)或者池化层(l\neq 1)。变量F_{f'r'c'}^{(l)}能够被H^{(l)}的一些池的一个状态激活。反过来给定的H_{frc}^{(l)}能够激活不同的特征与其状态,考虑H_{frc}^{(l)}能够激活的特征集合{F_{i}^{(l)}}。特别的,如果我们称H_{frc}^{(l)}的状态i激活的特征{F_{i}^{(l)}},max-product规则说明自底向上到达H_{frc}^{(l)}信息为m_{bu}(H_{frc}^{(l)}=i)=m_{bu}(F_{i}^{(l)}=1)

说明通过特征层的前向传递只是简单的将自下而上消息传递给所有激活的池状态。

4.2.3池化层

对于有一个池化层的前向传递如果没有横向连接的话很简单。对于每一个特征自下而上的信息是(最大的自底向上的(特征的每部分池)的信息的)和,对每一个池单独计算最大值,所以信息能够被有效的找到。

我们发现如果我们的模型中有横向连接,只要后向传播中使用了横向连接,一个没有横向连接的前向传递可以产生一个不错的解,因此,在多数情况下,如果存在横向连接我们可以忽略,并且使用上面的更新方式。如果在前向传播过程中使用了横向连接,更新公式为s26,此时不能被简单解决称为“the laterals subproblem”(4.6)(侧向连接是loopy,np难)

横向连接倾向于没有太多的loopy,考虑所有池是独立的和尽力解决full loopy问题的折衷的解决办法是在限制图中引入几个切口(例如使用最小生成树去寻找哪个约束可以被移除在有最小影响的情况下),然后利用max-product解决侧向连接子问题。

H^{(c)}不同于其他的池化层,因为它在层次模型的最高层,它不需要传递任何自底向上的信息,所以在前向传播过程中不需要做任何事情。

4.3假设选择

在前向传播之后,变量H^{(c)}的每一个自下而上的信息都代表了每个位置的每个特定顶层特征的检测水平。如果手头的任务是简单的定位和分类最突出的对象,找到这些消息中的最大值将提供一个解决办法。相反,我们现在将继续进行自顶向下的后向传递的max-product 信念传播,为模型中的每一个潜变量提供分配,即最下面的层中有效的重构了最突出的对象,也就是说识别属于它的特定像素。需要注意的是最显著对象的选择和随后的重建仅仅是在图模型中正常的自上而下的max-product massage的一部分,在这个过程中并不需要手工引入。

4.4后向传播

在前向传播之后,层次模型中的所有变量都有都有自底向上的信息,但是我们想要找层次模型中所有变量的具体的值,近似最大化观察值的隐状态的联合概率,也就是MAP解。

我们将运用max-product规则更新自顶向下的信息同一层的所有变量并行更新,从上到下一次更新每一层。在对一个层的自顶向下的消息进行计算之后,就会立即对该层中的所有变量进行硬分配,这反过来又会影响到向下传播的自上而下的消息。硬分配将每个变量设置为最大的最大边际值。这就产生了一个全局近似映射解决方案。

4.4.1特征层

在向后传递期间向特征层中的变量赋值是微不足道的。由于每个特征层都位于一个已经被硬分配的池化层下面(由于向后的传递以自顶向下的方式提供这种硬赋值),所以如果上面有一个或多个池被激活,则应该将特征变量设置为1,否则设为0。

F(1)的最后一个赋值产生了被检测到的物体的边缘映射,其中被遮挡或未被发现的边缘被揭示。我们将在边缘水平物体的重建称为反向跟踪。

4.4.2池化层

第一个需要被硬分配的变量是H^{(c)},正如前所说,H^{(c)}不同于其他的池化层,因为它有一个单变量,从不会在OFF状态,并且没有从顶到底的输入。这个变量被分配到使max-marginal最大的状态,也就是说激活最大自底向上的信息特征F(C)。这个硬分配导致一个顶层对象被重新构造,作为自顶向下消息传递的结果,而剩余的对象被打开。

如果池的父特征是OFF(每一个池有一个父母),池也是OFF。

如果池不是OFF,在后向传播时不使用横向连接,每一个池应该被分配到最大的自顶向下的信息的状态。

如果池不是OFF,在后向传播时也使用横向连接(此时需要使用侧向连接子问题)。。。。。如果我们在前向传播过程中解决了这个问题,在后向传播过程中就不需要再次解决它,因为自底向上的信息没有改变。

如果前向传播没有使用横向约束,我们仍然可以在向后传递期间使用它们,这样最终的解决方案(赋值)确实满足所有的横向约束。乍一看,我们要在逆向传递过程中解决横向子问题,我们可能总是在前向传播过程中解决它。这将使前向传递更准确,而额外的成本似乎是在后向传递期间摊销的。这里的问题是,在前向传播过程中,我们不知道最终解决方案中哪些特性是活跃的,因此我们必须为每一个可能的特性解决它。另一方面,在后向传递过程中,它只需要被解决几次,因为我们决定的特征,一层一层地,属于被检测到的对象。

4.4.3外部连接

共享一个父F(l+1)的池选择H(l)在后面的通道上纠缠在一起。共享的池是表兄妹,共享一个祖父母F(l+2),而不是父F(l+1),在后向传播时,不要限制彼此的选择。考虑用树分解来建模一条直线。将这条线划分为线段,进一步划分为子段。人们会期望沿着这条线的扭曲量是一致的。然而,在我们从共享父母的池中跳跃到共享下一个父节点的组的点上,可能会出现不连续点,因为不同父母的池之间没有连接。

为了解决这个不对称的问题,在后面的通道中增加了表兄池。这在前向传递过程中是不可能的,因为一个池H(l)的祖父母F(l+2)是未知的。如果计算的条件是大父特性使用那个池,计算将会显著地慢下来,因为单个池中可能有许多祖父母的特性。

外部因素包括在因子图中加入额外的因子,表示表兄池之间的额外的平动扰动。

4.4.4 后处理层——预处理层在后向传播过程中的类似物

在形状模型(包括F(1))中所有离散的潜在变量被分配到一些具体值之后,后处理层(近似)最大化logp(X,Y|F^{(1)}))=logp(X|Y)+logp(Y|F^{(1)})换句话说,每个变量Y(对应于观察到的图像中的一个像素)被分配一个In或OUT状态和一个颜色(纹理)类型,以便与分析X和边缘映射 F(1)的图像最大兼容。这些变量的IN或OUT类型会产生被检测对象的对象掩码。这个掩膜覆盖被探测到的物体的推断表面,包括被遮挡的区域。

4.5两层的RCN模型——推断特别简单,需要求解每个对象类别的单横向子问题

4.6横向子问题

横向子问题是一个标准的MAP推断/离散变量的能量最小问题。在loopy图中,是NP难问题。大多方法都类似于loopy max-product BP算法,对偶分解,新算法是STC(subproblem-tree Calibration),我们使用的。

对偶分解的基本思想是通过最大化每一个横向独立的构建MAP推断目标的最大上界函数,然后最小化最大上界,通过交换他们之间的信息来执行一致性。不同算法的不同之处在于他们处理这些信息。STC选择迭代不同的最小生成树,并通过校准这些大树确保局部最优,以得到全局一致性和高质量的解

4.7多对象的图像:解析

一般都是多个对象存在于一个图像中,两种方法:

(a)串行、闭环:使用前向传递和反向传递在图像中检测最突出的对象,边界和mask,从图像中移除,重复这样的步骤。每一次重复都需要做前向传递和后向传递。

(b)并行、开环:使用单个的前向传递去检测存在于图像中的所有对象,同时在自底向上的H(C)使用阈值和非最大抑制。阈值消除了不太可能的候选者,而非最大的抑制则被用来避免在小的平移差异中多次引入相同的候选者。然后为每个选定的候选者运行一个反向传递。提供了一个计分函数,它能够计算出候选子集对图像解释的可能性,最大化它,找到候选集合并将其作为对图像的解析返回。

我们用第二种方法,有两个优点:它需要一个单一的前向传递,它不是很贪婪以至于我们有希望得到一个更好的解。

非最大的抑制步骤是解释的快捷方式,如果我们要执行完全的推断,那么在模型中自然会出现这样的解释:在向前传递之后,多个可选的顶层变量,每一个对应一个给定的类别和位置都将显示一个较高的分数。这是因为顶层的解释只有在位置上的差异很小,可以在图像中产生相同的实例,在中间层的不同池配置中。如果我们夹一个顶级变量(对应于一个给定的类别和位置)到1(这意味着它存在),附加max-product消息传播将关闭附近的其他顶级变量,因为图像中的实例已经解释,没有激励max-product激活其他原因同样的观察。请注意,这解释了对替代解释的解释和抑制,这是模型定义和结构的结果,不需要额外的参数。

这需要一个半径参数。这应该基于架构而不是训练数据来设置。这个参数捕获给定的RCN参数化所提供的内在分辨率,而不是训练数据中实例之间的间隔。因此,当一个验证码的训练集非常分散时,我们不会增加这个值(即使我们可以不降低性能),因此可以适当地推广到测试用字母间的间距减少的测试用例。

4.7.1场景打分函数

先根据一个给定的场景描述打分函数,接下来描述如何有效的优化这个函数。

用自底向上的信息的总和F^{(1)}去估计postproc score,。我们的场景打分函数使用多个对象组成的复杂形状的近似postproc score,并为复杂度增加了一个特定的惩罚项。

按照(b),单一的前向传递和多个后向传递是一个自下而上信息B的单一集合(B是和F^{(1)}一一对应的三维数组)和自上而下二值激活元{\left \{​{T^{(m)}:m\in1,2,\cdots ,M }} \right \}的几个集合的结果。解是一个长度为M的二值向量,指定了哪个候选者被包含在解析解中。

4.7.2场景打分函数的优化

由于向量v导致指数级的计算复杂度,使用动态规划法可以在线性时间内求解。

递归法解

动态规划法通过利用所产生的mask的拓扑结构,以解决对象假设之间的高阶交互作用的生成模型。这些假设之间的高阶相互作用,解决这些相互作用所需要的信息是在由所述假设及mask所形成的拓扑图时可用,如果拓扑图被转换为标签空间的依赖图时这些信息丢失,这也是在场景解析中生成模型优于判别式模型的另一个优点。(那第一个呢?)

判别模型在标签空间使用依赖图,然而生成模型可以充分利用生成对象掩码的丰富信息来解决高阶交互。

 

5.学习

如果网络是4层,我们需要学习的参数依次是F^{(1)},F^{(2)},F(3),F(4),自底向上到达F^{(1)}的信息被预处理层计算,是不需要学习的。需要学习的有两部分:特征和横向连接。使用无监督字典学习和稀疏编码特征从训练集图像中提取的轮廓中学习特征,从输入的轮廓线和扰动模型中产生的扰动因子的池化层中学习侧向连接。由于每一个层都是独立的学习,各个部分可以交换。

学习最初依赖于无标签数据,只在学习最高层特征时需要标签数据,每一个类别特征都需要一个标签图像。

5.1特征学习

F^{(1)}学习后,正在学习F^{(2)}F^{(2)}学习到部分特征,一些F^{(1)}学习到的特征F^{(2)}未学习到,此时将使用F^{(1)}F^{(2)}共同去表达这个图像(根据轮廓线的连续性和F^{(1)}生成新的F^{(2)}特征,同时也说明了各层之间并不是信息传递的过程)

5.1.1稀疏化(稀疏编码)

稀疏化的目的是对输入图像在一组可复用的、可平移的特征的基础上得到紧集表示SS=\left \{ (f_{1},r_{1},c_{1}),\cdots ,(f_{K},r_{K},c_{K}) \right \}其中f_{k}是l层的特征。

稀疏化的目标是最小化l层的代价函数,方法类似于匹配追踪算法,但是RCN允许在matching阶段特征失真。

信号稀疏分解:将一个信号分解成字典库中的一些原子的组合,要求使用的原子个数最少,重构误差最小。对于一个给定的字典,列出所有可能的组合,可以从中选出满足上述要求的一组,得到最优组合。

但是穷举字典中的所有组合是一个NP难问题,对于大的字典库几乎无法实现,因此将要求改为从字典库中寻找一个原子个数尽可能少,重构误差尽可能小的次优组合。这样计算的复杂度会大大降低,MP算法就是能够实现这种要求的算法之一。

MP算法原理:算法假定输入信号与字典库中的原子在结构上具有一定的相关性,这种相关性通过信号与原子库中的原子内积表示,内积越大信号与字典库中的这个原子的相关性越大,因此可以使用这个原子来近似表示这个信号。当然这种表示会有误差,将表示误差称为信号残差,用原信号减去这个原子,得到残差,再通过计算相关性的方式从字典库中选出一个原子表示这个残差。迭代进行上述步骤,随着迭代次数的增加,信号残差将越来越小,当满足停止条件时终止迭代,得到一组原子及残差,将这组原子进行线性组合就能重构输入信号。

步骤:

Steps1--初始化:生成/选择字典库D,并对其中的原子做归一化处理norm(D),常用的字典库有:DCT,Gabor,初始化信号残差r=s(s为输入信号)

Step2--投影:将信号残差r与D中的每个原子Vi做内积p_{i}=s^{T}v_{i},记录最大的投影长度p_{max}和它所对应的原子的索引i

Step3--更新:更新残差r=s-p^{*}v_{i}

Step4--判断:当到达指定的迭代次数或残差小于设定的阈值时停止,否则继续step2,step3

参考网址:https://www.jianshu.com/p/411681f26848

匹配追踪算法:对信号进行系数分解的一种方法,将信号在完备字典库中进行分解。从字典矩阵中选择一列来表示信号a,构建稀疏逼近,求出信号残差,用剩余的列逼近残差,直到残差在误差范围内。

在每一迭代过程中,算法维持当前的稀疏表示和最底层激活单元没有被解释的部分,它将一个截断的前向传播到C-1层,并挑选C层最活跃的特征。然后做后向传播以确定相应的F^{(1)}特征,并抑制每个这样F^{(1)}特征邻域内的所有激活元。这个过程一直重复直到整个图像都被解释或者没有更好的匹配(在每一层都定义了损失函数)(判定条件为未被稀疏表示的程度)(贪婪法)

5.1.2中间层的特征学习----运用贪婪法

特征层lN个特征(N是确定的),每一个特征由一组子池组成

假设中间层的特征大小有一定的限制(每一层的3个特征由3-7个池组成)

我们的学习过程贪婪地寻找上述问题的近似解决方案。算法描述(略)它通过在每次迭代中添加一个或多个特性来构造字典。它还保留了每个训练图像的局部稀疏性,就目前为止所学到的特性而言。

随机挑选一个图片,观察不能解释的部分的孩子层的代表元,挑选一部分孩子组成特征,在孩子特征中形成一个邻接图,在图中形成连接集合。,(挑选候选者)这些作为候选者,挑选好的候选者,加入字典中,更新稀疏化(用稀疏代表元表示任意图像),重复,直到候选集为空返回字典

该算法学习了一些曲线和有向边

在每一个尺寸上,先学习有向边,再学习曲线和拐角

5.1.3最高层的特征学习

在层次结构的最高层从有标签的训练图像中学习到了分类特征,这一步是没有参数的,为每一个训练图像都创建了一个分类特征(由于模型中的不变性,允许形状和外观的变化)。限制或修剪分类特征是将来的重要方向。

最高层的学习是算法2的特殊情况:

只需要一次外部的迭代

Proposal阶段为每个标签数据返回一个分类特征(利用算法1?)

候选者都被接收(没有过滤、删除)

5.2侧向连接学习

学习横向连接包括:(1)学习横向图的结构(池对之间有横向约束)(2)学习池成员之间的成对兼容性的横向因子

横向图结构(池对之间的连接)是从输入图像中的对象的轮廓连通性中学习的——在输入轮廓中相邻的特征池是相互连接的。这个过程在层次结构中递归地应用,以学习在每个层次上池对之间的横向连接。额外的边被添加来强制那些在像素空间中接近的池在横向图中也很接近(这包括,作为一个特殊的例子,添加边使横向图连接起来,就像对多个空间分隔的部分,如小写的“i”)所要求的那样。我们将这些称为“约束边界”。

横向因子指定了在横向图中相邻的池成员之间的兼容性。根据第2.3.2节中描述的平动摄动模型,这是参数化的。这些因素的灵活性是通过每个级别的单个参数来控制的,并且这些参数是使用交叉验证来设置的。在我们的实验中,平移约束给出了合理的结果,但通过学习非均匀因子可以获得额外的选择性.

8.实验

8.1.1 2D相关

相关是滤波器模板移过图像并计算每个位置乘积之和的处理,卷积的机理相似,但滤波器首先要旋转180度。相关的计算步骤:

  1. 移动相关核的中心元素,使它位于输入图像待处理元素的正上方
  2. 将输入图像的像素值作为权重乘以相关核
  3. 将上面各步得到的结果相加作为输出

彩色图像在每一个颜色通道上执行2D相关(将强度值量化为0-255)

F^{corr}=CORRELATION2D(X)

8.1.2局部化

F^{corr}有一个不好的特性:多个相邻边缘过滤器通常是活动的(因为在图像中具有相同的边缘),为了避免在预处理中复制与单一边缘相对应的证据,我们采用类似于Canny边缘检测的方法对这些边缘进行局部化。

这就减轻了在预处理层内部对边缘过滤器进行解释的需要,根据经验,我们发现与局部化相比,这是不必要的昂贵,并且在对象检测性能上没有任何的影响。

F^{local}=LOCALIZE(F^{corr})该函数使用边缘过滤器的已知方向来执行定向抑制。

执行跨通道抑制以至于每个像素位置最多一个过滤器方向激活F_{f'r'c'}^{sup}

8.1.3转化为对数似然

归一化-----二值化或似然化

8.1.4定向池(在有跨通道抑制的时候需要定向池以消除离散化的误差)

现在,我们还可以跨相邻的过滤器方向进行池,以补偿由于跨通道抑制而产生的离散化错误。当边在两个过滤器方向时,次噪声能导致一个方向抑制另一个方向,。为了避免这种敏感性,引入了额外的不变性对象的旋转,我们修正了预处理管道来计算F^{pooled}

虽然定向池取消跨通道抑制,我们凭经验发现F^{pooled}相比F^{local}更容易产成一个判别式模型

多个滤波器的尺寸用于鲁棒性更强的对象检测,每一个滤波器尺寸单独使用相同的预处理管道。

超参数

8.2实践中的滤波器后处理

在形状重建过程中灰度滤波器重叠时,我们需要一个机制去避免重复计算和重叠像素相对应的对数似然

根据像素点的权重重新计算滤波器的对数似然。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
情感分析是一种通过计算机程序对文本中的情绪进行分析的技术。方面的使用生成对比学习方法。生成对比学习是一种通过比较两个不同视角的数据来提高模型性能的方法。在这种情感分析中,我们可以使用生成方法来自动提取文本中的情感方面,并结合对比学习方法来提高模型的性能。通过这种方法,我们可以更准确地识别文本中不同方面的情感,并且能够更好地区分出正面和负面情绪。 在这个过程中,我们首先使用生成模型来自动提取文本中的情感方面,然后结合对比学习方法来进行训练,以提高模型对情感方面的识别能力。这种方法可以帮助我们更准确地理解文本中的情感内容,并且能够更好地适应不同类型文本的情感分析任务。 此外,我们还可以使用这种方法来进行情感方面的生成,并结合对比学习方法来训练模型,使得生成的情感方面能够更接近真实的情感内容。通过这种方法,我们可以生成更加准确和自然的情感内容,并且能够更好地适应不同类型的情感生成任务。 综上所述,generative aspect-based sentiment analysis with contrastive learning and exp的方法可以帮助我们更准确地识别和生成文本中的情感内容,并且能够更好地适应不同类型文本的情感分析和生成任务。这种方法在自然语言处理领域具有广阔的应用前景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值