cover_image

强化学习在之家图像理解中的应用

张培 之家技术
2022年11月16日 10:00

关注“之家技术”,获取更多技术干货

图片
总篇178篇 2022年第53篇

1. 基本概念

1.1

简介

强化学习是机器学习领域的一个重要分支。与其它分支(如监督学习和无监督学习等)相比,强化学习着重模仿人类学习的过程,即通过不断地试错,总结经验并根据这些经验制定决策。这就像小宝宝学走路。一开始很容易摔倒,但是通过不断重复站立、行走和跌倒的过程,宝宝强化了腿部的力量和身体的平衡能力,后来就走得越来越稳了。
在强化学习的概念中,主角由小宝宝变成了智能体(agent),研究的目的是为了让它变得“智能”,通常是指能够完成某种既定的任务。譬如在自动驾驶任务中,无人车就是智能体,它的任务是通过学习能够自主地行驶而无须任何人工干预。又比如在图1所示的打砖块游戏中,智能体指的是计算机,它的目标是学会如何移动屏幕下方的木板来击打小球从而清除屏幕上方的所有砖块。

图片

图1:强化学习在雅达利(Atari)打砖块(breakout)游戏中的应用(来源[9])。
智能体经验的累积是通过与环境(environment)不断地交互实现的。不同的任务决定了环境可以是真实的物理世界(如无人驾驶),亦可能是虚拟的(如电子游戏)。智能体与环境的交互包括对环境的感知、行为反应以及从环境中得到的反馈。具体地,以打砖块游戏为例,智能体首先需要对当前的环境进行观察,比如屏幕上砖块的数量和位置、小球的位置和速度以及木板的位置等。这些观察描述了环境在某个时刻的状态。下一步,智能体需要根据观察来决定如何移动木板才能消除更多的砖块。无论左移或右移,这些都是智能体可能的动作(action),记为。假如木板确实击中了小球并消除了若干砖块,则相应的游戏得分就会增加,这便是智能体从环境中获得的反馈,通常称为收益或奖励(reward),一般用表示。但是,如果木板并未击中,小球便会从屏幕下方掉落导致游戏结束。此时智能体就会受到惩罚,促使它在以后的尝试中尽量避免这种情况的发生。惩罚本质上依然是一种奖励,尽管其值为负。上述交互过程的示意可见图2。

图片

图2:智能体与环境的交互过程(来源[10])。
由于砖块较多,智能体需要不断地移动木板击打小球才能消除所有砖块,进而完成任务。每次任务的执行都会产生一条轨迹(trajectory),它记录了各个时刻下状态和动作的取值。相应的最终收益为,其中我们用强调收益是一个关于轨迹的函数。自然地,当任务圆满完成时,则最终收益最大。
由图1可见,每个时刻下的砖块数量和位置、小球的位置和速度以及木板的位置都可能不同。这就导致任意时刻的环境状态有太多可能的取值,所以我们无法通过遍历所有轨迹来求得最大收益。但是,当我们把轨迹的产生看作一个随机过程,即的取值符合某些概率分布,则我们便可设法优化这个过程使得期望收益最大。换句话说,我们希望找到一个最优的轨迹概率分布函数,与其他分布函数相比,利用该函数产生大量的轨迹之后,所产生的平均收益是最大的,即
尽管该式清楚地表明了强化学习的核心优化目标,但是由于我们并没有给出轨迹的概率分布函数和收益函数的具体定义,因而无法直接对其进行数值计算。下面我们就来介绍一下如何对这些函数进行定义或建模。

1.2

建模

我们用表示在时刻状态下采取动作后在时刻变为状态的概率,其中分别表示在时刻的一个取值。我们用分别表示所有可能取值的集合,即。通常,被称为转移概率函数(transition probability function),分别为状态空间和动作空间。类似地,我们用表示在时刻状态下采取动作的概率,我们称其为策略(policy)。接着,我们假定符合马尔可夫性质(Markov property),即状态的转移只取决于最近的状态和动作,与历史无关,
则对用全概率公式展开并通过马尔可夫性质化简可得,
其中为环境初始状态概率,一般为某个未知常量。
在(2)中,对整个环境进行了描述,而则表征了智能体与环境的交互。如果我们能够设法给出前者的定义,则可用(2)计算每条轨迹的概率,然后对(1)进行优化。我们称这类方法为基于模型的(model-based)强化学习(如AlphaGo)。但是在大多数情况下,由于环境过于复杂或是未知,我们很难对进行建模,因而无法计算。在这些情况下,我们只能将重点放在如何使智能体与环境更好地交互上,即尝试给出的定义并对其进行优化。譬如,假定符合某种概率分布,并不断调整它的参数使得智能体采取的动作能够最大化平均收益
其中表示基于的轨迹概率分布函数,而则表示含有某种参数的策略。通常,这类方法被称为模型无关(model-free)的强化学习。后面要介绍的策略梯度(policy gradient)算法就属于此类方法。
由图2可知,时刻的收益取决于当前时刻的状态、采取的动作以及时刻的状态,即
其中为收益函数。在实际中,为了简化计算,通常认为只与当前时刻的状态和动作有关,因而只需给出的定义即可。譬如,在打砖块游戏中,我们可用下式计算每步的收益
知道了如何计算之后,每条轨迹的最终收益便很容易由得到。

1.3

优化

在介绍如何对公式(3)进行优化之前,我们先来介绍一个有用的等式
利用上式求关于的导数可得
利用公式(2),我们可计算如下
其中只与环境相关,与无关,因而被化简。将该结果代入(5)中可得,
由于是我们事先选定的某个概率分布,通常由某种神经网络实现,因而可通过反向传播算法(backpropagation)计算。又由于需要我们根据具体问题定义,所以亦不难得到。如此,我们便可通过(6)算出的值,而后将其代入到任意的梯度下降(gradient descent)算法中,不断迭代并最终确定。由于梯度下降算法要求我们每一步朝着的反方向前进,故当收益为正时,我们便沿着正确的方向前进;反之,则说明方向有误。这很自然地符合我们对的预期,即使得最大。我们称这类利用梯度下降对策略进行优化的方法为策略梯度算法。
由于当下的动作只会影响未来的收益,并不会改变过往的收益,因此我们可以利用这一性质对(6)进一步简化得,
可以证明,(7)与(6)等价[1]。尽管与(6)很像,但是由于(7)可以减少数值计算中的方差(见§1.4和§2.1),因而绝大多数策略梯度算法都基于(7)计算梯度。下面我们就来介绍如何对进行数值计算。

1.4

数值计算

由(7)可知,本质是一个数学期望。对于一个随机变量而言,为了估计它的数学期望,通常的做法是根据它的概率分布,随机独立地生成大量的样本并计算样本均值。由大数定律(the law of large numbers)可知,当样本足够多时,样本均值接近于数学期望。在数值计算中,这类通过大量随机采样对某些值进行估计的方法被称为蒙特卡洛(Monte Carlo)方法。由此,我们便可重复下面步骤对(3)进行优化:
  • 随机生成条轨迹,
  • 估计梯度,
  • 更新,其中为学习率。上述算法即为REINFORCE算法[12]
尽管REINFORCE算法简单且易于实现,但是在实际中却很少直接应用。一个原因是随机采样会产生大量不同的轨迹,导致梯度的估计过于粗糙(或方差过大),以至于算法很难收敛或训练时间过长。另一个原因是等价的轨迹样本可能会产生不同的。为了说明问题,在图3中我们假定是标量,用红色的线段表示该轨迹样本对应的收益为正,绿色的表示收益为负。线段的长度表示收益的绝对值。当我们用图3a所示的样本去估计梯度并更新后,可能得到如虚线所示的新策略。该策略符合预期,因为它降低了负收益轨迹的概率,同时增加了正收益轨迹的概率。但是,当我们把这组样本的收益都变为正时(如同时加上某个常量),新策略可能如图3b中虚线所示。显然,这与图3a中所示的不同。由于这两组样本实质上是等价的,因而由此产生的策略也应该是一致的。

图片

(a)

图片

(b)

图3:等价的轨迹样本可能会导致不同的新策略(来源[7])。
由上述分析不难看出,梯度估计的精度直接决定了策略梯度算法的鲁棒性和可重复性,因而是该算法研究的重点。下面我们来介绍由梯度估计而产生的不同的策略梯度算法。

2. 策略梯度算法

2.1 

基本策略梯度

由于是随机采样,轨迹在某个时刻难免会发生扰动(如选择了错误的动作等),从而导致后续的状态和动作不断偏离预期,相应的最终收益也会产生较大的偏差。为了消除扰动的影响,一种方法是改变收益的计算方式,如(7)仅考虑始于某个时刻的收益。但是,该方法只能影响收益的绝对大小,并不能反映它的好坏。比如图3中,负收益可通过加上某个常量变为正收益,反之亦然。为了能区分收益的成色,我们希望建立一个标准,可将收益与其进行比较来帮助我们判断。常见的做法是引入基线(baseline),用它来衡量从时刻开始所产生的收益的质量,如
为常量时,有
的引入并不会改变梯度的数学期望,且的取值任意。我们称含有基线的为基本策略梯度(vanilla policy gradient)。
由(1)可知,强化学习的优化目标是使得期望收益最大。因而,一种自然的基线选择是期望收益。这是因为,若某条轨迹所带来的收益好于预期,则说明该轨迹上的动作有助于增加收益,因此系统需调整策略去强化这些动作。反之,则系统应弱化甚至忽略这些动作。
由于(7)中计算的是始于某个时刻的收益,因而一般取为对应的期望收益,
为了说明(8)定义在和未来轨迹上,我们首先给出如下等式,
其中是任意两个随机变量,是关于的联合概率分布,是关于的条件概率分布,是关于的边缘概率分布。为了书写方便,我们将上式简记为
用(9)对(8)展开得,
其中表示从开始到时刻的轨迹。由马尔科夫性质(见§1.2)可知,
尽管定义在上,但是由于只与有关,所以本质上由关于的边缘分布和一个关于它们的函数定义,因此有
可见是一个定义在以及上的期望收益,可用蒙特卡洛方法来估计(见§1.4)。为了生成采样,(10)要求我们知道环境在时刻所有可能的状态。但由§1.2可知,这在实际中很难实现,因而我们无法估计由(8)定义的基线。为了简化,我们可以将(10)改写为
其中我们用强调是一个关于的函数,通常称为状态价值函数(value function),表示在时刻下始于状态的期望收益。由于我们能够观察到环境在时刻的某个状态,因此我们可用该状态下的平均收益替代所有状态下的平均收益,进而对(8)中的基线进行简化。由于利用蒙特卡洛方法对进行估计时需要不断地重设模拟器以保证每个样本都有相同的(如图4a所示),若较大时,这样势必会大大降低算法效率,因此有必要对的估计进行简化。

图片

(a)

图片

(b)

图4:对不同的估计方法。
考虑到是一个关于的函数,因此我们可用回归(regression)的方法对其进行估计。具体地,假定的一个估计,通常由某个含有权重的神经网络实现。当给定一组状态和对应收益的样本,我们可以利用如下的公式对进行优化从而确定
通常可以利用§1.4中的轨迹样本产生(如图4b所示)。值得注意的是,由于轨迹的采样是基于当前策略的,因此一旦策略更新后,我们必须利用新的轨迹样本重新生成
需要指出的是,尽管在大多数情况下,基本策略梯度算法采用作为基线,但它并不是唯一的选择。其它的选择有移动平均[11](moving average)等,由于基线的选择不是本文的重点,因此不再这里做过多的介绍。

2.2

Actor-Critic

为了引出Actor-Critic算法,我们首先介绍一个与状态价值函数(见§2.1)相关的概念,即动作价值函数(action-value function),
可见,该函数本质上描述了在时刻下始于状态并采取动作后的期望收益。将其与状态价值函数的定义相比后不难发现,,其中。这是因为
进一步地,由(9)可得,
对于动作价值函数来说,由于时刻下的都是给定的,所以是一个常量,因此有
又由(11),我们可将上式改写为
注意到是一个与无关的常量,因此有
故我们可以推出另外一个关于状态价值函数和动作价值函数的等式,
利用动作价值函数,我们可以将(7)改写为
可以证明,(13)与(7)等价[2]。由§2.1可知,为了更好地估计梯度,我们需要给(13)引入一个基线。自然地,我们想到可以用来作这个基线,即
其中被称为优势函数(advantage function),表明与平均收益相比,某个动作下收益的好坏。因此由§1.4和§2.1的讨论可知,如果我们能够很好地对其进行估计,我们便能有效地降低梯度方差。由于直接估计要求我们对分别进行估计,这在实际中并不方便,因此有必要对的估计进行简化。
注意到将(12)代入有,
其中我们用时刻下始于状态的期望收益替代该时刻下所有状态的期望收益。由于我们已经在§2.1中给出了如何对进行估计,因此的估计不难计算。将该结果代入(14)有,
这便是Actor-Critic算法的梯度计算公式。在该算法中,策略相当于actor,因为它控制着动作的选择;而基线则相当于critic,因为它衡量了由某个动作产生的平均收益的好坏。
需要指出的是,(15)并不是Actor-Critic算法的唯一形式。任何对优势函数、动作价值函数或是状态价值函数的不同估计都会产生不同的Actor-Critic算法,如A3C[8]和soft Actor-Critic[5]等。感兴趣的读者可自行参阅,本文不再赘述。下面我们来介绍策略梯度算法在实际应用中的一些例子。

3 实际应用

3.1 

自然场景下的文字识别

在公司的不少业务中,都有对图片中的文字进行识别的需求,比如招牌上的电话号码、图片中的违规文字等。多样的业务场景导致图像的背景复杂,字体多样,且可能含有几何形变或遮挡。传统的OCR技术无法处理这些图像,所以在这些业务中我们就需要用到自然场景下的文字识别(scene text recognition,简称STR)技术。
目前主流的STR算法大体都基于图5所示的序列到序列(sequence to sequence,简称Seq2Seq)的学习框架。具体地,图片首先经过编码器的处理产生图像特征,而后将该特征送入解码器中(迭代)产生识别结果。通常,编码器(encoder)由某个卷积神经网络实现,而解码器(decoder)由某个循环神经网络(如LSTM[6]或GRU[4]等)实现。由于该方法考虑了图像及文本的语义信息,因而可以直接输出识别的文字序列且无需后处理,所以结果也较其它方法(如单字符检测等)更为准确。此外,该方法的训练样本较易标注,仅需辨识出图片中的文字即可。必要的时候,亦可通过人工合成产生训练样本。基于上述优点,该方法被广泛引用于各种自然场景下的文字识别。

图片

图5:一个典型的序列到序列的学习框架。

► 3.1.1 注意力机制

由于编码器产生的特征通常是对图像全局信息的表征,而非目标文本中的各个字符,所以该特征与字符之间的相关性较弱。因此在实际中,一般不会直接将其送入解码器中进行处理。常见的做法是首先建立起字符与图像特征中某些局部信息的相关性,而后利用这些局部信息产生识别结果。注意力机制(attention mechanism)就是建立这种相关性的一种常用方法(图6)。

图片

图6:注意力机制示意图。
注意力机制的输入除了图像特征外,还包含一个查询向量。后者一般来自于循环神经网络在某个时刻的隐向量,表明该时刻之前的历史文本信息。注意力机制通常由多层感知机(multilayer perceptron,简称MLP)实现,譬如图6中的灰色区域,其中fc表示全连接层,+表示向量的拼接(concatenation)操作。MLP的主要作用是将进行比对,进而找出中与最相关的部分,并用注意力权重向量对相关性进行量化。例如,在图6中,我们用颜色的深浅表明中元素的相关性。注意力机制的输出是一个语义向量,它指明了当下最应该关注哪些图像区域才能更好地预测目标字符,其中是一个定义在上的融合函数。
注意力机制之间最主要的区别就是对的定义不同。譬如,在广泛使用的泛注意力(soft attention)机制中[3],表明它虽然考虑了中的所有元素,但是各有侧重。但对于STR来说,我们只需选取中与目标字符最相关的元素即可对字符进行辨识,引入其它的无关元素反而会干扰识别。因此在这种情况下,我们就可以采用强注意力(hard attention)机制,即对中的元素择优而选。譬如,一种方法[13]是把看作一个多项式分布(图7),即表示与其对应的元素被选中的概率。这样我们就可以把该概率分布当作策略,而元素的选择视为动作,从而利用强化学习的方法(如§2.1中的基本策略梯度)去建立目标字符与图像局部特征之间的相关性。

图片

图7:注意力权重所定义的多项式分布。

► 3.1.2 实验结果

图8给出了强化学习在STR应用中的一些结果。其中,黑色和红色字符分别表示正确和错误的辨识。可以看到,当识别结果正确时,字符与其对应的图像区域有很强的相关性,甚至有些时候字符几乎处于图像的中间位置(如蓝色方框内的图像)。但是,由于强化学习容易受到随机采样的影响(见§1.4),该方法并不能很好地处理含有较大几何形变的文本图像(图8b)。

图片

(a) 成功

图片

(b) 失败
图8:强化学习在STR应用中的示例。

3.2

 图像文本自动生成

用户在看车选车的过程中总是希望对心仪的车辆进行详尽地了解,所以会从各种不同的维度搜集检索信息对其进行考察。之家现有的图片检索(如产品库)仅支持有限的标签,如车型、外观和内饰等,因而无法满足用户个性化的搜索需求。为了解决上述问题,我们可以利用图像文本自动生成技术(image captioning)对图像的内容用自然语言进行有意义的描述,并根据产生的文本对内容进行细粒度打标,从而提高检索的相关性。
尽管对人来说,用语言描述图片中的内容非常简单,但对于计算机来说仍具有相当的难度。这是因为图像和文本属于截然不同的两种模态。因而最大的挑战源于如何使机器能够理解前者的内容,并准确地转化为后者且使其合乎人类的语言习惯。这就要求我们在设计算法的时候,既要抓住图像内容的主体,又要尽可能地照顾细节。这样才能使生成的描述既不会离题万里,也不至于词不达意。由于强注意力(见§3.1.1)可以帮助我们建立词语与图像局部信息的相关性,因此我们依然可以利用它以及Seq2Seq框架(图5)来解决图像文本的自动生成问题。图9给出了一些利用该方法生成的图像描述的例子。

图片敞的后排空间,超级舒适。

图片

后备箱空间杠杠的,家用绰绰有余。
图9:强化学习在图像文本自动生成中的应用。

 4. 小结 

本文介绍了强化学习的基本概念,并着重梳理了一类模型无关的强化学习,即策略梯度算法。我们分别介绍了其中的两种算法——基本策略梯度和Actor-Critic方法,并对它们的优缺点进行了分析。最后,我们展示了策略梯度算法在自然场景下的文本图像识别中的应用,并讨论了该方法在此场景下的鲁棒性。

参考文献

[1]Joshua Achiam. Proof for don’t let the past distract you. 

https://spinningup.openai.com/en/latest/ spinningup/extra_pg_proof1.html, 2018.

[2]Joshua Achiam. Proof for using q-function in policy gradient formula. 

https://spinningup.openai.com/en/ latest/spinningup/extra_pg_proof2.html, 2018.

[3]Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly learning to align and translate. In Yoshua Bengio and Yann LeCun, editors, Proceedings of International Conference on Learning Representations, 2015.

[4]Kyunghyun Cho, Bart van Merriënboer, Caglar Gulcehre, Dzmitry Bahdanau, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. Learning phrase representations using RNN encoder–decoder for statistical machine translation. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, pages 1724–1734, 2014.

[5]TuomasHaarnoja, Aurick Zhou, Pieter Abbeel, and Sergey Levine. Soft actor-critic: Off-policy maximum entropy deep reinforcement learning with a stochastic actor. In Jennifer Dy and Andreas Krause, editors, Proceedings of the 35th International Conference on Machine Learning, volume 80, pages 1861–1870, 2018.

[6]Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural Computation, 9(8):1735–1780, 1997.

[7]Sergey Levine. Policy gradients.

 http://rail.eecs.berkeley.edu/deeprlcourse-fa17/f17docs/lecture_4_policy_gradient.pdf, 2017.

[8]Volodymyr Mnih, Adria Puigdomenech Badia, Mehdi Mirza, Alex Graves, Timothy Lillicrap, Tim Harley, David Silver, and Koray Kavukcuoglu. Asynchronous methods for deep reinforcement learning. In Maria Florina Balcan and Kilian Q.Weinberger, editors, Proceedings of The 33rd International Conference on Machine Learning, volume 48, pages 1928–1937, 2016.

[9]Greg Surma. Atari - solving games with AI (part 1: reinforcement learning). 

https://gsurma.medium.com/atari-reinforcement-learning-in-depth-part-1-ddqn-ceaa762a546f, 2018.

[10]Richard S. Sutton and Andrew G. Barto. Reinforcement Learning: An Introduction. A Bradford Book, Cambridge, MA, USA, 2018.

[11]LexWeaver and Nigel Tao. The optimal reward baseline for gradient-based reinforcement learning. In Proceedings of the Seventeenth Conference on Uncertainty in Artificial Intelligence, page 538–545, 2001.

[12]Ronald J. Williams. Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine Learning, 8(3–4):229–256, 1992.

[13]Kelvin Xu, Jimmy Lei Ba, Ryan Kiros, Kyunghyun Cho, Aaron Courville, Ruslan Salakhutdinov, Richard S. Zemel, and Yoshua Bengio. Show, attend and tell: Neural image caption generation with visual attention. In Proceedings of the International Conference on Machine Learning, pages 2048–2057, 2015.




作者简介

图片


张培

 C端及中台产研中心-智能推荐部-内容理解组。

 2018年加入汽车之家,主要负责计算机视觉相关算法的研发和应用。参与并落地的项目包括车辆故障灯的识别,论坛违规图片的检测和自然场景下的文字识别等。


图片
阅读更多:

▼ 关注「之家技术」,获取更多技术干货 


图片

继续滑动看下一个
之家技术
向上滑动看下一个