(58)【調査した分野】(Int.Cl.,DB名)
前記層数調整部は、さらに、前記再学習部にて再学習された多層ニューラルネットワークについて、前記プロービングニューロンのコストに基づいて前記多層ニューラルネットワークの上層を除去して、残った最上層のプロービングニューロンを出力層とすることを特徴とする請求項2に記載の学習装置。
前記層数調整部は、前記多層ニューラルネットワークの出力層のコストが最小でない場合に、コストが最小である前記プロービングニューロンを有する層よりも上層の少なくとも1つの前記プロービングニューロンを残して前記多層ニューラルネットワークの上層を除去することを特徴とする請求項3に記載の学習装置。
【発明の概要】
【発明が解決しようとする課題】
【0007】
多層ニューラルネットワークの構造を決定するための上記の従来手法に共通することは、初期ネットワークを最初に訓練し、汎化能力が良くなると期待できる指標に従ってユニットを増減することで隠れ層のユニット数を自動決定する点である。即ち、従来手法は、層数を固定してユニット数を最適化するものであって、層数自体を最適化するものではない。
【0008】
多層ニューラルネットワークは一般に識別性能が良いとされるが、多層になればなるほど識別に時間がかかり、従って層数は識別性能と計算量を大きく左右するパラメタである。しかしながら、上述のように、従来、層数の最適な決定方法は提案されていない。また、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)においても、フィルタ層の層数、またフィルタ層に続く全結合層の層数は、設計者によって手動で決められるのが現状であり、フィルタ層と全結合層の最適な層数の決定方法は提案されていない。
【0009】
本発明は、上記の問題に鑑みてなされたものであり、多層ニューラルネットワークの層数を自動で調整できる学習装置、学習プログラム、及び学習方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の態様の学習装置は、教師あり学習によって順伝搬型の多層ニューラルネットワークの学習を行う学習装置であって、隠れ層に、出力層に順伝搬しないプロービングニューロンを有する多層ニューラルネットワークについて、訓練データセットを用いたコスト計算による学習を行う学習部と、前記プロービングニューロンのコストに基づいて前記多層ニューラルネットワークの上層を除去して、残った最上層のプロービングニューロンを出力層とする層数調整部とを備えたことを特徴とする。
【0011】
この構成によれば、層数調整部が学習部における学習に基づいて、多層ニューラルネットワークの不要な上層を除去するので、層数を無駄に多くして処理負荷及び計算に要する時間を増大させることなく、十分な汎化能力を有する多層ニューラルネットワークを取得できる。
【0012】
本発明の第2の態様の学習装置は、第1の態様の学習装置において、前記層数調整部にて上層を除去された多層ニューラルネットワークについて再学習を行う再学習部をさらに備えたことを特徴とする。
【0013】
この構成によれば、不要な上層を除去した後に再学習を行うので、コストをさらに低減できる。
【0014】
本発明の第3の態様の学習装置は、第2の態様の学習装置において、前記層数調整部は、さらに、前記再学習部にて再学習された多層ニューラルネットワークについて、前記プロービングニューロンのコストに基づいて前記多層ニューラルネットワークの上層を除去して、残った最上層のプロービングニューロンを出力層とすることを特徴とする。
【0015】
この構成によれば、再学習部による再学習の後に再度上層の除去を試み、必要に応じて上層を除去するので、さらに層数を最適化できる。
【0016】
本発明の第4の態様の学習装置は、第1ないし第3のいずれかの態様の学習装置において、前記層数調整部は、コストが最小となる前記プロービングニューロンを前記出力層とすることを特徴とする。
【0017】
この構成によれば、出力層のコストを最小化して、層数を最適化できる。
【0018】
本発明の第5の態様の学習装置は、第3の態様の学習装置において、前記層数調整部は、前記多層ニューラルネットワークの隠れ層の最上層の前記プロービングニューロンのコストが最小でない場合に、コストが最小である前記プロービングニューロンを有する層よりも上層の少なくとも1つの前記プロービングニューロンを残して前記多層ニューラルネットワークの上層を除去することを特徴とする。
【0019】
この構成によれば、層を上層側から徐々に除去していくので、複数回の再学習によって、最適な層数を決定することができる。
【0020】
本発明の第6の態様の学習装置は、第1ないし第5のいずれかの態様の学習装置において、前記プロービングニューロンに接続する部分が層構造を有することを特徴とする。
【0021】
この構成によれば、プロービングニューロンに接続する部分が層構造をなすことで、プロービングニューロンの識別性能を高めることができ、さらに、隠れ層の線形分離性能の最適化の制約がないので、出力層における識別性能の向上も期待できる。
【0022】
本発明の第7の態様の学習装置は、教師あり学習によって順伝搬型の多層ニューラルネットワークの学習を行う学習装置であって、第1ないし第6のいずれかの態様の学習装置で学習された多層ニューラルネットワークから前記プロービングニューロンを除去した多層ニューラルネットワークを初期多層ニューラルネットワークとして使用した学習を行うことを特徴とする。
【0023】
この構成によれば、識別性能の高い初期多層ニューラルネットワークを提供できる。
【0024】
本発明の第8の態様の識別器は、第1ないし第6のいずれかの学習装置によって得られた多層ニューラルネットワークを用いて識別を行う識別器であって、前記プロービングニューロンによって識別を行うことで早期棄却を行うことを特徴とする。
【0025】
この構成によれば、早期棄却を採用した高速な識別が可能となる。
【0026】
本発明の第9の態様の識別器は、第8の態様の識別器において、前記プロービングニューロンによって出力層のいずれかのユニットに該当するか否かを判断することで前記早期棄却を行うことを特徴とする。
【0027】
この構成によれば、出力層のいずれかのユニットに該当するか否かを早期に判断して、計算量を削減できる。
【0028】
本発明の第10の態様の学習装置は、教師あり学習によって順伝搬型の畳み込みニューラルネットワークの学習を行う学習装置であって、隠れ層に、マップに連結するプロービングニューロンを有する畳み込みニューラルネットワークについて、訓練データセットを用いたコスト計算による学習を行う学習部と、前記プロービングニューロンのコストに基づいて前記畳み込みニューラルネットワークの上層を除去して、残った最上層のプロービングニューロンを畳み込みの出力層とする層数調整部とを備えたことを特徴とする。
【0029】
この構成によれば、層数調整部が学習部における学習に基づいて、畳み込みニューラルネットワークの不要な上層を除去するので、層数を無駄に多くして処理負荷及び計算に要する時間を増大させることなく、十分な汎化能力を有する畳み込みニューラルネットワークを取得できる。
【0030】
本発明の第11の態様の学習プログラムは、コンピュータを、教師あり学習によって順伝搬型の多層ニューラルネットワークの学習を行う学習装置であって、隠れ層に、出力層に順伝搬しないプロービングニューロンを有する多層ニューラルネットワークについて、訓練データセットを用いたコスト計算による学習を行う学習部と、前記プロービングニューロンのコストに基づいて前記多層ニューラルネットワークの上層を除去して、残った最上層のプロービングニューロンを出力層とする層数調整部とを備えた学習装置として機能させることを特徴とする。
【0031】
この構成によっても、層数調整部が学習部における学習に基づいて、不要な上層を除去するので、層数を無駄に多くして処理負荷及び計算に要する時間を増大させることなく、十分な汎化能力を有する多層ニューラルネットワークを取得できる。
【0032】
本発明の第12の態様の学習方法は、教師あり学習によって順伝搬型の多層ニューラルネットワークの学習を行う学習方法であって、隠れ層に、出力層に順伝搬しないプロービングニューロンを有する多層ニューラルネットワークについて、訓練データセットを用いたコスト計算による学習を行う学習ステップと、前記プロービングニューロンのコストに基づいて前記多層ニューラルネットワークの上層を除去して、残った最上層のプロービングニューロンを出力層とする層数最適化ステップとを含むことを特徴とする。
【0033】
この構成によっても、学習ステップにおける学習に基づいて、層数最適化ステップにて不要な上層を除去するので、層数を無駄に多くして処理負荷及び計算に要する時間を増大させることなく、十分な汎化能力を有する多層ニューラルネットワークを取得できる。
【発明の効果】
【0034】
本発明によれば、層数調整部が学習部における学習に基づいて、不要な上層を除去するので、層数を無駄に多くして処理負荷及び計算に要する時間を増大させることなく、十分な汎化能力を有する多層ニューラルネットワークを取得できる。
【発明を実施するための形態】
【0036】
以下、本発明の実施の形態の多層ニューラルネットワーク学習装置について、図面を参照しながら説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【0037】
図1は、本実施の形態の多層ニューラルネットワーク学習装置の構成を示すブロック図である。本実施の形態の多層ニューラルネットワーク学習装置は、後述するようにプロービングニューロンが追加された多層ニューラルネットワークの学習装置であり、以下では、プロービングニューロンが追加された多層ニューラルネットワークをプローブド深層ニューラルネットワーク(PDNN:Probed Deep Neural Network)と呼び、その学習装置をPDNN学習装置と呼ぶこととする。また、以下では、多層ニューラルネットワークを単に「ネットワーク」ともいう。
【0038】
PDNN学習装置100は、教師データ記憶部11と、学習部12と、層数調整部13と、再学習部14とを備えている。PDNN学習装置100は、補助記憶装置(HDD、SSD等)、主記憶装置(RAM等)、処理装置(CPU等)、入出力装置(各種入出力ポート及び通信モジュール)等を備えたコンピュータによって実現される。特に、教師データ記憶部11は、補助記憶装置によって実現され、学習部12、層数調整部13、及び再学習部14は、コンピュータが本実施の形態の学習プログラムを実行することによって実現される。
【0039】
学習部12は、与えられた初期多層ニューラルネットワークについてコストを計算することで学習を行う。層数調整部13は、学習部12にて計算された初期多層ニューラルネットワークのコストに基づいて、初期多層ニューラルネットワークの上層を除去することで、多層ニューラルネットワークの層数を調整して最適化する。再学習部14は、層数調整部13にて層数が最適化された多層ニューラルネットワークについて再学習を行って、多層ニューラルネットワークをチューニングする。層数調整部13は、さらに、再学習部14で調整された多層ニューラルネットワークについても、必要に応じて上層の除去を行うことで、再度層数を調整して最適化する。
【0040】
教師データ記憶部11には、教師データとして、ネットワークの入力となる多次元ベクトルと、それに対応した、ネットワークの出力となるターゲット値(多次元ベクトルまたはスカラー)の組が多数記憶されている。教師データは、ネットワークを学習するために使用される訓練データセット111と、学習されたネットワークを評価するために使用されるテストデータセット112に分割されて教師データ記憶部11に記憶されている。
【0041】
PDNN学習装置100の各部における処理の説明の前に、まず、本発明の実施の形態において対象とする多層ニューラルネットワークの種類について説明する。本実施の形態の多層ニューラルネットワークは、層を跨いだユニット間の結合はないものとする。また、ある層の全ユニットと、その次の層の全ユニットとは、全てが結合していてもよいし、一部が結合していなくてもよい。対象とするネットワークは、入力層から出力層まで順番に信号が伝搬する順伝搬(フィードフォワード)型とする。
【0042】
図2は、従来の多層ニューラルネットワークとの比較において、本実施の形態の初期多層ニューラルネットワークの構成を示す図である。
図2の上段が本実施の形態の初期多層ニューラルネットワークの一例であり、下段が従来の多層ニューラルネットワークである。
図2に示すように、本実施の形態の初期多層ニューラルネットワークは、従来の多層ニューラルネットワークに、プロービングニューロン(PN:Probing Neuron)というユニットを追加したネットワーク構造を有する。PNは、ターゲット値に近づくように学習された、隠れ層に属するユニットである。
【0043】
以下では、まず、従来の多層ニューラルネットワークの学習方法を説明し、次いで本実施の形態のPDNN学習装置100によるPDNNの学習方法を説明する。
図3は、従来の多層ニューラルネットワークの構造を示す図である。
図3において、層数Lと各層のユニット数D
l(l=1,2,…,L)はあらかじめ与えられているものとする。第n(n=1,2,…,N)番目の入力ベクトルを下式(1)、式(2)のように定義する。
【数1】
【数2】
【0044】
すべてのl=1,2,…,Lに対して、下式(3)〜(7)の変数を定める。
【数3】
【数4】
【数5】
【数6】
【数7】
なお、hは単調増加かつ微分可能な非線形活性関数である。
【0045】
最適化問題として、下式(8)を最小化する
【数8】
を求める。
【数9】
ここで、
【数10】
であり、t
nは、次元D
Lの既知の正解出力ベクトル(スカラー)である。なお、E
nは、真値との差の二乗の総和の他、クロスエントロピーを採用することもできる。
【0046】
学習は、出力層に近い重みから順に勾配法による更新を繰り返す誤差逆伝搬法を用いる。なお、この時の初期値は乱数によって与えられる。勾配法は下式(9)で表現される。
【数11】
勾配法で使用する微分の計算方法は以下のとおりである。なお、以下の式において下付きのi、j、kは、ベクトルや行列のインデクスである。
【0047】
まず、最終の重み層の微分は、下式(10)〜(12)の計算で求められる。
【数12】
【数13】
【0048】
l=D−1,D−2,…,1の重み層の微分は、下式(13)〜(16)の計算で求められる。
【数14】
【数15】
【0049】
次に、本実施の形態のPDNNの学習方法を説明する。PDNNの学習方法では、まず、充分な層数を持ったPDNNが初期ネットワークとして設定される。そして、PDNN学習装置100は、以下の手順によって最適な層数を決定する。
【0050】
図4は、PDNNの初期ネットワークの構造を示す図である。層数Lと各層のユニット数D
l=(l=1,2,…,L)はあらかじめ与えられるものとする。また、各隠れ層に置かれるPNの個数は出力ユニット数と同数である。訓練データセット111の第n(n=1,2,…,N)番目の入力ベクトルを下式(17)、(18)のように定義する。
【数16】
【数17】
【0051】
l=1に対して、下式(19)〜(23)の変数を定める。
【数18】
【数19】
【数20】
【数21】
【数22】
【0052】
また、l=2,3,…,L−1に対して、下式(24)〜(28)の変数を定める。
【数23】
【数24】
【数25】
【数26】
【数27】
【0053】
最終層(l=L)の変数は次のように定める。
【数28】
【数29】
【数30】
【数31】
【0054】
学習部12は、最適化問題として、下式(33)を最小化する
【数32】
を求める。
【数33】
【数34】
ここで、式(33)の右辺の第1項は出力層(第L層)のコストであり、右辺第2項は第L−1層のPNコストであり、右辺第3項は第L−2層のPNコストであり、右辺の最終項は第2層のPNコストである。
【0055】
なお、隠れ層においては、PNと真値との差の二乗の総和をPNコストとして採用してよく、出力層においては通常のニューラルネットワークと同じであり、二乗和の代わりにクロスエントロピーをコストとして採用してもよい。
【0056】
以下では、下式(37)、(38)のように標記を簡略化する。
【数35】
【数36】
【0057】
学習は、通常のニューラルネットワークと同様に、勾配法による重みの更新則を適用して行う。まず、最終Lの重み層の微分は、下式(39)〜(41)の計算で求められる。
【数37】
【数38】
【0058】
また、最終の1つ前の重み層(第L−1層)の微分は、l=L−1とおくと、下式(42)〜(48)の計算で求められる。
【数39】
【数40】
【数41】
【数42】
ここで、式(41)はPNに直結する重みについての微分であり、式(45)はPNに直結しない重みについての微分である。
【0059】
最終の2つ前の重み層(第L−2層)の微分は、l=L−2とおくと、下式(49)〜(55)の計算で求められる。
【数43】
【数44】
【数45】
【数46】
【0060】
以上の導出より、l=L−1,L−2,…,2においては、以下の通り更新則を一般化できる。
【数47】
【数48】
そして、l=1のときは、以下のとおりとすればよい。
【数49】
【0061】
次に、層数調整部13の処理について説明する。上記のようにして学習部12において、学習によってコストEを最小化する
【数50】
が求まると、層数調整部13は、そのコストEに基づいて、ネットワークの上層を除去する。
【0062】
図5は、層数と学習終了時のテストコストとの関係を示す図である。
図5におけるテストコストとは、テストデータセット112を用いて式(33)を計算した場合のPNのコストEのことであり、この値は小さい方が望ましい。
図5の例では、簡単のため、出力層のユニット数及び各隠れ層のPNは1つとしている。
【0063】
学習部12における学習にて得られたネットワークのPNは、そのそれぞれがターゲット値に近づくように学習されているため、出力層のユニットと同じように、識別器と考えることができる。学習部12にて初期ネットワークを学習することで、
図5のように各PNのコストの値を得ることができる。テストデータに対して層数が多すぎればPNは過学習を起こし、層数が少なすぎればPNは十分な弁別能力を持たなくなる。よって、PNのコストが最小値を取る層が最良の層である。
図5の例では、第7層において、PNのコストが最小値をとなっている。
【0064】
層数調整部13は、重み層の数をカウントする。PNコストが最小(最良)である層の後段の層は、全体の識別性能を向上させないため、計算不要である。従って、層数調整部13は、
図5の点線で囲まれた部分をネットワークから除去する。即ち、層数調整部13は、コストが最小であるPNより上層のPNは除去し、除去されるPNに連結している重み(PNの前段の全ての重み)も除去する。
【0065】
図6は、層を除去した後のネットワークを示す図である。
図6に示すように、第7層のPNが出力層のユニットとされる。なお、不要な上層をネットワークから除去することは、残ったネットワークの信号を一切変化させないため、PNのコストもまた変化しない。このことは、層数調整部13による不要な上層の除去が、識別性能を一切劣化させないことを意味している。
【0066】
次に、再学習部14における処理について説明する。再学習部14は、層数調整部にて上層を除去されたネットワークについて再度上記で説明した学習(ファインチューニング)を行う。
図7は、再学習部14による処理を説明する図である。層数調整部13にて不要な層が除去されたネットワークは、さらなる学習によってコストを低減させることが可能である。ここでの学習は、現在保持している重みの値から、誤差逆伝搬法による更新を行うことを意味している。不要な層が除去されたネットワークは、もはや上層からの誤差の逆伝搬がないため、更新量は変化し、コストをさらに低減させることができる。
【0067】
再学習の結果得られるネットワークとその重みは、初期ネットワークの学習結果と比べて高い汎化能力を持つことが多い。その理由は、各隠れ層にPNを配置し、各隠れ層の線形分離性能を最適化することで、隠れ層の信号がデータの弁別のために必要以上に複雑な表現を持つことを回避し、訓練データへの過剰な適合を防いでいるためと考えられる。
【0068】
再学習部14は、再学習を行って、そのコストを計算する。そうすると、コストは低減するが、このとき最上層(出力層)のコストが最低になるとは限らない。例えば、再学習の結果、最上層の1つ前の層でコストが最低となることもあり得る。そこで、層数調整部13は、再学習後に最上層にてコストが最低となっていない場合には、コストが最低となっている層より上層の層を除去する。
【0069】
再学習部14は、層数調整部13にて上層が除去された場合には、さらにそのようなネットワークについて、再学習を行う。このような層数調整部13による不要な層の除去と再学習部14による再学習は、不要な層が出現しなくなるまで繰り返される。不要な層が出現しなくなると、PDNN学習装置100は、そのPDNNを最終的な結果として出力する。
【0070】
図8は、本実施の形態のPDNN学習装置によるPDNN学習方法のフロー図である。まず、学習部12は、初期ネットワークについてコスト計算による学習を行う(ステップS81)。次に、層数調整部13は、コストが最小である層より上層の層を除去して、残った最上層のPN、即ちコストが最小となるPNを出力層とする(ステップS82)。次に、再学習部14は、残った層からなるネットワークについて再学習を行う(ステップS83)。
【0071】
層最適化部13は、再学習を行った結果、依然として最上層のコストが最小であるかを判断する(ステップS84)。最上層のコストが最小でない場合には(ステップS84にてNO)、コストが最小である層より上層の層を除去し(ステップS82)、再学習部14はそのようなネットワークについて再学習を行う(ステップS83)。ステップS82〜S84を繰り返して、ステップS84にて最上層のコストが最小となったときは(ステップS84にてYEE)、その結果を出力する(ステップS85)。
【0072】
以上のように、本実施の形態のPDNN学習装置100によれば、層数調整部13が学習部12における学習に基づいて、PDNNの不要な上層を除去するので、層数を無駄に多くして処理負荷及び計算に要する時間を増大させることなく、十分な汎化能力を有する多層ニューラルネットワークを取得できる。
【0073】
また、本実施の形態のPDNN装置100によれば、PDNNの不要な上層を除去した後に再学習によってコストを低減するための学習を行うので、コストをより低減できる。さらに、再学習の後に再度上層の除去を試み、可能な場合に上層を除去し、さらに再学習を行い、これを上層の除去が有効である限り繰り返すので、さらにコストを低減して汎化能力の高いネットワークを構成できる。
【0074】
以下、上記の実施の形態に対する変形例を説明する。
【0075】
(変形例1)
上記の実施の形態では、層数調整部13は、学習部12にて学習の結果計算されたコストが最小になる層数を残して上層のユニットを除去した。しかしながら、再学習部14による再学習の結果、残った層のうちの最上層(
図5の第7層)よりも上層の層でコストが最小になる可能性がある。そこで、本変形例のPDNN学習装置では、層数調整部13は、最上層(出力層)のコストが最小でない場合に、学習部12にて学習の結果計算されたコストが最小となる層より上のすべての層を直ちに除去するのではなく、コストが最小であるPNを有する層よりも上層の少なくともの1つのPNを残して上層を除去する。具体的には、層数調整部13は、最上層のコストが最小でない場合に、最上層から1層ずつ除去していく。
【0076】
層数調整部13が最上層を1層除去すると、再学習部14は、最上層が除去されたネットワークについて再学習を行い、そのコストを計算する。その結果、最上層のコストが最小となっていない場合には、層数調整部13は、さらに最上層を1層除去し、再学習部14は、そのようなネットワークについて再学習を行う。このようにして、最上層のコストが最小となるまで、最上層の除去及び再学習が繰り返される。
【0077】
上記のように、本変形例では、層数調整部13は、学習及びコスト計算によって不要と判断された層を直ちにすべて除去するのではなく、最上層から1層ずつ除去し、層が1層除去されるごとに、再学習部14にて再学習を行う。
【0078】
図9は、変形例のPDNN学習装置におけるPDNN学習方法のフロー図である。まず、学習部12は、上記の実施の形態と同様に、初期ネットワークについてコスト計算による学習を行う(ステップS91)。次に、層数調整部13は、コスト計算の結果、最上層においてコストが最小となっているか否かを判断し(ステップS92)、最上層においてコストが最小となっていない場合には(ステップS92にてNO)、最上層を除去する(ステップS93)。最上層が除去されると、再学習部14は、そのようなネットワークについて再学習を行い、コストを計算する(ステップS94)。
【0079】
層数調整部13は、再学習部14で再学習が行われた結果について、再び、最上層においてコストが最小となっているか否かを判断し(ステップS92)、最上層においてコストが最小となるまでステップS92〜S94を繰り返す。ステップS92において、最上層においてコストが最小となった場合には(ステップS92にてYES)、そのネットワークを出力する(ステップS95)。
【0080】
即ち、層数調整部13は、最上層のPNのコスト(
図5の例の場合は第9層のコスト)が最小でない場合に、コストが最小であるPNを有する層(
図5の例の場合は第7層)よりも上層の少なくともの1つのPN(
図5の例の場合は第8層のPN)を残して上層(
図5の例の場合は、第8層のPN以外のユニット及び第9層)を除去する。このように、本変形例によれば、層を1層ずつ除去していくので、複数回の再学習によって、最適な層数を決定することができる。
【0081】
(変形例2)
次に、変形例2として、出力層に順伝搬しない部分が層構造を持つ場合を説明する。
図10は、本変形例のネットワーク構造を示す図である。
図10に示すように、各層のユニット数は3であるが、この3ユニットから直ちにPNを得るのではなく、PNを得る前に、さらに複数のニューロンを経て、それらのニューロンからPNを算出する。
【0082】
本変形例においても、上記の実施の形態と同様に、PNの識別性能によって層数を減らすことが可能である。また、PNに接続する部分が層構造をなすことで、PNの識別性能を高めることができると考えられる。さらに、本変形例では、各隠れ層の線形分離性能の最適化の制約がないので、出力層における識別性能の向上も期待できる。
【0083】
以下、本実施の形態及びその変形例のPDNN学習装置の応用例を説明する。
【0084】
(応用例1)
図11は、応用例1の多層ニューラルネットワーク学習装置の構成を示すブロック図である。多層ニューラルネットワーク学習装置200は、上記の実施の形態のPDNN学習装置100と、PNのない通常の多層ニューラルネットワークの学習部101を備えている。学習部101は、従来と同様の学習方法によって多層ニューラルネットワークの学習を行う。PDNN学習装置100は、この学習部101に対して、PDNNの学習の結果(除去の後に残った重みの値)を初期値として与える。
【0085】
PDNNは、各隠れ層の線形分離性能が最適化されているため、過度に非線形な内部表現を生成しない利点がある。一方、PNのないネットワークと比較して、PNのあるネットワークでは、各ユニットの役割が大きく異なる。即ち、PNのないネットワークにおいて、あるユニットは、出力層において最高の性能となるように信号を調整するのに対し、PNのあるネットワークにおいて、あるユニットは、それ以降すべての層において良い識別性能を与えるように調整される。この強い制約により、PDNNの出力層の識別性能は制限を蒙っている可能性がある。
【0086】
PDNN学習装置100は、上記の実施の形態のとおり、PDNNの学習、不要な層の除去、及び再学習を行い、不要な層が出現しなくなるまで上層の除去と再学習を繰り返す。この時の重みを保持したまま、出力ユニットへ順伝搬しないすべてのユニットと重み(
図1においてはPNと、PNに連結する重み)をネットワークから除去して、このネットワークを学習部101の初期ネットワークとして出力する。学習部101は、通常のニューラルネットワークの学習を行う。
【0087】
(応用例2)
本応用例では、上記の実施の形態又はその変形例によって学習されたPDNNを用いた識別器について説明する。適切に学習されたPDNNによって早期棄却を使った高速な識別が可能である。本応用例の識別器は、PDNNを利用して早期棄却を行う。本応用例では、早期棄却の考え方を画像による歩行者検知を例にとって説明する。
【0088】
図13は、車載カメラを使って歩行者を検知する例を示す図である。識別器は、
図13に示すように、画像に対し識別器のウィンドウをスキャンすることで領域を網羅的に識別する(ターゲットであるかないかを判定する)。
図13の例のように、ウィンドウによって囲まれる領域の大半が背景である場合、例えば空や路面といった明らかに歩行者ではない部分の識別が高速化されれば、画像全体の識別が非常に高速化されることになる。このようにターゲットではないエリアにおける判定を少ない演算量で棄却することを早期棄却という。また、ターゲットかそうでないかの判定が難しい領域は、より演算量を費やした方法により、より信頼性の高い識別を行う。このことにより、全体として高い識別性能を保持することが可能である。
【0089】
図14は、PNを利用した早期棄却の処理を説明する図である。適切に学習されたPDNNは、各PNが識別器の役割を持つため、早期棄却が可能である。最初のPNの値が計算された時点で、背景であるスコアが十分高ければ(PNの出力がある閾値以下又はある閾値以上であれば)、その時点で識別結果を「背景」とし、その層より上層の計算を棄却する。このルールを全ての隠れ層のPNに適用することで、段階的な棄却が可能となる。
【0090】
具体的には、識別器は、各隠れ層のPNを算出するたびに、それが閾値以下となっているか否かを判断し、閾値以下となっている場合は、直ちに歩行者なしと識別する。閾値以下となっていない場合には、次の層の計算を行う。ウィンドウの大半にターゲットが存在しない場合には、どれほど層の多いPDNNであっても、早期棄却が行われることにより、実際の計算時間はそれよりはるかに少ない層を持った多層ニューラルネットワーク相当となる。
【0091】
(応用例3)
応用例3は、応用例2の変形例である。本応用例では、出力層のユニット及び各層のPNに異なる種類のターゲット値を近似させることにより、早期棄却を行う。
図15は、本応用例の早期棄却の処理を示す図である。以下、例として、車載カメラ画像からの標識認識の問題に対し、
図15のPDNNの適用を考える。
【0092】
PNに対してはある画像パッチの中に標識があるか・ないかの二値分類を学習させることとする。標識はいかなる種類でもよいこととする。一方、出力層においては、止まれの標識があるか・ないかの二値分類を行うユニット、駐車禁止の標識があるか・ないかの二値分類を行うユニット、といった具合に、それぞれ固有の標識を認識できるように学習させたユニットを配置する。
【0093】
このネットワークを使えば、低層においては、標識のある・なしの二値分類のみを行うこととなり、全ての種類の標識の認識を網羅的に行うよりはるかに低い演算量で棄却が可能である。実際に画像パッチに標識がある場合においては、出力層において網羅的な識別を行うことができるため、種類の認識を的確に行うことができる。なお、各PNにおける早期棄却のための閾値は、画像全体の計算時間と識別性能のバランスを取りながらチューニングして決定する。
【0094】
なお、本応用例の識別器のためにPDNN学習装置100にて学習を行う場合には、各隠れ層は、とまれ、駐車禁止、徐行等の出力層のすべてに対応したPNを有することになる。これらのPNのすべてを識別器においても早期棄却のためのニューロンとして利用してよい。こうすることで、隠れ層の各層において、とまれ、駐車禁止、徐行、…等の標識の有無を判断して早期棄却を行うことができる。
【0095】
さらに、隠れ層の下層で早期棄却ができる可能性が低い場合には、隠れ層のうちの途中の層から早期棄却のためのニューロンを用意してもよい。これによって、早期棄却のための効率の低い演算に演算資源および時間を割くことを回避することができる。
【0096】
(応用例4)
本応用例では、PDNN学習装置100で学習されたPDNNを用いて手書き数字を識別する識別器を説明する。
図16は、手書き数字のデータセットを示す。各数字は、28×28画素のグレイスケールであり、正解は0〜9までの10種類ある。
図17は、PDNNのネットワーク構造を示す図であり、
図18は、PNなしの従来の学習によって得られた多層ニューラルネットワークの構造を示す図である。
【0097】
本応用例の識別器で用いるPDNNの各層のユニット数は100であり、出力層は上述のように10種類である。隠れ層には10個のPNが用意されており、各層において、早期棄却の判定が行われる。入力データとしては、28×28の画素の白黒に対応するバイナリコードが入力される。
【0098】
図19は、PNを用いて学習をしたネットワーク(「with probing neuron (no fine tuning)」)、PNを用いて学習をし、さらにファインチューニングを行ったネットワーク(「with probing neuron (fine tuning)」)、及び
図18に示すようにPNなしで学習を行ったネットワーク(「without probing neuron」)のそれぞれについて、
図16のデータセットを用いてテストをした結果を示すグラフである。
図19は、層数に対するコストを示している。ここで、コストとしては、クロスエントロピーを用いている。
図19に示すように、第3層以降は、PNなしの場合と比較して、PNありの学習のほうがコストが低く、ファインチューニングを行った場合にはさらにコストが低減されている。
【0099】
(応用例6)
本応用例では、上記の実施の形態のPDNN学習装置100を畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)の学習装置として応用する例を説明する。
【0100】
まず、CNNについて説明する。CNNについては、例えば、Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel, "Handwritten Digit Recognition with a Back-Paopagation Network", Advances in Neural Information Processing Systems (NIPS), pp. 396-404, 1990.(非特許文献2)にCNNを使った画像認識手法が記載されている。
【0101】
CNNの学習において使用するデータについて説明する。教師データとして、ネットワークの入力となる2次元配列の画像と、それに対応した、ネットワークの出力となるターゲット値(多次元ベクトルまたはスカラー)の組が多数与えられているものとする。入力となる2次元配列の画像は,グレイスケールであってもよいし、またRGBなどの要素を持つカラー画像であってもよい。カラー画像の場合であれば、入力は3つの2次元配列となる。上記の実施の形態と同様に、教師データは、ネットワークを学習するために使用される訓練データセットと、学習されたネットワークを評価するテストデータセットに分割しておくものとする。
【0102】
図20は、CNNの典型的なネットワーク構造を示す図である。まず、入力画像に対しフィルタによる畳み込み(convolution)と、画像の解像度を下げる操作であるプーリング(pooling)が施される。この畳み込みとプーリングを数回繰り返し、十分に解像度が小さくなった段階で、各ピクセルを入力ユニットとする順伝搬型の多層ニューラルネットワークに結合される。なお、
図20では隠れ層の図示を省略している。
【0103】
図20中の網掛けされた要素はフィルタであり、フィルタとはn(ピクセル)×n(ピクセル)の要素を持つ重みである。なお、このフィルタには、バイアスを加えてもよい。このCNNを誤差逆伝搬法により学習することで、局所的な歪みに頑健でありかつ識別に有効な特徴を抽出できるようになる。畳み込み演算された値は、シグモイド関数などの活性化関数(activation function)によって、非線形写像が行われる(図示は省略)。こうして得られた信号は、入力と同様に2次元配列で記述できる。
【0104】
次の演算は、プーリング(pooling)である。典型的なプーリングは、上述の二次元配列を2×2のグリッドに分割し、各グリッドの4つの信号の最大値を取る処理である。この処理により、上述の二次元配列はその4分の1のサイズに縮小される。プーリングにより画像の位置に関する特徴を失わずに情報を圧縮することが可能となる。プーリングの結果得られた2次元配列をマップ(map)と呼ぶ。マップの集まりが畳み込みニューラルネットワークにおいて1つの隠れ層を形成する。
【0105】
上記の例とは異なるプーリングも可能である。例えば、プーリングとして、2×2のグリッドから最大値を抽出する最大値プーリング(max pooling)、グリッドのある1つの要素(例えば(1,1)要素)だけを取り出すサブサンプリング(subsampling)等を採用してもよい。また、グリッドをオーバーラップするようにしてもよい。いずれにしても、畳み込みされた2次元配列を縮小させる点は同じである。
【0106】
なお、畳み込みとプーリング(convolution+pooling)は、通常複数回反復する。
図20の例では二重であるがそれ以上の繰り返し回数であってもよい。畳み込みとプーリングを反復させて情報を充分に圧縮した後、(畳み込みではない)通常のニューラルネットワークを適用する。
【0107】
図20の例では、畳み込みとプーリングを2度行った結果得られる2次元配列の各要素を1つのユニットとして、通常のニューラルネットワークが連結されている。この通常のニューラルネットワークは多層であってよい。
【0108】
以上のように、CNNは順伝搬型の多層ニューラルネットワークの一種である。即ち、ある層の信号は、その1つ前の層の信号と両者の間の重みの関数であり、また、この関数は微分が可能である。従って、CNNには誤差逆伝搬法が適用可能である。そこで、本応用例では、上記の実施の形態と同様にCNNにPNを導入する。以下、PNが導入されたCNNを、プローブド畳み込みニューラルネットワーク(PCNN:Probed Convolutional Neural Network)といい、その学習装置をPCNN学習装置という。PCNNは、ターゲット値に近づくように学習されたユニットを各隠れ層に持つCNNである。
【0109】
図21は、PCNNのネットワーク構造を示す図である。
図21に示すように、PCNNでは、マップに対してPNを連結する。マップから連結されるPNは、マップのすべての画素と連結していてもよいし、縦横1画素おきの結合を有していてもよい。
【0110】
PCNN学習装置は、上記の実施の形態のPDNN学習装置100と同様に、教師データ記憶部11、学習部12、層数調整部13、及び再学習部14を備え、拡張された誤差逆伝搬法により学習を行う。さらに、PCNN学習装置の層数調整部13は、PDNN学習装置100と同様に、全結合された層のうち、不要な上層を特定してネットワークから除去する。PCNN学習装置は、複数の畳み込み(+プーリング)層において、第n層のPNの識別性能が第n−1層のPNの識別性能を上回らなかった場合は、第n層の畳み込み(+プーリング)層を除去したネットワークを生成し、第n層以降の重みを乱数によって初期化してPCNNの学習を繰り返してもよい。
【0111】
また、PCNN学習装置の再学習部14は、PDNN学習装置100と同様に、除去されたネットワークを再学習する。これによってコストをさらに低減させることができる。また、PNを持たないCNNの良い初期値を与える方法として、PCNN学習装置で学習されたPCNNを利用することも可能である。さらに、PCNNも上記の応用例と同様に、識別器において早期棄却による高速な検出が可能である。