(57)【要約】【課題】  平坦部やエッジ部といった様々な画像でよく現れる一般的な特徴と、布などのテクスチャのような限られた画像で現れる特定の特徴と、の両方を学習するための技術を提供すること。【解決手段】  階層型ニューラルネットワークにおける出力層の出力と第１の教師データとの差分と、該階層型ニューラルネットワークにおける中間層の注目ニューロンの出力と第２の教師データとの差分と、の合計を極小化するように層間の結合係数を調整する。【選択図】  図３
2016031746.tif 000002
【特許請求の範囲】
【請求項１】
階層型ニューラルネットワークにおける出力層の出力と第１の教師データとの差分と、該階層型ニューラルネットワークにおける中間層の注目ニューロンの出力と第２の教師データとの差分と、の合計を極小化するように、該階層型ニューラルネットワークにおける階層間の結合係数を調整する処理手段を備えることを特徴とする情報処理装置。
【請求項２】
更に、
前記調整に先立って、前記第１の教師データと同じ学習対象の教師データと前記階層型ニューラルネットワークにおける出力層の出力との差分を極小化するように該階層型ニューラルネットワークにおける階層間の結合係数を調整する処理を行うことで得られる、該階層型ニューラルネットワークの中間層におけるそれぞれのニューロンの発火頻度を表示する表示手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
更に、
前記調整に先立って、前記第１の教師データと同じ学習対象の教師データと前記階層型ニューラルネットワークにおける出力層の出力との差分を極小化するように該階層型ニューラルネットワークにおける階層間の結合係数を調整する処理の過程を表示する表示手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記表示手段は、前記過程におけるそれぞれのニューロンの発火／非発火を表す情報を表示することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
更に、
前記調整に先立って、前記第１の教師データと同じ学習対象の教師データと前記階層型ニューラルネットワークにおける出力層の出力との差分を極小化するように該階層型ニューラルネットワークにおける階層間の結合係数を調整する処理を行った場合に、前記中間層において、特定の特徴に対して最も発火頻度が高いニューロンを前記注目ニューロンとして指定する手段を備えることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
学習済み階層型ニューラルネットワークにおける第１の中間層からの出力を入力として受けて処理し、該処理の結果を該学習済み階層型ニューラルネットワークにおける第２の中間層に出力する階層型ニューラルネットワークの学習処理を実行する処理手段であって、
前記処理手段は、該学習済み階層型ニューラルネットワークにおいて該第２の中間層に出力する中間層の出力と該階層型ニューラルネットワークにおける出力層の出力との差分と、該階層型ニューラルネットワークにおける注目ニューロンの出力と教師データとの差分と、の合計を極小化するように、該階層型ニューラルネットワークにおける階層間の結合係数を調整する
ことを特徴とする情報処理装置。
【請求項７】
前記処理手段は前記階層型ニューラルネットワークの学習処理の後、
前記学習済み階層型ニューラルネットワークの出力層における出力と該出力層用の教師データとの差分と、前記階層型ニューラルネットワークにおける注目ニューロンの出力と該注目ニューロン用の教師データとの差分と、の合計を極小化するように、前記学習済み階層型ニューラルネットワーク及び前記階層型ニューラルネットワークにおける階層間の結合係数と、前記学習済み階層型ニューラルネットワークと前記階層型ニューラルネットワークとの間の結合係数と、を調整する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記処理手段は更に、前記合計を極小化するように、前記階層型ニューラルネットワークにおける各層のニューロンのバイアスを調整することを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
情報処理装置の処理手段が、階層型ニューラルネットワークにおける出力層の出力と第１の教師データとの差分と、該階層型ニューラルネットワークにおける中間層の注目ニューロンの出力と第２の教師データとの差分と、の合計を極小化するように、該階層型ニューラルネットワークにおける階層間の結合係数を調整することを特徴とする情報処理方法。
【請求項１０】
情報処理装置の処理手段が、学習済み階層型ニューラルネットワークにおける第１の中間層からの出力を入力として受けて処理し、該処理の結果を該学習済み階層型ニューラルネットワークにおける第２の中間層に出力する階層型ニューラルネットワークの学習処理を実行する処理工程であって、
前記処理工程では、該学習済み階層型ニューラルネットワークにおいて該第２の中間層に出力する中間層の出力と該階層型ニューラルネットワークにおける出力層の出力との差分と、該階層型ニューラルネットワークにおける注目ニューロンの出力と教師データとの差分と、の合計を極小化するように、該階層型ニューラルネットワークにおける階層間の結合係数を調整する
ことを特徴とする情報処理方法。
【請求項１１】
コンピュータを、請求項１乃至８の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークにおける学習技術に関するものである。
【背景技術】
【０００２】
従来から、ニューラルネットワークを用いて特徴を学習するものとしてHintonらの多層ニューラルネットが知られている（非特許文献１）。非特許文献１では、大量の画像でよく表われる特徴を学習したニューラルネットワークを用いてノイズ低減を行うことが開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】G.E. Hinton and R.R. Salakhutdinov, Science, Vol. 313, no. 5786, pp. 504 - 507, 2006
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、平坦部やエッジ部といった様々な画像でよく現れる一般的な特徴は学習しやすいものの、布などのテクスチャのような限られた画像で現れる特定の特徴を学習しきれない場合がある。一方で、特定の特徴を学習しようとすると過学習となり、その他の特徴を十分に学習できない可能性があるという課題があった。
【０００５】
本発明はこのような問題に鑑みてなされたものであり、平坦部やエッジ部といった様々な画像でよく現れる一般的な特徴と、布などのテクスチャのような限られた画像で現れる特定の特徴と、の両方を学習するための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一様態は、階層型ニューラルネットワークにおける出力層の出力と第１の教師データとの差分と、該階層型ニューラルネットワークにおける中間層の注目ニューロンの出力と第２の教師データとの差分と、の合計を極小化するように、該階層型ニューラルネットワークにおける階層間の結合係数を調整する処理手段を備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、平坦部やエッジ部といった様々な画像でよく現れる一般的な特徴と、布などのテクスチャのような限られた画像で現れる特定の特徴と、の両方を学習するための技術を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置のハードウェア構成例を示すブロック図。
【図２】階層型ニューラルネットワークの構成例を示す図。
【図３】学習処理を実行する際の情報処理装置の機能構成例を示すブロック図。
【図４】階層型ニューラルネットワークにおける学習処理のフローチャート。
【図５】学習処理を実行する際の情報処理装置の機能構成例を示すブロック図。
【図６】複合階層型ニューラルネットワークにおける学習処理のフローチャート。
【図７】階層型ニューラルネットワークの構成例を示す図。
【図８】学習処理を実行する際の情報処理装置の機能構成例を示すブロック図。
【図９】複合階層型ニューラルネットワークにおける学習処理のフローチャート。
【図１０】複合階層型ニューラルネットワークの構成例を示す図。
【図１１】注目ニューロンの選択方法について説明する図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１０】
［第１の実施形態］
本実施形態では、階層型ニューラルネットワークにおける出力層の出力と第１の教師データとの差分と、該階層型ニューラルネットワークにおける中間層の注目ニューロンの出力と第２の教師データとの差分と、の合計を極小化するように、該階層型ニューラルネットワークにおける階層間の結合係数（重み係数）を調整する情報処理装置の一例について説明する。
【００１１】
先ず、本実施形態に係る情報処理装置のハードウェア構成例について、図１のブロック図を用いて説明する。なお、本実施形態に係る情報処理装置は、一般のＰＣ（パーソナルコンピュータ）であっても良いし、携帯電話やタブレット端末装置などの携帯端末装置であっても良い。また、本実施形態に係る情報処理装置は、ディジタルカメラなどの機器に組み込まれる電子回路の一部の構成であっても構わない。すなわち、本実施形態に係る情報処理装置は、階層型ニューラルネットワークを用いて学習対象を学習する機能を使用する機器であれば、如何なる機器に適用しても構わない。もちろん、本実施形態に係る情報処理装置は、このような学習機能だけでなく、学習結果を利用して対象を処理する機能をも使用する機器に適用しても構わない。
【００１２】
ＣＰＵ１０１は、ＲＡＭ１０２に格納されているコンピュータプログラムやデータを用いて処理を実行することで、情報処理装置全体の動作制御を行うと共に、情報処理装置が行うものとして後述する各処理を実行若しくは制御する。
【００１３】
ＲＡＭ１０２は、記憶装置１０３からロードされたコンピュータプログラムやデータ、汎用Ｉ／Ｆ（インターフェース）１０４を介して外部メモリ１０６からロードされたコンピュータプログラムやデータ、を記憶するためのエリアを有する。更にＲＡＭ１０２は、ＣＰＵ１０１が各種の処理を実行する際に用いるワークエリアを有する。このように、ＲＡＭ１０２は、各種のエリアを適宜提供することができる。
【００１４】
記憶装置１０３には、ＯＳ（オペレーティングシステム）や、情報処理装置が行うものとして後述する各処理をＣＰＵ１０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、階層型ニューラルネットワークの動作を実行する為のプログラムや階層型ニューラルネットワークに特徴量を学習させるための学習プログラム等が含まれている。また、このデータには、階層間の重み係数やニューロンのバイアス値、学習時に用いる入力データ及び教師データのセット、各種のパラメータ、などが含まれている。記憶装置１０３に保存されているコンピュータプログラムやデータは、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。
【００１５】
ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３は何れも、共通のバス１０７に接続されている。
【００１６】
入力装置１０５は、キーボードやマウス、タッチパネル画面などにより構成されており、本装置のユーザが操作することで各種の指示をＣＰＵ１０１に対して入力することができる。
【００１７】
外部メモリ１０６は、メモリカードなどの本装置に着脱可能なメモリ装置である。なお、記憶装置１０３に保存若しくは格納するものとして説明するデータの一部は外部メモリ１０６に保存若しくは格納するようにしても構わない。外部メモリ１０６に格納されているコンピュータプログラムやデータもまた、ＣＰＵ１０１による制御に従って適宜ＲＡＭ１０２にロードされ、ＣＰＵ１０１による処理対象となる。
【００１８】
入力装置１０５及び外部メモリ１０６は何れも汎用Ｉ／Ｆ１０４に接続されており、汎用Ｉ／Ｆ１０４は上記のバス１０７に接続されている。なお、汎用Ｉ／Ｆ１０４にはこれ以外にも、例えば、赤外線通信や無線ＬＡＮ等を用いて外部機器との通信を行うための通信部を接続しても構わない。
【００１９】
なお、図１に示した構成は、以下に説明する処理を実現可能な構成の一例であり、同等以上の機能を実現可能な構成であれば、如何なる構成を採用しても構わない。また、本実施形態では、図１に示した構成を有する１台の情報処理装置を用いて、以下に説明する学習処理を実行するが、２台以上の装置で処理を分散させて該学習処理を実現させても構わない。
【００２０】
次に、階層型ニューラルネットワークについて、図２を用いて説明する。図２では説明を簡単にするために中間層を１層としているが、２層以上で中間層を構成しても構わない。図２では、入力層はＭｉ個のニューロン（ｎ１１、ｎ１２、…、ｎ１Ｍｉ）を有し、中間層はＭｈ個のニューロン（ｎ２１、ｎ２２、…、ｎ２Ｍｈ）を有し、出力層（最終層）はＭｏ個のニューロン（ｎ３１、ｎ３２、…、ｎ３Ｍｏ）を有している。そして、各層のニューロンは隣接する層の全てのニューロンと結合しており、階層間で情報伝達を行う３層の階層型ニューラルネットワークを構成している。
【００２１】
入力層におけるニューロンの数は、入力データの数に対応している。例えば、入力層に画像を入力する場合、該入力層には、画素とニューロンとが１対１となるように、画素数分のニューロンを設ける。そして入力層における各ニューロンには、対応する画素の画素値（若しくはその周辺の画素の画素値の平均値など）を特徴量として入力することになる。
【００２２】
図２の場合、入力層における各ニューロンは、中間層における全てのニューロンと結合しており、中間層における各ニューロンは、出力層における全てのニューロンと結合している（図２ではニューロン間の結合を結線で示している）。また、図２の階層型ニューラルネットワークでは同層内のニューロン間に結合はない。
【００２３】
また、ニューロン間の結合はそれぞれ重みを持っており、一方のニューロンから結合を通して他方のニューロンに伝達される出力値はその結合の重みによって増強あるいは減衰される。図２においてＷ１，ｂ１はそれぞれ、入力層と中間層との間の重み係数の行列、中間層におけるバイアス値を表している。また、Ｗ２，ｂ２はそれぞれ、中間層と出力層との間の重み係数の行列、出力層におけるバイアス値を表している。例えば、図２の中間層におけるニューロンｎ２１の出力値ａｎ２１は、以下の式（１）によって与えられる。
【００２４】
【数１】
2016031746.tif 000003
【００２５】
式（１）において、ｗｎ１ｋｎ２１は、入力層におけるニューロンｎ１ｋと中間層におけるニューロンｎ２１との間の結合の重みを表す重み係数である。ａｎ１ｋは、入力層におけるニューロンｎ１ｋの出力値である。ｂ１は、中間層に属するニューロンにおけるバイアス値である。ｆは活性化関数であり、例えば、以下の式（２）で表される。
【００２６】
【数２】
2016031746.tif 000004
【００２７】
ｐ、ｑは任意に設定可能なパラメータである。本実施形態では説明を簡単にするために、ｐ、ｑは全てのニューロンで同じ値とする。なお、活性化関数ｆは式（２）で示すようなシグモイド関数に限るものではなく、引数（式（２）の場合はａ）の値が閾値以上であれば１を返し、閾値未満であれば０を返す二値化関数であっても良い。また、活性化関数ｆはtanhや、二次関数などの曲線や一次関数で近似した関数であっても構わない。
【００２８】
また、階層型ニューラルネットワークには、それぞれのニューロンが自己結合を有するものがあったり、同層内で結合を有するものがあったりするが、このような階層型ニューラルネットワークを用いても構わない。
【００２９】
このように、各層のそれぞれのニューロンは、上記の式（１）、式（２）に従って動作して出力値ａを出力している。そしてその出力値ａ（出力層を除く）は次の層との間の重み係数に応じて重み付けされて該次の層におけるそれぞれのニューロンに入力される。
【００３０】
次に、このような階層型ニューラルネットワークにおける学習処理について説明する。従来から、入力層に入力データを入力して階層型ニューラルネットワークを動作させた場合に出力層から教師データに近い出力が得られるように、ニューロン間における重み係数や各層のバイアスを調整することで、該階層型ニューラルネットワークに「入力データと教師データとの対」を学習させる（学習処理を行う）技術が存在する。このような入力データと教師データのセットを複数セット用意し、それぞれのセットについて学習処理を行うことで、様々なデータに対して汎用性がある重み係数及びバイアス値を得ることができる。ここで、教師データは、ニューロンの出力値と比較するのであるから、０〜１の範囲の値に正規化しておくことが好ましい。
【００３１】
このように、従来の階層型ニューラルネットワークにおける学習処理では、入力層に入力データを入力して階層型ニューラルネットワークを動作させた場合に出力層から得られる出力と、該入力データに予め対応づけられている教師データと、の差分を計算し、該差分を極小化するように、重み係数及びバイアス値を調整することで、この入力データと教師データとの対を学習していた。本実施形態では、この差分に加え、中間層における注目ニューロンの出力と該注目ニューロン用の教師データとの差分をも極小化するように、重み係数及びバイアス値を調整する。具体的には、以下の式（３）に示す評価値Ｌを極小化するように、層間の重み係数及び各層のバイアス値を調整する。
【００３２】
【数３】
2016031746.tif 000005
【００３３】
式（３）において、ｄｔは出力層からの出力との比較に用いる教師データ、ｄｏは出力層からの出力（ａｎ３１、…、ａｎ３Ｍｏ）、を表している。また、ａｔは、中間層における注目ニューロン用の教師データ、ａｍは注目ニューロンの出力、を表している。αは、任意に設定される定数である。
【００３４】
即ち、式（３）において第１項目は、入力層に入力データを入力して階層型ニューラルネットワークを動作させた場合に出力層から得られる出力ｄｏと、該入力データに予め対応づけられている教師データｄｔと、の差分を表している。また、第２項目は、中間層における注目ニューロンの出力ａｍと、該注目ニューロン用の教師データａｔとの差分を表している。従来の学習処理では第１項目のみを極小化するように重み係数やバイアス値を調整していたが、本実施形態では、第１項目及び第２項目の合計（式（３）では線形和）を極小化するように重み係数やバイアス値を調整する。もちろん、出力ｄｏと教師データｄｔとの差分と、出力ａｍと教師データａｔとの差分と、の合計（和とは限らない）を表す式であれば如何なる式を式（３）の代わりに用いても構わない。
【００３５】
ここで、階層型ニューラルネットワークに画像のノイズ低減処理を学習させる場合を考えると、様々な画像で頻繁に現れるわけではないものの、限られた対象や状況に関する画像では頻繁に現れる特定の特徴を学習しておくことは有用である。特定の特徴としては、例えば「好ましさ」、「髪らしさ」、「○○との類似度」、「鮮鋭感」などの主観値や統計量、または赤、青、日本人などの特定のカテゴリやペン、本などの実シーン中のオブジェクト、Ａさん、Ｂさんなど個人を示す数列などがある。
【００３６】
然るに、中間層におけるニューロンのうち、特定の特徴量をも学習するニューロンは、上記の「限られた対象や状況に関する画像では頻繁に現れる特定の特徴」を認識するためにも有用な存在となる。このようなニューロン（上記の注目ニューロン）を中間層におけるニューロンから選択する方法には様々な方法が考え得る。注目ニューロンの選択方法については以下で詳しく説明する。
【００３７】
以下では、何れか１つの中間層において１つの注目ニューロンを選択した場合について説明する。しかし、１つの中間層で２以上のニューロンを注目ニューロンとして選択しても構わないし、２以上の中間層で１以上のニューロンを注目ニューロンとして選択しても構わない。
【００３８】
上記のような性質を有する評価値Ｌを極小化するように調整する対象は、入力層と中間層との間のニューロン間の重み係数Ｗ１、中間層におけるバイアス値ｂ１、中間層と出力層との間のニューロン間の重み係数Ｗ２、出力層におけるバイアス値ｂ２、である。
【００３９】
例えば、式（３）の評価値Ｌを極小化するように中間層の重み係数ｗｈ（入力層と中間層との間の重み係数）を調整する場合には、以下の式（４）〜（７）に従って重み係数ｗｈを更新すれば良い。
【００４０】
【数４】
2016031746.tif 000006
【００４１】
【数５】
2016031746.tif 000007
【００４２】
【数６】
2016031746.tif 000008
【００４３】
【数７】
2016031746.tif 000009
【００４４】
βは、任意の定数であり、負の値をとる。ｗｏは、中間層から出力層への重み係数であり、ｄｈは、中間層からの出力、ｂｏは、出力層におけるバイアス値である。また、ｗｉｍは、入力層から中間層における注目ニューロンへの重み係数であり、中間層の重み係数ｗｈに含まれている。ｄｉは、入力層からの出力、ｂｈは、中間層におけるバイアス値である。
【００４５】
このような重み係数の更新を、中間層と出力層との間の重み係数についても行うことで、上記の評価値Ｌを極小化するように、それぞれの層間の重み係数を更新することができる。
【００４６】
また、各層のバイアス値の更新についても同様の方法で行う。すなわち、層毎に、式（３）の評価値Ｌを該層のバイアス値で偏微分した式に基づいて該層のバイアス値を更新する。
【００４７】
すなわち、入力層に入力データを入力して階層型ニューラルネットワークを動作させることで出力層から得られる出力を求めた後、上記の計算処理を行うことで各層間の重み係数及び層毎のバイアス値を更新し、該更新後に再度、入力層に入力データを入力して階層型ニューラルネットワークを動作させることで出力層からの出力を求める。この一連の処理を繰り返し行うことで、上記の評価値Ｌを極小化するように重み係数及びバイアス値を調整することができる。
【００４８】
なお、本実施形態では、最急降下法を用いた学習方法について説明したが、学習の方法はこれ以外の方法を用いても良く、誤差逆伝搬法、共役勾配法などの他の方法を用いて学習を行っても構わない。
【００４９】
そして上記のように、入力データと教師データ（注目ニューロン用の教師データも含む）のセットを複数セット用意し、それぞれのセットについて重み係数及びバイアス値の調整を行った結果、評価値Ｌの値が規定値以下になったり、その変化率が規定値以下になったり、学数回数が規定回数以上になったりするなど、規定の終了条件（学習の終了条件）が満たされると、上記の学習処理を終了し、この時点における重み係数及びバイアス値を、学習済みの重み係数及びバイアス値として記憶装置１０３に登録する。なお、この学習において、ノイズ低減処理を学習している場合は、様々な画像データに対して十分にノイズ低減された出力データが得られれば学習を終了することになる。
【００５０】
以上説明した学習処理は、データを逐次追加して学習していくようなオンライン処理であっても構わないし、初めから多くのデータに対して学習を行うバッチ処理であっても構わない。
【００５１】
オンライン処理の場合は、あるデータに対して学習が完了した場合は、学習した重み係数及びバイアス値に基づいて次のデータに対する学習を始める。バッチ処理では、複数のデータに対する重み係数及びバイアス値のそれぞれの更新量を計算しておいて、それぞれの統合値（平均など）を実際の重み係数及びバイアス値の更新に適用する。本実施形態では、バッチ処理を行うものとして説明するが、オンライン処理であっても構わない。
【００５２】
次に、以上説明した、階層型ニューラルネットワークの学習処理を実行する際の情報処理装置の機能構成例について、図３のブロック図を用いて説明する。図３において、教師データ入力部３０６、教師注目ニューロン活動入力部３０７、パラメタ更新部３０８、生徒データ入力部３０１、処理部３０３は何れもコンピュータプログラムとして実装され、記憶装置１０３に保存されているものとする。以下では、これらの機能部を処理の主体として説明する場合もあるが、実際にはＣＰＵ１０１が該機能部に対応するコンピュータプログラムを実行することで、対応する処理が実現される。しかし、これらの機能部の全てをコンピュータプログラムで実装することに限るものではなく、一部をハードウェアで実装しても構わない。また、パラメタ保持部３０２は、記憶装置１０３や外部メモリ１０６が有するメモリ領域の一部として実装されるものとする。なお、図３に示した全ての機能部をハードウェアで構成しても構わない。
【００５３】
生徒データ入力部３０１は、入力層に入力する入力データを生徒データとして処理部３０３に入力する。例えば、画像のノイズ低減処理を学習させる場合には、生徒データ入力部３０１は、ノイズが付加されている画像を構成する各画素の画素値を処理部３０３に入力する。
【００５４】
パラメタ保持部３０２は、各層間の重み係数及び各層のバイアス値の初期値や前回の学習時の値を保持する。また、パラメタ保持部３０２は、上記の学習用の式においてβ、ｐ、ｑ、等のパラメータも保持している。
【００５５】
処理部３０３は先ず、パラメタ保持部３０２に保持されている重み係数及びバイアス値を階層型ニューラルネットワークに設定して、階層型ニューラルネットワークを確定させる。そして処理部３０３は、階層型ニューラルネットワークの確定後、該階層型ニューラルネットワークの入力層に生徒データ入力部３０１からの生徒データを入力して該階層型ニューラルネットワークを動作させる。例えば、画像のノイズ低減処理を学習させる場合には、該階層型ニューラルネットワークの出力層からは、入力層に入力した画像と同サイズの、ノイズ低減処理がなされた画像が出力される。
【００５６】
教師データ入力部３０６は、生徒データ入力部３０１が処理部３０３に供給した生徒データと対になっている教師データをパラメタ更新部３０８に供給するものである。例えば、画像のノイズ低減処理を学習させる場合には、教師データ入力部３０６は、ノイズが低減された画像を構成する各画素の画素値をパラメタ更新部３０８に入力する。
【００５７】
教師注目ニューロン活動入力部３０７は、中間層において注目ニューロンとして選択されたニューロンに対する教師データをパラメタ更新部３０８に供給するものである。例えば、画像のノイズ低減処理を学習させる場合に、繊維に着目したとすると、繊維らしさを０〜１の値で表わしたものを注目ニューロン用の教師データとする。
【００５８】
パラメタ更新部３０８は、処理部３０３が求めた階層型ニューラルネットワークにおける出力層の出力と、教師データ入力部３０６から供給された教師データと、の差分（第１の差分）を求める。更にパラメタ更新部３０８は、処理部３０３が求めた階層型ニューラルネットワークにおける中間層の注目ニューロンの出力と、教師注目ニューロン活動入力部３０７から供給された教師データと、の差分（第２の差分）を求める。そしてパラメタ更新部３０８は、第１の差分と第２の差分との合計を極小化するように、階層型ニューラルネットワークにおけるそれぞれの重み係数及びバイアス値を更新する。その際、パラメタ保持部３０２に保持されているパラメータを用いる。そしてパラメタ更新部３０８は、学習の終了条件が満たされた場合には、この時点における重み係数及びバイアス値を記憶装置１０３や外部メモリ１０６に登録し、満たされていない場合には、重み係数及びバイアス値の更新を続ける。なお、学習の終了条件が満たされた場合には、パラメタ更新部３０８はその旨を処理部３０３にも通知するので、処理部３０３は処理を停止する。
【００５９】
次に、以上説明した、階層型ニューラルネットワークにおける学習処理について、図４のフローチャートを用いて説明する。
【００６０】
ステップＳ４０１では、処理部３０３は、パラメタ保持部３０２に保持されている重み係数及びバイアス値を階層型ニューラルネットワークに設定して、階層型ニューラルネットワークを確定させる。この時点で設定する重み係数及びバイアス値は初期値であり、予め作成された規定の値であっても良いし、乱数により決定した値であっても良い。
【００６１】
ステップＳ４０２では、生徒データ入力部３０１は、入力層に入力する入力データを生徒データとして処理部３０３に入力する。
【００６２】
ステップＳ４０３では、教師データ入力部３０６は、生徒データ入力部３０１が処理部３０３に供給した生徒データと対になっている教師データをパラメタ更新部３０８に供給する。
【００６３】
ステップＳ４０４では、教師注目ニューロン活動入力部３０７は、中間層において注目ニューロンとして選択されたニューロンに対する教師データをパラメタ更新部３０８に供給する。
【００６４】
ステップＳ４０５では、処理部３０３は、階層型ニューラルネットワークの入力層に生徒データ入力部３０１からの生徒データを入力して該階層型ニューラルネットワークを動作させて、入力層、中間層、出力層のそれぞれの層からの出力を求める。
【００６５】
ステップＳ４０７では、パラメタ更新部３０８は、学習の終了条件を判定する。上記の通り、評価値Ｌやその変化率が規定値以下となっている場合や、学習回数が規定回数以上となっている場合に、学習の終了条件が満たされたと判断する。また、ここではバッチ処理により学習処理を行うので、生徒データ及び教師データのセット毎に評価値Ｌを計算することができるため、その合計値（重み付け和であっても良い）を評価値とし、その値や変化率が規定値以下となっている場合に、学習の終了条件が満たされたと判断しても良い。また、代わりに、それぞれのセットに対する評価値Ｌのうち最大の評価値Ｌを用いても構わない。
【００６６】
この判断の結果、学習の終了条件が満たされた場合には、処理はステップＳ４０８を介してステップＳ４１０に進み、満たされていないと判断した場合には、処理はステップＳ４０８を介してステップＳ４０９に進む。
【００６７】
ステップＳ４０９では、パラメタ更新部３０８は、ステップＳ４０５で処理部３０３が求めた階層型ニューラルネットワークにおける出力層の出力と、教師データ入力部３０６から供給された教師データと、の差分（第１の差分）を求める。更にパラメタ更新部３０８は、処理部３０３が求めた階層型ニューラルネットワークにおける中間層の注目ニューロンの出力と、教師注目ニューロン活動入力部３０７から供給された教師データと、の差分（第２の差分）を求める。そしてパラメタ更新部３０８は、第１の差分と第２の差分との合計を極小化するように、階層型ニューラルネットワークにおけるそれぞれの重み係数及びバイアス値を更新する。更新された重み係数及びバイアス値はパラメタ保持部３０２にて管理される。そして処理はステップＳ４０５に戻る。
【００６８】
一方、ステップＳ４１０では、パラメタ更新部３０８は、この時点における重み係数及びバイアス値を学習済みの重み係数及びバイアス値として、記憶装置１０３や外部メモリ１０６に登録する。
【００６９】
次に、中間層におけるニューロン群から注目ニューロンを選択する方法について説明する。上記の通り、注目ニューロンは、「限られた対象や状況に関する画像では頻繁に現れる特定の特徴」を認識するために、該特定の特徴を学習するニューロンである。然るに、「限られた対象や状況に関する画像では頻繁に現れる特定の特徴」については中間層における他のニューロンよりも発火頻度が高い（比較的高い値（例えば０．８以上の値）を出力する頻度が高い）ニューロンを注目ニューロンとして選択することが好ましいことになる。
【００７０】
例えば、「限られた対象や状況に関する画像では頻繁に現れる特定の特徴」を含むオブジェクト（木など）が写っており且つノイズが付加されている画像（生徒データ）及び該画像のノイズを低減させた画像（教師データ）のセットを複数セット用意する。そして、図４のフローチャートに従った処理に先立って、重み係数及びバイアス値を初期化した階層型ニューラルネットワークを用いて、上記の評価値Ｌにおいて第１項目のみを極小化するようにそれぞれのセットを学習する処理を行うのであるが、その処理の過程で、中間層におけるそれぞれのニューロンの発火頻度（比較的高い値を出力する頻度）を集計する。そしてそれぞれのセットの学習が完了すると、中間層におけるそれぞれのニューロンの発火頻度を視認可能な画面を生成して不図示の表示装置に表示する。例えば、図１１（ａ）に示すような、中間層におけるそれぞれのニューロンの発火頻度のヒストグラムを表示する。図１１（ａ）において横軸は中間層におけるそれぞれのニューロンのＩＤ（図１１（ａ）ではＩＤ＝Ａ〜Ｉ）、縦軸は発火頻度を示している。この画面を見たユーザは、どのニューロンが特定の特徴に反応しているのかを、発火頻度でもって把握することができる。然るにユーザは入力装置１０５を用いて、中間層におけるニューロン群のうち、特定の特徴に対してのみ発火頻度の高いニューロンのＩＤを入力すればよい。その場合、パラメタ更新部３０８は、この入力されたＩＤに対応するニューロンを注目ニューロンとして取り扱うことになる。
【００７１】
また、学習の過程で、図１１（ｂ）に示すような画面を不図示の表示装置に表示させても良い。１１０１ａ〜１１０１ｉは、９個のニューロン（ＩＤ＝Ａ〜Ｉ）のそれぞれに対応する円形のアイコンであり、中間層に属するそれぞれのニューロンの出力を計算するたびに、アイコン１１０１ａ〜１１０１ｉのそれぞれの表示形態を制御する。例えば、中間層に属するそれぞれのニューロンのうち発火したニューロン（規定値以上の値を出力したニューロン）に対応するアイコンを、発火していないニューロンに対応するアイコンとは異なる表示形態（色、サイズ、表示パターンなど）で表示する。例えば、アイコン１１０１ｂに対応するニューロンが発火した（規定値以上の値を出力した）場合には、アイコン１１０１ｂの表示形態を他のアイコン１１０１ａ、１１０１ｃ〜１１０１ｉの表示形態とは異なる表示形態で表示する。この画面を見たユーザは、どのニューロンが特定の特徴に反応しているのかを、それぞれのアイコンの表示形態の変化の時系列（処理過程におけるそれぞれのニューロンの発火／非発火を表す情報）を観察することで把握することができる。然るにユーザは入力装置１０５を用いて、中間層におけるニューロン群のうち発火頻度の高いニューロンのＩＤを入力すればよい。その場合、パラメタ更新部３０８は、この入力されたＩＤに対応するニューロンを注目ニューロンとして取り扱うことになる。
【００７２】
もちろん、ユーザの操作を介さずに注目ニューロンを選択しても良く、例えば、情報処理装置側で、上記のヒストグラムにおいて特定の特徴に対して最も発火頻度が高かったニューロンのＩＤを特定し、該特定したＩＤに対応するニューロンを注目ニューロンとして指定しても構わない。
【００７３】
このように、本実施形態によれば、様々な画像でよく現れる一般的な特徴および限られた対象で現れる特定の特徴の両方を学習する階層型ニューラルネットワークを構築することが可能となる。
【００７４】
なお、本実施形態ではバッチ学習の場合を説明したが、学習はオンラインで行っても良い。オンライン学習の場合は１データセットを処理するごとに順次重みとバイアスを更新し、次々とデータセットを適用して更新する。また、学習対象は、ノイズ低減処理以外にも、音声認識など他の処理を目的とした処理であっても構わない。
【００７５】
また、本実施形態では、調整対象にバイアス値を含めていたが、バイアス値は調整対象から外しても構わない。この場合、調整対象は重み係数のみとなる。その場合におけるバイアス値の設定方法は学習内容や階層型ニューラルネットワークの構成などに応じて適宜決めればよい。
【００７６】
［第２の実施形態］
本実施形態では、注目ニューロンを設定した階層型ニューラルネットワークと、注目ニューロンを設定していない階層型ニューラルネットワークと、を組み合わせた複合階層型ニューラルネットワークにおける学習について説明する。なお、以下では、前者の階層型ニューラルネットワークを専門ＮＮ（ニューラルネットワーク）、後者の階層型ニューラルネットワークを一般ＮＮと呼称する場合がある。本実施形態では１つの専門ＮＮ及び１つの一般ＮＮから構成される複合階層型ニューラルネットワークを構築する場合について説明するが、それぞれのＮＮの数は１に限るものではない。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。
【００７７】
先ず、本実施形態に係る複合階層型ニューラルネットワークの構成例について、図７を用いて説明する。図７では一般ＮＮは４層で構成されており、１層目（入力層）と２層目とで構成されている一般ＮＮ前段と、３層目と４層目（出力層）とで構成されている一般ＮＮ後段と、に分けられる。一般ＮＮ前段の出力（一般ＮＮにおける２層目の出力）は専門ＮＮの１層目（入力層）、及び一般ＮＮ後段の１層目（一般ＮＮにおける３層目）に入力可能に構成されている。また、一般ＮＮ後段の１層目（一般ＮＮにおける３層目）には、専門ＮＮのｋ層目（出力層）の出力、及び一般ＮＮ前段の出力が入力可能に構成されている。また、図７では、専門ＮＮの１層目のニューロンｎ２１１が注目ニューロンとして設定されている。
【００７８】
本実施形態では、入力に対して出力の画素数は同じでチャンネル数が増えるデモザイクを学習する場合について説明する。然るに、一般ＮＮの１層目におけるニューロンの数は、第１の実施形態と同様に、入力される画像の画素数と同じであるが、一般ＮＮの４層目におけるニューロンの数は、該画素数にチャネル数を乗じた数となる。また、一般ＮＮの２層目におけるニューロンの数と専門ＮＮの１層目におけるニューロンの数は同じであり、専門ＮＮのｋ層目におけるニューロンの数と一般ＮＮの３層目のニューロンの数とは同じである。
【００７９】
本実施形態に係る複合階層型ニューラルネットワークにおける学習は、先ず、一般ＮＮの学習を完了させた後に専門ＮＮの学習を完了させ、最後に学習が完了したそれぞれのＮＮを用いて学習を行う。
【００８０】
一般ＮＮにおける学習では先ず、一般ＮＮの１層目にデモザイク前の画像を生徒データとして入力して２層目、３層目、４層目、の出力を求めた後、４層目の出力と、該生徒データに対応するデモザイク画像である教師データと、の差分を極小化するように一般ＮＮの重み係数及びバイアス値を調整して確定させる。
【００８１】
【数８】
2016031746.tif 000010
【００８２】
式（８）においてｄｔはデモザイク画像である教師データ、ｄｏは、一般ＮＮの４層目の出力、Ｌｏは極小化の対象となる差分である。この差分Ｌｏを評価値として用いて、該評価値を極小化するように一般ＮＮの重み係数及びバイアス値を調整する処理は第１の実施形態で説明したとおりである。ここで、一般ＮＮの重み係数及びバイアス値が確定するまでは、専門ＮＮは動作させないことに注意されたい。
【００８３】
そして一般ＮＮの重み係数及びバイアス値が確定すると、次に、専門ＮＮの学習を行う。専門ＮＮの学習では先ず、一般ＮＮの１層目にデモザイク前の画像を生徒データとして入力して一般ＮＮの１層目、２層目の出力を求める。そして、一般ＮＮの２層目の出力を専門ＮＮに対する生徒データとして専門ＮＮの１層目に入力して専門ＮＮの各層の出力を求める。そして、専門ＮＮのｋ層目の出力と一般ＮＮの２層目の出力との差分と、注目ニューロンの出力と注目ニューロン用の教師データとの差分と、の合計を極小化するように専門ＮＮの重み係数及びバイアス値を調整して確定させる。この場合の専門ＮＮにおける学習で用いる評価値Ｌｓを以下に示す。
【００８４】
【数９】
2016031746.tif 000011
【００８５】
式（９）においてｄｓｔは、一般ＮＮの２層目の出力、ｄｓｏは専門ＮＮのｋ層目の出力、を表す。この式（９）では注目ニューロンがニューロンｎ２１１である場合を想定している。
【００８６】
専門ＮＮの重み係数及びバイアス値を確定させると、次に、重み係数及びバイアス値を確定させた一般ＮＮ及び重み係数及びバイアス値を確定させた専門ＮＮを動作させて、複合階層型ニューラルネットワークの重み係数及びバイアス値を調整してデモザイクを学習させる。すなわち、一般ＮＮの１層目にデモザイク前の画像を生徒データとして入力して１層目、２層目の出力を求めると共に、一般ＮＮの２層目の出力を専門ＮＮの１層目に入力させて専門ＮＮの各層の出力を求める。そして一般ＮＮの２層目の出力及び専門ＮＮのｋ層目の出力を一般ＮＮの３層目に入力して３層目及び４層目の出力を計算し、該４層目の出力と該生徒データに対応するデモザイク画像である教師データとの差分と、注目ニューロンの出力と注目ニューロン用の教師データとの差分と、の合計を極小化するように一般ＮＮ及び専門ＮＮの重み係数及びバイアス値（一般ＮＮと専門ＮＮとの間の重み係数も含む）を調整して確定させる。この場合における評価値Ｌａｌｌを以下に示す。
【００８７】
【数１０】
2016031746.tif 000012
【００８８】
もちろん、他の対象を学習対象としても、生徒データ、教師データ、注目ニューロン用の教師データ、層の数や層内のニューロンの数等が変更されるのみで、複合階層型ニューラルネットワークの学習動作は基本的には同じである。
【００８９】
次に、以上説明した、複合階層型ニューラルネットワークの学習処理を実行する際の情報処理装置の機能構成例について、図５のブロック図を用いて説明する。図５において、図３に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。第１の実施形態と同様、パラメタ保持部５０１以外の各機能部は何れもコンピュータプログラムとして実装され、記憶装置１０３に保存されているものとする。以下では、これらの機能部を処理の主体として説明する場合もあるが、実際にはＣＰＵ１０１が該機能部に対応するコンピュータプログラムを実行することで、対応する処理が実現される。しかし、これらの機能部の全てをコンピュータプログラムで実装することに限るものではなく、一部をハードウェアで実装しても構わない。また、パラメタ保持部５０１は、記憶装置１０３や外部メモリ１０６が有するメモリ領域の一部として実装されるものとする。なお、図５に示した全ての機能部をハードウェアで構成しても構わない。
【００９０】
パラメタ保持部５０１は、一般ＮＮ及び専門ＮＮのそれぞれについて、各層間の重み係数（一般ＮＮと専門ＮＮとの間の重み係数も含む）及び各層のバイアス値の初期値や前回の学習時の値を保持する。また、パラメタ保持部５０１は、上記の学習用の式においてβ、ｐ、ｑ、等のパラメータも保持している。
【００９１】
一般前段処理部５０２は、生徒データ入力部３０１からの生徒データを一般ＮＮにおける１層目に入力し、パラメタ保持部５０１に保持されている一般ＮＮ用の重み係数及びバイアス値を用いて、一般ＮＮにおける１層目及び２層目の出力を求める。
【００９２】
処理部５０３は、一般ＮＮにおける２層目の出力を専門ＮＮの１層目に入力し、パラメタ保持部５０１に保持されている専門ＮＮの各層の重み係数及びバイアス値を用いて、専門ＮＮにおける各層の出力を求める。
【００９３】
一般後段処理部５０５は、専門ＮＮのｋ層目からの出力及び一般ＮＮにおける２層目からの出力（複合階層型ニューラルネットワークの学習時）、若しくは一般ＮＮにおける２層目からの出力（一般ＮＮのみの学習時）、を一般ＮＮにおける３層目に入力し、パラメタ保持部５０１に保持されている一般ＮＮ用の重み係数及びバイアス値を用いて、一般ＮＮにおける３層目及び４層目の出力を求める。
【００９４】
パラメタ更新部５０７は、一般ＮＮのみの学習時には、一般ＮＮにおける４層目の出力と、教師データ入力部３０６からの教師データと、の差分を極小化するように、一般ＮＮにおけるそれぞれの重み係数及びバイアス値を更新する。また、専門ＮＮのみの学習時には、専門ＮＮのｋ層目の出力と一般ＮＮの２層目の出力との差分と、注目ニューロンの出力と注目ニューロン用の教師データとの差分と、の合計を極小化するように専門ＮＮの重み係数及びバイアス値を更新する。また、複合階層型ニューラルネットワークの学習時には、一般ＮＮにおける４層目の出力と教師データ入力部３０６からの教師データとの差分と、注目ニューロンの出力と注目ニューロン用の教師データとの差分と、の合計を極小化するように、複合階層型ニューラルネットワークの重み係数及びバイアス値を更新する。そしてパラメタ更新部５０７は、学習の終了条件が満たされた場合には、この時点における重み係数及びバイアス値を記憶装置１０３や外部メモリ１０６に登録し、満たされていない場合には、重み係数及びバイアス値の更新を続ける。なお、学習の終了条件が満たされた場合には、パラメタ更新部３０８はその旨を一般前段処理部５０２や処理部５０３や一般後段処理部５０５にも通知するので、これらの機能部は処理を停止する。
【００９５】
次に、一般ＮＮ及び専門ＮＮの学習が完了した後で、複合階層型ニューラルネットワークにおけるそれぞれの重み係数及びバイアス値を調整する処理について、図６のフローチャートを用いて説明する。
【００９６】
ステップＳ６０１では、一般前段処理部５０２及び一般後段処理部５０５は、パラメタ保持部５０１に保持されている一般ＮＮ用の重み係数及びバイアス値を一般ＮＮに設定して、一般ＮＮを確定させる。また、処理部５０３は、パラメタ保持部５０１に保持されている専門ＮＮ用の重み係数及びバイアス値を専門ＮＮに設定して、専門ＮＮを確定させる。なお、専門ＮＮと一般ＮＮとの間の重み係数については、一般ＮＮ用の重み係数に含まれているものとする。なお、この時点で設定する重み係数及びバイアス値は初期値であり、予め作成された規定の値であっても良いし、乱数により決定した値であっても良い。
【００９７】
ステップＳ６０２では、生徒データ入力部３０１は、一般ＮＮの入力層に入力する入力データを生徒データとして一般前段処理部５０２に入力する。
【００９８】
ステップＳ６０３では、教師データ入力部３０６は、生徒データ入力部３０１が一般前段処理部５０２に供給した生徒データと対になっている教師データをパラメタ更新部５０７に供給する。
【００９９】
ステップＳ６０４では、教師注目ニューロン活動入力部３０７は、専門ＮＮにおいて注目ニューロンとして選択されたニューロンに対する教師データをパラメタ更新部５０７に供給する。
【０１００】
ステップＳ６０５では、一般前段処理部５０２は、一般ＮＮの１層目に生徒データ入力部３０１からの生徒データを入力して一般ＮＮを動作させて、一般ＮＮにおける１層目及び２層目の出力を求める。
【０１０１】
ステップＳ６０６では、処理部５０３は、ステップＳ６０５で求めた一般ＮＮの２層目の出力を専門ＮＮの入力層に入力して専門ＮＮを動作させて、専門ＮＮにおける各層の出力を求める。
【０１０２】
ステップＳ６０８では、一般後段処理部５０５は、一般ＮＮの３層目に、一般ＮＮにおける２層目からの出力及び専門ＮＮの出力層からの出力を入力して一般ＮＮを動作させて、一般ＮＮにおける３層目及び４層目の出力を求める。
【０１０３】
ステップＳ６０９では、パラメタ更新部５０７は、学習の終了条件を判定する。上記の通り、評価値Ｌａｌｌやその変化率が規定値以下となっている場合や、学習回数が規定回数以上となっている場合に、学習の終了条件が満たされたと判断する。
【０１０４】
この判断の結果、学習の終了条件が満たされた場合には、処理はステップＳ６１０を介してステップＳ６１２に進み、満たされていないと判断した場合には、処理はステップＳ６１０を介してステップＳ６１１に進む。
【０１０５】
ステップＳ６１１では、パラメタ更新部５０７は、一般ＮＮの出力層における出力と教師データ入力部３０６から供給された教師データとの差分（第１の差分）を求める。更にパラメタ更新部５０７は、処理部５０３が求めた専門ＮＮの注目ニューロンの出力と教師注目ニューロン活動入力部３０７から供給された教師データとの差分（第２の差分）を求める。そしてパラメタ更新部５０７は、第１の差分と第２の差分との合計を極小化するように、複合階層型ニューラルネットワークにおけるそれぞれの重み係数及びバイアス値を更新する。更新された重み係数及びバイアス値はパラメタ保持部５０１にて管理される。そして処理はステップＳ６０５に戻る。
【０１０６】
一方、ステップＳ６１２では、パラメタ更新部５０７は、この時点における重み係数及びバイアス値を学習済みの重み係数及びバイアス値として、記憶装置１０３や外部メモリ１０６に登録する。
【０１０７】
このように、本実施形態によれば、一般ＮＮで一般的な学習、つまり特定の対象に限らない学習をしながら、専門ＮＮにおいて特定の特徴を含む学習データも学習させることができる。これにより、特定の特徴に関して詳細に学習するように仕向けるので、様々なデータでよく現れる一般的な特徴と限られた対象でよく現れる特定の特徴の両方を学習する階層型ニューラルネットワークを構築することができる。
【０１０８】
なお、本実施形態では図７に示す如く、一般ＮＮは４層から構成されるものとして説明したが、層の数は４に限るものではない。また、図７では専門ＮＮの１層目におけるニューロンｎ２１１を注目ニューロンとして設定しているが、専門ＮＮにおける他のニューロンを注目ニューロンとして設定しても構わない。
【０１０９】
なお、本実施形態で説明した専門ＮＮにおける学習とは、以下のような学習動作の一例に過ぎない。すなわち、専門ＮＮとは、学習済み階層型ニューラルネットワークにおける第１の中間層からの出力を入力として受けて処理し、該処理の結果を該学習済み階層型ニューラルネットワークにおける第２の中間層に出力する階層型ニューラルネットワークのことである。このような専門ＮＮにおける学習処理では、該学習済み階層型ニューラルネットワークにおいて該第２の中間層に出力する中間層の出力と専門ＮＮにおける出力層の出力との差分と、専門ＮＮにおける注目ニューロンの出力と教師データとの差分と、の合計を極小化するように、専門ＮＮにおける階層間の結合係数を調整する。
【０１１０】
そして、このような学習処理の後、学習済み階層型ニューラルネットワークの出力層における出力と該出力層用の教師データとの差分と、専門ＮＮにおける注目ニューロンの出力と該注目ニューロン用の教師データとの差分と、の合計を極小化するように、学習済み階層型ニューラルネットワーク及び専門ＮＮにおける階層間の結合係数と、学習済み階層型ニューラルネットワークと専門ＮＮとの間の結合係数と、を調整する。
【０１１１】
［第３の実施形態］
本実施形態では、図１０に示す如く、複数個の階層型ニューラルネットワークのそれぞれに同じデータを入力させて並列に動作させ、それらの出力を統合して最終的な出力を得る複合階層型ニューラルネットワークについて説明する。この複数個の階層型ニューラルネットワークには、注目ニューロンを設定した階層型ニューラルネットワーク、即ち専門ＮＮと、注目ニューロンを設定していない階層型ニューラルネットワーク、即ち一般ＮＮと、が含まれている。図１０では説明を簡単にするために１つの一般ＮＮと１つの専門ＮＮとを有する複合階層型ニューラルネットワークを示しているが、一般ＮＮ及び専門ＮＮのそれぞれの数はこれに限るものではない。以下では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは第１に実施形態と同様であるものとする。
【０１１２】
本実施形態に係る複合階層型ニューラルネットワークにおける学習では、それぞれの階層型ニューラルネットワークで別個に学習を行い、それぞれの階層型ニューラルネットワークにおける学習が完了したあとで、複合階層型ニューラルネットワーク全体の学習を行う。なお、それぞれの階層型ニューラルネットワークのうち一般ＮＮについては従来の方法で学習を行い、専門ＮＮについては第１の実施形態で説明した学習方法でもって学習を行う。
【０１１３】
入力部１００１は、一般ＮＮ及び専門ＮＮのそれぞれに対して生徒データを入力する。統合部１００３は、一般ＮＮ及び専門ＮＮのそれぞれの出力層からの出力を、専門ＮＮにおいて注目ニューロンとして指定されているニューロンからの出力を用いて統合し、該統合の結果を、複合階層型ニューラルネットワークにおける最終的な出力として出力する。
【０１１４】
ここで、複合階層型ニューラルネットワークが複数の専門ＮＮを有する場合、それぞれの専門ＮＮには異なる情報処理機能を学習させ、且つ該専門ＮＮにおける注目ニューロンには該情報処理機能に応じた特定の特徴量を学習させる。例えば、一方の専門ＮＮにおける注目ニューロンには繊維を学習させ、他方の専門ＮＮにおける注目ニューロンには岩肌を学習させる。例えば、複合階層型ニューラルネットワークが１つの一般ＮＮと複数の専門ＮＮを有する場合、統合部１００３は、例えば、以下の式（１１）に従って、一般ＮＮ及び専門ＮＮの出力を統合する。
【０１１５】
【数１１】
2016031746.tif 000013
【０１１６】
式（１１）においてｄｇは一般ＮＮの出力層からの出力、ｒｉはｉ番目の専門ＮＮにおける注目ニューロンからの出力、ｄｉはｉ番目の専門ＮＮにおける出力層からの出力、を示している。Ｍは一般ＮＮ及び専門ＮＮの合計数である。なお、出力の統合方法は式（１１）に示した方法に限るものではなく、一般ＮＮ及び専門ＮＮにおける出力結果のばらつきや正解率に基づく信頼度に応じた統合を行っても構わない。
【０１１７】
出力部１００４は、統合部１００３から出力された最終的な出力を適当な出力先に対して出力する。
【０１１８】
次に、以上説明した、複合階層型ニューラルネットワークの学習処理を実行する際の情報処理装置の機能構成例について、図８のブロック図を用いて説明する。図８において、図３、５に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。
【０１１９】
一般処理部８０１は、パラメタ保持部５０１に保持されている一般ＮＮ用の重み係数及びバイアス値を用いて一般ＮＮを構成し、生徒データ入力部３０１から入力された生徒データを一般ＮＮの入力層に入力して該一般ＮＮを動作させることで、該一般ＮＮにおける出力層からの出力を求める。なお、複合階層型ニューラルネットワークに一般ＮＮが複数個含まれていた場合には、一般処理部８０１は、それぞれの一般ＮＮについて、該一般ＮＮにおける出力層からの出力を求める。
【０１２０】
処理部８０２は、パラメタ保持部５０１に保持されている専門ＮＮ用の重み係数及びバイアス値を用いて専門ＮＮを構築し、生徒データ入力部３０１から入力された生徒データを専門ＮＮの入力層に入力して該専門ＮＮを動作させることで、該専門ＮＮにおける各層の出力を求める。なお、複合階層型ニューラルネットワークに専門ＮＮが複数個含まれていた場合には、処理部８０２は、それぞれの専門ＮＮについて、該専門ＮＮにおける出力層からの出力を求める。
【０１２１】
統合部８０３（図１０の統合部１００３）は、一般処理部８０１からの出力（一般ＮＮの出力層からの出力）と、処理部８０２からの出力（専門ＮＮの出力層からの出力）と、を処理部８０２からの出力（注目ニューロンの出力）を用いて統合した統合出力を求める。
【０１２２】
パラメタ更新部８０５は、統合部８０３が求めた統合出力と、教師データ入力部３０６から供給された教師データと、の差分（第１の差分）を求める。更にパラメタ更新部８０５は、処理部８０２が求めた専門ＮＮにおける中間層の注目ニューロンの出力と、教師注目ニューロン活動入力部３０７から供給された教師データと、の差分（第２の差分）を求める。そしてパラメタ更新部８０５は、第１の差分と第２の差分との合計を極小化するように、一般ＮＮ及び専門ＮＮにおけるそれぞれの重み係数及びバイアス値を更新する。その際、パラメタ保持部５０１に保持されているパラメータを用いる。
【０１２３】
例えばパラメタ更新部８０５は、以下の式（１２）に示す評価値Ｌを極小化するように、一般ＮＮ及び専門ＮＮにおけるそれぞれの重み係数及びバイアス値を更新する。
【０１２４】
【数１２】
2016031746.tif 000014
【０１２５】
そしてパラメタ更新部８０５は、学習の終了条件が満たされた場合には、この時点における重み係数及びバイアス値を記憶装置１０３や外部メモリ１０６に登録し、満たされていない場合には、重み係数及びバイアス値の更新を続ける。なお、学習の終了条件が満たされた場合には、パラメタ更新部８０５はその旨を一般処理部８０１や処理部８０２にも通知するので、一般処理部８０１や処理部８０２は処理を停止する。
【０１２６】
次に、一般ＮＮ及び専門ＮＮの学習が完了した後で、複合階層型ニューラルネットワークにおけるそれぞれの重み係数及びバイアス値を調整する処理について、図９のフローチャートを用いて説明する。
【０１２７】
ステップＳ９０１では、一般処理部８０１は、パラメタ保持部５０１に保持されている一般ＮＮ用の重み係数及びバイアス値を一般ＮＮに設定して、一般ＮＮを確定させる。また、処理部８０２は、パラメタ保持部５０１に保持されている専門ＮＮ用の重み係数及びバイアス値を専門ＮＮに設定して、専門ＮＮを確定させる。なお、この時点で設定する重み係数及びバイアス値は初期値であり、予め作成された規定の値であっても良いし、乱数により決定した値であっても良い。
【０１２８】
ステップＳ９０２では、生徒データ入力部３０１は、生徒データを一般処理部８０１及び処理部８０２に入力する。
【０１２９】
ステップＳ９０３では、教師データ入力部３０６は、生徒データ入力部３０１が一般処理部８０１及び処理部８０２に供給した生徒データと対になっている教師データをパラメタ更新部８０５に供給する。
【０１３０】
ステップＳ９０４では、教師注目ニューロン活動入力部３０７は、注目ニューロンに対する教師データをパラメタ更新部８０５に供給する。
【０１３１】
ステップＳ９０５における処理と、ステップＳ９０６における処理と、は並行して実行する。すなわち、専門ＮＮと一般ＮＮとを並列に動作させる。ステップＳ９０５では、一般処理部８０１は、一般ＮＮの入力層に生徒データ入力部３０１からの生徒データを入力して該一般ＮＮを動作させて、出力層からの出力を求める。ステップＳ９０６では、一般処理部８０１は、専門ＮＮの入力層に生徒データ入力部３０１からの生徒データを入力して該専門ＮＮを動作させて各層からの出力を求める。
【０１３２】
ステップＳ９０８では、統合部８０３は、上記の式（１１）に従って、一般ＮＮからの出力と専門ＮＮからの出力とを、を注目ニューロンの出力を用いて統合した統合出力を求める。
【０１３３】
ステップＳ９０９では、パラメタ更新部８０５は、学習の終了条件を判定する。上記の通り、評価値Ｌやその変化率が規定値以下となっている場合や、学習回数が規定回数以上となっている場合に、学習の終了条件が満たされたと判断する。この判断の結果、学習の終了条件が満たされた場合には、処理はステップＳ９１０を介してステップＳ９１２に進み、満たされていないと判断した場合には、処理はステップＳ９１０を介してステップＳ９１１に進む。
【０１３４】
ステップＳ９１１では、パラメタ更新部８０５は、ステップＳ９０８で統合部８０３が求めた統合出力と、教師データ入力部３０６から供給された教師データと、の差分（第１の差分）を求める。更にパラメタ更新部８０５は、処理部８０２が求めた専門ＮＮにおける中間層の注目ニューロンの出力と、教師注目ニューロン活動入力部３０７から供給された教師データと、の差分（第２の差分）を求める。そしてパラメタ更新部８０５は、第１の差分と第２の差分との合計を極小化するように、一般ＮＮ及び専門ＮＮにおけるそれぞれの重み係数及びバイアス値を更新する。更新された重み係数及びバイアス値はパラメタ保持部５０１にて管理される。そして処理はステップＳ９０５及びステップＳ９０６に戻る。
【０１３５】
一方、ステップＳ９１２では、パラメタ更新部８０５は、この時点における重み係数及びバイアス値を学習済みの重み係数及びバイアス値として、記憶装置１０３や外部メモリ１０６に登録する。
【０１３６】
このように、本実施形態によれば、一般ＮＮによる出力と専門ＮＮによる出力とを統合して全体の出力とすることで、様々な対象で現れる一般的な特徴と限られた対象でよく現れる特定の特徴の両方を学習する階層型ニューラルネットワークを構築することができる。
【０１３７】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１３８】
３０１：生徒データ入力部  ３０３：処理部  ３０８：パラメタ更新部
【図１】
2016031746.tif 000015
【図２】
2016031746.tif 000016
【図３】
2016031746.tif 000017
【図４】
2016031746.tif 000018
【図５】
2016031746.tif 000019
【図６】
2016031746.tif 000020
【図７】
2016031746.tif 000021
【図８】
2016031746.tif 000022
【図９】
2016031746.tif 000023
【図１０】
2016031746.tif 000024
【図１１】
2016031746.tif 000025