添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
図1は、本発明の一実施形態に係る学習システム100のネットワーク構成図である。学習システム100は、それぞれ分類が定められた初期データセットを記憶するデータベースDBと、入力されたデータの分類を出力する分類モデル20と、データベースDBに記憶された初期データセットを用いて、分類モデル20によってデータが正しく分類されるように、分類モデル20を学習させる学習装置10と、を含む。学習システム100は、通信ネットワークNに接続され、ユーザ端末30からの指示に基づいて、データベースDBに記憶された初期データセットの追加や編集を行ったり、分類モデル20の学習を行ったりしてよい。ここで、通信ネットワークNは、有線又は無線の通信網であり、例えばインターネットやLAN(Local Area Network)であってよい。本実施形態に係る学習システム100は、いわゆるクラウドコンピューティングの形で全部又は一部の構成要素がリモートコンピュータによって構成されてよいが、全部又は一部の構成要素がローカルコンピュータによって構成されてもよい。
分類モデル20は、入力データを複数のクラスに分類するモデルであり、例えばニューラルネットワークを用いたモデルであったり、サポートベクタマシンを用いたモデルであったりしてよく、任意のモデルであってよい。分類モデル20は、入力データの種類によって異なるモデルであってよい。分類モデル20に入力される入力データは、音データ、画像データ及びテキストデータ等であってよい。
学習装置10は、データベースDBに記憶された初期データセットを用いて、分類モデル20によってデータが正しく分類されるように、未だ学習がされていない分類モデル20を本実施形態に係る学習方法で学習させてもよいし、通常の学習方法で学習された分類モデル20を、本実施形態に係る学習方法で学習させてもよい。
図2は、本実施形態に係る学習装置10の物理的な構成を示す図である。学習装置10は、ハードウェアプロセッサに相当するCPU(Central Processing Unit)10aと、メモリに相当するRAM(Random Access Memory)10bと、メモリに相当するROM(Read Only Memory)10cと、通信部10dと、入力部10eと、表示部10fとを有する。これら各構成は、バスを介して相互にデータ送受信可能に接続される。
CPU10aは、RAM10b又はROM10cに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。CPU10aは、分類モデル20を学習させるプログラム(学習プログラム)を実行する演算装置である。CPU10aは、入力部10eや通信部10dから種々の入力データを受け取り、入力データの演算結果を表示部10fに表示したり、RAM10bやROM10cに格納したりする。
RAM10bは、データの書き換えが可能な記憶部であり、例えば半導体記憶素子で構成される。RAM10bは、CPU10aが実行するアプリケーション等のプログラムやデータを記憶する。
ROM10cは、データの読み出しのみが可能な記憶部であり、例えば半導体記憶素子で構成される。ROM10cは、例えばファームウェア等のプログラムやデータを記憶する。
通信部10dは、学習装置10を通信ネットワークNに接続する通信インタフェースである。
入力部10eは、ユーザからデータの入力を受け付けるものであり、例えば、キーボードやマウス、タッチパネルで構成される。
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えばLCD(Liquid Crystal Display)により構成される。
学習プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部10dにより接続される通信ネットワークNを介して提供されてもよい。学習装置10では、CPU10aが学習プログラムを実行することにより、次図を用いて説明する様々な機能が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、学習装置10は、CPU10aとRAM10bやROM10cが一体化したLSI(Large-Scale Integration)を備えていてもよい。また、学習装置10は、GPU(Graphics Processing Unit)やFPGA(Field-Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)等の演算回路を備えてもよい。
図3は、本実施形態に係る学習装置10の機能ブロック図である。学習装置10は、学習用データ選択部11、生成部12、比率決定部13、投入部14及び更新部15を備える。
学習用データ選択部11は、データベースDBに記憶された初期データセットのうちから、複数の学習用データを選択する。学習用データ選択部11は、データベースDBに記憶された初期データセットのうちからランダムにデータを選択してよい。学習用データ選択部11は、初期データセットのうちから、例えば、ランダムに2つのデータを選択してよいが、ランダムに3つ以上のデータを選択してもよい。学習用データ選択部11は、一様分布やガウス分布等によって乱数を生成し、当該乱数に基づいて、データベースDBに記憶された初期データセットのうちからランダムにデータを選択してよい。
初期データセットのうちから複数の学習用データを選択して合成データとすることで、初期データセットの組合せの数だけ合成データの合成元となるデータを増やすことができ、分類モデルを多様なデータで学習させることができる。
また、初期データセットのうちからランダムに複数の学習用データを選択することで、学習用データの数が限られている場合であっても、多様な合成データを生成することができ、分類モデルの出力の精度をより高めるように分類モデルを学習させることができ、分類モデルによる分類の正答率をより高めるように分類モデルを学習させることができる。
生成部12は、それぞれ分類が定められた複数の学習用データ又は複数の学習用データを変換して得られた複数の変換データを所定の比率で合成し、1つの合成データを生成する。生成部12は、合成データを生成することを実行する前に、複数の学習用データを変換し、複数の変換データを生成して、複数の変換データを所定の比率で合成し、1つの合成データを生成してもよい。ここで、学習用データが音データの場合、変換データは、音データをランダムに切り取ることで生成したり、音データの音圧レベルやピッチ、速度等をランダムに変更したりすることで生成してよい。また、学習用データが画像データの場合、変換データは、画像データをランダムに切り取ることで生成したり、画像データをランダムに拡大縮小したり、回転したり、アスペクト比の変更を行ったり、RGB値を変更したりすることで生成してよい。このように、複数の学習用データを整形したり、複数の学習用データに対してデータオーグメンテーションを行ったりすることで複数の変換データを得て、それらを所定の比率で合成して合成データを生成することで、分類モデルをさらに多様なデータで学習させることができる。
また、生成部12は、合成データを生成することを実行する前に、複数の学習用データ又は複数の学習用データを変換した複数の変換データを分類モデル20に入力し、分類モデル20の複数の中間出力を取得して、複数の中間出力を所定の比率で合成し、1つの合成データを生成してもよい。
複数の学習用データが複数の音データである場合、生成部12は、複数の音データを所定の比率で重ね合わせて、1つの合成音データを生成する。ここで、複数の音データは、サンプル毎に、所定の比率で重ね合わせることとしてよい。また、複数の学習用データが複数の画像データである場合、生成部12は、複数の画像データのピクセル毎に、ピクセル値を所定の比率で加算して、1つの合成画像データを生成する。さらに、複数の学習用データが複数のテキストデータである場合、生成部12は、複数のテキストデータを複数のベクトルデータに変換して、複数のベクトルデータを所定の比率で加算して、1つの合成ベクトルデータを生成する。なお、複数の音データを所定の比率で重ね合わせて、1つの合成音データを生成することは、デジタルデータとしての音データを重ね合わせることで行ってよいが、アナログデータとしての音データを重ね合わせることで行ってもよい。すなわち、複数の音データを所定の比率の音量で同時に再生し、録音することで、1つの合成音データを生成することとしてもよい。また、複数の画像データのピクセル毎に、ピクセル値を所定の比率で加算して、1つの合成画像データを生成することは、デジタルデータとしての画像データを加算することで行ってよいが、アナログデータとしての画像データを加算することで行ってもよい。すなわち、複数の画像データを所定の比率の光量で表示し、光学系によって重ね合わせて撮影することで、1つの合成画像データを生成することとしてもよい。
比率決定部13は、生成部12が合成データを生成する際に用いる所定の比率を決定する。比率決定部13は、所定の数値範囲から1つの数値をランダムに選択して、選択された数値に基づいて所定の比率を決定してよい。比率決定部13は、例えば、0から1の数値範囲から1つの数値をランダムに選択して、選択した数値を所定の比率としてもよい。ここで、比率決定部13は、一様分布やガウス分布等によって、所定の数値範囲から1つの数値をランダムに生成してもよい。また、比率決定部13は、所定の数値範囲から1つの数値をランダムに選択して、選択された数値の関数によって所定の比率を決定してもよい。比率決定部13は、生成部12によって合成データを生成する度に、所定の比率を決定してもよい。比率決定部13は、学習用データ選択部11によって初期データセットのうちから複数の学習用データが選択される度に、それら複数の学習用データを合成する際に用いる所定の比率を決定してもよい。
学習用データを合成する比率を可変とすることで、同じ学習用データを用いる場合であっても、異なる内容の合成データを生成できるようになり、分類モデルの学習に用いるデータの多様性を増すことができる。
また、学習用データを合成する比率をランダムに選択することで、学習用データの数が限られている場合であっても、多様な合成データを生成することができ、分類モデルの出力の精度をより高めるように分類モデルを学習させることができ、分類モデルによる分類の正答率をより高めるように分類モデルを学習させることができる。
さらに、学習用データを合成する比率の決定を、合成データを生成する度に行うことで、学習の反復回数が多い場合であっても、反復を行う度に異なる内容の合成データについて学習を行うことができ、分類モデルを多様なデータで学習させることができる。
投入部14は、生成部12によって生成された1又は複数の合成データを分類モデル20に入力する。投入部14は、複数の合成データを分類モデル20に順次入力してもよいし、複数の合成データを一度に分類モデル20に入力してもよい。分類モデル20がニューラルネットワークの場合、投入部14は、合成データをニューラルネットワークの入力層に入力してよい。
もっとも、生成部12によって分類モデル20の複数の中間出力を得て、複数の中間出力を所定の比率で合成し、1つの合成データを生成した場合、投入部14は、1又は複数の合成データを、分類モデル20のうち中間出力を出力した構成の後段に入力してよい。分類モデル20がニューラルネットワークの場合、投入部14は、ニューラルネットワークに含まれる複数の層うち、中間出力を出力した層の次の層に合成データを入力してよい。分類モデル20の中間出力を得て、それらを所定の比率で合成して合成データを生成し、分類モデル20のうち中間出力を出力した構成の後段に合成データを入力することで、分類モデル20の出力の精度をより高めるように分類モデル20を学習させることができ、分類モデルによる分類の正答率をより高めるように分類モデルを学習させることができる。
更新部15は、分類モデル20の出力によって、合成データに含まれる複数の学習用データの分類が所定の比率で再現されるように、分類モデル20のパラメータを更新する。例えば、第1学習用データを0.2の比率で含み、第2学習用データを0.8の比率で含む合成データを分類モデル20に入力した場合、更新部15は、分類モデル20の出力によって、第1学習用データに対応するクラスの出力値が0.2、第2学習用データに対応するクラスの出力値が0.8となるように、分類モデル20のパラメータを更新する。
以下では、図4、5及び6を用いて、本実施形態に係る学習方法によって、分類モデル20に音データの分類を学習させる場合について説明する。
図4は、本実施形態に係る学習方法によって、分類モデル20に音データの分類を学習させる場合の概念図である。本実施形態に係る学習方法では、合成データを生成することを実行する前に、データベースDBに記憶された初期データセットのうちから、ランダムに2つのデータを選択することを実行する。本例では、データベースDBは、犬(Dog)に分類される複数の音データと、猫(Cat)に分類される複数の音データと、鳥(Bird)に分類される複数の音データと、を含み、合成データを生成する元データとして、犬に関する第1音データA1と猫に関する第2音データA2とが選択されている。
本実施形態に係る学習方法では、合成データを生成することを実行する前に、所定の数値範囲から1つの数値をランダムに選択して、所定の比率を決定する。本例では、0から1の数値範囲から1つの数値をランダムに選択した結果、0.7という数値が選択されて、所定の比率が0.7に決定されている。
その後、第1音データA1を0.7の割合で含み、第2音データA2を0.3の割合で含むように、合成音データA3が生成される。生成された合成音データA3は、分類モデル20に入力され、分類モデル20の出力によって、犬のクラスの分類が0.7、猫のクラスの分類が0.3、鳥のクラスの分類が0となるように、分類モデル20のパラメータが更新される。もっとも、分類モデル20のパラメータを一度更新しただけでは分類モデル20のパラメータは最適化されず、以上の処理を繰り返し実行することとなる。なお、本例では、2つの音データを所定の比率で合成して合成音データを生成する場合について説明したが、3つ以上の音データを所定の比率で合成して合成音データを生成することとしてもよい。
図5は、本実施形態に係る学習方法によって、分類モデル20に音データの分類を学習させる場合のフローチャートである。はじめに、学習用データ選択部11によって、データベースDBに記憶された初期データセットのうちから、ランダムに2つの音データを選択する(S10)。音データの選択は、一連の音データの中から、ランダムに選択された一部分を抜き出すことで行ってもよい。
比率決定部13は、0から1までの数値範囲からランダムに数値を選択して、学習用の音データを合成する比率rを決定する(S11)。その後、生成部12は、2つの音データの音圧レベルが同程度になるように調整する(S12)。例えば、第1音データA1の最大音圧レベルがP1であり、第2音データA2の最大音圧レベルがP2である場合、生成部12は、第2音データA2を、10(P1−P2)/20倍することで、2つの音データの音圧レベルを調整してよい。
さらに、生成部12は、−1から1までの数値範囲からランダムに数値を選択して、音圧レベルの調整係数pを決定する(S13)。そして、生成部12は、比率r、調整係数pを用いて、2つの音データを重ね合わせて合成音データを生成する(S14)。より具体的には、生成部12は、第1音データA1をr倍し、音圧調整後の第2音データA2を(1−r)倍して、両データを加算し、全体を(r2+(1−r)2)1/2で割って、2p倍することで、合成音データA3としてよい。ここで、(r2+(1−r)2)1/2で割ることは、合成音データA3の音圧レベルを、第1音データA1及び音圧調整後の第2音データA2と同程度とするために行われる。また、ランダムに選択された調整係数pを用いて、音データを2p倍することで、合成音データを生成する度に音圧レベルをばらつかせることができ、学習用データの多様性を増すことができる。なお、生成部12は、所定の比率で加算した複数の音データの速度やピッチをランダムに変更して、合成音データを生成してもよい。
投入部14は、合成音データを分類モデル20に入力する(S15)。そして、更新部15は、分類モデル20の出力によって、合成音データに含まれる2つの音データの分類が比率rで再現されるように、パラメータを更新する(S16)。例えば、第1音データA1をr倍し、音圧調整後の第2音データA2を(1−r)倍して合成データを生成した場合、更新部15は、分類モデル20の出力によって、犬のクラスの分類がrとなり、猫のクラスの分類が1−rとなるように、分類モデル20のパラメータを更新する。ここで、分類モデル20のパラメータとは、例えば分類モデル20がニューラルネットワークの場合、重み係数である。分類モデル20がニューラルネットワークであって、出力層がソフトマックス層である場合、更新部15は、分類モデル20の出力値と、学習用データについて予め定められている分類の正答値との間のクロスエントロピーやカルバック・ライブラー・ダイバージェンスを最小化するように、バックプロパゲーションの方法を用いて重み係数を更新してよい。より具体的には、第1音データA1をr倍し、音圧調整後の第2音データA2を(1−r)倍して合成データを生成し、分類モデル20によってyという出力ベクトルを得た場合、犬のクラスを表す正答ベクトルt1をrの割合で含み、猫のクラスを表す正答ベクトルt2を(1−r)の割合で含むt=r×t1+(1−r)×t2というベクトルを正答ベクトルtとして、クロスエントロピーH(t、y)やカルバック・ライブラー・ダイバージェンスDKL(t||y)を最小化するように、重み係数を更新してよい。
学習装置10は、学習終了の条件を満たすか否かを判定する(S17)。ここで、学習終了の条件は、任意に設定されてよいが、例えばクロスエントロピーやカルバック・ライブラー・ダイバージェンス等の目的関数の値が所定値以下となることや、分類モデル20のパラメータの更新回数が所定回数に達したことや、パラメータの更新前後で目的関数の値の変化が所定値以下となることであってよい。学習終了の条件を満たしていない場合(S17:No)、初期データセットの中から新たに学習用の音データをランダムに選択し、ランダムに決定した比率で合成して、分類モデル20に入力し、分類モデル20のパラメータを更新する。一方、学習終了の条件を満たす場合(S17:Yes)、学習処理を終了する。
図6は、本実施形態に係る学習方法によって分類モデル20に音データの分類を学習させた場合と、従来の学習方法によって分類モデル20に音データの分類を学習させた場合とに関する分類性能を示す図である。同図では、2種類の分類モデルについて、従来の学習方法によって学習した場合の正答率と、本実施形態に係る学習方法によって学習した場合の正答率とを示している。ここで、第2種類の分類モデルは、第1種類の分類モデルよりも複雑なモデルであり、学習させるのが比較的難しいモデルである。同図に示す正答率は、同じ初期データセットと、同じ分類モデル20を用いて、学習方法のみを変えた場合の値である。正答率は、分類モデル20の学習が十分に進み、その学習方法によって達成することのできる上限値に近い値となっている。
第1種類の分類モデルについて、従来の学習方法によって学習した場合の正答率は68.3%であり、本実施形態に係る学習方法によって学習した場合の正答率は74.3%である。本実施形態に係る学習方法を用いることによって、分類モデル20が同一であっても、正答率が6%向上するという結果が得られた。
また、第2種類の分類モデルについて、従来の学習方法によって学習した場合の正答率は71.7%であり、本実施形態に係る学習方法によって学習した場合の正答率は80.7%である。第2種類の分類モデルについても、本実施形態に係る学習方法を用いることによって、分類モデル20が同一であっても、正答率が9%向上するという結果が得られた。なお、本実験に用いた音データを人に分類させた場合の正答率は、約80%である。本実施形態に係る学習方法を用いることで、分類モデル20の分類性能を人と同等のレベルにまで向上させることができる。また、本実施形態に係る学習方法を用いると、第1種類の分類モデルの場合に従来の学習方法より6%の正答率の向上が見られ、第2種類の分類モデルの場合に従来の学習方法より9%の正答率の向上が見られたことから、本実施形態に係る学習方法は、比較的複雑なモデルの学習に用いた場合により効果的であるといえる。
本実施形態に係る学習方法によれば、合成データに含まれる複数の学習用データの分類の比率を再現するように分類モデルを学習させることで、学習用データの個別の分類を再現するように分類モデルを学習させる場合よりも、分類モデルの出力の精度をより高めるように分類モデルを学習させることができ、分類モデルによる分類の正答率をより高めるように分類モデルを学習させることができる。また、本実施形態に係る学習方法によれば、学習用データの数が限られており、分類モデルが複雑なモデルである場合であっても、学習用データの組合せ及び学習用データを合成する比率を様々に選択することで多様な合成データを生成することができるため、分類モデルによる分類の正答率をより高めるように、安定して分類モデルを学習させることができる。
また、重ね合わされた複数の音データの分類の比率を再現するように分類モデルを学習させることで、音データの個別の分類を再現するように分類モデルを学習させる場合よりも、分類モデルの出力の精度をより高めるように、分類モデルを学習させることができる。
以下では、図7、8、9及び10を用いて、本実施形態に係る学習方法によって、分類モデルに画像データの分類を学習させる場合について説明する。
図7は、本実施形態に係る学習方法によって、分類モデルに画像データの分類を学習させる場合の概念図である。本実施形態に係る学習方法では、合成データを生成することを実行する前に、データベースDBに記憶された初期データセットのうちから、ランダムに2つのデータを選択することを実行する。本例では、データベースDBは、車(Car)に分類される複数の画像データと、猫(Cat)に分類される複数の画像データと、鳥(Bird)に分類される複数の画像データと、を含み、合成データを生成する元データとして、車に関する第1画像データG1と猫に関する第2画像データG2とが選択されている。
本実施形態に係る学習方法では、合成データを生成することを実行する前に、所定の数値範囲から1つの数値をランダムに選択して、所定の比率を決定する。本例では、0から1の数値範囲から1つの数値をランダムに選択した結果、0.4という数値が選択されて、所定の比率が0.4に決定されている。
その後、第1画像データG1を0.4の割合で含み、第2画像データG2を0.6の割合で含むように、合成画像データG3が生成される。生成された合成画像データG3は、分類モデル20に入力され、分類モデル20の出力によって、車のクラスの分類が0.4、猫のクラスの分類が0.6、鳥のクラスの分類が0となるように、分類モデル20のパラメータが更新される。もっとも、分類モデル20のパラメータを一度更新しただけでは分類モデル20のパラメータは最適化されず、以上の処理を繰り返し実行することとなる。なお、本例では、2つの画像データを所定の比率で合成して合成画像データを生成する場合について説明したが、3つ以上の画像データを所定の比率で合成して合成画像データを生成することとしてもよい。
図8は、本実施形態に係る学習方法によって、分類モデル20に画像データの分類を学習させる第1処理のフローチャートである。分類モデル20に画像データの分類を学習させる第1処理では、はじめに、学習用データ選択部11によって、データベースDBに記憶された初期データセットのうちから、ランダムに2つの画像データを選択する(S20)。
比率決定部13は、0から1までの数値範囲からランダムに数値を選択して、学習用の画像データを合成する比率rを決定する(S21)。その後、生成部12は、学習用データ選択部11によって選択された2つの画像データについて、その大きさが同程度になるようにデータ整形を行う(S22)。ここで、生成部12は、所定の大きさの領域をランダムに選択した位置で切り出すことで、データ整形を行ってもよい。また、生成部12は、2つの画像データに対してデータオーグメンテーションを実行する(S23)。ここで、データオーグメンテーションは、ランダムな比率で画像を拡大や縮小したり、ランダムな方向に画像を回転させたり、平行移動させたり、ランダムな比率でアスペクト比の変換を行ったり、ランダムな値でRGB値の変更を行ったりすることを含む。もっとも、データ整形及びデータオーグメンテーションは、省略することのできる処理である。
その後、生成部12は、2つの画像データのピクセル毎に、ピクセル値を比率rで加算して、合成画像データG3を生成する(S24)。より具体的には、生成部12は、第1画像データG1の特定のピクセル値をr倍し、第2画像データG2に関する対応するピクセル値を(1−r)倍して、両データを加算することで、合成画像データG3の特定のピクセル値としてよい。
投入部14は、合成画像データを分類モデル20に入力する(S25)。分類モデル20がニューラルネットワークの場合、投入部14は、ニューラルネットワークの入力層に合成画像データを入力する。そして、更新部15は、分類モデル20の出力によって、合成画像データに含まれる2つの画像データの分類が比率rで再現されるように、パラメータを更新する(S26)。例えば、第1画像データG1をr倍し、第2画像データG2を(1−r)倍して合成データを生成した場合、更新部15は、分類モデル20の出力によって、車のクラスの分類がrとなり、猫のクラスの分類が1−rとなるように、分類モデル20のパラメータを更新する。
学習装置10は、学習終了の条件を満たすか否かを判定する(S27)。ここで、学習終了の条件は、任意に設定されてよいが、例えばクロスエントロピーやカルバック・ライブラー・ダイバージェンス等の目的関数の値が所定値以下となることや、分類モデル20のパラメータの更新回数が所定回数に達したことや、パラメータの更新前後で目的関数の値の変化が所定値以下となることであってよい。学習終了の条件を満たしていない場合(S27:No)、初期データセットの中から新たに学習用の画像データをランダムに選択し、ランダムに決定した比率で合成して、分類モデル20に入力し、分類モデル20のパラメータを更新する。一方、学習終了の条件を満たす場合(S27:Yes)、学習処理を終了する。
本実施形態に係る学習方法によれば、重ね合わされた複数の画像データの分類の比率を再現するように分類モデル20を学習させることで、画像データの個別の分類を再現するように分類モデル20を学習させる場合よりも、分類モデル20の出力の精度をより高めるように分類モデル20を学習させることができ、分類モデル20による分類の正答率をより高めるように分類モデル20を学習させることができる。
図9は、本実施形態に係る学習方法によって、分類モデル20に画像データの分類を学習させる第2処理のフローチャートである。分類モデル20に画像データの分類を学習させる第2処理は、分類モデル20の中間出力を所定の比率で合成して合成データを生成し、合成データに含まれる画像データの分類が所定の比率で再現されるように、分類モデル20を学習させる処理である。
はじめに、学習用データ選択部11によって、データベースDBに記憶された初期データセットのうちから、ランダムに2つの画像データを選択する(S30)。比率決定部13は、0から1までの数値範囲からランダムに数値を選択して、学習用の画像データを合成する比率rを決定する(S31)。その後、生成部12は、学習用データ選択部11によって選択された2つの画像データについて、その大きさが同程度になるようにデータ整形を行う(S32)。また、生成部12は、2つの画像データに対してデータオーグメンテーションを実行する(S33)。もっとも、データ整形及びデータオーグメンテーションは、省略することのできる処理である。
その後、学習装置10は、2つの画像データを、それぞれ分類モデル20に入力し、中間出力を取得する(S34)。ここで、分類モデル20がニューラルネットワークの場合、2つの画像データは、それぞれニューラルネットワークの入力層に入力される。また、中間出力は、ニューラルネットワークに含まれる複数の層のうち出力層以外の任意の層の出力であってよい。生成部12は、2つの画像データに対応する2つの中間出力を比率rで加算して、合成データを生成する(S35)。
投入部14は、合成データを分類モデル20のうち中間出力を出力した構成の後段に入力する(S36)。分類モデル20がニューラルネットワークの場合、投入部14は、ニューラルネットワークのうち中間出力を出力した層の次の層に合成データを入力する。そして、更新部15は、分類モデル20の出力によって、合成データに含まれる2つの画像データの分類が比率rで再現されるように、パラメータを更新する(S37)。例えば、第1画像データG1の中間出力をr倍し、第2画像データG2の中間出力を(1−r)倍して合成データを生成した場合、更新部15は、分類モデル20の出力によって、車のクラスの分類がrとなり、猫のクラスの分類が1−rとなるように、分類モデル20のパラメータを更新する。
学習装置10は、学習終了の条件を満たすか否かを判定する(S38)。ここで、学習終了の条件は、任意に設定されてよいが、例えばクロスエントロピーやカルバック・ライブラー・ダイバージェンス等の目的関数の値が所定値以下となることや、分類モデル20のパラメータの更新回数が所定回数に達したことや、パラメータの更新前後で目的関数の値の変化が所定値以下となることであってよい。学習終了の条件を満たしていない場合(S38:No)、初期データセットの中から新たに学習用の画像データをランダムに選択し、分類モデル20に入力して中間出力を取得して、ランダムに決定した比率で中間出力を合成して分類モデル20のうち中間出力を出力した構成の後段に入力し、分類モデル20のパラメータを更新する。一方、学習終了の条件を満たす場合(S38:Yes)、学習処理を終了する。
図10は、本実施形態に係る学習方法によって分類モデル20に画像データの分類を学習させた場合と、従来の学習方法によって分類モデル20に画像データの分類を学習させた場合とに関する分類性能を示す図である。同図に示す例では、分類モデル20は、入力層(input)、複数の畳み込み層(conv1〜8)、複数のプーリング層(pool1〜3)、複数の全結合層(fc1〜2)及び出力層(output)を有するCNN(Convolutional Neural Network)である。同図では、1種類のCNNを分類モデル20として、従来の学習方法によって学習した場合の正答率をBaselineとして示し、本実施形態に係る学習方法によってCNNに含まれる複数の層の中間出力を合成して学習した場合の正答率をCNNに含まれる複数の層について示している。ここで、正答率は、分類モデル20の学習が十分に進み、その学習方法によって達成することのできる上限値に近い値となっている。
本実施形態に係る学習方法によって学習した場合の正答率は、いずれの層の中間出力を合成した場合であっても、従来の学習方法によって学習した場合の正答率(93.59%)を上回っている。例えば、第1畳み込み層(conv1)から出力された中間出力を合成して、合成データを第2畳み込み層(conv2)に入力して分類モデル20を学習させた場合、正答率は94.39%である。また、第2畳み込み層(conv2)から出力された中間出力を合成して、合成データを第1プーリング層(pool1)に入力して分類モデル20を学習させた場合、正答率は94.38%である。
同様に、第3畳み込み層(conv3)から出力された中間出力を合成して、合成データを第4畳み込み層(conv4)に入力して分類モデル20を学習させた場合、正答率は94.45%である。また、第4畳み込み層(conv4)から出力された中間出力を合成して、合成データを第2プーリング層(pool2)に入力して分類モデル20を学習させた場合、正答率は94.47%である。また、第7畳み込み層(conv7)から出力された中間出力を合成して、合成データを第8畳み込み層(conv8)に入力して分類モデル20を学習させた場合、正答率は94.41%である。また、第8畳み込み層(conv8)から出力された中間出力を合成して、合成データを第3プーリング層(pool3)に入力して分類モデル20を学習させた場合、正答率は94.31%である。さらに、第1全結合層(fc1)から出力された中間出力を合成して、合成データを第2全結合層(fc2)に入力して分類モデル20を学習させた場合、正答率は94.75%であり、従来の学習方法によって学習した場合の正答率(93.59%)を1.16%上回っている。
また、中間出力を合成せずに、学習用データ又は学習用データを変換した変換データを合成して、合成データを入力層(input)に入力して分類モデル20を学習させた場合、正答率は94.71%であり、従来の学習方法によって学習した場合の正答率(93.59%)を1.12%上回っている。
これらの結果から、学習用データを分類モデル20に入力する前に合成して合成データを生成し、合成データを入力層(input)に入力して分類モデル20を学習させる場合に得られる分類性能は、分類モデル20の中間出力を合成し、中間出力を出力した構成の後段に合成データを入力して分類モデル20を学習させる場合の分類性能と比較して、同等以上であることがわかる。学習用データを分類モデル20に入力する前に合成して合成データを生成し、合成データを入力層(input)に入力して分類モデル20を学習させる方法は、中間出力の演算が不要であり、分類モデル20の中間出力を利用する方法よりも分類モデル20の学習に要する演算量を少なくすることができ、分類モデル20の中間出力を利用する方法と同等以上の分類性能が得られるため、より効果的であるといえる。
なお、ここでは、分類モデル20の中間出力を用いて画像データの分類を学習させる場合について説明したが、分類モデル20の中間出力を所定の比率で合成して合成データを生成し、中間出力を出力した構成の後段に合成データを入力して分類モデル20を学習させる方法は、任意の種類のデータの分類を分類モデル20に学習させる場合に適用することができる。また、中間出力を用いて学習される分類モデル20は、CNNに限られず、任意のモデルであってよい。
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
例えば、データベースDBに記憶された初期データセットがテキストデータである場合、データベースDBに記憶された初期データセットのうちから、ランダムに2つのテキストデータを選択して、それぞれベクトルデータに変換して、ランダムに選択した所定の比率で2つのベクトルデータを加算することで、合成ベクトルデータを生成してもよい。そして、合成ベクトルデータに含まれるテキストデータの分類が所定の比率で再現されるように、分類モデル20のパラメータを更新してよい。
本実施形態に係る学習方法によれば、重ね合わされた複数のテキストデータの分類の比率を再現するように分類モデル20を学習させることで、テキストデータの個別の分類を再現するように分類モデル20を学習させる場合よりも、分類モデル20の出力の精度をより高めるように分類モデル20を学習させることができ、分類モデル20による分類の正答率をより高めるように分類モデル20を学習させることができる。
また、それぞれ分類が定められた複数の学習用データ又は複数の学習用データを変換して得られた複数の変換データを所定の比率rで合成し、1つの合成データを生成して、分類モデルの出力によって、所定の比率を所定の規則で変換した値が再現されるように、分類モデルのパラメータを更新してもよい。すなわち、分類モデルの出力を正確にrに対応させず、分類モデルの出力によってrを所定の規則で変換した値を再現するようにしてもよい。
例えば、それぞれ分類が定められた複数の学習用データ又は複数の学習用データを変換して得られた複数の変換データを所定の比率rで合成し、1つの合成データを生成して、分類モデルの出力がr+e(eはノイズを表す量)となるように、分類モデルのパラメータを更新してもよい。具体的には、第1画像データが車の画像であり、第2画像データが猫の画像である場合に、所定の比率を0.4として、第1画像データ40%と、第2画像データ60%とを合成して合成画像データを生成し、ノイズをランダムに生成して例えば0.01として、分類モデルによって車のクラスの分類が0.41、猫のクラスの分類が0.59となるように、分類モデルの学習処理を行ってもよい。ここで、加減算するノイズの量はランダムに変更してよい。
また、学習用データを合成する所定の比率をrと定めた場合に、分類モデルの出力によって、合成データに含まれる複数の学習用データの分類が比率a×r(aは任意の定数)で再現されるように、分類モデルのパラメータを更新してもよい。例えば、第1画像データが車の画像であり、第2画像データが猫の画像であり、合成比率が0.4である場合に、第1画像データを40%と、第2画像データを60%とを合成して合成画像データを生成し、定数をa=2として、分類モデルによって車のクラスの分類が0.8、猫のクラスの分類が0.2となるように、分類モデルの学習処理を行ってもよい。
また、それぞれ分類が定められた複数の学習用データ又は複数の学習用データを変換して得られた複数の変換データを所定の比率で合成し、1つの合成データを生成して、分類モデルの出力によって、所定の比率を切り上げ又は切り捨てした値が再現されるように、分類モデルのパラメータを更新することとしてもよい。例えば、第1画像データが車の画像であり、第2画像データが猫の画像であり、所定の比率が0.4である場合に、第1画像データを40%と、第2画像データを60%とを合成して合成画像データを生成し、分類モデルによって車のクラスの分類が0(0.4を切り捨て)、猫のクラスの分類が1(0.6を切り上げ)となるように、分類モデルの学習処理を行ってもよい。すなわち、分類モデルの出力によって、所定の比率を四捨五入した値が再現されるようにしてよい。また、例えば、第1画像データが車の画像であり、第2画像データが猫の画像であり、合成比率が0.4である場合に、第1画像データを40%と、第2画像データを60%とを合成して合成画像データを生成し、分類モデルによって車のクラスの分類が1(0.4を切り上げ)、猫のクラスの分類が1(0.6を切り上げ)となるように、分類モデルの学習処理を行ってもよい。