(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025025505
(43)【公開日】2025-02-21
(54)【発明の名称】分散学習システムおよび学習データ評価方法
(51)【国際特許分類】
G06N 3/098 20230101AFI20250214BHJP
【FI】
G06N3/098
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023130323
(22)【出願日】2023-08-09
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】寺下 直行
(57)【要約】
【課題】中央サーバーを用いない分散システムにおいて、任意の計算機が自身が格納する学習データの除外することが、分散学習によって得られる全計算機の機械学習モデルの性能の合計に与える影響を評価する。
【解決手段】分散学習システムは、一つ以上の分散学習装置が通信可能なようにネットワークで接続されていて、分散学習装置は、学習モデル情報に学習済みパラメータを含む。検証データは、分散学習装置の各々が保持する学習データに含まれない評価対象データを一つ以上有し、分散学習装置は、それに接続された他の分散学習装置から各々の分散学習装置における検証データの損失の総和に基づいた受渡値を受信し、学習済みパラメータと評価対象データを引数とする損失関数の勾配と、受渡値とにより、評価対象データに対する学習における寄与値を推定する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
一つ以上の分散学習装置が通信可能なようにネットワークで接続された分散学習システムであって、
前記分散学習装置は、
学習データと、
検証データと、
学習に関する学習モデル情報とを保持し、
前記学習モデル情報は、機械学習モデル構造情報とモデルパラメータとを含み、
学習済みパラメータは、前記分散学習システムのモデルパラメータと学習データを引数とする損失関数の前記分散学習システムの分散学習装置にわたる総和を最小化するモデルパラメータであり、
前記検証データは、前記分散学習装置の各々が保持する学習データに含まれない評価対象データを一つ以上有し、
前記分散学習装置は、前記分散学習装置に接続された自他の分散学習装置から各々の分散学習装置における検証データの損失の総和に基づいた受渡値を受信し、
前記学習済みパラメータと前記評価対象データを引数とする損失関数の勾配と、前記受渡値とにより、前記評価対象データに対する学習における寄与値を推定することを特徴とする分散学習システム。
【請求項2】
前記受渡値は、複数のステップにより計算され、
あるステップの受渡値は、
直前のステップにおける前記分散学習装置の受渡値と直前のステップにおける自他の分散学習装置から受信した受渡値とにそれぞれ重み付けた値の総和と、
前記学習済みパラメータと前記分散学習装置の学習データを引数とする損失関数の二階微分の行列と直前のステップにおける前記分散学習装置の受渡値をかけた値の全ての学習データにわたる総和と、
前記学習済みパラメータと前記分散学習装置の検証データの損失関数の勾配の全ての検証データにわたる総和とに基づいて計算されることを特徴とする請求項1記載の分散学習システム。
【請求項3】
前記評価対象データに対して、推定された寄与値に基づいて、前記学習データを修正することを特徴とする請求項1記載の分散学習システム。
【請求項4】
前記評価対象データに対して、推定された寄与値を表示し、前記学習データを修正する入力手段を有することを特徴とする請求項1記載の分散学習システム。
【請求項5】
一つ以上の分散学習装置が通信可能なようにネットワークで接続された分散学習システムの学習データ評価方法であって、
前記分散学習装置は、
学習データと、
検証データと、
学習に関する学習モデル情報とを保持し、
前記学習モデル情報は、機械学習モデル構造情報とモデルパラメータとを含み、
学習済みパラメータは、前記分散学習システムのモデルパラメータと学習データを引数とする損失関数の前記分散学習システムの分散学習装置にわたる総和を最小化するモデルパラメータであり、
前記検証データは、前記分散学習装置の各々が保持する学習データに含まれない評価対象データを一つ以上有し、
前記分散学習装置は、前記分散学習装置に接続された他の分散学習装置から各々の分散学習装置における検証データの損失の総和に基づいた受渡値を受信するステップと、
前記分散学習装置は、前記学習済みパラメータと前記評価対象データを引数とする損失関数の勾配と、前記受渡値とにより、前記評価対象データに対する学習における寄与値を推定するステップを有することを特徴とする学習データ評価方法。
【請求項6】
前記受渡値は、複数のステップにより計算され、
あるステップの受渡値は、
直前のステップにおける前記分散学習装置の受渡値と直前のステップにおける他の分散学習装置から受信した受渡値とにそれぞれ重み付けた値の総和と、
前記学習済みパラメータと前記分散学習装置の学習データを引数とする損失関数の二階微分の行列と直前のステップにおける前記分散学習装置の受渡値をかけた値の全ての学習データにわたる総和と、
前記学習済みパラメータと前記分散学習装置の検証データの損失関数の勾配の全ての検証データにわたる総和とに基づいて計算されることを特徴とする請求項5記載の学習データ評価方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散学習システムおよび学習データ評価方法に係り、特に、教師データあり機械学習に関して、分散型の計算機システムに適した学習データの学習に関する寄与度を評価するのに好適な分散学習システムおよび学習データ評価方法に関する。
【背景技術】
【0002】
教師データあり機械学習は、大量の学習データを学習することにより、解決しようとする問題の推論のための学習モデルを最適なものに近づけていくことにより、計算機により最適な問題解決を図る手法である。
【0003】
そのときに、学習データとして最適なものを与えることで、ユーザに対して、より性能の高い学習モデルを与えることができる。そのために、学習データの学習に対する寄与度という概念を導入することが考えられる。
【0004】
機械学習システムに対して、寄与度という概念を用いた技術は、例えば、特許文献1がある。特許文献1の記載された技術では、機械学習システムでは、評価対象データは、初期データ群に対して追加又は除外するデータであり、寄与度計算部が、学習モデルによる出力値と、初期データ群に対して評価対象データを追加又は除外して学習した再学習モデルによる出力値とに基づいて、評価対象データが学習モデルの性能に与える影響を評価する寄与度を計算するとしている。
【0005】
これにより、学習データに対する評価対象データの除外及び追加が機械学習モデルの性能に与える影響の良否を知り得ることができるとしている。
【0006】
また、パラメータの予測に対する影響を影響関数(influence function)として評価する技術が、非特許文献1に開示されている。
【0007】
非特許文献1には、「影響関数が専門家に注意を惹起させて、実際に役立つ事項のみを検査することができることを説明する」(We show that influence functions can help human experts prioritize their attention, allowing them to inspect only the examples that actually matter)という記載と、「Lup,loss(Zi,Zi)により、Ziの影響を測定する。これにより、訓練データセットから、Ziを削除した場合のZiに発生する誤差を近似する」(we measure the influence of Zi with Lup,loss(Zi,Zi), which approximates the error incurred on Zi if we remove Zi from the training set)との記載がある(いずれも、5.4 Fixing mislabeled examples)。
【0008】
また、非特許文献2には、中央サーバーと複数の計算機間の通信を介して実行される機械学習において、ある計算機を除外することにより、機械学習で得られるモデルの性能に与える影響を推定する技術が記載されている。非特許文献2には、「広範な研究が、グローバルモデルのパフォーマンス保証について行われているが、個々のクライアントが共同トレーニングプロセスにどのような影響を与えるかは、いまだに明らかにされていない。この研究では、モデルパラメータに対するこの影響を定量化するために『Fed-Influence』と呼ばれる新しい概念を定義し、この指標を推定するための効果的かつ効率的なアルゴリズムを提案する。」(Extensive works have studied the performance guarantee of the global model however, it is still unclear how each individual client influences the collaborative training process. In this work, we defined a new notion, called Fed-Influence, to quantify this influence over the model parameters, and proposed an effective and efficient algorithm to estimate this metric.)との記載(Abstracts)と、「集中型の学習のサーバーは、影響を評価するものとして、考慮されるサンプリングデータを完全にコントロールできるが、一方、連合学習では、サーバーは、プライバシーの要請のために、クライアントのデータにアクセスできない。(The server in centralized learning, as the influence evaluator, has the full control over the considered sampling data, while in federated learning, the server would not be able to access clients’ raw data because of the privacy requirement)との記載(Introduction)がある。
【0009】
また、複数のエージェントによる分散最適化に関する技術については、非特許文献3に開示がある。
【先行技術文献】
【特許文献】
【0010】
【非特許文献】
【0011】
【非特許文献1】Pang Wei Koh, et. al.,“Understanding Black-box Predictions via InfluenceFunctions”,2017年7月10日,[online],[2023年3月29日検索], インターネットURL:https://arxiv.org/pdf/1703.04730.pdf
【非特許文献2】Yihao Xue, et. Al., ”Toward Understanding the Influence of Individual Clients in Federated Learning”,2020年12月20日, [online], [2023年3月29日検索],インターネットURL:https://arxiv.org/pdf/2012.10936.pdf
【非特許文献3】Yuan, Kun, Qing Ling, and Wotao Yin. "On the convergence of decentralized gradient descent." SIAM Journal on Optimization 26.3 (2016):1835-1854.,[online],[2023年7月6日検索], インターネット<URL: https://arxiv.org/pdf/1310.7063.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0012】
特許文献1では、学習データに対して寄与度という概念を導入したシステムを開示しており、非特許文献1では、パラメータの予測に対する影響を影響関数で評価する技術に関するものであったが、いずれも複数の計算機間で通信が行われる分散システムへの適用を考慮していない。また、非特許文献2に記載の機械学習では、中央サーバーを前提として、中央サーバーと複数の計算機間で通信するシステムモデルであった。
【0013】
中央サーバーを用いる分散システムは、中央サーバーの故障によるシステム全体の機能不全の懸念や中央サーバーとの通信ボトルネックによるシステムの処理の効率を低下させる懸念がある。
【0014】
本発明の目的は、中央サーバーを用いない分散システムにおいて、任意の計算機が自身が格納する学習データを除外したときに、分散学習によって得られる全計算機の機械学習モデルの性能の合計に与える影響を評価する分散学習装置および学習データ評価方法を提供することにある。
【課題を解決するための手段】
【0015】
本発明の分散学習システムの構成は、好ましくは、一つ以上の分散学習装置が通信可能なようにネットワークで接続された分散学習システムであって、分散学習装置は、学習データと、検証データと、学習に関する学習モデル情報とを保持し、学習モデル情報は、機械学習モデル構造情報とモデルパラメータとを含み、学習済みパラメータは、分散学習システムのモデルパラメータと学習データを引数とする損失関数の分散学習システムの分散学習装置にわたる総和を最小化するモデルパラメータであり、検証データは、分散学習装置の各々が保持する学習データに含まれない評価対象データを一つ以上有し、分散学習装置は、分散学習装置に接続された他の分散学習装置から各々の分散学習装置における検証データの損失の総和に基づいた受渡値を受信し、学習済みパラメータと評価対象データを引数とする損失関数の勾配と、受渡値とにより、評価対象データに対する学習における寄与値を推定するようにしたものである。
【発明の効果】
【0016】
本発明によれば、中央サーバーを用いない分散システムにおいて、任意の計算機が自身が格納する学習データを除外したときに、分散学習によって得られる全計算機の機械学習モデルの性能の合計に与える影響を評価する分散学習システムおよび学習データ評価方法を提供することができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の一実施形態に係る分散学習システムの構成図である。
【
図3】分散学習装置のハードウェア・ソフトウェア構成図である。
【
図4】分散学習装置における学習処理から推論処理までの一連の流れについて示すフローチャートである。
【
図5】寄与値推定処理を示すフローチャートである。
【
図6】分散学習装置をノードとしたときの分散学習システムのグラフを示す図である。
【
図7A】分散学習システムのグラフにおいて、ノード(n2)の分散学習装置が受信する中間データを示す図である。
【
図7B】分散学習システムのグラフにおいて、ノード(n2)の分散学習装置が送信する中間データを示す図である。
【
図8】設備外観データラベル修正画面の一例を示す図である。
【発明を実施するための形態】
【0018】
以下、本発明に係る一実施形態を、
図1ないし
図8を用いて説明する。
【0019】
本実施形態は、機械学習のタスクが設備画像の欠陥有無を判定であって、複数の計算機が一部の他の計算機とのみ通信する分散学習をするシステムモデルを前提とする。
【0020】
本実施形態の機械学習は、いわゆる教師データあり学習であり、機械学習モデルは、設備外観検査のために用いられ、外観検査の対象とする設備は、例えば、建物や橋梁、インフラ設備する。そして、機械学習の学習データは、カメラなどにより撮影されて取得される設備外観画像と、利用者により与えられる該設備外観画像に欠陥が含まれるか否かを表すラベル情報(正解情報)で構成されるものとする。設備の欠陥は、例えば、設備外観に見られるさびや変形、ひび割れである。さらに、学習データは、欠陥を含まない設備外観画像に欠陥有のラベル情報が付随するような誤った学習データを含むこともありうる。機械学習モデルは、一つ以上の設備外観画像を入力として受け取り、該設備画像が欠陥を含む場合は、True、含まない場合はFalseを出力するように学習される関数であり、例えば、ニューラルネットワークで表現される。
【0021】
以下、
図1ないし
図3を用いて本発明の一実施形態に係る分散学習システムについて説明する。
【0022】
本実施形態の分散学習システムは、
図1に示されるように、複数の分散学習装置100(
図1では、100a,100b,…と表記)が、ネットワーク5により接続された構成である。システム構成においては、通信ボトルネックや物理的に通信経路が通じていないなどの理由によって、必ずしも他の全ての計算機との通信が可能でないこともありうる。
【0023】
次に、
図2を用いて分散学習装置の機能構成について説明する。
【0024】
分散学習装置100は、分散学習システムにおける分散学習のノードとなる計算機であり、個々の学習データにおける学習の寄与度を評価する装置である。分散学習装置100は、
図2に示されるように、寄与値推定部101、学習データ修正部102、学習部104、推論部105、送信部110、受信部111、入力部120、表示部121、記憶部150からなる。
【0025】
寄与値推定部101は、検証データ202の学習における寄与値の近似値により寄与値を推定する機能部である。学習データ修正部102は、寄与値推定部101の計算の結果に基づいて、学習データを修正する機能部である。学習部104は、学習データ203による機械学習を行う機能部である。推論部105は、被推論データに対して、修正済み学習データ204を用いて、推論による解を導出する機能部である。送信部110は、ネットワーク5を介して、他の分散学習装置100に対して寄与値推定部101の中間データ(後述)を送信する機能部である。受信部111は、他の分散学習装置100からの中間データ(後述)を受信する機能部である。入力部120は、学習データに対するラベルや被推論データ205を入力する機能部である。表示部121は、学習データの内容を表示する機能部である。記憶部150は、分散学習装置100に用いられるデータを記憶する機能部である。
【0026】
記憶部150は、モデル情報データ200、送受信重みベクトルデータ201、検証データ202、学習データ203、修正済み学習データ204、被推論データ205、推論結果データ206からなる。
【0027】
モデル情報データ200は、機械学習モデル構造情報とモデルパラメータであり、後述のように寄与値推定部101で用いられる学習済みパラメータを含む。送受信重みベクトルデータ201は、他の分散学習装置100間との通信の際に用いられる送受信重みベクトル(後述)のデータである。検証データ202学習データに含まれないデータを少なくとも一つ含む学習データの検証のためのデータである。検証データ202は、学習データの母集団を代表するのに十分な数のデータ数を有しており、分散学習装置100は、ある学習データを除外することが、学習データの母集団に対する性能に与える変化を推定するために用いられる。学習データ203は、推論のために学習済みのデータであり、本実施形態では、設備の画像データとラベルである。修正済み学習データ204は、学習データ203を寄与値推定部101の結果に基づいて修正したデータである。被推論データ205は、推論の対象となるデータであり、本実施形態では、設備の画像データである。推論結果データ206は、設備画像データに対する推論結果(欠陥の有り無し)を示すデータである。
【0028】
次に、
図3を用いて分散学習装置のハードウェア・ソフトウェア構成を説明する。
【0029】
分散学習装置100のハードウェア構成としては、例えば、
図3に示されるパーソナルコンピュータのような一般的な情報処理装置で実現される。
【0030】
分散学習装置100は、CPU(Central Processing Unit)302、主記憶装置304、ネットワークI/F(InterFace)306、表示I/F308、入出力I/F310、補助記憶I/F312が、バスにより結合された形態になっている。
【0031】
CPU302は、分散学習装置100の各部を制御し、主記憶装置304に必要なプログラムをロードして実行する。
【0032】
主記憶装置304は、通常、RAMなどの揮発メモリで構成され、CPU302が実行するプログラム、参照するデータが記憶される。
【0033】
ネットワークI/F306は、ネットワーク5と接続するためのインタフェースである。
【0034】
表示I/F308は、LCD(Liquid Crystal Display)などの表示装置320を接続するためのインタフェースである。
【0035】
入出力I/F310は、入出力装置を接続するためのインタフェースである。
図3の例では、キーボード330とポインティングデバイスのマウス332が接続されている。
【0036】
補助記憶I/F312は、HDD(Hard Disk Drive)350やSSD(Solid State Drive)などの補助記憶装置を接続するためのインタフェースである。
【0037】
HDD350は、大容量の記憶容量を有しており、本実施形態を実行するためのプログラムが格納されている。分散学習装置100には、パラメータ最適化プログラム361、寄与値推定プログラム362、学習データ修正プログラム363、学習プログラム364、推論プログラム365がインストールされている。
【0038】
パラメータ最適化プログラム361、寄与値推定プログラム362、学習データ修正プログラム363、学習プログラム364、推論プログラム365は、それぞれ、寄与値推定部101、学習データ修正部102、学習部104、推論部105の機能を実行するプログラムである。
【0039】
以下、
図4ないし
図7Bを用いて本発明の一実施形態に係る分散学習システムの分散学習装置の処理について説明する。
【0040】
先ず、本実施形態の分散学習装置における寄与値とそれに関するデータについて説明する。
【0041】
学習済みパラメータxs
*は、s番目の計算機の機械学習モデルの最適モデルパラメータであり、モデル情報データ200として格納される。
【0042】
任意sについて、学習済みパラメータxs
*は学習部104が学習データ202を用いて以下の(式1)に示す最適化を行って得られる解であるx1
*,…,xn
*でのうち、s番目のベクトルである。
【0043】
【0044】
ただし、nは、分散学習システム全体の計算機数(ノード数)、mkは、k番目の計算機の学習データ数、yk,lは、k番目の計算機のl番目の学習データ、fkは、k番目の計算機の損失関数である。ここでの、argminは、左辺のx1
*,…,xn
*が、右辺のΣΣfが最小値をとるときのx1,…,xnであることを意味する。また、損失関数は、例えば、ラベル情報とニューラルネットワークの出力を入力とするクロスエントロピー関数である。
【0045】
(式1)でのxiは、以下の(式2)で示されるようなd次元のベクトルである。
【0046】
【0047】
モデル情報200には、機械学習モデル構造情報と(式1)で求められる学習済みパラメータが格納されている。機械学習モデル構造情報は、例えば、ニューラルネットワークのネットワーク構造を構築するのに必要な情報である。
【0048】
検証データ202は、既に述べたように、学習データに含まれないデータを少なくとも一つ含んでおり、検証データ202は、学習データの母集団を代表するのに十分な数のデータ数を有している。
【0049】
送受信重みベクトルデータ201は、送受信重みベクトルのデータである。送受信重みベクトルとは、分散学習システムの任意の計算機が自身を含む任意の計算機との間で送受信する際に、後述のws
(t)に乗じる計算機固有のスカラ値である送受信重みを計算機の番号順に全計算機に関して並べたベクトルである。
【0050】
送受信重みベクトルは、任意のs番目の計算機が格納する送受信重みベクトルをs番目の列ベクトルとすることで構成される隣接行列が二重確率行列(要素を各行各列ごとに足した値が1である)ことを特徴とする。例えば、ノード数nが5である分散学習システムは、
図6に示されるような無向グラフで表され、各エッジの値が、送受信重みである。このときに、s番目の計算機とk番目の計算機との送受信時に使用する送受信重みをp
ksと表現すると、隣接行列は例えば以下の(式3)に示されるようになる。
【0051】
【0052】
ここで、送受信重みベクトルは、例えば事前に、Fastest Mixing Markov Chain法(例えば、Stephen Boyd, et al. “Fastest Mixing Markov Chain on a Graph”, https://web.stanford.edu/~boyd/papers/pdf/fmmc.pdf)を用いて計算する。
【0053】
寄与値ΔFk′,l′は、以下の(式4)で定義されるスカラ値である。
【0054】
【0055】
ここで、第二項目のFは、(式1)での学習済みパラメータを用いて計算される以下の(式5)で定義される検証損失である。
【0056】
【0057】
なお、y′k,lは、k番目の計算機のl番目の検証データである。
【0058】
また、(式4)の第一項目のFk′,l′は、k′番目の計算機のl′番目の学習データ(以下、「評価対象データ」という)を除外した場合の(式1)の解を、fkの第一パラメータに代入して計算される検証損失である。検証データを除外した場合の(式1)の解およびFk′,l′は、それぞれ、以下の(式6)および(式7)で与えられる。
【0059】
【0060】
【0061】
(式7)のFk′,l′は、k′番目の計算機のl′番目の学習データを除外した学習データを用いて、機械学習モデルを学習し、該学習によって得られる機械学習モデルに検証データを入力して得られる損失の総和である。したがって、(式4)の寄与値が正値の場合には、評価対象データは、学習データから除外されることにより検証データを入力して得られる損失を増加させること、すなわち、検証データに対する機械学習モデルによる学習の性能を悪化させることを意味し、逆に、寄与値が負値の場合には、機械学習モデルによる学習の性能を向上させることが意味する。この性質により、(式4)の寄与値ΔFk′,l′を用いて、評価対象データを除外することが機械学習モデルによる学習の性能に与える影響の良否を知ることができる。
【0062】
次に、
図4を用いて分散学習装置における学習処理から推論処理までの一連の流れについて説明する。
【0063】
先ず、分散学習装置100の学習部104は、学習データ203に基づいて学習処理を行いモデル情報データ200のモデル情報データ200を更新する(S01)。
【0064】
次に、分散学習装置100の寄与値推定部101は、寄与値推定処理を行う(S02)。
【0065】
寄与値推定処理の詳細は、後に、
図5を用いて説明する。
【0066】
次に、分散学習装置100の学習データ修正部102は、S02で求めた寄与値推定ベクトルに基づき、学習データ修正処理を行う(S03)。
【0067】
なお、寄与値推定ベクトルは、後に詳説する。
【0068】
学習データ修正処理では、寄与値推定ベクトルのデータに対応する要素が、負値であれば(学習のために有効)、修正不要として修正済み学習データ204に格納し、寄与値推定ベクトルのデータに対応する要素が、正値または0の場合には(学習のために望ましくないと判定)、修正済み学習データ204に格納しない。
【0069】
これにより、学習のために有効な学習データのみが、修正済み学習データ204に反映され、学習のために望ましくないと判定されたデータは、修正済み学習データ204には反映されない。
【0070】
次に、分散学習装置100の学習部104は、修正済み学習データ204に基づき、再学習を行う(S04)。
【0071】
次に、分散学習装置100の推論部105は、被推論データ205(解決したい問題データ)を入力し、推論処理を行い(S05)、表示部121は、結果を出力する。
【0072】
本実施形態では、被推論データ205は、判定したい設備外観画像であり、推論結果データ206として、その設備外観画像に係る設備に対して、設備に欠陥があるか否かの答えが表示される。
【0073】
次に、
図5を用いて寄与値推定処理について説明する。
これは、
図4のS02に該当する処理である。
【0074】
本実施形態の寄与値推定処理は、寄与値推定部101が、分散学習システムの任意のs番目の計算機が、自身の学習データに含まれる全ての学習データに対する評価対象データの寄与値から成るベクトルである寄与値推定ベクトルを計算する。
【0075】
先ず、寄与値推定部101は、モデル情報データ200の機械学習モデル構造情報および学習済みパラメータ、学習データ203、検証データ202、送受信重みベクトルデータ201から送受信重みベクトルを取得する(S101)。
【0076】
次に、寄与値推定部101は、以下の(式8)に従って検証損失勾配csを計算する(S102)。
【0077】
【0078】
ここで、∇は、fsを、xsの各要素で偏微分する(勾配を求める)演算子である。
【0079】
次に、寄与値推定部101は、以下の(式9)に従って、初期化のため、ws
(0)を設定する(S103)。
【0080】
【0081】
次に、寄与値推定部101は、計算ステップインデックスtに、初期化のため、0を設定する(S104)。
【0082】
次に、寄与値推定部101は、通信可能な全ての他の計算機について、kの値を通信可能な全ての他の計算機の番号を網羅するように変えながら、k番目の計算機からwk
(t)の値を受信し、かつ、通信可能な全ての計算機に、ws
(t)の値を送信する(S105)。
【0083】
例えば、
図6の分散学習システムのグラフを例に取ると、ノード(n2)をs番目の計算機としたときに、ノード(n2)の計算機から他の計算機から受信する様子は、
図7Aに示されるようになり、ノード(n2)の計算機が他の計算機に送信する値を示すと
図7Bに示されるようになる。
【0084】
次に、以下の(式10)に従って、ws
(t+1)を計算する(S106)。なお、(式10)の一番目のΣの項に出てくるNsは、s番目の計算機が通信可能な全ての計算機の番号と自身の番号sを要素とする集合である。
【0085】
なお、(式10)の二番目のΣの項に出てくる∇2は、fsをxsの各要素で、行、列ごとに2階偏微分したいわゆるヘッセ行列である。
【0086】
【0087】
ここで、pksは、(式3)で示したようなs番目の計算機がk番目の計算機との送受信時に使用する送受信重みであり、αは、正の定数である。
【0088】
次に、寄与値推定部101は、計算ステップインデックスtが、事前に設定した計算ステップ閾値Tに等しくなったか否かを判定し(S107)、計算ステップインデックスtが、事前に設定した計算ステップ閾値Tに等しくなった場合には(S107:YES)、計算ステップインデックスtが、計算ステップ閾値Tより小さい場合には(S107:NO)、計算ステップインデックスtをインクリメント(1を加算)し(S108)、S105に戻る。
【0089】
計算ステップ閾値Tは、寄与値の推定精度と計算コストがトレードオフの関係にあることを考慮して適切な値を設定する。例えば、システム管理者がシステムの運用の経験からみた十分大きな値を採用することもできるし、計算ステップ閾値Tを学習するシステムより求めることができる。また、S107の判定は、ws
(t+1)とws
(t)の変化量が所定の閾値より小さくなったときに、ループを抜けるような判定基準であってもよい。
【0090】
次に、寄与値推定部101は、以下の(式11)に従って、l′を、l′=1からl′=msについて(s番目の計算機の全ての学習データについて)、近似寄与値である寄与値推定値ΔF′s,l′を計算する(S109)。寄与値推定値ΔF′s,l′は、(式7)で説明した寄与値ΔFs,l′を近似する値である。
【0091】
【0092】
これにより、寄与値推定ベクトルΔFsは、以下の(式12)に示されるような各データの寄与値推定値を要素とするベクトルになる。
【0093】
【0094】
以上の処理によって、分散学習システム内の任意のs番目の計算機が、寄与値推定ベクトルを計算することができる。
【0095】
次に、以上の処理によって、寄与値を近似できる理由を説明する。
【0096】
(式1)の解は、次の損失関数Lをxに関して最小化することによっても得ることができる。
【0097】
【0098】
ここでxは、x1からxnを縦に並べた結合ベクトルであり、||x||のユークリッドノルムである。(式1)の解は、損失関数Lをxに関して最小化することによっても得ることの意味は、ベクトルxで定義されるL(x)を最小化するxを求めると、(式1)で定義される解xs
*を、s=1,…,nの順に並べて結合したベクトルが一致するという意味である。これが、一致する根拠については、非特許文献3の(8)の式による(Page 8)。
【0099】
この損失関数を用いて、非特許文献1の第3章「Stochastic estimation」に記載の近似計算方法を用い、任意のs番目の計算機が該近似計算方法の中間値ベクトルのxsに対応する要素の更新を担わせる場合が、(式10)である。ここで、近似計算方法の中間値ベクトルとは、非特許文献1の漸化式の左辺であるH~j
-1vである。また、中間値ベクトルのxsに対応する要素とは、中間値ベクトルH~j
-1vのうち、結合ベクトルxにおいて、s番目の計算機におけるモデルパラメータであるxsが占める要素に対応する要素である。
【0100】
以上を踏まえて、本実施形態の処理と、非特許文献1の関係について説明する。非特許文献1の式を示し、その下に波括弧で対応する形で説明する。
【0101】
非特許文献1の(1)の式の右辺における対応を示すと、以下のようになる。
【0102】
【0103】
また、非特許文献1の(2)の3番目の式における対応を示すと、以下のようになる。
【0104】
【0105】
非特許文献1の第3章「Stochastic estimation」に記載のStestの近似値を求める方法と、実施形態の記述の各項を対応させると、以下のようになる。これらの式のうち、xsに関するベクトルのブロック成分に注目すると、以下の各行の右側に記載の実施形態の数式に対応する。
【0106】
【0107】
以下、(式10)の対応について、さらにL(x)の二階微分を書き下して詳細に説明する。
【0108】
まず、L(x)の一階微分は、以下のようになる。
【0109】
【0110】
各ブロックベクトルは、以下のようになる。なお、この式では、送受信重みの行列(pis)の対称性pis=psiを使用した。
【0111】
【0112】
∇xL(x)をさらに、微分して得られるL(x)の二階微分は、以下のようになる。
【0113】
【0114】
これらの各ブロック行列は、以下のように表現することができる。
【0115】
【0116】
ここで、Iは単位行列である。
【0117】
これを用いて非特許文献1に記載の漸化式と、(式10)を対応させると、以下のようになる。
【0118】
【0119】
次に、本実施形態の分散システムにおいて、ws
(t)を受け渡していく数学的な意味を、非特許文献1に記載の技術と対比して説明する。
【0120】
実施形態の中間値であるws
(t)は、非特許文献1では、stestと記載されている変数に対応しており、これは損失の二階微分行列と検証データの勾配ベクトルをかけた値の近似値であると言える。また、本実施形態の分散システムでは、各ws
(t)を更新するための(式10)に含まれるfsの二階微分の計算は、s番目の計算機にのみ実行可能である。一方で各計算機sは、(式10)のなかで、ws
(t)の更新をするために、k番目の計算機からwk
(t)を通信を介して受け取るようにしている。
【0121】
次に、(式10)で計算される漸化式の最後のwk
(T)を計算して、それに基づき、(式11)により近似的寄与値とすることが妥当な理由について説明する。
【0122】
その理由は、stestが正確に損失の二階微分行列と学習データの勾配ベクトルをかけた値を表せているとき、近似寄与値が寄与値を線形近似しているとみなせるからである。以下、具体的な式に基づいて説明する。
【0123】
先ず、以下のような関数を考える。
【0124】
【0125】
ε=0のとき、この関数を最小化する解は、(式2)に一致する。また、ε=-1のとき、この関数を最小化する解は、(式6)に一致する。非特許文献1によれば、これらのε=-1のとき、この関数を最小化する解のε=0の周りにおける線形近似は、以下のようになる。
【0126】
【0127】
これと寄与値を計算したい対象である検証損失の勾配(c1 … cn)との内積を計算する(線形近似)すると、近似寄与値となる。
【0128】
以上説明したように、本実施形態における近似寄与値の計算が非特許文献1の第3章「Stochastic estimation」に記載の近似計算方法と等価であるために、本実施形態の処理によって寄与値を近似することができる。
【0129】
以上のような本実施形態の分散学習装置の構成によれば、中央サーバーを用いない分散型学習において、任意の計算機が自身のある学習データを除外することが全計算機の機械学習モデルの性能の合計に与える影響の良否を知り得るようになる。
【0130】
学習データ修正部102は、寄与値推定値が、予め利用者が定めた判定基準値以上であれば修正要、未満であれば修正不要のように、学習データの修正要否を決定してもよい。このとき、判定基準値は、検証データの損失平均値と比較して、0に十分近い値であるようにする。
【0131】
例えば、寄与値推定値>判定基準値>0とする。
【0132】
すなわち、寄与値推定値が正値の場合の解釈は、悪い学習データ(除外する方がよい学習結果がよくなるデータ)とみなすことができるが、悪さの度合いが大きいものだけ取り除きたいときに、以上のように0以上の判定基準値を設定することができる。
【0133】
また、検証データ群のサンプル数が少なく学習データの除外が母集団の性能に与える変化の推定に誤差がある場合にも、以上のように0以上の判定基準値を設定することができる。これは、寄与値推定値は、検証データ群のサンプル数が多いほど母集団(テストデータ)の性能に対する学習データの寄与値(寄与値の真の値)に近づく。そのため、検証データ群のサンプル数が少ないと、真の寄与値と検証データ群を用いて計算される寄与値推定値との間に大きな誤差が生まれる可能性がある。これらの誤差が無視できるほどに大きな悪影響のある(寄与値が大きな正値をとる)データのみを除外するために、以上のように0以上の判定基準値を設定することができることを意味する。
【0134】
上記説明では寄与値推定部101は、任意のs番目の計算機が、自身の全学習データについて寄与値を計算するとしたが、全学習データの代わりに学習データの一部である部分学習データについて寄与値を計算してもよい。この場合、寄与値推定部101は、事前に利用者が修正の対象とした部分学習データを取得し、寄与値推定部101のS109のステップでは、部分学習データに対応するインデックスl′′について、寄与値推定ベクトルを計算し、学習データ修正部101は、計算した寄与値ベクトルに基づき、部分学習データのうち、対応する寄与値推定値が負値であるもののみを、修正済み学習データ204に格納する。
【0135】
また、機械学習モデルに入力される画像は、例に挙げた設備外観画像に限らず、工業製品外観画像や文書を撮影したものであってもよいし、機械学習モデルに入力される情報は、テーブルデータや時系列情報であってもよい。
【0136】
さらに、機械学習モデルは、例に挙げた設備外観画像の欠陥有無を出力するように学習されるのではなく、その入力された設備外観画像を3クラス以上のクラス分類のために学習に使用されるモデルであってもよいし、設備外観画像中の物体の位置情報およびクラス番号を出力するように学習されてもよい。
【0137】
また、誤った学習データとされる学習データは、欠陥を含まない設備外観画像に欠陥有のラベル情報が付随するような学習データに限らず、画像に設備外観が含まれない、その設備外観がピント不正やブレが原因で正しく撮影されていない、その設備外観画像が動画の1フレームである場合に、その動画フレームが動画の圧縮ノイズを含むなど機械学習モデルの学習に不適な学習データであってもよい。
【0138】
次に、
図8を用いて評価対象に対する設備外観データのラベルを修正するユーザインタフェースについて説明する。
【0139】
設備外観データラベル修正画面400は、評価対象データの設備外観データおよび寄与値推定値を含む情報を、利用者に提示し、利用者が、その設備外観データのラベルを修正する画面である。
【0140】
設備外観データラベル修正画面400からのラベルの更新があったときに、学習データ修正部102は、更新された変更後のラベルに基づいて、対応する学習データのラベルを変更し、ラベルが変更された学習データを修正済み学習データ204に格納する。
【0141】
設備外観データラベル修正画面400は、
図8に示されるように、設備外観データ表示エリア410、評価対象データ情報表示エリア420、変更前ラベル情報入力エリア430、変更後ラベル情報表示エリア440、コマンド入力エリア450からなる。
【0142】
設備外観データ表示エリア410には、評価対象データの画像が表示される。
【0143】
評価対象データ情報表示エリア420には、評価対象データに関する分散学習装置100の解析した情報が表示される。例えば、寄与値推定値421、評価対象データ影響評価値422が表示される。
図8での「harmful」の表示(寄与値推定値が正の場合)は、評価対象データを加えることは、望ましくない、すなわち、除去した方が望ましいと評価されたことを示している。逆に、「helpful」(寄与値推定値が0または負の場合)の表示は、評価対象データを加えることは、望ましい、すなわち、除去しなくてもよいと評価されたことを示している。
【0144】
表示変更前ラベル情報表示エリア430は、現在の設備画像データに関するラベルを示すエリアである。変更後ラベル情報入力エリア440は、利用者が現在の設備画像データに関するラベルを変更したいときに、選択を入力するためのエリアである。
【0145】
コマンド入力エリア450は、ユーザコマンドボタンを表示し、利用者に選択させるエリアである。コマンド入力エリア450には、登録ボタン451、閉じるボタン452が表示される。利用者が、現在の設備画像データに関するラベルを更新したいときには、変更後ラベル情報入力エリア440のチェックボタンの選択を変更後に、マウスなどのポインティングデバイスにより、登録ボタン451を押下する。
【0146】
設備外観データラベル修正画面400によって、利用者は、分散学習装置100で求めた寄与値推定値と、対象となっている学習データの内容を参照することにより、容易に評価対象データに対するラベルを修正することができる。
【符号の説明】
【0147】
5…ネットワーク、100…分散学習装置、101…寄与値推定部、102…学習データ修正部、104…学習部、105…推論部、110…送信部、111…受信部、120…入力部、121…表示部、150…記憶部、
200…モデル情報データ、201…送受信重みベクトルデータ、202…検証データ、203…学習データ、204…修正済み学習データ、205…被推論データ、206…推論結果データ