(57)【要約】【課題】処理能力の低いデバイスでも動作させることができる様に、ニューラルネットワークを調整する調整装置を提供する。【解決手段】調整装置は、第１ニューラルネットワークの各ニューロンの重要度を示す第１の値を求める手段と、第１ニューラルネットワークの各ニューロンの計算コストを示す第２の値を求める手段と、第１ニューラルネットワークの総てのニューロンから所定数のニューロンを選択した組それぞれについて、当該組に含まれるニューロンそれぞれの第１の値と第２の値とに基づき評価値を算出し、評価値に基づき１つの組を選択する手段と、選択した組に含まれる所定数のニューロンと、選択した組に含まれる所定数のニューロンが計算を行うのに必要なニューロンと、を残し、それ以外のニューロンを第１ニューラルネットワークから削除することで、第２ニューラルネットワークを生成する手段と、を備えている。【選択図】図１３
2019061338.tif 000002
【特許請求の範囲】
【請求項１】
第１ニューラルネットワークを調整して第２ニューラルネットワークを生成する調整装置であって、
前記第１ニューラルネットワークの各ニューロンの重要度を示す第１の値を求める第１手段と、
前記第１ニューラルネットワークの各ニューロンの計算コストを示す第２の値を求める第２手段と、
前記第１ニューラルネットワークの総てのニューロンから所定数のニューロンを選択した組それぞれについて、当該組に含まれるニューロンそれぞれの前記第１の値と前記第２の値とに基づき評価値を算出し、前記評価値に基づき１つの組を選択する選択手段と、
前記選択した組に含まれる前記所定数のニューロンと、前記選択した組に含まれる前記所定数のニューロンが計算を行うのに必要なニューロンと、を残し、それ以外のニューロンを前記第１ニューラルネットワークから削除することで、前記第２ニューラルネットワークを生成する生成手段と、
を備えていることを特徴とする調整装置。
【請求項２】
組の前記評価値は、当該組に含まれるニューロンそれぞれの前記第１の値が大きい程、大きくなり、当該組に含まれるニューロンそれぞれの前記第２の値が大きい程、小さくなる値であることを特徴とする請求項１に記載の調整装置。
【請求項３】
前記選択手段は、前記評価値が最大となる組を選択することを特徴とする請求項２に記載の調整装置。
【請求項４】
ニューロンの前記第１の値は、当該ニューロンの重要度が大きくなると、大きくなる値であることを特徴とする請求項１から３のいずれか１項に記載の調整装置。
【請求項５】
ニューロンの前記第１の値は、当該ニューロンの子ニューロンの重要度が大きくなると、大きくなる値であることを特徴とする請求項１から４のいずれか１項に記載の調整装置。
【請求項６】
ニューロンの前記第２の値は、当該ニューロンの総ての親ニューロンの数が多くなると大きくなる値であることを特徴とする請求項１から５のいずれか１項に記載の調整装置。
【請求項７】
前記第１ニューラルネットワークの２つのニューロンのペアそれぞれについて、ペアに含まれる２つのニューロンの相関を示す第３の値を求める第３手段をさらに備えており、
前記選択手段は、組の前記評価値の算出に、当該組に含まれる前記所定数のニューロンから選択した２つのニューロンのペアそれぞれの前記第３の値を使用することを特徴とする請求項１から６のいずれか１項に記載の調整装置。
【請求項８】
組の前記評価値は、当該組に含まれるニューロンのペアの前記第３の値が大きい程、小さくなることを特徴とする請求項７に記載の調整装置。
【請求項９】
請求項１から８のいずれか１項に記載の調整装置が生成した前記第２ニューラルネットワークを使用することを特徴とするデバイス。
【請求項１０】
請求項１から８のいずれか１項に記載の調整装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理能力の低い、例えば、携帯型のデバイスにおいて動作させることができる様に、ニューラルネットワークを調整する調整装置に関する。
【背景技術】
【０００２】
ニューラルネットワークを使用してある入力に基づき何らかの判定を行ったり、ある入力に対する出力を決定したりすることが行われている。特許文献１は、人に取り付けた加速度センサ等のセンサが出力する信号から、ニューラルネットワークを使用して当該人の行動を判定することを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９２７８２５５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ニューラルネットワークにより精度の高い出力を得るためには、非常に多くのニューロンを使用してニューラルネットワークを構成する必要がある。しかしながら、その様なニューラルネットワークは処理負荷が高く、よって、処理能力の低いデバイス、例えば、携帯型のデバイスで動作させることが難しくなる。
【０００５】
本発明は、処理能力の低いデバイスでも動作させることができる様に、ニューラルネットワークを調整する調整装置を提供するものである。
【課題を解決するための手段】
【０００６】
本発明の一態様によると、第１ニューラルネットワークを調整して第２ニューラルネットワークを生成する調整装置は、前記第１ニューラルネットワークの各ニューロンの重要度を示す第１の値を求める第１手段と、前記第１ニューラルネットワークの各ニューロンの計算コストを示す第２の値を求める第２手段と、前記第１ニューラルネットワークの総てのニューロンから所定数のニューロンを選択した組それぞれについて、当該組に含まれるニューロンそれぞれの前記第１の値と前記第２の値とに基づき評価値を算出し、前記評価値に基づき１つの組を選択する選択手段と、前記選択した組に含まれる前記所定数のニューロンと、前記選択した組に含まれる前記所定数のニューロンが計算を行うのに必要なニューロンと、を残し、それ以外のニューロンを前記第１ニューラルネットワークから削除することで、前記第２ニューラルネットワークを生成する生成手段と、を備えていることを特徴とする。
【発明の効果】
【０００７】
本発明によると、調整装置は、処理能力の低いデバイスでも動作させることができる様にニューラルネットワークを調整することができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態の説明に用いるニューラルネットワークの構成図。
【図２】実施形態で用いる用語の説明図。
【図３】実施形態で用いる用語の説明図。
【図４】各ニューロンの固有重要度を示す図。
【図５】各ニューロンの合計重要度の計算方法の説明図。
【図６】各ニューロンの合計重要度を示す図。
【図７】各ニューロンの計算コストを示す図。
【図８】ニューロンのペアの相関値の計算方法の説明図。
【図９】ニューロンの選択方法の説明図。
【図１０】ニューロンの選択方法の説明図。
【図１１】ニューロンの選択方法の説明図。
【図１２】ニューロンの選択方法の説明図。
【図１３】一実施形態による調整装置の構成図。
【発明を実施するための形態】
【０００９】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【００１０】
図１は、本実施形態を説明するためのニューラルネットワークを示している。上述した様に、より精度の高い出力を得るためには、非常に多くのニューロンを使用してニューラルネットワークを構成するが、ここでは、本発明の原理の説明を簡略化するため、ニューロン＃１〜＃１２の計１２個のニューロンを有するニューラルネットワークを用いて説明する。このニューラルネットワークの出力に基づき判定する内容等は任意であるが、ここでは、一例として、ニューラルネットワークの出力に基づき人の行動内容を判定するものとする。この場合、図１のニューラルネットワークは、例えば、多数の人に装着したセンサ等の出力に基づき処理能力の高いデバイスにおいて学習が行われて生成される。また、本実施形態では、ニューラルネットワークの総てのニューロンの出力値に基づき人の行動を判定するものとする。したがって、ニューロン＃１〜＃１２それぞれの出力値と人の行動との関係を示す判定情報についても、予め処理能力の高いデバイスにおいて行われた学習により決定されているものとする。そして、例えば、ある人に装着したセンサの出力が入力として与えられたときの、ニューロン＃１〜＃１２それぞれの出力値と判定情報に基づき、当該人の行動が判定される。
【００１１】
本実施形態による調整装置は、携帯端末等の処理能力の低いデバイスでもニューラルネットワークを動作可能とさせるため、図１のニューラルネットワークのニューロンの数を減少させて、新たなニューラルネットワークを構成する。このため数Ｎをまず決定する。数Ｎは、元のニューラルネットワークのニューロンの数Ｍより小さい数であり、この数Ｎは、ニューラルネットワークを動作させる能力の低いデバイスの処理能力に基づき決定する。
【００１２】
まず、本実施形態による調整装置での処理について説明する前に、本実施形態で使用する用語の定義を行う。あるニューロンに入力を直接与えるニューロンを当該ニューロンの「親ニューロン」と呼ぶものとする。つまり、あるパスの接続元のニューロンを、当該パスの接続先のニューロンの親ニューロンと呼ぶものとする。さらに、あるニューロンから、第１層のニューロン（図１では、ニューロン＃１〜＃４）までパスを、その方向とは逆向きに辿ったときに含まれる総てのニューロンを、当該ニューロンの「全親ニューロン」又は「総ての親ニューロン」と呼ぶものとする。具体的には、図２のニューロン＃９の親ニューロンは、ニューロン＃５、＃６及び７であり、ニューロン＃９の全親ニューロンは、ニューロン＃１〜＃７である。あるニューロンの全親ニューロンとは、当該あるニューロンの入力値に影響を与えるニューロンである。
【００１３】
同様に、あるニューロンの出力を直接の入力とするニューロンを当該ニューロンの「子ニューロン」と呼ぶものとする。つまり、あるパスの接続先のニューロンを、当該パスの接続元のニューロンの子ニューロンと呼ぶものとする。さらに、あるニューロンから、最終層のニューロン（図１では、ニューロン＃１０〜＃１２）までパスを順方向に辿ったときに含まれる総てのニューロンを、当該ニューロンの「全子ニューロン」又は「総ての子ニューロン」と呼ぶものとする。具体的には、図３のニューロン＃２の子ニューロンは、ニューロン＃５及び７であり、ニューロン＃２の全子ニューロンは、ニューロン＃５、７及び＃８〜＃１２である。あるニューロンの全子ニューロンは、当該あるニューロンの出力により、入力が影響を受けるニューロンである。
【００１４】
本実施形態の調整装置は、各ニューロン＃１〜＃１２それぞれについて「重要度」を求める。重要度は、例えば、線形回帰（Ｌｉｎｅａｒ  Ｒｅｇｒｅｓｓｉｏｎ）や、ランダムフォレスト（Ｒａｎｄｏｍ  Ｆｏｒｅｓｔ）の様な、公知の任意のアルゴリズムにより求めることができる。なお、以下の説明においては、後述する合計重要度と区別するために、線形回帰等の公知のアルゴリズムで求めるニューロンの重要度を「固有重要度」と呼ぶものとする。図４は、本実施形態の説明で使用する、各ニューロン＃１〜＃１２それぞれの固有重要度を示している。
【００１５】
調整装置は、各ニューロン＃１〜＃１２それぞれについて、固有重要度に基づき「合計重要度」Ｔを求める。あるニューロンの合計重要度は、当該ニューロンの全子ニューロンの固有重要度の和に所定の係数を乗じた値と、当該ニューロンの固有重要度との和として求める。ここで、所定の係数は１以下の整数である。例えば、あるニューロンの固有重要度をＡとし、当該ニューロンの全子ニューロンの固有重要度の和をＢとし、所定の係数をγとすると、当該ニューロンの合計重要度Ｔは、Ｔ＝Ａ＋γＢである。図５の表は、各ニューロンについて、その固有重要度と、全子ニューロンと、合計重要度を示している。なお、所定の係数γをここでは、０．０１としている。例えば、ニューロン＃６の全子ニューロンは、ニューロン＃９、＃１１及び＃１２であるため、これらの固有重要度の和は、１１.２＋５．４＋１２．３＝２８．９である。したがって、係数α＝０．０１を乗ずると、その値は０．２８９であり、ニューロン＃６の固有重要度４．３を加えることで、ニューロン＃６の合計重要度は、４．５８９と計算される。図６は、各ニューロン＃１〜＃１２の合計重要度を、各ニューロン＃１〜＃１２に記載したものである。なお、ニューロンの合計重要度の計算方法は、本例の計算方法に限定されない。例えば、あるニューロンの合計重要度を、当該ニューロンの子ニューロンの合計重要度の和に所定の係数を乗じた値に、当該ニューロンの固有重要度を加えた値とすることもできる。なお、この場合には、最終層のニューロンから順に固有重要度を計算する。この様に、あるニューロンの合計重要度は、当該ニューロンの固有重要度と、当該ニューロンの全子ニューロンそれぞれの固有重要度が大きいほど大きくなる値とすれば、その計算方法は他の方法であっても良い。
【００１６】
また、本実施形態の調整装置は、各ニューロン＃１〜＃１２それぞれについて、「計算コスト」Ｃを求める。計算コストＣは、親ニューロンの計算コストの合計＋１として計算される。図７に各ニューロ＃１〜＃１２それぞれの計算コストを示す。例えば、ニューロン＃１〜＃４は、親ニューロンがないため、これらの計算コストは総て１となる。また、ニューロン＃５の親ニューロンは、ニューロン＃１から＃４であり、その計算コストの合計は４である。したがって、ニューロン＃５の計算コストは５となる。同様に、ニューロン＃６及び＃７の計算コストは、それぞれ、３及び４となる。さらに、ニューロン＃９の親ニューロンは、ニューロン＃５から＃７であり、その計算コストの合計は１２である。したがって、ニューロン＃９の計算コストは１３となる。なお、ニューロンの計算コストの計算方法は、本例の計算方法に限定されない。例えば、あるニューロンの計算コストを、当該ニューロンの全親ニューロンの数に１を加えた値とすることができる。この様に、あるニューロンの計算コストは、全親ニューロンの数が増えるほど大きくなる値とすれば、その計算方法は他の方法であっても良い。
【００１７】
さらに、本実施形態の調整装置は、ニューロン＃１〜＃１２から２つを選択した組み合わせそれぞれについて「相関値」Ｃｏｒｒを求める。例えば、図１のニューラルネットワークに任意の値を入力したときの、各ニューロン＃１〜＃１２の出力を計算する。図８は、ニューラルネットワークに計ｎ個の値を入力したときの、各ニューロン＃１〜＃１２の出力を示している。ここで、各入力に対するニューロン＃１の出力の平均値をＥ（Ｘ）とし、ニューロン＃２の出力の平均値をＥ（Ｙ）とする。また、各入力に対するニューロン＃１の出力の２乗の平均値をＥ（Ｘ２）とし、ニューロン＃２の出力の２乗の平均値をＥ（Ｙ２）とする。さらに、各入力に対するニューロン＃１の出力とニューロン＃２の出力とを乗じた値の平均値をＥ（ＸＹ）とする。この場合、ニューロン＃１と＃２のペアの相関値Ｃｏｒｒは、
Ｃｏｒｒ＝Ｍ／Ｎ
Ｍ＝（Ｅ（ＸＹ）−Ｅ（Ｘ）Ｅ（Ｙ））
Ｎ＝（Ｅ（Ｘ２）−Ｅ（Ｘ）２）０．５（Ｅ（Ｙ２）−Ｅ（Ｙ）２）０．５
として求めることができる。上記相関値の計算は、所謂、ピアソン相関係数であるが、例示であり、ニューロンのペアの相関値の計算方法も、本例の計算方法に限定されない。具体的には、入力に拘らず、似たような値を出力する２つのニューロンの相関値が高くなる様な任意の計算方法を相関値の計算に使用することができる。
【００１８】
調整装置は、全ニューロン＃１〜＃１２から事前に決めた数Ｎを選択した組み合わせそれぞれについて評価値Ｅｖを以下の式（１）により求める。
Ｅｖ＝ΣＴ−αΣＣ−βΣＣｏｒｒ      （１）
なお、式（１）において、ΣＴは、選択した組に含まれるＮ個のニューロンの合計重要度それぞれを積算することを示し、ΣＣは、選択した組に含まれるＮ個のニューロンの計算コストそれぞれを積算することを示している。また、ΣＣｏｒｒは、選択した組に含まれるＮ個のニューロンから２つを選択したペアそれぞれの相関値を積算することを示している。なお、α及びβは、それぞれ、計算コストの値と、相関値の値を、合計重要度の値に適合させるための調整係数であり、いずれも正の値である。
【００１９】
例えば、Ｎを３とすると、調整装置は、１２Ｃ３の組それぞれについて評価値Ｅｖを計算する。以下では、ニューロン＃１、２及び４の組に対する評価値Ｅｖの計算について説明する。なお、αを０．２とし、βを３とする。まず、ニューロン＃１、２及び４の合計重要度は、それぞれ、図６に示す様に、３．９２９、１１．７８９、１．４３２である。したがって、式（１）のΣＴは、１７．１５である。また、ニューロン＃１、２及び４の計算コストは、それぞれ、図７に示す様に、１、１、１である。したがって、式（１）のΣＣは３であり、α＝０．２であるため、式（１）のαΣＣは０．６となる。
【００２０】
また、ニューロン＃１と＃２のペアの相関値が０．３であり、ニューロン＃１と＃４のペアの相関値が０．２であり、ニューロン＃２と＃４のペアの相関値が０．１であるものとすると、式（１）のΣＣｏｒｒは０．６であり、β＝３であるため、式（１）のβΣＣｏｒｒは１．８となる。したがって、この場合、評価値Ｅｖは、１７．１５−０．６−１．８＝１４.７５となる。
【００２１】
調整装置は、この様に、Ｍ個のニューロンを有するニューラルネットワークの場合、ＭＣＮの組それぞれについて評価値Ｅｖを計算し、最も評価値Ｅｖの大きい組のニューロンを残すと決定する。その後、調整装置は、残すと決定したニューロンに基づき、さらに残すべきニューロンを判定し、それ以外のニューロンについては削除を行う。以下では、Ｎ＝４とし、評価値Ｅｖに基づき、図９の網掛けで示すニューロン＃１、＃３、＃６及び＃１１を残すと決定した場合について、さらに残すべきニューロンと削除するニューロンをどの様に判定するかについて説明する。
【００２２】
ニューロン＃１１は、その計算にニューロン＃８及び＃９の出力を必要とするため、ニューロン＃８及び＃９は残さなければならないと判定される。図１０は、残さなければならないと判定されたニューロン＃８及び＃９も網掛けで示している。そうすると、ニューロン＃８及び＃９は、その計算のために、ニューロン＃５及び＃７を必要とし、ニューロン＃５及び＃７は、その計算のために、ニューロン＃２及び＃４を必要とするため、ニューロン＃２、＃４、＃５及び＃７も残さなければならないと判定される。図１１は、残さなければならないと判定されたニューロンの総てを網掛けで示している。したがって、調整装置は、残すと決定したニューロン＃１、＃３、＃６及び＃１１における計算には必要のないニューロン＃１０及び＃１２を削除すると判定する。したがって、削除後のニューラルネットワークは、図１２に示す様になる。
【００２３】
なお、図１２においては、計９つのニューロンがニューラルネットワークに存在しているが、出力として実際に使用するニューロンは、評価値Ｅｖに基づき残すと決定したニューロン＃１、＃３、＃６及び＃１１のみである。つまり、ニューロン＃２、＃４、＃６、＃７〜＃９は、残すと決定したニューロン＃１、＃３、＃６及び＃１１が計算を行える様に残したものであって、その出力値は判定のために使用しない。調整装置は、その後、学習を再度行って、残すと決定したニューロン＃１、＃３、＃６及び＃１１の出力値と、人の行動との関係を示す判定情報を作成する。
【００２４】
この様にして生成した、例えば、図１２に示すニューラルネットワークと判定情報を、例えば、スマートフォンの様な携帯型の端末装置に設定する。ここでは、説明の簡略化のため元のニューラルネットワークのニューロンの数を１２としたが、実際には、非常に多くの数のニューロンが含まれており、ターゲットとする端末装置の処理能力に応じてＮを設定することで、処理負荷の軽いニューラルネットワークを構成することができる。なお、実際に端末装置が使用するニューラルネットワークのニューロンの数は、Ｎより大きくなるため、Ｎはその増加分を考慮して設定する。また、本実施形態では、判定に使用するニューロンの数はＮとなるため、ニューラルネットワークの出力に基づく判定処理も軽くなる。
【００２５】
なお、本実施形態では、式（１）で評価値Ｅｖの計算に相関値も使用したが、相関値を使用しない構成とすることもできる。つまり、評価値Ｅｖを以下の式（２）で求めることができる。
Ｅｖ＝ΣＴ−αΣＣ      （２）
式（２）の計算式によると、最初に残すと決定するＮ個のニューロンは、合計重要度が高く、かつ、計算コストの低いものとなる。言い換えると、合計重要度が低く、かつ、計算コストの高いニューロンは選択され難くなる。この様に、ニューラルネットワークにおいて、計算コストが高く、あまり重要ではないニューロンを排除し、計算コストが低く、重要なニューロンにより判定することで、処理能力の高いデバイスで生成した、精度が高いが処理負荷も重いニューラルネットワークから、精度の劣化を抑えつつ、処理負荷の低いニューラルネットワークを生成することができる。
【００２６】
なお、相関値を使用する式（１）においては、相関値が大きい２つのニューロンが選択され難くなる。相関値が大きい２つのニューロンの出力は似ており、相関値が大きい２つのニューロンのペアを残しても、その２つの出力は冗長である。したがって、式（１）により選択するＮ個のニューロンそれぞれの相関値が低くなる様にすることで、冗長な出力を行うニューロンを排除することができる。
【００２７】
図１３は、本実施形態による調整装置の構成図である。保持部１０は、学習済のニューラルネットワークと、数Ｎを保持している。ここでニューラルネットワークを保持するとは、ニューラルネットワークを構成する各ニューロンと、それらのパスによる接続状態と、各パスの重みについての情報を保持していることを意味する。重要度計算部１１は、保持部が保持しているニューラルネットワークに基づき各ニューロンの固有重要度を計算し、さらに、各ニューロンの固有重要度に基づき各ニューロンの合計重要度を計算する。コスト計算部１２は、保持部が保持しているニューラルネットワークに基づき各ニューロンの計算コストを計算する。処理部１４は、各ニューロンの固有重要度と計算コストに基づき、式（２）の評価値Ｅｖが最大となるＮ個のニューロンを決定する。そして、決定したＮ個のニューロンと、当該Ｎ個のニューロンの計算に必要なニューロンを残し、それ以外のニューロンを削除して、処理能力の低いデバイスで使用できるニューラルネットワークを生成する。また、生成したニューラルネットワークの、決定したＮ個のニューロンの出力に基づき判定を行うための判定情報を学習により決定する。この判定情報も、処理能力の低いデバイスで生成したニューラルネットワークと共に使用される。なお、上述した様に、式（２）の評価値Ｅｖではなく、式（１）の評価値Ｅｖを使用することもできる。この場合、図１３に示す様に、調整装置には、相関計算部１３を設ける。相関計算部１３は、２つのニューロンのペアそれぞれの相関値を計算する。
【００２８】
なお、本発明による調整装置は、コンピュータを上記調整装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。
【符号の説明】
【００２９】
１１：重要度計算部、１２：コスト計算部、１３：相関計算部、１４：処理部
【図１】
2019061338.tif 000003
【図２】
2019061338.tif 000004
【図３】
2019061338.tif 000005
【図４】
2019061338.tif 000006
【図５】
2019061338.tif 000007
【図６】
2019061338.tif 000008
【図７】
2019061338.tif 000009
【図８】
2019061338.tif 000010
【図９】
2019061338.tif 000011
【図１０】
2019061338.tif 000012
【図１１】
2019061338.tif 000013
【図１２】
2019061338.tif 000014
【図１３】
2019061338.tif 000015