IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社デンソーアイティーラボラトリの特許一覧

<>
  • 特許-情報推定装置及び情報推定方法 図1
  • 特許-情報推定装置及び情報推定方法 図2
  • 特許-情報推定装置及び情報推定方法 図3
  • 特許-情報推定装置及び情報推定方法 図4
  • 特許-情報推定装置及び情報推定方法 図5
  • 特許-情報推定装置及び情報推定方法 図6
  • 特許-情報推定装置及び情報推定方法 図7
  • 特許-情報推定装置及び情報推定方法 図8
  • 特許-情報推定装置及び情報推定方法 図9
  • 特許-情報推定装置及び情報推定方法 図10
  • 特許-情報推定装置及び情報推定方法 図11
  • 特許-情報推定装置及び情報推定方法 図12
  • 特許-情報推定装置及び情報推定方法 図13
  • 特許-情報推定装置及び情報推定方法 図14
  • 特許-情報推定装置及び情報推定方法 図15
  • 特許-情報推定装置及び情報推定方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-27
(45)【発行日】2022-10-05
(54)【発明の名称】情報推定装置及び情報推定方法
(51)【国際特許分類】
   G06N 3/08 20060101AFI20220928BHJP
【FI】
G06N3/08
【請求項の数】 12
(21)【出願番号】P 2019051627
(22)【出願日】2019-03-19
(65)【公開番号】P2020154615
(43)【公開日】2020-09-24
【審査請求日】2021-07-06
(73)【特許権者】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(74)【代理人】
【識別番号】100093067
【弁理士】
【氏名又は名称】二瓶 正敬
(72)【発明者】
【氏名】安達 仁吾
【審査官】中村 信也
(56)【参考文献】
【文献】特開2018-106463(JP,A)
【文献】特開2018-200677(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-3/12
G06N 7/08-99/00
G06N 5/00-7/06
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを用いて推定処理を行う情報推定装置であって、
固定値のベクトルからなる学習データを用いて、データの一部を欠損させるドロップアウトを行うドロップアウト層を備えた前記ニューラルネットワークにおける重みを学習する重み学習部と、
前記ニューラルネットワークの各層で伝搬するデータを平均値、分散値及び共分散値を含む分布パラメータで定義される多変量ガウス分布を持つ確率変数として、入力データに対して前記ニューラルネットワークで前記ドロップアウトを与えて伝搬計算を行う伝搬計算部と、
前記ニューラルネットワークからの出力データと正解データとの差分を表すコスト関数を計算するコスト関数計算部と、
前記コスト関数を微分して得られる微小誤差に対して前記ニューラルネットワークで前記ドロップアウトを与えて逆伝搬計算を行い、前記ニューラルネットワークの各層における前記分布パラメータを更新する分布パラメータ更新部と、
前記コスト関数が所定の閾値以下となった場合における前記分布パラメータを最適化された分布パラメータとして出力する最適化パラメータ出力部とを、
有する情報推定装置。
【請求項2】
前記最適化パラメータ出力部から出力された前記最適化された分布パラメータに含まれる前記分散値により、前記ニューラルネットワークの各層における各ニューロンの重要度が表される請求項1に記載の情報推定装置。
【請求項3】
前記ニューラルネットワークの各層における各ニューロンの前記重要度に基づいて前記重要度が低いと判断されたニューロンにおける計算を簡略化する請求項2に記載の情報推定装置。
【請求項4】
前記最適化パラメータ出力部から出力された前記最適化された分布パラメータに係る分布を尤度分布とし、前記尤度分布に事前確率を掛けたものを事後確率分布の式とし、分数で表された前記尤度分布の分子からバイアス値を引いてスケール値で割った式を前記事後確率分布の近似式として前記事後確率分布の近似式で学習データの事後確率値を計算し、前記事後確率値の集合からなる分布の平均値及び分散値が、分類問題の場合には全てのクラスで、回帰問題の場合には複数の出力値同士で同じとなるように前記バイアス値及び前記スケール値を最適化する事確率分布計算部を有する請求項1から3のいずれか1つに記載の情報推定装置。
【請求項5】
最適化された前記バイアス値及び前記スケール値を含む前記事後確率分布の近似式を用いて、固定値のベクトルからなる入力データに対する事後確率値を計算する事後確率値推定部を有する請求項4に記載の情報推定装置。
【請求項6】
前記事後確率値を計算する対象である前記入力データは、所定の分布を持つ確率変数であり、前記入力データの分布からサンプリングされた複数の値を用いて複数の事後確率値を計算してその期待値を計算することで、前記入力データに対する前記事後確率値を計算する請求項5に記載の情報推定装置。
【請求項7】
ニューラルネットワークを用いて推定処理を行う情報推定装置で実行される情報推定方法であって、
固定値のベクトルからなる学習データを用いて、データの一部を欠損させるドロップアウトを行うドロップアウト層を備えた前記ニューラルネットワークにおける重みを学習する重み学習ステップと、
前記ニューラルネットワークの各層で伝搬するデータを平均値、分散値及び共分散値を含む分布パラメータで定義される多変量ガウス分布を持つ確率変数として、入力データに対して前記ニューラルネットワークで前記ドロップアウトを与えて伝搬計算を行う伝搬計算ステップと、
前記ニューラルネットワークからの出力データと正解データとの差分を表すコスト関数を計算するコスト関数計算ステップと、
前記コスト関数を微分して得られる微小誤差に対して前記ニューラルネットワークで前記ドロップアウトを与えて逆伝搬計算を行い、前記ニューラルネットワークの各層における前記分布パラメータを更新する分布パラメータ更新ステップと、
前記コスト関数が所定の閾値以下となった場合における前記分布パラメータを最適化された分布パラメータとして出力する最適化パラメータ出力ステップとを、
有する情報推定方法。
【請求項8】
前記最適化パラメータ出力ステップで出力された前記最適化された分布パラメータに含まれる前記分散値により、前記ニューラルネットワークの各層における各ニューロンの重要度が表される請求項7に記載の情報推定方法。
【請求項9】
前記ニューラルネットワークの各層における各ニューロンの前記重要度に基づいて前記重要度が低いと判断されたニューロンにおける計算を簡略化する請求項に記載の情報推定方法。
【請求項10】
前記最適化された分布パラメータに係る分布を尤度分布とし、前記尤度分布に事前確率を掛けたものを事後確率分布の式とし、分数で表された前記尤度分布の分子からバイアス値を引いてスケール値で割った式を前記事後確率分布の近似式として前記事後確率分布の近似式で学習データの事後確率値を計算し、前記事後確率値の集合からなる分布の平均値及び分散値が、分類問題の場合には全てのクラスで、回帰問題の場合には複数の出力値同士で同じとなるように前記バイアス値及び前記スケール値を最適化する事確率分布計算ステップを有する請求項7から9のいずれか1つに記載の情報推定方法。
【請求項11】
最適化された前記バイアス値及び前記スケール値を含む前記事後確率分布の近似式を用いて、固定値のベクトルからなる入力データに対する事後確率値を計算する請求項10に記載の情報推定方法。
【請求項12】
前記事後確率値を計算する対象である前記入力データは、所定の分布を持つ確率変数であり、前記入力データの分布からサンプリングされた複数の値を用いて複数の事後確率値を計算してその期待値を計算することで、前記入力データに対する前記事後確率値を計算する請求項11に記載の情報推定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワーク(NN:Neural Network)を用いた推定処理を行う情報推定装置及び情報推定方法に関する。
【背景技術】
【0002】
ニューラルネットワークを用いた推定器は、他の推定器と比べ、画像やセンサー信号データなど、大量の情報を入力データとして処理し、推定を行うことができることから様々な分野への応用に期待されている。学習フェーズでは、学習データをニューラルネットワークに入力して、期待される出力結果が出力されるように、ニューラルネットワークの重みが最適化される。テストフェーズでは、ある未知の入力データをニューラルネットワークに入力すれば、ニューラルネットワークが推定する結果が出力値として出力される。
【0003】
ニューラルネットワークが用いるデータ、学習データやテストデータは、ある次元数nxin次元のベクトルxinからなる点データである。ここで言う点データとは、ある固定の値をとるという意味である。また、それらがニューラルネットワークに入力されて、ニューロン値として、各層で線形及び/又は非線形の処理が行われるが、各層に入力されるデータも同様に、ある次元数を持つある固定の値のベクトルからなる点データである。そして、回帰問題であれ分類問題であれ、最終的な結果として出力されるデータも固定値からなる点データであり、ある次元数を持つベクトル又はスカラーの値となる。
【0004】
また、ニューラルネットワークを用いた推定技術に関連した従来の技術として、例えば、非特許文献1、2に記載されている手法が知られている。非特許文献1には、学習された重みパラメータを固定の値ではなく分布として考え、推定の際も、入力データに対して学習したパラメータの分布に基づき、出力を分布として計算する手法が記載されている。また、非特許文献2には、理想的な入力データを逆伝搬で計算する手法として、ニューラルネットワーク中のどの層のどのニューロンが推定結果に関して重要な役割を果たしているのかを視覚化する技術が知られている。
【先行技術文献】
【非特許文献】
【0005】
【文献】2016, “Uncertainty in Deep Learning”,Yarin Gal,Thesis http://mlg.eng.cam.ac.uk/yarin/thesis/thesis.pdf
【文献】2009, “Visualizing Higher-Layer Features of a Deep Network”, Yoshua Bengio, University de Montreal
【文献】2009, “Fast Dropout”, Sida Wang, Christopher Manning ; Proceedings of the 30th International Conference on Machine Learning, PMLR 28(2):118-126, 2013.
【文献】Jean Daunizeau,"Semi-analytical approximations to statistical moments of sigmoid and softmax mappings of normal variables", 2017, arXiv:1703.00091 [stat.ML]
【文献】I. J. Goodfellow, J. Shlens, and C. Szegedy. “Explaining and harnessing adversarial examples”, 2015.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、前述のような従来のニューラルネットワークの処理は、ベクトルである点データの入力に対して、ベクトルからなる点データとしてしか計算できないという点データ単位の処理であり、出力される推定結果も点データであった。
【0007】
観測データなどの誤差のある入力データ、例えば、ある値とその値のプラスマイナスいくらかの値との誤差がガウス分布として存在するような分布データは、従来のニューラルネットワークでは、直接扱うことができなかった。従来のニューラルネットワークで分布データをあえて扱おうとした場合には、モンテカルロ的に、すなわち、その分布から点データを大量にサンプリングし、その大量の点データをニューラルネットワークに入力して計算することができるが、処理時間がかかってしまうという問題があった。また、点データのベクトルの次元数が大きいほど、様々なバリエーションがあり得るため、必要なサンプル数も増えてしまうという問題もあった。
【0008】
また、出力される推定結果が点データである場合、推定結果が、とり得る値の分布ではなく、算出された固定のある値というだけでは、その値がどれほどの確信をもって推定されたのか、つまり、その値の確率や確からしさを評価することができないという問題があった。すなわち、ある推定された値に対する推定値の分散や信頼区間が得られないという問題があった。
【0009】
なお、この問題に対する対策としては、例えば、非特許文献1に記載されているような手法が提案されている。この非特許文献1の手法では、上述したように、学習された重みパラメータを固定の値ではなく分布として考え、推定の際も、入力データに対して学習したパラメータの分布に基づき、出力を分布として計算している。とりわけ、非特許文献1の手法では、重みパラメータの分布から出力分布を計算するための積分計算であって、本来は解くことができない積分計算を、ドロップアウトを与えることによって近似的に計算することで、同等の結果を得ることを提案している。ただし、非特許文献1の手法は、学習された重みパラメータを固定の値ではなく分布として考えており、本発明に係る手法とは異なっている。
【0010】
本発明は上記の問題に鑑みて、学習済みのニューラルネットワークがある推定結果を出力するための、ニューラルネットワークの各層におけるデータの特徴量分布を計算することが可能な情報推定装置及び情報推定方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記の目的を達成するため、本発明によれば、ニューラルネットワークを用いて推定処理を行う情報推定装置であって、
固定値のベクトルからなる学習データを用いて、データの一部を欠損させるドロップアウトを行うドロップアウト層を備えた前記ニューラルネットワークにおける重みを学習する重み学習部と、
前記ニューラルネットワークの各層で伝搬するデータを平均値、分散値及び共分散値を含む分布パラメータで定義される多変量ガウス分布を持つ確率変数として、入力データに対して前記ニューラルネットワークで前記ドロップアウトを与えて伝搬計算を行う伝搬計算部と、
前記ニューラルネットワークからの出力データと正解データとの差分を表すコスト関数を計算するコスト関数計算部と、
前記コスト関数を微分して得られる微小誤差に対して前記ニューラルネットワークで前記ドロップアウトを与えて逆伝搬計算を行い、前記ニューラルネットワークの各層における前記分布パラメータを更新する分布パラメータ更新部と、
前記コスト関数が所定の閾値以下となった場合における前記分布パラメータを最適化された分布パラメータとして出力する最適化パラメータ出力部とを、
有する情報推定装置が提供される。
【0012】
また、上記の目的を達成するため、本発明によれば、ニューラルネットワークを用いて推定処理を行う情報推定装置で実行される情報推定方法であって、
固定値のベクトルからなる学習データを用いて、データの一部を欠損させるドロップアウトを行うドロップアウト層を備えた前記ニューラルネットワークにおける重みを学習する重み学習ステップと、
前記ニューラルネットワークの各層で伝搬するデータを平均値、分散値及び共分散値を含む分布パラメータで定義される多変量ガウス分布を持つ確率変数として、入力データに対して前記ニューラルネットワークで前記ドロップアウトを与えて伝搬計算を行う伝搬計算ステップと、
前記ニューラルネットワークからの出力データと正解データとの差分を表すコスト関数を計算するコスト関数計算ステップと、
前記コスト関数を微分して得られる微小誤差に対して前記ニューラルネットワークで前記ドロップアウトを与えて逆伝搬計算を行い、前記ニューラルネットワークの各層における前記分布パラメータを更新する分布パラメータ更新ステップと、
前記コスト関数が所定の閾値以下となった場合における前記分布パラメータを最適化された分布パラメータとして出力する最適化パラメータ出力ステップとを、
有する情報推定方法が提供される。
【発明の効果】
【0013】
本発明によれば、学習済みのニューラルネットワークにおいて、多変量ガウス分布を持つ確率変数を表す分布パラメータの誤差に対して、ドロップアウトを与えた伝搬及び逆伝搬の計算を繰り返し行うことで、分布パラメータを最適化することが可能となり、ある推定結果を出力するための、ニューラルネットワークの各層におけるデータの特徴量分布を計算することが可能となる。
【図面の簡単な説明】
【0014】
図1】本発明の第1~第3の実施の形態において、ニューラルネットワークの任意の層lにおける入出力データの関係を模式的に示す図であって、(a)は、ニューラルネットワークの層lにおいて入力データのガウス分布のパラメータから出力データのガウス分布のパラメータへの伝搬を示す図であり、(b)は、ニューラルネットワークの任意の層lにおいて出力データのガウス分布のパラメータから入力データのガウス分布のパラメータへの更新すべき誤差の逆伝搬を示す図である。
図2】本発明の第1の実施の形態におけるニューラルネットワークの構成の一例を示す図である。
図3】本発明の第1の実施の形態におけるデータの特徴量分布を計算する処理の一例を示すフローチャートである。
図4】本発明の第1~第3の実施の形態における情報推定装置の構成の一例を示すブロック図である。
図5】本発明の第1の実施の形態と比較例とにおけるコスト関数の値と更新回数との関係を表すグラフであって、(a)は、比較例におけるコスト関数の値と更新回数との関係を表すグラフであり、(b)は、本発明の第1の実施の形態におけるコスト関数の値と更新回数との関係を表すグラフである。
図6】本発明の第1の実施の形態において、数字9のクラスでの最適化された特徴量分布を示す図であって、(a)は、図2のニューラルネットワークの入力層における入力画像の特徴量分布を示す図であり、(b)は、図2のニューラルネットワークの最初のFC層での10×10=100個のニューロンに関する特徴量分布を示す図である。
図7】本発明の第1の実施の形態における入力画像及びソフトマックスの出力値の一例を示す図であって、(a)は、図6(a)の数字9のガウス分布からサンプリングされた入力画像の一例を示す図であり、(b)は、図7(a)の入力画像についてニューラルネットワークを伝搬させたときのソフトマックスの出力値を示す図である。
図8】本発明の第1の実施の形態において、ニューラルネットワークに入力されるMNIST拡張画像の複数の例を示す図である。
図9図8に示すMNIST拡張画像に関連して、正解ラベル(数字0)を計算した場合の入力画像の特徴量分布の一例を示す図である。
図10】本発明の第1の実施の形態における入力画像及びソフトマックスの出力値の一例を示す図であって、(a)は、図9の特徴量分布からサンプリングされた入力画像の一例を示す図であり、(b)は、図10(a)の入力画像についてニューラルネットワークを伝搬させたときのソフトマックスの出力値を示す図である。
図11】本発明の第2の実施の形態において、事後確率分布と入力データとを示すグラフであって、(a)は、事後確率分布と入力点データとを表すグラフであり、(b)は、事後確率分布と入力分布データとを表すグラフである。
図12】本発明の第2の実施の形態において、事後確率分布の近似式を計算する処理の一例を示すフローチャートである。
図13】本発明の第2の実施の形態と比較例とにおける各クラスの事後確率値を示すヒストグラムであって、(a)は、比較例において補正定数が仮の値(最適化されていない補正定数)の場合の各クラスの事後確率値を示すヒストグラムであり、(b)は、本発明の第2の実施の形態において補正定数が最適化されている場合の各クラスの事後確率値を示すヒストグラムである。
図14】本発明の第2の実施の形態における実験に関連したデータの一例を示す図であって、(a)は、テストデータである数字7の画像を示す図であり、(b)は、(a)の数字7の画像を入力データとして、補正定数が最適化された事後確率の対数値をクラスごとに計算した結果を示す図である。
図15】本発明の第2の実施の形態における実験に関連したデータの一例を示す図であって、左側の欄には、補正定数を求める前に(仮の補正定数を用いて)事後確率値を計算した場合の各クラスの正解率を示し、右側の欄には、補正定数を求めた後に事後確率値を計算した場合の各クラスの正解率を示す図である。
図16】本発明の第3の実施の形態における実験に関連したデータの一例を示す図であって、(a)は、テストデータである数字4の画像を示す図であり、(b)は、テストデータである、数字4の画像の一部が灰色で塗られた欠損状態の画像を示す図であり、(c)は、(a)のテストデータに対して従来法で計算したソフトマックスの値を示す図であり、(d)は、(b)のテストデータに対して従来法で計算したソフトマックスの値を示す図であり、(e)は、(a)のテストデータに対して本発明に係る計算手法で計算した事後確率の対数値を示す図であり、(f)は、(b)のテストデータに対して本発明に係る計算手法で計算した事後確率の対数値を示す図である。
【発明を実施するための形態】
【0015】
以下、図面を参照しながら、本発明の第1~第3の実施の形態について説明する。
【0016】
まず、本発明の概要について説明する。
【0017】
本発明は、ニューラルネットワークにおいて、ある出力(回帰問題ならある出力値、分類問題なら各クラスのあるスコア値)を出力するためには、各層の入力の点データであるベクトルの値の分布を計算する手法を提案する。本発明では、各層に入力されるデータであるベクトルの値がどのような分布をとるべきなのか、どの分布からサンプリングされたものであるのかを表す分布が計算される。
【0018】
その分布の形状を見れば、各層のどのニューロンが推定結果を出すのに重要であるかを把握することが可能となる。例えば、ある層のあるニューロン値に関する分布の幅が広ければ、そのニューロン値は、どのような値をとっても望みの出力結果となることを意味し、特徴が少なく、出力結果に影響を与えない値であることを意味する。例えば、このようなニューロン値については計算不要である判断して、計算を簡略化することができる。
【0019】
逆に、ある層のあるニューロン値に関する分布の幅が狭ければ、そのニューロン値は、この狭い分布幅の範囲内の値をとらなければ所望の出力結果が得られないことを意味する。すなわち、そこでの層の処理は重要であるということがわかる。このことは、ニューラルネットワークが推定した結果を判断するにあたり、どの層が重要な決定を下しているのかを特定することを可能とし、推定結果の説明責任を果たすために重要な手掛かりとなる。
【0020】
本発明は非特許文献1の手法とは大きく異なっている。上述したように、非特許文献1の手法では、学習された重みパラメータを固定の値ではなく分布として考え、推定の際には、学習された重みパラメータの分布に基づいて、入力データに対する出力を分布として計算している。
【0021】
これに対し、本発明は、学習された重みパラメータは固定の値のままとし、所望の出力を最大限に出すために入力データのベクトルの値がどのような特徴の分布となるべきなのかについて、入力データに係る分布を逆伝搬で計算する。
【0022】
また、本発明は非特許文献2の手法とも大きく異なっている。非特許文献2の手法では、ニューラルネットワークの後方の層を活性化させるためには、どのような入力データがあればよいのかを逆伝搬で計算しているが、逆伝搬で計算する入力データはあくまでもある固定値の点データである。
【0023】
本発明は、非特許文献2の手法に挙げられているような「ニューラルネットワークは入力データの何を見て判断するのか」という視覚化技術と同列のものである。しかしながら、本発明は、どのような分布からサンプリングされたデータであればニューラルネットワークの後方の層を活性化し、所望の出力を出すことができるかを計算するもの、すなわち、入力データの分布を計算して視覚化するものである。すなわち、非特許文献2の手法は、望みの出力結果を出すような入力データ(点データ)そのものを計算しているのに対し、本発明は、こうした点データがとり得る分布(特徴量分布)を計算する点で大きく異なっている。
【0024】
本発明では、入力データがとり得る特徴量分布はシングルモードの多変量ガウス分布であると仮定し、シングルモードのガウス分布の形を決定づけるパラメータ、すなわち、ある次元の平均ベクトルμと分散共分散行列Σ(分散値Var及び共分散値Cov)とを逆伝搬を使って求めていく。
【0025】
実際のデータの分布はシングルモードのガウス分布ではなく複雑な分布を有しており、複雑な分布が層から層へマッピングされながら伝搬していく。そして、その複雑さゆえに、分布の逆伝搬の計算は困難とされている。しかしながら、本発明においてブレイクスルーとなる技術として、ドロップアウトによりノイズを加えることで、シングルモードのガウス分布として、そのパラメータの逆伝搬の計算が可能となる。
【0026】
本発明は、上述したように、シングルモードのガウス分布とみなした場合の分布のパラメータを計算する近似手法を含む情報推定方法を提案し、この近似手法を用いた推定器を含む情報推定装置を提案する。従来の技術では、シングルモードのガウス分布と仮定して逆伝搬させる計算を行うことは困難であるが、本発明者は、ドロップアウトによるノイズを加えることで前述の計算が可能になることを発見し、本発明において、その効果と性質を利用した推定器を提案するに至ったものである。
【0027】
なお、ドロップアウトを加えるという手法に関連して、例えば非特許文献3には、解析的ドロップアウトという技術が記載されている。解析的ドロップアウトの技術は、ドロップアウトをモンテカルロ的に何度も行わなくても、それにより生じる分散値を解析的に計算しておき、ニューロンの値がとる分布に前述の生じた分散値を足しておくことで、ドロップアウトと同等の効果を得るというものである。非特許文献3では、この解析的ドロップアウトの技術を使って、ニューラルネットワークの学習時の重みの計算が行われている。これに対し、本発明では、重みを学習済みの固定した値とする点、入力データの分布の最適な分布を学習及び計算する際にドロップアウトを与えることで、データの分布をシングルモードのガウス分布と仮定した場合であっても計算可能になるという点などを有しており、これらの点は非特許文献3には開示されていない。
【0028】
点データを扱う従来のニューラルネットワークで逆伝搬の計算を行うには、まずフォワードプロパゲーション(順方向の伝搬又は単に伝搬と呼ぶ)の計算を行い、その結果を用いてバックプロパゲーション(逆方向の伝搬又は逆伝搬と呼ぶ)の計算を行う必要がある。本発明では、扱うデータが点データではなく分布のパラメータであるが、従来と同様に、順方向及び逆方向の両方の計算を行う必要がある。
【0029】
以下に、本発明の第1~第3の実施の形態で用いられる計算式について詳細に説明する。
【0030】
(伝搬時の計算)
まず、順方向の伝搬の計算において、ガウス分布である入力データが、ニューラルネットワークの各層にどのように入力されてどのように出力されるのかについて説明する。
【0031】
図1(a)に示すように、任意の層をlと表記し、その層lに入力される入力データであるnin l次元多変量ガウス分布を以下のように定義する。
【0032】
【数1】
【0033】
μin lはnin l次元の平均ベクトル、Varin lはnin l次元の分散ベクトル、Covin lはnin l次元の共分散行列であり、これらはガウス分布のパラメータである。
【0034】
また、その層lから出力される出力データであるnout l次元多変量ガウス分布を以下のように定義する。
【0035】
【数2】
【0036】
μout lはnout l次元の平均ベクトル、Varout lはnout l次元の分散ベクトル、Covout lはnout l次元の共分散行列であり、これらはガウス分布のパラメータである。
【0037】
図1(a)に示すように、ある層lについて、以下の式のように、入力データであるガウス分布のパラメータから出力データであるガウス分布のパラメータのマッピングを計算する。
【0038】
【数3】
【0039】
本発明の第1~第3の実施の形態では、例えば図2に示すような構造のニューラルネットワークを構築して計算を行う。図2に示すニューラルネットワークは、全結合層(Fully Connected Layer、以下、FC層と記載)、ドロップアウト層(Dropout Layer)、シグモイド層(Sigmoid Layer)、ソフトマックス層(Softmax Layer)を含んで構築されている。後述する実験においても同一の構造を有するニューラルネットワークが用いられているが、本発明に係るニューラルネットワークは、この構造に限定されるわけではない。
【0040】
以下、順に、ニューラルネットワークに含まれる各層lにおける順方向の伝搬時のマッピングの計算について、種類別に説明する。
【0041】
(DF層:伝搬時の計算)
扱う層lがドロップアウト層及びFC層からなる層の場合、本明細書ではこれらの層を総称してDF層と呼び、l=DFと表記する。
【0042】
ドロップアウト層は、ドロップアウトに係る計算を行う層である。ドロップアウトとは、ある層の個々のニューロンの値や、2つの層のニューロン同士を結ぶ各コネクトに対し、それぞれ独立に、ベルヌーイ分布やガウス分布などの分布からサンプリングした値を掛けるという意味である。サンプリングは伝搬及び逆伝搬毎ごとに独立に行われる。
【0043】
ドロップアウトが、DF層における各ニューロンにベルヌーイ分布からサンプリングされた値を掛けて行われる場合には、入力データのベクトルの各nin DF個の要素の値が、それぞれ独立に、設計者が決めた確率pdropout DF(0<pdropout DF<1)でゼロとなるように計算される。そのため、残った非ゼロの値はnin DF個中M個(Mは数式4に記載されているMバー)として、以下のような式で表される。
【0044】
【数4】
【0045】
一方、FC層は、nout l×nin l次元からなる行列の重みWi,jとnout l次元からなるベクトルのバイアス項biとが設定されており、入力データに重みを掛けてバイアス項を足す計算が行われる。
【0046】
数式1で表されたガウス分布がDF層に入力されると、数式2で表されるどのようなガウス分布として出力されるのかについて、すなわち、以下の数式5に示すガウス分布のパラメータ(平均、分散、共分散)の変換がどのように行われるのかについて説明する。
【0047】
【数5】
【0048】
出力される平均μout DFは以下のように計算される。
【0049】
【数6】
【0050】
出力される分散Varout DFは以下のように計算される。
【0051】
【数7】
【0052】
【数8】
【0053】
【数9】
【0054】
【数10】
【0055】
出力される共分散は以下のように計算される。
【0056】
【数11】
【0057】
数式11の後半の2項は、前述の数式から計算できる。また、数式11の最初の項は以下のように計算できる。
【0058】
【数12】
【0059】
【数13】
【0060】
【数14】
【0061】
【数15】
【0062】
(シグモイド層:伝搬時の計算)
次に、扱う層lが非線形層、とりわけ、シグモイド層の場合について説明する。ここでは、近似として共分散は考えず、シングルモードの平均ベクトルμin及び分散ベクトルVarinのパラメータからなる多変量ガウス分布Xinがシグモイド層に入力され、出力Xoutもシングルモードの平均ベクトルμout及び分散ベクトルVaroutのパラメータからなる多変量ガウス分布であると近似する。この場合、以下のように定義される。
【0063】
【数16】
【0064】
【数17】
【0065】
【数18】
【0066】
この場合、入力Xinのシングルモードの多変量ガウス分布のパラメータを使って、出力Xoutのシングルモードの多変量ガウス分布のパラメータをどのように計算するのかについて説明する。
【0067】
出力の平均値は以下のように計算される。
【0068】
【数19】
【0069】
出力の分散値は以下のように計算される。
【0070】
【数20】
【0071】
(最終出力層:伝搬時の計算)
扱う層lが最終出力層の場合について説明する。最終出力層において入力から出力を得るための関数を関数πとする。
【0072】
【数21】
【0073】
回帰問題の場合には、最終出力値を出力するための特別な層はなく、以下の数式22や数式23に示されるように、前述したFC層(重みW及びバイアス項bを用いて計算する層)や非線形層(任意の非線形関数Nonlinearにより計算する層)がそのまま最終出力層となり、この層からの出力値が推定値となる。
【0074】
【数22】
【0075】
【数23】
【0076】
一方、分類問題の場合には、最終出力層はソフトマックス層であり(l=Softmax)、関数πはソフトマックス関数で表される。
【0077】
従来、入力及び出力は点データであり、入力はK次元のベクトルX、出力もK次元のベクトルπ(X)となり、以下の数式24のように計算される。なお、次元数Kはクラス数cmaxを意味する。
【0078】
【数24】
【0079】
これに対して本発明では、入力及び出力は点データではなく、ガウス分布であり、入力の単一ガウス分布に対して、出力も単一のガウス分布であると近似して計算が行われる。とりわけ、フォワード計算では、ソフトマックス層から出力されるガウス分布の平均値のみを計算する。なぜなら、この層が最終出力層であり、最終出力層から出力される値は、学習の場合は正解値と比較するためだけに、推定の場合は推定値として採用されるためだけに使われるため、分散値及び共分散値は必要とされない。非特許文献4によれば、ソフトマックス層から出力されるガウス分布の平均値は以下のように計算できる。
【0080】
【数25】
【0081】
(逆伝搬時の計算)
次に、入力データの逆伝搬時の計算について説明する。以下、最終出力層から遡って、ニューロン値としてガウス分布になり、そのガウス分布のパラメータがどのように逆伝搬していくのか、そして入力層でどのような入力データになるのかについて、そのガウス分布のパラメータの計算方法を説明する。
【0082】
非特許文献2には、ある点データを逆伝搬させることで入力データの値の誤差を求めていく手法が記載されている。この手法と同様に、本発明では、入力データがとり得るガウス分布のパラメータの誤差、すなわち、平均値の誤差δμ、分散値の誤差δVar、共分散値の誤差δCovを逆伝搬させて計算していく。
【0083】
図1(b)に示すように、ある層lにおいて、その出力outのガウス分布のパラメータの誤差から、入力inのガウス分布のパラメータの誤差を逆向きに計算する。
【0084】
【数26】
【0085】
この入力inのガウス分布のパラメータの誤差が求められれば、従来の学習法のように、入力inのガウス分布のパラメータを、設計者が定義した学習率LearnigRateの値で更新することができる。
【0086】
【数27】
【0087】
【数28】
【0088】
【数29】
【0089】
以下に、後方の層(出力側)の誤差δoutを前方の層(入力側)の誤差δinに逆伝搬させる計算について示す。
【0090】
【数30】
【0091】
【数31】
【0092】
【数32】
【0093】
上の式を解くためには、誤差δのほかに、それぞれのパラメータ間の微分、すなわち、ヤコビアンJlを計算する必要がある。ある層lにおけるヤコビアンを以下の数式33に示す。
【0094】
【数33】
【0095】
以下、ニューラルネットワークに含まれる各層lの種類別に、ヤコビアンを構成する微分計算方法について説明する。
【0096】
(DF層:逆伝搬時の計算)
前述したドロップアウト層及びFC層からなるDF層における微分計算について説明する。本発明は、ドロップアウトを入れることで、シングルモードのガウス分布の伝搬についても逆伝搬の計算ができるようにしている。
【0097】
出力平均値の入力平均値による微分は以下のようになる。
【0098】
【数34】
【0099】
出力平均値の入力分散値による微分は以下のようになる。
【0100】
【数35】
【0101】
出力平均値の入力共分散値による微分は以下のようになる。
【0102】
【数36】
【0103】
出力分散値の入力平均値による微分は以下のようになる。
【0104】
【数37】
【0105】
上記の数式37のVar(ListWμin DF i)の部分は、以下のように表される。
【0106】
【数38】
【0107】
この微分は以下のように計算することができる。
【0108】
【数39】
【0109】
上記の数式37の2項目及び3項目は、入力の平均値に依存しないことからゼロとなり、最終的には以下の式となる。
【0110】
【数40】
【0111】
出力の分散値の入力の分散値による微分は以下のようになる。
【0112】
【数41】
【0113】
出力の分散値の入力の共分散値による微分は以下のようになる。
【0114】
【数42】
【0115】
出力の共分散値の入力の平均値による微分は以下のようになる。
【0116】
【数43】
【0117】
出力の共分散値の入力の分散値による微分は以下のようになる。
【0118】
【数44】
【0119】
出力の共分散値の入力の共分散値による微分は以下のようになる。
【0120】
【数45】
【0121】
(シグモイド層:逆伝搬時の計算)
次に、非線形層、とりわけ、シグモイド層の場合について説明する。
【0122】
出力平均値の入力平均値による微分は以下のようになる。
【0123】
【数46】
【0124】
出力平均値の入力分散値による微分は以下のようになる。
【0125】
【数47】
【0126】
出力分散値の入力平均値による微分は以下のようになる。
【0127】
【数48】
【0128】
出力分散値の入力分散値による微分は以下のようになる。
【数49】
【0129】
(最終出力層:逆伝搬時の計算)
ニューラルネットワークの層lが最終出力層の場合における関数π(数式21参照)の微分に関して説明する。
【0130】
回帰問題の場合には、前述したFC層や非線形層でのガウス分布の平均値や分散共分散値の微分が逆伝搬に使われる。
【0131】
一方、分類問題の場合には、最終出力層はソフトマックス層である。以下、ソフトマックス層の入力がガウス分布の場合の微分、すなわちヤコビアンの計算方法について説明する。最終出力層からの出力は正解ラベルであるスカラー値との差分によりコスト関数を計算するために用いられる。したがって、分散値や共分散の微分には依存せず、最終出力層からの出力の分布の平均値のみに関する微分だけを考慮すればよい。
【0132】
出力平均値の入力平均値による微分は以下のようになる。
【0133】
【数50】
【0134】
出力平均値の入力分散値による微分は以下のようになる。
【0135】
【数51】
【0136】
以上、任意の構造のニューラルネットワークに関して、DF層、シグモイド層、ソフトマックス層についての単一のガウス分布のパラメータのヤコビアンの要素の計算について、すなわち、バックプロパゲーションにおけるガウス分布のパラメータの微小誤差を計算する方法について説明した。
【0137】
(コスト関数)
最後に、逆伝搬の出発点、すなわち最終出力層におけるコスト関数の設定方法について説明する。
【0138】
n個のニューロンを持つn次元の最終出力層では、最終出力層からの出力の分布の平均値のみを考慮する。最終出力層からの分布の平均値と学習正解データの所望の値とを比較し、その差分をコスト関数として設定する。以下、二乗誤差によりコスト関数を設定した場合を示すが、当該差分を表すことができる計算であれば、二乗誤差に限定されるものではない。
【0139】
回帰問題の場合には、以下のように出力値がスカラーの場合にはn=1となり、正解値yとの差分からコスト関数を定義する。
【0140】
【数52】
【0141】
分類問題の場合には、以下のように総クラス数cmaxにおいて、正解ラベルのホットベクトルhとソフトマックス層からの出力ベクトルπ(X)との差分で、以下のようにコスト関数を定義する。
【0142】
【数53】
【0143】
このコスト関数の値を小さくするために、コスト関数の微分をとることで、入力のガウス分布のパラメータの平均値の微小誤差δμinと分散値の微小誤差δVarinを以下のように計算できる。
【0144】
【数54】
【0145】
【数55】
【0146】
前述のヤコビアンを使うことで、逆伝搬で各層での微小誤差δを順々に計算していくことができ、入力層まで遡ることで、入力層及び各層におけるガウス分布のパラメータを計算することができる。
【0147】
また、正則化として、コスト関数(数式52、数式53参照)に任意の正則項Rを設けることで、最適化計算される解を制御することができる。例えば、ある層lでの入力データの分布の平均値μlを0以上1以下に抑えたい場合、以下のようなμl値に依存するコスト関数に対して、以下のような正則項Rを付けることが考えられる。
【0148】
【数56】
【0149】
【数57】
【0150】
正則項Rを設けた場合には、正則項Rのμ及びVarに関する微分をそれぞれ計算し、それぞれの計算結果を数式54及び数式55のそれぞれに追加する必要がある。
【0151】
以上、本明細書で提案される計算方法であって、バックプロパゲーションさせることで所望の出力を最大に出すための各層における分布パラメータを求める計算方法について説明した。
【0152】
本明細書では、この最適化された分布パラメータに係る分布を「特徴量分布」と呼ぶ。この特徴量分布は、ニューラルネットワーク上のあらゆる層のニューロンでの入力データの値に関連して計算することができる。ここで、ある層lにおけるニューロンの入力データの値をxとし、その値がとるべき特徴ガウス分布関数Pl(x)について、ガウス分布のパラメータである平均ベクトルμ、分散共分散行列Σを用いて以下の式のように定義する。
【0153】
回帰問題の場合には、ある値yが出力されるための特徴ガウス分布Pl,y(x)は以下のように表される。ある値yは、ユーザが有限又は無限の範囲から選んだ値である。
【0154】
【数58】
【0155】
分類問題の場合には、あるクラスcに分類されるための特徴ガウス分布Pl,c(x)は以下のように表される。あるクラスcは総クラスの数cmax分だけ存在する。
【0156】
【数59】
【0157】
ここで注目すべきは、前述の数式58や数式59において、分母は入力データxに依存せず、全てのニューロンに共通のあるスカラー値、すなわち定数であるということである。
【0158】
ニューラルネットワークの試験者は、各ニューロンにおける特徴量分布Pl(x)の幅である分散値から可視化されるニューロンの重要度を評価することができる。数式58や数式59のある層lにおけるn次元の特徴量分布の分散共分散行列Σの分散値は、n個のニューロンのそれぞれの分散値を表している。分散値が大きいということは、どの値でもよいということであり、したがって、そのニューロンは最終出力決定に及ぼす影響が低いと考えることができる。
【0159】
逆に、あるニューロンの分散値が小さければ、望みの最終結果を出すためには、そのニューロンのとる値はその範囲内でなければならず、そのニューロンが推定の決定に重要な影響を及ぼすことがわかる。また、ニューラルネットワークの推定結果の説明責任において、分散値の大小を見ることで、どのニューロンが推定結果に重要な働きをしているのかを示すことができる。さらに、重要でないと判断されるニューロンに関しては計算を省くなど、計算処理の簡略化を図ることも可能でなる。
【0160】
(第1の実施の形態)
本発明の第1の実施の形態において、データの特徴量分布を計算する処理について説明する。図3は、本発明の第1の実施の形態において、データの特徴量分布を計算する処理の一例を示すフローチャートである。
【0161】
図3において、まず、従来と同様に点データである学習データを用いて、ニューラルネットワークでドロップアウトを与えて学習させ、重みとバイアス項を最適化する(ステップS101)。なお、ドロップアウトを与えるとは、ニューラルネットワーク内のドロップアウト層において確率pdropout DFを設定し、ドロップアウト層を通過するデータを一定の確率pdropout DFでゼロにすることを意味する。ステップS101における学習が完了すると、この学習により決定された重みやバイアス項は固定値として扱われる。
【0162】
次に、入力データを最適化する処理を行う。入力データを最適化する処理では、学習済みの重みとバイアス項を固定したまま、入力データに対する伝搬と、伝搬から得られた計算結果(ガウス分布のパラメータ)の逆伝搬とが繰り返し実行され、入力データに係るガウス分布のパラメータを最適化する処理、すなわち、どのようなガウス分布に基づく入力データが入力されればよいのかを最適化する処理が行われる。
【0163】
まず、ニューラルネットワークで伝搬される入力データを多変量ガウス分布として、この入力データの多変量ガウス分布のパラメータ(平均ベクトルと分散共分散行列)の初期値を設定する(ステップS102)。この初期設定では、例えば乱数などの任意の値が初期値として設定される。平均値については、例えば入力が画像の場合には、ピクセルの画素の値がとり得る範囲の中心値を初期値として設定してもよい。また、分散値については、例えば1以上の適切な乱数としてもよい。さらに、共分散値はゼロとしてもよい。ただし、分散共分散値は正定値行列とする必要がある。
【0164】
次に、入力データのガウス分布のパラメータを入力層から最終出力層までドロップアウトを与えて伝搬させ、最終出力層で得られた結果からコスト関数を計算し(ステップS103)、コスト関数の値が十分にゼロに近づいたかどうかを判断する(ステップS104)。
【0165】
なお、コスト関数の値が十分にゼロに近づいたかどうかの判断は、例えば、ユーザがあらかじめ定めた閾値(ゼロに近い値)とコスト関数の値とを比較することにより行われる。コスト関数の値と所定の閾値とを比較して、例えばコスト関数の値が所定の閾値以下となった場合には、コスト関数の値が十分にゼロに近づいたと判断することができる。コスト関数の値が十分にゼロに近づいた状態は、回帰問題の場合にはユーザが選んだある望みの値を最大限出力する状態、分類問題の場合にはユーザが選んだある望みのクラスのソフトマックスの値を最大限出力する状態となったことを意味する。
【0166】
コスト関数の値が十分にゼロに近づいたと判断されなかった場合には(ステップS104で「いいえ」)、コスト関数からガウス分布のパラメータの微小誤差を計算する(ステップS105)。具体的には、上述した数式54及び数式55に示すように、コスト関数の微分を計算することで、微小誤差δを計算することができる。
【0167】
次に、例えば前述したヤコビアンを使うことで、微小誤差をドロップアウトを与えて逆伝搬させて、各層でのガウス分布のパラメータの微小誤差を順々に計算する(ステップS106)。その結果、入力層まで遡って微小誤差を計算することができる。そして、入力データのガウス分布のパラメータの微小誤差を用いて、各層でのガウス分布のパラメータを更新する(ステップS107)。このとき、パラメータは、例えば微小誤差に学習率LearningRateを掛けた分だけ更新される。
【0168】
ステップS107で入力データのガウス分布のパラメータが更新されると、ステップS103に戻り、更新されたパラメータを入力層から最終出力層までドロップアウトを与えて伝搬させ、上述したステップS103以降の処理が繰り返される。そして、コスト関数の値が十分にゼロに近づいたと判断された場合には(ステップS104で「はい」)、入力データのガウス分布のパラメータの最適化処理を終了する。
【0169】
最適化処理の終了時点における入力データのガウス分布のパラメータは最適化されたデータであり、このガウス分布からサンプリングされる入力データが入力された場合、ニューラルネットワークは所望の結果(回帰問題の場合は所望の出力値、分類問題の場合は所望のクラスのソフトマックスの値)を出力することができる。なお、入力データのガウス分布とは、ニューラルネットワークの最初の層である入力層におけるデータの分布だけではなく、各層の各ニューロンにおけるデータの分布も意味している。すなわち、図3に示す処理によって、任意の層におけるガウス分布のパラメータが最適化された状態となる。
【0170】
次に、本発明の第1の実施の形態における情報推定装置の構成について説明する。図4は、本発明の第1の実施の形態における情報推定装置の構成の一例を示すブロック図である。図4に示す情報推定装置1は、重み学習部10、データ特徴量分布計算部20、事後確率分布計算部30、事後確率値推定部40を有する。なお、図4に示す情報推定装置1には、後述する本発明の第2及び第3の実施の形態において使用される構成要素も図示されている。
【0171】
図4に示すブロック図は、本発明に関連した機能を表しているにすぎず、実際の実装では、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせによって実現されてもよい。ソフトウェアで実装される機能は、1つ又は複数の命令若しくはコードとして任意のコンピュータ可読媒体に記憶され、これらの命令又はコードは、CPU(Central Processing Unit:中央処理ユニット)などのハードウェアベースの処理ユニットによって実行可能である。また、本発明に関連した機能は、IC(Integrated Circuit:集積回路)やICチップセットなどを含む様々なデバイスによって実現されてもよい。
【0172】
本発明の第1の実施の形態では、重み学習部10及びデータ特徴量分布計算部20が使用され、重み学習部10及びデータ特徴量分布計算部20により上述した図3に示すフローチャートの処理が実行される。
【0173】
重み学習部10は、固定値のベクトルからなる学習データを用いて、データの一部を欠損させるドロップアウトを行うドロップアウト層を備えた前記ニューラルネットワークにおける重みを学習する機能を有する。
【0174】
データ特徴量分布計算部20は、伝搬計算部21、コスト関数計算部22、分布パラメータ更新部23、最適化パラメータ出力部24を含む。
【0175】
伝搬計算部21は、ニューラルネットワークの各層で伝搬するデータを平均値、分散値及び共分散値を含む分布パラメータで定義される多変量ガウス分布を持つ確率変数として、入力データに対してニューラルネットワークでドロップアウトを与えて伝搬計算を行う機能を有する。
【0176】
コスト関数計算部22は、ニューラルネットワークからの出力データと正解データとの差分を表すコスト関数を計算する機能を有する。
【0177】
分布パラメータ更新部23は、コスト関数を微分して得られる微小誤差に対してニューラルネットワークでドロップアウトを与えて逆伝搬計算を行い、ニューラルネットワークの各層における分布パラメータを更新する機能を有する。
【0178】
最適化パラメータ出力部24は、コスト関数が所定の閾値以下となった場合における分布パラメータを、最適化された分布パラメータとして出力する機能を有する。
【0179】
以下、本発明の第1の実施の形態に関連する実験について説明する。この実験では、図2に示すニューラルネットワークが構築され、手書き数字データMNISTが使用されている。図2のニューラルネットワークは、FC層、ドロップアウト層、シグモイド層、ソフトマックス層を含んで構築されている。入力データ(入力画像)は、28×28=784ピクセルの画像であり、784次元のベクトルデータである。また、最終出力層のソフトマックス層からは、0~9のいずれかの数字を示すスコアが推定結果として出力される。各層に付記されている数字は各層の次元数であり、例えば次元数が変換される場合には「784→100」などのように、変換前及び変換後の次元数が記載されている。
【0180】
この実験では、ニューラルネットワークにおいて、6万枚の手書き数字データMNISTの画像に関してドロップアウトを与えて学習させて、重みを計算している。なお、MNISTの入力画像は28×28=784ピクセルの画像であり、1枚の画像が784次元のベクトルである1つの点データに相当する。
【0181】
学習が完了すると、重みやバイアス項を固定値とし、今度は入力データをある未知のガウス分布からサンプリングされる確率変数として、ドロップアウトを与えて伝搬させる。なお、初期段階においてガウス分布のパラメータ(すなわち、平均ベクトルμ、分散共分散行列Σ)が未知の場合には、適当な初期値が設定される。
【0182】
最終出力層のソフトマックス層で正解ラベルと一致するようにガウス分布のパラメータの微小誤差を逆伝搬させて、ガウス分布のパラメータを更新する。その際に、DF層では必ずドロップアウトを与える。このように、伝搬及び逆伝搬の計算を行ってガウス分布のパラメータを更新する。
【0183】
更新されたガウス分布のパラメータの評価は、以下のようにモンテカルロ的に行われる。更新されたガウス分布のパラメータに基づくガウス分布を設定し、そのガウス分布から5000個の点データをサンプリングする。その点データを入力データとしてニューラルネットワークで順方向に計算させ、ソフトマックス層での出力が正解ラベルと合っているかどうかについてを評価するためのコスト関数を計算する。コスト関数の値が小さくなっていけば最適化が進んでいるとする。
【0184】
図5(a)、(b)に、コスト関数の値(縦軸)と更新回数(横軸)との関係を表すプロットを示す。図5(a)には、ガウス分布のパラメータの逆伝搬の際にドロップアウトを与えなかった場合(本発明の比較例)を示し、図5(b)には、本発明に係る実験においてガウス分布のパラメータの逆伝搬の際にドロップアウトを与えた場合(本発明に係る実験例)を示す。
【0185】
図5(a)に示すように、ドロップアウトを与えなかった場合には、最適化を何度も繰り返しても、コスト関数はゼロ近傍に収束せず、入力データのガウス分布のパラメータを最適化することができない。一方、図5(b)に示すように、本発明に係る実験ではドロップアウトというノイズの源を与えることで、コスト関数をゼロ近傍に収束させることができ、正解データのガウス分布を作り出すことできる。
【0186】
次に、ドロップアウトを与えて得られた特徴量分布のパラメータを計算した後について説明する。図6(a)、(b)に、数字9のクラスでの最適化された特徴量分布を示す。なお、これらの特徴量分布は、各々のピクセルにおけるグレースケール値の分布を表している。ただし、図6(a)、(b)では、平均値及び分散値から表すことができる分布のみが示されており、各々の分布間の相関である共分散値については図示省略している。
【0187】
図6(a)に、図2のニューラルネットワークの入力層における入力画像の特徴量分布を示す。なお、入力画像は28×28=784ピクセルであり、784ピクセルの各々についての特徴量分布が得られているが、図示簡略化のため、図6(a)では14×14=256ピクセルにおける特徴量分布が示されている(ピクセルを1つおきに表示)。
【0188】
図6(a)に示す入力画像のピクセル値のとるべき分布によって表れているように、0~9のうちのどの数字であるかを決定づけるのに重要であると思われる画像の中心部分は分布の幅が小さく、分散が小さい。一方、画像の四隅や端の近くは分布の幅が大きく、分散が大きい。したがって、画像の四隅や端の近くのピクセルは、推定結果を決定づけるのに重要ではないことが明らかに示されている。
【0189】
図6(b)に、図2のニューラルネットワークの最初のFC層での10×10=100個のニューロンに関する特徴量分布を示す。このFC層は入力層の次の層であるため、入力画像が抽象化されてしまっているが、それでも、分布の幅が小さいニューロンと分布の幅が大きいニューロンに分かれている。分布の幅が小さいニューロンのほうが、分布の幅の大きいニューロンより、推定の最終決定に大きく影響を与えると考えられる。
【0190】
また、図7(a)に、図6(a)の数字9のガウス分布からサンプリングされた入力画像の一例を示す。また、図7(b)に、図7(a)の画像を入力データとしてニューラルネットワークで計算させた場合のソフトマックスの値の棒グラフ(横軸はクラス、縦軸はソフトマックスの値)を示す。図7(a)は、数字9のガウス分布からサンプリングされた画像であり、見た目上は数字9には見えない画像であるが、ニューラルネットワークは、数字9の場合のクラスのみで最大となるソフトマックスの値(推定結果)を出力する。
【0191】
図6(a)の特徴量分布からどのようなデータをサンプリングした場合であっても、ニューラルネットワークは、この入力画像に対して、必ず、数字9であると推定するソフトマックスの値を出力する。このことから、本発明に係る手法は、非特許文献5で言及されている所望の推定結果を出す入力データ「Adversarial Example」をサンプリングすることができる分布の1つを計算する手法であると言うこともできる。
【0192】
また、このような分布の分散値を見て、ニューラルネットワークがどのピクセルの値又はニューロンの値を特徴として重要視しているのかを判断することについて、さらに、図8に示すようなMNISTをさらに拡張した画像(MNIST拡張画像)を学習させた場合に顕著に観察することができる。図8のMNIST拡張画像は、右上に位置する正解ラベルに関連する真のデータと、左上及び右下の2箇所にあるダミーとしての無関係なデータと、左下の何もない黒い部分とにより構成されている。このMNIST拡張の画像は、正解ラベルのデータが常に右上の数字だけであり、残りのエリアは正解ラベルに依存しないダミーデータである。このようなデータについても、従来のニューラルネットワークで点データとして学習させた場合には、正解を推定させることができる。
【0193】
図9に、本発明に係る手法で、正解ラベル(数字0)を計算した場合の入力画像の特徴量分布を示す。なお、入力画像は(28×2)×(28×2)=3136ピクセルであり、3136ピクセルの各々についての特徴量分布が得られているが、図示簡略化のため、図9では28×28=784ピクセルにおける特徴量分布が示されている(ピクセルを1つおきに表示)。図9に示す特徴量分布では右上のエリアだけ分布の幅が小さく、この右上のエリアの特徴量分布が重要であることが示されている。
【0194】
図10(a)に、図9の特徴量分布からサンプリングされた入力画像の一例を示す。また、図10(b)に、図10(a)の画像を入力データとしてニューラルネットワークで計算させた場合のソフトマックスの値の棒グラフ(横軸はクラス、縦軸はソフトマックスの値)を示す。図9の特徴量分布からサンプリングされた図10(a)の画像について、ニューラルネットワークは、この画像に対するソフトマックスの値として、図10(b)に示すように、数字0の場合のクラスのみで最大となる推定結果を出力する。図9及び図10(a)、(b)に示すように、本発明の手法によって得られた特徴量分布を参照すると、ニューラルネットワークが入力画像の右上のみを見て判断していることがわかり、特徴量分布によってニューラルネットワークの可視化が可能となる。
【0195】
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
【0196】
上述した本発明の第1の実施の形態では、データの特徴量分布を計算する手法について説明した。本発明の第2の実施の形態では、学習データを使い、さらに本発明の第1の実施の形態で得られた特徴量分布を尤度分布としてとらえて、事後確率分布を計算する。事後確率分布を計算しておけば、図11(a)のグラフ(横軸は入力値、縦軸は事後確率値)に示すように、新規の入力点データ(新しい未知のテストデータ)に対して事後確率分布の値を計算することで、出力される推定結果の確率値、すなわち、どのくらいの確からしさで推定を行っているのかを表す推定の確からしさを計算することができる。
【0197】
事後確率分布は、ニューラルネットワーク中の全ての層のニューロン値で計算することができる。したがって、新規の入力データに対して任意の層で事後確率値を計算でき、最終出力層まで計算しなくても、どのような出力になるのかを把握することができるので、計算の高速化及び簡略化が期待できる。
【0198】
以下に説明するように、前述の特徴量分布(数式58、数式59参照)の出力値は、ある入力点データxinを入力した場合の尤度とみなすことができる。
【0199】
回帰問題の場合には、出力値がyになるような入力データxinの尤度Ll(xin|y)は、以下の数式60で表されると定義する。ここで、出力値yは複数の出力値y1,…,ymaxのうちのどのyの値になるのかを比較する。
【0200】
【数60】
【0201】
分類問題の場合には、あるクラスcになるような入力データの尤度Ll(xin|c)は、以下の数式61で表されると定義する。
【0202】
【数61】
【0203】
前述の数式58、数式59の尤度の式の分母は、分散共分散行列のデターミナント(Determinant)である。行列のデターミナントを計算する際、行列の次元数が大きい場合には非常に高いコンピュータの計算精度が要求される。ニューロン数は層によっては1000以上の膨大な次元数となり、行列のデターミナントの計算が困難な場合もある。さらに、未知のデータxinが与えられたときに、どの出力値y/クラスcであるのかを推定するためには、尤度Llと事前確率Priorlから事後確率Postlを計算しなければならない。
【0204】
回帰問題の場合、出力値yに関して、尤度Ll(xin|y)と事前確率Priorl(y)から計算される事後確率Postl(y|xin)を以下の式のように定義する。
【0205】
【数62】
【0206】
分類問題の場合、クラスcに関して、尤度Ll(xin|c)と事前確率Priorl(c)から計算される事後確率Postl(c|xin)を以下の式のように定義する。
【0207】
【数63】
【0208】
上記の数式62、数式63の分母は、出力値y/クラスcの間で一定の定数であることから、分母を計算せずに分子のみを計算すればよい。さらに数式62、数式63の事前確率Priorlを計算しなくても、尤度Llの分子だけを計算すれば、事後確率Postlに比例する値を計算することができる。これについて、以下に説明する。
【0209】
学習データDatatrainには、回帰問題の場合は、複数の出力値y1,…,ymaxのうちのどのyの値になるのか、それぞれの出力値についての学習データが存在する。また、分類問題の場合は、複数のクラスc1,…,cmaxのうちのどのcの値になるのか、それぞれのクラスについての学習データが存在する。
【0210】
本発明は、事後確率Postlである数式62や数式63は、数式60や数式61の尤度Llの分子にある補正定数を掛けた単純な形で近似的に表現できることを提案する。
【0211】
回帰問題では、事後確率Postlは、補正定数ay、byを用いて以下の式のように表される。
【0212】
【数64】
【0213】
また、分類問題では、事後確率Postlは、補正定数ac、bcを用いて以下の式のように表される。
【0214】
【数65】
【0215】
補正定数aはバイアス値、補正定数bはスケール値であり、補正定数a、bは、数式60や数式61の尤度Llの分母、事前分布prior、そして計算誤差を表す。補正定数は、後述のデータの巨視的特徴を利用したキャリブレーションにより計算することができる。これについて、以下に説明する。
【0216】
出力値y/クラスcのそれぞれの事前確率に関して、テストフェーズで存在するとされる出力値y/クラスcの数をそれぞれNy、Ncとすると、出力値y/クラスcの数は事前確率値と同じ比率を持つため、回帰問題の場合には下記の数式66、分類問題の場合には下記の数式67のように表すことができる。
【0217】
【数66】
【0218】
【数67】
【0219】
そこで、テストフェーズの事前確率を反映する数のデータを用意しておく。ただし、データ数Ny、Ncを多めに用意する。例えば、最低でも1000件以上のデータを用意しておくことが望ましい。そのデータを学習データDatatrainとする。
【0220】
学習データDatatrain全てに対し、それぞれの出力値y/クラスcに関して事後確率Postlの値を計算し、その計算結果の値の集合を集合TotalPl(xin)と表記する(ただし、xinはDatatrainの要素)。この集合はある分布を持つが、それなりに大きい数であるため、白色効果によりガウス分布をなすとみなすことができる。
【0221】
回帰問題に関しては、出力値がyである事後確率値の集合は、以下の式のように表される。
【0222】
【数68】
【0223】
分類問題に関しては、クラスがcである事後確率値の集合は以下の式のように表される。
【0224】
【数69】
【0225】
数式68及び数式69の右辺は、それぞれの出力値y/クラスcの平均値Totalμと分散値TotalΣをパラメータとするガウス分布を意味する。
【0226】
平均値Totalμは、出力値y/クラスcに依存する。また、平均値Totalμは、学習データのデータ数NyやNcに比例した値となるはずである。なぜなら、事後確率値とは、どの出力値y/クラスcになるかという推定の確率値であり、学習データのその値の集合の平均は、学習データの既知の正解ラベルの数に比例しているはずだからである。
【0227】
分散値TotalΣは、前述のデータ数が十分多いという仮定から、どの出力値/クラスに対しても同じ値になると考えられる。なぜなら、データのばらつきである分散は、データの数が十分多い場合にはある一定値に収束しているはずだからである。
【0228】
以上の平均値Totalμと分散値TotalΣに関する条件から、数式64や数式65の補正定数a、bを求めることができる。
【0229】
以上のように事後確率分布の近似式を定義し、その補正定数a、bを計算するまでの処理を図12に示す。図12は、本発明の第2の実施の形態において、事後確率分布の近似式を完成させるための処理の一例を示すフローチャートである。
【0230】
この処理では、図12に示すように、まず、上述した本発明の第1の実施の形態に係る処理によって、データの特徴量分布を計算する(ステップS201)。
【0231】
次に、推定時での各出力値y/クラスcでの事前確率値と同じ比率を持つ学習データDatatrainを用意する(ステップS202)。また、ステップS201で計算された特徴量分布を、尤度を計算する分布の式とみなし、尤度の分子の式から補正定数aを引いて、それを補正定数bで割った式を事後確率分布の近似式とする(ステップS203)。
【0232】
次に、ステップS203において補正定数a、bで定義した事後確率分布の式を用いて、用意した学習データDatatrainに関して、事後確率値を集合として各出力値y/クラスcで計算する(ステップS204)。さらに、各出力値y/クラスcでの事後確率値について、その集合の平均値及び分散値を計算する(ステップS205)。
【0233】
そして、各出力値y/クラスcでの事後確率値について、その集合の平均値が学習データの各出力値y/クラスcの数と比率が同じになるように、さらに、各出力値y/クラスcでの事後確率値について、その集合の分散値が同じ値となるように補正定数a、bを計算する(ステップS206)。以上の計算により補正定数a、bが得られ、この補正定数a、bを使って事後確率分布の近似式を完成させることができる。
【0234】
次に、本発明の第2の実施の形態における情報推定装置の構成について説明する。本発明の第2の実施の形態では、図4に示す情報推定装置1に含まれる重み学習部10、データ特徴量分布計算部20、事後確率分布計算部30、事後確率値推定部40が使用される。重み学習部10及びデータ特徴量分布計算部20は、本発明の第1の実施の形態と同一であり、ニューラルネットワークの任意の層lにおける特徴量分布、すなわち、最適化された分布パラメータを出力する。
【0235】
事後確率分布計算部30は、データ特徴量分布計算部20から出力された最適化された分布パラメータに係る分布を尤度分布とし、尤度分布に事前確率を掛けたものを事後確率分布の式とし、分数で表された尤度分布の分子からバイアス値を引いてスケール値で割った式を事後確率分布の近似式として、事後確率分布の近似式で学習データの事後確率値を計算し、事後確率値の集合からなる分布の平均値及び分散値が、分類問題の場合には全てのクラスで、回帰問題の場合には複数の出力値同士で同じとなるように補正定数a、b(バイアス値及びスケール値)を最適化する機能を有する。事後確率分布計算部30により上述した図12に示すフローチャートの処理が実行される。
【0236】
事後確率値推定部40は、事後確率分布計算部30によって最適化された補正定数a、b(バイアス値及びスケール値)を含む事後確率分布の近似式を用いて、固定値のベクトルからなる入力データに対する事後確率値を計算する機能を有する。
【0237】
以下、本発明の第2の実施の形態に関連する実験について説明する。この実験では、上述した本発明の第1の実施の形態からの継続として、手書き数字データMINSTが使用されている。
【0238】
MNISTの場合、0から9までの10クラス(max=10)が、学習データ及びテストデータともに均一の数だけ用意されている。したがって、MNISTを使用して推定する環境では、事前分布は同じとみなすことができる。
【0239】
【数70】
【0240】
また、これに合った数の学習データを用意する。この場合、MNISTの学習データが均等に存在するので、学習データをそのままキャリブレーション補正のデータDatatrainとして使うことができる。
【0241】
【数71】
【0242】
学習データは6万件と十分な数だけ存在する。したがって、事後確率の値の集合Postl(c|xin)(ただし、xinはDatatrainの要素)の分布に関して、平均Totalμc及び分散値TotalΣcは、各クラスにおいて単純に同一値となるはずである。
【0243】
学習データDatatrainの点データで、図2のニューラルネットワークの最初のFC層における、数式65で定義される事後確率Postlの値の集合(c|xin)(ただし、xinはDatatrainの要素)をそれぞれの出力値y/クラスcで計算した。なお、補正定数は仮の値とし、ac=0、bc=1とした。
【0244】
図13(a)に、その集合の事後確率値をヒストグラムとして示す。図13(a)には、全10クラスのうちの各々のクラスについてのヒストグラムが示されている。図13(a)のヒストグラムから、上述したように補正定数は仮の値で設定されており正しい値ではないため、クラス間でばらばらな分布となっていることがわかる。
【0245】
一方、これらの事後確率の値の集合の分布に係る平均値及び分散値がそれぞれ同じ値となるように補正定数ac、bcを求め、数式65で定義される事後確率Postl(c|xin)の値をヒストグラムとして、図13(b)に示す。この場合には、事後確率分布、厳密には事後確率に比例する確率の分布は、全てのクラスで類似した形状を有しており、きれいにそろっていることがわかる。
【0246】
以上のように、学習データを用いて、事後確率分布を構成する補正定数ac、bcを計算しておけば、推定時に未知のテストデータが来た場合であっても、事後確率分布から事後確率値(すなわち、推定の確からしさ)を各クラスで計算し、推定の確からしさの値が最も大きいクラスを、推定されるクラスと判断することができる。
【0247】
実験では、MNISTの1万件のテストデータの画像に対して、事後確率値がどのクラスで一番高いかを計算した。そして、この計算結果が正解ラベルと合っているかどうかを判定した。
【0248】
この実験の一例として、図14(a)にテストデータとして使用されたMNISTの数字7の画像を示す。また、図14(b)に、図14(a)の画像を入力データとした場合の各クラスごとの事後確率の対数値(Logの値)を示す。図14(b)に示すように、数字7のクラスでの事後確率の対数値が一番大きくなっており、最も確率が高く、推定が正解であることがわかる。
【0249】
同様にこの判定を1万件のテストデータの画像に対して行って得られた各クラスでの正解率を図15に示す。図15の左側(補正前)は、学習データで補正定数を求めなかった場合(仮の値ac=0、bc=1が設定された場合)の正解率、図15の右側(補正後)は、前述の方法で補正定数を求めてから事後確率値を計算した場合の正解率である。仮の補正定数の場合には正解率の平均が0.759であったのに対し、補正定数を求めた場合の正解率の平均は0.907に上がった。なお、学習データから事後確率分布を計算せず、従来のテストデータをそのまま点データとしてフォワード計算してソフトマックス層で推定した場合の正解率は0.92である。したがって、本発明の第2の実施の形態における事後確率値から推定を行う推定結果の正解率は、最終層であるソフトマックス層から出力される推定結果の正解率とほぼ同水準であり、高い正解率で分布から推定できていることがわかる。
【0250】
さらに、事後確率値から、クラスの推定だけではなく、推定の確からしさや確率値を計算することができるため、本発明の第2の実施の形態における手法は、確率値を出力できるニューラルネットワークの推定器に適用することも可能である。
【0251】
(第3の実施の形態)
次に、本発明の第3の実施の形態について説明する。
【0252】
上述した本発明の第2の実施の形態では、事後確率分布を計算する手法について説明した。本発明の第3の実施の形態では、さらに、入力データが点データではなく、ある分布を持つ確率変数からなる分布データである場合においても計算できることを示す。具体的には、本発明の第3の実施の形態では、分布同士の重なり具合を計算することで、事後確率値を解析的に計算する手法を提案する。入力データが分布である場合はデータの値に不確かさや誤差があることを意味するが、このような場合であっても、ニューラルネットワークで扱うことができるようになる。すなわち、本発明の第3の実施の形態によれば、値が分布として表現される不確かさを持つ入力データに対しても、ニューラルネットワークによる推定器を適用することができる。
【0253】
ここで、入力データが、以下の式に表されるように平均ベクトルμin、分散共分散行列Σinで表されるガウス分布の確率変数からなるベクトルであるとする。
【0254】
【数72】
【0255】
数式64や数式65の事後確率Postl(xin)の式において、入力データxinが分布である(すなわち、入力分布データである)ことは、図11(b)のグラフ(横軸は入力値、縦軸は事後確率値)に示すように、ガウス分布からのサンプリングによる出力の期待値、すなわち事後確率値の期待値を計算することを意味する。これを以下の式のように表す。
【0256】
【数73】
【0257】
数式73の期待値の計算方法を以下に示す。
【0258】
【数74】
【0259】
【数75】
【0260】
【数76】
【0261】
これにより、入力データが分布データ、すなわち、ある分布に基づく確率変数であってもニューラルネットワークでの推定が可能となり、推定の確からしさが計算可能となる。応用として、入力データが、測定誤差分布を持つ信号やカルマンフィルタなどの従来の確率手法によって計算される分散値を持つデータの場合であってもニューラルネットワークで扱うことが可能となる。さらに、値が不明の欠損したデータなどについても、適当な仮の固定値で代用して計算を行うのではなく、適度に幅の広い分散値を持つ確率変数として設定して推定計算を行うことが可能となる。
【0262】
また、従来の点データも、デルタ関数のような分散値が小さな幅の分布データであると考えれば、全てのデータは分布データであるととらえることができる。これにより、点データと分布データとが混在するような欠損したデータを処理することも可能である。このようなデータの処理に係る実験として、MNIST画像を用いた計算結果を図16(a)~(f)に示す。
【0263】
図16(a)に通常のMNISTの数字4の画像、図16(b)に当該数字4の画像の一部が灰色で塗られた欠損状態の画像を示す。図16(b)に示す画像では、灰色で塗られた部分が画素のグレースケール値が不明の欠損部分となる。
【0264】
図16(a)、(b)に示す画像を入力画像とし、それぞれの入力画像に対して従来の手法を用いて推定したソフトマックスの値を図16(c)、(d)に示す。これに対し、図16(a)、(b)に示す画像を入力画像とし、それぞれの入力画像に対して本発明に係る計算手法を用いて計算された事後確率値を図16(e)、(f)に示す。図16(c)~(f)は、各クラスに対する推定結果が棒グラフで表されている。
【0265】
入力画像は、グレースケール値が0から1の範囲にあるグレースケール画像である。この実験では、入力画像を点データとして扱う場合には、図16(b)の灰色の欠損部分の画素については、中間値である0.5の値を採用した。一方、入力画像を分布データとして扱う場合には、図16(b)の灰色の欠損部分の画素については、平均値0.5、分散値10のガウス分布であるとみなすとともに、欠損していない部分についても前述のように分布データとしてとらえ、平均値を画素のグレースケール値、分散値を0.001(仮の小さな分散値)とすることで、点データをデルタ関数的な分布データで表現して計算処理を行った。
【0266】
図16(c)に示すように入力画像を点データとしてとらえた場合には、欠損のない数字4の画像(図16(a)の画像)のソフトマックスの値は数字4にスコアが大きく出ている。しかしながら、図16(d)に示すように、欠損のある画像(図16(b)の画像)のソフトマックスの値は、数字8や数字9のスコアが上がり、数字4に関してはスコアが出ていない。すなわち、従来の手法では、灰色の部分の画素の値を0.5という固定値にして計算しているため、この入力画像が数字4の画像である可能性が認識されていない。
【0267】
一方、図16(e)は入力画像を分布データとしてとらえた場合を示している。欠損のない数字4の画像(図16(a)の画像)の事後確率値は、数字4であると認識される。さらに、図16(f)に示すように、欠損のある画像(図16(b)の画像)についても、灰色の部分は0~1の範囲内の様々な値をとる可能性があることが考慮され、数字0、数字4、数字8、数字9の画像である可能性が認識され、これらの可能性がスコアとして出力されている。
【0268】
一般的に、センサーネットワークにおいて、ニューラルネットワークが様々な複数のセンサーから得られたデータを総合して判断する場合に、全てのセンサーから完全なデータが得られた状態で判断を行えることは決して多くはない。むしろ、一部のセンサーからのデータが欠損した状態やデータが不明な状態で判断を行わなければならない場合が多く起こり得る。従来のニューラルネットワークでは適当な値を設定するか、あるいは、それぞれのデータが欠損した場合を想定してニューラルネットワークを学習させておく必要がある。一方、本発明の手法によれば、確率変数からなる分布データに関しても、上述した本発明の第2の実施の形態において得られる事後確率分布を学習データで計算しておくだけで、データが欠損した状態やデータが不明な状態に対処でき、有効な推定結果を得ることが可能となる。
【産業上の利用可能性】
【0269】
本発明は、学習済みのニューラルネットワークがある推定結果を出力するための、ニューラルネットワークの各層におけるデータの特徴量分布を計算することが可能であり、ニューラルネットワークにかかる技術全般に適用可能である。
【符号の説明】
【0270】
1 情報推定装置
10 重み学習部
20 データ特徴量分布計算部
21 伝搬計算部
22 コスト関数計算部
23 分布パラメータ更新部
24 最適化パラメータ出力部
30 事後確率分布計算部
40 事後確率値推定部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16