技术领域
[0001] 本发明涉及生成模型学习方法、生成模型学习装置及程序。
相关背景技术
[0002] 以往,在人工智能的领域中,利用的是生成模型。生成模型能够通过学习数据集的模型,来生成与该数据集中包含的学习数据类似的数据。
[0003] 近年来,已经提案有变分自动编码器(VAE:Variational Auto Encoder)或生成对抗网络(GAN:Generative Adversarial Networks)等的利用了深学习的生成模型。这些生成模型被称为深层生成模型,与以往的生成模型相比,能够高精度地生成与学习数据相似的数据。
[0004] 然而,以往的深层生成模型因为所生成的数据的控制困难,所以难以生成最终所期望的数据。
[0005] 【非专利文献1】
[0006] J.Gauthier.Conditional generative adversarial nets for convolutional face generation.Class Project for Stanford CS231N:Convolutional Neural Networks for Visual Recognition,Winter semester 2014
[0007] 【非专利文献2】
[0008] UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS
具体实施方式
[0022] 以下,参照附图来详细说明本发明涉及的生成模型学习方法、生成模型学习装置及程序的实施方式。
[0023] 图1所示是本实施方式的生成模型学习装置1的硬件构成的例示图。生成模型学习装置1由服务器计算机与客户端计算机等的计算机构成。如图1所示,生成模型学习装置1包括CPU(中央处理单元)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104。另外,生成模型学习装置1还具有输入装置105、显示装置106、通信接口107和总线108。
[0024] CPU 101通过执行程序来控制生成模型学习装置1的各个构成,并实现生成模型学习装置1所具有的各种功能。对于生成模型学习装置1所具有的各种功能将在后面进行叙述。ROM 102存储的是包含有CPU 101所执行的程序的各种数据。RAM 103是具有CPU 101的工作区域的易失性存储器。HDD 104存储的是包含有CPU 101所执行的程序和数据集的各种数据。输入装置105将对应于用户的操作的信息输入到学习装置1。输入装置105可以是鼠标、键盘、触摸面板或硬件按键。显示装置106显示包括稍后述的生成数据的各种数据。显示装置106可以是液晶显示器、有机EL(电致发光:Electro Luminescence)显示器或阴极射线管显示器。通信接口107是用于将学习装置1连接到LAN(局域网:Local Area Network)或互联网等网络里的接口。生成模型学习装置1通过通信接口107来与外部装置通信。总线108是用于分别连接CPU 101、ROM 102、RAM 103、HDD 104、输入装置105、显示装置106及通信接口107的布线。另外,在图1的例子中,生成模型学习装置1是由单一的计算机构成的,但不限于此,例如也可以是通过借助于网络连接的多个的计算机来构成的方式。
[0025] 图2所示是生成模型学习装置1所具有的功能的一个例示图。如图2所示,生成模型学习装置1具有数据集存储部201、学习部202、数据生成部203以及数据显示部204。
[0026] 数据集存储部201存储有用户预先准备的数据集。数据集是多个学习数据的组,用来对生成数据的生成模型进行学习。其可以是学习数据、图像数据、文本数据或映像数据。在下文中,学习数据被假定为图像数据。这里,数据集存储部201存储有两种类型的数据集(多个学习数据的组)。更具体地说,数据集存储部201存储有作为多个的第1学习数据的组的第1学习数据集,和作为多个的第2学习数据的组的第2学习数据集。
[0027] 学习部202根据预先准备的第1学习数据及第2学习数据,来训练用于生成数据的生成模型。在此,学习部202是根据第1学习数据集和第2学习数据集来训练生成模型的。
[0028] 如图2所示,学习部202包括有第1学习部210和第2学习部211。第1学习部210基于第1学习数据来训练用于生成数据的生成模型。这里,生成模型至少包括有生成数据的生成器。第1学习部210通过包括生成器(相当于后述图3所示生成器300)和对第1学习数据及生成器生成的数据进行识别的识别器(相当于后述图3所示的识别器301)的生成对抗网络的学习方法来训练生成模型。更具体地说,第1学习部210是基于生成器的评价值和识别器的评价值来训练生成模型的。识别器的评价值是识别器的识别精度越高,其显示的值也越高,生成器的评价值是识别器将生成器生成的数据作为第1学习数据的误识别越高,其显示的值也越高。对于第1学习部210的学习的具体内容将在后面叙述。第1学习部210是根据第1学习数据集来学习(训练生成模型)构成各个生成器及识别器的各参数的值。
[0029] 第2学习部211基于第2学习数据,来训练第1学习部210学习中的生成模型。在以下的说明中,“生成模型”的前提是第1学习部210学习中的生成模型。这里,第2学习部211是使用从输入的数据来计算特征量时所用的学习结束的模型来从第2学习数据计算第1特征量,并采用学习结束的模型来从生成模型(第1学习部210学习中的生成模型)所生成的数据计算第2特征量,然后是使得第1特征量和第2特征量之间的误差为最小地来训练生成模型。在此,学习结束的模型是通过深度学习的学习结束的模型。在该示例中,深度学习是利用了卷积神经网路(CNN:Convolutional Neural Network)的学习,但并不限定于此。另外,第2学习部211例如也可以是不使用学习结束模型而以其他的特征量提取方法来从第2学习数据提取第2特征量的方式。例如,如果是图像数据时,就可以使用公知的HOG特征量的提取方法或SIFT特征量的提取方法,如果是语音数据时,则可以使用公知的共振峰过渡特征量的提取方法。
[0030] 在该示例中,第2学习部211计算第1误差来表示使用学习结束的模型(通过利用CNN来学习的学习结束的模型)从第2学习数据计算得到的风格矩阵和使用该学习结束的模型从生成模型所生成的数据(生成数据)算出的风格矩阵之间的误差,以及计算第2误差来表示使用该学习结束的模型从第2学习数据算出的中间层输出和使用该学习结束的模型从生成数据算出的中间层输出之间的误差,并使得第1误差和第2误差之和为最小地来训练生成模型。即,在本例中,上述第1特征量是使用通过利用CNN学习的学习结束的模型来从第2学习数据算出的风格矩阵,以及使用该学习结束的模型来从第2学习数据算出的中间层输出。另外,上述第2特征量是使用该学习结束的模型从生成数据算出的风格矩阵,以及使用该学习结束的模型从生成数据算出的中间层输出。对于第2学习部211的学习的具体内容将在后面叙述。第2学习部211是根据第2学习数据集来学习(训练生成模型)构成包含在生成模型里的生成器的各参数的值。
[0031] 学习部202将对第1学习部210的学习(第1学习步骤)和第2学习部202的学习(第2学习步骤)进行交替地反复来训练生成模型。
[0032] 数据生成部203通过将输入变量(潜在变量)输入到由学习部202学习的生成模型里来生成数据。在此,将数据生成部203生成的数据称为“生成数据”。
[0033] 数据显示部204将数据生成部203生成的生成数据显示到显示装置106里。
[0034] 接下来,对学习部202的学习的具体内容进行说明。图3是模式化地示出了学习部202的学习步骤的图。
[0035] 首先,说明第1学习部210的学习。在该示例中,第1学习部210作为上述对抗网络的学习方法的一例,使用的是生成对抗网络(GAN:Generative Adversarial Networks),但不限于此。在图3中,x是被输入到识别器301里的输入变量,y是从识别器301输出的输出变量,z是被输入到生成器300里的输入变量(潜在变量)。
[0036] 识别器301接受的学习的是能够识别输入变量x究竟是第1学习数据,还是由生成器300生成的数据(生成数据)。在该示例中,构成识别器301的各参数的值接受的学习是当输入变量x为生成数据时,输出变量为0,当输入变量x为第1学习数据时,输出变量y为1。相对于此,生成器300接受的学习是能够生成识别器301不能识别为第1学习数据的生成数据。在该例子中,构成生成器300的各参数的值接受的学习是当输入变量x为第1学习数据时,输出变量y为0。通过反复进行上述学习,识别器301的识别精度提高,生成器300的生成精度(生成数据与第1学习数据相似的精度)得以提高。
[0037] 以上的第1学习部210的学习可以通过对下式(1)表示的评价函数的求解来实现。
[0038]
[0039] 在上式(1)中,V是评价值,D是构成识别器301的参数组,G是构成生成器300的参数组,E[·]是期望值,x~pdata相当于从数据集采样到的学习数据的集合(输入变量x)。另外,z~pz是输入变量z,D(x)是输入变量x被输入时的输出变量y,G(z)相当于输入变量z被输入时的生成数据。
[0040] 上式(1)的右边第1项相当于识别器301的评价值,识别器301的识别精度越高,其值越高。上式(1)的右边第2项相当于生成器300的评价值,识别器301将生成数据误识别为第1学习数据越多(识别器301的识别错误越多),其值越高。
[0041] 如上述所示,识别器301的学习越多,式(1)右边第1项越高、右边第2项越低。此外,生成器300的学习越多,式(1)右边第1项越低、右边第2项越高。
[0042] 接着,对第2学习部211的学习进行说明。在图3的例子中,第2学习部211采用学习结束模型400来从第2学习数据计算第1特征量。另外,第2学习部211采用学习结束模型400来从生成数据计算第2特征量。然后,计算第1特征量和第2特征量之间的误差d,并使得该计算出的误差d为最小的方式来训练构成生成器300的各参数的值。对于第2学习部211的学习的更为具体的内容将在后面叙述。
[0043] 图4所示是学习部202的动作的流程例图。学习部202是通过重复执行步骤S431~步骤S456的处理来训练生成模型的。在图4的例子中,步骤S431~步骤S440的处理是第1学习部210的学习,步骤S451~步骤S456的处理是第2学习部211的学习。
[0044] 首先,说明步骤S431~步骤S433的处理。在步骤S431中,第1学习部210从数据集存储部201读入预先准备的第1学习数据集。接着,第1学习部210通过识别器301来识别第1学习数据(步骤S432),并且基于该结果来计算识别器301的评价值(步骤S433)。
[0045] 接着,说明步骤S434~步骤S436的处理。在步骤S434中,第1学习部210通过生成器300来生成数据。接着,第1学习部210通过识别器301来识别步骤S434中生成的数据(步骤S435),并且基于该结果来计算生成器300的评价值(步骤S436)。
[0046] 步骤S431~步骤S433的处理以及步骤S434~步骤S436的处理之后,第1学习部210通过求解上式(1)所示的评价函数,来计算(更新)识别器301和生成器300的各个参数的值(步骤S440)。
[0047] 接着,说明第2学习部211进行的处理。首先,对步骤S451~步骤S452的处理进行说明。在步骤S451,第2学习部211从数据集存储部201读入预先准备的第2学习数据集。接着,第2学习部211采用学习结束模型400来从第2学习数据计算第1特征量(步骤S452)。
[0048] 接下来,对步骤S453至步骤S454的处理进行说明。在步骤S453中,第2学习部211通过生成器300来生成数据。接着,第2学习部211使用学习结束模型来从步骤S453所生成的数据(生成数据)计算第2特征量(步骤S454)。
[0049] 上述的步骤S451~步骤S452的处理以及上述的步骤S453~步骤S454的处理之后,第2学习部211对步骤S452中计算的第1特征量和步骤S454中计算的第2特征量之间的误差进行计算(步骤S455)。然后,使得步骤S455中算出的误差为最小地来计算(更新)生成器300的参数值(步骤S456)。
[0050] 这里,对于第2学习部211的学习的更为具体的内容进行说明。在本实施方式中,上述学习结束模型是通过利用了作为深度学习一例的CNN的学习后的学习结束的模型,第2学习部211进行的是将使用神经网络的图像风格转换方法例的A Neural Algorithm of Artistic Style(以下,简称为“图像风格转换方法”表示该方法)所采用的中间层输出和风格矩阵作为特征量来学习的。但是,第2学习部211的学习不限于该方式。
[0051] 图5是模式化地示出了本实施方式中的学习部202的学习步骤的图。在本实施方式中,第2学习部211使用学习结束模型(通过利用CNN学习的学习结束的模型)来从第2学习数据计算风格矩阵(上述第1特征量的一例)。另外,第2学习部211使用上述学习结束模型来从生成器300生成的数据(生成数据)计算风格矩阵(上述第2特征量的一例)。风格矩阵可以通过使用相当于神经网络阶层的多个层(从上位层到下位层)的各个滤波器的输出来计算格拉姆矩阵的方法求得。在以下的说明中,有时会将从第2学习数据计算得到的风格矩阵称为“第1风格矩阵”,将从生成数据计算得到的风格矩阵称为“第2风格矩阵”。然后,第2学习部211对每个包含在第2学习数据集中的多个的第2学习数据来计算第1风格矩阵,并对计算出的第1风格矩阵和从生成数据计算出的第2风格矩阵之间的误差进行计算,来求得其均方值(在以下的说明中有时会称为“均方误差d′”)。
[0052] 另外,第2学习部211采用学习结束模型来从第2学习数据计算中间层输出(上述第1特征量的一例)。另外,第2学习部211使用上述学习结束模型来从生成器300生成的数据(生成数据)计算中间层输出(上述第2特征量的一例)。在这种情况下,是将上位层到下位层的各层中的下位层的各滤波器的输出值作为中间层输出来使用的。在以下的说明中,有时会将从第2学习数据计算得到的中间层输出称为“第1中间层输出”,将从生成数据计算得到的中间层输出称为“第2中间层输出”。然后,第2学习部211对每个包含在第2学习数据集中的多个的第2学习数据来计算第1中间层输出,并对该计算出的第1中间层输出和从生成数据计算出的第2中间层输出之间的误差进行计算,来求得其均方值(在以下的说明中有时会称为“均方误差d"”)。
[0053] 接着,第2学习部211使得均方误差d′和均方误差d"的和为最小的方式对构成生成器300的各参数的值进行学习。
[0054] 图6所示是实施方式的学习部202的动作的流程例图。这里,第2学习部211进行的处理(步骤S460~步骤S468)的部分与图4不同,其它部分相同。以下,说明本实施方式中的第2学习部211进行的处理(步骤S460~步骤S468)。
[0055] 首先,说明步骤S460~步骤S462的处理。在步骤S460中,第2学习部211从数据集存储部201读入预先准备的第2学习数据集。接着,第2学习部211采用学习结束模型来从第2学习数据计算第1风格矩阵(步骤S461)。具体来说就是,对每个第2学习数据都计算第1风格矩阵。另外,第2学习部211采用学习结束模型来从第2学习数据计算第1中间层输出(步骤S462)。具体来说就是,对每个第2学习数据都计算第1中间层输出。
[0056] 接下来,对步骤S463至步骤S464的处理进行说明。在步骤S463中,第2学习部211通过生成器300来生成数据。接着,第2学习部211使用学习结束模型来从步骤S463所生成的数据(生成数据)计算第2风格矩阵(步骤S464)。另外,第2学习部211使用学习结束模型来从步骤S463所生成的数据(生成数据)计算第2中间层输出(步骤S465)。还有,以上说明的步骤S463~步骤S465和步骤S460~步骤S462的处理的顺序可以任意改变。
[0057] 上述的步骤S460~步骤S462的处理和上述的步骤S463~步骤S465的处理之后,第2学习部211对于每一个步骤S461中计算出的第1风格矩阵来计算该第1风格矩阵和步骤S464中算出的第2风格矩阵之间的误差,并算出作为其均方值的均方误差d′(步骤S466)。另外,第2学习部211对于每一个步骤S462计算的第1中间层输出来计算该第1中间层输出和步骤S465算出的第2中间层输出之间的误差,并算出作为其均方值的均方误差d"(步骤S467)。
[0058] 在上述步骤S466和上述步骤S467之后,第2学习部211使得均方误差d′和均方误差d"的和为最小的方式来对构成生成器300的各参数的值进行计算(更新)(步骤S468)。
[0059] 在此,作为学习数据的具体例,可以设想是使用MNIST的手写数字图像数据集(参见http://yann.lecun.com/exdb/mnist/)的情况。这时,从“7”和“8”的类别中随机地选择各500张来作为第1学习数据集,并将没有用于第1学习数据集的图像按类别各选500张来作为第2学习数据集。通过这样地选择学习数据集,在通常的生成模型的学习中会生成“7”和“8”混杂的图像,如上说明那样,因为在本实施方式中是赋予信息来由第2学习数据集具有“7”和“8”的图像构造,所以最终生成的图像确认“7”和“8”混合的图像变得难以生成。
[0060] 图7所示是学习中所使用的MNIST的类别“7”的图像例,图8所示是学习中所使用的MNIST的类别“8”的图像例。另外,图9所示是使用以往公知的深度卷积生成对抗网络(DCGAN:Deep Convolutional Generative Adversarial Network)生成的图像例,图10所示是通过本实施方式的构成生成的图像例。在图9所示的图像中,生成了学习所使用的图像中没有的数字“9”那样的图像,较多地生成了有部分缺损等的不自然的图像。另一方面,在通过本实施方式的构成所生成的图像中,数字“9”那样的图像几乎没有生成,而且几乎所有的图像的图像构造都是自然的。
[0061] 如上说明的那样,在本实施方式中,通过将上述第1学习部210的学习和上述第2学习部211的学习交替重复地来学习(训练)生成模型,最终就可能生成所希望的数据。也就是说,通过使用不同的学习数据来训练生成模型,就能够控制该生成模型所生成的数据的特征。由此,通过最终的被训练了的生成模型所生成的数据就能够是用户所期望的数据。
[0062] 以上,对本发明所涉及的实施方式进行了说明,但本发明不限于原样不变的上述实施方式,在实施阶段,在不脱离其主旨的范围内能够对构成要素进行变形并具体化。另外,通过对上述实施方式所公开的多个的构成要素进行适当的组合,能够形成各种发明。例如,可以从实施方式所示的全部构成要素中删除几个构成要素。
[0063] 另外,由上述实施方式的生成模型学习装置1执行的程序也可以是以可安装形式或可执行形式的文件存储到CD-ROM、软磁盘(FD)、CD-R、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)等的计算机可读记录介质中来提供的构成,或者是经由因特网等网络来提供或颁布的构成。另外,也可以是将各种程序事先安装到ROM等中来提供的构成。