(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023130651
(43)【公開日】2023-09-21
(54)【発明の名称】情報処理プログラム,情報処理方法および情報処理装置
(51)【国際特許分類】
G06N 3/08 20230101AFI20230913BHJP
G06N 3/045 20230101ALI20230913BHJP
【FI】
G06N3/08
G06N3/04 154
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022035067
(22)【出願日】2022-03-08
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】鎌田 裕一
(57)【要約】
【課題】機械学習を効率的に実施する。
【解決手段】複数のニューラルネットワークモジュールに対して機械学習による訓練におけるデータ入力を行なった場合の、各ニューラルネットワークモジュールの出力の重みに基づいて、入力データを1以上のグループに分類し、分類後の機械学習処理において、同一のグループに含まれる入力データが同一のミニバッチに含まれるように、入力データのミニバッチを生成する。
【選択図】
図10
【特許請求の範囲】
【請求項1】
複数のニューラルネットワークモジュールに対して機械学習による訓練におけるデータ入力を行なった場合の、各ニューラルネットワークモジュールの出力の重みに基づいて、入力データを1以上のグループに分類し、
前記分類後の機械学習処理において、同一のグループに含まれる入力データが同一のミニバッチに含まれるように、前記入力データのミニバッチを生成する
処理をプロセッサに実行させることを特徴とする、情報処理プログラム。
【請求項2】
前記複数のニューラルネットワークモジュールが、モジュール型ニューラルネットワークに含まれる
ことを特徴とする、請求項1に記載の情報処理プログラム。
【請求項3】
前記分類する処理は、
前記入力データを前記モジュール型ニューラルネットワークに入力し、前記複数のニューラルネットワークモジュールの出力に対する重みに基づいて生成したベクトルと、クラスタを表す基準情報との距離に基づいて、当該入力データのグループを決定する
処理を含むことを特徴とする、請求項2に記載の情報処理プログラム。
【請求項4】
前記基準情報を、競合学習により最近傍の特徴量方向に更新する
処理を前記プロセッサに実行させることを特徴とする、請求項3に記載の情報処理プログラム。
【請求項5】
前記グループの分類誤差と前記基準情報との距離誤差との和を学習損失とする誤差逆伝搬法による教師あり機械学習で、前記ニューラルネットワークモジュールの訓練を行なう
処理を前記プロセッサに実行させることを特徴とする、請求項3または4に記載の情報処理プログラム。
【請求項6】
複数のニューラルネットワークモジュールに対して機械学習による訓練におけるデータ入力を行なった場合の、各ニューラルネットワークモジュールの出力の重みに基づいて、入力データを1以上のグループに分類し、
前記分類後の機械学習処理において、同一のグループに含まれる入力データが同一のミニバッチに含まれるように、前記入力データのミニバッチを生成する
処理をプロセッサが実行することを特徴とする、情報処理方法。
【請求項7】
複数のニューラルネットワークモジュールに対して機械学習による訓練におけるデータ入力を行なった場合の、各ニューラルネットワークモジュールの出力の重みに基づいて、入力データを1以上のグループに分類し、
前記分類後の機械学習処理において、同一のグループに含まれる入力データが同一のミニバッチに含まれるように、前記入力データのミニバッチを生成する
処理を実行する制御部を備えることを特徴とする、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習技術に関する。
【背景技術】
【0002】
近年、基本的な機能を担う複数のニューラルネットワークモジュール(モジュール群)を、タスク内容に応じて組み合わせることでニューラルネットワークを構築する手法が知られている。ニューラルネットワークモジュールをNNモジュールといってもよい。NNはNeural Networkの略語である。また、複数のNNモジュールを組み合わせて構築されるニューラルネットワークをモジュール型ニューラルネットワークといってもよい。
【0003】
例えば、find, and, compare等の想定した機能を学習する複数種類のNNモジュールを用意し、文章の要求に回答するために必要となるモジュール処理の組み合わせを決定することが知られている。この際、モジュール処理の組み合わせを制御する重みを機械学習により自動生成することも知られている。
【0004】
また、並列化された一般的なCNN(Convolutional Neural Network)モジュールを選択・利用してVQA(Visual Question Answering)タスクを解く手法も知られている。当該手法においては、CNN処理と同時にNNモジュールの選択方法も学習する。なお、モジュール選択のための重み算出に、例えば、Gumbel - Softmaxを利用することも行なわれている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2020-60838号公報
【特許文献2】特開2020-190895号公報
【非特許文献】
【0006】
【非特許文献1】Ronghang Hu, Jacob Andreas, Trevor Darrell, and Kate Saenko「Explainable Neural Computation via Stack Neural Module Networks」ECCV 2018
【非特許文献2】Yanze Wu, Qiang Sun, Jianqi Ma, Bin Li, Yanwei Fu, Yao Peng, Xiangyang Xue「Question Guided Modular Routing Networks for Visual Question Answering」 arXiv:1904.08324
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、このような従来のモジュール型ニューラルネットワークの構築手法においては、毎回、全てのNNモジュールに機械学習用データを入力し、計算処理を行なうことで出力に重みをかける。機械学習の終盤では、特定のNNモジュールのみに強い重みが生じているため、関係しない(重みがゼロとなる)NNモジュールに対する計算処理は無駄になる。
【0008】
また、特定のNNモジュールのみに機械学習用データの入力を限定して計算処理しようとした場合に、入力データ毎に選択されるべきNNモジュールが異なる。そのため、通常の機械学習で学習効率化のために多用されるミニバッチ処理(複数データをまとめて一括処理)が適用できない。
【0009】
1つの側面では、本発明は、機械学習を効率的に実施できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
このため、この情報処理プログラムは、複数のニューラルネットワークモジュールに対して機械学習による訓練におけるデータ入力を行なった場合の、各ニューラルネットワークモジュールの出力の重みに基づいて、入力データを1以上のグループに分類し、前記分類後の機械学習処理において、同一のグループに含まれる入力データが同一のミニバッチに含まれるように、前記入力データのミニバッチを生成する処理をプロセッサに実行させる。
【発明の効果】
【0011】
一実施形態によれば、機械学習を効率的に実施できる。
【図面の簡単な説明】
【0012】
【
図1】実施形態の一例としての情報処理装置の構成を模式的に示す図である。
【
図2】実施形態の一例としての情報処理装置のハードウェア構成を示す図である。
【
図3】モジュール型ニューラルネットワークのネットワーク構造を例示する図である。
【
図4】実施形態の一例としての情報処理装置のNNモジュールを説明するための図である。
【
図5】実施形態の一例としての情報処理装置における訓練データの所属クラスタ決定方法を説明するための図である。
【
図6】実施形態の一例としての情報処理装置における選択NNモジュールと所属クラスタとの関係を示す図である。
【
図7】実施形態の一例としての情報処理装置における処理の概要を説明するためのフローチャートである。
【
図8】実施形態の一例としての情報処理装置における確率的訓練フェーズにおける処理を説明するためのフローチャートである。
【
図9】実施形態の一例としての情報処理装置における決定的訓練フェーズにおける処理を説明するためのフローチャートである。
【
図10】実施形態の一例としての情報処理装置により訓練が行なわれたモジュール型ニューラルネットワークを例示する図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本情報処理プログラム,情報処理方法および情報処理装置にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0014】
(A)構成
図1は実施形態の一例としての情報処理装置1の構成を模式的に示す図、
図2はそのハードウェア構成を例示する図である。
【0015】
情報処理装置1は、機械学習装置であって、モジュール型ニューラルネットワークの訓練(機械学習)を行なうモジュール型ニューラルネットワーク訓練部100としての機能を備える。
【0016】
モジュール型ニューラルネットワーク訓練部100は、
図1に示すように、ミニバッチ作成部101,ニューラルモジュール処理部102,訓練処理部103,訓練データ記憶部104,所属クラスタ記憶部105および重み・コードブック記憶部106としての機能を有する。
【0017】
図3はモジュール型ニューラルネットワークのネットワーク構造を例示する図である。
【0018】
この
図3に例示するモジュール型ニューラルネットワークは、L個の層を有し、各層がM個のNNモジュール(Module #1~#M)を有する。
【0019】
1層目の各NNモジュール(Module #1~#M)の重みをw11~w1Mで表す。また、L層目の各NNモジュール(Module #1~#M)の重みをwL1~wLMで表す。以下、各NNモジュールの重みを特に区別しない場合には、重みwと表記する。
【0020】
本情報処理装置1においては、モジュール型ニューラルネットワーク訓練部100が、モジュール型ニューラルネットワークの訓練(機械学習)を行なうことで、各NNモジュールの重みwが更新される。
【0021】
各層において、訓練初期の段階では、複数のNNモジュール(Module #1~#M)に重みが広く分布していても、訓練の最終段階では、複数のNNモジュール(Module #1~#M)のうちいずれか一つのNNモジュールに重みが集中される。すなわち、各NNモジュールが獲得する機能が明確化される。
【0022】
以下においては、モジュール型ニューラルネットワークをVQAタスクに適用する例を示す。モジュール型ニューラルネットワークの訓練に用いる訓練データは、質問文,画像および正解データを備えてよい。
【0023】
モジュール型ニューラルネットワークの1層目の各NNモジュールには、質問文と画像とが入力される。
【0024】
各NNモジュールは、既知のニューラルネットワークモジュールであってよく、例えば、Transformerブロックであってもよい。
【0025】
情報処理装置1は、例えば、
図2に示すように、プロセッサ11,メモリ12,記憶装置13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11~18は、バス19を介して相互に通信可能に構成される。
【0026】
プロセッサ(制御部)11は、情報処理装置1全体を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCPU,MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array),GPU(Graphics Processing Unit)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGA,GPUのうちの2種類以上の要素の組み合わせであってもよい。
【0027】
そして、プロセッサ11が情報処理装置1用の制御プログラム(情報処理プログラム,OSプログラム)を実行することにより、
図1に例示する、モジュール型ニューラルネットワーク訓練部100として機能する。OSはOperating Systemの略語である。
【0028】
情報処理装置1は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラム(情報処理プログラム,OSプログラム)を実行することにより、モジュール型ニューラルネットワーク訓練部100としての機能を実現する。
【0029】
情報処理装置1に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、情報処理装置1に実行させるプログラムを記憶装置13に格納しておくことができる。プロセッサ11は、記憶装置13内のプログラムの少なくとも一部をメモリ12にロードし、ロードしたプログラムを実行する。
【0030】
また、情報処理装置1(プロセッサ11)に実行させるプログラムを、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ11からの制御により、記憶装置13にインストールされた後、実行可能になる。また、プロセッサ11が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0031】
メモリ12は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ12のRAMは情報処理装置1の主記憶装置として使用される。RAMには、プロセッサ11に実行させるプログラムの少なくとも一部が一時的に格納される。また、メモリ12には、プロセッサ11による処理に必要な各種データが格納される。さらに、メモリ12は、重み・コードブック記憶部106および所属クラスタ記憶部105としての機能を実現してもよい。
【0032】
記憶装置13は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。記憶装置13は、情報処理装置1の補助記憶装置として使用される。記憶装置13には、OSプログラム,制御プログラムおよび各種データが格納される。制御プログラムには情報処理プログラムが含まれる。また、記憶装置13は、訓練データ記憶部104としての機能を実現する。
【0033】
なお、補助記憶装置としては、SCMやフラッシュメモリ等の半導体記憶装置を使用することもできる。また、複数の記憶装置13を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
【0034】
また、記憶装置13には、上述したミニバッチ作成部101,ニューラルモジュール処理部102および訓練処理部103が各処理を実行する際に生成される各種データを格納してもよい。記憶装置13が、重み・コードブック記憶部106および所属クラスタ記憶部105としての機能を実現してもよい。
【0035】
グラフィック処理装置14には、モニタ14aが接続されている。グラフィック処理装置14は、プロセッサ11からの命令に従って、画像をモニタ14aの画面に表示させる。モニタ14aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等が挙げられる。
【0036】
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をプロセッサ11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
【0037】
光学ドライブ装置16は、レーザ光等を利用して、光ディスク16aに記録されたデータの読み取りを行なう。光ディスク16aは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク16aには、DVD(Digital Versatile Disc),DVD-RAM,CD-ROM(Compact Disc Read Only Memory),CD-R(Recordable)/RW(ReWritable)等が挙げられる。
【0038】
機器接続インタフェース17は、情報処理装置1に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
【0039】
ネットワークインタフェース18は、ネットワークに接続される。ネットワークインタフェース18は、ネットワークを介してデータの送受信を行なう。ネットワークには他の情報処理装置や通信機器等が接続されてもよい。例えば、訓練データ記憶部104としての機能は、ネットワークを介して接続される他の情報処理装置やストレージ装置に備えられてもよい。
【0040】
本情報処理装置1は、複数のNNモジュールを組み合わせてモジュール型ニューラルネットワークを構築する。
【0041】
モジュール型ニューラルネットワーク訓練部100は、確率的訓練フェーズと決定的訓練フェーズとの2段階のフェーズでモジュール型ニューラルネットワークの訓練を行なう。確率的訓練フェーズを訓練前半といってもよく、また、決定的訓練フェーズを訓練後半といってもよい。決定的訓練フェーズにおいては、同一層の複数(M個)のNNモジュールの中からNNモジュールを一つだけ選択して訓練が行なわれる。
【0042】
ミニバッチ作成部101は、モジュール型ニューラルネットワークに含まれる各NNモジュールの訓練に用いられるミニバッチを作成する。
【0043】
ミニバッチ作成部101は、確率的訓練フェーズにおいて、訓練データ記憶部104に格納された複数の訓練データの中から所定数の訓練データを抽出することでミニバッチ(第1ミニバッチ)を作成する。ミニバッチ作成部101は、例えば、複数の訓練データの中からランダムに所定数の訓練データを抽出することで第1ミニバッチを作成してもよい。作成された第1ミニバッチを訓練データ記憶部104に記憶させてもよい。
また、ミニバッチ作成部101は、決定的訓練フェーズにおいて、後述する訓練処理部103により設定された所属クラスタが同一の複数の訓練データの中から所定数(ミニバッチ数)の訓練データを抽出することでミニバッチ(第2ミニバッチ)を作成する。所属クラスタはグループである。所属クラスタをクラスといってもよい。ミニバッチ作成部101は、例えば、所属クラスタが同一の複数の訓練データの中からランダムに所定数の訓練データを抽出することで第2ミニバッチを作成してもよい。
【0044】
このように、ミニバッチ作成部101は、同一のグループに含まれる訓練データが同一のミニバッチに含まれるように、訓練データのミニバッチ(第2ミニバッチ)を生成する。作成された第2ミニバッチを訓練データ記憶部104に記憶させてもよい。
【0045】
ニューラルモジュール処理部102は、確率的訓練フェーズおよび決定的訓練フェーズのそれぞれにおいて、モジュール型ニューラルネットワークに含まれる複数のNNモジュールに対する処理を行なう。
【0046】
モジュール型ニューラルネットワークの各層に含まれるNNモジュールの数(モジュール数)をMとする。Mは自然数である。
ニューラルモジュール処理部102は、確率的訓練フェーズにおいて、M個の全てのNNモジュールに対して訓練データを入力し、それぞれ出力を得る。
【0047】
ニューラルモジュール処理部102は、NNモジュールにおいて、入力される質問文データの先頭トークン([BOS]トークン)に基づき、多層パーセプトロン(MLP:Multilayer perceptron)処理により、当該NNモジュール出力に対する重み分布を計算させる。
【0048】
図4は実施形態の一例としての情報処理装置1のNNモジュールを説明するための図である。
【0049】
この
図4においては、NNモジュールがTransformerブロックの例を示す。Transformerブロックには、質問文の単語埋め込み(embedding)列と、画像データの物体特徴量列とが入力される。単語埋め込み列の[BOS]はMLPにも入力され、重みwの算出に用いられる。
【0050】
ニューラルモジュール処理部102は、各層のM個のNNモジュールにおいて重み付き平均した出力を後続する層(次層)への入力とし、NNモジュール出力に対する重み分布を計算させる。ニューラルモジュール処理部102は、モジュール型ニューラルネットワークの各層に対して、重み分布の計算をそれぞれ行なわせる。
【0051】
ニューラルモジュール処理部102は、モジュール型ニューラルネットワークの最終層の各NNモジュールの出力をMLP処理して、選択肢からのクラス分類として回答出力を得る。
【0052】
確率的訓練フェーズにおいて、ニューラルモジュール処理部102による上記処理は、規定回数(例えば、学習データ量でNf epoch分)だけ繰り返し実行される。
また、ニューラルモジュール処理部102は、決定的訓練フェーズにおいて、ミニバッチ作成部101が作成した第2ミニバッチの訓練データを用いて、各NNモジュールの処理を行なう。
【0053】
ニューラルモジュール処理部102は、第2ミニバッチ内から訓練データを一つだけ選択する。
【0054】
そして、ニューラルモジュール処理部102は、NNモジュールに対して、選択した訓練データの先頭トークンから、第1層を構成するM個のNNモジュール出力に対する重みの分布をMLP処理で計算させ、重みが最大値となったNNモジュールを選択する。これにより、当該第1層において選択されるNNモジュールが決定される。モジュール型ニューラルネットワークの一つの層に備えられるM個のNNモジュールのうち、重みが最大となり選択されたNNモジュールを選択NNモジュールといってもよい。
【0055】
ニューラルモジュール処理部102は、選択NNモジュールのみにミニバッチ全ての訓練データを与えて出力を計算させる。ニューラルモジュール処理部102は、各層の選択NNモジュールの出力を次層への入力とする。
【0056】
ニューラルモジュール処理部102は、決定的訓練フェーズにおいて、上述した、M個のNNモジュールへのデータ入力と、MLP処理によるM個のNNモジュール出力に対する重みの分布の計算と、重みが最大値となったNNモジュールの選択等を、L層に至る全ての層に対して行なう。
【0057】
このように、ニューラルモジュール処理部102は、決定的訓練フェーズ(訓練後半)において、同一クラスタ内から抽出された訓練データで構成されたミニバッチでまとめて計算処理を行なう。
【0058】
決定的訓練フェーズ(訓練後半)では、同じクラスタ内の訓練データは選択されるNNモジュールも同一であると決定することで、同一クラスタのデータを用いて特定のNNモジュールのみに計算処理を限定したミニバッチ処理が実現される。
【0059】
そして、ニューラルモジュール処理部102は、モジュール型ニューラルネットワークの最終層の出力をMLP処理し、回答選択肢からのクラス分類を得る。
【0060】
訓練処理部103は、確率的訓練フェーズにおいて、ランダム値でK個の特徴量コードブック{c1, ... , cK}を作成する。Kはクラスタ数である。各特徴量コードブックは、いずれかのクラスタ(グループ)に対応する。
【0061】
また、訓練処理部103は、確率的訓練フェーズにおいて、全層分(L層分)のNNモジュール出力に対する重みを一列に並べたベクトルを特徴量として、当該特徴量に基づき、特徴量コードブックとの距離から各訓練データの所属クラスタを決定する。訓練データの所属クラスタを決定することは、入力データ(訓練データ)をグループに分類することに相当する。
【0062】
図5は実施形態の一例としての情報処理装置1における訓練データの所属クラスタ決定方法を説明するための図である。
【0063】
この
図5においては、重み分布の特徴空間(R
LM)に配置された複数の訓練データを示している。
図5中において、複数のバツ(×)は訓練データの重み分布のベクトルをそれぞれ表し、複数の△は特徴量コードブックをそれぞれ表す。
【0064】
複数の訓練データは、特徴量コードブック{c1, ... , cK}からの距離に応じてクラスタ分けされている。
【0065】
訓練処理部103は、例えば、特徴量コードブック{c1, ... , cK}の中から訓練データの重み分布ベクトルに最も近い(最近傍の)特徴量コードブックを選択し、この選択した特徴量コードブックが対応するクラスタを、訓練データの所属クラスタとして決定してもよい。
【0066】
特徴量コードブックは、クラスタを表す基準情報に相当する。
【0067】
図6は実施形態の一例としての情報処理装置1における選択NNモジュールと所属クラスタとの関係を示す図である。
【0068】
この
図6においては、NNモジュールの組み合わせと出力の所属クラスタとを対応付けて示している。
図6中のModule #1~#4はそれぞれNNモジュールを表し、モジュール型ニューラルネットワークにおける部分的に前後する3つの層を示している。
【0069】
モジュール型ニューラルネットワークにおいては、訓練データを処理するNNモジュールの組み合わせに応じて、当該モジュール型ニューラルネットワークの出力の所属クラスタが決定される。
【0070】
例えば、モジュール型ニューラルネットワークにおいて、訓練データをModule #1で処理した後にModule #2で処理し、その後Module #4で処理する場合に、このモジュール型ニューラルネットワークの出力がクラスタc1となる(符号P1参照)。
【0071】
訓練処理部103は、確率的訓練フェーズ(訓練前半)で、重み分布を特徴量として訓練データをクラスタリングする。訓練処理部103は、各NNモジュールの出力の重みに基づいて、入力データを1以上のクラスタ(グループ)に分類する。
【0072】
訓練処理部103は、訓練データ(入力データ)をモジュール型ニューラルネットワークに入力し、複数のNNモジュールの出力に対する重みに基づいて生成したベクトル(特徴量)と、特徴量コードブック(基準情報)との距離に基づいて、当該訓練データの所属クラスタ(グループ)を決定するのである。
【0073】
訓練処理部103は、決定した各訓練データの所属クラスタを所属クラスタ記憶部105に記憶させる。
【0074】
所属クラスタ記憶部105は、複数の訓練データのそれぞれについて、訓練処理部103によって決定された所属クラスタを対応付けて記憶する。所属クラスタ記憶部105には、訓練データについてのクラスタ情報が記憶される。所属クラスタ記憶部105を参照することで、特定のクラスタに所属する訓練データを得ることができる。
【0075】
訓練処理部103は、競合学習により特徴量コードブックの値を最近傍の特徴量方向に更新する。
【0076】
ミニバッチ内のデータnでの重み分布の特徴量w(n)に最近傍の特徴量コードブックc(n)とすると、競合学習による特徴量コードブックc(n)の更新を以下の式(1)で表すことができる。
【0077】
c(n)← (1-β)c(n)+ βw(n) ・・・(1)
βは訓練の調整係数であり、任意に設定されてよい。
【0078】
訓練処理部103は、誤差逆伝搬法による教師あり学習でNNモジュールの機械学習を行ない、各NNモジュールの重みを更新する。
【0079】
訓練処理部103は、確率的訓練フェーズにおいて、学習損失として、「VQAでのクラス分類誤差」+「特徴量コードブックとの距離誤差」を用いる。
【0080】
訓練処理部103は、確率的訓練フェーズにおいて、VQAでのクラス分類誤差(グループの分類誤差)と特徴量コードブック(基準情報)との距離誤差との和を学習損失とする誤差逆伝搬法による教師あり機械学習で、NNモジュールの訓練を行なう。
【0081】
VQAでのクラス分類誤差は、ミニバッチ内のデータnの正解クラスでのネットワークの確率出力p(n)とすると、以下の式で表わされる。
【0082】
【数1】
また、特徴量コードブックとの距離誤差は、以下の式で表される。
【0083】
【数2】
上記式において、w
(n)はミニバッチ内のデータnでの重み分布の特徴量であり、c
(n)は、最近傍の特徴量コードブックである。また、γは学習の調整係数であり、任意に設定することができる。
【0084】
確率的訓練フェーズにおいて、訓練処理部103による上記処理は、規定回数(例えば、訓練データ量でNf epoch分)だけ繰り返し実行される。
【0085】
訓練処理部103が設定した特徴量コードブックの各値や重みの値は、重み・コードブック記憶部106に記憶される。
また、訓練処理部103は、決定的訓練フェーズにおいて、モジュール型ニューラルネットワークから得られた、回答選択肢からのクラス分類(出力データ)に基づき、教師あり学習で各NNモジュールの重みを更新する。
【0086】
(B)動作
上述の如く構成された実施形態の一例としての情報処理装置1における処理の概要を
図7に示すフローチャート(ステップA1~A7)に従って説明する。
【0087】
ステップA1において、例えば、訓練処理部103が、各NNモジュールの重みと特徴量コードブックをランダム値で初期化する。
【0088】
ステップA2では、訓練回数が規定回数(Nf epoch)に到達するまで、ステップA3の処理を繰り返し実施するループ処理を開始する。
【0089】
ステップA3では確率的訓練が実行される。確率的訓練の詳細は
図8を用いて後述する。
【0090】
ステップA4において、ステップA2に対応するループ端処理が実施される。ここで、訓練回数が規定回数(Nf epoch)に到達すると、制御がステップA5に進む。
【0091】
ステップA5では、訓練回数が規定回数(Nl epoch)に到達するまで、ステップA6の処理を繰り返し実施するループ処理を開始する。
【0092】
ステップA6では決定的訓練が実行される。決定的訓練の詳細は
図9を用いて後述する。
【0093】
ステップA7において、ステップA5に対応するループ端処理が実施される。ここで、訓練回数が規定回数(Nl epoch)に到達すると、処理が終了する。
【0094】
次に、実施形態の一例としての情報処理装置1における確率的訓練フェーズにおける処理を
図8に示すフローチャート(ステップB1~B9)に従って説明する。
【0095】
ステップB1において、ミニバッチ作成部101が、複数の訓練データの中から所定数の訓練データを抽出することでミニバッチ(第1ミニバッチ)を作成する。
【0096】
ステップB2において、モジュール型ニューラルネットワークの全ての層(L層)に対して、ステップB6までの制御を繰り返し実施するループ処理を開始する。ステップB2~B6の処理は、モジュール型ニューラルネットワークに含まれる複数の層に対して、第1層(入力層)から第L層(出力層)に向けて順番(昇順)に処理される
ステップB3において、ニューラルモジュール処理部102が、処理対象の層を構成するM個の全てのNNモジュールに対して訓練データ(入力データ)を与えて、各NNモジュールに出力を計算させる。
【0097】
ステップB4において、ニューラルモジュール処理部102は、選択した訓練データの先頭トークンからMLP処理でNNモジュール出力に対する重み分布を計算させる。
【0098】
ステップB5において、ニューラルモジュール処理部102は、各NNモジュール重み付き平均したモジュール出力を次層への入力データとして設定する。
【0099】
ステップB6では、ステップB2に対応するループ端処理が実施される。ここで、全層(L層)についての処理が完了すると、制御がステップB7に進む。
【0100】
ステップB7において、ニューラルモジュール処理部102は、モジュール型ニューラルネットワークの最終層の出力をMLP処理し、回答選択肢からのクラス分類を得る。
【0101】
ステップB8において、訓練処理部103は、各NNモジュールの出力の重み分布と特徴量コードブックとの距離に基づいて、各訓練データの所属クラスタを決定する。
【0102】
ステップB9において、訓練処理部103は、競合学習により特徴量コードブックの値を最近傍の特徴量方向に更新する。また、訓練処理部103は、教師あり学習でNNモジュールの機械学習を行ない、各NNモジュールの重みを更新する。その後、処理を終了する。
【0103】
次に、実施形態の一例としての情報処理装置1における決定的訓練フェーズにおける処理を
図9に示すフローチャート(ステップC1~C8)に従って説明する。
【0104】
ステップC1において、ミニバッチ作成部101は、訓練処理部103により設定された所属クラスタが同一の複数の訓練データの中から所定数(ミニバッチ数)の訓練データを抽出することでミニバッチ(第2ミニバッチ)を作成する。
【0105】
ステップC2において、モジュール型ニューラルネットワークの全ての層(L層)に対して、ステップC6までの制御を繰り返し実施するループ処理を開始する。ステップC2~C6の処理は、モジュール型ニューラルネットワークに含まれる複数の層に対して、第1層(入力層)から第L層(出力層)に向けて順番(昇順)に処理される。
ステップC3において、ニューラルモジュール処理部102は、ミニバッチ作成部101が作成した第2ミニバッチ内から訓練データを一つ選択する。ニューラルモジュール処理部102は、NNモジュールに対して、選択した訓練データの先頭トークンから、第1層を構成するM個のNNモジュール出力に対する重みの分布をMLP処理で計算させる。
【0106】
ステップC4において、ニューラルモジュール処理部102は、重みが最大値となったNNモジュール(選択NNモジュール)を選択し、この選択NNモジュールに対してミニバッチ全ての訓練データを与えて出力を計算させる。
【0107】
ステップC5において、ニューラルモジュール処理部102は、選択NNモジュールの出力を次層への入力に設定する。
【0108】
ステップC6では、ステップC2に対応するループ端処理が実施される。ここで、全層(L層)についての処理が完了すると、制御がステップC7に進む。
【0109】
ステップC7において、ニューラルモジュール処理部102は、モジュール型ニューラルネットワークの最終層の出力をMLP処理し、クラス分類の回答を得る。
【0110】
ステップC8において、訓練処理部103は、モジュール型ニューラルネットワークから得られた、回答選択肢からのクラス分類(出力データ)に基づき、教師あり学習で各NNモジュールの重みを更新する。その後、処理を終了する。
【0111】
(C)効果
このように、実施形態の一例としての情報処理装置1によれば、確率的訓練フェーズにおいて、複数の訓練データを、重み分布を特徴量としてクラスタリングする。そして、決定的訓練フェーズにおいて、ミニバッチ作成部101が、同一のクラスタ(グループ)に含まれる訓練データが同一のミニバッチに含まれるように、訓練データのミニバッチ(第2ミニバッチ)を生成する。
【0112】
決定的訓練フェーズにおいて、訓練データについてのクラスタ情報を用いて同一クラスタ内の訓練データは選択されるNNモジュールも同一と決定する。これにより、同一クラスタ内の訓練データを用いて特定のNNモジュールのみに計算処理を限定したミニバッチ処理を実現することができる。また、モジュール型ニューラルネットワークの訓練効率を向上させることができる。
【0113】
確率的訓練フェーズにおいて、訓練処理部103が、学習損失として、「VQAでのクラス分類誤差」+「特徴量コードブックとの距離誤差」を用いて、誤差逆伝搬法による教師あり学習でNNモジュールの機械学習を行ない、各NNモジュールの重みを更新する。
【0114】
これにより、モジュール型ニューラルネットワークにおいて、訓練により最終的に選択される各層のNNモジュールに、VQAでのクラス分類誤差と特徴量コードブックとの距離誤差が反映される。そして、同一クラスタに属する訓練データのみで構成されるミニバッチを用いたミニバッチ処理を行なうことが可能となる。
【0115】
決定的訓練フェーズにおいて、ニューラルモジュール処理部102が、各層において、重みが最大値となったNNモジュール(選択NNモジュール)を選択し、この選択NNモジュールに対してミニバッチ全ての訓練データを与えて出力を計算させる。
【0116】
選択NNモジュールに対して、当該NNモジュールへの影響が大きいクラスタに属する訓練データのみを含むミニバッチで訓練を行なうことで、各NNモジュールの訓練を効率的に行なうことができる。
【0117】
図10は実施形態の一例としての情報処理装置1により訓練が行なわれたモジュール型ニューラルネットワークを例示する図である。
【0118】
この
図10においては、data1とdata112とを、それぞれモジュール型ニューラルネットワークに入力した例を示す。これらのdata1とdata112とは同じクラスタに属するので、各層において選択されるNNモジュールも同一となる。
【0119】
本情報処理装置1(モジュール型ニューラルネットワーク訓練部100)においては、モジュール型ニューラルネットワークの各層において同一のNNモジュールを選択させる複数の訓練データを集めた第2ミニバッチを作成することで、ミニバッチ処理が可能となる。従って、モジュール型ニューラルネットワークの訓練を効率的に行なうことができる。
【0120】
(D)その他
本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0121】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【0122】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0123】
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0124】
(付記1)
複数のニューラルネットワークモジュールに対して機械学習による訓練におけるデータ入力を行なった場合の、各ニューラルネットワークモジュールの出力の重みに基づいて、入力データを1以上のグループに分類し、
前記分類後の機械学習処理において、同一のグループに含まれる入力データが同一のミニバッチに含まれるように、前記入力データのミニバッチを生成する
処理をプロセッサに実行させることを特徴とする、情報処理プログラム。
【0125】
(付記2)
前記複数のニューラルネットワークモジュールが、モジュール型ニューラルネットワークに含まれる
ことを特徴とする、付記1に記載の情報処理プログラム。
【0126】
(付記3)
前記分類する処理は、
前記入力データを前記モジュール型ニューラルネットワークに入力し、前記複数のニューラルネットワークモジュールの出力に対する重みに基づいて生成したベクトルと、クラスタを表す基準情報との距離に基づいて、当該入力データのグループを決定する
処理を含むことを特徴とする、付記2に記載の情報処理プログラム。
【0127】
(付記4)
前記基準情報を、競合学習により最近傍の特徴量方向に更新する
処理を前記プロセッサに実行させることを特徴とする、付記3に記載の情報処理プログラム。
【0128】
(付記5)
前記グループの分類誤差と前記基準情報との距離誤差との和を学習損失とする誤差逆伝搬法による教師あり機械学習で、前記ニューラルネットワークモジュールの訓練を行なう
処理を前記プロセッサに実行させることを特徴とする、付記3または4に記載の情報処理プログラム。
【0129】
(付記6)
複数のニューラルネットワークモジュールに対して機械学習による訓練におけるデータ入力を行なった場合の、各ニューラルネットワークモジュールの出力の重みに基づいて、入力データを1以上のグループに分類し、
前記分類後の機械学習処理において、同一のグループに含まれる入力データが同一のミニバッチに含まれるように、前記入力データのミニバッチを生成する
処理をプロセッサが実行することを特徴とする、情報処理方法。
【0130】
(付記7)
前記複数のニューラルネットワークモジュールが、モジュール型ニューラルネットワークに含まれる
ことを特徴とする、付記6に記載の情報処理方法。
【0131】
(付記8)
前記分類する処理は、
前記入力データを前記モジュール型ニューラルネットワークに入力し、前記複数のニューラルネットワークモジュールの出力に対する重みに基づいて生成したベクトルと、クラスタを表す基準情報との距離に基づいて、当該入力データのグループを決定する
処理を含むことを特徴とする、付記7に記載の情報処理方法。
【0132】
(付記9)
前記基準情報を、競合学習により最近傍の特徴量方向に更新する
処理を前記プロセッサが実行することを特徴とする、付記8に記載の情報処理方法。
【0133】
(付記10)
前記グループの分類誤差と前記基準情報との距離誤差との和を学習損失とする誤差逆伝搬法による教師あり機械学習で、前記ニューラルネットワークモジュールの訓練を行なう
処理を前記プロセッサが実行することを特徴とする、付記8または9に記載の情報処理方法。
【0134】
(付記11)
複数のニューラルネットワークモジュールに対して機械学習による訓練におけるデータ入力を行なった場合の、各ニューラルネットワークモジュールの出力の重みに基づいて、入力データを1以上のグループに分類し、
前記分類後の機械学習処理)において、同一のグループに含まれる入力データが同一のミニバッチに含まれるように、前記入力データのミニバッチを生成する
処理を実行する制御部を備えることを特徴とする、情報処理装置。
【0135】
(付記12)
前記複数のニューラルネットワークモジュールが、モジュール型ニューラルネットワークに含まれる
ことを特徴とする、付記11に記載の情報処理装置。
【0136】
(付記13)
前記分類する処理は、
前記入力データを前記モジュール型ニューラルネットワークに入力し、前記複数のニューラルネットワークモジュールの出力に対する重みに基づいて生成したベクトルと、クラスタを表す基準情報との距離に基づいて、当該入力データのグループを決定する
処理を含むことを特徴とする、付記12に記載の情報処理装置。
【0137】
(付記14)
前記制御部が、
前記基準情報を、競合学習により最近傍の特徴量方向に更新する
処理を実行することを特徴とする、付記13に記載の情報処理装置。
【0138】
(付記15)
前記制御が、
前記グループの分類誤差と前記基準情報との距離誤差との和を学習損失とする誤差逆伝搬法による教師あり機械学習で、前記ニューラルネットワークモジュールの訓練を行なう
処理を実行することを特徴とする、付記13または14に記載の情報処理装置。
【符号の説明】
【0139】
1 情報処理装置
11 プロセッサ(制御部)
12 メモリ
13 記憶装置
14 グラフィック処理装置
14a モニタ
15 入力インタフェース
15a キーボード
15b マウス
16 光学ドライブ装置
16a 光ディスク
17 機器接続インタフェース
17a メモリ装置
17b メモリリーダライタ
17c メモリカード
18 ネットワークインタフェース
18a ネットワーク
19 バス
100 モジュール型ニューラルネットワーク訓練部
101 ミニバッチ作成部
102 ニューラルモジュール処理部
103 訓練処理部
104 訓練データ記憶部
105 所属クラスタ記憶部
106 重み・コードブック記憶部