IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-57734情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置
<>
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図1
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図2
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図3
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図4
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図5
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図6
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図7
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図8
  • 特開-情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024057734
(43)【公開日】2024-04-25
(54)【発明の名称】情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240418BHJP
【FI】
G06N20/00 130
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022164589
(22)【出願日】2022-10-13
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】守屋 政宏
(57)【要約】
【課題】AI(Artificial Intelligence)モデルの精度向上に寄与する訓練データを効率的に作成することができるようにする。
【解決手段】入力データに応じた予測結果の出力を行なう第1のAIモデルに対する入力データと、この入力データに対する第1のAIモデルの予測結果と正解との差を示す第1の損失値とを対応付けた訓練データを用いた機械学習により訓練された、第2のAIモデルに複数のデータを入力することで、複数のデータそれぞれについての第1の損失値の予測値を取得し、取得した第1の損失値の予測値に基づいて、複数のデータの中から、第1のAIモデルの前記訓練データに用いるデータを選択する。
【選択図】図5
【特許請求の範囲】
【請求項1】
入力データに応じた予測結果の出力を行なう第1のAI(Artificial Intelligence)モデルに対する入力データと、当該入力データに対する前記第1のAIモデルの予測結果と正解との差を示す第1の損失値とを対応付けた訓練データを用いた機械学習により訓練された、第2のAIモデルに複数のデータを入力することで、前記複数のデータそれぞれについての前記第1の損失値の予測値を取得し、
取得した前記第1の損失値の予測値に基づいて、前記複数のデータの中から、前記第1のAIモデルの前記訓練データに用いるデータを選択する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【請求項2】
前記訓練データに用いるデータを選択する処理は、前記複数のデータの中から、前記第1の損失値の予測値が高いデータを優先して選択する
処理を含むことを特徴とする請求項1に記載の情報処理プログラム。
【請求項3】
入力データに対する第1のAIモデルの予測結果と正解との差を示す第1の損失値を取得し、
前記入力データと前記第1の損失値とを対応付けた訓練データを用いて、入力データに対する第1の損失値を予測する第2のAIモデルの訓練を行なう、
処理をコンピュータに実行させることを特徴とする訓練プログラム。
【請求項4】
入力データに応じた予測結果の出力を行なう第1のAIモデルに対する入力データと、当該入力データに対する前記第1のAIモデルの予測結果と正解との差を示す第1の損失値とを対応付けた訓練データを用いた機械学習により訓練された、第2のAIモデルに複数のデータを入力することで、前記複数のデータそれぞれについての前記第1の損失値の予測値を取得し、
取得した前記第1の損失値の予測値に基づいて、前記複数のデータの中から、前記第1のAIモデルの前記訓練データに用いるデータを選択する
処理をコンピュータが実行することを特徴とする情報処理方法。
【請求項5】
入力データに対する第1のAIモデルの予測結果と正解との差を示す第1の損失値を取得し、
前記入力データと前記第1の損失値とを対応付けた訓練データを用いて、入力データに対する第1の損失値を予測する第2のAIモデルの訓練を行なう、
処理をコンピュータが実行することを特徴とする訓練方法。
【請求項6】
入力データに応じた予測結果の出力を行なう第1のAIモデルに対する入力データと、当該入力データに対する前記第1のAIモデルの予測結果と正解との差を示す第1の損失値とを対応付けた訓練データを用いた機械学習により訓練された、第2のAIモデルに複数のデータを入力することで、前記複数のデータそれぞれについての前記第1の損失値の予測値を取得し、
取得した前記第1の損失値の予測値に基づいて、前記複数のデータの中から、前記第1のAIモデルの前記訓練データに用いるデータを選択する
処理を実行する制御部を含むことを特徴とする情報処理装置。
【請求項7】
入力データに対する第1のAIモデルの予測結果と正解との差を示す第1の損失値を取得し、
前記入力データと前記第1の損失値とを対応付けた訓練データを用いて、入力データに対する第1の損失値を予測する第2のAIモデルの訓練を行なう、
処理を実行する制御部を含むことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置に関する。
【背景技術】
【0002】
従来のAI(Artificial Intelligence)モデルの作成(訓練)フローでは、十分な量の全体データから、AIモデルの作成に使用するデータをいくつか抽出する。全体データからAIモデルの作成に使用するデータを抽出する作業をサンプリングといってよい。また、サンプリングにより抽出されたデータをサンプリングデータといってよい。
【0003】
従来のAIモデル作成方法においては、全体データからサンプリングデータを手作業あるいはランダムに抽出している。
【0004】
抽出したサンプリングデータに対してAIモデルが学習する正解データが付与され、訓練データが生成される。サンプリングデータと正解データとの組み合わせをデータセットといってよい。また、サンプリングデータに対して正解データを付与することをアノテーションといってよい。
【0005】
生成されたデータセットを用いてAIモデルの機械学習および評価が実施される。AIモデルの作成では、上述したサンプリング,アノテーションおよび機械学習・評価の一連の処理が、データセットを拡充していきながら繰り返し実施される。また、AIモデル生成におけるゴールは、十分な認識精度・処理性能を有するAIモデルの生成である。
【0006】
また、従来においては、例えば、全学習データセットからサンプリングされた部分データセットのメタ特徴量を用いて、全学習データセットを用いて生成した機械学習の予測モデルの精度情報を予測することで、効率的に予測モデルの予測精度を向上させる方法が知られている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2021/049365号
【特許文献2】国際公開第2021/241173号
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述の如く、従来のAIモデル作成方法においては、全体データの中からサンプリングデータを手作業あるいはランダムに抽出している。
【0009】
しかしながら、サンプリングを手作業で行なう場合には、手作業に由来する客観性の欠如のおそれがあり、また、サンプリングを実施するための作業負荷が大きい。
【0010】
また、サンプリングをランダムに行なう場合には、AIモデルの認識精度に寄与しやすいデータを選ぶことができない。そのため、無駄なアノテーション作業が発生し、アノテーション作業あたりの認識精度向上効率が低くなる。
【0011】
また、上述した全学習データセットからサンプリングされた部分データセットのメタ特徴量を用いて、全学習データセットを用いて生成した機械学習の予測モデルの精度情報を予測する従来手法においては、データセットごとに予測精度の向上幅を算出している。しかしながら、予測精度の向上幅を算出する際に、部分データセットに対してアノテーションを実施する必要がある。
【0012】
1つの側面では、本発明は、AIモデルの精度向上に寄与する訓練データを効率的に作成することができるようにすることを目的とする。
【課題を解決するための手段】
【0013】
このため、この情報処理プログラムは、入力データに応じた予測結果の出力を行なう第1のAIモデルに対する入力データと、当該入力データに対する前記第1のAIモデルの予測結果と正解との差を示す第1の損失値とを対応付けた訓練データを用いた機械学習により訓練された、第2のAIモデルに複数のデータを入力することで、前記複数のデータそれぞれについての前記第1の損失値の予測値を取得し、取得した前記第1の損失値の予測値に基づいて、前記複数のデータの中から、前記第1のAIモデルの前記訓練データに用いるデータを選択する処理をコンピュータに実行させる。
【発明の効果】
【0014】
一実施形態によれば、AIモデルの精度向上に寄与する訓練データを効率的に作成することができる。
【図面の簡単な説明】
【0015】
図1】実施形態の一例としてのモデル生成装置の機能構成を示す図である。
図2】実施形態の一例としてのモデル生成装置の機能を実現するコンピュータのハードウェア(HW)構成例を示すブロック図である。
図3】実施形態の一例としてのモデル生成装置の難易度情報を例示する図である。
図4】実施形態の一例としてのモデル生成装置の補助AI処理部の処理を説明するための図である。
図5】実施形態の一例としてのモデル生成装置の処理の概要を説明するための図である。
図6】実施形態の一例としてのモデル生成装置におけるAIモデルおよび補助AIモデルの作成(訓練)処理を説明するための図である。
図7】実施形態の一例としてのモデル生成装置の処理を説明するためのフローチャートである。
図8】実施形態の一例としてのモデル生成装置の補助AI処理部の処理を説明するためのフローチャートである。
図9】実施形態の一例としてのモデル生成装置による効果を説明するための図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本情報処理プログラム,訓練プログラム,情報処理方法,訓練方法および情報処理装置にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0017】
(A)構成
図1は実施形態の一例としてのモデル生成装置1の機能構成を示す図である。
モデル生成装置1は、AIモデル201を生成するものであり、データセット(訓練データ)を生成し、この生成したデータセットを用いてAIモデル201の機械学習および評価を実施する。
【0018】
AIモデル201は、本モデル生成装置1による生成(訓練)対象の機械学習モデルである。AIモデル201を主AIモデル201といってよい。AIモデル201は、入力データに応じた予測結果の出力を行なう第1のAIモデルに相当する。
【0019】
AIモデル201は、ハードウェア回路であってもよいし、後述するプロセッサ10a(図2参照)等によりコンピュータプログラム上で仮想的に構築される階層間を接続するソフトウェアによる仮想的なネットワークであってもよい。
【0020】
AIモデル201は、入力層と出力層との間に複数の隠れ層を含むディープニューラルネットワークであってよい。
AIモデル201は、後述するAI訓練処理部105により訓練(機械学習)される。
【0021】
(A-1)ハードウェア構成例
図2は実施形態の一例としてのモデル生成装置1の機能を実現するコンピュータ10のハードウェア(HW)構成を示すブロック図である。モデル生成装置1の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが図2に例示するHW構成を備えてよい。
【0022】
図2に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、グラフィック処理装置10b、メモリ10c、記憶部10d、IF(Interface)部10e、IO(Input / Output)部10f、及び読取部10gを備えてよい。
【0023】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例であり、種々の処理を実行する制御部である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10jで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0024】
プロセッサ10aとしては、例えば、CPU、MPU、APU、DSP、ASIC、FPGA等の集積回路(IC;integrated circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0025】
グラフィック処理装置10bは、IO部10fのうちのモニタ等の出力装置に対する画面表示制御を行なう。また、グラフィック処理装置10bは、機械学習モデル(AIモデル201,補助AIモデル202)を利用した機械学習処理及び推論処理を実行するアクセラレータとしての構成を有してよい。グラフィック処理装置10bとしては、種々の演算処理装置、例えば、GPU(Graphics Processing Unit)、APU、DSP、ASICまたはFPGA等の集積回路(IC)が挙げられる。
【0026】
メモリ10cは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10cとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方または双方が挙げられる。
【0027】
記憶部10dは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10dとしては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid State Drive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0028】
記憶部10dは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10hを格納してよい。プログラム10hは、訓練プログラムおよび情報処理プログラムを含んでよい。
【0029】
例えば、モデル生成装置1のプロセッサ10aは、記憶部10dに格納されたプログラム(情報処理プログラム)10hをメモリ10cに展開して実行することにより、後述するサンプリング機能を実現できる。
【0030】
また、プロセッサ10aは、記憶部10dに格納されたプログラム(訓練プログラム)10hをメモリ10cに展開して実行することにより、後述するモデル生成機能を実現できる。
【0031】
IF部10eは、本コンピュータ10と他のコンピュータとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10eは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方または双方の通信方式に対応してよい。
【0032】
例えば、モデル生成装置1は、IF部10e及びネットワークを介して、図示しない他の情報処理装置やデータベースと相互に通信可能に接続されてよい。なお、プログラム10hは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10dに格納されてもよい。
【0033】
IO部10fは、入力装置、及び、出力装置、の一方または双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。また、IO部10fは、入力装置及び出力装置が一体となったタッチパネル等を含んでもよい。出力装置は、グラフィック処理装置10bに接続されてよい。
【0034】
読取部10gは、記録媒体10iに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10gは、記録媒体10iを接続可能または挿入可能な接続端子または装置を含んでよい。読取部10gとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10iにはプログラム10hが格納されてもよく、読取部10gが記録媒体10iからプログラム10hを読み出して記憶部10dに格納してもよい。
【0035】
記録媒体10iとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0036】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、または、バスの追加若しくは削除等は適宜行なわれてもよい。
【0037】
(A-2)機能構成例
図1に示すように、モデル生成装置1は、例示的に、サンプリング処理部110,データセット生成部104およびAI訓練処理部105としての機能を備えてよい。これらの機能は、コンピュータ10(図2参照)のハードウェアにより実現されてよい。
【0038】
サンプリング処理部110は、複数のデータ(全体データ)の中からAIモデル201の訓練(機械学習)に用いるためのデータ(サンプリングデータ)をサンプリングする。全体データに含まれる複数のデータは、サンプリング候補のデータ群である。
サンプリング処理部110としての機能(サンプリング機能)は、プロセッサ10aが上述した情報処理プログラムを実行することで実現される。
【0039】
サンプリング処理部110は、図1に示すように、補助AI処理部101およびデータ抽出部102としての機能を有する。
【0040】
補助AI処理部101は、補助AIモデル202に対する種々の処理を行なう。
補助AIモデル202は、AIモデル201にデータを入力して得られる出力(予測値,推定値)と正解データ(正解値)とのずれを表す損失値を予測する機械学習モデルである。
【0041】
損失値が大きいデータは、AIモデル201が正解を得るための難易度が高いデータであるといえる。損失値はデータの正解に導くための難易度を表す。以下、損失値を難易度という場合がある。
【0042】
入力データに対するAIモデル201(第1のAIモデル)の予測結果と正解との差(誤差)を示す第1の損失値を主損失値といってよい。補助AIモデル202は主損失値を予測する。補助AIモデル202が予測することで得られる主損失値の予測値を予測損失値といってよい。
【0043】
補助AIモデル202は、AIモデル201(第1のAIモデル)に対する入力データと、当該入力データに対するAIモデル201の予測結果と正解との差を示す主損失値(第1の損失値)とを対応付けたデータセット(訓練データ)を用いた機械学習により訓練される。
【0044】
補助AIモデル202は、サンプリング候補のデータ群である複数のデータを入力することで、これらの複数のデータそれぞれについての主損失値(第1の損失値)を予測して予測損失値を出力する第2のAIモデルに相当する。
【0045】
補助AI処理部101は、補助AIモデル202に、サンプリング候補のデータ群である複数のデータを入力することで、これらの複数のデータそれぞれについての予測損失値を取得する。
【0046】
補助AIモデル202は、ハードウェア回路であってもよいし、プロセッサ10a(図2参照)等によりコンピュータプログラム上で仮想的に構築される階層間を接続するソフトウェアによる仮想的なネットワークであってもよい。
【0047】
補助AIモデル202は、入力層と出力層との間に複数の隠れ層を含むディープニューラルネットワークであってよい。
【0048】
補助AI処理部101は、全体データ(サンプリング候補のデータ群)から取り出したデータを補助AIモデル202に入力することで、当該データをAIモデル201に入力した場合に得られる出力(予測値,推定値)と正解データ(正解値)とのずれを表す主損失の予測値である予測損失値を取得する。
【0049】
補助AI処理部101は、全体データの全てのデータを補助AIモデル202に入力し、これらのデータのそれぞれに対する予測損失値を取得する。
【0050】
この際、補助AI処理部101は、全体データのデータをそれぞれ個別に補助AIモデル202に入力する。補助AI処理部101は、1つのデータを補助AIモデル202に入力することで、この1つのデータに対応する1つの予測損失値(難易度)を得る。
【0051】
補助AI処理部101は、取得した、全体データの全てのデータのそれぞれに対する予測損失値を、記憶部10dの所定の記憶領域等に記憶させてよい。
【0052】
補助AI処理部101は、全体データに含まれる各データを特定する情報と、各データに対応する予測損失値とを対応付けて、難易度情報103を作成する。補助AI処理部101は、作成した難易度情報103を、記憶部10dの所定の記憶領域等に記憶させてよい。
【0053】
図3は実施形態の一例としてのモデル生成装置1の難易度情報103を例示する図である。
この図3に例示する難易度情報103は、データと難易度とを対応付けたテーブルとして示されている。難易度情報103におけるデータは、全体データに含まれるデータを特定する情報である。データを特定する情報は、例えば、ファイル名や識別情報であってよい。また、難易度情報103において、難易度は、データを補助AIモデル202に入力することで得られる予測損失値である。
【0054】
この図3においては、全体データがN個のデータを含んでいる例を示している。また、これらのN個のデータは、難易度の値に基づいて降順にソートされている。すなわち、図3に例示する難易度情報103においては、全データを構成する複数のデータ(サンプリング候補のデータ群)が、ランキング付けされ、難易度が高いものから順に並べられている。
【0055】
これにより、この難易度情報103を参照することで、全体データの中から、難易度が上位のデータや、難易度が閾値以上のデータを容易に抽出することができる。
【0056】
難易度の値が大きい(難易度が高い)データは、AIモデル201にとって、より認識しづらいデータである。このような難易度が高いデータは、AIモデル201が充分に学習できていない特徴情報を含み、訓練データ(データセット)に加えることでAIモデル201の認識精度を大きく向上させる期待が高いデータと言える。
【0057】
図3においては、データと難易度とを対応付けたテーブルとして示された難易度情報103を示しているが、これに限定されるものではない。難易度情報103はテーブル以外のフォーマットを有してもよく、適宜変更して実施することができる。
【0058】
図4は実施形態の一例としてのモデル生成装置1の補助AI処理部101の処理を説明するための図である。
この図4においては、補助AI処理部101が、全体データのN個のデータに対して行なう処理を例示している。
【0059】
補助AI処理部101は、全体データに含まれる全て(N個)のデータを、順次、補助AIモデル202に入力し、各データをAIモデル201に入力して得られる予測結果についての損失値(主損失値,難易度)を、それぞれ予測(判定)させる。これにより、補助AI処理部101は、サンプリング候補の各データについて、各データの主損失値を予測した予測損失値を取得する。
【0060】
補助AI処理部101は、補助AIモデル202を用いて、全体データに含まれる各データに対する難易度を予測するといってよい。
【0061】
補助AI処理部101は、データを補助AIモデル202に入力することによって出力される予測損失値を、当該データを特定する情報に対応付けて、難易度情報103に登録する。
【0062】
また、補助AI処理部101は、補助AIモデル202の訓練(機械学習)を行なう。補助AIモデル202の訓練には、後述するデータセット生成部104が生成したデータセットに含まれるサンプリングデータをAIモデル201に入力することで得られる予測結果(予測値,推定値)と、当該データセットにおける正解データ(正解値)との差(ずれ,誤差)を表す損失値(第1の損失値)を正解データとして用いる。
【0063】
データをAIモデル201に入力することで得られる予測結果と正解データ(正解値)との差を表す損失値を第1損失値といってよい。第1損失値は、後述するAI訓練処理部105により算出される。
【0064】
補助AI処理部101は、データセット生成部104が生成したデータセットに含まれるサンプリングデータを補助AIモデル202の入力層に入力する。補助AI処理部101は、補助AIモデル202に対して、畳み込み層やプーリング層などで構成される隠れ層にて所定の計算を順次実行させることで、演算により得られる情報を入力側から出力側に順次伝えるフォーワッド方向の処理(順伝播処理)を実行させる。
【0065】
また、補助AI処理部101は、データセットに含まれるサンプリングデータをAIモデル201に入力することで得られる予測結果に関する第1損失値を取得する。
【0066】
補助AI処理部101は、フォーワッド方向の処理の実行後、補助AIモデル202の出力層から出力される予測結果と、正解データである第1損失値とから得られる誤差関数(損失関数)の値(第2損失値)を小さくするために、フォーワッド方向の処理で使用するパラメータを決定するバックワード方向の処理(逆伝播処理)を実行させる。そして、補助AI処理部101は、逆伝播処理の結果に基づいて補助AIモデル202の重み等の変数を更新する更新処理を実行する。例えば、逆伝播処理の計算に使用される重みの更新幅を決定するアルゴリズムとして、勾配降下法が使用されてよい。
【0067】
補助AI処理部101は、データを補助AIモデル202に入力することで得られる予測結果と正解データ(正解値)との差を表す第2損失値を算出するのである。
【0068】
補助AI処理部101は、損失関数を用いて第2損失値を算出する。第2損失値の算出に用いられる損失関数を第2の損失関数といってよい。
【0069】
なお、補助AI処理部101としての機能および後述するAI訓練処理部105としての機能(モデル生成機能)は、プロセッサ10aが上述した訓練プログラムを実行することで実現される。
【0070】
データ抽出部102は、難易度情報103を参照して、全体データの中からサンプリングデータを抽出する。
【0071】
データ抽出部102は、全体データの中から難易度が高いデータを優先して抽出する。例えば、データ抽出部102は、難易度情報103を参照して、全体データの中から、難易度が高いものから順に、所定数(サンプリング数:例えば、100個)のデータを抽出(選択)してよい。また、データ抽出部102は、全体データの中から難易度が所定の閾値以上のデータを抽出してよい。
【0072】
データ抽出部102が全体データから抽出したデータはサンプリングデータとして用いられる。データ抽出部102は、抽出したサンプリングデータもしくは抽出したサンプリングデータを特定する情報を記憶部10dの所定の記憶領域等に記憶させてよい。
【0073】
データ抽出部102が抽出したサンプリングデータに対して、正解データの付与(アノテーション)が行なわれる。アノテーションは、例えばユーザが行なってもよく、また、データセット生成部104が既知の手法を用いて行なってもよい。
【0074】
データセット生成部104は、サンプリングデータに対して、アノテーションにより生成された正解データを対応させてデータセットを生成する。
【0075】
データセット生成部104は、生成したデータセットを、記憶部10dの所定の記憶領域等に記憶させる。
【0076】
記憶部10dの所定の記憶領域等に、先に作成されたデータセットがすでに記憶されている場合には、データセット生成部104は、先に作成されたデータセットに、新たに生成したデータセットを追加することでデータセットを拡充する。
【0077】
AI訓練処理部105は、AIモデル201の訓練を実施する。AI訓練処理部105は、データセットに含まれるサンプリングデータをAIモデル201の入力層に入力する。
【0078】
AI訓練処理部105は、AIモデル201の訓練において、データセットに含まれる正解データを正解データとして用いる。
【0079】
AI訓練処理部105は、AIモデル201に対して、畳み込み層やプーリング層などで構成される隠れ層にて所定の計算を順次実行させることで、演算により得られる情報を入力側から出力側に順次伝えるフォーワッド方向の処理(順伝播処理)を実行させる。
【0080】
フォーワッド方向の処理の実行後、AI訓練処理部105は、出力層から出力される出力データと正解データとから得られる誤差関数(損失関数)の値を小さくするために、フォーワッド方向の処理で使用するパラメータを決定するバックワード方向の処理(逆伝播処理)を実行させる。そして、AI訓練処理部105は、逆伝播処理の結果に基づいてAIモデル201の重み等の変数を更新する更新処理を実行する。例えば、逆伝播処理の計算に使用される重みの更新幅を決定するアルゴリズムとして、勾配降下法が使用されてよい。
【0081】
AI訓練処理部105は、データをAIモデル201に入力することで得られる予測結果と正解データ(正解値)との差を表す第1損失値(第1の損失値)を算出するのである。
【0082】
AI訓練処理部105は、損失関数を用いて第1損失値を算出する。第1損失値の算出に用いられる損失関数を第1の損失関数といってよい。
【0083】
(B)動作
上述の如く構成された実施形態の一例としてのモデル生成装置1の処理の概要を、図5を用いて説明する。以下の処理は、AIモデル201の訓練フェーズの処理を示す。
【0084】
データ抽出部102が、全体データの中からAIモデル201の訓練に用いるサンプリングデータを抽出するサンプリングを行なう(符号A1)。
【0085】
この際、データ抽出部102は、難易度情報103を参照する(符号A2)。既に難易度情報103が作成されている場合には、データ抽出部102は、全体データの中から(符号A3)、難易度情報103において難易度が高いものから順に、所定数(サンプリング数)のデータをサンプリングする。
【0086】
また、初回実行時等の理由で難易度情報103が存在しない場合には、データ抽出部102は、全体データの中からランダムに選択する等の既知の手法を用いてサンプリングを行なう。
【0087】
データ抽出部102は、全体データから抽出したサンプリングデータを、記憶部10dの所定の記憶領域等に記憶させる。また、先に抽出されたサンプリングデータが記憶部10dの所定の記憶領域等に既に記憶されている場合には、データ抽出部102は、抽出したサンプリングデータを既存のサンプリングデータに追加することで、サンプリングデータを拡充させる(符号A4)。
【0088】
例えば、ユーザが、各サンプリングデータに対して(符号A5)、アノテーションを行なうことで正解データを設定する(符号A6)。データセット生成部104が、サンプリングデータに対してアノテーションにより生成された正解データを対応付けることでデータセットを生成する。
【0089】
データセット生成部104が、生成したデータセットを記憶部10dの所定の記憶領域等に記憶させる(符号A7)。また、既にデータセットが作成され、記憶部10dの所定の記憶領域等にデータセットが記憶されている場合には、データセット生成部104は、先に作成されたデータセットに、新たに生成したデータセットを追加することでデータセットを拡充する。
【0090】
AI訓練処理部105が、データセットを取得(参照)し(符号A8)、AIモデル201の作成(訓練)を行なう(符号A9)。
【0091】
また、補助AI処理部101は、補助AIモデル202の作成(訓練)を行なう(符号A10)。この際、補助AI処理部101は、データセットに含まれるサンプリングデータを補助AIモデル202に入力するとともに、当該データセットを用いたAIモデル201の訓練に際して算出された第1損失値を正解データとして用いる。
【0092】
補助AIモデル202の訓練はAIモデル201の訓練と並行して行なわれ、補助AI処理部101は、直前にAIモデル201の訓練および評価に用いられた第1損失値を用いて補助AIモデル202の訓練を行なう。
【0093】
AI訓練処理部105は、AIモデル201の精度もしくは性能を評価する(符号A11)。例えば、AI訓練処理部105は、AIモデル201による予測値と正解データとの差に基づいて、AIモデル201の精度もしくは性能を評価してよい。AIモデル201の精度もしくは性能を精度・性能と表してよい。
【0094】
評価の結果、AIモデル201の精度・性能が所定の閾値以上となり、仕様上充分である場合には(A11のYesルート参照)、AIモデル201の生成処理を終了する。
【0095】
一方、AIモデル201の精度・性能が不充分である場合には(A11のNoルート参照)、補助AI処理部101が、全体データを構成する各データを補助AIモデル202に入力し(符号A12)、各データの予測損失値(難易度)を予測させる(符号A13)。補助AI処理部101は、算出された各予測損失値を用いて難易度情報103を生成(更新)する(符号A14)。その後、符号A1~符号A14に示した処理が繰り返し実行される。
【0096】
上述した、A1~A14の処理によるサイクルを2回以上繰り返すことで、2回目以降のサイクルでのサンプリング処理において、データ抽出部102が、難易度情報103を参照したサンプリングを実施することができる。
【0097】
次に、実施形態の一例としてのモデル生成装置1におけるAIモデル201および補助AIモデル202の作成(訓練)処理を、図6を用いて説明する。
【0098】
AIモデル201の訓練フェーズにおいて、データセット生成部104により生成されたデータセットのサンプリングデータは、AIモデル201と補助AIモデル202とのそれぞれに入力データとして入力される(符号B1)。
【0099】
AI訓練処理部105は、AIモデル201に入力データ(サンプリングデータ)を入力させてAIモデル201に予測(推定)を行なわせる(符号B2)。
【0100】
AI訓練処理部105は、入力データをAIモデル201に入力することで得られる予測結果とデータセットから抽出した正解データ(正解値)とに基づき、第1の損失関数を用いて第1損失値(予測損失値)を算出する(符号B3)。
【0101】
AI訓練処理部105は、第1損失値を小さくようにAIモデル201の重み等のパラメータ更新する更新処理を実行することで、AIモデル201の訓練を実施する。
【0102】
また、補助AI処理部101が、補助AIモデル202に入力データ(サンプリングデータ)を入力させて補助AIモデル202に予測(推定)を行なわせる(符号B4)。
【0103】
補助AI処理部101は、データを補助AIモデル202に入力することで得られる予測結果と、AIモデル201が同じ入力データを用いて推論を行なった結果得られた第1損失値(正解データ)とに基づき、第2の損失関数を用いて第2損失値(予測損失値)を算出する(符号B5)。
【0104】
補助AI処理部101は、第2損失値を小さくするように補助AIモデル202の重み等のパラメータ更新する更新処理を実行することで、補助AIモデル202の訓練を実施する。
【0105】
次に、実施形態の一例としてのモデル生成装置1の処理を、図7に示すフローチャート(ステップC1~C7)に従って説明する。
【0106】
ステップC1において、データ抽出部102が、難易度情報103を参照する。
ステップC2において、データ抽出部102が、全体データの中からAIモデル201の訓練に用いるサンプリングデータを抽出する。ここで、ステップC1における参照の結果、難易度情報103がある場合には、データ抽出部102は、全体データの中から、難易度情報103において難易度が高いものから順に、所定数のデータをサンプリングする。
【0107】
また、初回実行時等の理由で難易度情報103が存在しない場合には、データ抽出部102が、全体データの中からランダムに選択する等の既知の手法を用いて、サンプリングを行なう。
【0108】
ステップC3において、例えば、ユーザがアノテーションを行なってサンプリングデータに正解データを設定する。データセット生成部104が、サンプリングデータに対して、アノテーションにより生成された正解データを対応させることでデータセットを生成する。
【0109】
ステップC4において、AI訓練処理部105が、データセットを用いてAIモデル201の訓練を実行する。また、この際、AI訓練処理部105が、第1の損失関数を用いて第1損失値を算出する。
【0110】
AI訓練処理部105によるAIモデル201の訓練と並行して、補助AI処理部101が補助AIモデル202の訓練を行なう。補助AI処理部101は、データセットに含まれるサンプリングデータを補助AIモデル202に入力するとともに、当該データセットを用いたAIモデル201の訓練に際して算出された第1損失値を正解データとして用いて、補助AIモデル202の訓練を行なう。
【0111】
ステップC5において、AI訓練処理部105が、AIモデル201の精度・性能を評価する。例えば、AI訓練処理部105は、AIモデル201の精度・性能が所定の閾値以上であるかを判断する。
【0112】
この評価の結果、AIモデル201の精度・性能が所定の閾値以上となり、仕様上充分である場合には(ステップC5のYESルート参照)、処理を終了する。
【0113】
一方、AIモデル201の精度・性能が所定の閾値未満であり、不充分である場合には(ステップC5のNOルート参照)、ステップC6に移行する。
【0114】
ステップC6において、補助AI処理部101が、全体データを構成する各データを補助AIモデル202に入力し、各データの損失(難易度)を予測させる。
【0115】
ステップC7において、補助AI処理部101は、算出された予測損失を用いて難易度情報103を作成する。また、既に難易度情報103がある場合には、補助AI処理部101は、算出した予測損失を難易度情報103に追加することで難易度情報103を更新する。その後、ステップC1に戻る。
【0116】
次に、実施形態の一例としてのモデル生成装置1の補助AI処理部101の処理を、図8に示すフローチャート(ステップD1~D3)に従って説明する。
【0117】
ステップD1において、補助AI処理部101は、全体データの全てのデータを補助AIモデル202に順次入力することで、各データに対する予測損失値を予測する。
【0118】
ステップD2において、補助AI処理部101は、全体データの各データについて、各データに基づいて補助AIモデル202が予測した予測損失値(難易度)を対応付けることで、難易度情報103を作成する。
【0119】
また、既に難易度情報103が作成されている場合には、補助AI処理部101は、算出した予測損失を用いて難易度情報103を更新する。
【0120】
ステップD3において、補助AI処理部101は、補助AIモデル202の訓練を行なう。この際、補助AI処理部101は、補助AIモデル202の訓練に、サンプリングデータをAIモデル201に入力することで得られる予測結果に関する第1損失値を正解データとして用いる。その後、処理を終了する。
【0121】
なお、図8に示すフローチャートにおいて、ステップD3に示す処理は、ステップD1やステップD2よりも前に行なってもよく、適宜変更して実施することができる。
【0122】
(C)効果
このように、実施形態の一例としてのモデル生成装置1によれば、データ抽出部102が、訓練データを生成するためのサンプリングにおいて、難易度情報103を参照して、全体データから難易度が高いデータを優先して抽出する。これにより、AIモデル201の精度向上に寄与しやすいデータを自動的かつ客観的に厳選することができ、AIモデル201の精度向上に寄与する訓練データを効率的に作成することができる。
【0123】
難易度が高いデータは、AIモデル201が充分に学習できていない特徴情報を含み、訓練データに加えることでAIモデル201の認識精度を大きく向上させる期待が高いデータと言えるからである。
【0124】
補助AI処理部101が、データを補助AIモデル202に入力することによって出力される予測損失値を、当該データを特定する情報に対応付けて、難易度情報103に登録することで、難易度情報103を容易に作成することができる。
【0125】
また、補助AI処理部101が、直前にAIモデル201の訓練および評価に用いられた第1損失値を用いて補助AIモデル202の訓練を行なうことで、補助AIモデル202の訓練をAIモデル201の訓練と並行して行なう。これにより、補助AIモデル202にAIモデル201の性能がリアルタイムに反映され、難易度情報103の信頼性を向上させることができ、AIモデル201の精度向上に寄与しやすいデータを効率的に作成することができる。
【0126】
また、アノテーション1データあたりの認識精度向上幅を増大、あるいは単位認識精度向上あたりのアノテーションデータ数を削減することができる。従って、AIモデル201の作成作業全体の省力化を実現できるとともに、AIモデル201の認識精度を向上させることができる。
【0127】
また、補助AIモデル202の訓練には、AIモデル201に入力されたのと同じデータセットのサンプリングデータと、並行して行なわれたAIモデル201の訓練および評価に用いられた第1損失値とが用いられる。これにより、補助AIモデル202の訓練のために追加の入力データや正解データを用意する必要がなく、低コストで実現することができる。
【0128】
図9は実施形態の一例としてのモデル生成装置1による効果を説明するための図である。
この図9においては、本モデル生成装置1により訓練したAIモデル201と、全体データの中からサンプリングデータをランダムに抽出する従来手法でサンプリングしたサンプリングデータで訓練したAIモデルとで、サイクル毎の精度の変化を比較して示す。
【0129】
また、この図9においては、全体データからサイクル毎に100枚のデータをサンプリングしてデータセットを拡充した例を示す。
【0130】
この図9に示すように、本モデル生成装置1により訓練したAIモデル201の方が、従来手法でサンプリングしたサンプリングデータで訓練したAIモデルに比べて精度が向上していることがわかる。
【0131】
(D)その他
本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0132】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【0133】
例えば、上述した実施形態においては、データ抽出部102が、難易度情報103を参照して、全体データの中から、難易度が高いものから順にサンプリング数(例えば、100個)のサンプリングデータを抽出している。すなわち、データ抽出部102が、全てのサンプリングデータを難易度情報103を参照して抽出しているが、これに限定されるものではない。
【0134】
例えば、データ抽出部102は、サンプリング数のうちの一部(例えば、50個)のサンプリングデータを、難易度情報103を参照して全体データの中から難易度が高いものから順に選択することで抽出し、サンプリング数のうちの残りを全体データから他の手法を用いて抽出してもよい。
【0135】
例えば、データ抽出部102は、サンプリング数(例えば、100個)のうちの一部(例えば、50個)のサンプリングデータを、難易度情報103を参照して全体データの中から難易度が高いものから順に選択することで抽出する。そして、データ抽出部102は、サンプリング数のうちの残り(例えば、50個)を全体データからランダムに選択することで抽出してもよい。
【0136】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0137】
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
入力データに応じた予測結果の出力を行なう第1のAIモデルに対する入力データと、当該入力データに対する前記第1のAIモデルの予測結果と正解との差を示す第1の損失値とを対応付けた訓練データを用いた機械学習により訓練された、第2のAIモデルに複数のデータを入力することで、前記複数のデータそれぞれについての前記第1の損失値の予測値を取得し、
取得した前記第1の損失値の予測値に基づいて、前記複数のデータの中から、前記第1のAIモデルの前記訓練データに用いるデータを選択する
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【0138】
(付記2)
前記訓練データに用いるデータを選択する処理は、前記複数のデータの中から、前記第1の損失値の予測値が高いデータを優先して選択する
処理を含むことを特徴とする付記1に記載の情報処理プログラム。
【0139】
(付記3)
入力データに対する第1のAIモデルの予測結果と正解との差を示す第1の損失値を取得し、
前記入力データと前記第1の損失値とを対応付けた訓練データを用いて、入力データに対する第1の損失値を予測する第2のAIモデルの訓練を行なう、
処理をコンピュータに実行させることを特徴とする訓練プログラム。
【0140】
(付記4)
入力データに応じた予測結果の出力を行なう第1のAIモデルに対する入力データと、当該入力データに対する前記第1のAIモデルの予測結果と正解との差を示す第1の損失値とを対応付けた訓練データを用いた機械学習により訓練された、第2のAIモデルに複数のデータを入力することで、前記複数のデータそれぞれについての前記第1の損失値の予測値を取得し、
取得した前記第1の損失値の予測値に基づいて、前記複数のデータの中から、前記第1のAIモデルの前記訓練データに用いるデータを選択する
処理をコンピュータが実行することを特徴とする情報処理方法。
【0141】
(付記5)
前記訓練データに用いるデータを選択する処理は、前記複数のデータの中から、前記第1の損失値の予測値が高いデータを優先して選択する
処理を含むことを特徴とする付記4に記載の情報処理方法。
【0142】
(付記6)
入力データに対する第1のAIモデルの予測結果と正解との差を示す第1の損失値を取得し、
前記入力データと前記第1の損失値とを対応付けた訓練データを用いて、入力データに対する第1の損失値を予測する第2のAIモデルの訓練を行なう、
処理をコンピュータが実行することを特徴とする訓練方法。
【0143】
(付記7)
入力データに応じた予測結果の出力を行なう第1のAIモデルに対する入力データと、当該入力データに対する前記第1のAIモデルの予測結果と正解との差を示す第1の損失値とを対応付けた訓練データを用いた機械学習により訓練された、第2のAIモデルに複数のデータを入力することで、前記複数のデータそれぞれについての前記第1の損失値の予測値を取得し、
取得した前記第1の損失値の予測値に基づいて、前記複数のデータの中から、前記第1のAIモデルの前記訓練データに用いるデータを選択する
処理を実行する制御部を含むことを特徴とする情報処理装置。
【0144】
(付記8)
前記制御部は、
前記訓練データに用いるデータを選択する処理において、前記複数のデータの中から、前記第1の損失値の予測値が高いデータを優先して選択する
ことを特徴とする付記7に記載の情報処理装置。
【0145】
(付記9)
入力データに対する第1のAIモデルの予測結果と正解との差を示す第1の損失値を取得し、
前記入力データと前記第1の損失値とを対応付けた訓練データを用いて、入力データに対する第1の損失値を予測する第2のAIモデルの訓練を行なう、
処理を実行する制御部を含むことを特徴とする情報処理装置。
【符号の説明】
【0146】
1 モデル生成装置
10 コンピュータ
10a プロセッサ(制御部)
10b グラフィック処理装置
10c メモリ
10d 記憶部
10e IF部
10f IO部
10g 読取部
10h プログラム
10i 記録媒体
10j バス
101 補助AI処理部
102 データ抽出部
103 難易度情報
104 データセット生成部
105 AI訓練処理部
110 サンプリング処理部
201 AIモデル
202 補助AIモデル
図1
図2
図3
図4
図5
図6
図7
図8
図9