(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-28
(45)【発行日】2025-03-10
(54)【発明の名称】学習装置、学習方法、及び学習済みモデル
(51)【国際特許分類】
G06N 3/09 20230101AFI20250303BHJP
G06N 20/00 20190101ALI20250303BHJP
【FI】
G06N3/09
G06N20/00 130
(21)【出願番号】P 2019231681
(22)【出願日】2019-12-23
【審査請求日】2022-11-25
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】伊藤 秀将
(72)【発明者】
【氏名】水谷 博之
(72)【発明者】
【氏名】湯浅 真由美
(72)【発明者】
【氏名】馬場 邦雄
(72)【発明者】
【氏名】入本 勇宇次
【審査官】円子 英紀
(56)【参考文献】
【文献】国際公開第2019/160090(WO,A1)
【文献】国際公開第2019/031305(WO,A1)
【文献】特開2013-058095(JP,A)
【文献】特開2010-257140(JP,A)
【文献】特開2009-186243(JP,A)
【文献】特開2019-174870(JP,A)
【文献】久保 久彦,機械学習を用いた地震動予測において偏ったデータセットが与える影響を軽減するための試み,人工知能学会全国大会論文集 第33回全国大会(2019),一般社団法人 人工知能学会,2019年06月,pp.1-3
【文献】進藤 智則,Sexy Technology,日経Robotics,日経BP社,2018年03月10日,第33号,pp.4-11
【文献】識名 朝彬,ルールベースガイドによるドメイン知識活用型機械学習システムの実現,信学技報 IEICE Technical Report CPSY2019-44,一般社団法人 電子情報通信学会,2019年11月06日,pp.23-28
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08-3/0985
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
第1入力データに対して、前記第1入力データに応じて出力すべき正解の第1出力データが対応付けられた複数の第1データセットを取得する取得部と、
第2入力データに対して、前記第2入力データに応じて出力すべき正解の第2出力データが対応付けられた複数の第2データセットに基づいて学習されたモデルを、前記取得部によって取得された前記複数の第1データセットに基づいて再学習する学習部と、を備え、
前記学習部は、
前記モデルを再学習する際に、前記第2入力データに対して係数1の重みを付与し、前記第1入力データに対して、前記第2入力データに付与される前記係数1よりも大きな重みを付与
し、
前記第1入力データが入力された前記モデルが正解の前記第1出力データを出力することを制約条件とし、前記第2入力データが入力された前記モデルによって正解の前記第2出力データが出力される程度に関する目的関数を最適化する二次計画問題を解くことで、前記重みを決定する、
学習装置。
【請求項2】
前記モデルは、入力層と、一つ以上の中間層と、出力層とを含むニューラルネットワークであり、
前記目的関数は、
前記第1入力データを前記ニューラルネットワークに入力したときに前記第1入力データが前記ニューラルネットワークに影響を与える度合いを表す第1影響度と、
前記第1入力データを前記ニューラルネットワークに入力したときに前記中間層から前記出力層へと出力された第1特徴量と、
前記第2入力データを前記ニューラルネットワークに入力したときに前記中間層から前記出力層へと出力された第2特徴量と、を変数として含む、
請求項
1に記載の学習装置。
【請求項3】
前記学習部は、前記決定した重みに基づいて、前記モデルを再学習する、
請求項
2に記載の学習装置。
【請求項4】
前記学習部は、前記決定した重み、前記第1影響度、及び前記第1特徴量の積と、前記第2入力データを前記ニューラルネットワークに入力したときに前記第2入力データが前記ニューラルネットワークに影響を与える度合いを表す第2影響度、及び前記第2特徴量の積とに基づいて、前記モデルのパラメータを更新する、
請求項
3に記載の学習装置。
【請求項5】
前記学習部は、前記再学習の前後で前記モデルのパラメータの変化が小さくなるように、メタ学習によって前記再学習が行われる前の前記モデルを学習する、
請求項1から
4のうちいずれか一項に記載の学習装置。
【請求項6】
コンピュータが、
第1入力データに対して、前記第1入力データに応じて出力すべき正解の第1出力データが対応付けられた複数の第1データセットを取得し、
第2入力データに対して、前記第2入力データに応じて出力すべき正解の第2出力データが対応付けられた複数の第2データセットに基づいて学習されたモデルを、前記取得した複数の第1データセットに基づいて再学習し、
前記モデルを再学習する際に、前記第2入力データに対して係数1の重みを付与し、前記第1入力データに対して、前記第2入力データに付与される前記係数1よりも大きな重みを付与
し、
前記第1入力データが入力された前記モデルが正解の前記第1出力データを出力することを制約条件とし、前記第2入力データが入力された前記モデルによって正解の前記第2出力データが出力される程度に関する目的関数を最適化する二次計画問題を解くことで、前記重みを決定する、
学習方法。
【請求項7】
第2入力データが入力されると、前記第2入力データに応じて出力すべき正解の第2出力データを出力させるようにコンピュータを機能させるための学習済みモデルであって、 第1入力データに対して、前記第1入力データに応じて出力すべき正解の第1出力データが対応付けられた複数の第1データセットに基づいて再学習され、
前記再学習の際に、前記第2入力データに対して係数1の重みが付与され、前記第1入力データに対して、前記第2入力データに付与される前記係数1よりも大きな重みが付与さ
れ、
前記第1入力データが入力された前記モデルが正解の前記第1出力データを出力することを制約条件とし、前記第2入力データが入力された前記モデルによって正解の前記第2出力データが出力される程度に関する目的関数を最適化する二次計画問題を解くことで、前記重みが決定される、
学習済みモデル。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、学習装置、学習方法、及び学習済みモデルに関する。
【背景技術】
【0002】
近年、人工知能を産業領域に活用する試みが進められている。人工知能技術としては、おもに、ディープラーニングやその関連技術が多く、画像認識、故障解析、特性予測など適用範囲が広がっている。ディープラーニングを実問題に適用した場合、注意すべき特定のデータ(以下、要注意データと称する)の集合に対して、ニューラルネットワークなどのモデルが正しい答えを出力することをユーザが強く要求する場合がある。
【0003】
要注意データの集合はユーザの要件によって与えられるものであり、実際のデータの発生確率からサンプリングされるものではない。例えば、実験やシミュレーションを行うことで得られた故障データや、その他の特定の故障データのみをユーザが重点的に保存していた場合、これら故障データが要注意データとなる。要注意データの集合について、全て正答するようにモデルをファインチューニングした場合、要注意データに対する過学習が発生し得る。これは要注意データの分布が実際のデータの発生確率とは異なるにも関わらず、一律の重み付けを行うことから起きる問題である。全ての要注意データを正解するような重み付けをすると、モデルが本来の分布から離れた分布を想定して学習し、汎化性を失う可能性がある。そのため、本来のデータ分布に対して汎化性を保ちつつ、要注意データを精度よく正解するように学習可能な技術が求められる。
【0004】
これに関連し、システムに追加データが与えられたとき、元のモデルの重みを可能な限り維持しながら追加データを学習する技術が知られている。しかしながら、従来の技術では、要注意データのようにユーザが指定した特定のデータを精度よく正解しつつ、汎化性を十分に向上させることができていなかった。
【先行技術文献】
【特許文献】
【0005】
【非特許文献】
【0006】
【文献】Chih-Kuan Yeh, Joon Sik Kim, Ian E.H. Yen, Pradeep Ravikumar, “Representer Point Selection for Explaining Deep Neural Networks”, 32nd Conference on Neural Information Processing Systems (NeurIPS 2018), Montreal, Canada.
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする課題は、特定のデータを精度よく正解しつつ、汎化性を向上させることができる学習装置、学習方法、及び学習済みモデルを提供することである。
【課題を解決するための手段】
【0008】
実施形態の学習装置は、取得部と、学習部とを持つ。前記取得部は、第1入力データに対して、前記第1入力データに応じて出力すべき正解の第1出力データが対応付けられた複数の第1データセットを取得する。前記学習部は、第2入力データに対して、前記第2入力データに応じて出力すべき正解の第2出力データが対応付けられた複数の第2データセットに基づいて学習されたモデルを、前記取得部によって取得された前記複数の第1データセットに基づいて再学習し、前記モデルを再学習する際に、前記第1入力データに対して、前記第2入力データよりも大きな重みを付与する。
【図面の簡単な説明】
【0009】
【
図1】第1実施形態に係る学習装置の構成の一例を示す図。
【
図2】第1実施形態に係る制御部のメインルーチンの処理の流れの一例を示すフローチャート。
【
図4】第1実施形態に係る制御部のサブルーチンの処理の流れの一例を示すフローチャート。
【
図5】第2実施形態に係る制御部のサブルーチンの処理の流れの一例を示すフローチャート。
【
図6】第3実施形態に係る制御部のメタ学習の処理の流れの一例を示すフローチャート。
【
図7】ソースデータの分割について説明するための図。
【
図9】実施形態に係る学習装置のハードウェア構成の一例を示す図。
【発明を実施するための形態】
【0010】
以下、実施形態の学習装置、学習方法、及び学習済みモデルを、図面を参照して説明する。実施形態における学習装置は、一つ又は複数の特定の教師データ(訓練データともいう)に基づいて、既に学習されたモデル(以下、学習済みモデルと称する)を再学習する。教師データとは、ある入力データに対して、モデルが正解として出力すべき出力データが教師ラベル(ターゲットともいう)として対応付けられたデータセットである。特定の教師データとは、ユーザが入力データを要注意データに指定した教師データである。要注意データは、他の入力データよりも高い精度でモデルに正解を出力させてほしいとユーザが所望した入力データである。具体的には、要注意データは、製品の故障データや、人や動物の疾患データなどであってよい。
【0011】
(第1実施形態)
以下、第1実施形態に係る学習装置100について説明する。第1実施形態に係る学習装置100は、単一の装置であってもよいし、ネットワークNWを介して接続された複数の装置が互いに協働して動作するシステムであってもよい。ネットワークNWには、例えば、WAN(Wide Area Network)やLAN(Local Area Network)などが含まれてよい。すなわち、学習装置200は、分散コンピューティングやクラウドコンピューティングを利用したシステムに含まれる複数のコンピュータ(プロセッサ)によって実現されてもよい。
【0012】
[学習装置の構成]
図1は、第1実施形態に係る学習装置100の構成の一例を示す図である。第1実施形態の学習装置100は、例えば、通信部102と、入力部104と、表示部106と、制御部110と、記憶部130とを備える。
【0013】
通信部102は、例えば、NIC(Network Interface Card)等の通信インターフェースや、DMA(Direct Memory Access)コントローラなどを含む。通信部102は、ネットワークNWを介して外部装置と通信する。外部装置は、例えば、要注意データを含む教師データを提供した提供者が利用可能なコンピュータやサーバである。
【0014】
入力部104は、ユーザから各種の入力操作を受け付けるユーザインターフェースである。入力部104は、入力操作を受け付けると、その受け付けた入力操作を電気信号に変換して制御部110に出力する。例えば、入力部104は、マウスやキーボード、トラックボール、スイッチ、ボタン、ジョイスティック、タッチパネルである。
【0015】
表示部106は、各種の情報を表示するユーザインターフェースである。例えば、表示部106は、制御部110によって生成された画像を表示したり、学習装置100のユーザから各種の入力操作を受け付けるためのGUI(Graphical User Interface)などを表示したりする。例えば、表示部106は、LCD(Liquid Crystal Display)や有機EL(Electroluminescence)ディスプレイなどである。入力部104がタッチパネルである場合、表示部106は入力部104と一体として構成されてよい。
【0016】
制御部110は、例えば、取得部112と、学習部114と、出力制御部116とを備える。これらの構成要素は、例えば、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)などのプロセッサが記憶部130に格納されたプログラムを実行することにより実現される。また、制御部110の構成要素の一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)などのハードウェアにより実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。
【0017】
記憶部130は、例えば、HDD(Hard Disc Drive)、フラッシュメモリ、EEPROM(Electrically Erasable Programmable Read Only Memory)、ROM(Read Only Memory)、RAM(Random Access Memory)などにより実現される。記憶部130は、ファームウェアやアプリケーションプログラムなどの各種プログラムの他に、モデルデータ132などを格納する。
【0018】
モデルデータ132は、学習済みモデルMDLを定義した情報(プログラムまたはデータ構造)である。例えば、学習済みモデルMDLは、ある対象の性質を分類する分類器や、対象の状態を判定する判定器、画像を生成する生成器、画像から特徴量を抽出する抽出器といった種々のモデルであってよい。
【0019】
学習済みモデルMDLは、任意の入力データに対して、モデルMDLが正解として出力すべき出力データが教師ラベルとして対応付けられた複数の教師データに基づいて教師あり学習されたモデルである。学習済みモデルMDLは、例えば、入力層と、少なくとも一つの中間層(隠れ層)と、出力層とを含むディープニューラルネットワーク(以下、DNNと称する)によって構成される。
【0020】
モデルデータ132には、例えば、DNNを構成する複数の層のそれぞれに含まれるユニットが互いにどのように結合されるのかという結合情報や、結合されたユニット間で入出力されるデータに付与される結合係数などの各種情報が含まれる。結合情報とは、例えば、各層に含まれるユニット数や、各ユニットの結合先のユニットの種類を指定する情報、各ユニットを実現する活性化関数、隠れ層のユニット間に設けられたゲートなどの情報を含む。ユニットを実現する活性化関数は、例えば、正規化線形関数(ReLU関数)であってもよいし、シグモイド関数や、ステップ関数、その他の関数などであってもよい。ゲートは、例えば、活性化関数によって返される値(例えば1または0)に応じて、ユニット間で伝達されるデータを選択的に通過させたり、重み付けたりする。結合係数は、例えば、DNNの隠れ層において、ある層のユニットから、より深い層のユニットにデータが出力される際に、出力データに対して付与される重みを含む。また、結合係数は、各層の固有のバイアス成分などを含んでもよい。
【0021】
[再学習(再訓練)のメインルーチンの処理フロー]
以下、フローチャートに即して制御部110の一連の処理の流れを説明する。
図2は、第1実施形態に係る制御部110のメインルーチンの処理の流れの一例を示すフローチャートである。本フローチャートの処理は、例えば、所定の周期で繰り返し行われてよい。また、学習装置100が、分散コンピューティングやクラウドコンピューティングを利用したシステムに含まれる複数のコンピュータによって実現される場合、本フローチャートの処理の一部または全部は、複数のコンピュータによって並列処理されてよい。
【0022】
まず、取得部112は、通信部102を介して、外部装置から、学習済みモデルMDLを再学習するための複数の新規教師データを取得する(ステップS100)。新規教師データは、上述した特定の教師データに相当する。すなわち、新規教師データは、要注意データが入力データとして含まれる教師データである。新規教師データは「第1データセット」の一例であり、要注意データは「第1入力データ」の一例であり、その要注意データに教師ラベルとして対応付けられた出力データは「第1出力データ」の一例である。
【0023】
また、学習装置100のドライブ装置(例えばUSB(Universal Serial Bus)フラッシュドライブ)に記憶媒体が装着された場合、取得部112は、その記憶媒体から複数の新規教師データを取得してもよい。
【0024】
次に、学習部114は、取得部112によって取得された複数の新規教師データのそれぞれに含まれる要注意データを個別に重み付けて、学習済みモデルMDLを再学習する(ステップS102)。
【0025】
次に、出力制御部116は、学習部114によって再学習された学習済みモデルMDL(以下、再学習済みモデルMDL#)を再定義したモデルデータ132を出力する(ステップS104)。例えば、出力制御部116は、通信部102を介して、新規教師データを提供した外部装置に、再学習済みモデルMDL#を再定義したモデルデータ132を送信してもよいし、表示部106に再学習済みモデルMDL#を表示させてもよい。これによって本フローチャートの処理が終了する。
【0026】
[再学習の具体的手法]
以下、学習済みモデルMDLを再学習する具体的な方法について説明する。
図3は、学習済みモデルMDLを模式的に示す図である。非特許文献1に記載されるように、出力層にL2正則化が与えられたDNNでは、数式(1)の関係式が成り立つことが知られている。
【0027】
【0028】
式中のxtは、学習済みのDNNをテストするために任意に選定された入力データを表している。この入力データには教師ラベルが対応付けられていてもよいし、対応付けられていてなくてもよい。以下、任意に選定された入力データのことを「テストデータ」と称して説明する。
【0029】
ft(→)は、テストデータxtをDNNに入力したときの出力層前の特徴量を表している。括弧付き矢印(→)が付いたアルファベットやギリシャ文字は、ベクトル、テンソル、或いは行列を表すものとする。
【0030】
出力層前の特徴量とは、最も出力層に近い中間層(以下、直前の中間層と称する)から出力層に対して出力された特徴量である。具体的には、出力層前の特徴量は、直前の中間層において活性化関数によって返された値が出力層に出力される際に、その活性化関数の出力値に対して重み係数が乗算された値である。この際、活性化関数の出力値には、更にバイアス成分が加算されてもよい。
【0031】
fi(→)は、過去にDNNを学習させた際に利用されたn個の教師データのそれぞれに含まれる入力データのうち、ある着目する一つの入力データxiをDNNに入力したときの出力層前の特徴量を表している。nは任意の自然数である。また、Tは転置を表している。n個の入力データの中には、上述した要注意データが含まれていてもよいし、含まれていなくてもよい。以下、過去にDNNを学習させた際に利用された入力データのことを「学習データ」と称して説明する。n個の教師データは「第2データセット」の一例である。学習データは「第2入力データ」の一例であり、その学習データに教師ラベルとして対応付けられた出力データは「第2出力データ」の一例である。
【0032】
αiは、ある学習データxiをDNNに入力したときに、その学習データxiがDNNに影響を与える度合い(以下、影響度と称する)を表している。影響度αiの詳細については後述する。
【0033】
Θ*(→)は、DNNに含まれる全ての層のパラメータ(重み係数やバイアス成分といったDNNに関するあらゆるパラメータを含む)を表している。
【0034】
Φ(xt,Θ*)(→)は、パラメータがΘ*であるDNNにテストデータxtを入力したときの出力層の出力値であり、出力層の活性化関数(例えばソフトマックス関数など)には未だ入力されていない特徴量を表している。
【0035】
数式(1)は、DNNに学習データxiを入力したときの出力層前の特徴量fi(→)と、DNNにテストデータxtを入力したときの出力層前の特徴量ft(→)との内積に対して影響度αiという重み係数を乗算した値(=αifi(→)Tft(→))を、n個の学習データのそれぞれについて導出し、更に、その導出したn個の値の和(つまり重み付き和)が、出力層の出力値Φ(xt,Θ*)(→)に等しいことを表している。そのため、fi(→)とft(→)との内積が大きかったり、或いは影響度αiが大きかったりするほど、出力層の出力値Φ(xt,Θ*)(→)が大きくなる傾向にある。言い換えれば、学習データxiとテストデータxtとの特徴が互いに類似していたり、影響度αiが大きかったりするほど、出力層の出力値Φ(xt,Θ*)(→)が大きくなる傾向にある。
【0036】
上述した影響度αiは、数式(2)によって表すことができる。
【0037】
【0038】
式中のΘ1(→)は、DNNの出力層のパラメータである重み行列を表している。L(xt,yt,Θ1(→))は、出力層のパラメータがΘ1(→)であるDNNに学習データxiを入力したときの損失関数を表している。λは、DNNのハイパーパラメータ(正の定数)を表している。数式(2)に示すように、影響度αiは、損失関数L(xt,yt,Θ1(→))を、出力層の出力値Φ(xi,Θ1(→))(→)で偏微分した値に依存する。
【0039】
上述した数式(1)が成り立つ場合、DNNの出力層の重み行列Θ1(→)は、数式(3)によって表すことができる。
【0040】
【0041】
ここで、複数の新規教師データのそれぞれに含まれる要注意データをDNNに入力したときの出力層の重み行列について考える。例えば、要注意データの数をm個とした場合、m個の要注意データのそれぞれを、ある重みβiで再学習(追加学習)した際のDNNの出力層の重み行列Θ1´(→)は、数式(4)によって表すことができる。mは任意の自然数であり、nよりも十分小さい数である。
【0042】
【0043】
数式(4)において、ダッシュ記号(´)が付いたパラメータは、m個の要注意データを学習済みDNNに入力したときの各種パラメータを表している。具体的には、数式(4)は、n個の学習データのうち、あるj番目の学習データxjを学習済みDNNに入力したときの出力層前の特徴量fj(→)と、その学習データxjの影響度αjとの重み付き和(=Σαjfj(→)T)と、m個の要注意データのうち、あるi番目の要注意データxiを学習済みDNNに入力したときの出力層前の特徴量fi´(→)と、その要注意データxiの影響度αi´と、重みβiとの重み付き和(=Σβiαj´fj´(→)T)とを足し合わせたものに、重み行列Θ1´(→)が等しいことを表している。
【0044】
学習データxjを学習済みDNNに入力したときの出力層前の特徴量fj(→)は、「第2特徴量」の一例であり、要注意データxiを学習済みDNNに入力したときの出力層前の特徴量fi´(→)は、「第1特徴量」の一例である。学習データxjの影響度αjは、「第2影響度」の一例であり、要注意データxiの影響度αi´は、「第1影響度」の一例である。
【0045】
要注意データの数mは、元の学習データの数nに比べて十分に少ないため、数式(5)が成り立つ。このとき、m個の要注意データを用いて学習済みDNNを再学習した場合(重み行列Θ1´(→)を適用した場合)、そのDNNの出力精度(例えば分類精度や識別精度など)への影響は、数式(6)によって表すことができる。
【0046】
【0047】
【0048】
次に、要注意データの制約条件について考える。ここでは二値分類を例に挙げる。m個の要注意データを任意の定数Mのマージンをもって正解するような重みβiについては、数式(7)が成り立つ。式中のyk(→)は、正解ラベルを1とし、不正解ラベルを-1とした二次元のベクトルである。また、kは、1からmの集合に含まれる何れか一つの値である。
【0049】
【0050】
m個の要注意データを全て正解しつつ、n個の学習データへの影響を最小限に留めるように、再学習する際の要注意データの重みβiを決定する問題は、数式(9)に示す制約条件を満たしつつ、数式(8)に示す目的関数を最小化することで解くことができる。数式(9)に示す制約条件は、m個の要注意データのそれぞれに応じて変動する制約条件(各要注意データ個別の制約条件)を表しており、m個の要注意データが学習済みDNNに入力されると、その学習済みDNNが、m個の要注意データのそれぞれについて正解となるデータを出力することを条件としている。数式(8)に示す目的関数は、n個の学習データが入力された学習済みDNNによって正解となるデータがどの程度出力されるのかを表した関数である。このような目的関数を解く問題は、不等式制約付きの二次計画問題と呼ばれる。
【0051】
【0052】
【0053】
学習部114は、例えば、上述した理論に基づく二次計画問題を、ラグランジュの未定乗数法や内点法、外点法などの手法を用いて解くことで最適な重みβiを導出する。そして、学習部114は、導出した重みβiに基づいて、m個の要注意データを用いて学習済みモデルMDLを再学習する。
【0054】
[再学習のサブルーチンの処理フロー]
以下、学習済みモデルMDLを再学習する具体的な処理の流れについて、サブルーチンのフロチャートを用いて説明する。
図4は、第1実施形態に係る制御部110のサブルーチンの処理の流れの一例を示すフローチャートである。本フローチャートの処理は、上述したS102の処理に相当する。
【0055】
まず、学習部114は、m個の要注意データを用いて学習済みモデルMDLを再学習する際に、数式(9)に示す制約条件を満たすか否かを判定する(ステップS200)。言い換えれば、学習部114は、m個の要注意データを学習済みモデルMDLに入力したときに、その学習済みモデルMDLがマージンMの範囲内で正解となるデータを出力するか否かを判定する。初回の処理において、要注意データの重みβiは、任意の初期値であってよい。
【0056】
学習部114は、制約条件を満たすと判定した場合(学習済みモデルMDLが正解となるデータを出力すると判定した場合)、更なる再学習が必要でないため、本フローチャートの処理を終了する。
【0057】
一方、学習部114は、制約条件を満たさないと判定した場合(学習済みモデルMDLが正解となるデータを出力しないと判定した場合)、要注意データの数mがk未満であるか否かを判定する(ステップS202)。
【0058】
学習部114は、要注意データの数mがk以上である場合、要注意データの数mがk未満となるまでS200の判定処理を繰り返しながら待機する。この際、出力制御部116は、要注意データの数mをk未満に調整するようにユーザに促す情報を、通信部102を介して、外部装置に対して送信してよい。外部装置は、上述したように、要注意データを含む教師データを学習装置100に提供した装置であってよい。
【0059】
一方、学習部114は、要注意データの数mがk未満である場合、要注意データxiを学習済みモデルMDLに入力し、その要注意データxiを入力した学習済みモデルMDLから、出力層前の特徴量fi´(→)を抽出する(ステップS204)。
【0060】
次に、学習部114は、抽出した出力層前の特徴量fi´(→)を基に、数式(8)に示す二次計画問題を解くことで、要注意データの重みβiを算出する(ステップS206)。
【0061】
次に、学習部114は、二次計画問題の解が存在するか否かを判定する(ステップS208)。
【0062】
学習部114は、二次計画問題の解が存在しない場合、m個の要注意データのそれぞれの重みβiを一律に増加させる(ステップS210)。そして、学習部114は、S200の処理に戻り、増加させた重みβiを基に、制約条件を満たすか否かを再度判定する。
【0063】
一方、学習部114は、二次計画問題の解が存在する場合、その解に対応した(その解に相当した)重みβiを基に、学習済みモデルMDLの出力層のパラメータである重み行列Θ1´(→)を計算する(ステップS212)。具体的には、学習部114は、数式(4)に重みβiを代入することで、重み行列Θ1´(→)を求める。
【0064】
次に、学習部114は、学習済みモデルMDLの出力層のパラメータを、計算によって得られた重み行列Θ1´(→)に更新する(ステップS214)。この結果、記憶部130に記憶されたモデルデータ132が、再学習済みモデルMDL#を定義したデータに更新される。これによって本フローチャートの処理が終了する。
【0065】
以上説明した第1実施形態によれば、学習済みモデルMDLを再学習する際に、新規教師データの中に入力データとして含まれる要注意データに対して重みβiを付与する。重みβiは、数式(4)に示すように、学習データxjに重みとして付与される係数1よりも大きい。そのため、過去の学習で用いられた教師データよりも、再学習で用いられる新規教師データの比重を大きくすることができ、学習済みモデルMDLの汎化性を維持しながら、要注意データを精度よく正解することができる。
【0066】
(第2実施形態)
以下、第2実施形態について説明する。上述した第1実施形態では、学習済みモデルMDLの再学習として、出力層のパラメータである重み行列Θ1´(→)のみを更新するものとして説明した。これに対して、第2実施形態では、学習済みモデルMDLの出力層だけでなく、学習済みモデルMDL全体を再学習する点で上述した第1実施形態と相違する。以下、第1実施形態との相違点を中心に説明し、第1実施形態と共通する点については説明を省略する。なお、第2実施形態の説明において、第1実施形態と同じ部分については同一符号を付して説明する。
【0067】
図5は、第2実施形態に係る制御部110のサブルーチンの処理の流れの一例を示すフローチャートである。以下、上述した第1実施形態のフローチャートとの相違点について主に説明する。
【0068】
学習部114は、S202の処理において、要注意データの数mがk以上であると判定した場合、或いは、S208の処理において、二次計画問題の解が存在しないと判定した場合、学習済みモデルMDL全体を再学習する(ステップS216)。
【0069】
例えば、学習部114は、初回の処理時に、要注意データの数mがk以上であったり、二次計画問題の解が存在しなかったりした場合、初期値の重みβiに基づいて、学習済みモデルMDL全体を再学習する。そして、学習部114は、S200の処理に戻り、再度制約条件を満たすか否かを判定する。このように、学習部114は、制約条件を満たすまで、この一連の処理を繰り返す。
【0070】
以上説明した第2実施形態によれば、要注意データの数mがk以上であったり、二次計画問題の解が存在しなかったりした場合に、学習済みモデルMDL全体を再学習するため、要注意データの重みβiを増加させずとも二次計画問題の解が得られやすくなる。この結果、過去の学習で用いられた教師データに対して、再学習で用いられる新規教師データの比重が大きくなることを抑制することができ、学習済みモデルMDLの汎化性を更に向上させることができる。
【0071】
(第3実施形態)
以下、第3実施形態について説明する。上述した第1実施形態又は第2実施形態では、事前に要注意データが与えられるものとして説明した。一般的に、教師データとして膨大なデータが与えられたときに、再学習前の学習時点では、その膨大なデータの中のいずれの教師データが要注意データに指定されるのかわからない場合がある。
【0072】
そのため、第3実施形態では、再学習前の学習時点で与えられた膨大なデータを基にモデルを学習した後に、いずれかのデータが要注意データに指定されたとしても、その要注意データに対して高い精度で正答するようなモデルをメタ学習によって得る点で上述した第1実施形態又は第2実施形態と相違する。メタ学習とは、学習方法を学習する(learning to learn)手法であり、MAML(Model Agnostic Meta-Learning for Fast Adaption)などのアルゴリズムが含まれる。以下、第1実施形態又は第2実施形態との相違点を中心に説明し、第1実施形態又は第2実施形態と共通する点については説明を省略する。第3実施形態の説明において、第1実施形態又は第2実施形態と同じ部分については同一符号を付して説明する。
【0073】
[メタ学習の処理フロー]
以下、フローチャートに即してメタ学習の一連の処理の流れを説明する。
図6は、第3実施形態に係る制御部110のメタ学習の処理の流れの一例を示すフローチャートである。学習装置100が、分散コンピューティングやクラウドコンピューティングを利用したシステムに含まれる複数のコンピュータによって実現される場合、本フローチャートの処理の一部または全部は、複数のコンピュータによって並列処理されてよい。
【0074】
まず、取得部112は、通信部102を介して、外部装置から、メタ学習の対象であるモデル(以下、メタモデルMDLMTと称する)を学習するためのソースデータを取得する(ステップS300)。ソースデータには、複数の教師データが含まれる。
【0075】
また、学習装置100のドライブ装置に記憶媒体が装着された場合、取得部112は、その記憶媒体からソースデータを取得してもよい。
【0076】
次に、学習部114は、取得部112によって取得されたソースデータを、ガウシアン分布などの確率分布に従って3つのデータセットに分割する(ステップS302)。
【0077】
図7は、ソースデータの分割について説明するための図である。図示のように、ソースデータを分割して得られた3つのデータセットのうち、1つ目のデータセットD1と2つ目のデータセットD2は、メタモデルMDL
MTを再学習するために利用されるデータセットであり、2つ目のデータセットD2と3つ目のデータセットD3は、再学習したメタモデルMDL
MTの精度を検証し、その検証結果に応じてメタモデルMDL
MTをメタ学習するために利用されるデータセットである。以下、1つ目のデータセットD1を「学習用データセット」と称し、2つ目のデータセットD2を「要注意データセット」と称し、3つ目のデータセットD3を「検証用データセット」と称して説明する。要注意データセットは、現時点において要注意データに指定されていないものの、将来の時点において要注意データに指定され得るデータが含まれる。つまり、将来の可能性(蓋然性)を考慮すれば、学習用データセットとした1つ目のデータセットD1や検証用データセットとした3つ目のデータセットD3についても要注意データセットとなり得るが、ここでは暫定的に2つ目のデータセットD2のみを要注意データセットとする。
【0078】
次に、学習部114は、3つに分割したデータセットのうち、要注意データセットD2に対してオーグメンテーションを行う(ステップS304)。例えば、要注意データセットD2の入力データが画像データである場合、学習部114は、その画像データに対して、アフィン変換や、色変換、ノイズの付加、といった識別結果を変えずにデータの性質を変化させる画像処理をオーグメンテーションとして行ってよい。これによって、未知の要注意データに対するロバスト性を高めることができる。
【0079】
次に、学習部114は、学習用データセットD1と、オーグメンテーションを行った要注意データセットD2とを用いて、仮想空間上でメタモデルMDLMTを再学習する(ステップS306)。具体的には、学習部114は、再学習によってメタモデルMDLMTのパラメータを実際に更新(調整)するのではなく、仮想空間上でメタモデルMDLMTのパラメータを更新し、更に、その再学習の過程で得られる各種演算結果(具体的には損失関数の勾配など)を記憶部130に記憶させる。
【0080】
例えば、学習部114は、上述した第1実施形態や第2実施形態で説明したように、メタモデルMDLMTを再学習する。具体的には、学習部114は、学習用データセットD1に含まれる入力データを未学習のメタモデルMDLMTに入力し、その入力データを入力したメタモデルMDLMTによって出力された出力データと、入力データに教師ラベルとして対応付けられていた出力データとの誤差(差分)に基づく誤差関数の勾配が小さくなるように、確率的勾配降下法などを用いてメタモデルMDLMTのパラメータを更新(調整)する。
【0081】
そして、学習部114は、要注意データセットD2に含まれる入力データ(すなわち要注意データ)に重みβiを付与して、学習用データセットD1を基に学習したメタモデルMDLMTの出力層のパラメータである重み行列Θ1´(→)を再学習する。この際、学習部114は、重み行列Θ1´(→)の勾配である重み付き和(=Σβiαj´fj´(→)T)を記憶部130に記憶させる。
【0082】
次に、学習部114は、要注意データセットD2と検証用データセットD3を用いて、再学習したメタモデルMDLMTの精度を検証する(ステップS308)。
【0083】
例えば、学習部114は、要注意データセットD2に含まれる入力データを、再学習したメタモデルMDLMTに入力し、その入力データを入力したメタモデルMDLMTによって出力された出力データと、入力データに教師ラベルとして対応付けられていた出力データとの誤差(差分)を求め、更に、その誤差に基づく誤差関数の勾配を算出する。また、学習部114は、検証用データセットD3に含まれる入力データを、再学習したメタモデルMDLMTに入力し、その入力データを入力したメタモデルMDLMTによって出力された出力データと、入力データに教師ラベルとして対応付けられていた出力データとの誤差(差分)を求め、更に、その誤差に基づく誤差関数の勾配を算出する。
【0084】
次に、学習部114は、要注意データセットD2を用いたときの誤差関数の勾配と、検証用データセットD3を用いたときの誤差関数の勾配とに基づいて、メタモデルMDLMTのパラメータΘ*(→)を更新する(ステップS310)。
【0085】
次に、学習部114は、メタ学習用の検証データを用いて、パラメータΘ*(→)を更新したメタモデルMDLMTの精度を検証する(ステップS312)。メタ学習用の検証データとは、パラメータΘ*(→)が更新されたメタモデルMDLMTの過学習を検証するためのデータである。メタ学習用の検証データは、学習用データセットD1、要注意データセットD2、及び検証用データセットD3の分割元のソースデータとは異なるデータであり、入力データと教師ラベルが対応付けられた出力データとを組み合わせた教師データである。
【0086】
例えば、学習部114は、メタ学習用の検証データに含まれる入力データを、パラメータΘ*(→)が更新されたメタモデルMDLMTに入力し、その入力データを入力したメタモデルMDLMTによって出力された出力データと、入力データに教師ラベルとして対応付けられていた出力データとの誤差(差分)を求め、更に、その誤差に基づく誤差関数の勾配を、メタモデルMDLMTの精度として導出する。
【0087】
次に、学習部114は、メタモデルMDLMTの精度(すなわち誤差関数の勾配)が閾値以上か否かを判定する(ステップS314)。学習部114は、メタモデルMDLMTの精度が閾値未満である場合、S302の処理に戻り、再学習を繰り返す。
【0088】
一方、出力制御部116は、メタモデルMDLMTの精度が閾値以上である場合、メタモデルMDLMTを定義したモデルデータ132を出力する(ステップS316)。例えば、出力制御部116は、通信部102を介して、ソースデータを提供した外部装置に、モデルデータ132を送信してもよいし、表示部106にメタモデルMDLMTを表示させてもよい。これによって本フローチャートの処理が終了する。
【0089】
図8は、メタ学習の方法を模式的に示す図である。図中Vは、各学習における損失関数の勾配の向きを表している。例えば、メタモデルMDL
MTのパラメータが初期値Θ0である場合に、学習部114は、再学習(メタ学習においてインナーアップデートともいう)により求まる勾配と、検証用データセットを用いた学習(メタ学習においてメタアップデートともいう)により求まる勾配との双方に基づいて、メタモデルMDL
MTのパラメータを、初期値Θ0から更新する。再学習が繰り返されることで、メタモデルMDL
MTのパラメータは、Θ1、Θ2、…、Θ6のように順に変化していく。この場合、学習部114は、メタアップデート時において、例えば、各再学習の勾配V1、V2、…、V6を合成した勾配Vxに基づいて、メタモデルMDL
MTのパラメータを初期値Θ0からΘxに更新してよい。
【0090】
また、学習部114は、検証用データセットを用いた学習により求まる勾配のみに基づいて、メタモデルMDLMTのパラメータを、初期値Θ0から更新してもよい。
【0091】
以上説明した第3実施形態によれば、メタ学習によってモデルのパラメータを更新するため、再学習前のモデルのパラメータに、再学習により変動し得るパラメータの変化を事前に反映させておくことができる。この結果、再学習時において要注意データの重みβiを大きくせずともモデルの精度をより向上させることができる。
【0092】
(ハードウェア構成)
上述した実施形態に係る学習装置100は、例えば、
図9に示すようなハードウェア構成により実現される。
図9は、実施形態に係る学習装置100のハードウェア構成の一例を示す図である。
【0093】
学習装置100は、NIC100-1、CPU100-2、RAM100-3、ROM100-4、フラッシュメモリやHDDなどの二次記憶装置100-5、およびドライブ装置100-6が、内部バスあるいは専用通信線によって相互に接続された構成となっている。ドライブ装置100-6には、光ディスクなどの可搬型記憶媒体が装着される。二次記憶装置100-5、またはドライブ装置100-6に装着された可搬型記憶媒体に格納されたプログラムがDMAコントローラ(不図示)などによってRAM100-3に展開され、CPU100-2によって実行されることで、制御部110が実現される。制御部110が参照するプログラムは、ネットワークNWを介して他の装置からダウンロードされてもよい。
【0094】
以上説明した少なくとも一つの実施形態によれば、学習済みモデルMDLを再学習する際に、新規教師データの中に入力データとして含まれる要注意データに対して重みβiを付与するため、過去の学習で用いられた教師データよりも、再学習で用いられる新規教師データの比重を大きくすることができる。この結果、学習済みモデルMDLの汎化性を維持しながら、要注意データを精度よく正解することができる。
【0095】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0096】
100…学習装置、102…通信部、104…入力部、106…表示部、110…制御部、112…取得部、114…学習部、116…出力制御部、130…記憶部、132…モデルデータ