(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】機械学習プログラム、機械学習方法および情報処理装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20241203BHJP
【FI】
G06N20/00
(21)【出願番号】P 2023554195
(86)(22)【出願日】2021-10-21
(86)【国際出願番号】 JP2021039020
(87)【国際公開番号】W WO2023067782
(87)【国際公開日】2023-04-27
【審査請求日】2024-02-15
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】金月 寛彰
【審査官】真木 健彦
(56)【参考文献】
【文献】MAZANKIEWICZ Alan et al,INCREMENTAL REAL-TIME PERSONALIZATION IN HUMAN ACTIVITY RECOGNITION USING DOMAIN ADAPTIVE BATCH NORMALIZATION,arXiv:2005.12178v2,Cornell University,2020年12月21日,P.1-17,インターネット<URL:https://arxiv.org/pdf/2005.12178.pdf>
【文献】IMBREA Alexandru-Ionut,Automated Machine Learning Techniques for Data Streams,arXiv:2106.07317v1,Cornell University,2021年06月14日,全11頁,インターネット<URL:https://arxiv.org/pdf/2106.07317.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
正解ラベルを含まない第1のデータの第1の機械学習モデルへの入力に応じた前記第1の機械学習モデルの第1の出力のエントロピーを含む損失関数に基づいて、前記第1の機械学習モデルの第1の位置に対応する第1の一又は複数の層のパラメータを固定しつつ第2の位置に対応する第2の一又は複数の層のパラメータを更新することによって、第2の機械学習モデルを生成し、
前記第1のデータの前記第2の機械学習モデルへの入力に応じた前記第2の機械学習モデルの第2の出力のエントロピーを含む損失関数に基づいて、前記第2の機械学習モデルの前記第2の位置に対応する第3の一又は複数の層のパラメータは固定しつつ前記第1の位置に対応する第4の一又は複数の層のパラメータを更新することによって、第3の機械学習モデルを生成する、
処理をコンピュータに実行させる機械学習プログラム。
【請求項2】
生成された前記第3の機械学習モデルに前記第1のデータを入力し、前記第3の機械学習モデルの出力結果に基づき、前記第1のデータに対する予測を実行する、処理を前記コンピュータに実行させることを特徴とする請求項1に記載の機械学習プログラム。
【請求項3】
正解ラベルを含む訓練データの入力に応じた前記第1の機械学習モデルの出力結果と前記正解ラベルの誤差が小さくなるように、前記第1の機械学習モデルが有する各層のパラメータを更新することによって、前記第1の機械学習モデルを生成する、処理を前記コンピュータに実行させ、
前記第2の機械学習モデルを生成する処理は、
予測対象である前記第1のデータの前記第1の機械学習モデルの入力に応じた前記損失関数に基づいて、前記訓練データを用いて生成された前記第1の機械学習モデルを更新した前記第2の機械学習モデルを生成し、
前記第3の機械学習モデルを生成する処理は、
前記第1のデータの前記第2の機械学習モデルの入力に応じた前記損失関数に基づいて、前記第2の機械学習モデルを更新した前記第3の機械学習モデルを生成する、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項4】
前記第1の機械学習モデルは、少なくともBatch Normalization層とFully Connected層とを有する機械学習モデルであり、
前記第2の機械学習モデルを生成する処理は、
前記第1のデータの前記第1の機械学習モデルへの入力に応じた前記Batch Normalization層の出力のエントロピーを含む前記損失関数に基づいた前記エントロピーを最小化する機械学習により、前記第1の機械学習モデルの前記第1の位置に対応する前記Fully Connected層のパラメータを固定しつつ前記第2の位置に対応する前記Batch Normalization層のパラメータを更新することによって、前記第2の機械学習モデルを生成し、
前記第3の機械学習モデルを生成する処理は、
前記第1のデータの前記第2の機械学習モデルへの入力に応じた前記Fully Connected層の出力のエントロピーを含む前記損失関数に基づいた前記エントロピーを最小化する機械学習により、前記第2の機械学習モデルの前記第2の位置に対応する前記Batch Normalization層のパラメータを固定しつつ前記第1の位置に対応する前記Fully Connected層のパラメータを更新することによって、前記第3の機械学習モデルを生成する、
ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項5】
前記第1の位置に対応する第1の一又は複数の層は、機械学習により更新されるパラメータの数が閾値以上である各層であり、
前記第2の位置に対応する第1の一又は複数の層は、前記パラメータの数が前記閾値未満である各層である、ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項6】
前記損失関数は、機械学習により更新される更新対象の層の出力のエントロピーを条件付きエントロピーとして最小化するように、前記更新対象の層の重みを更新する損失関数である、ことを特徴とする請求項1に記載の機械学習プログラム。
【請求項7】
正解ラベルを含まない第1のデータの第1の機械学習モデルへの入力に応じた前記第1の機械学習モデルの第1の出力のエントロピーを含む損失関数に基づいて、前記第1の機械学習モデルの第1の位置に対応する第1の一又は複数の層のパラメータを固定しつつ第2の位置に対応する第2の一又は複数の層のパラメータを更新することによって、第2の機械学習モデルを生成し、
前記第1のデータの前記第2の機械学習モデルへの入力に応じた前記第2の機械学習モデルの第2の出力のエントロピーを含む損失関数に基づいて、前記第2の機械学習モデルの前記第2の位置に対応する第3の一又は複数の層のパラメータは固定しつつ前記第1の位置に対応する第4の一又は複数の層のパラメータを更新することによって、第3の機械学習モデルを生成する、
処理をコンピュータが実行する機械学習方法。
【請求項8】
正解ラベルを含まない第1のデータの第1の機械学習モデルへの入力に応じた前記第1の機械学習モデルの第1の出力のエントロピーを含む損失関数に基づいて、前記第1の機械学習モデルの第1の位置に対応する第1の一又は複数の層のパラメータを固定しつつ第2の位置に対応する第2の一又は複数の層のパラメータを更新することによって、第2の機械学習モデルを生成し、
前記第1のデータの前記第2の機械学習モデルへの入力に応じた前記第2の機械学習モデルの第2の出力のエントロピーを含む損失関数に基づいて、前記第2の機械学習モデルの前記第2の位置に対応する第3の一又は複数の層のパラメータは固定しつつ前記第1の位置に対応する第4の一又は複数の層のパラメータを更新することによって、第3の機械学習モデルを生成する、
制御部を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習プログラム等に関する。
【背景技術】
【0002】
データの識別や分類などを行う機械学習モデルが利用されている。機械学習モデルの運用では、時間経過に伴い、機械学習に使用した正解ラベル付きの訓練データとはデータの分布や性質などが徐々に異なってくる「コンセプトドリフト」が発生することがある。機械学習モデルは、訓練データの通りに判別や分類を行うので、コンセプトドリフトにより運用中に入力データの傾向(データ分布)が変化すると、精度が劣化する。このようなコンセプトドリフト後のデータに対応させるために、新たな訓練データを用いて機械学習モデルの再訓練が行われる。
【先行技術文献】
【非特許文献】
【0003】
【文献】Sergey Ioffe,Christian Szegedy,「Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shift」,arXiv:1502.03167v3 [cs.LG] 2 Mar 2015
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、機械学習モデルの精度を維持することが難しい。例えば、コンセプトドリフトが発生するたびに、逐次的に再訓練を実行することで、機械学習モデルの精度劣化を抑制することができるが、コンセプトドリフトに対応した正解ラベル付きの訓練データをその都度用意するには工数がかかる。このため、精度が劣化した場合に、訓練データが用意できるまで、精度が劣化した機械学習モデルを使用し続けることにもなる。
【0005】
一つの側面では、機械学習モデルの精度劣化を抑制することができる機械学習プログラム、機械学習方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
第1の案では、機械学習プログラムは、正解ラベルを含まない第1のデータの第1の機械学習モデルへの入力に応じた前記第1の機械学習モデルの第1の出力のエントロピーを含む損失関数に基づいて、前記第1の機械学習モデルの第1の位置に対応する第1の一又は複数の層のパラメータを固定しつつ第2の位置に対応する第2の一又は複数の層のパラメータを更新することによって、第2の機械学習モデルを生成し、前記第1のデータの前記第2の機械学習モデルへの入力に応じた前記第2の機械学習モデルの第2の出力のエントロピーを含む損失関数に基づいて、前記第2の機械学習モデルの前記第2の位置に対応する第3の一又は複数の層のパラメータは固定しつつ前記第1の位置に対応する第4の一又は複数の層のパラメータを更新することによって、第3の機械学習モデルを生成する、処理をコンピュータに実行させる。
【発明の効果】
【0007】
一実施形態によれば、機械学習モデルの精度劣化を抑制することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施例1にかかる機械学習モデルを説明する図である。
【
図2】
図2は、機械学習モデルの出力結果のモニタリングを説明する図である。
【
図3】
図3は、コンセプトドリフトを説明する図である。
【
図4】
図4は、実施例1にかかる機械学習モデルの運用を説明する図である。
【
図5】
図5は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図6】
図6は、訓練データDBに記憶される訓練データの例を示す図である。
【
図7】
図7は、出力結果DBに記憶される情報の例を示す図である。
【
図9】
図9は、運用時の訓練手法を説明する図である。
【
図12】
図12は、実施例1にかかる逐次訓練処理の流れを示すフローチャートである。
【
図13】
図13は、実施例1にかかるバッチ訓練処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
以下に、本発明にかかる機械学習プログラム、機械学習方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【0010】
図1は、実施例1にかかる機械学習モデルを説明する図である。
図1に示すように、学習フェーズでは、情報処理装置10は、正解ラベル付きの訓練データを用いた機械学習により機械学習モデルを生成する。そして、運用フェーズでは、情報処理装置10は、生成された機械学習モデルに、運用時に取得される入力データを入力して、多クラス分類や2クラス分類などを実行する。例えば、情報処理装置10は、機械学習モデルを用いて、画像データに写っている人物や物を特定する。
【0011】
機械学習モデルの導入後、機械学習モデルの精度は、時間の経過に伴い劣化することがあるので、出力結果のモニタリングを行うことが多い。
図2は、機械学習モデルの出力結果のモニタリングを説明する図である。
図2に示すように、管理者等は、運用時の入力データの入力に応じて機械学習モデルが出力した出力結果を監視する。このとき、管理者等は、モニタリングにより通常とは異なる異常値の検出を行い、異常値が所定回数発生した場合などに機械学習モデルの再訓練が必要と判断する。また、管理者等は、モニタリングにより精度劣化の予測を行い、精度が許容精度を下回ると判断した場合に、機械学習モデルの再訓練が必要と判断する。
【0012】
時間の経過に伴う機械学習モデルの精度劣化の要因の一つは、データの分布が変化するコンセプトドリフトが挙げられる。
図3は、コンセプトドリフトを説明する図である。
図3に示すように、時間経過とともに、クラスAの分布がA
1からA
2へ変化する。この場合、機械学習モデルは、クラスA
1に基づく機械学習を実行しているので、クラスA
2のデータが入力されてもクラスAと正確に識別することができない。なお、コンセプトドリフトによるデータの変化例としては、スパムフィルタにフィルタリングされないように変化するメールスパム、電気需要や株価、夏から冬や朝から夜などのように変化する撮像環境に依存する画像データなどが挙げられる。
【0013】
このようなコンセプトドリフト後のデータに機械学習モデルを追従させるために、新たな訓練データを用いて機械学習モデルの再訓練が行われるが、コンセプトドリフトに対応した正解ラベル付きの新たな訓練データをその都度用意するには工数がかかる。
【0014】
なお、コンセプトドリフトに追従させる技術として、半教師学習も知られている。半教師学習は、データの分布が同じという仮定のもとで、大量のラベルが付いていないデータを用いて学習を行う手法である。ただし、コンセプトドリフトのようなデータの分布が変化する場合に、半教師学習を適用すると精度が逆に劣化にしてしまう。なぜなら、正解ラベルのない運用データは、正解ラベルがある学習データに比べて非常に少なく、少量の運用データかつ分布が変化した運用データを用いて半教師学習を実行すると過学習が起こり、精度劣化を引き起こすからである。
【0015】
そこで、実施例1にかかる情報処理装置10は、機械学習モデルの運用中のコンセプトドリフトを正解ラベルなしで追従するために、特定の層(レイヤー)ごとに順番に、射影空間のデータ分布を高密度な射影を形成するための損失関数を適用させることで、コンセプトドリフトに精度よく追従させる。
【0016】
図4は、実施例1にかかる機械学習モデルの運用を説明する図である。
図4に示すように、学習フェーズでは、情報処理装置10は、正解ラベル付きの訓練データを用いた機械学習により機械学習モデルを生成する。運用フェーズでは、情報処理装置10は、運用時の入力データを機械学習モデルに入力して機械学習モデルの機械学習を実行し、機械学習後の機械学習モデルに入力データを入力して、多クラス分類や2クラス分類などを実行する。
【0017】
例えば、情報処理装置10は、運用データである正解ラベルを含まない第1のデータの第1の機械学習モデルへの入力に応じた第1の機械学習モデルの第1の出力のエントロピーを含む損失関数に基づいて、第1の機械学習モデルの第1の位置に対応する第1の一又は複数の層のパラメータを固定しつつ第2の位置に対応する第2の一又は複数の層のパラメータを更新することによって、第1の機械学習モデルを更新した第2の機械学習モデルを生成する。
【0018】
また、情報処理装置10は、第1のデータの第2の機械学習モデルへの入力に応じた第2の機械学習モデルの第2の出力のエントロピーを含む損失関数に基づいて、第2の機械学習モデルの第2の位置に対応する第3の一又は複数の層のパラメータは固定しつつ第1の位置に対応する第4の一又は複数の層のパラメータを更新することによって、第2の機械学習モデルを更新した第3の機械学習モデルを生成する。
【0019】
すなわち、情報処理装置10は、訓練データと比べて少ない運用データを用いた教師なしの機械学習を実行する際に、機械学習モデル14が有する更新対象のパラメータの数が異なる複数の層を一気に更新するのではなく、段階的に更新することで、過学習による精度劣化を抑制する。
【0020】
そして、情報処理装置10は、生成された第3の機械学習モデルに第1のデータを再度入力し、第3の機械学習モデルの出力結果に基づき、第1のデータに対する予測を実行する。
【0021】
このように、情報処理装置10は、機械学習モデルの運用中に、内部空間が高密度になりやすい学習ができる損失関数(Conditional Entropy Minimization)を特定のレイヤーごとに順番に適用することで、運用と訓練とを並行して実行することができ、機械学習モデルの精度劣化を抑制することができる。
【0022】
図5は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。
図5に示すように、情報処理装置10は、通信部11、記憶部12、制御部20を有する。
【0023】
通信部11は、他の装置との間の通信を制御する。例えば、通信部11は、サーバ、カメラ、管理者端末などの外部装置から、機械学習モデルによる予測対象の運用データを受信する。
【0024】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する。例えば、記憶部12は、訓練データDB13、機械学習モデル14、出力結果DB15を記憶する。
【0025】
訓練データDB13は、機械学習モデル14の機械学習に用いられる訓練データを記憶する。
図6は、訓練データDB13に記憶される訓練データの例を示す図である。
図6に示すように、訓練データDB13に記憶される各訓練データは、「入力データ、正解ラベル」を有する。
【0026】
ここで、「入力データ」は、機械学習の説明変数であり、例えば画像データなどである。「正解ラベル」は、機械学習の目的変数であり、例えば画像データに写っている人物などである。
図6の例では、データA1とラベルAとが対応付けられた訓練データを図示している。例えば、訓練データDB13は、画像分類などの機械学習モデル14を生成する場合には、訓練データとして、正解ラベル「犬」が付与された画像データや正解ラベル「猫」が付与された画像データなどを記憶する。
【0027】
機械学習モデル14は、機械学習により生成されるモデルである。例えば、機械学習モデル14は、ディープニューラルネットワーク(DNN:Deep Neural Network)などを用いたモデルであり、ニューラルネットワークや他の機械学習アルゴリズムを採用することができる。なお、本実施例では、後述する制御部により機械学習モデル14が生成される例を説明するが、他の装置で生成されたものでもよい。
【0028】
出力結果DB15は、機械学習モデル14の運用により得られた出力結果を記憶する。具体的には、出力結果DB15は、機械学習モデル14により予測された予測結果を記憶する。
図7は、出力結果DB15に記憶される情報の例を示す図である。
図7に示すように、出力結果DB15は、「運用データ、出力結果」を対応付けて記憶する。ここで、「運用データ」は、機械学習モデル14に入力された予測対象のデータであり、「出力結果」は、機械学習モデル14により予測された予測結果である。
図7の例では、機械学習モデル14にデータXを入力して、出力結果Xが取得されたことが示されている。
【0029】
制御部20は、情報処理装置10全体を司る処理部である。例えば、制御部20は、事前処理部21、運用処理部22を有する。
【0030】
事前処理部21は、機械学習モデル14の運用前の事前処理として、機械学習モデル14を生成する。具体的には、事前処理部21は、訓練データDB13に記憶される各訓練データを用いた機械学習により、機械学習モデル14の各種パラメータを更新することで、機械学習モデル14を生成する。
【0031】
図8は、事前処理を説明する図である。
図8に示すように、事前処理部21は、訓練データDB13の訓練データ「データA1、ラベルA」を機械学習モデル14に入力し、機械学習モデル14の出力結果と正解ラベル「ラベルA」との誤差が小さくなるように、機械学習モデル14の機械学習を実行する。
【0032】
運用処理部22は、予測部23と機械学習部24を有し、機械学習モデル14による予測と機械学習モデル14の再訓練とを実行する。
【0033】
予測部23は、生成された機械学習モデル14を用いて予測を実行する。例えば、予測部23は、予測対象の運用データXを受信すると、運用データXを機械学習モデル14に入力して出力結果Xを取得する。そして、予測部23は、「運用データX」と「出力結果X」と対応付けて出力結果DB15に格納する。
【0034】
機械学習部24は、機械学習モデル14の運用中に、運用データを用いた機械学習により機械学習モデル14の訓練を実行する。すなわち、機械学習部24は、運用開始後に、機械学習モデル14の再訓練を行って、機械学習モデル14を更新する。
【0035】
具体的には、機械学習部24は、運用データの機械学習モデル14の入力に応じた機械学習モデル14の第1の出力のエントロピーを含む損失関数に基づいて、機械学習モデル14の第1の位置に対応する第1の一又は複数の層のパラメータを固定しつつ第2の位置に対応する第2の一又は複数の層のパラメータを更新する。このようにして、機械学習部24は、機械学習モデル14における第2の位置の層のパラメータが更新された、第2の機械学習モデルの一例である更新後の機械学習モデル14を生成する。
【0036】
続いて、機械学習部24は、同じ運用データの更新後の機械学習モデル14への入力に応じた更新後の機械学習モデル14の第2の出力のエントロピーを含む損失関数に基づいて、更新後の機械学習モデル14の第2の位置に対応する第3の一又は複数の層のパラメータは固定しつつ第1の位置に対応する第4の一又は複数の層のパラメータを更新する。このようにして、機械学習部24は、更新後の機械学習モデル14における第1の位置の層のパラメータがさらに更新された、第3の機械学習モデルの一例である更新後の機械学習モデル14を生成する。
【0037】
例えば、機械学習モデル14に、BN(Batch Normalization)層とFC(Fully Connected)層とが含まれる例で説明する。この場合、機械学習部24は、機械学習モデル14の第1の位置に対応する一又は複数のFC層のパラメータを固定しつつ、機械学習モデル14の第2の位置に対応する一又は複数のBN層のパラメータを、運用データを用いた教師なし学習により更新して、機械学習モデル14を更新する。続いて、機械学習部24は、更新後の機械学習モデル14の第2の位置に対応する一又は複数のBN層の更新後のパラメータを固定しつつ、機械学習モデル14の第1の位置に対応する一又は複数のFC層のパラメータを、運用データを用いた教師なし学習により更新して、機械学習モデル14をさらに更新する。
【0038】
ここで、運用時の機械学習について詳細に説明する。
図9は、運用時の訓練手法を説明する図である。
図9に示すように、機械学習モデル14には、BN層とFC層とが含まれる。ここで、BN層は、バッチごとの入力の平均を0、標準偏差を1にするよう正規化する層であり、Future Extractorの中の一部で、通常、畳み込み層の間と間に何層か存在する。なお、層の数はモデルのアーキテクチャにより変わる。FC層は、Future Extractorで特徴量抽出が行われたあとにその特徴を使用して実際に分類する全結合層のことであり、この全結合層(通常1~3層)は最終層として配置され、予想クラス数分のアウトプットを行う。
【0039】
そこで、機械学習部24は、BN層以外の各層のパラメータが更新されないように固定しつつBN層のパラメータを更新する更新処理(N-Step)と、FC層以外の各層のパラメータが更新されないように固定しつつFC層のパラメータを更新する更新処理(FC-Step)とを順番に実行する。このN-Stepは、正規化したあとにアフィン変換がかかるがそのときのパラメータのみを調整する更新処理であり、FC-Stepは、FC層の重みを直接調整する更新処理である。
【0040】
また、N-StepおよびFC-Stepで使用する損失関数には、式(1)に示す条件付きエントロピーを最小化するように重みを更新する損失関数を採用することができる。式(1)におけるCはクラス数、yハットは正解ラベルではなく機械学習モデル14の予測クラスである。この場合、機械学習部24は、深層学習の空間内で、同じクラスに分類されるデータ間が集まるように機械学習を実行する。
【0041】
【0042】
なお、損失関数には、Pseudo Labelingを採用することもできる。この場合、交差エントロピーを使用することになるが、交差エントロピーは通常、正解ラベルが使用される。そこで、本実施例では、正解ラベルyではなく、代わりにモデルの予測yハットを用いて交差エントロピーの算出が行われる。別例として、Virtual Adversarial Trainingを採用することもできる。この場合、分類として間違い易い方向の摂動(ノイズ)を加え、ノイズ前とノイズ挿入後のKL距離(Kullback-Leibler divergence)を最小化するように機械学習が実行される。
【0043】
上述したように、情報処理装置10は、機械学習モデル14の運用フェーズでは、予測と機械学習(再訓練)を実行することで、コンセプトドリフトに追従することができる。ここで、情報処理装置10は、運用フェーズにおける機械学習を、運用データごとに逐次的に実行することもでき、ある程度の運用データをまとめてバッチ処理で実行することもできるので、その詳細について説明する。なお、情報処理装置10は、いずれに手法により機械学習モデル14の更新を行う場合でも、N-StepとFC-Stepとを交互に、指定されたイテレーション数分実行し、学習率を徐々に低下させていく。
【0044】
図10は、運用時の逐次訓練を説明する図である。
図10に示すように、運用処理部22は、運用データが入力されるごとに、機械学習モデル14の機械学習を実行し、パラメータ更新後の機械学習モデル14を用いて予測を実行することができる。
【0045】
例えば、運用処理部22は、運用データXを受信すると、運用データXを訓練データに用いたN-Stepにより、機械学習モデル14のBN層のパラメータを更新する。続いて、運用処理部22は、BN層が更新された機械学習モデル14に対して、同じ運用データXを訓練データに用いたFC-Stepにより、機械学習モデル14のFC層のパラメータを更新する。そして、運用処理部22は、BN層、FC層の順に更新された機械学習モデル14に運用データXを入力し、出力結果Xを取得する。
【0046】
その後、運用処理部22は、新たな運用データYを受信すると、運用データYを訓練データに用いたN-Stepにより、機械学習モデル14のBN層のパラメータを更新する。続いて、運用処理部22は、BN層が更新された機械学習モデル14に対して、同じ運用データYを訓練データに用いたFC-Stepにより、機械学習モデル14のFC層のパラメータを更新する。そして、運用処理部22は、BN層、FC層の順に更新された機械学習モデル14に運用データYを入力し、出力結果Yを取得する。
【0047】
さらにその後、運用処理部22は、新たな運用データZを受信すると、運用データZを訓練データに用いたN-Stepにより、機械学習モデル14のBN層のパラメータを更新する。続いて、運用処理部22は、BN層が更新された機械学習モデル14に対して、同じ運用データZを訓練データに用いたFC-Stepにより、機械学習モデル14のFC層のパラメータを更新する。そして、運用処理部22は、BN層、FC層の順に更新された機械学習モデル14に運用データZを入力し、出力結果Zを取得する。
【0048】
このように、情報処理装置10は、逐次的に機械学習を実行することで、コンフリクトドリフトにリアルタイムに追従することができ、機械学習モデル14の精度を高精度に維持することができる。
【0049】
図11は、運用時のバッチ訓練を説明する図である。
図11に示すように、運用処理部22は、運用データが入力されるごとに予測を実行し、一定数の運用データに対する処理が完了した場合や運用開始から一定時間経過した場合に、バッチ処理により機械学習モデル14の機械学習を実行し、機械学習モデル14のパラメータを更新することができる。
【0050】
例えば、運用処理部22は、運用データX1を受信すると、運用データX1を機械学習モデル14に入力し、出力結果X1を取得する。このような予測処理が運用データXAに対してまで実行される。その後、バッチ処理のタイミングになると、運用処理部22は、それまでに受信された運用データX1から運用データXAまでの各データを訓練データに用いたN-Stepにより、機械学習モデル14のBN層のパラメータを更新する。続いて、運用処理部22は、BN層が更新された機械学習モデル14に対して、同じ運用データX1から運用データXAまでの各データを訓練データに用いたFC-Stepにより、機械学習モデル14のFC層のパラメータを更新する。運用処理部22は、指定されたイテレーション数のN-StepとFC-Stepとを繰り返したのち、BN層、FC層の順に更新された機械学習モデル14を用いて、その後の運用データに対する予測を再開する。
【0051】
その後、運用処理部22は、運用データXBを受信すると、運用データXBを機械学習モデル14に入力し、出力結果XBを取得して予測を実行する。このような予測処理が運用データXCに対してまで実行される。その後、バッチ処理のタイミングになると、運用処理部22は、再開後に受信された運用データXBから運用データXCまでの各データを訓練データに用いたN-Stepにより、機械学習モデル14のBN層のパラメータを更新する。続いて、運用処理部22は、BN層が更新された機械学習モデル14に対して、同じ運用データXBから運用データXCまでの各データを訓練データに用いたFC-Stepにより、機械学習モデル14のFC層のパラメータを更新する。運用処理部22は、指定されたイテレーション数のN-StepとFC-Stepとを繰り返したのち、BN層、FC層の順に更新された機械学習モデル14を用いて、その後の運用データに対する予測を再開する。
【0052】
このように、情報処理装置10は、バッチ処理で機械学習を実行することで、高速な予測処理を維持しつつコンフリクトドリフトに追従することができ、精度と処理速度との両立を図ることができる。
【0053】
図12は、実施例1にかかる逐次訓練処理の流れを示すフローチャートである。なお、イテレーション数が1である例で説明するが、イテレーション数は任意に設定変更することができる。
【0054】
図12に示すように、事前処理部21は、処理開始が指示されると(S101:Yes)、訓練データを用いて機械学習モデル14を生成する(S102)。
【0055】
その後、運用処理部22は、運用データを受信すると(S103:Yes)、運用データを機械学習モデル14に入力して順伝播を実行し、機械学習モデル14の出力を得る(S104)。続いて、運用処理部22は、順伝播の結果を用いて、BN層のみにエントロピーを最小化するように誤差逆伝播を実行し、BN層のパラメータを更新する(S105)。
【0056】
さらに、運用処理部22は、運用データを機械学習モデル14に入力して順伝播を実行し、機械学習モデル14の出力を得る(S106)。続いて、運用処理部22は、順伝播の結果を用いて、FC層のみにエントロピーを最小化するように誤差逆伝播を実行し、FC層のパラメータを更新する(S107)。
【0057】
その後、運用処理部22は、BN層、FC層が順番に更新された機械学習モデル14に、運用データを再度入力して順伝播させて予測を実行し(S108)、出力結果(予測結果)を取得する(S109)。
【0058】
そして、運用を継続する場合(S110:No)、S103以降が繰り返され、運用を終了する場合(S110:Yes)、運用処理部22は、処理を終了する。なお、S104からS107は、指定されたイテレーション数分実行される。
【0059】
図13は、実施例1にかかるバッチ訓練処理の流れを示すフローチャートである。
図13に示すように、事前処理部21は、処理開始が指示されると(S201:Yes)、訓練データを用いて機械学習モデル14を生成する(S202)。
【0060】
そして、バッチ処理タイミングではなく(S203:No)、運用データを受信した場合(S204:Yes)、運用処理部22は、機械学習モデル14に運用データを入力して予測を実行し(S205)、出力結果を取得する(S206)。
【0061】
その後、運用を継続する場合(S207:No)、S203以降が繰り返され、運用を終了する場合(S207:Yes)、運用処理部22は、処理を終了する。
【0062】
一方、S204において、運用処理部22は、運用データを受信しない場合(S204:No)、S203以降を繰り返す。
【0063】
また、S203において、運用処理部22は、バッチ処理タイミングである場合(S203:Yes)、バッチ処理を実行して機械学習モデル14を更新し(S208)、S204以降を実行する。なお、バッチ処理は、
図12のS104からS107に対応し、指定されたイテレーション数分実行される。
【0064】
上述したように、情報処理装置10は、運用前に生成された元の機械学習モデル14のアーキテクチャを変えることなく、機械学習モデル14の一部のレイヤーの重みの調整だけで、コンセプトドリフトに追従することができる。また、情報処理装置10は、運用中に、コンセプトドリフト検出用に他の機械学習モデルや、コンセプトドリフト追従用に他の機械学習モデルを用意する必要がないので、運用中の機械学習モデル14のコンセプトドリフトへの適用による精度劣化の抑制と迅速な予測を両立させることができる。
【0065】
ここで、正解ラベル付きのオープンデータセットにより訓練した各機械学習モデルに対して、コンセプトドリフトを発生させた場合の精度劣化の検証結果を説明する。各機械学習モデルには、訓練データ後の再訓練を行わない元モデル、TTN(Tree Tensor Network)を用いた機械学習モデル、PL(Pseudo-Label)法を用いた機械学習モデル、実施例1による手法であってN-Step、FC-Stepの順に更新した機械学習モデル、実施例1による手法であってFC-Step、N-Stepの順に更新した機械学習モデルを準備した。また、コンセプトドリフトは、オープンデータセットの各画像データに対して、ガウスノイズ、ショットノイズ、インパルスノイズ、デフォーカスブラー、グラスブラーのそれぞれを用いて、何らかのノイズを付加した画像データを生成した。
【0066】
検証は、訓練に使用した画像データとノイズが付加された画像データとを各機械学習モデルに入力したときの出力結果のエラー率を評価した。
図14は、精度劣化の比較を説明する図である。
図14に示すように、各ノイズが付加された画像データについて、元モデル、TNT法、PL法のいずれよりも、実施例1による手法が、エラー率が少ないことが検証された。また、実施例1による手法では、BN層を更新するN-Stepを先に実行した方がエラー率も若干小さいこともわかった。上述したように、実施例1による手法は、参考となる他のいずれの手法と比較しても、機械学習モデルの精度劣化を抑制することができる。
【0067】
上記実施例で用いたデータ例、数値例、層数例、各DBの情報等は、あくまで一例であり、任意に変更することができる。また、情報処理装置10は、N-StepとFC-Stepのいずれを先に実行してもよい。
【0068】
また、運用中の機械学習(再訓練)の対象は、BN層とFC層とに限ったものではない。例えば、情報処理装置10は、機械学習モデル14が有する各層を、パラメータ数が所定値未満である第1の層群とパラメータ数が所定値以上である第2の層群とに分類する。そして、情報処理装置10は、運用データを用いた機械学習により、第2の属性群の各層のパラメータを固定しつつ第1の属性の各層のパラメータ更新を実行した後、第1の属性群の各層のパラメータを固定しつつ第2の属性の各層のパラメータ更新を実行することもできる。
【0069】
また、上記実施例では、訓練データを用いて生成された機械学習モデル14の運用中を例にして説明したが、実施例1で説明したN-Stepなどの手法の適用場面は、運用中に限ったことではない。例えば、訓練データとは異なる環境に機械学習モデル14を適用する場合に、適用(運用)に先立って、適用先のデータを用いた上記N-StepおよびFC-Stepを実行して、運用開始前に機械学習モデル14を適用環境に予め適用させることもできる。なお、異なる環境としては、画像データの撮像環境や画像データを撮像するカメラの解像度を含む性能などが挙げられる。
【0070】
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更されてもよい。
【0071】
また、各装置の構成要素の分散や統合の具体的形態は図示のものに限られない。例えば、事前処理部21と運用処理部22とが統合されてもよい。つまり、その構成要素の全部または一部は、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合されてもよい。さらに、各装置の各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0072】
図15は、ハードウェア構成例を説明する図である。
図15に示すように、情報処理装置10は、通信装置10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図15に示した各部は、バス等で相互に接続される。
【0073】
通信装置10aは、ネットワークインタフェースカードなどであり、他の装置との通信を行う。HDD10bは、
図5に示した機能を動作させるプログラムやDBを記憶する。
【0074】
プロセッサ10dは、
図5に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図5等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、情報処理装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、事前処理部21と運用処理部22等と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、事前処理部21と運用処理部22等と同様の処理を実行するプロセスを実行する。
【0075】
このように、情報処理装置10は、プログラムを読み出して実行することで機械学習方法を実行する情報処理装置として動作する。また、情報処理装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、情報処理装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、上記実施例が同様に適用されてもよい。
【0076】
このプログラムは、インターネットなどのネットワークを介して配布されてもよい。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行されてもよい。
【符号の説明】
【0077】
10 情報処理装置
11 通信部
12 記憶部
13 訓練データDB
14 機械学習モデル
15 出力結果DB
20 制御部
21 事前処理部
22 運用処理部
23 予測部
24 機械学習部