Processing

Please wait...

Settings

Settings

Goto Application

1. WO2020196066 - NEURAL NETWORK LEARNING METHOD, NEURAL NETWORK GENERATION METHOD, LEARNED DEVICE, PORTABLE TERMINAL DEVICE, LEARNING PROCESSING DEVICE, AND COMPUTER PROGRAM

Document

明 細 書

発明の名称 ニューラルネットワークの学習方法、ニューラルネットワークの生成方法、学習済装置、携帯端末装置、学習処理装置及びコンピュータプログラム

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

発明の概要

発明が解決しようとする課題

0005   0006  

課題を解決するための手段

0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017  

発明の効果

0018  

図面の簡単な説明

0019  

発明を実施するための形態

0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142  

符号の説明

0143  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19  

図面

1   2   3   4   5   6   7   8A   8B   9   10   11   12   13   14   15   16   17   18   19   20  

明 細 書

発明の名称 : ニューラルネットワークの学習方法、ニューラルネットワークの生成方法、学習済装置、携帯端末装置、学習処理装置及びコンピュータプログラム

技術分野

[0001]
 本発明は、ニューラルネットワークの学習方法、ニューラルネットワークの生成方法、学習済装置、携帯端末装置、学習処理装置及びコンピュータプログラムに関する。

背景技術

[0002]
 ニューラルネットワークは、近年の急速に発展している機械学習(人工知能)の実体をなす基盤技術であり、ネットワークに含まれる多数のパラメータを与えられた訓練データによって調整(学習)することによって生成される。
[0003]
 特許文献1には、ニューラルネットワークの学習で中心的に用いられている誤差逆伝播法と呼ばれる近似的な最適化法が開示されている。

先行技術文献

特許文献

[0004]
特許文献1 : 特開平6-282531号公報

発明の概要

発明が解決しようとする課題

[0005]
 しかし、誤差逆伝播法は、出力層で計算された誤差をネットワーク全体に同期的に伝播させることで学習を実現するため、入力から誤差を計算するための順方向計算と、誤差をネットワークに伝播させる逆方向計算の二種類の計算を交互に繰り返す必要がある。また、誤差逆伝播法は、一方向ネットワークのみ適用が可能であり、最適性が保証されておらず、誤差関数(目的関数)を人工的に設計する必要があり、過学習を起こしやすく、学習には大量のデータを必要とし、また、学習率(学習パラメータ)の微調整なども必要となる。このように、誤差逆伝播法には、様々な課題がある。
[0006]
 本発明は斯かる事情に鑑みてなされたものであり、誤差逆伝播法を用いる必要がないニューラルネットワークの学習方法、ニューラルネットワークの生成方法、学習済装置、携帯端末装置、学習処理装置及びコンピュータプログラムを提供することを目的とする。

課題を解決するための手段

[0007]
 本発明の実施の形態に係るニューラルネットワークの学習方法は、ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を更新する処理を繰り返し、更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する。
[0008]
 本発明の実施の形態に係るニューラルネットワークの学習方法は、ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、前記中間層のニューロンの状態値を、前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する。
[0009]
 本発明の実施の形態に係るニューラルネットワークの生成方法は、ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を更新する処理を繰り返し、更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出してニューラルネットワークを生成する。
[0010]
 本発明の実施の形態に係るニューラルネットワークの生成方法は、ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、前記中間層のニューロンの状態値を、前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する。
[0011]
 本発明の実施の形態に係る学習済装置は、ニューラルネットワークを有する学習済装置であって、コンピュータに、ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を繰り返し更新し、更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する、処理を実行させて生成されてある。
[0012]
 本発明の実施の形態に係る学習済装置は、ニューラルネットワークを有する学習済装置であって、コンピュータに、ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、前記中間層のニューロンの状態値を、前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する、処理を実行させて生成されてある。
[0013]
 本発明の実施の形態に係る携帯端末装置は、前述の学習済装置を備える携帯端末装置であって、前記学習済装置は、画像データ、音声データ及び文字列データの少なくとも一方を訓練データとして用いて生成してある。
[0014]
 本発明の実施の形態に係る学習処理装置は、プロセッサを備え、ニューラルネットワークを学習させる学習処理装置であって、前記プロセッサは、ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を繰り返し更新し、更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する、処理を実行する。
[0015]
 本発明の実施の形態に係る学習処理装置は、プロセッサを備え、ニューラルネットワークを学習させる学習処理装置であって、前記プロセッサは、ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、前記中間層のニューロンの状態値を、前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する、処理を実行する。
[0016]
 本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を繰り返し更新し、更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する、処理を実行させる。
[0017]
 本発明の実施の形態に係るコンピュータプログラムは、コンピュータに、ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、前記中間層のニューロンの状態値を、前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する、処理を実行させる。

発明の効果

[0018]
 本発明によれば、誤差逆伝播法を用いる必要がなく、一種類の計算だけで学習でき、ネットワークの学習を、局所的かつ非同期な計算で実現できる。

図面の簡単な説明

[0019]
[図1] ニューラルネットワークの構成の一例を示す模式図である。
[図2] 本実施の形態のシナプスの構成の一例を示す模式図である。
[図3] ニューラルネットワークの学習方法の概要を示す模式図である。
[図4] ニューロンに入力される信号の和の一例を示す模式図である。
[図5] 後ニューロンからのバイアスの様子の一例を示す模式図である。
[図6] ギブスサンプリングの処理の一例を示す説明図である。
[図7] 前ニューロンと後ニューロンとを結合するシナプスの様子の一例を示す模式図である。
[図8A] リカレントニューラルネットワークの構成の一例を示す模式図である。
[図8B] リカレントニューラルネットワークの構成の一例を示す模式図である。
[図9] ニューラルネットワークの学習に用いられる情報処理装置の構成の一例を示すブロック図である。
[図10] ニューラルネットワークの学習の処理手順の一例を示すフローチャートである。
[図11] 本実施の形態の学習方法による第1評価結果を示す説明図である。
[図12] 本実施の形態の学習方法による第2評価結果を示す説明図である。
[図13] 本実施の形態の学習方法による第3評価結果を示す説明図である。
[図14] 第2実施形態のシナプスの構成の一例を示す模式図である。
[図15] 第2実施形態でのニューラルネットワークの学習方法の概要を示す模式図である。
[図16] 後ニューロンからのバイアスの様子の一例を示す模式図である。
[図17] 前ニューロンと後ニューロンとを結合する結合重みの様子の一例を示す模式図である。
[図18] 第2実施形態のニューラルネットワークの学習の処理手順の一例を示すフローチャートである。
[図19] 第2実施形態の学習方法による評価結果の一例を示す説明図である。
[図20] 携帯端末装置の構成の一例を示すブロック図である。

発明を実施するための形態

[0020]
(第1実施形態)
 以下、本発明をその実施の形態を示す図面に基づいて説明する。図1はニューラルネットワークの構成の一例を示す模式図である。ニューラルネットワークは、入力層、出力層及び複数の中間層から構成されている。なお、図1では、便宜上、3つ中間層を図示しているが、中間層の数は3つに限定されない。
[0021]
 入力層、出力層及び中間層には、ニューロン(図中丸で示す)が存在し、隣り合うニューロンは、結合重みで結合されている。図1に示すように、i番目のニューロンをx i で表し、j番目のニューロンをx j で表す。i、jはニューロン番号のインデックスである。ニューロンx iからニューロンx j への結合重みをw ijと表し、ニューロンx jからニューロンx i への結合重みをw jiと表す。ここで、w ijとw jiとは同じ値でもよく、異なる値でもよい。一般的には、w ijとw jiとは異なる値でよい。
[0022]
 本実施の形態では、ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とする。二値は、例えば、「1」、「0」とすることができ、確率変数は、活性化関数によって変換された値の確率に従って決定される二値を取り得る変数とすることができる。例えば、各ニューロンx iは、0か1の値を取る。x i=1はニューロンが発火状態、x i=0はニューロンが非発火状態であることを表す。
[0023]
 各ニューロンは、式(1)で表される式に基づく確率で1を取る。mはニューロン番号のインデックスである。Σは、例えば、m=1からMまでの和を表す。Mは、ニューロンx iに対して入力信号を与えるニューロンの数である。σはニューロンの活性化関数であり、式(2)で表す、シグモイド関数とすることができる。
[0024]
[数1]


[0025]
 図2は本実施の形態のシナプスの構成の一例を示す模式図である。図2に示すように、本実施の形態では、ニューラルネットワーク内のニューロン間の結合重みを、所要の結合係数がそれぞれ乗算された複数のシナプスに分解する。例えば、図2に示すように、ニューロンx i からニューロンx j への結合重みw ijとし、シナプスをs ijkとすると、結合重みw ijは、式(3)で表すことができる。
[0026]
[数2]


[0027]
 ここで、a ijkは所要の結合係数であり、学習によって変化しない比較的小さな定数とすることができる。Σは、例えば、k=1からKまでの和を表す。
[0028]
 同様に、ニューロンx j からニューロンx i への結合重みw jiとし、シナプスをs jikとすると、w ji=Σs jik・a jikと表すことができる。ここで、a jikは所要の結合係数であり、学習によって変化しない比較的小さな定数とすることができる。Σは、例えば、k=1からKまでの和を表す。
[0029]
 また、本実施の形態では、ニューラルネットワーク内の各シナプスを、二値を取り得る確率変数とする。二値は、例えば、「1」、「0」とすることができ、確率変数は、活性化関数によって変換された値の確率に従って決定される二値を取り得る変数とすることができる。例えば、シナプスs ijkは、0か1の値を取る。s ijk=1は結合状態、s ijk=0は非結合状態を表す。図2では、二値を取り得ることを黒丸と白丸で模式的に表している。
[0030]
 ニューラルネットワークの学習方法は、入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与える。そして、入力層及び出力層それぞれのニューロンの確率変数が訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を更新する処理を繰り返す。
[0031]
 図3はニューラルネットワークの学習方法の概要を示す模式図である。図3に示すように、入力層のニューロンは、データのインデックスdの訓練データに対応するニューロンの状態x d inに固定する。出力層のニューロンは、データのインデックスdの訓練データに対応するニューロンの状態x d out に固定する。中間層の全てのニューロンの状態を{x di}と表す。また、中間層の全てのシナプスの状態を{s ijk }と表す。マルコフ連鎖モンテカルロ法に基づくサンプリングは、式(4)で表すように、入力層のニューロンの状態x d in及び出力層のニューロンの状態x d out が与えられた条件下で、条件付き確率分布Pから、中間層の全てのニューロンの状態{x di}と、中間層の全てのシナプスの状態{s ijk }とをサンプリングして更新する処理を繰り返す。
[0032]
[数3]


[0033]
 すなわち、ニューロンのスパイク発火活動と、シナプスが変化する様子(シナプス可塑性)の両方を統一的に扱い、訓練データ(学習用の入力データと教師データ)が与えられた条件下での、条件付き確率分布からのサンプリングを繰り返すことにより、中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を更新する。この場合、入力層のニューロンの状態値及び出力層のニューロンの状態値は、訓練データの値に固定する。
[0034]
 マルコフ連鎖モンテカルロ法には、例えば、ギブスサンプリング法、メトロポリス・ヘイスティング法などが含まれる。これらのサンプリング手法では、サンプリングを繰り返すことにより、サンプリングした値が、初期値(例えば、中間層のニューロンに与えた初期データ)に依存せず、真の分布からサンプリングした値に収束するという性質を有している。
[0035]
 すなわち、後述の所要の更新則を用いることによって、入力層のニューロン及び出力層のニューロンを訓練データに固定した条件下での、条件付き確率分布からのサンプリングが可能となり、中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの値を得ることができる。また、サンプリングの順序は問わず、特定の順番でもよく、ランダムに行ってもよい。
[0036]
 中間層の各ニューロンは、当該ニューロンと繋がる前ニューロン(入力側のニューロン)及び後ニューロン(出力側のニューロン)からの影響を考慮すればよく、また、各シナプスも、当該シナプスが結合する前ニューロン及び後ニューロンからの影響を考慮すればよいので、ネットワークの大域的な状態を考慮する必要がなく、局所的かつ非同期に計算を行うことができる。
[0037]
 更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する。結合重みの計算は式(3)、すなわち、w ij=Σs ijk・a ijkという式から求めることができる。a ijkは比較的小さい定数とすることができ、定数の数の和Kを適当な値に設定できる。各シナプスs ijkの値を、1か0にするだけで結合重みw ijの値を適当な値にすることができる。
[0038]
 上述のように、誤差逆伝播法を用いる必要がなく、一種類の計算だけで学習でき、ネットワークの学習を、局所的かつ非同期な計算で実現でき、多様なネットワークにも適用することができる。また、誤差関数の設計が不要であり、学習率が不要であり、十分なデータ数がある場合には、最適性が保証される。
[0039]
 次に、ニューロンの更新則及びシナプスの更新則について説明する。また、以下では、ギブスサンプリング法を用いて説明する。まず、ニューロンの更新則について説明する。
[0040]
 中間層のニューロンの状態値を、当該ニューロンに入力される信号値の和と、当該ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新する。より具体的には、中間層のニューロンの状態値を、活性化関数によって変換した値の確率で1に更新する。活性化関数によって変換される値は、0から1までの値を取り得る。変換された値が、例えば、0.8である場合、中間層のニューロンの状態値を0.8の確率で1に更新し、残りの確率0.2(=1-0.8)で0に更新する。
[0041]
 中間層の各ニューロンは、式(5)で表す式に基づいて更新することができる。
[0042]
[数4]


[0043]
 σは活性化関数(例えば、シグモイド関数)である。dはデータのインデックスであり、中間層の全てのニューロンを1回更新する際に用いられるミニバッチのインデックスでもある。
[0044]
 図4はニューロンに入力される信号の和の一例を示す模式図である。図4に示すように、ニューロンx diに入力される信号値の和v diは、v di =(Σx dm ・w mi)という式で表され(便宜上、Σの下のmは省略する)、Σは、例えば、m=1からMまでの和を表す。Mは、ニューロンx diの入力側で繋がっているニューロン(前ニューロン)の数である。
[0045]
 式(5)において、b di は、後ニューロンから当該ニューロンx diへの発火確率のバイアスを与えることができる。すなわち、逆行性のバイアス項b di の存在によって、出力層のニューロンに与えられた訓練データの情報を、ネットワークの中間層に波及させることが可能となる。この意味で、バイアス項b di は、誤差逆伝播法の誤差伝播のサンプリングに基づく確率的な表現とみなすことができる。これにより、誤差逆伝播を用いなくても、出力層のニューロンに与えられた訓練データの情報に基づく学習が可能となる。
[0046]
 次に、バイアス項b di について説明する。
[0047]
 後ニューロンからのバイアス値を、後ニューロンの状態値と後ニューロンの期待値との差に基づいて算出する。バイアス値b di は、式(6)で算出することができる。式(6)において、x djは後ニューロンx j の状態値を表し、σ(v dj)は、後ニューロンx j に入力される信号の和によって得られる後ニューロンの状態の期待値(予測値)を表す。
[0048]
 図5は後ニューロンからのバイアスの様子の一例を示す模式図である。図5に示すように、当該ニューロンx diの後ニューロンをx djと表す。jは、例えば、j=1~Jとすることができる。Jは後ニューロンの数である。
[0049]
 式(6)が意味するところは、後ニューロンの状態が期待値よりも大きい場合には、バイアス値b di が正になることにより、P(x di=1)=σ(v di+b di )という式の(v di+b di )が大きくなり、当該ニューロンx i を発火しやすくする効果がある。また、後ニューロンの状態が期待値よりも小さい場合には、バイアス値b di が負になることにより、P(x di=1)=σ(v di+b di )という式の(v di+b di )が小さくなり、当該ニューロンx i を発火しにくくする効果がある。
[0050]
 このように、式(6)は、逆行性の誤差伝播とみなすことができ、従来の誤差逆伝播法とは異なり、この逆行性の誤差伝播はネットワーク全体の協調的動作を必要とせずに実現することができる。
[0051]
 ギブスサンプリング法では、中間層の各ニューロンの所要の更新則として、式(5)及び式(6)に基づいてサンプリングを行う。
[0052]
 図6はギブスサンプリングの処理の一例を示す説明図である。なお、図6では、便宜上確率変数をx 1 、…、x N として説明する。まず、ステップS1では、初期値x (0) ={x 1 (0)、x 2 (0)、…、x N (0)}を決定する。ステップS2では、t=0とする。ステップS3では、x 2 (0)、…、x N (0)が与えられた条件下で、x 1 (1)をサンプリングする。ここで、x 1 (1)の値が得られる。ステップS4では、ステップS3で得られたx 1 (1)の値を用いて、x 1 (1)、x 3 (0)、…、x N (0) が与えられた条件下で、x 2 (1)をサンプリングする。以下、同様にして、x N (1)をサンプリングする。これにより、x 1 (1)、x 2 (1)、…、x N (1)を得ることができる。ステップS6で、t=t+1とし、ステップS7でステップS3以降の処理を繰り返す。
[0053]
 ギブスサンプリングは、真の分布(今は真の事後分布)からのサンプリングを変数ごとのサンプリングの繰り返しで実現する手法であり、十分な繰り返し回数の後は、真の分布からのサンプリングが実現できることが保証されている。事後分布からサンプリングされた値は、データ数が多い場合には、最適解(教師データの対数尤度が最大)に一致することが保証される。
[0054]
 次に、シナプスの更新則について説明する。
[0055]
 前ニューロンと後ニューロンとを結合する複数のシナプスの状態値を、前ニューロンの状態値及び後ニューロンの状態値に基づく値に更新する。
[0056]
 前ニューロンと後ニューロンとを結合する複数のシナプスs ijk は、式(7)に基づいて更新することができる。
[0057]
[数5]


[0058]
 式(7)において、σは活性化関数(例えば、シグモイド関数)である。q 0,ijkは、初期値であり、例えば、0としてもよい。q ijk は前ニューロンの状態及び後ニューロンの状態に依存するバイアス項である。前ニューロンの状態が非発火(x di=0)であれば、シナプスを考慮する必要がない。また、前ニューロンの状態が発火(x di=1)であれば、後ニューロンの状態に応じたバイアスによって複数のシナプスの状態を更新できる。
[0059]
 次に、バイアス項q ijk について説明する。
[0060]
 より具体的には、前ニューロンと後ニューロンとを結合する複数のシナプスの状態値は、前ニューロンの状態値に、後ニューロンの状態値と後ニューロンの期待値との差を乗算した値を活性化関数によって変換した値に基づいて更新することができる。すなわち、シナプスの状態値を、活性化関数によって変換した値の確率で1に更新し、残りの確率で0に更新する。変換された値が、例えば、0.8である場合、シナプスの状態値を0.8の確率で1に更新し、残りの確率0.2(=1-0.8)で0に更新する。
[0061]
 バイアス項q ijk は、式(8)で更新することができる。式(8)において、Σはデータのインデックスdについての和である。すなわち、中間層の全てのニューロンを1回更新する際に用いられるミニバッチのインデックスdそれぞれについての和であり、Σによる和の計算は、中間層の各ニューロンの更新が、データ毎に行われるのに対し、ニューラルネットワーク内のシナプスの更新は、全てのデータについての和となる。σは活性化関数(例えば、シグモイド関数)である。
[0062]
 図7は前ニューロンと後ニューロンとを結合するシナプスの様子の一例を示す模式図である。x diは前ニューロンの状態値を表す。x djは後ニューロンの状態値を表す。σ(v dj)は、後ニューロンx j に入力される信号の和によって得られる後ニューロンの状態の期待値を表す。
[0063]
 前ニューロンが発火しなければx di=0であり、バイアス項q ijk は0となる。前ニューロンが発火したとき(x di=1)、後ニューロンx djが発火すれば(x dj=1)、バイアス項q ijk に正の寄与を与え、シナプスを増強し(結果として、結合重みw ijを大きくする)、後ニューロンx djが発火しなければ(x dj=0)、バイアス項q ijk に負の寄与を与え、シナプスを抑制する(結果として、結合重みw ijを小さくする)ことができる。
[0064]
 ニューラルネットワーク内の各シナプスそれぞれの状態値は、中間層の各ニューロンそれぞれの更新された状態値を用いて更新することができる。すなわち、インデックスd毎のデータを用いて、中間層の全てのニューロンをデータ毎に1回更新する。そして、すべてのインデックスdのデータについて更新した全てのニューロンの値を用いてニューラルネットワーク内の各シナプスそれぞれの状態値を求める。これにより、データ毎(例えば、ミニバッチのデータ)に中間層の全てのニューロンの状態が決定され、全てのインデックスのデータについて決定された全てのニューロンの状態に基づいてニューラルネットワーク内の各シナプスの状態を求めることができる。
[0065]
 別言すれば、脳内では、シナプスもニューロンと同様に確率的に振る舞うことが知られており、シナプスの確率的動作は、ニューロンの動作に比べて遅いスケールで実現する。上述の構成は、シナプスの更新が、ニューロンの更新に対して遅い時間スケールで動作することを意味しており、ニューロンとシナプスとが、それぞれ異なった時間スケールの確率的更新則に従うことが導かれる。
[0066]
 本実施の形態は、リカレントニューラルネットワークのような多様なニューラルネットワークにも適用することができる。
[0067]
 図8A及び図8Bはリカレントニューラルネットワークの構成の一例を示す模式図である。便宜上、図8Aに示すような、入力層、1つの中間層及び出力層で構成されるリカレントニューラルネットワークを考える。x 0 、x 1 、x 2 は、入力層、中間層、出力層のニューロンとする。
[0068]
 図8Bは、図8Aに示す中間層のループ構造を展開させたものであり、図1に示すような、一般的なニューラルネットワークの構成にすることができ、前述の更新則を用いて中間層の全てのニューロン及びニューラルネットワークの各シナプスを更新することができる。なお、図8Bのように展開しなくてもよい。
[0069]
 図9はニューラルネットワークの学習に用いられる情報処理装置50の構成の一例を示すブロック図である。学習処理装置としての情報処理装置50は、プロセッサ51、操作部52、インタフェース部53、表示パネル54、ROM55、メモリ56(例えば、RAM)、記憶部57及び記録媒体読取部58を備える。記憶部57には、ニューラルネットワークの学習を行うコンピュータプログラムやデータなどが含まれる学習処理部571、学習モデル572が記憶される。なお、学習モデル572は、ニューラルネットワークを有し、学習前、学習途中、あるいは学習済の学習モデル(学習済装置)とすることができる。なお、情報処理装置50は、1台の装置で構成してもよく、あるいは複数台の装置で構成してもよい。この場合、情報処理装置50の各部を複数台の装置で分散させて構成することができ、例えば、学習処理部571及び学習モデル572の少なくとも一方を、情報処理装置50と異なる別の装置に備えることができる。また、学習処理部571及び学習モデル572それぞれを、情報処理装置50と異なる別の装置それぞれに備えるようにしてもよい。
[0070]
 プロセッサ51及び学習処理部571は、例えば、CPU(例えば、1個のプロセッサ又は複数のプロセッサコアを実装したマルチ・プロセッサなど)、GPU(Graphics Processing Units)、DSP(Digital Signal Processors)、FPGA(Field-Programmable Gate Arrays)などのハードウェアを組み合わせることによって構成することができる。
[0071]
 表示パネル54は、液晶パネル又は有機EL(Electro Luminescence)ディスプレイ等で構成することができる。
[0072]
 操作部52は、例えば、ハードウェアキーボード、マウスなどで構成され、表示パネル24に表示されたアイコンなどの操作、文字等の入力などを行うことができる。なお、操作部52は、タッチパネルで構成してもよい。
[0073]
 インタフェース部53は、ニューラルネットワークの学習に必要な訓練データ、テストデータなどを外部の装置等から取得することができる。また、インタフェース部53は、ニューラルネットワークの学習の過程で得られたデータなどを出力することができる。
[0074]
 記憶部57は、ハードディスク又はフラッシュメモリなどで構成することができる。記憶部57に記憶された学習処理部571、学習モデル572をメモリ56に読み込んでプロセッサ51によって処理することにより、ニューラルネットワークの学習を行うことができる。
[0075]
 記録媒体読取部58は、コンピュータプログラムを記録した記録媒体M(例えば、DVDなどのメディア)からコンピュータプログラム(例えば、図10及び図18に示す処理手順など)を読み取ることが可能である。なお、図示していないが、記録媒体Mに記録されたコンピュータプログラムは、持ち運びが自由なメディアに記録されたものに限定されるものではなく、インターネット又は他の通信回線を通じて伝送されるコンピュータプログラムも含めることができる。
[0076]
 学習処理部571(プロセッサ51を含めてもよい)は、ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とする処理と、ニューラルネットワーク内のニューロン間の結合重みを、所要の結合係数がそれぞれ乗算された複数のシナプスで表現した当該複数のシナプスを、二値を取り得る確率変数とする処理と、入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与える処理と、入力層及び出力層それぞれのニューロンの確率変数が当該訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を繰り返し更新する処理と、更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する処理とを実行することができる。
[0077]
 図10はニューラルネットワークの学習の処理手順の一例を示すフローチャートである。以下では、便宜上、処理の主体をプロセッサ51として説明する。プロセッサ51は、訓練データを入力層及び出力層のニューロンに代入し(S11)、ニューラルネットワーク内のシナプス及び中間層のニューロンに初期値を代入する(S12)。
[0078]
 プロセッサ51は、中間層のニューロンを選んでバイアス値b diを式(6)に基づいて更新し(S13)、ニューロンx diを式(5)に基づいて更新する(S14)。プロセッサ51は、中間層の全てのニューロンの更新を終了したか否かを判定し(S15)、全てのニューロンの更新を終了していない場合(S15でNO)、ステップS13以降の処理を繰り返す。
[0079]
 全てのニューロンの更新を終了した場合(S15でYES)、すなわち、1つのインデックスのデータを用いて更新が終了した場合、プロセッサ51は、訓練データがあるか否かを判定する(S16)。ステップS16では、更新に用いられていない他のインデックスのデータがあるか否かを判定する。
[0080]
 訓練データがある場合(S16でYES)、プロセッサ51は、次のセット(すなわち、次のインデックス)の訓練データを取得し(S17)、ステップS11以降の処理を繰り返す。訓練データがない場合(S16でNO)、プロセッサ51は、ニューラルネットワーク内のシナプスを選んでバイアス値q ijk を式(8)に基づいて更新し(S18)、シナプスs ijk を式(7)に基づいて更新する(S19)。
[0081]
 プロセッサ51は、ニューラルネットワーク内の全てのシナプスの更新を終了したか否かを判定し(S20)、全てのシナプスの更新を終了していない場合(S20でNO)、ステップS18以降の処理を繰り返す。全てのシナプスの更新を終了した場合(S20でYES)、プロセッサ51は、更新したシナプスの値に基づいて結合重みw ijを算出する(S21)。
[0082]
 プロセッサ51は、処理を繰り返すか否かを判定する(S22)。処理を繰り返すか否かは、例えば、ステップS21で算出した結合重みの性能を評価し、必要な性能が得られているか否かに基づいて判定してもよく、あるいは、予め定められた回数の処理が終了したか否かに基づいて判定してもよい。処理を繰り返す場合(S22でYES)、プロセッサ51は、ステップS11以降の処理を繰り返し、処理を繰り返さない場合(S22でNO)、処理を終了する。
[0083]
 上述の実施の形態において、式(6)及び式(8)で示す更新則は、それぞれ式(9)及び式(10)を用いることにより、より正確に更新することができる。ここで、f dj(x)は、式(11)で表すことができ、v dj,-iは式(12)で表すことができ、v dj,-ikは式(13)で表すことができる。ここでは、i番目のニューロンの状態をサンプリングで求める場合、i番目のニューロンの寄与を除くようにし、またq ijk の状態をサンプリングする場合、q ijk の寄与を除くようにしているので、ギブスサンプリングをより正確に適用することができる。
[0084]
[数6]


[0085]
 また、上述の実施の形態において、式(6)及び式(8)で示す更新則に代えて、それぞれ式(14)及び式(15)を用いることもできる。ここでは、b diの更新において、現在のb diの値を反映し、q ijk の更新において、現在のq ijk の値を反映している。
[0086]
 同様に、上述の実施の形態において、式(5)及び式(7)で示す更新則に代えて、それぞれ式(16)及び式(17)を用いることもできる。ここでは、x diの更新において、現在のx diの値を反映し、s ijkの更新において、現在のs ijkの値を反映している。式(14)~式(17)は、メトロポリス・ヘイスティング法によるサンプリングを行うことに対応する。
[0087]
 式(16)及び式(17)において、r x 、r sは、例えば、0より大きく1より小さい値とすることができる。式(16)及び式(17)は、確率r x 、r sで各ニューロン及び各シナプスのサンプリングを行うが、(1-r x)、(1-r s)の確率でサンプリングを行わず現在の値を維持するように現状維持のバイアスをかけることを意味している。なお、この現状維持確率の導入は、メトロポリス・ヘイスティング法での提案分布の変更として導くこともできる。
[0088]
 また、式(14)~式(17)を用いることにより、GPUなどの同期的な並列計算機を用いる場合に、同期更新してもネットワーク内の一部のニューロンとシナプスだけが更新されるようにすることができる。すなわち、一部のニューロンとシナプスだけが更新されるので、非同期更新の実現に無駄に時間がかかることを防止して、並列計算機による計算を効率的に行うことができる。
[0089]
 本実施の形態の学習方法に必要な計算量のオーダは、結合重みの数をW、データ数をD、結合あたりのシナプス数をKとして、データ数が多い場合はO(W(D+K))=O(WD)となり、誤差逆伝播法と同様である。
[0090]
 本実施の形態の学習方法によって生成された学習済装置は、例えば、携帯端末装置などに組み込むことができる。この場合、学習済装置は、画像データ、音声データ及び文字列データの少なくとも一方を訓練データとして用いて生成しておくことができる。これにより、携帯端末装置は、画像データが入力されると、所要の対象物を検出するような画像認識、画像分類などの処理を行うことができる。携帯端末装置は、音声データが入力されると、音声認識などの処理を行うことができる。また、携帯端末装置は、文字列データが入力されると、自然言語処理などを行うことができる。
[0091]
 次に、本実施の形態の学習方法の有効性について説明する。
[0092]
 図11は本実施の形態の学習方法による第1評価結果を示す説明図である。図11は、機械学習でよく用いられる代表的な手書き文字認識データセット(MNIST)を用いた評価結果を示す。ニューラルネットワークは、入力層、2つの中間層及び出力層であり、入力層のニューロンは784個、出力層のニューロンは10個、中間層の各層のニューロンは500個とした。1回のサンプリングで6万のデータを使用している。1エポックは、学習において訓練データを全て使い切ったときの回数に相当する。図11に示すように、訓練データに基づく推定精度と、テストデータに基づく推定精度とは同じように推移していることが分かる。
[0093]
 図12は本実施の形態の学習方法による第2評価結果を示す説明図である。図12では、一方向結合ではないリカレントニューラルネットワークの場合を示し、入力層のニューロンは80個、出力層のニューロンは3個、中間層のニューロンは200個とした。入力の画素(i=0~80)に対して、出力値(i=0~3)を出力するネットワークである。図12に示すように、訓練データに基づく推定精度と、テストデータに基づく推定精度とは同じように推移していることが分かる。
[0094]
 図13は本実施の形態の学習方法による第3評価結果を示す説明図である。図13では、リカレントニューラルネットワークの場合を示し、入力層のニューロンは20個、出力層のニューロンは20個、中間層のニューロンは40個とした。リカレントニューラルネットワークを用いた時系列予測の学習(次時刻の入力を出力とする学習)を行った結果を示す。図13に示すように、時刻t1の入力に基づいて、時刻t2の入力が出力されるように学習し、時刻t2の入力に基づいて、時刻t3の入力が出力されるように学習させた。以降、他の時刻も同様である。図13に示すように、テストデータに基づく推定精度は高い値で推移している。なお、時刻t3と時刻t5とでは、入力データが同じであるにも関わらず、過去の入力データ(時刻t3に対して時刻t2、時刻t5に対して時刻t4)に依存する結果、推定精度が若干低下している。
[0095]
(第2実施形態)
 前述の第1実施形態では、ニューロンの状態値とシナプスの状態値を二値変数(確率変数)としたが、これに限定されるものではない。第2実施形態では、ニューロンの状態値及びシナプスの状態値を連続変数(例えば、0から1までの値を取り得る連続値)とする場合について説明する。なお、情報処理装置50の構成は、第1実施形態の場合と同様であるので、説明は省略する。
[0096]
 図14は第2実施形態のシナプスの構成の一例を示す模式図である。図14では、便宜上、シナプスの数を6として説明する。シナプスの状態値を連続値とすることにより、式(7)は、式(18)に置き換えることができる。σは活性化関数(例えば、シグモイド関数)である。q ijk は前ニューロンの状態及び後ニューロンの状態に依存するバイアス項である。なお、初期値q 0,ijkは、0としている。
[0097]
[数7]


[0098]
 式(3)に式(18)を代入すると、結合重みw ijは、式(19)で表すことができる。ここで、式(20)で示すように、各結合重みw ijに対する各シナプスの寄与a jikを、+aまたは-aのいずれかとするとともに、シナプスの数K(図14の例では、K=6)のうち半分を+aとし、残りの半分を-aとする。そうすると、結合重みw ijは、式(21)で表すことができる。
[0099]
 また、シグモイド関数σについては、式(22)で表される公式が成り立つので、結合重みw ijは、式(23)で表すことができる。q ij は前ニューロンの状態及び後ニューロンの状態に依存するバイアス値である。すなわち、ニューラルネットワークのニューロン間の結合重みw ijを多数のシナプスs ijkで表す必要がなくなる。また、定数aは、単純に1でもよく、あるいは、0.1、0.5などの数値でもよい。なお、定数aとKの乗算値a・Kは、ある程度大きくする方が好ましい。
[0100]
 図15は第2実施形態でのニューラルネットワークの学習方法の概要を示す模式図である。図15に示すように、入力層のニューロンは、データのインデックスdの訓練データに対応するニューロンの状態x d inに固定する。出力層のニューロンは、データのインデックスdの訓練データに対応するニューロンの状態x d out に固定する。中間層の全てのニューロンの状態を{x di}と表す。前述のように、ニューラルネットワークのニューロン間の結合重みw ijを多数のシナプスs ijkで表す必要がないので、シナプスs ijkに代えて、ニューロン間の結合重みを{w ijk }と表す。第2実施形態では、ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、ニューラルネットワークの中間層のニューロン及びニューラルネットワークのニューロン間の結合重みに初期データを与え、中間層のニューロンの状態値を更新し、更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新することにより、ニューラルネットワークの学習を行う。以下、具体的に説明する。
[0101]
 まず、ニューロンの状態値の更新について説明する。
[0102]
 中間層のニューロンの状態値を、当該ニューロンに入力される信号値の和と、当該ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値(「関数値」ともいう)に基づいて更新する。より具体的には、中間層のニューロンの状態値を、活性化関数によって変換した値に更新する。活性化関数によって変換される値は、0から1までの値を取り得る。活性化関数によって変換される値が、例えば、0.8である場合、中間層のニューロンの状態値を0.8に更新する。
[0103]
 中間層の各ニューロンは、式(24)に基づいて更新することができる。
[0104]
[数8]


[0105]
 σは活性化関数(例えば、シグモイド関数)である。dはデータのインデックスであり、中間層の全てのニューロンを1回更新する際に用いられるミニバッチのインデックスでもある。
[0106]
 式(24)において、b di は、後ニューロンから当該ニューロンx diへの発火確率のバイアスを与えることができる。すなわち、逆行性のバイアス項b di の存在によって、出力層のニューロンに与えられた訓練データの情報を、ネットワークの中間層に波及させることが可能となる。この意味で、バイアス項b di は、誤差逆伝播法の誤差伝播のサンプリングに基づく確率的な表現とみなすことができる。これにより、誤差逆伝播を用いなくても、出力層のニューロンに与えられた訓練データの情報に基づく学習が可能となる。
[0107]
 次に、バイアス項b di について説明する。
[0108]
 後ニューロンからのバイアス値を、後ニューロンの状態値と、後ニューロンに入力される信号値の和を活性化関数によって変換した値との差に基づいて算出する。バイアス値b di は、式(25)で算出することができる。式(25)において、x djは後ニューロンx j の状態値を表し、σ(v dj)は、後ニューロンx j に入力される信号の和を活性化関数によって変換した値(関数値)を表す。
[0109]
 図16は後ニューロンからのバイアスの様子の一例を示す模式図である。図16に示すように、当該ニューロンx diの後ニューロンをx djと表す。jは、例えば、j=1~Jとすることができる。Jは後ニューロンの数である。
[0110]
 式(25)が意味するところは、後ニューロンの状態値x djが関数値σ(v dj)よりも大きい場合には、バイアス値b di が正になることにより、式(24)で表す、x di=σ(v di+b di )という式の(v di+b di )が大きくなり、当該ニューロンx i の状態値を大きくする効果がある。また、後ニューロンの状態値x djが関数値σ(v dj)よりも小さい場合には、バイアス値b di が負になることにより、x di=σ(v di+b di )という式の(v di+b di )が小さくなり、当該ニューロンx i の状態値を小さくする効果がある。
[0111]
 このように、式(25)は、逆行性の誤差伝播とみなすことができ、従来の誤差逆伝播法とは異なり、この逆行性の誤差伝播はネットワーク全体の協調的動作を必要とせずに実現することができる。
[0112]
 また、ニューロンの状態値の更新は、式(26)、式(27)を用いることもできる。
[0113]
[数9]


[0114]
 r x 、r bは、例えば、0より大きく1より小さい値とすることができる。式(27)に示すように、バイアス値b diの更新において、(1-r b)の重み付けで現在のb diの値を維持し、r bの重み付けでb diの値を更新し、両者の和を更新後のバイアス値b diとしている。また、式(26)に示すように、ニューロンx diの更新において、(1-r x)の重み付けで現在のx diの値を維持し、r xの重み付けでx diの値を更新し、両者の和を更新後のニューロンの状態値x diとしている。
[0115]
 次に、結合重みの更新について説明する。
[0116]
 結合重みは、式(28)、式(29)に基づいて更新することができる。
[0117]
[数10]


[0118]
 式(28)に示すように、前ニューロンと後ニューロンとの間の結合重みw ijは、バイアス値q ij を活性化関数によって変換した値に基づいて更新する。式(28)は、前述の式(23)と同じ式である。バイアス値q ij は前ニューロンの状態値及び後ニューロンの状態値に依存する値である。
[0119]
 そして、式(29)に示すように、バイアス値q ij は、後ニューロンの状態値x djから、後ニューロンに入力される信号値の和v djを活性化関数によって変換した値σ(v dj)を減算した減算値を、前ニューロンの状態値x diに乗算した乗算値に基づいて更新する。
[0120]
 図17は前ニューロンと後ニューロンとを結合する結合重みの様子の一例を示す模式図である。x diは前ニューロンの状態値を表す。x djは後ニューロンの状態値を表す。σ(v dj)は、後ニューロンx j に入力される信号の和を活性化関数によって変換した関数値を表す。式(29)が意味するところは、後ニューロンの状態値x djが関数値σ(v dj)よりも大きい場合には、バイアス値q ij が正になることにより、式(28)で表す、σ(a・q ij )が大きくなり、結合重みw ijを大きくする効果がある。また、後ニューロンの状態値x djが関数値σ(v dj)よりも小さい場合には、バイアス値q ij が負になることにより、式(28)で表す、σ(a・q ij )が小さくなり、結合重みw ijを小さくする効果がある。
[0121]
 このように、式(29)は、逆行性の誤差伝播とみなすことができ、従来の誤差逆伝播法とは異なり、この逆行性の誤差伝播はネットワーク全体の協調的動作を必要とせずに実現することができる。
[0122]
 また、結合重みの更新は、式(30)、式(31)を用いることもできる。
[0123]
[数11]


[0124]
 r w 、r qは、例えば、0より大きく1より小さい値とすることができる。式(31)に示すように、バイアス値q ijの更新において、(1-r q)の重み付けで現在のq ijの値を維持し、r q の重み付けでq ijの値を更新し、両者の和を更新後のバイアス値q ijとしている。また、式(30)に示すように、結合重みw ijの更新において、(1-r w)の重み付けで現在のw ijの値を維持し、r wの重み付けでw ijの値を更新し、両者の和を更新後の結合重みw ijとしている。
[0125]
 図18は第2実施形態のニューラルネットワークの学習の処理手順の一例を示すフローチャートである。プロセッサ51は、訓練データを入力層及び出力層のニューロンに代入し(S31)、ニューラルネットワーク内の結合重み及び中間層のニューロンに初期値を代入する(S32)。
[0126]
 プロセッサ51は、中間層のニューロンを選んでバイアス値b diを式(25)又は式(27)に基づいて更新し(S33)、ニューロンx diを式(24)又は式(26)に基づいて更新する(S34)。プロセッサ51は、中間層の全てのニューロンの更新を終了したか否かを判定し(S35)、全てのニューロンの更新を終了していない場合(S35でNO)、ステップS33以降の処理を繰り返す。
[0127]
 全てのニューロンの更新を終了した場合(S35でYES)、すなわち、1つのインデックスのデータを用いて更新が終了した場合、プロセッサ51は、訓練データがあるか否かを判定する(S36)。ステップS36では、更新に用いられていない他のインデックスのデータがあるか否かを判定する。
[0128]
 訓練データがある場合(S36でYES)、プロセッサ51は、次のセット(すなわち、次のインデックス)の訓練データを取得し(S37)、ステップS31以降の処理を繰り返す。訓練データがない場合(S36でNO)、プロセッサ51は、ニューラルネットワーク内のニューロン間の結合を選んでバイアス値q ij を式(29)又は式(31)に基づいて更新し(S38)、結合重みw ij を式(28)又は式(30)に基づいて更新する(S39)。
[0129]
 プロセッサ51は、ニューラルネットワーク内の全ての結合重みの更新を終了したか否かを判定し(S40)、全ての結合重みの更新を終了していない場合(S40でNO)、ステップS38以降の処理を繰り返す。全ての結合重みの更新を終了した場合(S40でYES)、プロセッサ51は、処理を繰り返すか否かを判定する(S41)。
[0130]
 処理を繰り返すか否かは、更新した結合重みの性能を評価し、必要な性能が得られているか否かに基づいて判定してもよく、あるいは、予め定められた回数の処理が終了したか否かに基づいて判定してもよい。処理を繰り返す場合(S41でYES)、プロセッサ51は、ステップS31以降の処理を繰り返し、処理を繰り返さない場合(S41でNO)、処理を終了する。
[0131]
 図19は第2実施形態の学習方法による評価結果の一例を示す説明図である。図19は、図11の場合と同様に、機械学習でよく用いられる代表的な手書き文字認識データセット(MNIST)を用いた評価結果を示す。第1実施形態の場合、訓練データの認識精度は約95%、テストデータの認識精度は約94%であるのに対し、第2実施形態の場合、訓練データの認識精度は約99%、テストデータの認識精度は約97%である。このように、第2実施形態の場合の方が、学習精度が向上する傾向が見られる。これは、二値に代えて連続値を用いるので、ニューロンの状態値及び結合重みが取り得る値が一層細かくなったためと考えられる。また、第1実施形態の場合と比べて、ニューラルネットワーク内のニューロン間の結合を多数のシナプスで表す必要がないので、学習の際に必要となる変数の数を大幅に削減することができ、それに伴ってGPU等による計算時間も削減でき、計算機上での実装が容易になる。
[0132]
 図20は携帯端末装置100の構成の一例を示すブロック図である。携帯端末装置100は、通信ネットワークを介して、学習処理装置としてのサーバ200に接続することができる。携帯端末装置100は、装置全体を制御するプロセッサ101、カメラ部102、マイク103、スピーカ104、表示パネル105、操作部106、通信部107、ROM108、メモリ109及び記憶部110を備える。記憶部110には、ニューラルネットワークの学習を行うコンピュータプログラムやデータなどが含まれる学習処理部111、学習モデル112が記憶される。学習処理部111、学習モデル112は、図9の例と同様の構成を有する。
[0133]
 カメラ部102は、画像(動画を含む)を撮像することができる。マイク103は、音声データを取得することができる。スピーカは、音声を出力することができる。
[0134]
 通信部107は、通信ネットワーク1を介して、サーバ200の通信部202との間の通信機能を有する。なお、通信部107は、他の装置(不図示)との間で情報の送受信を行うことができる。表示パネル105、操作部106、ROM108、メモリ109及び記憶部110は、図9の例と同様であるので説明は省略する。
[0135]
 学習済装置としての学習モデル112は、ニューラルネットワークを有し、本実施の形態のニューラルネットワークの学習方法によって学習済であり、あるいは本実施の形態のニューラルネットワークの生成方法によって生成されている。なお、学習モデル112は、学習処理部111によって、再学習することもできる。学習モデル112を再学習させない場合には、学習処理部111を具備しなくてもよい。
[0136]
 学習モデル112は、画像データ、音声データ及び文字列データの少なくとも一方を訓練データとして用いて生成又は学習してある。なお、学習モデル112の学習は、教師ラベルのない教師なし学習でもよく、教師ラベルのある教師あり学習でもよい。
[0137]
 画像データを訓練データとして用いて学習モデル112を生成又は学習してあることにより、携帯端末装置100は、例えば、カメラ部102で撮像した画像に写っている人や物体を認識することができる。また認識結果をスピーカ104から音声で出力することができる。
[0138]
 音声データを訓練データとして用いて学習モデル112を生成又は学習してあることにより、携帯端末装置100は、例えば、マイク103で取得した話相手の音声に基づいて、その内容を理解し、スピーカ104から音声で出力して話相手とコミュニケーションをとることができる。
[0139]
 文字列データを訓練データとして用いて学習モデル112を生成又は学習してあることにより、携帯端末装置100は、例えば、カメラ部102で撮像した画像に写っている文字情報や、通信部107を介して取得した文字情報などの内容を理解し、文字情報の要約や文字情報に対する応答内容などを表示パネル105に表示し、あるいはスピーカ104から音声で出力することができる。
[0140]
 サーバ200は、学習処理装置としての機能を有する。サーバ200は、プロセッサ201、通信部202、ROM203、メモリ204及び記憶部205を備える。記憶部205には、学習処理部206、学習モデル207が記憶されている。ROM203、メモリ204、記憶部205、学習処理部206、学習モデル207は、図9の例と同様である。サーバ200は、1台で構成してもよく、あるいは複数台のサーバで構成してもよい。この場合、サーバ200の各部を複数台のサーバで分散させて構成することができ、例えば、学習処理部206及び学習モデル207の少なくとも一方を、サーバ200と異なる別のサーバに備えることができる。また、学習処理部206及び学習モデル207それぞれを、サーバ200と異なる別のサーバそれぞれに備えるようにしてもよい。
[0141]
 学習処理部206(プロセッサ201を含めてもよい)は、ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とする処理と、ニューラルネットワーク内のニューロン間の結合重みを、所要の結合係数がそれぞれ乗算された複数のシナプスで表現した当該複数のシナプスを、二値を取り得る確率変数とする処理と、入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与える処理と、入力層及び出力層それぞれのニューロンの確率変数が当該訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を繰り返し更新する処理と、更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する処理とを実行することができる。
[0142]
 携帯端末装置100は、サーバ200から学習済の学習モデル207をダウンロードして、記憶部110に記憶することもできる。この場合、携帯端末装置100は、サーバ200の学習処理部206で再学習した学習モデル207をダウンロードして、学習モデル112を更新することもできる。学習モデルをサーバ200からダウンロードする場合、携帯端末装置100は、学習処理部111を具備しなくてもよい。

符号の説明

[0143]
 50 情報処理装置
 51 プロセッサ
 52 操作部
 53 インタフェース部
 54 表示パネル
 55 ROM
 56 メモリ
 57 記憶部
 58 記録媒体読取部
 571 学習処理部
 572 学習モデル
 100 携帯端末装置
 101 プロセッサ
 102 カメラ部
 103 マイク
 104 スピーカ
 105 表示パネル
 106 操作部
 107 通信部
 108 ROM
 109 メモリ
 110 記憶部
 111 学習処理部
 112 学習モデル
 200 サーバ
 201 プロセッサ
 202 通信部
 203 ROM
 204 メモリ
 205 記憶部
 206 学習処理部
 207 学習モデル

請求の範囲

[請求項1]
 ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、
 ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、
 入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、
 入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を更新する処理を繰り返し、
 更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する、
 ニューラルネットワークの学習方法。
[請求項2]
 前記中間層のニューロンの状態値を、
 前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新する、
 請求項1に記載のニューラルネットワークの学習方法。
[請求項3]
 前記後ニューロンからのバイアス値を、
 前記後ニューロンの状態値と前記後ニューロンの期待値との差に基づいて算出する、
 請求項2に記載のニューラルネットワークの学習方法。
[請求項4]
 前ニューロンと後ニューロンとを結合する複数のシナプスの状態値を、
 前ニューロンの状態値及び後ニューロンの状態値に基づく値に更新する、
 請求項1から請求項3のいずれか一項に記載のニューラルネットワークの学習方法。
[請求項5]
 前ニューロンと後ニューロンとを結合する複数のシナプスの状態値を、
 前記前ニューロンの状態値に、前記後ニューロンの状態値と前記後ニューロンの期待値との差を乗算した値を活性化関数によって変換した値に基づいて更新する、
 請求項1から請求項4のいずれか一項に記載のニューラルネットワークの学習方法。
[請求項6]
 ニューラルネットワーク内の各シナプスそれぞれの状態値を、
 前記中間層の各ニューロンそれぞれの更新された状態値を用いて更新する、
 請求項1から請求項5のいずれか一項に記載のニューラルネットワークの学習方法。
[請求項7]
 ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、
 前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、
 前記中間層のニューロンの状態値を、
 前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、
 更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する、
 ニューラルネットワークの学習方法。
[請求項8]
 前記後ニューロンからのバイアス値を、
 前記後ニューロンの状態値と、前記後ニューロンに入力される信号値の和を活性化関数によって変換した値との差に基づいて算出する、
 請求項7に記載のニューラルネットワークの学習方法。
[請求項9]
 前ニューロンと後ニューロンとの間の結合重みを、
 前ニューロンの状態値及び後ニューロンの状態値に基づくバイアス値を活性化関数によって変換した値に基づいて更新する、
 請求項7又は請求項8に記載のニューラルネットワークの学習方法。
[請求項10]
 前記バイアス値を、
 前記後ニューロンの状態値から前記後ニューロンに入力される信号値の和を活性化関数によって変換した値を減算した減算値を、前記前ニューロンの状態値に乗算した乗算値に基づいて更新する、
 請求項9に記載のニューラルネットワークの学習方法。
[請求項11]
 ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、
 ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、
 入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、
 入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を更新する処理を繰り返し、
 更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出してニューラルネットワークを生成する、
 ニューラルネットワークの生成方法。
[請求項12]
 ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、
 前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、
 前記中間層のニューロンの状態値を、
 前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、
 更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する、
 ニューラルネットワークの生成方法。
[請求項13]
 ニューラルネットワークを有する学習済装置であって、
 コンピュータに、
 ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、
 ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、
 入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、
 入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を繰り返し更新し、
 更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する、
 処理を実行させて生成されてある学習済装置。
[請求項14]
 ニューラルネットワークを有する学習済装置であって、
 コンピュータに、
 ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、
 前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、
 前記中間層のニューロンの状態値を、
 前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、
 更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する、
 処理を実行させて生成されてある学習済装置。
[請求項15]
 請求項13又は請求項14に記載の学習済装置を備える携帯端末装置であって、
 前記学習済装置は、
 画像データ、音声データ及び文字列データの少なくとも一方を訓練データとして用いて生成してある携帯端末装置。
[請求項16]
 プロセッサを備え、ニューラルネットワークを学習させる学習処理装置であって、
 前記プロセッサは、
 ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、
 ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、
 入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、
 入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を繰り返し更新し、
 更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する、
 処理を実行する学習処理装置。
[請求項17]
 プロセッサを備え、ニューラルネットワークを学習させる学習処理装置であって、
 前記プロセッサは、
 ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、
 前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、
 前記中間層のニューロンの状態値を、
 前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、
 更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する、
 処理を実行する学習処理装置。
[請求項18]
 コンピュータに、
 ニューラルネットワーク内の各ニューロンを、二値を取り得る確率変数とし、
 ニューラルネットワーク内のニューロン間の結合重みを、各シナプスに所要の結合係数が乗算された複数のシナプスで表現し、前記複数のシナプスを、二値を取り得る確率変数とし、
 入力層及び出力層それぞれのニューロンに訓練データを与え、中間層のニューロンに初期データを与え、
 入力層及び出力層それぞれのニューロンの確率変数が前記訓練データの値であるという条件の下での条件付き確率分布から、マルコフ連鎖モンテカルロ法に基づくサンプリングを行って前記中間層の各ニューロン及びニューラルネットワーク内の各シナプスそれぞれの状態値を繰り返し更新し、
 更新された各シナプスの状態値に基づいてニューロン間の結合重みを算出する、
 処理を実行させるコンピュータプログラム。
[請求項19]
 コンピュータに、
 ニューラルネットワークの入力層及び出力層それぞれのニューロンに訓練データを与え、
 前記ニューラルネットワークの中間層のニューロン及び前記ニューラルネットワークのニューロン間の結合重みに初期データを与え、
 前記中間層のニューロンの状態値を、
 前記ニューロンに入力される信号値の和と、前記ニューロンに繋がる後ニューロンからのバイアス値との和を活性化関数によって変換した値に基づいて更新し、
 更新された各ニューロンの状態値に基づいてニューロン間の結合重みを更新する、
 処理を実行させるコンピュータプログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8A]

[ 図 8B]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]

[ 図 15]

[ 図 16]

[ 図 17]

[ 図 18]

[ 図 19]

[ 図 20]