特許第6192010号(P6192010)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人 東京大学の特許一覧

<>
  • 特許6192010-重み設定装置および方法 図000012
  • 特許6192010-重み設定装置および方法 図000013
  • 特許6192010-重み設定装置および方法 図000014
  • 特許6192010-重み設定装置および方法 図000015
  • 特許6192010-重み設定装置および方法 図000016
  • 特許6192010-重み設定装置および方法 図000017
  • 特許6192010-重み設定装置および方法 図000018
  • 特許6192010-重み設定装置および方法 図000019
  • 特許6192010-重み設定装置および方法 図000020
  • 特許6192010-重み設定装置および方法 図000021
  • 特許6192010-重み設定装置および方法 図000022
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6192010
(24)【登録日】2017年8月18日
(45)【発行日】2017年9月6日
(54)【発明の名称】重み設定装置および方法
(51)【国際特許分類】
   G06N 3/08 20060101AFI20170828BHJP
【FI】
   G06N3/08
【請求項の数】10
【全頁数】18
(21)【出願番号】特願2013-184075(P2013-184075)
(22)【出願日】2013年9月5日
(65)【公開番号】特開2015-52832(P2015-52832A)
(43)【公開日】2015年3月19日
【審査請求日】2016年8月25日
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】110000017
【氏名又は名称】特許業務法人アイテック国際特許事務所
(72)【発明者】
【氏名】中山 英樹
【審査官】 石川 亮
(56)【参考文献】
【文献】 中山 英樹,階層フィッシャー重みマップを用いた識別的初期化による深層畳み込みニューラルネットワーク構築法,SSII2014 第20回画像センシングシンポジウム 講演論文集 [CD−ROM],日本,2014年 6月,p.IS1-04-1〜IS1-04-8
【文献】 麻生 英樹,多層ニューラルネットワークによる深層表現の学習,人工知能学会誌,日本,(一社)人工知能学会,2013年 7月 1日,第28巻, 第4号,p.649-659
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
畳み込みニューラルネットワークを構成する共に、少なくとも1つの第k層の特徴マップと複数の重みマップとを畳み込むことにより前記重みマップと同数の第k+1層の特徴マップを生成する畳み込み層における前記複数の重みマップを設定する重み設定装置であって、
複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルの分散に基づく指標がそれぞれ最大になるように前記複数の重みマップを設定することを特徴とする重み設定装置。
【請求項2】
請求項1に記載の重み設定装置において、
第k+1層の各特徴マップの全要素を列挙したベクトルの共分散行列についての固有値問題を解くことにより固有値ごとに得られる固有ベクトルを該固有値の大きい順に前記複数の重みマップとして設定することを特徴とする重み設定装置。
【請求項3】
請求項1または2に記載の重み設定装置において、
複数のクラスに分けられた複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルのクラス内共分散行列とクラス間共分散行列とに基づくフィッシャー判別基準が所定の拘束条件の下でそれぞれ最大になるように前記複数の重みマップを設定することを特徴とする重み設定装置。
【請求項4】
請求項3に記載の重み設定装置において、
j番目(ただし、1≦j≦Cであり、“C”は、サンプルデータのクラスの総数である。)のクラスに含まれるi番目(ただし、1≦i≦Njであり、“Nj”は、j番目のクラスに含まれるサンプルデータの総数である。)のサンプルデータの第k層における特徴マップから抽出される特徴ベクトルを列挙して連結行列X(j)iを設定する連結行列設定手段と、
全サンプルデータの第k層の連結行列X(1)1〜X(C)Njの平均行列X-と、j番目のクラスに含まれるサンプルデータの第k層の連結行列X(j)1〜X(j)Njの平均行列X-(j)とを設定する平均行列設定手段と、
次式(1)に示す固有値問題を次式(2)に示す拘束条件のもとで解くことにより固有値ごとに得られる固有ベクトルを前記複数の重みマップとして設定する重みマップ設定手段とを備えることを特徴とする重み設定装置。ただし、式(1)における“ΛF”は、固有値を対角要素とすると共に値0を非対角要素とする対角行列であり、式(1)および(2)における“W”は、前記複数の重みマップを列挙した行列であり、式(2)における“I”は単位行列であり、“ΣW”は、次式(3)に示すとおりであり、“ΣB”は、次式(4)に示すとおりであり、“N”は、サンプルデータの総数である。
【数1】
【請求項5】
請求項1または2に記載の重み設定装置において、
複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルの分散が所定の拘束条件の下でそれぞれ最大になるように前記複数の重みマップを設定することを特徴とする重み設定装置。
【請求項6】
請求項4に記載の重み設定装置において、
h番目(ただし、1≦h≦Nであり、“N”は、サンプルデータの総数である。)のサンプルデータの第k層における特徴マップから抽出される特徴ベクトルを列挙して連結行列Xhを設定する連結行列設定手段と、
全サンプルデータの第k層の連結行列X1〜XNの平均行列X-を設定する平均行列設定手段と、
次式(5)に示す固有値問題を次式(6)に示す拘束条件のもとで解くことにより固有値ごとに得られる固有ベクトルを前記複数の重みマップとして設定する重みマップ設定手段とを備えることを特徴とする重み設定装置。ただし、式(5)における“ΛE”は、固有値を対角要素とすると共に値0を非対角要素とする対角行列であり、式(5)および(6)における“W”は、前記複数の重みマップを列挙した行列であり、式(6)における“I”は単位行列であり、“ΣX”は、次式(7)に示す共分散行列であり、“N”は、サンプルデータの総数である。
【数2】
【請求項7】
畳み込みニューラルネットワークを構成する共に、少なくとも1つの第k層の特徴マップと複数の重みマップとを畳み込むことにより前記重みマップと同数の第k+1層の特徴マップを生成する畳み込み層における前記複数の重みマップを設定する重み設定方法であって、
複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルの分散に基づく指標がそれぞれ最大になるように前記複数の重みマップを設定することを特徴とする重み設定方法。
【請求項8】
請求項7に記載の重み設定方法において、
第k+1層の各特徴マップの全要素を列挙したベクトルの共分散行列についての固有値問題を解くことにより固有値ごとに得られる固有ベクトルを該固有値の大きい順に前記複数の重みマップとして設定することを特徴とする重み設定方法。
【請求項9】
請求項7または8に記載の重み設定方法において、
複数のクラスに分けられた複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルのクラス内共分散行列とクラス間共分散行列とに基づくフィッシャー判別基準が所定の拘束条件の下でそれぞれ最大になるように前記複数の重みマップを設定することを特徴とする重み設定方法。
【請求項10】
請求項7または8に記載の重み設定方法において、
複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルの分散が所定の拘束条件の下でそれぞれ最大になるように前記複数の重みマップを設定することを特徴とする重み設定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、畳み込みニューラルネットワークを構成する畳み込み層における複数の重みを設定する重み設定装置および方法に関する。
【背景技術】
【0002】
近年、画像認識や音声認識、形状認識といった分野において、畳み込みニューラルネットワーク(Convolutional Neural Networks)が注目されている(例えば、非特許文献1〜4参照)。この種の畳み込みニューラルネットワークは、複数の畳み込み層や、当該畳み込み層と交互に並ぶプーリング層(部分サンプリング層)を有し、画像データや音声データ等の局所特徴を階層的に畳み込むことにより、画像や音声データを精度よくクラス分け(識別)可能とするものである。そして、このような畳み込みニューラルネットワークを構成する畳み込み層は、第k層の特徴マップ(特徴量の配列)と複数の重みマップ(重みの配列)との畳み込み、すなわち、第k層の特徴マップから抽出した複数の特徴ベクトルに対する複数の重みマップを用いた重み付けを行い、それにより当該重みマップと同数の第k+1層の特徴マップを生成する。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Y. LeCun, L. Bottou, Y. Bengio, and P. Haner. Gradient-based learning applied to document recognition. Proc. of the IEEE, 1998.
【非特許文献2】G. E. Hinton and R. Salakhutdinov. Reducing the dimensionality of data with neural networks. Science, 313:504.507, 2006.
【非特許文献3】R. Gens and P. Domingos. Discriminative learning of sum-product networks. In Proc. NIPS, 2012.
【非特許文献4】A. Krizhevsky, I. Sutskever, and G. E. Hinton. ImageNet classification with deep convolutional neural networks. In Proc. NIPS, 2012.
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述のような畳み込みニューラルネットワークを用いて高精度な画像認識等を可能とするためには、各畳み込み層における重みマップ(多数の重み)を適正に設定しておく必要がある。しかしながら、多数の重みを適正に設定するためには、大量(例えば100万個以上)の学習サンプルを用いて誤差逆伝播法による学習等を繰り返し行わなければならない。従って、重みマップの設定における計算コストは非常に高くなり、GPUやスーパーコンピュータ等を用いなければ適正な重みマップが得られないことが多い。また、多数のパラメータを用いた重みのチューニング(学習)に際しては、ノウハウも要求され、従来の一般的な重みマップの設定手法によって適正な重みマップを容易に得ることは困難である。そして、従来の重みマップの設定手法には、学習サンプル数が少ない場合、学習を繰り返し行っても適正な重みマップを得ることができない、という問題が存在している。
【0005】
そこで、本発明は、計算コストを削減しつつ、畳み込みニューラルネットワークを構成する畳み込み層における複数の重みを容易かつ適正に設定することを主目的とする。
【課題を解決するための手段】
【0006】
本発明による重み設定装置は、
畳み込みニューラルネットワークを構成する共に、少なくとも1つの第k層の特徴マップと複数の重みマップとを畳み込むことにより前記重みマップと同数の第k+1層の特徴マップを生成する畳み込み層における前記複数の重みマップを設定する重み設定装置であって、
複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルの分散に基づく指標がそれぞれ最大になるように前記複数の重みマップを設定することを特徴とする。
【0007】
畳み込みニューラルネットワークの畳み込み層による第k層の特徴マップ(特徴量の配列)と複数の重みマップ(重みの配列すなわち重みベクトル)との畳み込みは、第k層の特徴マップから抽出される特徴ベクトルを順番に並べた結合ベクトルを並列に列挙した連結行列を“X”とし、第k層と第k+1層との間の畳み込み層における複数の重みマップ(重みベクトル)w1,w2,…を並列に列挙した行列(重み行列)を“W”とし、第k+1層の各特徴マップの全要素(ニューロン)を列挙したベクトルz1,z2,…を並列に列挙した行列(特徴行列)を“Z”としたときに、
Z=(z1,z2,…)=(X−X-T(w1,w2,…)=(X−X-TW…(0)
という関係式により表される。ただし、第k層は、畳み込み層の前段の層であり、第k+1層は、畳み込み層の後段の層であり、“X-”は、全サンプルデータの第k層の連結行列Xの平均行列である。従来の重み設定手法は、基本的に、複数のクラスに分けられた複数のサンプルデータを用いた誤差逆伝播学習等を繰り返し行って複数の重みマップの要素を定めていくものであるが、本発明による重み設定装置は、従来とは全く異なるアプローチにより複数の重みマップを設定する。すなわち、本発明では、第k層における局所特徴を第k+1層の受容野に重み付けしながら射影するための上記関係式(0)における行列Wを誤差逆伝播学習のような重みの修正(調整)を行うことなく解析的に導出することにより複数の重みマップが設定される。
【0008】
ここで、上述のような畳み込みにより得られる第k+1層の各特徴マップ内(ベクトル空間)において、同じクラスに属する特徴ベクトル同士の距離(ユークリッド距離)が短くなり、かつ異なるクラスに属する特徴ベクトル同士の距離(ユークリッド距離)が長くなるほど、当該特徴マップの全要素を列挙したベクトルの分散に基づく指標がより大きくなる。これを踏まえて、本発明による重み設定装置は、複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルz(ただし、“z”は、ベクトルz1,z2…の何れかを示す。)の分散に基づく指標がそれぞれ最大になるように複数の重みマップを設定する。
【0009】
このように設定される複数の重みマップを有する畳み込み層によれば、当該複数の重みマップと第k層の特徴マップとを畳み込むことにより、各特徴マップにおいて同じクラスに属する特徴ベクトル同士の距離が短くなり、かつ異なるクラスに属する特徴ベクトル同士の距離が長くなるように第k+1層の複数の特徴マップを生成することができる。また、各ベクトルzの分散に基づく指標をそれぞれ最大にする複数の重みマップは、当該ベクトルzの分散(共分散行列)についての固有値問題を解くことにより固有値ごとの固有ベクトルとして容易に得ることが可能である。更に、上記固有値問題は、サンプルデータの数に依存するものではないことから、本発明による重み設定装置によれば、サンプルデータの数が少ない場合であっても、適正な複数の重みマップを得ることができる。従って、本発明による重み設定装置によれば、計算コストを削減しつつ、畳み込みニューラルネットワークを構成する畳み込み層における複数の重みを容易かつ適正に設定することが可能となる。
【0010】
そして、本発明による重み設定装置により設定された複数の重みマップは、更に誤差逆伝播法による学習等を行ってチューニングされてもよいことはいうまでもない。また、構築されるべき畳み込みニューラルネットワークが複数の畳み込み層を含むものである場合には、複数の畳み込み層ごとに各ベクトルzの分散に基づく指標がそれぞれ最大になるように複数の重みマップを設定すればよい。この結果、本発明による重み設定装置によれば、画像認識や音声認識、形状認識等に極めて有用な畳み込みニューラルネットワークを構築することが可能となる。なお、「分散に基づく指標」は、共分散行列等に基づいて導出される判別基準であってもよく、分散自体であってもよい。
【0011】
また、前記重み設定装置は、第k+1層の各特徴マップの全要素を列挙したベクトルの共分散行列についての固有値問題を解くことにより固有値ごとに得られる固有ベクトルを該固有値の大きい順に前記複数の重みマップとして設定するものであってもよい。これにより、第k+1層の特徴マップを生成する畳み込み層における複数の重みマップをより適正に設定することが可能となる。
【0012】
更に、前記重み設定装置は、複数のクラスに分けられた複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルのクラス内共分散行列とクラス間共分散行列とに基づくフィッシャー判別基準が所定の拘束条件の下でそれぞれ最大になるように前記複数の重みマップを設定するものであってもよい。このように、フィッシャー判別基準を利用することにより、第k+1層の各特徴マップにおける分離精度をより向上させることが可能となる。
【0013】
また、前記重み設定装置は、j番目(ただし、1≦j≦Cであり、“C”は、サンプルデータのクラスの総数である。)のクラスに含まれるi番目(ただし、1≦i≦Njであり、“Nj”は、j番目のクラスに含まれるサンプルデータの総数である。)のサンプルデータの第k層における特徴マップから抽出される特徴ベクトルを列挙して連結行列X(j)iを設定する連結行列設定手段と、全サンプルデータの第k層の連結行列X(1)1〜X(C)Njの平均行列X-と、j番目のクラスに含まれるサンプルデータの第k層の連結行列X(j)1〜X(j)Njの平均行列X-(j)とを設定する平均行列設定手段と、次式(1)に示す固有値問題を次式(2)に示す拘束条件のもとで解くことにより固有値ごとに得られる固有ベクトルを前記複数の重みマップとして設定する重みマップ設定手段とを備えてもよい。ただし、式(1)における“ΛF”は、固有値を対角要素とすると共に値0を非対角要素とする対角行列であり、式(1)および(2)における“W”は、前記複数の重みマップを列挙した行列であり、式(2)における“I”は単位行列であり、“ΣW”は、次式(3)に示すとおりであり、“ΣB”は、次式(4)に示すとおりであり、“N”は、サンプルデータの総数である。
【0014】
【数1】
【0015】
すなわち、上記ベクトルzのクラス内共分散行列“Σ〜W”とし、クラス間共分散行列を“Σ〜B”とし、トレースを“tr”とし、フィッシャー判別基準を“JF(w)”とすれば(ただし、“w”は、複数の重みマップw1,w2…の何れかを示す。)、
F(w)=trΣ〜B/trΣ〜W=wTΣBw/wTΣW
としてフィッシャー判別基準JF(w)を得ることができる。従って、連結行列X(j)iを設定する連結行列設定手段と、平均行列X-および平均行列X-(j)を設定する平均行列設定手段と、式(1)に示す固有値問題を式(2)の拘束条件のもとで解く重みマップ設定手段とを備えた重み設定装置によれば、各ベクトルzのクラス内共分散行列Σ〜Wとクラス間共分散行列Σ〜Bとに基づくフィッシャー判別基準JF(w)が式(2)の拘束条件の下でそれぞれ最大になるように複数の重みマップを設定することが可能となる。
【0016】
また、前記重み設定装置は、複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルの分散が所定の拘束条件の下でそれぞれ最大になるように前記複数の重みマップを設定するものであってもよい。これにより、クラス分けされていない複数のサンプルデータを用いて、第k+1層の特徴マップを生成する畳み込み層における複数の重みマップを容易かつ適正に設定することが可能となる。更に、第k層の特徴マップから第k+1層の特徴マップへの次元圧縮をより適正に実行することができる。
【0017】
この場合、前記重み設定装置は、h番目(ただし、1≦h≦Nであり、“N”は、サンプルデータの総数である。)のサンプルデータの第k層における特徴マップから抽出される特徴ベクトルを列挙して連結行列Xhを設定する連結行列設定手段と、全サンプルデータの第k層の連結行列X1〜XNの平均行列X-を設定する平均行列設定手段と、次式(5)に示す固有値問題を次式(6)に示す拘束条件のもとで解くことにより固有値ごとに得られる固有ベクトルを前記複数の重みマップとして設定する重みマップ設定手段とを備えてもよい。ただし、式(5)における“ΛE”は、固有値を対角要素とすると共に値0を非対角要素とする対角行列であり、式(5)および(6)における“W”は、前記複数の重みマップを列挙した行列であり、式(6)における“I”は単位行列であり、“ΣX”は、次式(7)に示す共分散行列であり、“N”は、サンプルデータの総数である。
【0018】
【数2】
【0019】
すなわち、各ベクトルzの分散を“JE(w)”とすれば、JE(w)=wTΣXwとして各ベクトルzの分散JE(w)を得ることができる。従って、連結行列Xhを設定する連結行列設定手段と、平均行列X-を設定する平均行列設定手段と、式(5)に示す固有値問題を式(6)の拘束条件のもとで解く重みマップ設定手段とを備えた重み設定装置によれば、各ベクトルzの分散JE(w)が式(6)の拘束条件の下でそれぞれ最大になるように複数の重みマップを設定することが可能となる。
【0020】
本発明による重み設定方法は、
畳み込みニューラルネットワークを構成する共に、少なくとも1つの第k層の特徴マップと複数の重みマップとを畳み込むことにより前記重みマップと同数の第k+1層の特徴マップを生成する畳み込み層における前記複数の重みマップを設定する重み設定方法であって、
複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルの分散に基づく指標がそれぞれ最大になるように前記複数の重みマップを設定することを特徴とする。
【0021】
この方法によれば、計算コストを削減しつつ、畳み込みニューラルネットワークを構成する畳み込み層における複数の重みを容易かつ適正に設定することが可能となる。
【0022】
また、前記方法は、第k+1層の各特徴マップの全要素を列挙したベクトルの共分散行列についての固有値問題を解くことにより固有値ごとに得られる固有ベクトルを該固有値の大きい順に前記複数の重みマップとして設定するものであってもよい。
【0023】
更に、前記方法は、複数のクラスに分けられた複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルのクラス内共分散行列とクラス間共分散行列とに基づくフィッシャー判別基準が所定の拘束条件の下でそれぞれ最大になるように前記複数の重みマップを設定するものであってもよく、複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルの分散が所定の拘束条件の下でそれぞれ最大になるように前記複数の重みマップを設定するものであってもよい。
【図面の簡単な説明】
【0024】
図1】本発明による重み設定装置が適用される畳み込みニューラルネットワークを示す模式図である。
図2図1のニューラルネットワークを構成する畳み込み層における畳み込み処理を説明するための模式図である。
図3】本発明による重み設定装置のブロック構成図である。
図4】本発明による重み設定装置により実行される重み設定ルーチンを例示するフローチャートである。
図5】本発明による重み設定方法の有用性を評価するための実験の結果を示す図表である。
図6】本発明による重み設定方法の有用性を評価するための実験の結果を示す図表である。
図7】本発明による重み設定方法の有用性を評価するための実験の結果を示す図表である。
図8】本発明による重み設定方法の有用性を評価するための実験の結果を示す図表である。
図9】本発明による重み設定方法の有用性を評価するための実験の結果を示す図表である。
図10】本発明による重み設定方法の有用性を評価するための実験の結果を示す図表である。
図11】本発明による重み設定方法の有用性を評価するための実験の結果を示す図表である。
【発明を実施するための形態】
【0025】
次に、図面を参照しながら本発明を実施するための形態について説明する。
【0026】
図1は、本発明による重み設定装置が適用される畳み込みニューラルネットワークを示す模式図である。同図に示す畳み込みニューラルネットワーク1は、図示しないCPU,ROM,RAM、システムバス、各種インターフェース、記憶装置等を含むコンピュータに実装されて、例えば画像データをクラス分け(分類)するのに用いられるものである。図示するように、畳み込みニューラルネットワーク1は、入力層2と、交互に並ぶ複数の畳み込み層3a,3bおよび複数のプーリング層(部分サンプリング層)4a,4bと、出力層5とを有する。
【0027】
畳み込み層3a,3bは、それぞれの前段の第k層の特徴マップ(特徴量の配列)から抽出した複数の特徴ベクトルに対する複数の重みマップ(重みの配列)を用いた重み付けを行い、当該重みマップと同数の第k+1層の特徴マップを生成する。また、プーリング層4a,4bは、それぞれの前段の層の特徴マップを部分的にサンプリング(プーリング)するものである。プーリングの手法としては、sピクセルだけ離間したn×n個の近隣画素値の平均をとる平均プーリング(以下、「AP(n,s)」)という。)や、sピクセルだけ離間したn×n個の近隣画素値の最大値をとる最大値プーリング(以下、「MP(n,s)」という。)、元画像の2×2の空間領域をプーリング領域とする平均プーリング(以下、「APq(n,s)」という。)、元画像の2×2の空間領域に対応をプーリング領域とする最大値プーリング(以下、「MPq(n,s)」という。)。そして、図1の例では、出力層5のノードが前段の層の特徴マップと全結合される。
【0028】
次に、図2を参照しながら、畳み込み層3a,3bによる畳み込み処理を説明する。ここでは、第k層における特徴マップmap1,map2…がカラー画像から生成されたそれぞれR値、G値またはB値を示す3つの特徴マップであり(ただし、第k層における特徴マップの座標系を“(x、y)”とする。)、これらの特徴マップmap1,map2…に対して畳み込み層3aにより畳み込み処理が施される場合を例にとって当該畳み込み処理について説明する。
【0029】
この場合、畳み込み層3aは、第k層の特徴マップmap1,map2…から、x方向に1画素ずつずらしながらn×n個(図2の例では、3×3個)ずつ画素値(特徴量)を抽出すると共に、更にy方向に1画素ずつずらしながらn×n個ずつ画素値を抽出する。次いで、畳み込み層3aは、各map1,map2…の同一座標(x,y)から抽出した画素値を順番に並べて特徴ベクトルf(k)(x,y)を設定し、これらの特徴ベクトルf(k)(x,y)を順番に並べて次式(8)に示す結合ベクトルx(k)(x,y)を(Pk−n+1)×(Pk−n+1)個だけ取得(抽出)する。ただし、式(8)において、(x′,y′)は、第k+1層の特徴マップにおける座標系を示し、“δ”は、“n/2”の整商である。また、“Pk”は、第k層の各特徴マップにおける画素数(特徴量の数)の平方個である。
【0030】
【数3】
【0031】
そして、畳み込み層3aは、結合ベクトルx(k)(x,y)と、予め設定されている複数の重みマップ(重みベクトル)w1,w2,…,wu,…,wmk+1(以下、何れかの重みマップを適宜“w”として表す。)とを用いて第k+1層における特徴マップmap1,map2…を生成する。すなわち、畳み込み層3aは、第k+1層における特徴マップmap1,map2…の(x′,y′)座標における要素(ニューロンすなわち特徴量)f(k+1)(x,y)を、f(k+1)(x,y)=wuT(k)(x,y)として算出する。ただし、“u”は、重みマップのインデックスであり、“mk+1”は、第k層と第k+1層との間の畳み込み層における重みマップの数=第k+1層の特徴マップの数である。これにより、第k層の特徴マップにおける局所特徴を受容野に重み付けしながら射影することで第k+1層の特徴マップが生成されることになる。
【0032】
図3は、上述の畳み込みニューラルネットワーク1の各畳み込み層3a,3bにおける複数の重みマップを設定するのに用いられる本発明の一実施形態に係る重み設定装置20のブロック構成図である。
【0033】
重み設定装置20は、パーソナルコンピュータ等に重み設定プログラム(ソフトウェア)をインストールすることにより構成され、複数のクラスに分けられた複数のサンプルデータに基づいて畳み込み層3a,3bにおける複数の重みマップw1,w2,…,wu,…,wmk+1を設定するものである。図3に示すように、重み設定装置20は、重み設定プログラム(ソフトウェア)とコンピュータのCPUやROM,RAM、各種インターフェース、記憶装置といったハードウェアとの一方または双方の協働により構築されるデータ入力処理部21や、ベクトル抽出部22、連結行列設定部23、平均行列設定部24、マップ設定部25、記憶装置27等を有する。
【0034】
データ入力処理部21は、それぞれクラスラベルが付された(クラス分けされた)複数のサンプルデータの入力を受け付け、必要に応じて、入力データを上述の特徴マップ(例えば、カラー画像に基づくR値、G値、B値を示す3つの特徴マップ)の形式に変換し、当該データ、すなわち第1層の特徴マップを記憶装置27に記憶させる。ベクトル抽出部22は、サンプルデータに基づく特徴マップから上述の(Pk−n+1)×(Pk−n+1)個の結合ベクトルx(k)(x,y)を抽出(設定)する。また、連結行列設定部23は、ベクトル抽出部22により抽出された(Pk−n+1)×(Pk−n+1)個の結合ベクトルx(k)(x,y)を並列に列挙することにより次式(9)に示す連結行列X(k)を設定する。
【0035】
【数4】
【0036】
更に、平均行列設定部24は、全サンプルデータの第k層の連結行列X(1)1〜X(C)Njの平均行列X-と、j番目のクラスに含まれるサンプルデータの第k層の連結行列X(j)1〜X(j)Njの平均行列X-(j)とを設定する。ただし、“j”は、サンプルデータのクラスのインデックス(1≦j≦C)であり、“Nj”は、j番目のクラスに含まれるサンプルデータの総数であり、“C”は、サンプルデータのクラスの総数である。そして、マップ設定部25は、連結行列設定部23や平均行列設定部24により設定されたパラメータを用いて畳み込み層3a,3bにおける複数の重みマップw1,w2,…,wu,…,wmk+1を設定すると共に、第k+1層の特徴マップに相当する仮の特徴マップを設定し、設定したデータを記憶装置27に記憶させる。
【0037】
続いて、図4を参照しながら、上述の重み設定装置20による複数の重みマップの設定手順について説明する。図4は、重み設定装置20により実行される重み設定ルーチンを例示するフローチャートである。
【0038】
重み設定ルーチンの開始に際して、重み設定装置20のデータ入力処理部21は、記憶装置27(あるいは外部装置)から全サンプルデータの第1層の特徴マップを入力し、RAMに展開する(ステップS100)。次いで、ベクトル抽出部22は、まず、第1層の特徴マップから上述の(P1−n+1)×(P1−n+1)個の結合ベクトルx(1)(x,y)をサンプルデータごとに抽出(設定)する(ステップS110)。更に、連結行列設定部23は、ベクトル抽出部22により抽出された(P1−n+1)×(P1−n+1)個の結合ベクトルx(1)(x,y)を並列に列挙することにより式(9)に示す連結行列X(1)をサンプルデータごとに設定する(ステップS120)。また、平均行列設定部24は、全サンプルデータの第k層の連結行列X(1)1〜X(C)Njの平均行列X-と、j番目のクラスに含まれるサンプルデータの第k層の連結行列X(j)1〜X(j)Njの平均行列X-(j)とを設定する(ステップS130)。
【0039】
ここで、畳み込み層による第k層の特徴マップと複数の重みマップw1,w2,…,wu,…,wmk+1との畳み込みは、第k+1層の各特徴マップの全要素を列挙したベクトルz1,z2,…,zmk+1(以下、当該ベクトルの何れかを適宜“z”として表す。)を並列に列挙した行列(特徴行列)を“Z”とすれば、第k層の特徴マップから抽出される結合ベクトルx(1)(x,y)を並列に列挙した連結行列X(k)と、全サンプルデータの第k層の連結行列X(1)1〜X(C)Njの平均行列X-と、畳み込み層における複数の重みマップ(重みベクトル)w1,w2,…,wu,…,wmk+1を並列に列挙した行列(重み行列)Wとから次式(10)のように表される。そして、上述のような畳み込みにより得られる第k+1層の各特徴マップ内において、同じクラスに属する特徴ベクトル同士の距離(ユークリッド距離)が短くなり、かつ異なるクラスに属する特徴ベクトル同士の距離(ユークリッド距離)が長くなるほど、上記ベクトルzの分散に基づく指標がより大きくなる。
【0040】
【数5】
【0041】
これを踏まえて、重み設定装置20のマップ設定部25は、複数のクラスに分けられた複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルzの分散に基づく指標がそれぞれ最大になるように複数の重みマップw1,w2,…,wu,…,wmk+1を設定するものとして構築される。本実施形態において、マップ設定部25は、各ベクトルzの次式(11)に示すクラス内共分散行列Σ〜Wと、次式(12)に示すクラス間共分散行列Σ〜Bとに基づくフィッシャー判別基準JF(w)が所定の拘束条件の下でそれぞれ最大になるように複数の重みマップw1,w2,…,wu,…,wmk+1を設定する。フィッシャー判別基準JF(w)は、トレースを“tr”とすれば、次式(13)および(14)が成立することから、次式(15)のように表される。
【0042】
【数6】
【0043】
各ベクトルzのフィッシャー判別基準JF(w)をそれぞれ最大にする複数の重みマップw1,w2,…,wu,…,wmk+1は、次式(16)に示す固有値問題を次式(17)に示す拘束条件のもとで解くことにより、固有値λ1,λ2,…,λu,…,λmk+1ごとの固有ベクトルとして容易に得ることができる。ただし、式(16)における“ΛF”は、固有値λ1,λ2,…,λu,…,λmk+1を対角要素とすると共に値0を非対角要素とする対角行列であり、式(16)および(17)における“W”は、上述の複数の重みマップw1,w2,…,wu,…,wmk+1を並列に列挙した行列であり、式(17)における“I”は単位行列であり、“ΣW”は、次式(18)に示すとおりであり、“ΣB”は、次式(19)に示すとおりであり、“N”は、サンプルデータの総数である。また、連結行列Xhや平均行列X-,X-(j)に基づいて式(16)の固有値問題を解くマップ設定部25は、周知のソフトウェアを用いて容易に構築することができる。
【0044】
【数7】
【0045】
マップ設定部25は、ステップS120にて第1層の特徴マップからサンプルデータごとに設定された連結行列X(1)や、ステップS130にて設定された平均行列X-、平均行列X-(j)を用いて上記式(16)の固有値問題を解き、固有値λ1,λ2,…,λu,…,λmk+1ごとに固有ベクトルを算出する(ステップS140)。そして、マップ設定部25は、ステップS140にて固有値λ1,λ2,…,λu,…,λmk+1ごとに算出した所定数の固有ベクトルを当該固有値の大きい順に第2層(第k+1層)の特徴マップを生成するための重みマップw1,w2,…,wu,…,wm2として設定し、設定した重みマップw1,w2,…,wu,…,wm2を記憶装置27に記憶させる(ステップS150)。
【0046】
具体的には、例えば固有値を値が大きい順にλ1,λ2,λ3,…としたときに、マップ設定部25は、固有値λ1に対応した固有ベクトルを重みマップw1として、固有値λ2に対応した固有ベクトルを重みマップw2として、…固有値λm2に対応した固有ベクトルを重みマップwm2として設定する。なお、第2層(第k+1層)の特徴マップの数m2(mk+1)は、固有値λ1,λ2,…,λu,…,λmk+1の大きさを考慮しながら任意に定めることができる。更に、ステップS150において、マップ設定部25は、全サンプルデータについての第1層の特徴マップと、設定した重みマップw1,w2,…,wu,…,wm2とを畳み込むと共に、対応するプーリング層と同様のプーリング処理を行うことにより、第3層(第k+2層)の仮の特徴マップをm2個だけ生成し、生成した第3層の仮の特徴マップを記憶装置27に記憶させる。
【0047】
上述のようにしてステップS100からS150の処理が実行されると、重みマップを設定すべき畳み込み層の有無が判定され(ステップS160)、ステップS160にて重みマップを設定すべき畳み込み層が存在しない(畳み込み層が1個である)と判定された場合、その段階で本ルーチンが終了する。これに対して、ステップS160にて重みマップを設定すべき畳み込み層が存在していると判定された場合には、上述のステップS100からS150の処理が繰り返し実行される。
【0048】
この場合、ステップS100ではデータ入力処理部21により記憶装置27からの第3層(第k層)の仮の特徴マップがRAMに展開され、当該第3層(第k層)の仮の特徴マップに基づいて重みマップw1,w2,…,wu,…,wm3(wmk+1)が設定されることになる(ステップS110〜S150)。また、この場合、ステップS150では、必要に応じて、全サンプルデータについての第3層(第k層)の仮の特徴マップと、設定された重みマップw1,w2,…,wu,…,wm4(wmk+1)との畳み込みと、対応するプーリング層と同様のプーリング処理とが行なわれ、第4層(第k+1層)の仮の特徴マップがm4個だけ生成されて記憶装置27に格納されることになる。そして、ステップS100〜S150の処理が繰り返し実行されて、ステップS160にて重みマップを設定すべき畳み込み層が存在しないと判定されると、その段階で本ルーチンが終了する。
【0049】
なお、重み設定装置20のマップ設定部25は、上述のように、各ベクトルzのフィッシャー判別基準JF(w)が所定の拘束条件の下でそれぞれ最大になるように複数の重みマップw1,w2,…,wu,…,wmk+1を設定するものには限られない。すなわち、マップ設定部25は、各ベクトルzの分散JE(w)自体が所定の拘束条件の下で最大になるようにw1,w2,…,wu,…,wmk+1を設定するものとして構成されてもよい。
【0050】
ベクトルzの分散JE(w)は、次式(20)に示すように表され、各ベクトルzのJE(w)をそれぞれ最大にする複数の重みマップw1,w2,…,wu,…,wmk+1は、次式(21)に示す固有値問題を次式(22)に示す拘束条件のもとで解くことにより、固有値λ1,λ2,…,λu,…,λmk+1ごとの固有ベクトルとして容易に得ることができる。ただし、式(21)における“ΛE”は、固有値λ1,λ2,…,λu,…,λmk+1を対角要素とすると共に値0を非対角要素とする対角行列であり、式(21)および(22)における“W”は、上述の複数の重みマップw1,w2,…,wu,…,wmk+1を並列に列挙した行列であり、式(22)における“I”は単位行列であり、式(21)における“ΣX”は、次式(23)に示す共分散行列であり、式(23)における“h”は、サンプルデータのインデックスである。そして、連結行列Xhと平均行列X-とに基づいて式(21)の固有値問題を解くマップ設定部25も、周知のソフトウェアを用いて容易に構築することができる。そして、このように各ベクトルzの分散JE(w)が拘束条件の下でそれぞれ最大になるようにw1,w2,…,wu,…,wmk+1を設定する場合、式(20)からわかるように、重みマップの設定前に、複数のサンプルデータを複数のクラスに分けておく必要はない。
【0051】
【数8】
【0052】
図5から図7に、本発明による重み設定方法の有用性を評価するための“STL-10”データセット(10個のクラスごとに100枚の学習サンプル画像およびテストサンプル画像を含む)を用いた実験の結果を示し、図8から図11に、“MNIST”データセット(10個のクラスごとに6000個の学習サンプル画像および1000個のテストサンプル画像を含む)を用いた実験の結果を示す。
【0053】
図5図6図8から図10において、“Rand(n,d)”は、n×n個のパッチ画像にd次元のランダム重みによるフィルタ処理を施すことを示す。また、“Km(n,d)”は、Kミーンズ法により得られるd次元の視覚的単語を用いてn×n個のパッチ画像から抽出される記述子を示す。更に、“CE(n,m)”は、上述の分散JE(w)に基づくm個の重みマップ(以下、適宜「固有重みマップ」または「EWM」という。)およびn×n個の受容野を有する畳み込み層を示し、“CF(n,m)は、上述の分散JF(w)に基づくm個の重みマップ(以下、適宜「フィッシャー重みマップ」または「FMW」という。)およびn×n個の受容野を有する畳み込み層を示す。
【0054】
また、“R”,“R2”は、調整ユニット(ReLU)を示す。更に、“AP(n,s)”,“APq(n,s)”,“MPq(n,s)”および“MPq(n,s)”は、上述のとおりである。そして、例えば“Rand(5, 200)-R-AP(4, 4)-CF(3, 100)-R-APq”は、“d=200のrandom filters,ReLU,平均プーリング層,100 個のフィッシャー重みマップを有する 3×3の畳み込み層,ReLUおよび平均プーリング層が入力側から出力側に順番に並んだ畳み込みニューラルネットワークを示す。また、実験は、一般的な諸元(例えば、動作周波数3.2GHzのプロセッサ、32GBのメモリ)を有するデスクトップ型パーソナルコンピュータを用いて行われた。
【0055】
図5および図6に示すように、本発明による重み設定方法により設定されるフィッシャー重みマップや固有重みマップを有する畳み込み層を備えた畳み込みニューラルネットワークによれば、サンプルデータの数が少ない“STL-10”データセットにおいても分類率(Classification rates)をより高くすることができる。そして、図7に示すように、本発明による重み設定方法により重みマップを設定すれば、“1-layer Vector Quantization”や“1-layer Sparse Coding”(A. Coates and A. Ng. The importance of encoding versus training with sparse coding and vector quantization. In Proc. ICML, 2011.参照)”,“3-layer Learned Receptive Field”(A. Coates and A. Ng. Selecting receptive fields in deep networks. In Proc. NIPS, 2011.参照),“Discriminative Sum-Product Network”(R. Gens and P. Domingos. Discriminative learning of sum-product networks. In Proc. NIPS, 2012.参照)といった従来の畳み込みネットワークに比べて、畳み込みニューラルネットワークの分類率をより向上させることが可能となる。従って、これらの実験結果から、本発明による重み設定方法は、比較的少ないサンプルデータを用いて画像認識性に優れた畳み込みニューラルネットワークを構築する上で極めて有用であることが理解されよう。
【0056】
更に、図8から図10に示すように、本発明による重み設定方法により設定されるフィッシャー重みマップや固有重みマップを有する畳み込み層を備えた畳み込みニューラルネットワークによれば、“MNIST”データセットにおける分類エラー率(Classification errors)をより充分に低くし得ることが理解されよう。なお、図9において、括弧()内の数字は、受容野における特徴の数を示す。そして、本発明による重み設定方法により重みマップを設定すれば、“Large CNN (unsup. pretraining)[1]”(M. A. Ranzato, C. Poultney, S. Chopra, and Y. LeCun. Ecient learning of sparse representations with an energy-based model. In Proc. NIPS, 2006.参照)や、“Large CNN (unsup. pretraining)[2]”(K. Jarrett, K. Kavukcuoglu, M. A. Ranzato, and Y. Lecun. What is the best multi-stage architecture for object recognition? In Proc. IEEE ICCV, 2009.参照),“3-layer CNN + Stochastic Pooling”(M. D. Zeiler and R. Fergus. Stochastic pooling for regularization of deep convolutional neural networks. In arXiv preprint, 2013.参照)、Multi-Column Deep Neural Network”(D. Ciresan, U. Meier, and J. Schmidhuber. Multi-column deep neural networks for image classification. In Proc. IEEE CVPR, 2012.参照)といった従来の畳み込みネットワークと同等あるいはそれ以上の分類エラー率を得ることが可能となる。
【0057】
以上説明したように、重み設定装置20は、複数のサンプルデータを用いて、第k+1層の各特徴マップの全要素を列挙したベクトルzの分散に基づく指標であるフィッシャー判別基準JF(w)あるいは分散JE(w)自体がそれぞれ最大になるように複数の重みマップw1,w2,…,wu,…,wmk+1を設定する。
【0058】
このように設定される複数の重みマップw1,w2,…,wu,…,wmk+1を有する畳み込み層によれば、当該複数の重みマップw1,w2,…,wu,…,wmk+1と第k層の特徴マップとを畳み込むことにより、各特徴マップにおいて同じクラスに属する特徴ベクトルf(k+1)(x,y)同士の距離が短くなり、かつ異なるクラスに属する特徴ベクトルf(k+1)(x,y)同士の距離が長くなるように第k+1層の複数の特徴マップを生成することができる。また、各ベクトルzの分散に基づく指標JF(w)あるいはJE(w)をそれぞれ最大にする複数の重みマップw1,w2,…,wu,…,wmk+1は、ベクトルzの分散すなわち共分散行列についての固有値問題を解くことにより固有値ごとの固有ベクトルとして容易に得ることが可能である。更に、上記固有値問題は、サンプルデータの数に依存するものではないことから、重み設定装置20によれば、サンプルデータの数が少ない場合であっても、適正な複数の重みマップw1,w2,…,wu,…,wmk+1を得ることができる。従って、重み設定装置20によれば、計算コストを削減しつつ、畳み込みニューラルネットワーク1を構成する畳み込み層3a,3bにおける複数の重みを容易かつ適正に設定することが可能となる。
【0059】
また、複数の重みマップの設定に際して、フィッシャー判別基準JF(w)を利用することにより、第k+1層の各特徴マップにおける分離精度をより向上させることが可能となる。更に、連結行列X(j)iを設定する連結行列設定部23と、平均行列X-および平均行列X-(j)を設定する平均行列設定部24と、式(16)に示す固有値問題を式(17)の拘束条件のもとで解く重みマップ設定部25とを含む重み設定装置20によれば、各ベクトルzのクラス内共分散行列Σ〜Wとクラス間共分散行列Σ〜Bとに基づくフィッシャー判別基準JF(w)が式(17)の拘束条件の下でそれぞれ最大になるように複数の重みマップw1,w2,…,wu,…,wmk+1を設定することが可能となる。
【0060】
一方、複数の重みマップの設定に際して、第k+1層の各特徴マップの全要素を列挙したベクトルzの分散JE(w)自体を指標として利用すれば、クラス分けされていない複数のサンプルデータを用いて、第k+1層の特徴マップを生成する畳み込み層における複数の重みマップw1,w2,…,wu,…,wmk+1を容易かつ適正に設定することが可能となる。更に、第k層の特徴マップから第k+1層の特徴マップへの次元圧縮をより適正に実行することができる。この場合には、h(1≦h≦N)番目のサンプルデータの第k層における特徴マップから抽出される特徴ベクトルを並列に列挙して連結行列Xhを設定するように連結行列設定部23を構成し、全サンプルデータの連結行列X1〜XNの平均行列X-を設定するように平均行列設定部24を構成し、式(21)に示す固有値問題を式(22)に示す拘束条件のもとで解くようにマップ設定部25を構成すればよい。
【0061】
そして、重み設定装置20により設定された複数の重みマップw1,w2,…,wu,…,wmk+1は、更に誤差逆伝播法による学習等を行ってチューニングされてもよいことはいうまでもない。また、構築されるべき畳み込みニューラルネットワークが複数の畳み込み層を含むものである場合には、上述のように、複数の畳み込み層ごとに各ベクトルzの分散に基づく指標JF(w)あるいはJE(w)がそれぞれ最大になるように複数の重みマップを設定すればよい。この結果、重み設定装置20によれば、画像認識や音声認識、形状認識等に極めて有用な畳み込みニューラルネットワークを構築することが可能となる。
【0062】
なお、本発明は上記実施形態に何ら限定されるものではなく、本発明の外延の範囲内において様々な変更をなし得ることはいうまでもない。更に、上記発明を実施するための形態は、あくまで課題を解決するための手段の欄に記載された発明の具体的な一形態に過ぎず、課題を解決するための手段の欄に記載された発明の要素を限定するものではない。
【0063】
本発明は、畳み込みニューラルネットワークを用いた情報処理分野において利用可能である。
【符号の説明】
【0064】
1 畳み込みニューラルネットワーク、2 入力層、3a,3b 畳み込み層、4a,4b プーリング層、5 出力層、20 重み設定装置、21 データ入力処理部、21 データ入力処理部、22 ベクトル抽出部、23 連結行列設定部、24 平均行列設定部、25 マップ設定部、27 記憶装置。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11