(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024130689
(43)【公開日】2024-09-30
(54)【発明の名称】パラメータ修正プログラム、パラメータ修正方法および情報処理装置
(51)【国際特許分類】
G06N 3/09 20230101AFI20240920BHJP
【FI】
G06N3/09
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023040550
(22)【出願日】2023-03-15
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】宗像 聡
(57)【要約】
【課題】修正後の機械学習モデルの分類精度を向上させる。
【解決手段】情報処理装置10は、第1の特徴量と複数のクラスのうちの正解クラスを示すラベルとを含むサンプル15から、特徴量空間の中で第1の特徴量を含む領域を特定し、領域内の第2の特徴量とラベルとを含むサンプル16を生成する。情報処理装置10は、機械学習モデル13に含まれるパラメータ値14と、機械学習モデル13によって第2の特徴量から算出される複数のクラスそれぞれのクラス確率との関係に基づいて、複数のクラスの中での正解クラスのクラス確率の相対値が、パラメータ値14の修正後にパラメータ値14の修正前よりも減少しないことを示す制約情報17を生成する。情報処理装置10は、制約情報17を満たすように、パラメータ値14を修正する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1の特徴量と複数のクラスのうちの正解クラスを示すラベルとを含む第1のサンプルから、特徴量空間の中で前記第1の特徴量を含む領域を特定し、前記領域内の第2の特徴量と前記ラベルとを含む第2のサンプルを生成し、
機械学習モデルに含まれるパラメータ値と、前記機械学習モデルによって前記第2の特徴量から算出される前記複数のクラスそれぞれのクラス確率との関係に基づいて、前記複数のクラスの中での前記正解クラスの前記クラス確率の相対値が、前記パラメータ値の修正後に前記パラメータ値の修正前よりも減少しないことを示す制約情報を生成し、
前記制約情報を満たすように、前記パラメータ値を修正する、
処理をコンピュータに実行させるパラメータ修正プログラム。
【請求項2】
前記パラメータ値と、前記機械学習モデルによって前記第1の特徴量から算出される前記複数のクラスそれぞれの他のクラス確率との関係に基づいて、前記パラメータ値の修正後に、前記複数のクラスの中で前記正解クラスの前記他のクラス確率が最大であることを示す他の制約情報を生成する処理を、前記コンピュータに更に実行させ、
前記パラメータ値は、前記制約情報と前記他の制約情報とを満たすように修正される、
請求項1記載のパラメータ修正プログラム。
【請求項3】
前記第2のサンプルの生成は、前記第1のサンプルを含む複数の第1のサンプルに対応する、前記第1の特徴量を含む複数の第1の特徴量に対してクラスタリングを行うことで、前記領域を特定する処理を含む、
請求項1記載のパラメータ修正プログラム。
【請求項4】
前記機械学習モデルはニューラルネットワークであり、
前記第1の特徴量および前記第2の特徴量は、前記ニューラルネットワークに含まれる複数の層のうち、前記パラメータ値を含む層に入力される入力値である、
請求項1記載のパラメータ修正プログラム。
【請求項5】
第1の特徴量と複数のクラスのうちの正解クラスを示すラベルとを含む第1のサンプルから、特徴量空間の中で前記第1の特徴量を含む領域を特定し、前記領域内の第2の特徴量と前記ラベルとを含む第2のサンプルを生成し、
機械学習モデルに含まれるパラメータ値と、前記機械学習モデルによって前記第2の特徴量から算出される前記複数のクラスそれぞれのクラス確率との関係に基づいて、前記複数のクラスの中での前記正解クラスの前記クラス確率の相対値が、前記パラメータ値の修正後に前記パラメータ値の修正前よりも減少しないことを示す制約情報を生成し、
前記制約情報を満たすように、前記パラメータ値を修正する、
処理をコンピュータが実行するパラメータ修正方法。
【請求項6】
パラメータ値を含む機械学習モデルと、第1の特徴量と複数のクラスのうちの正解クラスを示すラベルとを含む第1のサンプルとを記憶する記憶部と、
前記第1のサンプルから、特徴量空間の中で前記第1の特徴量を含む領域を特定し、前記領域内の第2の特徴量と前記ラベルとを含む第2のサンプルを生成し、前記パラメータ値と、前記機械学習モデルによって前記第2の特徴量から算出される前記複数のクラスそれぞれのクラス確率との関係に基づいて、前記複数のクラスの中での前記正解クラスの前記クラス確率の相対値が、前記パラメータ値の修正後に前記パラメータ値の修正前よりも減少しないことを示す制約情報を生成し、前記制約情報を満たすように、前記パラメータ値を修正する処理部と、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はパラメータ修正プログラム、パラメータ修正方法および情報処理装置に関する。
【背景技術】
【0002】
コンピュータは、訓練データを用いた機械学習によって、クラス分類を行う機械学習モデルを訓練することがある。ただし、機械学習の性質上、機械学習モデルの誤分類をゼロにすることは難しい。これに対して、ユーザは、少数の重要な事例について誤分類が解消されるように、機械学習モデルを修正したいことがある。そこで、コンピュータは、機械学習モデル全体を再訓練する代わりに、訓練された機械学習モデルに含まれるパラメータ値を微調整するモデル修正を行うことがある。
【0003】
モデル修正技術の例として、現在の機械学習モデルとサンプルデータ群とから、パラメータ値が満たすべき制約を示す連立不等式を生成し、制約を満たすパラメータ値を線形ソルバによって探索する技術が提案されている。
【0004】
提案のモデル修正技術は、入力データと正解クラスとを対応付けた複数のサンプルを受け付ける。複数のサンプルの中には、現在の機械学習モデルによって正解クラスに分類されており、その分類結果を維持したいサンプルが含まれることがある。また、複数のサンプルの中には、現在の機械学習モデルによって誤ったクラスに分類されており、その分類結果を訂正したいサンプルが含まれることがある。提案のモデル修正技術は、これらサンプルが正しく分類される範囲で、修正量が最小のパラメータ値を探索する。
【0005】
なお、ニューラルネットワークを更新する機械学習において、新たなデータに対する予測誤差に基づいて当該データの異質度を算出し、異質度が閾値未満の場合に当該データを訓練データに追加する学習装置が提案されている。また、データを正例と負例に分類する機械学習モデルを訓練するランキング学習において、訓練データに含まれない特徴をもつデータが負例に分類されやすくなるよう制御する機械学習装置が提案されている。
【0006】
また、線形計画ソルバと二次計画ソルバを利用して、制約条件付き線形関数の最適解を算出するシステムが提案されている。また、ニューラルネットワークの機械学習の間に、エッジの追加や削除と、ノードの追加や削除を行うシステムが提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平5-54014号公報
【特許文献2】特開2015-1968号公報
【特許文献3】米国特許出願公開第2015/0286611号明細書
【特許文献4】米国特許出願公開第2021/0027163号明細書
【非特許文献】
【0008】
【非特許文献1】Ben Goldberger, Yossi Adi, Joseph Keshet and Guy Katz, "Minimal Modifications of Deep Neural Networks using Verification", Proc. of the 23rd International Conference on Logic for Programming, Artificial Intelligence and Reasoning (LPAR23), pp. 260-278, May 2020
【非特許文献2】Muhammad Usman, Divya Gopinath, Youcheng Sun, Yannic Noller and Corina S. Pasareanu, "NNREPAIR: Constraint-Based Repair of Neural Network Classifiers", Proc. of the 33rd International Conference on Computer Aided Verification (CAV2021), pp. 3-25, July 2021
【非特許文献3】Shuo Sun, Jun Yan and Rongjie Yan, "Layer-Specific Repair of Neural Network Classifiers", Proc. of the 31st International Conference on Artificial Neural Networks (ICANN2022), pp. 550-561, September 2022
【発明の概要】
【発明が解決しようとする課題】
【0009】
非特許文献1~3などのモデル修正技術は、与えられた既知のサンプルを正しく分類するようにパラメータ値を修正する。しかし、このモデル修正技術は、既知のサンプルと異なる未知の入力データの分類結果を考慮しない。このため、未知の入力データの分類精度が低下するという退行が発生するおそれがある。一方、与えるサンプルを単に増やしてしまうと、誤分類をゼロにすることが困難であるという機械学習モデルの性質上、パラメータ値の修正が適切に行われなくなるおそれがある。そこで、1つの側面では、本発明は、修正後の機械学習モデルの分類精度を向上させることを目的とする。
【課題を解決するための手段】
【0010】
1つの態様では、以下の処理をコンピュータに実行させるパラメータ修正プログラムが提供される。第1の特徴量と複数のクラスのうちの正解クラスを示すラベルとを含む第1のサンプルから、特徴量空間の中で第1の特徴量を含む領域を特定し、領域内の第2の特徴量とラベルとを含む第2のサンプルを生成する。機械学習モデルに含まれるパラメータ値と、機械学習モデルによって第2の特徴量から算出される複数のクラスそれぞれのクラス確率との関係に基づいて、複数のクラスの中での正解クラスのクラス確率の相対値が、パラメータ値の修正後にパラメータ値の修正前よりも減少しないことを示す制約情報を生成する。制約情報を満たすように、パラメータ値を修正する。
【0011】
また、1つの態様では、コンピュータが実行するパラメータ修正方法が提供される。また、1つの態様では、記憶部と処理部とを有する情報処理装置が提供される。
【発明の効果】
【0012】
1つの側面では、修正後の機械学習モデルの分類精度が向上する。
【図面の簡単な説明】
【0013】
【
図1】第1の実施の形態の情報処理装置を説明するための図である。
【
図2】第2の実施の形態の情報処理装置のハードウェア例を示す図である。
【
図3】ニューラルネットワークの例を示す図である。
【
図4】特徴空間への既知事例および未知事例のマッピング例を示す図である。
【
図5】ニューラルネットワークの修正例を示す図である。
【
図6】情報処理装置の機能例を示すブロック図である。
【
図10】モデル修正の手順例を示すフローチャートである。
【
図11】モデル修正の手順例を示すフローチャート(続き)である。
【
図12】既知事例のクラスタリング例を示す図である。
【発明を実施するための形態】
【0014】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0015】
図1は、第1の実施の形態の情報処理装置を説明するための図である。
第1の実施の形態の情報処理装置10は、訓練済みの機械学習モデルを修正する。情報処理装置10は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置10が、コンピュータまたはパラメータ修正装置と呼ばれてもよい。
【0016】
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。
【0017】
処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12が、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プロセッサの集合が、マルチプロセッサまたは単に「プロセッサ」と呼ばれてもよい。
【0018】
記憶部11は、機械学習モデル13を記憶する。機械学習モデル13は、訓練データを用いた機械学習によって訓練済みである。機械学習モデル13は、例えば、複数の層を含むニューラルネットワークである。機械学習モデル13は、入力データから、複数のクラスそれぞれのクラス確率を算出する。入力データは、クラス確率が最大のクラスに分類される。機械学習モデル13は、画像データに写った物体の種類を判定する画像認識モデルであってもよい。機械学習モデル13は、訓練済みのパラメータ値14を含む。パラメータ値14は、例えば、ある層のエッジの重みである。
【0019】
あるクラスのクラス確率は、入力データが当該クラスに所属する確からしさを示しており、入力データを当該クラスに分類することの信頼性を示していること言うこともできる。クラス確率が高いほど、分類の信頼性が高い。クラス確率が、クラス所属確率、予測確率、確信度、スコアまたは分類スコアと呼ばれてもよく、単に確率と呼ばれてもよい。機械学習モデル13が算出するクラス確率は、全クラスのクラス確率の合計が一定値(例えば、1)になるよう調整されていてもよいし、そのように調整されていなくてもよい。
【0020】
また、記憶部11は、サンプル15を記憶する。サンプル15は、第1の特徴量とラベルとを含む。第1の特徴量は、機械学習モデル13に入力される入力データに相当してもよいし、機械学習モデル13の中で入力データから変換される中間データに相当してもよい。例えば、第1の特徴量は、パラメータ値14を含む層に入力される入力値である。ラベルは、複数のクラスのうちサンプル15が分類されるべき正解クラスを示す。
【0021】
サンプル15は、修正前の機械学習モデル13によって正解クラスに分類されており、修正後もその分類結果を維持したいサンプルであってもよい。また、サンプル15は、修正前の機械学習モデル13によって誤ったクラスに分類されており、修正後はその分類結果を正解クラスに訂正したいサンプルであってもよい。
【0022】
処理部12は、サンプル15から、特徴量空間の中で第1の特徴量を含む領域を特定する。特徴量空間は、例えば、パラメータ値14を含む層に入力され得る入力値が分布する空間である。特定される領域は、第1の特徴量と類似する特徴量の範囲を示し、ボックス形状の領域であってもよい。例えば、処理部12は、サンプル15を含む複数のサンプルの特徴量に対してクラスタリングを行うことで、第1の特徴量を含むクラスタを示す領域を特定する。クラスタリングには、例えば、k-means法が用いられる。
【0023】
処理部12は、特定された領域内から第2の特徴量を抽出し、第2の特徴量とラベルとを含むサンプル16を生成する。第2の特徴量は、例えば、特定された領域の頂点に相当する特徴量である。サンプル16のラベルは、サンプル15と同じ正解クラスを示す。サンプル15が既知事例と呼ばれてもよく、サンプル16が未知事例と呼ばれてもよい。
【0024】
処理部12は、サンプル16から制約情報17を生成する。制約情報17は、修正後のパラメータ値14が満たすべき条件を示す。制約情報17は、例えば、修正後のパラメータ値14またはパラメータ値14の修正量を変数として含む不等式によって表される。処理部12は、パラメータ値14と、機械学習モデル13によって第2の特徴量から算出されるクラス確率との間の関係に基づいて、制約情報17を生成する。
【0025】
制約情報17は、複数のクラスの中での正解クラスのクラス確率の相対値が、パラメータ値14の修正によって減少しないことを規定する。制約情報17は、サンプル16の分類結果が正解クラスから遠ざかっていないことを規定しているとも言える。ただし、制約情報17は、複数のクラスのうち正解クラスのクラス確率が最大であること、すなわち、サンプル16の分類結果が正しいことまでは規定しない。よって、修正前の機械学習モデル13がサンプル16を誤ったクラスに分類する場合、修正後の機械学習モデル13が引き続きサンプル16を誤ったクラスに分類することも許容される。
【0026】
クラス数が2である場合、例えば、制約情報17は、修正後の正解クラスのクラス確率と修正後の他のクラスのクラス確率との差が、修正前の正解クラスのクラス確率と修正前の他のクラスのクラス確率との差より小さくならないことを規定する。クラス数が3以上の場合、制約情報17は、正解クラスのクラス確率と他の全てのクラスのクラス確率との間で、上記の条件を規定してもよい。また、制約情報17は、正解クラスのクラス確率と他のクラスの中の最大または最小のクラス確率との間で、上記の条件を規定してもよい。全クラスのクラス確率の合計が一定値になるよう調整されている場合、クラス確率の相対値は、機械学習モデル13が算出するクラス確率そのものであってもよい。
【0027】
処理部12は、制約情報17を満たすようにパラメータ値14を修正する。例えば、処理部12は、制約情報17が示す不等式を満たす範囲で、修正量が最小となるようにパラメータ値14を修正する。処理部12は、線形計画ソルバを用いて、修正後のパラメータ値14またはパラメータ値14の修正量を探索してもよい。
【0028】
処理部12は、サンプル15から他の制約情報を生成してもよく、制約情報17に加えて他の制約情報を満たすようにパラメータ値14を修正してもよい。サンプル15から生成される他の制約情報は、パラメータ値14の修正後、第1の特徴量から算出される正解クラスのクラス確率が複数のクラスの中で最大であることを規定してもよい。
【0029】
処理部12は、パラメータ値14が修正された機械学習モデル13を出力する。処理部12は、修正後の機械学習モデル13を不揮発性ストレージに保存してもよいし、表示装置に表示してもよいし、他の情報処理装置に送信してもよい。
【0030】
以上説明したように、第1の実施の形態の情報処理装置10は、第1の特徴量と正解クラスを示すラベルとを含むサンプル15から、特徴量空間の中で第1の特徴量を含む領域を特定し、領域内の第2の特徴量と当該ラベルとを含むサンプル16を生成する。情報処理装置10は、機械学習モデル13に含まれるパラメータ値14と第2の特徴量から算出されるクラス確率との関係に基づいて、制約情報17を生成する。制約情報17は、正解クラスのクラス確率の相対値が、パラメータ値14の修正によって減少しないことを示す。情報処理装置10は、制約情報17を満たすようにパラメータ値14を修正する。
【0031】
これにより、与えられたサンプル15と類似する入力データの分類結果も考慮して機械学習モデル13が修正される。よって、未知の入力データの分類精度が低下する退行が抑制され、修正後の機械学習モデル13の分類精度が向上する。
【0032】
また、制約情報17は、修正前の機械学習モデル13がサンプル16を正解クラスに分類しない場合、修正後の機械学習モデル13がサンプル16を正解クラスに分類することまでは要求しない。よって、誤分類をゼロにすることが難しい場合であっても、制約情報17を満たすパラメータ値14が発見されやすくなる。また、パラメータ値14の不適切な修正によって分類精度が低下するリスクが抑制される。
【0033】
なお、情報処理装置10は、サンプル15から他の制約情報を生成してもよく、制約情報17と他の制約情報とを満たすようにパラメータ値14を修正してもよい。他の制約情報は、パラメータ値14の修正後に算出される正解クラスのクラス確率が、複数のクラスの中で最大であることを示してもよい。これにより、サンプル15の分類結果が正しくなるように機械学習モデル13が修正される。
【0034】
また、情報処理装置10は、複数のサンプルの特徴量に対してクラスタリングを行うことで、第1の特徴量を含む領域を特定してもよい。これにより、第1の特徴量と類似しており、かつ、第1の特徴量と同じクラスに分類されるべき第2の特徴量が抽出される。また、機械学習モデル13はニューラルネットワークであってもよく、特徴量は、パラメータ値14を含む層に入力される入力値であってもよい。これにより、特徴量とパラメータ値14とクラス確率との関係が、簡潔に表現される。
【0035】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
第2の実施の形態の情報処理装置100は、クラス分類を行うニューラルネットワークに含まれる重みを、再訓練せずに修正する。これにより、情報処理装置100は、少数の誤答事例の分類結果が訂正されるように、ニューラルネットワークを修正する。情報処理装置100は、クライアント装置でもよいしサーバ装置でもよい。情報処理装置100が、コンピュータまたはモデル修正装置と呼ばれてもよい。情報処理装置100は、第1の実施の形態の情報処理装置10に対応する。
【0036】
図2は、第2の実施の形態の情報処理装置のハードウェア例を示す図である。
情報処理装置100は、バスに接続されたCPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0037】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムおよびデータをRAM102にロードし、プログラムを実行する。情報処理装置100は、複数のプロセッサを有してもよい。
【0038】
RAM102は、CPU101で実行されるプログラムおよびCPU101で演算に使用されるデータを一時的に記憶する揮発性半導体メモリである。情報処理装置100は、RAM以外の種類の揮発性メモリを有してもよい。
【0039】
HDD103は、オペレーティングシステム(OS:Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラムと、データとを記憶する不揮発性ストレージである。情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の不揮発性ストレージを有してもよい。
【0040】
GPU104は、CPU101と連携して画像処理を行い、情報処理装置100に接続された表示装置111に画像を出力する。表示装置111は、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイまたはプロジェクタである。情報処理装置100に、プリンタなどの他の種類の出力デバイスが接続されてもよい。
【0041】
また、GPU104は、GPGPU(General Purpose Computing on Graphics Processing Unit)として使用されてもよい。GPU104は、CPU101からの指示に応じてプログラムを実行し得る。情報処理装置100は、RAM102以外の揮発性半導体メモリをGPUメモリとして有してもよい。
【0042】
入力インタフェース105は、情報処理装置100に接続された入力デバイス112から入力信号を受け付ける。入力デバイス112は、例えば、マウス、タッチパネルまたはキーボードである。情報処理装置100に複数の入力デバイスが接続されてもよい。
【0043】
媒体リーダ106は、記録媒体113に記録されたプログラムおよびデータを読み取る読み取り装置である。記録媒体113は、例えば、磁気ディスク、光ディスクまたは半導体メモリである。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)およびDVD(Digital Versatile Disc)が含まれる。媒体リーダ106は、記録媒体113から読み取られたプログラムおよびデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、CPU101によって実行されることがある。
【0044】
記録媒体113は、可搬型記録媒体であってもよい。記録媒体113は、プログラムおよびデータの配布に用いられることがある。また、記録媒体113およびHDD103が、コンピュータ読み取り可能な記録媒体と呼ばれてもよい。
【0045】
通信インタフェース107は、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0046】
次に、ニューラルネットワークの修正について説明する。
第2の実施の形態のニューラルネットワークは、入力データを複数のクラスに分類するクラス分類モデルである。例えば、ニューラルネットワークは、入力された画像データを、物体の種類を示す複数のクラスに分類する。このニューラルネットワークは、例えば、自動運転、医療診断、製品検査、街路監視などに利用される。
【0047】
図3は、ニューラルネットワークの例を示す図である。
ニューラルネットワーク140は、入力層と、出力層と、入力層と出力層の間にある隠れ層とを含む。隠れ層は、中間層と呼ばれることがある。第2の実施の形態では説明を簡単にするため、入力の次元数を2、クラス数を2、隠れ層の個数を1とする。
【0048】
ニューラルネットワーク140は、ノード141~148を含む。ノード141,142は、入力層に含まれる。ノード143~146は、隠れ層に含まれる。ノード147,148は、出力層に含まれる。ノード141は、入力値x1
1を示す。ノード142は、入力値x1
2を示す。入力値x1
1,x1
2が、入力ベクトルx1を形成する。ノード143は、特徴量y1
1を示す。ノード144は、特徴量y1
2を示す。特徴量y1
1,y1
2が、特徴ベクトルy1を形成する。
【0049】
ノード141とノード143の間のエッジは、重みW1
1,1をもつ。ノード141とノード144の間のエッジは、重みW1
1,2をもつ。ノード142とノード143の間のエッジは、重みW1
2,1をもつ。ノード142とノード144の間のエッジは、重みW1
2,2をもつ。重みW1
1,1,W1
1,2,W1
2,1,W1
2,2が、重み行列W1を形成する。また、ノード143は、重みb1
1をもつ。ノード144は、重みb1
2をもつ。重みb1
1,b1
2が、重みベクトルb1を形成する。
【0050】
ノード145は、特徴量x2
1を示す。ノード146は、特徴量x2
2を示す。特徴量x2
1,x2
2が、特徴ベクトルx2を形成する。活性化関数σによって、特徴量y1
1が特徴量x2
1に変換され、特徴量y1
2が特徴量x2
2に変換される。ノード147は、クラス1のクラス確率y2
1を示す。ノード148は、クラス2のクラス確率y2
2を示す。あるクラスのクラス確率は、入力データが当該クラスに属する可能性を示す。クラス確率y2
1,y2
2が、クラス確率ベクトルy2を形成する。
【0051】
ノード145とノード147の間のエッジは、重みW2
1,1をもつ。ノード145とノード148の間のエッジは、重みW2
1,2をもつ。ノード146とノード147の間のエッジは、重みW2
2,1をもつ。ノード146とノード148の間のエッジは、重みW2
2,2をもつ。重みW2
1,1,W2
1,2,W2
2,1,W2
2,2が、重み行列W2を形成する。また、ノード147は、重みb2
1をもつ。ノード148は、重みb2
2をもつ。重みb2
1,b2
2が、重みベクトルb2を形成する。
【0052】
入力ベクトルx1からクラス確率ベクトルy2への変換は、数式(1)に示す行列計算によって行われる。入力ベクトルx1は、クラス確率が最大のクラスに分類される。重みW1
1,1,W1
1,2,W1
2,1,W1
2,2,W2
1,1,W2
1,2,W2
2,1,W2
2,2,b1
1,b1
2,b2
1,b2
2は、機械学習を通じて決定される。
【0053】
【0054】
ここで、機械学習技術の限界から、ニューラルネットワーク140の分類精度を100%にすることは困難である。そのため、ニューラルネットワーク140は、入力ベクトルを誤ったクラスに分類する誤分類を行うことがある。
【0055】
このとき、ユーザは、少数の重要な事例について、誤分類が起きないようにニューラルネットワーク140を修正したいことがある。例えば、街路監視の画像認識モデルは、車両と同じ色の服を着た人を誤った物体クラスに分類することがある。このような誤分類は、1万分の1などの低確率で発生するものの、重大な欠陥と判断されることがある。
【0056】
ただし、訓練データを増やしてニューラルネットワーク140を再訓練しても、重要な事例の誤分類が解消するとは限らない。そこで、情報処理装置100は、ニューラルネットワーク140に含まれる重みを直接的に修正する。情報処理装置100は、与えられた複数の事例それぞれが正解クラスに分類されるために重みが満たすべき制約を不等式で表現し、線形計画ソルバで連立不等式を解くことで修正後の重みを算出する。このようなモデル修正は、同値性証明付きモデル修正と呼ばれることがある。
【0057】
例えば、修正前のニューラルネットワーク140が正解クラスに分類している正答事例が、数万件程度ある。一方、修正前のニューラルネットワーク140が誤ったクラスに分類している誤答事例が、全体の数%にあたる数千件程度ある。誤答事例のうち誤分類を解消すべき要訂正事例が、全体の0.1%未満にあたる数十件程度ある。このとき、正答事例のうちの一部が、ニューラルネットワーク140の修正後も分類先クラスを維持すべき事例として情報処理装置100に与えられる。また、要訂正事例の一部または全部が、ニューラルネットワーク140の修正によって誤答を解消すべき事例として与えられる。
【0058】
第2の実施の形態では、情報処理装置100は、重み行列W2と重みベクトルb2、すなわち、重みW2
1,1,W2
1,2,W2
2,1,W2
2,2,b2
1,b2
2を修正する。なお、修正対象の重みは、情報処理装置100によって自動的に選択されてもよいし、ユーザによって指定されてもよい。一般的に、誤分類の原因が入力データの傾向変化である場合、入力層寄りの重みを修正することが好ましい。一方、誤分類の原因がクラス境界の調整不足である場合、出力層寄りの重みを修正することが好ましい。
【0059】
情報処理装置100は、与えられた複数の事例それぞれから、数式(2)に示すような不等式を制約として生成する。数式(2)では、正解クラスがクラス1である場合を想定している。数式(2)において、W’2は重み行列W2の修正後の行列を表す変数であり、b’2は重みベクトルb2の修正後のベクトルを表す変数である。数式(2)は、修正後に特徴ベクトルx2から算出されるクラス確率ベクトルについて、クラス1のクラス確率がクラス2のクラス確率以上であることを規定する。よって、数式(2)は、特徴ベクトルx2から判定される分類先クラスが正解クラスであることを規定する。
【0060】
【0061】
上記の同値性証明付きモデル修正は、ユーザから与えられた既知事例が正解クラスに分類されることを保証する。一方、同値性証明付きモデル修正は、ユーザから与えられていない未知事例の分類精度を考慮しておらず、未知事例の誤分類が増えるという退行を発生させるおそれがある。これに対して、情報処理装置100は、既知事例と類似する特徴ベクトルをもつ未知事例をサンプリングし、既知事例と類似する未知事例がその既知事例と同じクラスに分類されるように、未知事例からも制約を生成する方法が考えられる。
【0062】
しかし、クラス分類モデルの誤分類をゼロにすることは困難であるため、既知事例と類似する未知事例が全て正解クラスに分類されることを要求すると、制約を満たす解が存在しないことがある。また、制約を満たす解が存在しても、制約を満たすために不自然な分類境界が設定され、かえって分類精度が低下するおそれがある。
【0063】
そこで、第2の実施の形態では、情報処理装置100は、未知事例から生成される制約を緩和する。未知事例の制約は、正解クラスのクラス確率が複数のクラスの中で最大であることを規定しない。よって、未知事例の制約は、未知事例が正解クラスに分類されることを規定しない。ただし、未知事例の制約は、複数のクラスの中での正解クラスのクラス確率の相対値が、修正前より減少していないことを規定する。
【0064】
これは、クラス確率ベクトル空間の中で、未知事例に対応する点が動かないか正解クラス領域に近づくことを表す。よって、修正前のクラス分類モデルが未知事例を誤ったクラスに分類している場合、修正後のクラス分類モデルが未知事例を誤ったクラスに分類することも許容される。このような制約であっても、未知事例の分類精度は低下しない。
【0065】
情報処理装置100は、既知事例からは、上記の数式(2)に示す制約を生成する。一方、情報処理装置100は、既知事例の周辺からサンプリングされた未知事例からは、数式(3)に示す制約を生成する。数式(3)では、正解クラスがクラス1である場合を想定している。数式(3)は、修正後のクラス1のクラス確率から修正後のクラス2のクラス確率を引いた修正後相対値が、修正前のクラス1のクラス確率から修正前のクラス2のクラス確率を引いた修正前相対値以上であることを規定する。
【0066】
【0067】
なお、クラス確率ベクトル空間の中での未知事例に対応する点の移動方向は、数式(4)によって判定される。数式(4)の値が正である場合、クラス確率ベクトル空間の中で未知事例に対応する点はクラス1領域に近づいている。数式(4)の値が負である場合、クラス確率ベクトル空間の中で未知事例に対応する点はクラス2領域に近づいている。また、第2の実施の形態では、情報処理装置100は、既知事例から数式(2)の制約を生成しているが、既知事例から数式(3)の制約を生成することも可能である。
【0068】
【0069】
図4は、特徴空間への既知事例および未知事例のマッピング例を示す図である。
既知事例151は、入力データとして画像データ1を含み、正解クラスがクラス1であることを示すラベルを含む。既知事例152は、入力データとして画像データ2を含み、正解クラスがクラス2であることを示すラベルを含む。未知事例153は、入力データとして画像データ3を含み、正解クラスがクラス1であることを示すラベルを含む。
【0070】
情報処理装置100は、修正対象である重み行列W2および重みベクトルb2の直前に算出される特徴ベクトルx2の空間に、既知事例151,152をマッピングする。点154は、既知事例151に対応し、画像データ1から算出される特徴ベクトルを示す。点155は、既知事例152に対応し、画像データ2から算出される特徴ベクトルを示す。
【0071】
情報処理装置100は、点154の近傍から点156を抽出する。点156は、未知事例153に対応し、画像データ3から算出される特徴ベクトルを示す。情報処理装置100は、点156に対応する未知事例153に、点154に対応する既知事例151と同じ正解クラスを示すラベルを付与する。これにより、情報処理装置100は、既知事例151と類似する未知事例153を生成する。なお、情報処理装置100は、実際には点156が示す特徴ベクトルを特定すればよく、画像データ3を生成しなくてよい。
【0072】
分類境界157は、修正前のクラス分類モデルにおける特徴ベクトルx
2と分類先クラスとの関係を示す。
図4では、分類境界157より下の点がクラス1に分類され、分類境界157より上の点がクラス2に分類される。点154の近傍には、分類境界157を跨ぐ点も含まれる。このため、点154の近傍の全ての点がクラス1に分類されるように分類境界157を調整することは、難しいことがある。
【0073】
図5は、ニューラルネットワークの修正例を示す図である。
点161は、特徴ベクトルx
2の空間からサンプリングされた未知事例を示す。分類境界164は、修正前のクラス分類モデルにおける特徴ベクトルx
2と分類先クラスとの関係を示す。点161は、修正前の重み行列W
2および重みベクトルb
2を用いて、クラス確率ベクトルy
2の空間内の点162に変換される。分類境界166は、クラス確率ベクトルy
2と分類先クラスとの関係を示す。
【0074】
分類境界165は、修正前のクラス分類モデルにおける特徴ベクトルx2と分類先クラスとの関係を示す。点161は、修正後の重み行列W’2および重みベクトルb’2を用いて、クラス確率ベクトルy2の空間内の点163に変換される。
【0075】
このとき、情報処理装置100は、クラス確率ベクトルy2の空間において、点163が点162から移動しないか、または、正解クラス側に移動するという制約を生成する。点162が正解クラスの領域の中にある場合、正解クラス側とは、点163が分類境界166から遠ざかる方向を意味する。点162が正解クラスの領域の外にある場合、正解クラス側とは、点163が分類境界166に近づく方向を意味する。
【0076】
次に、情報処理装置100の機能例について説明する。
図6は、情報処理装置の機能例を示すブロック図である。
情報処理装置100は、モデル記憶部121、事例記憶部122、制約記憶部123、未知事例生成部124、既知事例制約生成部125、未知事例制約生成部126および線形計画ソルバ127を有する。モデル記憶部121、事例記憶部122および制約記憶部123は、例えば、RAM102またはHDD103を用いて実装される。未知事例生成部124、既知事例制約生成部125、未知事例制約生成部126および線形計画ソルバ127は、例えば、CPU101およびプログラムを用いて実装される。
【0077】
モデル記憶部121は、修正前のニューラルネットワークを記憶する。また、モデル記憶部121は、修正後のニューラルネットワークを記憶する。
事例記憶部122は、ユーザから与えられた複数の既知事例を記憶する。複数の既知事例の中には、修正後も分類先クラスを維持したい維持用の既知事例と、修正によって分類先クラスを訂正したい訂正用の既知事例とが含まれる。また、事例記憶部122は、維持用の既知事例と類似する未知事例を記憶する。
【0078】
制約記憶部123は、既知事例から生成された制約を記憶する。既知事例の制約は、既知事例の分類先クラスが正解クラスであることを規定する。また、制約記憶部123は、未知事例から生成された制約を記憶する。未知事例の制約は、正解クラスのクラス確率が相対的に低下していないことを規定する。既知事例の制約および未知事例の制約はそれぞれ、重みの修正量を示す変数を用いた不等式で表現される。
【0079】
未知事例生成部124は、モデル記憶部121に記憶された修正前のニューラルネットワークと、事例記憶部122に記憶された既知事例とから、未知事例を生成する。このとき、未知事例生成部124は、既知事例の特徴ベクトルの周辺から他の特徴ベクトルを抽出し、既知事例と同じラベルを付与することで、未知事例を生成する。未知事例生成部124は、生成された未知事例を事例記憶部122に保存する。
【0080】
既知事例制約生成部125は、事例記憶部122から既知事例を読み出す。既知事例制約生成部125は、重みの修正差分を示す変数を用いて、既知事例の分類先クラスが正解クラスになるために変数が満たすべき制約を不等式で表現する。既知事例制約生成部125は、生成された制約を制約記憶部123に保存する。
【0081】
未知事例制約生成部126は、事例記憶部122から未知事例を読み出す。未知事例制約生成部126は、重みの修正差分を示す変数を用いて、未知事例のクラス確率ベクトルが変わらないか、または、正解クラスに近づくために変数が満たすべき制約を不等式で表現する。未知事例制約生成部126は、生成された制約を制約記憶部123に保存する。
【0082】
線形計画ソルバ127は、制約記憶部123に記憶された制約を満たす範囲で、L1ノルムが最小となる重みの修正差分を探索する。修正差分のL1ノルムは目的関数として表現され、制約は連立不等式で表現される。なお、修正差分の大きさとして、L1ノルムに代えてL2ノルムなどの他の指標を用いてもよい。
【0083】
線形計画ソルバ127は、重みの修正差分から修正後の重みを算出し、修正後の重みを含むニューラルネットワークをモデル記憶部121に保存する。なお、線形計画ソルバ127は、修正差分をモデル記憶部121に保存してもよい。また、線形計画ソルバ127は、修正差分または修正されたニューラルネットワークを、表示装置111に表示してもよいし、他の情報処理装置に送信してもよい。
【0084】
図7は、モデルテーブルの例を示す図である。
モデルテーブル131は、モデル記憶部121に記憶される。モデルテーブル131は、種別、重み行列W
1、重みベクトルb
1、重み行列W
2および重みベクトルb
2をそれぞれ含む複数のレコード(典型的には2つのレコード)を記憶する。
【0085】
種別は、ニューラルネットワークの種別を示し、修正前または修正後である。種別が修正前であるレコードは、修正前の重み行列W
1、重みベクトルb
1、重み行列W
2および重みベクトルb
2を含む。種別が修正後であるレコードは、修正後の重み行列W
1、重みベクトルb
1、重み行列W
2および重みベクトルb
2を含む。なお、
図7では、重み行列W
1,W
2を、列ベクトルの集合として表記している。
【0086】
図8は、事例テーブルの例を示す図である。
事例テーブル132は、事例記憶部122に記憶される。事例テーブル132は、種別、用途、入力ベクトルx
1、特徴ベクトルx
2およびラベルをそれぞれ含む複数のレコードを記憶する。種別は、事例の種別を示し、既知または未知である。
【0087】
既知事例の用途は、維持、訂正または評価である。未知事例の用途は、維持である。維持は、修正前のニューラルネットワークの分類先クラスを維持する目的を示す。訂正は、修正前のニューラルネットワークの分類先クラスを正解クラスに訂正する目的を示す。評価用の既知事例は、ニューラルネットワークの修正には使用されず、修正されたニューラルネットワークの分類精度の評価に使用される。例えば、訂正用の既知事例が2個、維持用の既知事例が45個、評価用の既知事例が405個用意される。また、維持用の既知事例に基づいて、未知事例が16個生成される。
【0088】
既知事例のレコードは、入力ベクトルx1を含む。未知事例のレコードは、入力ベクトルx1を含まなくてよい。また、訂正用の既知事例のレコードおよび維持用の既知事例のレコードは、特徴ベクトルx2を含む。この特徴ベクトルx2は、ニューラルネットワークに入力ベクトルx1を入力することで算出される。また、未知事例のレコードは、特徴ベクトルx2を含む。この特徴ベクトルx2は、特徴ベクトル空間から抽出される。評価用の既知事例のレコードは、特徴ベクトルx2を含まなくてよい。
【0089】
ラベルは、正解クラスを示す。維持用の既知事例のラベルおよび評価用の既知事例のラベルは、修正前のニューラルネットワークによって判定される分類先クラスと一致する。訂正用の既知事例のラベルは、修正前のニューラルネットワークによって判定される分類先クラスと一致しない。未知事例のラベルは、類似する既知事例のラベルと同じである。
【0090】
図9は、制約テーブルの例を示す図である。
制約テーブル133は、制約記憶部123に記憶される。制約テーブル133は、種別、係数行列A、係数ベクトルBおよび定数cをそれぞれ含む複数のレコードを記憶する。制約テーブル133の1つのレコードは、1つの不等式を表す。制約テーブル133のレコードは、事例テーブル132が示す事例のうち、評価用の既知事例以外の事例(維持用の既知事例、訂正用の既知事例および未知事例)と1対1に対応する。
【0091】
種別は、事例の種別を示し、既知または未知である。係数行列A、係数ベクトルBおよび定数cは、数式(5)を満たす行列、ベクトルおよび定数である。数式(5)の左辺において、係数行列Aと重み行列W
2との間の演算子、および、係数ベクトルBと重みベクトルb
2との間の演算子は、内積を表す。前述のニューラルネットワーク140の例の場合、数式(5)は数式(6)のように展開される。なお、
図9では、係数行列Aを、列ベクトルの集合として表記している。
【0092】
【0093】
【0094】
次に、情報処理装置100の処理手順について説明する。
図10は、モデル修正の手順例を示すフローチャートである。
(S10)情報処理装置100は、ニューラルネットワークに含まれる重み行列W
1,W
2および重みベクトルb
1,b
2を、モデルテーブル131に保存する。
【0095】
(S11)情報処理装置100は、維持用、訂正用および評価用の既知事例それぞれに含まれる入力ベクトルx1およびラベルを、事例テーブル132に保存する。
(S12)既知事例制約生成部125は、事例テーブル132から、用途が維持または訂正である既知事例を1つ選択する。
【0096】
(S13)既知事例制約生成部125は、選択された既知事例の入力ベクトルx1をニューラルネットワークに入力する。これにより、既知事例制約生成部125は、修正対象層の入力に相当する特徴ベクトルx2を算出する。また、既知事例制約生成部125は、出力層の出力に相当するクラス確率ベクトルy2を算出する。
【0097】
(S14)既知事例制約生成部125は、ステップS13で算出された特徴ベクトルx2を、事例テーブル132に保存する。
(S15)既知事例制約生成部125は、重み行列W2の重み差分ΔW2と重みベクトルb2の重み差分Δb2とを変数として用いて、重み行列W2および重みベクトルb2を修正した後のクラス確率ベクトルy’2を規定する。クラス確率ベクトルy’2は、数式(7)のように規定される。重み差分ΔW2,Δb2は、数式(8)のように規定される。
【0098】
【0099】
【0100】
(S16)既知事例制約生成部125は、ステップS15で規定されたクラス確率ベクトルy’2に基づいて、重み差分ΔW2,Δb2を変数として用いて、正解クラスのクラス確率が最大であることを示す不等式を生成する。
【0101】
選択された既知事例の正解クラスがクラス1である場合、数式(9)の不等式が展開される。選択された既知事例の正解クラスがクラス2である場合、数式(10)の不等式が展開される。既知事例制約生成部125は、展開された不等式を数式(5)の形に整理する。これにより、正解クラスがクラス1である場合、係数行列A、係数ベクトルBおよび定数cは数式(11)のように算出される。正解クラスがクラス2である場合、係数行列A、係数ベクトルBおよび定数cは数式(12)のように算出される。
【0102】
【0103】
【0104】
【0105】
【0106】
(S17)既知事例制約生成部125は、ステップS16で算出された係数行列A、係数ベクトルBおよび定数cを、制約テーブル133に保存する。
(S18)既知事例制約生成部125は、ステップS12に該当する全ての既知事例を選択したか判断する。該当する全ての既知事例を選択した場合はステップS19に処理が進み、未選択の既知事例がある場合はステップS12に処理が戻る。
【0107】
(S19)未知事例生成部124は、事例テーブル132から、用途が維持である既知事例を全て選択する。
(S20)未知事例生成部124は、ラベルが同じ既知事例を特徴ベクトルx2に応じて1以上のクラスタに分類する。例えば、未知事例生成部124は、正解クラスがクラス1である既知事例の特徴ベクトルx2をクラスタに分類する。また、未知事例生成部124は、正解クラスがクラス2である既知事例の特徴ベクトルx2をクラスタに分類する。
【0108】
クラスタリングアルゴリズムとして、例えば、k-means法が用いられる。クラスタは、例えば、ボックス型のクラスタとする。このとき、未知事例生成部124は、異なるクラスタのボックスが重ならないようにする。未知事例生成部124は、クラスタ数を増やすことでボックスの重複を解消するようにしてもよい。
【0109】
(S21)未知事例生成部124は、ステップS20で生成されたボックス型クラスタの頂点から特徴ベクトルx2を抽出する。未知事例生成部124は、抽出された特徴ベクトルx2を、未知事例の特徴ベクトルx2として事例テーブル132に保存する。また、未知事例生成部124は、クラスタ内の既知事例と同じラベルを未知事例に付与する。
【0110】
図11は、モデル修正の手順例を示すフローチャート(続き)である。
(S22)未知事例制約生成部126は、事例テーブル132から、ステップS21で生成された未知事例を1つ選択する。
【0111】
(S23)未知事例制約生成部126は、重み行列W2の重み差分ΔW2と重みベクトルb2の重み差分Δb2とを変数として用いて、重み行列W2および重みベクトルb2を修正した後のクラス確率ベクトルy’2を規定する。
【0112】
(S24)未知事例制約生成部126は、ステップS23で規定されたクラス確率ベクトルy’2に基づいて、重み差分ΔW2,Δb2を変数として用いて、正解クラスのクラス確率の相対値が減少しないことを示す不等式を生成する。
【0113】
選択された未知事例の正解クラスがクラス1である場合、数式(13)の不等式が展開される。選択された未知事例の正解クラスがクラス2である場合、数式(14)の不等式が展開される。未知事例制約生成部126は、展開された不等式を数式(5)の形に整理する。これにより、正解クラスがクラス1である場合、係数行列A、係数ベクトルBおよび定数cは数式(15)のように算出される。正解クラスがクラス2である場合、係数行列A、係数ベクトルBおよび定数cは数式(16)のように算出される。
【0114】
【0115】
【0116】
【0117】
【0118】
(S25)未知事例制約生成部126は、ステップS24で算出された係数行列A、係数ベクトルBおよび定数cを、制約テーブル133に保存する。
(S26)未知事例制約生成部126は、全ての未知事例を選択したか判断する。全ての未知事例を選択した場合はステップS27に処理が進み、未選択の未知事例がある場合はステップS22に処理が戻る。
【0119】
(S27)線形計画ソルバ127は、重み差分ΔW2,Δb2のL1ノルムを示す目的関数を、数式(17)のように規定する。
【0120】
【0121】
(S28)線形計画ソルバ127は、制約テーブル133が示す不等式制約のもとで、ステップS27の目的関数の値を最小化する線形計画問題を解く。これにより、不等式制約を満たす範囲で、L1ノルムが最小の重み差分ΔW2,Δb2が発見される。
【0122】
(S29)線形計画ソルバ127は、ニューラルネットワークに含まれる重み行列W2に重み差分ΔW2を加える。また、線形計画ソルバ127は、ニューラルネットワークに含まれる重みベクトルb2に重み差分Δb2を加える。線形計画ソルバ127は、修正後の重み行列W’2および重みベクトルb’2をモデルテーブル131に保存する。
【0123】
図12は、既知事例のクラスタリング例を示す図である。
点171,172は、それぞれ訂正用の既知事例を示す。未知事例生成部124は、維持用の既知事例のうち正解クラスがクラス1の既知事例をクラスタリングし、クラスタ173,174を生成する。また、未知事例生成部124は、維持用の既知事例のうち正解クラスがクラス2の既知事例をクラスタリングし、クラスタ175,176を生成する。
【0124】
未知事例生成部124は、クラスタ173の4つの頂点それぞれから特徴ベクトルx2を抽出する。また、未知事例生成部124は、クラスタ174の4つの頂点それぞれから特徴ベクトルx2を抽出する。これにより、クラス1を示すラベルが付与された8個の未知事例が生成される。また、未知事例生成部124は、クラスタ175の4つの頂点それぞれから特徴ベクトルx2を抽出する。また、未知事例生成部124は、クラスタ176の4つの頂点それぞれから特徴ベクトルx2を抽出する。これにより、クラス2を示すラベルが付与された8個の未知事例が生成される。
【0125】
図13は、未知事例の第1の分類例を示す図である。
ここでは、情報処理装置100が、既知事例と同様に未知事例も正解クラスに分類されるように制約を生成する場合を考える。点177は、クラスタ174の頂点から抽出された未知事例を示す。この未知事例には、クラス1を示すラベルが付与されている。
【0126】
この場合、情報処理装置100は、クラス確率ベクトルの空間において、点171,172に対応する点181,182が分類境界184より上側(クラス1側)の領域に入るように、重みを更新する。更に、情報処理装置100は、点177に対応する点183が分類境界184より上側の領域に入るように、重みを更新する。しかし、点177は、正解クラスがクラス1である既知事例の中心から比較的外れた未知事例であるため、制約を満たすために無理のある重み修正が行われている。この例では、405個の評価用の既知事例のうち9個の既知事例の分類先クラスが、退行により変化している。
【0127】
図14は、未知事例の第2の分類例を示す図である。
ここでは、情報処理装置100が、前述ように未知事例が正解クラスに分類されないことを許容する場合を考える。この場合、情報処理装置100は、クラス確率ベクトルの空間において、点171,172に対応する点185,186が分類境界188より上側(クラス1側)の領域に入るように、重みを更新する。
【0128】
一方、情報処理装置100は、点177に対応する点187が分類境界188より下側(クラス2側)の領域に入ることを許容する。このため、
図13の場合と比べて、制約を満たすために無理のある重み修正を行うことが抑制されている。この例では、405個の評価用の既知事例のうち2個の既知事例の分類先クラスが、退行により変化している。よって、
図13の場合よりも、修正後の分類精度が向上している。
【0129】
図15は、モデル精度の比較例を示すグラフである。
このグラフは、前述のようなモデル修正を200件行った結果を示す。バー191は、制約を満たす重みを発見できなかったモデル修正Aの件数を示す。モデル修正Aの件数は70件である。バー192は、
図13の方法の退行事例数が
図14の方法よりも少なかったモデル修正Bの件数を示す。モデル修正Bの件数は7件である。
【0130】
バー193は、退行事例数が
図13の方法と
図14の方法とで同じであったモデル修正Cの件数を示す。モデル修正Cの件数は15件である。バー194は、
図14の方法の退行事例数が
図13の方法よりも少なかったモデル修正Dの件数を示す。モデル修正Dの件数は108件である。このように、既知事例と未知事例とから異なる種類の制約を生成することで、修正されたニューラルネットワークの分類精度が向上する。
【0131】
以上説明したように、第2の実施の形態の情報処理装置100は、ニューラルネットワーク全体を再学習する代わりに、少数の重要な既知事例の誤分類が解消されるように、ニューラルネットワークに含まれる重みを直接的に修正する。これにより、ニューラルネットワークを修正するための計算量および実行時間が減少し、迅速にニューラルネットワークが修正される。また、情報処理装置100は、多くの既知事例の分類先クラスを変えずに、少数の重要な既知事例の誤分類を解消することができる。
【0132】
また、情報処理装置100は、与えられた既知事例から不等式で表された制約を生成し、線形計画ソルバを用いて、制約を満たす重みを探索する。これにより、情報処理装置100は、与えられた既知事例が正しく分類されることを確認できる。また、情報処理装置100は、既知事例と類似する未知事例をサンプリングし、未知事例からも制約を生成する。これにより、未知事例の分類精度が大きく低下するリスクが軽減される。
【0133】
また、情報処理装置100は、未知事例からは、正解クラスのクラス確率の相対値が減少しないことを規定した制約を生成し、その未知事例が正解クラスに分類されないことを許容する。これにより、ニューラルネットワークの誤分類をゼロにすることが難しい場合であっても、制約を満たす重みが発見されやすくなる。また、重みの不適切な修正によって、かえって分類精度が低下するリスクが抑制される。
【0134】
また、情報処理装置100は、既知事例の特徴ベクトルをクラスタリングし、ボックス型クラスタの頂点から未知事例の特徴ベクトルを抽出する。これにより、既知事例と類似しており既知事例と同じクラスに分類されることが好ましい未知事例が生成される。また、情報処理装置100は、ボックス内から多数の特徴ベクトルをサンプリングしなくても、ボックス内の未知事例が制約を満たす可能性が高いことを確認できる。
【符号の説明】
【0135】
10 情報処理装置
11 記憶部
12 処理部
13 機械学習モデル
14 パラメータ値
15,16 サンプル
17 制約情報