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

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

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

特開2023-183079訓練データ生成プログラム,訓練データ生成方法および情報処理装置
<>
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図1
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図2
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図3
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図4
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図5
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図6
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図7
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図8
  • 特開-訓練データ生成プログラム,訓練データ生成方法および情報処理装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023183079
(43)【公開日】2023-12-27
(54)【発明の名称】訓練データ生成プログラム,訓練データ生成方法および情報処理装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20231220BHJP
【FI】
G06N20/00 130
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022096500
(22)【出願日】2022-06-15
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】徳本 晋
(57)【要約】
【課題】機械学習モデルの再訓練に際して、デグレードが生じにくい訓練データを生成する。
【解決手段】入力した場合に機械学習モデルが正解を出力する第1の複数のデータと、不正解を出力する第2の複数のデータとを取得し、第1の複数のデータのそれぞれに対する機械学習モデルの出力を入力した場合の損失関数の値の大きさに応じた確率に基づいて、第1の複数のデータから第3の複数のデータを選択し、第2の複数のデータと前記第3の複数のデータとを含む訓練データを生成する、処理をコンピュータに実行させる。
【選択図】図3
【特許請求の範囲】
【請求項1】
入力した場合に機械学習モデルが正解を出力する第1の複数のデータと、不正解を出力する第2の複数のデータとを取得し、
前記第1の複数のデータのそれぞれに対する前記機械学習モデルの出力を入力した場合の損失関数の値の大きさに応じた確率に基づいて、前記第1の複数のデータから第3の複数のデータを選択し、
前記第2の複数のデータと前記第3の複数のデータとを含む訓練データを生成する、
処理をコンピュータに実行させることを特徴とする訓練データ生成プログラム。
【請求項2】
前記第3の複数のデータを選択する処理は、前記損失関数の値の大きさに応じて設定された確率分布において、乱数の値が対応する確率範囲に相当する前記第1の複数のデータを、前記第3の複数のデータとして選択する
処理を含むことを特徴とする、請求項1に記載の訓練データ生成プログラム。
【請求項3】
複数のパラメータ値の組み合わせを含む粒子を複数有する粒子群において、評価値が最も高い第1の粒子の前記パラメータ値に基づいて、前記第1の粒子以外の第2の粒子の前記パラメータ値を更新し、
更新後の前記第2の粒子の前記評価値が前記第1の粒子の前記評価値よりも高い場合に、前記第3の複数のデータを選択する処理を前記コンピュータに実行させることを特徴とする、請求項1または2に記載の訓練データ生成プログラム。
【請求項4】
前記機械学習モデルに含まれる一部のパラメータを、前記第1の粒子および前記第2の粒子のうち、前記評価値が最も高い粒子のパラメータ値を用いて更新する
処理を前記コンピュータに実行させることを特徴とする、請求項3に記載の訓練データ生成プログラム。
【請求項5】
入力した場合に機械学習モデルが正解を出力する第1の複数のデータと、不正解を出力する第2の複数のデータとを取得し、
前記第1の複数のデータのそれぞれに対する前記機械学習モデルの出力を入力した場合の損失関数の値の大きさに応じた確率に基づいて、前記第1の複数のデータから第3の複数のデータを選択し、
前記第2の複数のデータと前記第3の複数のデータとを含む訓練データを生成する、
処理をコンピュータが実行することを特徴とする訓練データ生成方法。
【請求項6】
入力した場合に機械学習モデルが正解を出力する第1の複数のデータと、不正解を出力する第2の複数のデータとを取得し、
前記第1の複数のデータのそれぞれに対する前記機械学習モデルの出力を入力した場合の損失関数の値の大きさに応じた確率に基づいて、前記第1の複数のデータから第3の複数のデータを選択し、
前記第2の複数のデータと前記第3の複数のデータとを含む訓練データを生成する、
処理を実行する制御部を含むことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、訓練データ生成プログラム,訓練データ生成方法および情報処理装置に関する。
【背景技術】
【0002】
ニューラルネットワーク(Neural Network:NN)等の機械学習モデルを用いたシステムにおいて、ユーザに好ましくない出力が発生した場合に、機械学習モデルの修正を行なう場合がある。
【0003】
例えば、カメラを用いた自動運転システムにおいて、一時停止の道路標識を速度制限として認識した場合には、事故を起こす可能性があるので正しく認識されるように機械学習モデルを修正する必要がある。
【0004】
機械学習モデルは、仕様に従って作るのではなく、入力された訓練データに従って作られる。そのため、その修正も訓練データを入力することで行なう。
【0005】
しかしながら、このような従来の訓練データを用いた機械学習モデルの修正手法においては、修正に必要なデータを収集する必要があるが、収集したデータにより必ずしも誤りを修正できるとは限らない。
【0006】
すなわち、再訓練を行なうことで、再訓練前は正しく推論していたデータに対して、再訓練後に誤った推論を行なう可能性があり、デグレード(degrade)が生じるおそれがある。そこで、機械学習モデルの再訓練においてデグレードの発生を抑制することが望まれている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2021/064787号
【特許文献2】特開2019-174870号公報
【特許文献3】米国特許出願公開第2021/0073627号明細書
【特許文献4】米国特許出願公開第2020/0160207号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
機械学習モデルを再訓練する際、デグレードを抑えるために成功データも訓練データに含めるが、すべての成功データを含めると計算コストが増大する。損失が大きいデータほどデグレードが起きやすいので選択したい。しかしながら、損失が大きいデータばかりでは大きくデグレードを起こしてしまう場合がある。
【0009】
1つの側面では、本発明は、機械学習モデルの再訓練に際して、デグレードが生じにくい訓練データを生成することを目的とする。
【課題を解決するための手段】
【0010】
このため、この訓練データ生成プログラムは、入力した場合に機械学習モデルが正解を出力する第1の複数のデータと、不正解を出力する第2の複数のデータとを取得し、前記第1の複数のデータのそれぞれに対する前記機械学習モデルの出力を入力した場合の損失関数の値の大きさに応じた確率に基づいて、前記第1の複数のデータから第3の複数のデータを選択し、前記第2の複数のデータと前記第3の複数のデータとを含む訓練データを生成する、処理をコンピュータに実行させる。
【発明の効果】
【0011】
一実施形態によれば、機械学習モデルの再訓練に際して、デグレードが生じにくい訓練データを生成することができる。
【図面の簡単な説明】
【0012】
図1】実施形態の一例としての情報処理装置の機能構成を模式的に示す図である。
図2】実施形態の一例としての情報処理装置における訓練処理部による粒子群最適化を用いたパッチ生成方法を説明するための図である。
図3】実施形態の一例としての情報処理装置のサンプリング処理部による処理を説明するための図である。
図4】実施形態の一例としての情報処理装置におけるフィットネス計算部によるフィットネス値の算出方法を説明するための図である。
図5】実施形態の一例としての情報処理装置におけるサンプリング処理部の処理を説明するためのフローチャートである。
図6】実施形態の一例としての情報処理装置における最適化処理部の処理を説明するためのフローチャートである。
図7】実施形態の一例としての情報処理装置における最適化処理部の処理の具体例を示す図である。
図8】実施形態の一例としての情報処理装置の訓練処理部により機械学習モデルに対して修正を行なった場合と、従来手法により機械学習モデルに対して修正を行なった場合とを比較して示す図である。
図9】実施形態の一例としての情報処理装置のハードウェア構成を例示する図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して本訓練データ生成プログラム,訓練データ生成方法および情報処理装置にかかる実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態および各変形例を組み合わせる等)して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0014】
(A)構成
図1は実施形態の一例としての情報処理装置1の機能構成を模式的に示す図である。
【0015】
情報処理装置1は、訓練済みのニューラルネットワークモデル(機械学習モデル)の修正を行なうモデル修正機能を実現する。情報処理装置1は、図1に示すように、訓練処理部100としての機能を有する。
【0016】
訓練処理部100は、訓練済みの機械学習モデル(訓練済みモデル)の再訓練(機械学習)を行なう。訓練処理部100は、訓練データを生成する機能を有し、この生成した訓練データを用いて機械学習モデルの訓練を行なう。
【0017】
また、訓練処理部100は、訓練済みモデルにおける欠陥箇所特定を行なって修正対象とする重みを特定した後に、この修正対象とする重みについてパッチを生成し、訓練済みモデルに適用することで修正済みの訓練済みモデルを生成する。
【0018】
機械学習モデルは、例えば、入力されたデータを複数のクラスに分類するための分類器であってよい。機械学習モデルは、例えば、ディープラーニングのモデル(ディープニューラルネットワーク)であってもよい。ニューラルネットワークは、ハードウェア回路であってもよいし、プロセッサ11(図9参照)等によりコンピュータプログラム上で仮想的に構築される階層間を接続するソフトウェアによる仮想的なネットワークであってもよい。
【0019】
なお、訓練済みモデルにおける欠陥箇所特定は既知の手法で実現することができ、その説明は省略する。
【0020】
訓練処理部100は、例えば、メタヒューリスティックスで失敗を減らす重みの値を検索することでパッチ生成を行なってもよい。訓練処理部100は、粒子群最適化(PSO:Particle Swarm Optimization)により、ニューラルネットワークモデルにおける修正対象とする重みを設定し、機械学習モデルの再訓練を実現する。
【0021】
図2は実施形態の一例としての情報処理装置1における訓練処理部100による粒子群最適化を用いたパッチ生成方法を説明するための図である。
【0022】
粒子群最適化手法を用いたパッチ生成においては、複数(図2に示す例ではn個)の重みw1~wnをベクトルとして有する複数(図2に示す例ではk個)の粒子x1~xkを用いる。これらの複数の粒子x1~xkが粒子群に相当する。
【0023】
訓練処理部100は、これらの各粒子について、粒子の値(重み,パラメータ)を用いて重みを置換した機械学習モデルに、修正対象とする失敗データと、複数の成功データの中からサンプリングした成功データとを入力し、その結果に基づいてフィットネス値(fitness)をそれぞれ算出する。フィットネス値は、各粒子を評価するための評価値に相当する。
【0024】
訓練処理部100は、フィットネス値が最も高い(グローバルベスト:Global best)の粒子を特定し、このグローバルベストの粒子(第1の粒子)の値(パラメータ値)に近づけるように、他の各粒子(第2の粒子)の値(パラメータ値)を更新する。
【0025】
訓練処理部100は、このような処理を終了条件が満たされるまで繰り返し実行し、最終的なグローバルベストの粒子の値を機械学習モデルの重みとして反映させる。終了条件は、繰り返し回数が所定回数に到達することや、グローバルベストの粒子が一定回数変わらなくなることである。
【0026】
訓練処理部100は、図1に示すように、サンプリング処理部101および最適化処理部105を有する。
【0027】
サンプリング処理部101は、訓練処理部100が粒子群最適化を用いたパッチ生成を行なうに際して、複数の成功データの中から粒子群最適化に用いる成功データをサンプリングする。
【0028】
具体的には、サンプリング処理部101は、成功データを機械学習モデルに入力して得られた予測値と当該成功データにおける正解値とに基づいて算出される損失(損失関数の値)の大きさに応じたルーレット選択を行なう。すなわち、サンプリング処理部101は、損失が大きいデータ(成功データ)ほど高い確率で選択されるようなランダム選択を行なう。成功データをサンプリングすることを成功データサンプリングといってもよい。
【0029】
サンプリング処理部101は、図1に示すように、損失計算部102,確率分布変換部103および成功データサンプリング部104を含む。
【0030】
損失計算部102は、成功データを機械学習モデルに入力して得られた予測値と当該成功データにおける正解値とに基づいて、損失関数Lの値を算出する。以下、損失関数Lの値を、単に損失といってもよい。
【0031】
損失計算部102は、算出した損失を記憶装置13(図9参照)等の所定の記憶領域に記憶させる。
【0032】
確率分布変換部103は、損失計算部102が算出した各成功データの損失関数Lの値を、各成功データが選択される確率に変換することで、複数の成功データについて各成功データが選択される確率の分布(確率分布)を生成する。
【0033】
データsiの損失関数Lの値をL(si)と表す場合に、確率分布変換部103は、以下の式(1)に基づいて各成功データsiが選択される確率p(si)を算出する。
【0034】
【数1】
確率p(si)は、データsiを選択する確率を表す。
【0035】
確率分布変換部103は、0~1.000の区間を、複数の成功データの各確率p(si)の値に応じて案分(比例配分)することで、複数の成功データ間の確率分布を作成する。このように作成した確率分布を成功データ選択確率分布といってもよい。
【0036】
成功データ選択確率分布は、複数の成功データ(第1の複数のデータ)のそれぞれに対する機械学習モデルの出力を入力した場合の損失関数Lの値の大きさに応じた確率を表す。
【0037】
成功データ選択確率分布においては、損失の値が大きいほど選択される確率が高くなる。確率分布変換部103は、各成功データについて算出した確率p(si)の累積確率を求めてもよい。
【0038】
確率分布変換部103は、例えば、複数の成功データ間の確率分布を0~1の数値範囲内に設定してよい。
【0039】
確率分布変換部103は、算出した確率p(si)や成功データ選択確率分布の情報等を、記憶装置13等の所定の記憶領域に記憶させる。
【0040】
成功データサンプリング部104は、確率分布変換部103が生成した成功データ選択確率分布に基づき、複数の成功データの中から粒子群最適化手法において用いる成功データを選択する。以下、複数の成功データの中から選択される、粒子群最適化手法において用いられる成功データを成功データサンプルといってもよい。
【0041】
成功データサンプリング部104は、確率分布変換部103が設定した成功データ選択確率分布に応じた乱数を生成し、この乱数の値に対応する確率の成功データを成功データサンプルとして決定する。このような成功データサンプルの選択方法をルーレット選択といってよい。
【0042】
例えば、成功データ選択確率分布を0~1の数値範囲内に設定した場合には、成功データサンプリング部104は、0~1の数値範囲内で乱数を用意し、成功データ選択確率分布において、この乱数の値に対応する確率範囲に相当する成功データを成功データサンプルとして決定する。成功データサンプリング部104は、乱数を生成することで用意してもよく、また、図示しない乱数生成部によって生成された乱数を取得することで用意してもよい。
【0043】
成功データサンプリング部104は、複数の成功データの中からルーレット選択により成功データサンプルを選択する。このように、ある程度のランダム性を持たせた上で損失関数Lの値に近い成功データを選択することで、修正とデグレードとのトレードオフを緩やか(gradual)に持たせて探索することができる。
【0044】
成功データサンプルは、成功データ選択確率分布に基づいて複数の成功データ(第1の複数のデータ)から選択される第3の複数のデータに相当する。
【0045】
図3は実施形態の一例としての情報処理装置1のサンプリング処理部101による処理を説明するための図である。
【0046】
この図3においては、4つのデータセット(成功データ)の中から1つのデータセットを選択する例を示す。各データセットは、それぞれ画像データとラベルとを含む(符号P1参照)。図3に示す例において、画像データはそれぞれ交通標識であり、「17. No entry」,「14. Stop」,「3. Speed limit (60 km/h)」および「34. Turn left ahead」のいずれかのラベルが設定されている。
【0047】
損失計算部102は、これらの各データセット(成功データ)を、グローバルベストの重みを反映させた機械学習モデルに入力し、それぞれの損失を算出する(符号P2参照)。
【0048】
確率分布変換部103は、上記の式(1)に基づき、各データセット(成功データ)について、各データを選択する確率p(si)を算出する(符号P3参照)。
【0049】
確率分布変換部103は、0~1.000の区間を、複数の成功データの各確率p(si)の値に応じて案分(比例配分)することで、成功データ選択確率分布を作成する(符号P4参照)。
【0050】
図3において符号P4で示す成功データ選択確率分布においては、0.000~0.159の区間が「17. No entry」の画像の成功データに対応し、0.159~0.389の区間が「14. Stop」の画像の成功データに対応する。また、0.389~0.727の区間が「3. Speed limit (60 km/h)」の画像の成功データに対応し、0.727~1.000区間が「34. Turn left ahead」の画像の成功データに対応する。
【0051】
その後、成功データサンプリング部104が、0~1.000の数値範囲内で乱数を生成し、成功データ選択確率分布において、この乱数の値に対応する確率の成功データを成功データサンプルとして決定する(符号P5参照)。
【0052】
図3に示す例においては、成功データサンプリング部104が用意した乱数の値が0.531であり、この値は成功データ選択確率分布において、「3. Speed limit (60 km/h)」の画像の成功データに対応する。従って、成功データサンプリング部104は、「3. Speed limit (60 km/h)」の画像の成功データを成功データサンプルとして決定する。
【0053】
成功データサンプリング部104は、所定数の成功データサンプルを決定する。成功データサンプリング部104は、成功データ選択確率分布(損失関数Lの値の大きさに応じて設定された確率分布)において、乱数の値が対応する確率範囲に相当する成功データ(第1の複数のデータ)を、成功データサンプル(第3の複数のデータ)として選択する。
【0054】
成功データサンプリング部104は、成功データサンプルを記憶装置13等の所定の記憶領域に記憶させる。
【0055】
最適化処理部105は、粒子群最適化の各イテレーション中でグローバルベストの重みが変わった場合に、その重みが適用された機械学習モデルで新たに損失の大きい成功データの選択を行なう。すなわち、最適化処理部105は、粒子群最適化の各イテレーション中でグローバルベストの重みが変わった場合に、成功データのサンプリングを行なう。
【0056】
機械学習モデルにおいて重みが変わると各データの損失も変わるので、選択すべき損失の高い成功データは機械学習モデルによって異なる。
【0057】
新たな機械学習モデルにおいてデグレードが起きやすい成功データ、すなわち、決定境界に近い成功データを選択(再選択)することで、そのような成功データでデグレードが起きないような重みに誘導することができる。
【0058】
最適化処理部105は、図1に示すように、粒子初期化処理部106,フィットネス計算部107,グローバルベスト選択部108,再サンプリング判定部109,粒子更新部110および終了判定部111を有する。
【0059】
粒子群最適化においては、複数の重み(パラメータ値)の組み合わせを含む粒子を複数有する粒子群が用いられる。
【0060】
訓練処理部100は、粒子群において、フィットネス値(評価値)が最も高い粒子(グローバルベスト,第1の粒子)の値(重み,パラメータ値)に基づいて、当該グローバルベスト以外の粒子(第2の粒子)の値(重み,パラメータ値)を更新することで粒子群を最適化する。
【0061】
粒子群の最適化が完了した後に、訓練処理部100は、最終的なグローバルベストの粒子の値を機械学習モデルの重みに反映させる。これにより、修正済みモデルが生成される。
【0062】
粒子初期化処理部106は粒子群最適化手法における各粒子を正規分布で初期化する。なお、平均,分散は近傍の重み分布から決定してもよい。
【0063】
フィットネス計算部107は各粒子のフィットネス値(fitness)を算出する。
【0064】
図4は実施形態の一例としての情報処理装置1におけるフィットネス計算部107によるフィットネス値の算出方法を説明するための図である。
【0065】
フィットネス値は粒子を評価する評価値として用いることができる。フィットネス値を粒子評価値といってもよい。フィットネス値が最も高い(グローバルベスト)の粒子を、複数の粒子(粒子群)における最良の粒子といってもよい。
【0066】
フィットネス計算部107は、欠陥箇所特定により修正対象として特定された重みを粒子の値で置き換えた機械学習モデル(置換済みモデル)に、修正対象とする失敗データと、成功データサンプリング部104によって決定された成功データサンプルとを入力する。
【0067】
成功データサンプルは、入力した場合に機械学習モデルが正解を出力する第1の複数のデータに相当する。また、修正対象とする失敗データは、入力した場合に機械学習モデルが不正解を出力する第2の複数のデータに相当する。
【0068】
以下、修正対象とする失敗データを符号Inegで表す場合があり、成功データサンプルを符号Ipos_sampledで表す場合がある。
【0069】
失敗データInegを置換済みモデルに入力して得られた出力が正解となった数、すなわち、機械学習モデルの重みを置換することで修正できたデータの数を符号Npatchedで表す。また、失敗データInegの損失をL(Ineg)と表す。
【0070】
一方、成功データサンプルIpos_sampledを置換済みモデルに入力して得られた出力が正解となった数、すなわち、置換済みモデルにおいても成功のままのデータの数を符号Nintactで表す。また、成功データサンプルIpos_sampledの損失をL(Ipos)と表す。
【0071】
フィットネス計算部107は、以下の式(2)に基づいてフィットネス値(fitness)を算出する。
【0072】
fitness={(Npatched+1)/ (L(Ineg)+1)}+{ (Nintact+1)/ (L(Ipos)+1)}・・・(2)
フィットネス計算部107は、算出したフィットネス値(fitness)を記憶装置13等の所定の記憶領域に記憶させる。
【0073】
例えば、粒子x1, ・・・,xkの各フィットネス値を、fitness(x1),・・・,fitness(xk)と表してよい。
【0074】
例えば、粒子x1において、Npatched = 21,L(Ineg) = 1.184,Nintact = 981, L(Ipos) = 0.732の場合に、
fitness(x1)={(21 + 1)/ 1.184 + 1)}+{(98+1)/ (0.732+1)}=67.23
となる。
【0075】
グローバルベスト選択部108は、複数の粒子の中からフィットネス値が最も高い粒子をグローバルベストpgとして選択する。グローバルベストpgを以下のように表すことができる。
【0076】
【数2】
グローバルベスト選択部108は、選択したグローバルベストpgの情報を、グローバルベスト履歴として、記憶装置13等の所定の記憶領域に記憶させる。
【0077】
再サンプリング判定部109は、グローバルベストの粒子が変わった場合に、粒子群最適化に用いる成功データの再サンプリングを行なうことを決定する。
【0078】
再サンプリング判定部109は、グローバルベスト履歴を参照して、グローバルベスト選択部108によって選択されたグローバルベストの粒子が、1つ前のグローバルベストの粒子と同じであるかを確認する。
【0079】
グローバルベスト選択部108によって選択されたグローバルベストの粒子が、1つ前のグローバルベストの粒子と異なる場合に、再サンプリング判定部109は、サンプリング処理部101による成功データサンプルの取得を行なわせる。すなわち、粒子群最適化手法のイテレーションにおいてグローバルベストの重みが変わった場合に、成功データのサンプリングを行なう。
【0080】
再サンプリング判定部109は、更新後の粒子群における特定の粒子(第2の粒子)のフィットネス値(評価値)がグローバルベスト(第1の粒子)のフィットネス値よりも高い場合、すなわちグローバルベストが変わった場合に、サンプリング処理部101に対して、成功データサンプル(第3の複数のデータ)を選択する処理を実行させる。
【0081】
粒子更新部110は、グローバルベスト選択部108によって更新されたグローバルベストの粒子の値に近付けるように、グローバルベストの粒子以外の各粒子の値を更新する。
【0082】
粒子更新部110は、例えば、以下の式に基づいて各粒子の値を更新してもよい。
【0083】
xi(t) = xi(t-1) + vi(t-1)
vi(t) =c0 vi(t-1) + c1r1(pl - xi(t))+c2r2(pg - xi(t))
c0,c1,c2は定数、r1,r2は乱数、plはローカルベスト、pgはグローバルベストである。xi(t)およびvi(t)は粒子群の位置と速度を表す。
【0084】
終了判定部111は、粒子最適化処理の終了条件を満たすかを判定する。終了条件は、上述の如く、例えば、イテレーション(繰り返し回数)が所定回数に到達することや、グローバルベストの粒子が一定回数変わらなくなることである。
【0085】
終了判定部111は、終了条件を満たす場合に、粒子群の最適化処理を終了させる。粒子群の最適化処理を終了する場合には、終了判定部111は、グローバルベストの粒子の値を機械学習モデルの重みに反映させる。これにより、修正済みモデルが生成される。
【0086】
訓練データ生成部100は、上述の如く選択された成功データサンプル(第3の複数のデータ)と、複数の失敗データ(第2の複数のデータ)とを含む訓練データを生成する。
【0087】
(B)動作
上述の如く構成された実施形態の一例としての情報処理装置1におけるサンプリング処理部101の処理を、図5に示すフローチャート(ステップA1~A3)に従って説明する。
【0088】
成功データのサンプリングをpos_sampler(Ipos, M)と表してよい。Iposは成功データの集合を表し、Mは機械学習モデルを表す。
【0089】
ステップA1において、損失計算部102が、各成功データsi(si∈Ipos)を対象とする機械学習モデルMに入力し、損失関数の値L(si)を計算する。損失計算部102は、算出した損失関数の値L(si)を記憶装置13等の所定の記憶領域に記録する。
【0090】
ステップA2において、確率分布変換部103が、各成功データsiについて、損失関数の値L(si)に基づき、上記式(1)を用いて確率p(si)をそれぞれ算出する。また、確率分布変換部103は、成功データ選択確率分布を生成する。
【0091】
ステップA3において、成功データサンプリング部104が、成功データ選択確率分布に基づき、複数の成功データの中から粒子群最適化手法において用いる成功データサンプルを選択する。成功データサンプリング部104は、所定数の成功データサンプルを選択する。
【0092】
成功データサンプルの集合(選択した成功データ集合)をIpos_sampledとする。成功データサンプリング部104は、Ipos_sampledを空集合(Φ)を用いて初期化する。すなわち、Ipos_sampled={Φ}とする。
【0093】
成功データサンプリング部104は、0≦r<1の一様乱数rを用意する。また、成功データサンプリング部104は、累積合計d0を初期化して、d0 = 0とする。
【0094】
成功データサンプリング部104は、di = di-1 + p(si)として、di-1≦r<diであればsiを成功データサンプルとして選択する。すなわち、成功データサンプリング部104が、成功データ選択確率分布において、乱数rの値に対応する確率の成功データを成功データサンプルとして決定する。
【0095】
また、成功データサンプリング部104は、siがこれまで成功データサンプルとして選択されていなければ、当該siをIpos_sampledに加える。つまり、Ipos_sampled = Ipos_sampled∪{si}とする。
【0096】
一定数の成功データサンプルが集まったら、成功データサンプリング部104は、成功データサンプルの集合Ipos_sampledを出力し、処理を終了する。成功データサンプルの数が所定値に足りない場合には、成功データサンプリング部104は、新たな乱数rを用意し、以下同様の処理を繰り返し行なう。
【0097】
次に、実施形態の一例としての情報処理装置1における最適化処理部105の処理を、図7を参照しながら、図6に示すフローチャート(ステップB1~B10)に従って説明する。図7は、最適化処理部105の処理の具体例を示す図である。
【0098】
ステップB1において、最適化処理部105は、サンプリング処理部101に成功データサンプリングを実施させる。
【0099】
ステップB2において、粒子初期化処理部106が、粒子群最適化手法における各粒子を正規分布で初期化する。
【0100】
ステップB3において、イテレーション(iter)が所定値(max_iter)に到達するまで、ステップB10までの制御を繰り返し実施するループ処理を開始する。
【0101】
ステップB4において、フィットネス計算部107が、各粒子のフィットネス値(fitness)を算出する。
【0102】
図7に示す例においては、100個の粒子x1~x100のそれぞれに対して、フィットネス計算部107がフィットネス値を算出しており、例えば、iteration # tにおいて、粒子x1のフィットネス値は67.23であり、粒子x100のフィットネス値は52.11である。
【0103】
ステップB5において、グローバルベスト選択部108が、複数の粒子の中からfitnessの値が最も高い粒子をグローバルベストpgとして選択する。グローバルベスト選択部108は、選択したグローバルベストpgの情報を、グローバルベスト履歴に追加する。グローバルベスト履歴を符号histで表す。
【0104】
図7に示す例においては、例えば、iteration # tにおいて、粒子x1のフィットネス値は67.23であり、粒子x2のフィットネス値は70.79であり、粒子x100のフィットネス値は52.11である。iteration # tにおいて、粒子x2のフィットネス値70.79が最も高く、グローバルベスト選択部108は、この粒子x2をiteration # tにおけるグローバルベストとして選択する。
【0105】
ステップB6において、粒子更新部110が、グローバルベスト選択部108によって更新されたグローバルベストの粒子の値に近付けるように、グローバルベストの粒子以外の各粒子の値を更新する。
【0106】
すなわち、粒子更新部110は、フィットネス値(評価値)が最も高いグローバルベスト(第1の粒子)のパラメータに基づいて、このパラメータ値に近づけるように、グローバルベスト以外の各粒子(第2の粒子)のパラメータ値を更新する。
【0107】
ステップB7において、終了判定部111は、グローバルベストの更新が所定のイテレーション(iteration)の間行なわれていないかを確認する。グローバルベストの更新が所定のイテレーション(iteration)の間行なわれていない場合には(ステップB7のYESルート参照)、終了条件が満たされているので、処理を終了する。
【0108】
一方、グローバルベストの更新が所定のイテレーション(iteration)の間において行なわれている場合には(ステップB7のNOルート参照)、ステップB8に移行する。
【0109】
ステップB8において、再サンプリング判定部109が、グローバルベスト履歴を参照して、グローバルベスト選択部108によって選択されたグローバルベストの粒子が、1つ前のグローバルベストの粒子と同じであるかを確認する。
【0110】
ここで、1つ前のイテレーションにおけるグローバルベストの粒子をhist[iter -1]と表す。再サンプリング判定部109は、pg == hist[iter -1]であるか否かを判定する。
【0111】
グローバルベスト選択部108によって選択されたグローバルベストの粒子が、1つ前のイテレーションにおけるグローバルベストの粒子と異なる場合に(ステップB8のNOルート参照)、ステップB9に移行する。
【0112】
図7に示す例においては、iteration # t-1において、粒子x1のフィットネス値は67.23であり、粒子x2のフィットネス値は53.65であり、粒子x100のフィットネス値は49.71である。iteration # t-1においては、粒子x1のフィットネス値67.23が最も高く、この粒子x1がiteration # t-1におけるグローバルベストである。すなわち、iteration # tにおけるグローバルベストは粒子x2であり、1つ前のイテレーション(iteration # t-1)におけるグローバルベストの粒子x1と異なる。
【0113】
iteration # tにおいて、新たなグローバルベストの粒子x2のフィットネス値70.79は、iteration # t-1においてグローバルベストであった粒子x1のフィットネス値67.23よりも高い。
【0114】
ステップB9において、最適化処理部105は、サンプリング処理部101に成功データサンプリングを実施させる。すなわち、粒子群最適化手法のイテレーションにおいてグローバルベストの重みが変わった場合に、成功データのサンプリングを行なう。すなわち、成功データサンプルの更新を行なう。その後、ステップB10に移行する。
【0115】
また、ステップB8における確認の結果、グローバルベスト選択部108によって選択されたグローバルベストの粒子が、1つ前のグローバルベストの粒子と同じである場合にも(ステップB8のYESルート参照)、ステップB10に移行する。
【0116】
ステップB10においては、ステップB3に対応するループ端処理が実施される。ここで、イテレーション(iter)が所定値(max_iter)に到達すると、本フローが終了する。
【0117】
(C)効果
このように、実施形態の一例としての情報処理装置1によれば、サンプリング処理部101において、損失計算部102が算出した各成功データの損失関数の値に基づいて、確率分布変換部103が、複数の成功データがそれぞれ選択される確率の分布(確率分布)を生成する。
【0118】
そして、成功データサンプリング部104が、確率分布変換部103が設定した成功データ選択確率分布に応じた乱数を生成し、この乱数の値に対応する確率の成功データを成功データサンプルとして決定する。具体的には、成功データサンプリング部104が、損失が大きい成功データほど高い確率で選択されるランダム選択を行なう。
【0119】
これにより、ある程度のランダム性を持たせた上で損失関数Lの値に近い成功データを選択することで、修正とデグレードとのトレードオフを緩やか(gradual)に持たせて探索することができる。
【0120】
すなわち、従来手法の如く、決定境界層に近い成功データを選択する代わりに、複数の成功データの中から確率的にばらつきを持たせて成功データサンプルを選択することができ、デグレードの発生を抑止することができる。
【0121】
また、最適化処理部105において、再サンプリング判定部109が、粒子群最適化においてグローバルベストの粒子が変わった場合に、粒子群最適化に用いる成功データの再サンプリングを行なうことを決定する。
【0122】
粒子群最適化において、粒子の重みが変わると入力される各成功データの損失も変わる。グローバルベストの粒子の重みに応じてパラメータが変更された機械学習モデルにおいて、デグレードが生じ易い成功データを選択することで、このように選択した成功データでデグレードが生じないように訓練を行なうことで、デグレードが発生し難い機械学習モデルを生成することができる。また、ラベル毎のような局所的な修正においてデグレードが起きにくくなる。
【0123】
図8は実施形態の一例としての情報処理装置1の訓練処理部100により機械学習モデルに対して修正を行なった場合と、従来手法により機械学習モデルに対して修正を行なった場合とを比較して示す図である。
【0124】
この図8においては、精度,修正率および退行率を比較して示しており、符号P1は従来手法により機械学習モデルに対して修正を行なった場合を、符号P2は本情報処理装置1の訓練処理部100により機械学習モデルに対して修正を行なった場合を、それぞれ示す。
【0125】
この図8においては、機械学習モデルとしてVGG16を用い、データセットとしてCIFAR10を用いた例を示す。機械学習モデルの修正により生じるデグレードの発生は、退行率により表される。図8に示すように、従来手法では6.41%であった退行率が、本情報処理装置1の訓練処理部100により機械学習モデルに対して修正を行なった場合は2.66%の退行率となり、デグレードが生じにくくなっていることがわかる。
【0126】
(D)その他
図9は実施形態の一例としての情報処理装置1のハードウェア構成を例示する図である。
【0127】
情報処理装置1は、例えば、プロセッサ11,メモリ12,記憶装置13,グラフィック処理装置14,入力インタフェース15,光学ドライブ装置16,機器接続インタフェース17およびネットワークインタフェース18を構成要素として有する。これらの構成要素11~18は、バス19を介して相互に通信可能に構成される。
【0128】
プロセッサ(制御部)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種類以上の要素の組み合わせであってもよい。
【0129】
そして、プロセッサ11が情報処理装置1用の制御プログラム(訓練データ生成プログラム13a)を実行することにより、図1に例示した、サンプリング処理部101および最適化処理部105としての機能が実現される。
【0130】
なお、情報処理装置1は、例えばコンピュータ読み取り可能な非一時的な記録媒体に記録されたプログラムである訓練データ生成プログラム13aおよびOSプログラムを実行することにより、サンプリング処理部101および最適化処理部105としての機能を実現する。
【0131】
情報処理装置1に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、情報処理装置1に実行させる訓練データ生成プログラム13aを記憶装置13に格納しておくことができる。プロセッサ11は、記憶装置13内の訓練データ生成プログラム13aの少なくとも一部をメモリ12にロードし、ロードしたプログラムを実行する。
【0132】
また、情報処理装置1(プロセッサ11)に実行させる訓練データ生成プログラム13aを、光ディスク16a,メモリ装置17a,メモリカード17c等の非一時的な可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納された訓練データ生成プログラム13aは、例えばプロセッサ11からの制御により、記憶装置13にインストールされた後、実行可能になる。また、プロセッサ11が、可搬型記録媒体から直接訓練データ生成プログラム13aを読み出して実行することもできる。
【0133】
メモリ12は、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリ12のRAMは情報処理装置1の主記憶装置として使用される。RAMには、プロセッサ11に実行させるプログラムの少なくとも一部が一時的に格納される。また、メモリ12には、プロセッサ11による処理に必要な各種データが格納される。
【0134】
記憶装置13は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive)、ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータを格納するものである。記憶装置13は、情報処理装置1の補助記憶装置として使用される。記憶装置13には、OSプログラム,制御プログラムおよび各種データが格納される。制御プログラムには訓練データ生成プログラム13aが含まれる。
【0135】
なお、補助記憶装置としては、SCMやフラッシュメモリ等の半導体記憶装置を使用することもできる。また、複数の記憶装置13を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成してもよい。
【0136】
また、記憶装置13には、上述したサンプリング処理部101および最適化処理部105が各処理を実行する際に生成される各種データを格納してもよい。
【0137】
グラフィック処理装置14には、モニタ14aが接続されている。グラフィック処理装置14は、プロセッサ11からの命令に従って、画像をモニタ14aの画面に表示させる。モニタ14aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置等が挙げられる。
【0138】
入力インタフェース15には、キーボード15aおよびマウス15bが接続されている。入力インタフェース15は、キーボード15aやマウス15bから送られてくる信号をプロセッサ11に送信する。なお、マウス15bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル,タブレット,タッチパッド,トラックボール等が挙げられる。
【0139】
光学ドライブ装置16は、レーザ光等を利用して、光ディスク16aに記録されたデータの読み取りを行なう。光ディスク16aは、光の反射によって読み取り可能にデータを記録された可搬型の非一時的な記録媒体である。光ディスク16aには、DVD(Digital Versatile Disc),DVD-RAM,CD-ROM(Compact Disc Read Only Memory),CD-R(Recordable)/RW(ReWritable)等が挙げられる。
【0140】
機器接続インタフェース17は、情報処理装置1に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース17には、メモリ装置17aやメモリリーダライタ17bを接続することができる。メモリ装置17aは、機器接続インタフェース17との通信機能を搭載した非一時的な記録媒体、例えばUSB(Universal Serial Bus)メモリである。メモリリーダライタ17bは、メモリカード17cへのデータの書き込み、またはメモリカード17cからのデータの読み出しを行なう。メモリカード17cは、カード型の非一時的な記録媒体である。
【0141】
ネットワークインタフェース18は、ネットワークに接続される。ネットワークインタフェース18は、ネットワークを介してデータの送受信を行なう。ネットワークには他の情報処理装置や通信機器等が接続されてもよい。
【0142】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【0143】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【0144】
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0145】
(付記1)
入力した場合に機械学習モデルが正解を出力する第1の複数のデータと、不正解を出力する第2の複数のデータとを取得し、
前記第1の複数のデータのそれぞれに対する前記機械学習モデルの出力を入力した場合の損失関数の値の大きさに応じた確率に基づいて、前記第1の複数のデータから第3の複数のデータを選択し、
前記第2の複数のデータと前記第3の複数のデータとを含む訓練データを生成する、
処理をコンピュータに実行させることを特徴とする訓練データ生成プログラム。
【0146】
(付記2)
前記第3の複数のデータを選択する処理は、前記損失関数の値の大きさに応じて設定された確率分布において、乱数の値が対応する確率範囲に相当する前記第1の複数のデータを、前記第3の複数のデータとして選択する
処理を含むことを特徴とする、付記1に記載の訓練データ生成プログラム。
【0147】
(付記3)
複数のパラメータ値の組み合わせを含む粒子を複数有する粒子群において、評価値が最も高い第1の粒子の前記パラメータ値に基づいて、前記第1の粒子以外の第2の粒子の前記パラメータ値を更新し、
更新後の前記第2の粒子の前記評価値が前記第1の粒子の前記評価値よりも高い場合に、前記第3の複数のデータを選択する処理を前記コンピュータに実行させることを特徴とする、付記1または2に記載の訓練データ生成プログラム。
【0148】
(付記4)
前記機械学習モデルに含まれる一部のパラメータを、前記第1の粒子および前記第2の粒子のうち、前記評価値が最も高い粒子のパラメータ値を用いて更新する
処理を前記コンピュータに実行させることを特徴とする、付記3に記載の訓練データ生成プログラム。
【0149】
(付記5)
入力した場合に機械学習モデルが正解を出力する第1の複数のデータと、不正解を出力する第2の複数のデータとを取得し、
前記第1の複数のデータのそれぞれに対する前記機械学習モデルの出力を入力した場合の損失関数の値の大きさに応じた確率に基づいて、前記第1の複数のデータから第3の複数のデータを選択し、
前記第2の複数のデータと前記第3の複数のデータとを含む訓練データを生成する、
処理をコンピュータが実行することを特徴とする訓練データ生成方法。
【0150】
(付記6)
前記第3の複数のデータを選択する処理は、前記損失関数の値の大きさに応じて設定された確率分布において、乱数の値が対応する確率範囲に相当する前記第1の複数のデータを、前記第3の複数のデータとして選択する
処理を含むことを特徴とする、付記5に記載の訓練データ生成方法。
【0151】
(付記7)
複数のパラメータ値の組み合わせを含む粒子を複数有する粒子群において、評価値が最も高い第1の粒子の前記パラメータ値に基づいて、前記第1の粒子以外の第2の粒子の前記パラメータ値を更新し、
更新後の前記第2の粒子の前記評価値が前記第1の粒子の前記評価値よりも高い場合に、前記第3の複数のデータを選択する処理を前記コンピュータが実行することを特徴とする、付記5または6に記載の訓練データ生成方法。
【0152】
(付記8)
前記機械学習モデルに含まれる一部のパラメータを、前記第1の粒子および前記第2の粒子のうち、前記評価値が最も高い粒子のパラメータ値を用いて更新する
処理を前記コンピュータが実行することを特徴とする、付記7に記載の訓練データ生成方法。
【0153】
(付記9)
入力した場合に機械学習モデルが正解を出力する第1の複数のデータと、不正解を出力する第2の複数のデータとを取得し、
前記第1の複数のデータのそれぞれに対する前記機械学習モデルの出力を入力した場合の損失関数の値の大きさに応じた確率に基づいて、前記第1の複数のデータから第3の複数のデータを選択し、
前記第2の複数のデータと前記第3の複数のデータとを含む訓練データを生成する、
処理を実行する制御部を含むことを特徴とする情報処理装置。
【0154】
(付記10)
前記第3の複数のデータを選択する処理は、前記損失関数の値の大きさに応じて設定された確率分布において、乱数の値が対応する確率範囲に相当する前記第1の複数のデータを、前記第3の複数のデータとして選択する
処理を含むことを特徴とする、付記9に記載の情報処理装置。
【0155】
(付記11)
前記制御部が、
複数のパラメータ値の組み合わせを含む粒子を複数有する粒子群において、評価値が最も高い第1の粒子の前記パラメータ値に基づいて、前記第1の粒子以外の第2の粒子の前記パラメータ値を更新し、
更新後の前記第2の粒子の前記評価値が前記第1の粒子の前記評価値よりも高い場合に、前記第3の複数のデータを選択する処理を実行することを特徴とする、付記9または10に記載の情報処理装置。
【0156】
(付記12)
前記制御部が、
前記機械学習モデルに含まれる一部のパラメータを、前記第1の粒子および前記第2の粒子のうち、前記評価値が最も高い粒子のパラメータ値を用いて更新する
処理を実行することを特徴とする、付記11に記載の情報処理装置。
【符号の説明】
【0157】
1 情報処理装置
11 プロセッサ(制御部)
12 メモリ
13 記憶装置
13a 訓練データ生成プログラム
14 グラフィック処理装置
14a モニタ
15 入力インタフェース
15a キーボード
15b マウス
16 光学ドライブ装置
16a 光ディスク
17 機器接続インタフェース
17a メモリ装置
17b メモリリーダライタ
17c メモリカード
18 ネットワークインタフェース
18a ネットワーク
19 バス
100 訓練処理部
101 サンプリング処理部
102 損失計算部
103 確率分布変換部
104 成功データサンプリング部
105 最適化処理部
106 粒子初期化処理部
107 フィットネス計算部
108 グローバルベスト選択部
109 再サンプリング判定部
110 粒子更新部
111 終了判定部
図1
図2
図3
図4
図5
図6
図7
図8
図9