(57)【要約】 【課題】最終的に意図したデータの生成が可能な生成モデル学習方法、生成モデル学習装置およびプログラムを提供する。【解決手段】本発明の生成モデル学習方法は、第１の学習データに基づいて、データを生成するための生成モデルを学習する第１の学習ステップと、第２の学習データに基づいて、第１の学習ステップにより学習中の生成モデルを学習する第２の学習ステップと、を含み、第１の学習ステップと第２の学習ステップを交互に繰り返して生成モデルを学習する。【選択図】図２
2018139071.tif 000002
【特許請求の範囲】
【請求項１】
第１の学習データに基づいて、データを生成するための生成モデルを学習する第１の学習ステップと、
第２の学習データに基づいて、前記第１の学習ステップにより学習中の前記生成モデルを学習する第２の学習ステップと、を含み、
前記第１の学習ステップと前記第２の学習ステップを交互に繰り返して前記生成モデルを学習する、
生成モデル学習方法。
【請求項２】
前記第１の学習ステップは、
データを生成する生成器と、前記第１の学習データおよび前記生成器により生成されたデータを識別する識別器と、を含む敵対ネットワークの学習方法により、前記生成モデルを学習する、
請求項１に記載の生成モデル学習方法。
【請求項３】
前記第１の学習ステップは、
前記生成器の評価値と前記識別器の評価値とに基づいて、前記生成モデルを学習する、
請求項２に記載の生成モデル学習方法。
【請求項４】
前記識別器の評価値は、前記識別器の識別精度が高いほど高い値を示し、
前記生成器の評価値は、前記識別器が前記生成器により生成されたデータを前記第１の学習データであると誤認識するほど高い値を示す、
請求項３に記載の生成モデル学習方法。
【請求項５】
前記第２の学習ステップは、
入力されたデータから特徴量を算出するのに用いられる学習済みのモデルを用いて、前記第２の学習データから第１の特徴量を算出し、
前記学習済みのモデルを用いて、前記生成モデルにより生成されたデータから第２の特徴量を算出し、
前記第１の特徴量と前記第２の特徴量との誤差が最小となるよう、前記生成モデルを学習する、
請求項１乃至４のうちの何れか１項に記載の生成モデル学習方法。
【請求項６】
前記学習済みのモデルは、深層学習により学習済みのモデルである、
請求項５に記載の生成モデル学習方法。
【請求項７】
前記深層学習は、ＣＮＮ（Convolutional Neural Network）を利用した学習である、
請求項６に記載の生成モデル学習方法。
【請求項８】
前記第２の学習ステップは、
前記学習済みのモデルを用いて前記第２の学習データから算出したスタイル行列と、前記学習済みのモデルを用いて、前記生成モデルにより生成されたデータから算出したスタイル行列との誤差を示す第１の誤差を算出し、
前記学習済みのモデルを用いて前記第２の学習データから算出した中間層出力と、前記学習済みのモデルを用いて、前記生成モデルにより生成されたデータから算出した中間層出力との誤差を示す第２の誤差を算出し、
前記第１の誤差と前記第２の誤差との和が最小となるよう、前記生成モデルを学習する、
請求項７に記載の生成モデル学習方法。
【請求項９】
前記第１の特徴量は、前記学習済みのモデルを用いて前記第２の学習データから算出したスタイル行列、および、前記学習済みのモデルを用いて前記第２の学習データから算出した中間層出力であり、
前記第２の特徴量は、前記学習済みのモデルを用いて、前記生成モデルにより生成されたデータから算出したスタイル行列、および、前記学習済みのモデルを用いて、前記生成モデルにより生成されたデータから算出した中間層出力である、
請求項８に記載の生成モデル学習方法。
【請求項１０】
第１の学習データに基づいて、データを生成するための生成モデルを学習する第１の学習部と、
第２の学習データに基づいて、前記第１の学習部により学習中の前記生成モデルを学習する第２の学習部と、を含み、
前記第１の学習部による学習と前記第２の学習部による学習を交互に繰り返して前記生成モデルを学習する、
生成モデル学習装置。
【請求項１１】
コンピュータに、
第１の学習データに基づいて、データを生成するための生成モデルを学習する第１の学習ステップと、
第２の学習データに基づいて、前記第１の学習ステップにより学習中の前記生成モデルを学習する第２の学習ステップと、を実行させ、
前記第１の学習ステップと前記第２の学習ステップを交互に繰り返して前記生成モデルを学習するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成モデル学習方法、生成モデル学習装置およびプログラムに関する。
【背景技術】
【０００２】
従来、人工知能の分野では、生成モデルが利用されている。生成モデルは、データセットのモデルを学習することにより、当該データセットに含まれる学習データと類似するデータを生成することができる。
【０００３】
近年、変分自己符号化器（ＶＡＥ：Variational  Auto  Encoder）や敵対的ネットワーク（ＧＡＮ：Generative  Adversarial  Networks）などの、ディープラーニングを利用した生成モデルが提案されている。これらの生成モデルは、深層生成モデルと呼ばれ、従来の生成モデルに比べて、高い精度で学習データに類似するデータを生成することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の深層生成モデルは、生成されるデータの制御が困難であったため、最終的に意図したデータを生成することが困難であった。
【０００５】
本発明は、最終的に意図したデータの生成が可能な生成モデル学習方法、生成モデル学習装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、第１の学習データに基づいて、データを生成するための生成モデルを学習する第１の学習ステップと、第２の学習データに基づいて、前記第１の学習ステップにより学習中の前記生成モデルを学習する第２の学習ステップと、を含み、前記第１の学習ステップと前記第２の学習ステップを交互に繰り返して前記生成モデルを学習する生成モデル学習方法である。
【発明の効果】
【０００７】
本発明によれば、最終的に意図したデータの生成が可能になる。
【図面の簡単な説明】
【０００８】
【図１】図１は、生成モデル学習装置のハードウェア構成例を示す図である。
【図２】図２は、生成モデル学習装置が有する機能の一例を示す図である。
【図３】図３は、学習部による学習手順を模式的に示す図である。
【図４】図４は、学習部の動作例を示すフローチャートである。
【図５】図５は、第２の学習部による学習手順を模式的に示す図である。
【図６】図６は、実施形態の学習部の動作例を示すフローチャートである。
【図７】図７は、学習に使用した画像例を示す図である。
【図８】図８は、学習に使用した画像例を示す図である。
【図９】図９は、従来公知のＤＣＧＡＮを用いて生成した画像例を示す図である。
【図１０】図１０は、実施形態の構成により生成した画像例を示す図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本発明に係る生成モデル学習方法、生成モデル学習装置およびプログラムの実施形態を詳細に説明する。
【００１０】
図１は、本実施形態の生成モデル学習装置１のハードウェア構成例を示す図である。生成モデル学習装置１は、サーバコンピュータやクライアントコンピュータなどのコンピュータにより構成される。図１に示すように、生成モデル学習装置１は、ＣＰＵ（Central  Processing  Unit）１０１と、ＲＯＭ（Read  Only  Memory）１０２と、ＲＡＭ（Random  Access  Memory）１０３と、ＨＤＤ（Hard  Disk  Drive）１０４と、を備える。また、生成モデル学習装置１は、入力装置１０５と、表示装置１０６と、通信インタフェース１０７と、バス１０８と、を備える。
【００１１】
ＣＰＵ１０１は、プログラムを実行することにより、生成モデル学習装置１の各構成を制御し、生成モデル学習装置１が有する各種の機能を実現する。生成モデル学習装置１が有する各種の機能については後述する。ＲＯＭ１０２は、ＣＰＵ１０１が実行するプログラムを含む各種データを記憶する。ＲＡＭ１０３は、ＣＰＵ１０１の作業領域を有する揮発性のメモリである。ＨＤＤ１０４は、ＣＰＵ１０１が実行するプログラムやデータセットを含む各種データを記憶する。入力装置１０５は、ユーザによる操作に応じた情報を学習装置１に入力する。入力装置１０５は、マウス、キーボード、タッチパネル又はハードウェアキーであり得る。表示装置１０６は、後述の生成データを含む各種データを表示する。表示装置１０６は、液晶ディスプレイ、有機ＥＬ（Electro  Luminescence）ディスプレイ又はブラウン管ディスプレイであり得る。通信インタフェース１０７は、学習装置１を、ＬＡＮ（Local  Area  Network）やインターネットなどのネットワークに接続するためのインタフェースである。生成モデル学習装置１は、通信インタフェース１０７を介して外部装置と通信する。バス１０８は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、ＨＤＤ１０４、入力装置１０５、表示装置１０６及び通信インタフェース１０７の各々を接続するための配線である。なお、図１の例では、生成モデル学習装置１は、単一のコンピュータにより構成されているが、これに限らず、例えばネットワークを介して接続された複数のコンピュータにより構成された形態であってもよい。
【００１２】
図２は、生成モデル学習装置１が有する機能の一例を示す図である。図２に示すように、生成モデル学習装置１は、データセット記憶部２０１と、学習部２０２と、データ生成部２０３と、データ表示部２０４とを有する。
【００１３】
データセット記憶部２０１は、ユーザにより予め用意されたデータセットを記憶する。データセットは、複数の学習データの組であり、データを生成する生成モデルの学習に利用される。学習データは、画像データ、テキストデータ又は映像データであり得る。以下では、学習データは、画像データであるものとする。ここでは、データセット記憶部２０１は、２種類のデータセット（複数の学習データの組）を記憶している。より具体的には、データセット記憶部２０１は、複数の第１の学習データの組である第１の学習データセットと、複数の第２の学習データの組である第２の学習データセットと、を記憶する。
【００１４】
学習部２０２は、予め用意された第１の学習データおよび第２の学習データに基づいて、データを生成するための生成モデルを学習する。ここでは、学習部２０２は、第１の学習データセットおよび第２の学習データセットに基づいて、生成モデルを学習することになる。
【００１５】
図２に示すように、学習部２０２は、第１の学習部２１０と、第２の学習部２１１とを含む。第１の学習部２１０は、第１の学習データに基づいて、データを生成するための生成モデルを学習する。ここでは、生成モデルは、データを生成する生成器を少なくとも含む。第１の学習部２１０は、生成器（後述の図３に示す生成器３００に相当）と、第１の学習データおよび生成器により生成されたデータを識別する識別器（後述の図３に示す識別器３０１に相当）と、を含む敵対ネットワークの学習方法により、生成モデルを学習する。より具体的には、第１の学習部２１０は、生成器の評価値と識別器の評価値とに基づいて、生成モデルを学習する。識別器の評価値は、識別器の識別精度が高いほど高い値を示し、生成器の評価値は、識別器が生成器により生成されたデータを第１の学習データであると誤認識するほど高い値を示す。第１の学習部２１０による学習の具体的な内容については後述する。第１の学習部２１０は、第１の学習データセットに基づいて、生成器および識別器の各々を構成する各パラメータの値を学習（生成モデルを学習）することになる。
【００１６】
第２の学習部２１１は、第２の学習データに基づいて、第１の学習部２１０により学習中の生成モデルを学習する。以下の説明では、「生成モデル」とは、第１の学習部２１０により学習中の生成モデルであることを前提とする。ここでは、第２の学習部２１１は、入力されたデータから特徴量を算出するのに用いられる学習済みのモデルを用いて、第２の学習データから第１の特徴量を算出し、学習済みのモデルを用いて、生成モデル（第１の学習部２１０により学習中の生成モデル）により生成されたデータから第２の特徴量を算出し、第１の特徴量と第２の特徴量との誤差が最小となるように、生成モデルを学習する。ここでは、学習済みのモデルは、深層学習により学習済みのモデルである。この例では、深層学習は、ＣＮＮ（Convolutional  Neural  Network）を利用した学習であるが、これに限られるものではない。また、例えば第２の学習部２１１は、学習済みモデルを用いずに別の特徴量抽出方法で、第２の学習データから第２の特徴量を抽出する形態であってもよい。例えば画像データであれば、公知のＨＯＧ特徴量の抽出方法や公知のＳＩＦＴ特徴量の抽出方法を用いてもよいし、例えば音声データであれば、公知のホルマント遷移特徴量の抽出方法を用いることができる。
【００１７】
この例では、第２の学習部２１１は、学習済みのモデル（ＣＮＮを利用した学習により学習済みのモデル）を用いて第２の学習データから算出したスタイル行列と、該学習済みのモデルを用いて、生成モデルにより生成されたデータ（生成データ）から算出したスタイル行列との誤差を示す第１の誤差を算出し、該学習済みのモデルを用いて第２の学習データから算出した中間層出力と、該学習済みのモデルを用いて、生成データから算出した中間層出力との誤差を示す第２の誤差を算出し、第１の誤差と第２の誤差との和が最小となるよう、生成モデルを学習する。つまり、この例では、上記第１の特徴量は、ＣＮＮを利用した学習により学習済みのモデルを用いて第２の学習データから算出したスタイル行列、および、該学習済みのモデルを用いて第２の学習データから算出した中間層出力である。また、上記第２の特徴量は、該学習済みのモデルを用いて、生成データから算出したスタイル行列、および、該学習済みのモデルを用いて、生成データから算出した中間層出力である。第２の学習部２１１による学習の具体的な内容については後述する。第２の学習部２１１は、第２の学習データセットに基づいて、生成モデルに含まれる生成器を構成する各パラメータの値を学習（生成モデルを学習）することになる。
【００１８】
学習部２０２は、第１の学習部２１０による学習（第１の学習ステップ）と第２の学習部２０２による学習（第２の学習ステップ）を交互に繰り返して生成モデルを学習する。
【００１９】
データ生成部２０３は、学習部２０２により学習された生成モデルに、入力変数（潜在変数）を入力することによりデータを生成する。ここでは、データ生成部２０３により生成されたデータを「生成データ」と称する。
【００２０】
データ表示部２０４は、データ生成部２０３により生成された生成データを表示装置１０６に表示する。
【００２１】
次に、学習部２０２による学習の具体的な内容を説明する。図３は、学習部２０２による学習手順を模式的に示す図である。
【００２２】
まず、第１の学習部２１０による学習について説明する。この例では、第１の学習部２１０は、上記敵対ネットワークの学習方法の一例としてＧＡＮ（Generative  Adversarial  Networks）を利用するが、これに限られるものではない。図３において、ｘは識別器３０１に入力される入力変数、ｙは識別器３０１が出力する出力変数、ｚは生成器３００に入力される入力変数（潜在変数）である。
【００２３】
識別器３０１は、入力変数ｘが第１の学習データであるか、生成器３００により生成されたデータ（生成データ）であるかを識別可能なように学習される。この例では、入力変数ｘが生成データの場合は出力変数が０となり、入力変数ｘが第１の学習データの場合は出力変数ｙが１になるように、識別器３０１を構成する各パラメータの値が学習される。これに対して、生成器３００は、識別器３０１が第１の学習データと識別できない生成データを生成可能なように学習される。この例では、入力変数ｘが第１の学習データの場合は出力変数ｙが０になるように、生成器３００を構成する各パラメータの値が学習される。上記学習を繰り返すことで、識別器３０１の識別精度が向上し、生成器３００の生成精度（生成データが第１の学習データに類似する精度）が向上する。
【００２４】
以上の第１の学習部２１０による学習は、以下の式（１）で表される評価関数を解くことにより実現される。
【数１】
2018139071.tif 000003
【００２５】
上記式（１）において、Ｖは評価値、Ｄは識別器３０１を構成するパラメータ群、Ｇは生成器３００を構成するパラメータ群、Ｅ［・］は期待値、x~pdataはデータセットからサンプリングされた学習データの集合（入力変数ｘ）に相当する。また、z~pzは入力変数ｚ、Ｄ（ｘ）は入力変数ｘが入力された場合の出力変数ｙ、Ｇ（ｚ）は入力変数ｚを入力された場合の生成データに相当する。
【００２６】
上記式（１）の右辺第１項は、識別器３０１の評価値に相当し、識別器３０１の識別精度が高いほど、高い値となる。上記式（１）の右辺第２項は、生成器３００の評価値に相当し、識別器３０１が生成データを第１の学習データであると誤認識するほど（識別器３０１の識別間違いが多いほど）、高い値となる。
【００２７】
以上の式から分かるように、識別器３０１の学習が進むほど、式（１）の右辺第１項が高くなり、右辺第２項が低くなる。また、生成器３００の学習が進むほど、式（１）の右辺第１項が低くなり、右辺第２項が高くなる。
【００２８】
次に、第２の学習部２１１による学習について説明する。図３の例では、第２の学習部２１１は、学習済みモデル４００を用いて、第２の学習データから第１の特徴量を算出する。また、第２の学習部２１１は、学習済みモデル４００を用いて、第２の学習データから第２の特徴量を算出する。そして、第１の特徴量と第２の特徴量との誤差ｄを算出し、その算出した誤差ｄが最小となるよう、生成器３００を構成する各パラメータの値を学習する。第２の学習部２１１による学習のより具体的な内容については後述する。
【００２９】
図４は、学習部２０２の動作例を示すフローチャートである。学習部２０２は、ステップＳ４３１〜ステップＳ４５６の処理を繰り返して実行することで、生成モデルを学習する。図４の例では、ステップＳ４３１〜ステップＳ４４０の処理は、第１の学習部２１０による学習であり、ステップＳ４５１〜ステップＳ４５６の処理は、第２の学習部２１１による学習である。
【００３０】
まず、ステップＳ４３１〜ステップＳ４３３の処理について説明する。ステップＳ４３１では、第１の学習部２１０は、データセット記憶部２０１から、予め用意された第１の学習データセットを読み込む。次に、第１の学習部２１０は、第１の学習データを識別器３０１で識別させ（ステップＳ４３２）、その結果を元に識別器３０１の評価値を算出する（ステップＳ４３３）。
【００３１】
次に、ステップＳ４３４〜ステップＳ４３６の処理について説明する。ステップＳ４３４では、第１の学習部２１０は、生成器３００にてデータを生成させる。次に、第１の学習部２１０は、ステップＳ４３４で生成されたデータ（生成データ）を識別器３０１で識別させ（ステップＳ４３５）、その結果を元に生成器３００の評価値を算出する（ステップＳ４３６）。
【００３２】
ステップＳ４３１〜ステップＳ４３３の処理、および、ステップＳ４３４〜ステップＳ４３６の処理の後、第１の学習部２１０は、上記式（１）で表される評価関数を解くことにより、識別器３０１および生成器３００の各々のパラメータの値を算出（更新）する（ステップＳ４４０）。
【００３３】
続いて、第２の学習部２１１による処理を説明する。まずステップＳ４５１〜ステップＳ４５２の処理について説明する。ステップＳ４５１では、第２の学習部２１１は、データセット記憶部２０１から、予め用意された第２の学習データセットを読み込む。次に、第２の学習部２１１は、学習済みモデル４００を用いて、第２の学習データから第１の特徴量を算出する（ステップＳ４５２）。
【００３４】
次に、ステップＳ４５３〜ステップＳ４５４の処理について説明する。ステップＳ４５３では、第２の学習部２１１は、生成器３００にてデータを生成させる。次に、第２の学習部２１１は、学習済みモデルを用いて、ステップＳ４５３で生成されたデータ（生成データ）から第２の特徴量を算出する（ステップＳ４５４）。
【００３５】
上述のステップＳ４５１〜ステップＳ４５２の処理、および、上述のステップＳ４５３〜ステップＳ４５４の処理の後、第２の学習部２１１は、ステップＳ４５２で算出した第１の特徴量と、ステップＳ４５４で算出した第２の特徴量との誤差を算出する（ステップＳ４５５）。そして、ステップＳ４５５で算出した誤差が最小となるよう、生成器３００のパラメータ値を算出（更新）する（ステップＳ４５６）。
【００３６】
ここで、第２の学習部２１１による学習のより具体的な内容について説明する。本実施形態においては、上記学習済みモデルは、深層学習の一例であるＣＮＮを利用した学習により学習済みのモデルであり、第２の学習部２１１は、ニューラルネットを用いた画風変換手法の一例であるA  Neural  Algorithm  of  Artistic  Style（以下、単に「画風変換手法」と称する場合はこの手法を示す）で用いられる中間層出力とスタイル行列を特徴量とした学習を行う。ただし、第２の学習部２１１による学習はこの形態に限られるものではない。
【００３７】
図５は、本実施形態における第２の学習部２１１による学習手順を模式的に示す図である。本実施形態では、第２の学習部２１１は、学習済みモデル（ＣＮＮを利用した学習により学習済みのモデル）を用いて、第２の学習データからスタイル行列（上記第１の特徴量の一例）を算出する。また、第２の学習部２１１は、上記学習済みモデルを用いて、生成器３００により生成されたデータ（生成データ）からスタイル行列（上記第２の特徴量の一例）を算出する。スタイル行列は、ニューラルネットワークの階層に相当する複数の層（上位層から下位層）の各フィルタからの出力を用いてグラム行列を算出することで求めることができる。以下の説明では、第２の学習データから算出されたスタイル行列を「第１のスタイル行列」、生成データから算出されたスタイル行列を「第２のスタイル行列」と称する場合がある。そして、第２の学習部２１１は、第２の学習データセットに含まれる複数の第２の学習データごとに第１のスタイル行列を算出し、算出した第１のスタイル行列と、生成データから算出された第２のスタイル行列との誤差を算出し、その平均二乗値（以下の説明では「平均二乗誤差ｄ’」と称する場合がある）を求める。
【００３８】
また、第２の学習部２１１は、上記学習済みモデルを用いて、第２の学習データから中間層出力（上記第１の特徴量の一例）を算出する。また、第２の学習部２１１は、上記学習済みモデルを用いて、生成器３００により生成されたデータ（生成データ）から中間層出力（上記第２の特徴量の一例）を算出する。この場合、上位層から下位層までの各層のうち下位層の各フィルタからの出力値を中間層出力として使用する。以下の説明では、第２の学習データから算出された中間層出力を「第１の中間層出力」、生成データから算出された中間層出力を「第２の中間層出力」と称する場合がある。そして、第２の学習部２１１は、第２の学習データセットに含まれる複数の第２の学習データごとに第１の中間層出力を算出し、その算出した第１の中間層出力と、生成データから算出した第２の中間層出力との誤差を算出し、その平均二乗値（以下の説明では「平均二乗誤差ｄ’’」と称する場合がある）を求める。
【００３９】
続いて、第２の学習部２１１は、平均二乗誤差ｄ’と平均二乗誤差ｄ’’の和が最小になるように、生成器３００を構成する各パラメータの値を学習する。
【００４０】
図６は、本実施形態の学習部２０２の動作例を示すフローチャートである。ここでは、第２の学習部２１１による処理（ステップＳ４６０〜ステップＳ４６８）の部分が図４と相異するが、他の部分は同じである。以下、本実施形態における第２の学習部２１１による処理（ステップＳ４６０〜ステップＳ４６８）を説明する。
【００４１】
まず、ステップＳ４６０〜ステップＳ４６２の処理について説明する。ステップＳ４６０では、第２の学習部２１１は、データセット記憶部２０１から、予め用意された第２の学習データセットを読み込む。次に、第２の学習部２１１は、学習済みモデルを用いて、第２の学習データから第１のスタイル行列を算出する（ステップＳ４６１）。具体的には、第２の学習データごとに第１のスタイル行列を算出する。また、第２の学習部２１１は、学習済みモデルを用いて、第２の学習データから第１の中間層出力を算出する（ステップＳ４６２）。具体的には、第２の学習データごとに第１の中間層出力を算出する。
【００４２】
次に、ステップＳ４６３〜ステップＳ４６５の処理について説明する。ステップＳ４６３では、第２の学習部２１１は、生成器３００にてデータを生成させる。次に、第２の学習部２１１は、学習済みモデルを用いて、ステップＳ４６３で生成されたデータ（生成データ）から第２のスタイル行列を算出する（ステップＳ４６４）。また、第２の学習部２１１は、学習済みモデルを用いて、ステップＳ４６３で生成されたデータ（生成データ）から第２の中間層出力を算出する（ステップＳ４６５）。なお、以上に説明したステップＳ４６３〜ステップＳ４６５、および、ステップＳ４６０〜ステップＳ４６２の処理の順序は任意に変更可能である。
【００４３】
上述のステップＳ４６０〜ステップＳ４６２の処理、および、上述のステップＳ４６３〜ステップＳ４６５の処理の後、第２の学習部２１１は、ステップＳ４６１で算出した第１のスタイル行列ごとに、該第１のスタイル行列と、ステップＳ４６４で算出した第２のスタイル行列との誤差を算出し、その平均二乗値である平均二乗誤差ｄ’を算出する（ステップＳ４６６）。また、第２の学習部２１１は、ステップＳ４６２で算出した第１の中間層出力ごとに、該第１の中間層出力と、ステップＳ４６５で算出した第２の中間層出力との誤差を算出し、その平均二乗値である平均二乗誤差ｄ’’を算出する（ステップＳ４６７）。
【００４４】
上述のステップＳ４６６および上述のステップＳ４６７の後、第２の学習部２１１は、平均二乗誤差ｄ’と平均二乗誤差ｄ’’との和が最小となるように、生成器３００を構成する各パラメータの値を算出（更新）する（ステップＳ４６８）。
【００４５】
ここで、学習データの具体例として、ＭＮＩＳＴの手書き数字画像データセット（http://yann.lecun.com/exdb/mnist/参照）を用いる場合を想定する。この場合、「７」と「８」のクラスからランダムに各５００枚を選んで第１の学習データセットとし、第１の学習データセットに使用しなかった画像を各クラス５００枚ずつ選んで第２の学習データセットとする。このように学習データセットを選ぶことで、通常の生成モデルの学習では「７」と「８」が混ざったような画像が生成されるが、以上に説明したように本実施形態では第２の学習データセットで「７」と「８」の画像構造を持つように情報を与えるため、最終的に生成される画像は「７」と「８」が混ざり合うような画像が生成されにくくなることを確認する。
【００４６】
図７は、学習に使用した、ＭＮＩＳＴのクラス「７」の画像例を示す図であり、図８は、学習に使用した、ＭＮＩＳＴのクラス「８」の画像例を示す図である。また、図９は、従来公知のＤＣＧＡＮ（Deep  Convolutional  Generative  Adversarial  Network）を用いて生成した画像例を示す図であり、図１０は、本実施形態の構成により生成した画像例を示す図である。図９に示す画像では、学習に使用した画像にはなかった数字の「９」のような画像が生成され、部分的に欠損しているなど不自然な画像が多く生成されてしまっている。一方、本実施形態の構成により生成した画像では、数字の「９」のような画像は殆ど生成されておらず、かつ殆どの画像の画像構造が自然なものになっていることが分かる。
【００４７】
以上に説明したように、本実施形態では、上述の第１の学習部２１０による学習と、上述の第２の学習部２１１による学習を交互に繰り返して生成モデルを学習することにより、最終的に意図したデータの生成を可能にする。つまり、異なる学習データを用いて生成モデルを学習することで、該生成モデルが生成するデータの特徴をコントロールすることができる。これにより、最終的に学習された生成モデルにより生成されたデータは、ユーザが意図したデータとすることができる。
【００４８】
以上、本発明に係る実施形態について説明したが、本発明は、上述の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
【００４９】
また、上述した実施形態の生成モデル学習装置１で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【符号の説明】
【００５０】
１      生成モデル学習装置
２０１  データセット記憶部
２０２  学習部
２０３  データ生成部
２０４  データ表示部
２１０  第１の学習部
２１１  第２の学習部
【先行技術文献】
【非特許文献】
【００５１】
【非特許文献１】J. Gauthier. Conditional generative adversarial nets for convolutional face generation. Class Project for Stanford CS231N: Convolutional Neural Networks for Visual Recognition, Winter semester 2014
【非特許文献２】UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS
【図１】
2018139071.tif 000004
【図２】
2018139071.tif 000005
【図３】
2018139071.tif 000006
【図４】
2018139071.tif 000007
【図５】
2018139071.tif 000008
【図６】
2018139071.tif 000009
【図７】
2018139071.tif 000010
【図８】
2018139071.tif 000011
【図９】
2018139071.tif 000012
【図１０】
2018139071.tif 000013