【文献】
押野隆弘 ほか,誤差逆伝搬学習における中間層ユニットの逐次削減法,電子情報通信学会論文誌,社団法人電子情報通信学会,1993年 7月25日,第J76-D-II巻,第7号,pp.1414-1424,ISSN:0915-1923
(58)【調査した分野】(Int.Cl.,DB名)
組の前記評価値は、当該組に含まれるニューロンそれぞれの前記第1の値が大きい程、大きくなり、当該組に含まれるニューロンそれぞれの前記第2の値が大きい程、小さくなる値であることを特徴とする請求項1に記載の調整装置。
ニューロンの前記第1の値は、当該ニューロンの子ニューロンの重要度が大きくなると、大きくなる値であることを特徴とする請求項1から4のいずれか1項に記載の調整装置。
ニューロンの前記第2の値は、当該ニューロンの総ての親ニューロンの数が多くなると大きくなる値であることを特徴とする請求項1から5のいずれか1項に記載の調整装置。
前記第1ニューラルネットワークの2つのニューロンのペアそれぞれについて、ペアに含まれる2つのニューロンの相関を示す第3の値を求める第3手段をさらに備えており、
前記選択手段は、組の前記評価値の算出に、当該組に含まれる前記所定数のニューロンから選択した2つのニューロンのペアそれぞれの前記第3の値を使用することを特徴とする請求項1から6のいずれか1項に記載の調整装置。
【発明を実施するための形態】
【0009】
以下、本発明の例示的な実施形態について図面を参照して説明する。なお、以下の実施形態は例示であり、本発明を実施形態の内容に限定するものではない。また、以下の各図においては、実施形態の説明に必要ではない構成要素については図から省略する。
【0010】
図1は、本実施形態を説明するためのニューラルネットワークを示している。上述した様に、より精度の高い出力を得るためには、非常に多くのニューロンを使用してニューラルネットワークを構成するが、ここでは、本発明の原理の説明を簡略化するため、ニューロン#1〜#12の計12個のニューロンを有するニューラルネットワークを用いて説明する。このニューラルネットワークの出力に基づき判定する内容等は任意であるが、ここでは、一例として、ニューラルネットワークの出力に基づき人の行動内容を判定するものとする。この場合、
図1のニューラルネットワークは、例えば、多数の人に装着したセンサ等の出力に基づき処理能力の高いデバイスにおいて学習が行われて生成される。また、本実施形態では、ニューラルネットワークの総てのニューロンの出力値に基づき人の行動を判定するものとする。したがって、ニューロン#1〜#12それぞれの出力値と人の行動との関係を示す判定情報についても、予め処理能力の高いデバイスにおいて行われた学習により決定されているものとする。そして、例えば、ある人に装着したセンサの出力が入力として与えられたときの、ニューロン#1〜#12それぞれの出力値と判定情報に基づき、当該人の行動が判定される。
【0011】
本実施形態による調整装置は、携帯端末等の処理能力の低いデバイスでもニューラルネットワークを動作可能とさせるため、
図1のニューラルネットワークのニューロンの数を減少させて、新たなニューラルネットワークを構成する。このため数Nをまず決定する。数Nは、元のニューラルネットワークのニューロンの数Mより小さい数であり、この数Nは、ニューラルネットワークを動作させる能力の低いデバイスの処理能力に基づき決定する。
【0012】
まず、本実施形態による調整装置での処理について説明する前に、本実施形態で使用する用語の定義を行う。あるニューロンに入力を直接与えるニューロンを当該ニューロンの「親ニューロン」と呼ぶものとする。つまり、あるパスの接続元のニューロンを、当該パスの接続先のニューロンの親ニューロンと呼ぶものとする。さらに、あるニューロンから、第1層のニューロン(
図1では、ニューロン#1〜#4)までパスを、その方向とは逆向きに辿ったときに含まれる総てのニューロンを、当該ニューロンの「全親ニューロン」又は「総ての親ニューロン」と呼ぶものとする。具体的には、
図2のニューロン#9の親ニューロンは、ニューロン#5、#6及び7であり、ニューロン#9の全親ニューロンは、ニューロン#1〜#7である。あるニューロンの全親ニューロンとは、当該あるニューロンの入力値に影響を与えるニューロンである。
【0013】
同様に、あるニューロンの出力を直接の入力とするニューロンを当該ニューロンの「子ニューロン」と呼ぶものとする。つまり、あるパスの接続先のニューロンを、当該パスの接続元のニューロンの子ニューロンと呼ぶものとする。さらに、あるニューロンから、最終層のニューロン(
図1では、ニューロン#10〜#12)までパスを順方向に辿ったときに含まれる総てのニューロンを、当該ニューロンの「全子ニューロン」又は「総ての子ニューロン」と呼ぶものとする。具体的には、
図3のニューロン#2の子ニューロンは、ニューロン#5及び7であり、ニューロン#2の全子ニューロンは、ニューロン#5、7及び#8〜#12である。あるニューロンの全子ニューロンは、当該あるニューロンの出力により、入力が影響を受けるニューロンである。
【0014】
本実施形態の調整装置は、各ニューロン#1〜#12それぞれについて「重要度」を求める。重要度は、例えば、線形回帰(Linear Regression)や、ランダムフォレスト(Random Forest)の様な、公知の任意のアルゴリズムにより求めることができる。なお、以下の説明においては、後述する合計重要度と区別するために、線形回帰等の公知のアルゴリズムで求めるニューロンの重要度を「固有重要度」と呼ぶものとする。
図4は、本実施形態の説明で使用する、各ニューロン#1〜#12それぞれの固有重要度を示している。
【0015】
調整装置は、各ニューロン#1〜#12それぞれについて、固有重要度に基づき「合計重要度」Tを求める。あるニューロンの合計重要度は、当該ニューロンの全子ニューロンの固有重要度の和に所定の係数を乗じた値と、当該ニューロンの固有重要度との和として求める。ここで、所定の係数は1以下の整数である。例えば、あるニューロンの固有重要度をAとし、当該ニューロンの全子ニューロンの固有重要度の和をBとし、所定の係数をγとすると、当該ニューロンの合計重要度Tは、T=A+γBである。
図5の表は、各ニューロンについて、その固有重要度と、全子ニューロンと、合計重要度を示している。なお、所定の係数γをここでは、0.01としている。例えば、ニューロン#6の全子ニューロンは、ニューロン#9、#11及び#12であるため、これらの固有重要度の和は、11.2+5.4+12.3=28.9である。したがって、係数α=0.01を乗ずると、その値は0.289であり、ニューロン#6の固有重要度4.3を加えることで、ニューロン#6の合計重要度は、4.589と計算される。
図6は、各ニューロン#1〜#12の合計重要度を、各ニューロン#1〜#12に記載したものである。なお、ニューロンの合計重要度の計算方法は、本例の計算方法に限定されない。例えば、あるニューロンの合計重要度を、当該ニューロンの子ニューロンの合計重要度の和に所定の係数を乗じた値に、当該ニューロンの固有重要度を加えた値とすることもできる。なお、この場合には、最終層のニューロンから順に固有重要度を計算する。この様に、あるニューロンの合計重要度は、当該ニューロンの固有重要度と、当該ニューロンの全子ニューロンそれぞれの固有重要度が大きいほど大きくなる値とすれば、その計算方法は他の方法であっても良い。
【0016】
また、本実施形態の調整装置は、各ニューロン#1〜#12それぞれについて、「計算コスト」Cを求める。計算コストCは、親ニューロンの計算コストの合計+1として計算される。
図7に各ニューロ#1〜#12それぞれの計算コストを示す。例えば、ニューロン#1〜#4は、親ニューロンがないため、これらの計算コストは総て1となる。また、ニューロン#5の親ニューロンは、ニューロン#1から#4であり、その計算コストの合計は4である。したがって、ニューロン#5の計算コストは5となる。同様に、ニューロン#6及び#7の計算コストは、それぞれ、3及び4となる。さらに、ニューロン#9の親ニューロンは、ニューロン#5から#7であり、その計算コストの合計は12である。したがって、ニューロン#9の計算コストは13となる。なお、ニューロンの計算コストの計算方法は、本例の計算方法に限定されない。例えば、あるニューロンの計算コストを、当該ニューロンの全親ニューロンの数に1を加えた値とすることができる。この様に、あるニューロンの計算コストは、全親ニューロンの数が増えるほど大きくなる値とすれば、その計算方法は他の方法であっても良い。
【0017】
さらに、本実施形態の調整装置は、ニューロン#1〜#12から2つを選択した組み合わせそれぞれについて「相関値」Corrを求める。例えば、
図1のニューラルネットワークに任意の値を入力したときの、各ニューロン#1〜#12の出力を計算する。
図8は、ニューラルネットワークに計n個の値を入力したときの、各ニューロン#1〜#12の出力を示している。ここで、各入力に対するニューロン#1の出力の平均値をE(X)とし、ニューロン#2の出力の平均値をE(Y)とする。また、各入力に対するニューロン#1の出力の2乗の平均値をE(X
2)とし、ニューロン#2の出力の2乗の平均値をE(Y
2)とする。さらに、各入力に対するニューロン#1の出力とニューロン#2の出力とを乗じた値の平均値をE(XY)とする。この場合、ニューロン#1と#2のペアの相関値Corrは、
Corr=M/N
M=(E(XY)−E(X)E(Y))
N=(E(X
2)−E(X)
2)
0.5(E(Y
2)−E(Y)
2)
0.5
として求めることができる。上記相関値の計算は、所謂、ピアソン相関係数であるが、例示であり、ニューロンのペアの相関値の計算方法も、本例の計算方法に限定されない。具体的には、入力に拘らず、似たような値を出力する2つのニューロンの相関値が高くなる様な任意の計算方法を相関値の計算に使用することができる。
【0018】
調整装置は、全ニューロン#1〜#12から事前に決めた数Nを選択した組み合わせそれぞれについて評価値Evを以下の式(1)により求める。
Ev=ΣT−αΣC−βΣCorr (1)
なお、式(1)において、ΣTは、選択した組に含まれるN個のニューロンの合計重要度それぞれを積算することを示し、ΣCは、選択した組に含まれるN個のニューロンの計算コストそれぞれを積算することを示している。また、ΣCorrは、選択した組に含まれるN個のニューロンから2つを選択したペアそれぞれの相関値を積算することを示している。なお、α及びβは、それぞれ、計算コストの値と、相関値の値を、合計重要度の値に適合させるための調整係数であり、いずれも正の値である。
【0019】
例えば、Nを3とすると、調整装置は、
12C
3の組それぞれについて評価値Evを計算する。以下では、ニューロン#1、2及び4の組に対する評価値Evの計算について説明する。なお、αを0.2とし、βを3とする。まず、ニューロン#1、2及び4の合計重要度は、それぞれ、
図6に示す様に、3.929、11.789、1.432である。したがって、式(1)のΣTは、17.15である。また、ニューロン#1、2及び4の計算コストは、それぞれ、
図7に示す様に、1、1、1である。したがって、式(1)のΣCは3であり、α=0.2であるため、式(1)のαΣCは0.6となる。
【0020】
また、ニューロン#1と#2のペアの相関値が0.3であり、ニューロン#1と#4のペアの相関値が0.2であり、ニューロン#2と#4のペアの相関値が0.1であるものとすると、式(1)のΣCorrは0.6であり、β=3であるため、式(1)のβΣCorrは1.8となる。したがって、この場合、評価値Evは、17.15−0.6−1.8=14.75となる。
【0021】
調整装置は、この様に、M個のニューロンを有するニューラルネットワークの場合、
MC
Nの組それぞれについて評価値Evを計算し、最も評価値Evの大きい組のニューロンを残すと決定する。その後、調整装置は、残すと決定したニューロンに基づき、さらに残すべきニューロンを判定し、それ以外のニューロンについては削除を行う。以下では、N=4とし、評価値Evに基づき、
図9の網掛けで示すニューロン#1、#3、#6及び#11を残すと決定した場合について、さらに残すべきニューロンと削除するニューロンをどの様に判定するかについて説明する。
【0022】
ニューロン#11は、その計算にニューロン#8及び#9の出力を必要とするため、ニューロン#8及び#9は残さなければならないと判定される。
図10は、残さなければならないと判定されたニューロン#8及び#9も網掛けで示している。そうすると、ニューロン#8及び#9は、その計算のために、ニューロン#5及び#7を必要とし、ニューロン#5及び#7は、その計算のために、ニューロン#2及び#4を必要とするため、ニューロン#2、#4、#5及び#7も残さなければならないと判定される。
図11は、残さなければならないと判定されたニューロンの総てを網掛けで示している。したがって、調整装置は、残すと決定したニューロン#1、#3、#6及び#11における計算には必要のないニューロン#10及び#12を削除すると判定する。したがって、削除後のニューラルネットワークは、
図12に示す様になる。
【0023】
なお、
図12においては、計9つのニューロンがニューラルネットワークに存在しているが、出力として実際に使用するニューロンは、評価値Evに基づき残すと決定したニューロン#1、#3、#6及び#11のみである。つまり、ニューロン#2、#4、#6、#7〜#9は、残すと決定したニューロン#1、#3、#6及び#11が計算を行える様に残したものであって、その出力値は判定のために使用しない。調整装置は、その後、学習を再度行って、残すと決定したニューロン#1、#3、#6及び#11の出力値と、人の行動との関係を示す判定情報を作成する。
【0024】
この様にして生成した、例えば、
図12に示すニューラルネットワークと判定情報を、例えば、スマートフォンの様な携帯型の端末装置に設定する。ここでは、説明の簡略化のため元のニューラルネットワークのニューロンの数を12としたが、実際には、非常に多くの数のニューロンが含まれており、ターゲットとする端末装置の処理能力に応じてNを設定することで、処理負荷の軽いニューラルネットワークを構成することができる。なお、実際に端末装置が使用するニューラルネットワークのニューロンの数は、Nより大きくなるため、Nはその増加分を考慮して設定する。また、本実施形態では、判定に使用するニューロンの数はNとなるため、ニューラルネットワークの出力に基づく判定処理も軽くなる。
【0025】
なお、本実施形態では、式(1)で評価値Evの計算に相関値も使用したが、相関値を使用しない構成とすることもできる。つまり、評価値Evを以下の式(2)で求めることができる。
Ev=ΣT−αΣC (2)
式(2)の計算式によると、最初に残すと決定するN個のニューロンは、合計重要度が高く、かつ、計算コストの低いものとなる。言い換えると、合計重要度が低く、かつ、計算コストの高いニューロンは選択され難くなる。この様に、ニューラルネットワークにおいて、計算コストが高く、あまり重要ではないニューロンを排除し、計算コストが低く、重要なニューロンにより判定することで、処理能力の高いデバイスで生成した、精度が高いが処理負荷も重いニューラルネットワークから、精度の劣化を抑えつつ、処理負荷の低いニューラルネットワークを生成することができる。
【0026】
なお、相関値を使用する式(1)においては、相関値が大きい2つのニューロンが選択され難くなる。相関値が大きい2つのニューロンの出力は似ており、相関値が大きい2つのニューロンのペアを残しても、その2つの出力は冗長である。したがって、式(1)により選択するN個のニューロンそれぞれの相関値が低くなる様にすることで、冗長な出力を行うニューロンを排除することができる。
【0027】
図13は、本実施形態による調整装置の構成図である。保持部10は、学習済のニューラルネットワークと、数Nを保持している。ここでニューラルネットワークを保持するとは、ニューラルネットワークを構成する各ニューロンと、それらのパスによる接続状態と、各パスの重みについての情報を保持していることを意味する。重要度計算部11は、保持部が保持しているニューラルネットワークに基づき各ニューロンの固有重要度を計算し、さらに、各ニューロンの固有重要度に基づき各ニューロンの合計重要度を計算する。コスト計算部12は、保持部が保持しているニューラルネットワークに基づき各ニューロンの計算コストを計算する。処理部14は、各ニューロンの固有重要度と計算コストに基づき、式(2)の評価値Evが最大となるN個のニューロンを決定する。そして、決定したN個のニューロンと、当該N個のニューロンの計算に必要なニューロンを残し、それ以外のニューロンを削除して、処理能力の低いデバイスで使用できるニューラルネットワークを生成する。また、生成したニューラルネットワークの、決定したN個のニューロンの出力に基づき判定を行うための判定情報を学習により決定する。この判定情報も、処理能力の低いデバイスで生成したニューラルネットワークと共に使用される。なお、上述した様に、式(2)の評価値Evではなく、式(1)の評価値Evを使用することもできる。この場合、
図13に示す様に、調整装置には、相関計算部13を設ける。相関計算部13は、2つのニューロンのペアそれぞれの相関値を計算する。
【0028】
なお、本発明による調整装置は、コンピュータを上記調整装置として動作させるプログラムにより実現することができる。これらコンピュータプログラムは、コンピュータが読み取り可能な記憶媒体に記憶されて、又は、ネットワーク経由で配布が可能なものである。