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

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

▶ ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツングの特許一覧

特開2022-85166データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム
<>
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図1
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図2
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図3
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図4
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図5
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図6
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図7
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図8
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図9
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図10
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図11
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図12
  • 特開-データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022085166
(43)【公開日】2022-06-08
(54)【発明の名称】データ処理装置、ニューラルネットワークの深層学習の方法及びプログラム
(51)【国際特許分類】
   G06N 3/08 20060101AFI20220601BHJP
【FI】
G06N3/08
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020196702
(22)【出願日】2020-11-27
(71)【出願人】
【識別番号】591245473
【氏名又は名称】ロベルト・ボッシュ・ゲゼルシャフト・ミト・ベシュレンクテル・ハフツング
【氏名又は名称原語表記】ROBERT BOSCH GMBH
(74)【代理人】
【識別番号】100177839
【弁理士】
【氏名又は名称】大場 玲児
(74)【代理人】
【識別番号】100172340
【弁理士】
【氏名又は名称】高橋 始
(74)【代理人】
【識別番号】100182626
【弁理士】
【氏名又は名称】八島 剛
(72)【発明者】
【氏名】中里 研一
(57)【要約】
【課題】ニューラルネットワークにあらかじめ目的の特性を付与する。
【解決手段】ニューラルネットワーク(30)の深層学習を行うデータ処理装置(1D)である。データ処理装置(1D)は、パラメータを用いて入力データから予測データを計算するニューラルネットワーク(30)を有し、前記予測データを出力する計算処理部(11)と、あらかじめ関連付けられた入力データと出力データの対である訓練データを用いて、前記パラメータを更新する学習処理を実行する学習処理部(12D)と、を備える。学習処理部(12D)は、前記学習処理の前に、前記予測モデルに特性を付与する前処理を実施する。
【選択図】図11
【特許請求の範囲】
【請求項1】
ニューラルネットワークの深層学習を行うデータ処理装置(1D)において、
パラメータを用いて入力データから予測データを計算するニューラルネットワーク(30)を有し、前記予測データを出力する計算処理部(11)と、
あらかじめ関連付けられた入力データと出力データの対である訓練データを用いて、前記パラメータを更新する学習処理を実行する学習処理部(12D)と、を備え、
前記学習処理部(12D)は、前記学習処理の前に、前記ニューラルネットワーク(30)に特性を付与する前処理を実施する
データ処理装置(1D)。
【請求項2】
前記学習処理部(12D)は、前記前処理において、
前記ニューラルネットワーク(30)に任意のパラメータを設定し、
前記任意のパラメータを、前記訓練データと異なる入力データと出力データの対であるノイズデータを用いて初期化する
請求項1に記載のデータ処理装置(1D)。
【請求項3】
前記学習処理部(12D)は、前記前処理において、
前記ニューラルネットワーク(30)のドロップアウトを実施し、
前記ノイズデータの出力データと、前記ニューラルネットワーク(30)により前記ノイズデータの入力データから計算される予測データとの誤差が小さくなるように、前記任意のパラメータを更新し、
前記更新されたパラメータを、前記学習処理において更新される前記パラメータの初期値として設定する
請求項2に記載のデータ処理装置(1D)。
【請求項4】
前記学習処理部(12D)は、前記前処理において、
前記訓練データを取得するとともに、前記訓練データと異なる入力データと出力データの対であるノイズデータを前記訓練データの密度に応じて取得し、
前記訓練データに前記ノイズデータを混合して、前記学習処理に用いる訓練データ群を生成する
請求項1に記載のデータ処理装置(1D)。
【請求項5】
前記ニューラルネットワーク(30)は、入力層(4a)、隠れ層(4b)及び出力層(4c)を有し、
前記学習処理部(12D)は、前記前処理において、
前記ニューラルネットワーク(30)のドロップアウトを実施し、
前記ニューラルネットワーク(30)の各層におけるドロップアウト率を、前記入力層(4a)から前記出力層(4c)に向かって段階的に減らす
請求項1に記載のデータ処理装置(1D)。
【請求項6】
パラメータを用いて入力データから予測データを計算するニューラルネットワーク(30)の深層学習の方法において、
あらかじめ関連付けられた入力データと出力データの対である訓練データを用いて、前記パラメータを更新する学習処理を実施するステップと、
前記学習処理の前に、前記ニューラルネットワーク(30)に特性を付与する前処理を実施するステップと、を含む
方法。
【請求項7】
パラメータを用いて入力データから予測データを計算するニューラルネットワーク(30)の深層学習を行うためにコンピュータにより実行されるプログラムであって、前記プログラムは前記コンピュータに、
あらかじめ関連付けられた入力データと出力データの対である訓練データを用いて、前記パラメータを更新する学習処理を実施するステップと、
前記学習処理の前に、前記ニューラルネットワーク(30)に特性を付与する前処理を実施するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、ニューラルネットワークの深層学習の方法及びプログラムに関する。
【背景技術】
【0002】
従来、予測モデルの1つとしてニューラルネットワークが知られている。ニューラルネットワークは、入力データと出力データの組み合わせ、すなわち訓練データを学習する。訓練データだけでなく、未知のデータに対しても最適解を出力できるように、予測モデルにおいて出力データの計算に使用されるパラメータが、学習によって最適化される。
【0003】
パラメータの最適化の手法としては、誤差逆伝搬法が知られている。誤差逆伝搬法では、パラメータが大域最適解ではなく、局所解に陥いることがある。これを回避するため、誤差逆伝搬法にドロップアウトのスケジューリングを組み合わせて焼きなましが行われることがある(例えば特許文献1参照)。また、誤差逆伝搬法に代えてモンテカルロ法が用いられることもある(例えば特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第10380484号明細書
【特許文献2】特許第3178884号
【発明の概要】
【発明が解決しようとする課題】
【0005】
パラメータは、与えられた訓練データによって、入力データの特徴を抽出して分類し、最適解を導出するように更新されていく。通常は、パラメータが0や乱数等の任意の値に初期化された状態から、パラメータの更新が開始される。
【0006】
このように、任意のパラメータが設定された初期化状態から学習によって予測モデルが構築されるため、構築された予測モデルの特性は訓練データによって付与される。学習には、あらかじめサンプリングされた訓練データが使用されることが一般的であるが、同じ重みでサンプリングされるとは限らず、目的の特性を予測モデルに付与できないことがある。
【0007】
またニューラルネットワークのような予測モデルは、入力データから出力データが計算される間、入力データをどのように分類しているのか、原理の解明が難しい。どのような学習により予測モデルに目的の特性を付与できるのかが不明であるため、学習内容の設計が難しかった。
【0008】
本発明は、ニューラルネットワークにあらかじめ目的の特性を付与することを目的とする。
【課題を解決するための手段】
【0009】
本発明の一態様は、ニューラルネットワークの深層学習を行うデータ処理装置(1D)である。データ処理装置(1D)は、パラメータを用いて入力データから予測データを計算するニューラルネットワーク(30)を有し、前記予測データを出力する計算処理部(11)と、あらかじめ関連付けられた入力データと出力データの対である訓練データを用いて、前記パラメータを更新する学習処理を実行する学習処理部(12D)と、を備える。学習処理部(12D)は、前記学習処理の前に、前記ニューラルネットワーク(30)に特性を付与する前処理を実施する。
【0010】
本発明の他の一態様は、パラメータを用いて入力データから予測データを計算するニューラルネットワーク(30)の深層学習の方法である。前記方法は、あらかじめ関連付けられた入力データと出力データの対である訓練データを用いて、前記パラメータを更新する学習処理を実施するステップと、前記学習処理の前に、前記ニューラルネットワーク(30)に特性を付与する前処理を実施するステップと、を含む。
【0011】
本発明の他の一態様は、パラメータを用いて入力データから予測データを計算するニューラルネットワーク(30)の深層学習を行うためにコンピュータにより実行されるプログラムである。前記プログラムは前記コンピュータに、あらかじめ関連付けられた入力データと出力データの対である訓練データを用いて、前記パラメータを更新する学習処理を実施するステップと、前記学習処理の前に、前記ニューラルネットワーク(30)に特性を付与する前処理を実施するステップと、を実行させる。
【発明の効果】
【0012】
本発明によれば、ニューラルネットワークにあらかじめ目的の特性を付与することが可能である。
【図面の簡単な説明】
【0013】
図1】第1実施形態のデータ処理装置の構成を示す図である。
図2】多層のニューラルネットワークの一例を示す図である。
図3】データ処理装置の実装例であるシステムの構成を示す図である。
図4】第1実施形態における学習処理のフローチャートである。
図5】第2実施形態のデータ処理装置の構成を示す図である。
図6】ドロップアウトが実施されたニューラルネットワークを示す図である。
図7】第3実施形態のデータ処理装置の構成を示す図である。
図8】第3実施形態における学習処理のフローチャートである。
図9】出力境界の複雑性を概念的に示す図である。
図10】第4実施形態における学習処理のフローチャートである。
図11】第5実施形態のデータ処理装置の構成を示す図である。
図12】第5実施形態における前処理のフローチャートである。
図13】第6実施形態における前処理のフローチャートである。
【発明を実施するための形態】
【0014】
以下、本発明のデータ処理装置、ニューラルネットワークの深層学習の方法及びプログラムの実施の形態について、図面を参照して説明する。以下に説明する構成は本発明の一例(代表例)であり、本発明はこの構成に限定されない。
【0015】
〔第1実施形態〕
図1は、本発明の第1実施形態のデータ処理装置1Aの構成を示す。
データ処理装置1Aは、計算処理部11及び学習処理部12Aを備える。データ処理装置1Aは、ニューラルネットワークの深層学習を行う。深層学習とは、多層のニューラルネットワークの機械学習をいう。
【0016】
(計算処理部)
計算処理部11は、入力データxから予測データyを計算する。予測データyは、複数の解のいずれかに属する確率を表すデータ(例えば0~1の多値)である。計算処理部11はパラメータθが設定された多層のニューラルネットワークを有し、当該ニューラルネットワークによりパラメータθを用いて予測データyの計算を行う。
【0017】
図2は、多層のニューラルネットワーク30の一例を示す。
ニューラルネットワーク30は、入力層4a、2つの隠れ層4b及び出力層4cを含む。入力層4a、隠れ層4b及び出力層4cは、この順に一列に配置され、後続の層と接続される。
【0018】
ニューラルネットワーク30は、各層内に複数のノード31と、各層のノード31を接続する複数のエッジ32と、を備える。各ノード31には、バイアスbのパラメータ及び活性化関数fnが関連付けられている。各エッジ32には、重みwiのパラメータが関連付けられている。
【0019】
ニューラルネットワーク30では、次のような順伝搬計算が行われる。
まず入力データxiが入力層4aの各ノード31に入力される。xiは、i個の変数x1、x2、・・・、xiの集合を意味する。この入力データxiは、入力層4aから隠れ層4bの各ノード31へエッジ32を介して出力される。
【0020】
隠れ層4bの各ノード31では、入力データxiから出力データyiが計算される。下記式(1)及び(2)は、その計算式を示す。
【数1】
上記式(1)及び(2)において、wiはエッジ32に関連付けられた重みを表す。bはノード31に関連付けられたバイアスを表す。fnは、ノード31に関連付けられた活性化関数を表す。
【0021】
計算された出力データyiは後続の層の各ノード31へとエッジ32を介して出力される。後続の層のノード31においては、前層の各ノード31からのi個の出力データyiを入力データxiとして上記と同様の計算が行われる。最終的に、出力層4cのノード31において計算された出力データyiが予測データyとして出力される。
【0022】
なお、ニューラルネットワーク30における層の数及び各層のノード31の数は適宜設定可能である。
【0023】
(学習処理部)
学習処理部12Aは、計算処理部11のニューラルネットワーク30に訓練データを学習させる。学習によって、ニューラルネットワーク30に設定されたパラメータθが更新される。本実施形態の学習処理部12Aは、1つの訓練データを用いてパラメータθを1回更新するオンライン学習だけでなく、複数の訓練データからなる訓練データ群を用いてパラメータθを1回更新するミニバッチ学習を実施することができる。
【0024】
学習処理部12Aは、取得部121、データ保存部122、データ生成部123、更新部124及び混合制御部125を備える。
【0025】
取得部121は、データ保存部122から学習に使用する訓練データD(x,y)を取得する。ミニバッチ学習の場合、取得部121は、複数の訓練データD(x,y)からなる訓練データ群を生成することができる。
【0026】
取得部121は、データ生成部123からノイズデータDn(x,y)を取得し、訓練データD(x,y)にノイズデータDn(x,y)を混合した訓練データ群を生成することもできる。
【0027】
データ保存部122は、訓練データD(x,y)を保存する。訓練データD(x,y)は、あらかじめ関連付けられた入力データxと出力データyの対である。訓練データD(x,y)において、入力データxと出力データyは例題と解の関係にある。
【0028】
データ生成部123は、ノイズデータDn(x,y)を生成する。ノイズデータDn(x,y)は、訓練データD(x,y)とは異なる入力データxと出力データyの対である。ノイズデータDn(x,y)の入力データxと出力データyは、訓練データD(x,y)のように例題と解の関係にあるか否かによらず、互いに独立した関係にある。
【0029】
具体的には、ノイズデータDn(x,y)の入力データxは、訓練データD(x,y)の入力データxと同じデータ空間に存在するデータ群のなかから、任意に抽出される。この入力データxの抽出とは別に、訓練データD(x,y)の出力データyと同じデータ空間に存在するデータ群のなかから、ノイズデータDn(x,y)の出力データyが任意に抽出される。それぞれ独立して抽出された入力データxと出力データyの組み合わせから、訓練データD(x,y)の入力データxと出力データyの組み合わせが排除されたものが、ノイズデータDn(x,y)である。
【0030】
訓練データD(x,y)においては、例題と解の関係があらかじめ認識された入力データxと出力データyとが関連付けられている。例えば猫か犬かを予測する場合、猫の写真から抽出された特徴が入力データxとして、猫を表すデータ(例えば猫が0、犬が1のデータ)が出力データyとして関連付けられる。一方、ノイズデータDn(x,y)においては、そのような猫か犬かの関係が認識されることなく、独立して抽出された入力データxと出力データyとが組み合わせられる。そのため、ノイズデータDn(x,y)においては、あらかじめ認識されてはいないが、実際には猫の特徴を有する入力データxと猫を表す出力データyとの組み合わせを含む場合がある。すなわち、ノイズデータDn(x,y)のなかには、意図せず例題と解の関係にある入力データxと出力データyの組み合わせもあれば、その関係にない組み合わせもある。
【0031】
ノイズデータDn(x,y)の例としては、ランダムビットエンコーダ等から出力されるランダムビットストリングのような任意の入力データと出力データの組み合わせ、又は訓練データD(x,y)から任意の方向に任意の距離だけ離れた入力データxと出力データyの組み合わせ等が挙げられる。
【0032】
本実施形態では、訓練データD(x,y)が保存され、ノイズデータDn(x,y)が生成されるが、これに限定されない。訓練データD(x,y)が生成され、ノイズデータDn(x,y)があらかじめ保存されていてもよい。
【0033】
更新部124は、訓練データ群を用いて計算処理部11におけるパラメータθを更新する。更新は、誤差逆伝搬法によって行われる。パラメータθは、例えば重みwi、及びバイアスb等である。計算処理部11における計算結果に影響を与えるのであれば、層の数、各層中のノード31の数等もパラメータθとなり得る。
【0034】
混合制御部125は、訓練データ群中のノイズデータDn(x,y)の混合比T(T=0~1)を制御する。
【0035】
学習処理部12Aにおいて、訓練データ群を用いたミニバッチ学習は次のように誤差逆伝搬法により実施される。
まず、取得部121は、N個の訓練データD(x,y)を取得する。この訓練データ群のうち、1つの訓練データD(x,y)の入力データxが計算処理部11へ出力され、出力データyが更新部124へ出力される。計算処理部11では入力データxから予測データyが計算される。
【0036】
更新部124は、出力データyと予測データyとの誤差から、目的関数を求める。目的関数は、目標値である出力データyと実測値である予測データyを入力し、その差の評価値を計算して出力する関数である。すなわち、目的関数は目標値と実測値の誤差の大きさを表し、パラメータθが最適かどうかの指標となり得る。
【0037】
更新部124は、訓練データ群の各訓練データD(x,y)について目的関数を計算し、その平均を求める。例えば、平均二乗誤差の場合、下記式(3)により平均された目的関数Eが計算される。
【数2】
上記式(3)において、Nは訓練データD(x,y)の数を表す。yは、訓練データD(x,y)の入力データxに対してニューラルネットワーク30により計算された予測データを表す。yは、訓練データD(x,y)の入力データxと対の出力データを表す。
【0038】
更新部124は、出力データyと予測データyの誤差の平均が小さくなるようにパラメータθを更新する。具体的には、更新部124は、上記式(3)で表す目的関数Eの勾配が最小化するように、更新後のパラメータθを出力層4cから入力層4aに向かう順に、つまり予測データyを計算したときとは逆の順番に計算する。例えば、更新後の重みwi及びバイアスbは、更新前の重みwi及びバイアスbから下記式(4)及び(5)により計算することができる。
【数3】
上記式(4)又は(5)において、ηは学習率を表す。
【0039】
更新部124は、計算処理部11における現在のパラメータθを、上記のようにして計算されたθに更新する。
【0040】
このように、ミニバッチ学習では、各訓練データD(x,y)の入力データxからニューラルネットワーク30により計算される予測データyと、各入力データxと対の出力データyとの誤差の平均が小さくなるように、誤差逆伝搬法によりパラメータθが1回更新される。
【0041】
上記計算処理部11及び学習処理部12Aは、後述する処理手順をコンピュータに実行させるプログラムを、プロセッサ等のコンピュータが記憶媒体から読み出して実行することにより実現され得る。プログラムの記録媒体としては、半導体メモリ、磁気ディスク、光ディスク等が使用できる。
【0042】
図3は、データ処理装置1Aを実装できるシステムの一例を示す。
図3において、システム20は、CPU(Central Processing Unit)等のプロセッサ21、RAM22、ハードディスク等の記憶装置23、通信インターフェイス24、キーボード等の入力インターフェイス25、及びディスプレイ等の出力インターフェイス26等を備える。
【0043】
プロセッサ21は、記憶装置23からプログラムを読み出してRAM22に展開し、実行することにより、計算処理部11及び学習処理部12Aとして機能することができる。記憶装置23は、訓練データD(x,y)を保存するデータ保存部122として機能することもできる。
【0044】
上記に限らず、計算処理部11及び学習処理部12Aは、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等のハードウェアにより実現されてもよい。
【0045】
(学習処理)
本実施形態において、学習処理部12Aは、訓練データD(x,y)にノイズデータDn(x,y)を混合した訓練データ群を用いて、ミニバッチ学習を行う。
【0046】
図4は、学習処理部12Aによる学習処理のフローチャートである。
まず、ステップS11において、混合制御部125が混合比TをT=1に設定する。
【0047】
ステップS12では、取得部121が、訓練データD(x,y)に混合比TのノイズデータDn(x,y)を混合することにより、データ数Nの訓練データ群を生成する。すなわち、訓練データ群は、データ保存部122から取得された混合比(1-T)の訓練データD(x,y)と、データ生成部123から取得された混合比TのノイズデータDn(x,y)との混合物である。T=1の場合、訓練データ群は、すべてノイズデータDn(x,y)からなる。
【0048】
ステップS13では、訓練データ群を用いて学習が行われる。学習時、取得部121は、訓練データD(x,y)の入力データxを計算処理部11に出力し、出力データyを更新部124に出力する。計算処理部11は、入力データxから予測データyを計算する。
【0049】
更新部124は、取得部121から出力された出力データyと、計算処理部11において計算された予測データyとから、各訓練データD(x,y)又はノイズデータDn(x,y)の目的関数を求め、平均する。更新部124は、平均された目的関数Eが最小となるように最適化されたパラメータθを計算する。更新部124は、計算処理部11に設定されているパラメータθを計算されたパラメータθに更新する。
【0050】
学習が終了すると、ステップS14において、混合制御部125は混合比TがT=0か否かを判定する。T=0ではない場合(S14:N)、ステップS15において、混合制御部125は混合比Tを減らす。その後、ステップS12に戻り、減少後の混合比TのノイズデータDn(x,y)と、混合比(1-T)の訓練データ(x,y)とが新たに取得され、混合された訓練データ群を用いて学習が繰り返される。T=0である場合(S14:Y)、すなわち訓練データ群からノイズデータDn(x,y)がなくなると、学習処理を終了する。
【0051】
上記学習処理において、混合制御部125は、学習回数に対して混合比Tを減らす割合を調整することができる。何回学習したときにどれだけ混合比Tを減らすのか、あらかじめ学習回数に対して減らす割合が定められたスケジュールにしたがって、混合制御部125が混合比Tを減少させてもよい。例えば、1回目の学習後に-10%、2回目の学習後に-20%と、学習のたびに混合比Tを減らす割合がスケジュールされてもよい。また、混合比Tは、1及び2回目の学習後は0%、3回目の学習後に-10%、4回目の学習後は0%、5回目の学習後に-50%と、ある一定回数の学習が行われるごとに減らされるようにスケジュールされてもよい。
【0052】
少ない学習回数で急激に混合比Tを減らすと、解の探索時間が短縮化されるが、探索領域が狭くなる傾向がある。一方、多くの学習回数を経て混合比Tを徐々に減らすと、解の探索時間が長くなるが、大域最適解に収束する確率が高まる傾向にある。混合制御部125によれば、大域最適解に短時間で収束するように、学習回数に対する混合比Tを減らす割合を調整することができる。
【0053】
なお、混合比Tを徐々に減らす例を説明したが、一時的に混合比Tを増やすように、混合比Tの変更プロセスがスケジューリングされてもよい。
【0054】
以上のように、第1実施形態によれば、誤差逆伝搬法によって学習を行う場合に、ノイズデータDn(x,y)が混合された訓練データ群を用いてパラメータθを更新するミニバッチ学習が繰り返され、その間に訓練データ群中のノイズデータDn(x,y)の混合比Tが減らされる。
【0055】
誤差逆伝搬法において目的関数Eの勾配にしたがってパラメータθを最適化した場合、大域最適解ではなく局所最適解に陥ることがある。これは誤差が最小となる状態(解)を求めるために、常に目的関数の勾配が最も小さくなる方向へと状態を更新していくと、局所最適解から抜け出せないためである。これを回避するための方法として疑似焼きなまし(シュミレーテッドアニーリング:Simulated Annealing)法が知られている。
【0056】
疑似焼きなまし法は、誤差が増大する状態への更新を許容する。誤差が増大する状態への更新を許容する度合を制御するパラメータは、“温度”と呼ばれる。誤差の増加を許容する“高温”の状態から、誤差の増加を許容しない“低温”へと徐々に冷やしていくことで、局所最適解に陥ることなく大域最適解に到達することが可能である。
【0057】
訓練データD(x,y)と異なるノイズデータDn(x,y)は、誤差が増大する状態への更新を許容する。また、ノイズデータDn(x,y)の混合比Tが大きいほど、誤差は増大しやすい。したがって、混合比Tは疑似焼きなましにおける温度パラメータに相当し、混合比Tを変更しながら学習を繰り返す本実施形態の学習処理は、誤差逆伝搬法において疑似焼きなましを実現している。
【0058】
従来の一般的な疑似焼きなまし法では、初期温度T(0)において訓練データにより目的関数Eを求めた後、パラメータθを変更して再度訓練データにより目的関数Eを求める。パラメータθの変更の前後において、目的関数Eの誤差ΔEが減少している場合はその変更を受け入れ、誤差ΔEが増大している場合はある確率pによってその変更を受け入れ、受け入れない場合は変更が取り消される。
【0059】
例えば、確率pは、現在の繰り返し回数をn、温度をT(n)、誤差の増加量をΔEと表すとき、シグモイド関数を用いて、下記式のように定められる。
【数4】
上記プロセスを、温度T(n)を下げながら繰り返す。それ以上パラメータθの変更が受け入れられなくなるか、又は十分な回数繰り返されるとプロセスを終了する。
【0060】
このように、従来の疑似焼きなまし法を実装するには、目的関数Eの誤差ΔEを計算し、その変化によってパラメータθの変更を受け入れるか否かを判定するための構成の追加が必要である。計算量も増えるため、誤差逆伝搬法と併用するにはシステムへの実装が難しかった。
【0061】
しかしながら、本実施形態によれば、温度パラメータとしてノイズデータDn(x,y)の混合比Tを調整するだけでよいため、特別な計算や判定は不要である。誤差逆伝搬法において疑似焼きなましを簡易に行うことができ、システムへの実装が容易となる。したがって、大域最適解に至りやすく、実装が容易なデータ処理装置1Aを提供することができる。
【0062】
〔第2実施形態〕
ノイズデータDn(x,y)の混合比Tを温度パラメータとして疑似焼きなましを行う第1実施形態において、さらにドロップアウトを組み合わせてもよい。
【0063】
図5は、第2実施形態のデータ処理装置1Bの構成を示す。
データ処理装置1Bは、計算処理部11及び学習処理部12Bを備える。学習処理部12Bは、取得部121、データ保存部122、データ生成部123、更新部124、混合制御部125及びドロップアウト制御部126を備える。
【0064】
取得部121、データ保存部122、データ生成部123、更新部124及び混合制御部125は、第1実施形態と同じ構成である。図5において、第1実施形態のデータ処理装置1Aと同じ構成部分には同じ符号が付されている。
【0065】
ドロップアウト制御部126は、ニューラルネットワーク30のドロップアウトを実施する。ドロップアウトとは、隠れ層4bの一部のノード31を無効化する処理である。無効化されたノード31では入力データxに対する計算が行われず、出力がない。
【0066】
図6は、ドロップアウトを組み合わせた場合のニューラルネットワーク30を示す。
図6において、黒色のノード31はドロップアウトが実施されたノードである。図6の例によれば、2つの隠れ層4bのノード31のドロップアウト率はそれぞれ1/2及び1/3である。
【0067】
ドロップアウト率とは、1つの層においてドロップアウトが実施されたノード31の割合をいう。ドロップアウト率は、目的に応じて適宜設定することができる。ドロップアウト率が高いほど、ニューラルネットワーク30の汎化性能が高まりやすい。したがって、学習した訓練データだけでなく、未知のデータに対しても最適解が得られやすくなる。一方、ドロップアウト率が低いほど、学習したとおりの解が得られやすい。
【0068】
第2実施形態の学習処理部12Bは、ドロップアウト制御部126により計算処理部11のドロップアウトを実施した後、第1実施形態と同じ学習処理を行う。これにより、いくつかのノード31がドロップアウトされた状態で、訓練データ群中のノイズデータDn(x,y)の混合比Tを減らしながらミニバッチ学習が繰り返される。
【0069】
混合比Tを温度パラメータとする疑似焼きなましにより、訓練データD(x,y)に加えてノイズデータDn(x,y)も学習させることができ、ニューラルネットワーク30が学習するデータ数Nを増やすことができる。しかし、ノイズデータDn(x,y)は本来の訓練データD(x,y)とは異なり、例題と解の関係にあるとは限らないため、疑似焼きなましの程度によっては、訓練データD(x,y)以外の入力データに対してニュートラルな予測データ、すなわちどの解でもないという予測結果が出力されることがある。この場合、訓練データD(x,y)の辞書を作成していることと同じであり、未知のデータに対しても最適解を出力するというニューラルネットワーク30の一般性(汎化能力ともいう)を担保できない。
【0070】
これに対し、ドロップアウトは、一部のノード31の計算を無効化するため、入力データの一部の特徴が過剰に評価されることを防ぐことができる。したがって、第1実施形態の疑似焼きなましを実施する学習処理にドロップアウトをさらに組み合わせた第2実施形態では、入力データの一部が欠けても最適解の予測データyが計算されるようにパラメータθが更新される。その結果、ノイズデータDn(x,y)を学習に用いても未知のデータに対する最適解も得られやすくなる。上記のようなニュートラルな出力を減らすことができ、ニューラルネットワーク30の一般性を高めることができる。
【0071】
次の第3及び第4実施形態によれば、ロバスト性が高く、入力がわずかに変化すると出力も変化するという脆弱性が少ないニューラルネットワーク30が提供される。
【0072】
〔第3実施形態〕
図7は、第3実施形態のデータ処理装置1Cの構成を示す。
データ処理装置1Cは、計算処理部11及び学習処理部12Cを備える。学習処理部12Cは、取得部121、データ保存部122、データ生成部123、更新部124及び変換部127を備える。
【0073】
取得部121、データ保存部122、データ生成部123及び更新部124は、第1実施形態と同じ構成である。図7において、第1実施形態のデータ処理装置1Aと同じ構成部分には同じ符号が付されている。
【0074】
変換部127は、訓練データD(x,y)の入力データxに対して計算処理部11から出力された予測データyを、閾値を用いて解データYに変換する。予測データyは、複数の解のいずれかに属する確率を表すデータ(例えば0~1の多値)であるが、解データYは複数の解のうちのいずれかを表すデータ(例えば0又は1の2値)である。
【0075】
図8は、学習処理部12Cにおける学習処理のフローチャートである。
最初にステップS31において、取得部121が訓練データD(x,y)とノイズデータDn(x,y)とを取得し、所定数Nの訓練データ群を生成する。
【0076】
ステップS32において、生成された訓練データ群を用いてミニバッチ学習が行われる。学習時、取得部121は、訓練データ群中の訓練データD(x,y)又はノイズデータDn(x,y)の入力データxを計算処理部11に出力し、出力データyを更新部124に出力する。計算処理部11は、入力xから予測データyを計算する。
【0077】
更新部124は、取得部121から出力された出力データyと、計算処理部11において計算された予測データyとから、各訓練データD(x,y)又はノイズデータDn(x,y)の目的関数を求め、平均する。更新部124は、平均された目的関数Eが最小となるように最適化されたパラメータθを計算し、計算処理部11に設定されているパラメータθを計算されたパラメータθに更新する。
【0078】
ミニバッチ学習が終了すると、ステップS33において、変換部127が、学習に使用されたノイズデータDn(x,y)の出力データyを複数の解データYのうちのいずれかに変換する。変換は一定の確率に基づいて行われる。一定の確率とは、閾値によって与えられる確率である。
【0079】
閾値は、解データYを分類する境界値であり得る。例えば、解データYが0又は1の2値である場合、計算処理部11から得られる0~1の予測データyは、0で表される解と1で表される解のいずれかに属する確率を表す。この2つの解の境界値として0.5が付与される場合、0.5によって予測データyは確率的に解データYに変換される。具体的には、予測データyが0.5以上であれば1の解データYに、0.5未満であれば0の解データYに、確率的に変換される。この例における解データYは、Y=F(x)で表される。F(x)は、ニューラルネットワーク30の入力層4aから出力層4cまでの各層における計算により、入力データxを解データYに変換する関数を表す。
【0080】
閾値はシグモイド関数により決定されてもよい。また閾値は乱数であってもよい。この場合、変換部127は、乱数を取得し、0~1の予測データyが乱数より大きい場合は1の解データYに、乱数より小さい場合は0の解データYに、確率的に変換してもよい。
【0081】
次に、ステップS34において、取得部121が訓練データD(x,y)を取得する。取得部121は、取得した訓練データD(x,y)に変換後のノイズデータDn(x,y)を混合して、所定数Nの訓練データ群を生成する。
【0082】
ステップS35では、生成された訓練データ群を用いて、ステップS32と同様にパラメータθを更新するミニバッチ学習が再度実施される。
【0083】
ステップS36において学習回数が所定回数に至っていない場合(S36:N)、ステップS33に戻る。これにより、ノイズデータDn(x,y)の出力データyの解データYへの変換と、変換後のノイズデータDn(x,y)を含む訓練データ群を用いた学習とが繰り返される。ステップS36において学習回数が所定回数に至ると(S36:Y)、学習処理が終了する。
【0084】
上記学習処理において、変換部127は、学習回数に対して出力データyを変換する回数の割合を調整することができる。変換部127は、何回学習したときに変換を実施するのか、あらかじめ学習回数に対して変換を実施するタイミングが定められたスケジュールにしたがって変換を行ってもよい。例えば、上述のように学習ごとに変換を実施してもよいし、2回の学習に1回の割合で変換を実施することができる。
【0085】
変換部127が学習回数に対して出力データyを変換する回数の割合がある程度大きい方が、予測データyが1つの解に偏ることを抑制しやすく、好ましい。また学習に使用する訓練データ群のデータ数Nに応じて割合が調整されてもよい。
【0086】
以上のように、第3実施形態によれば、学習に使用されるノイズデータDn(x,y)の出力データyが解データYに変換されながら、ミニバッチ学習が繰り返される。これにより、ノイズデータDn(x,y)の出力データyがいずれかの解データYに近づいていく。
【0087】
訓練データD(x,y)は、もともと例題である入力データに対して最適解である出力データが組み合わされているが、ノイズデータDn(x,y)には必ずしもこのような関係性はなく、入力データと出力データの組み合わせが任意である。しかし、第3実施形態では、学習を繰り返すなかで、入力データに対する出力データが最適解である解データYに確率的に近いノイズデータDn(x,y)を学習していくことができる。訓練データD(x,y)と異なる入力データに対しても一定の出力データを組み合わせて学習することができるため、学習させた入力データからわずかに変化した未知の入力データに対しても予測データyが変化しにくくなり、予測のロバスト性が向上する。
【0088】
入力がわずかに変化すると出力も変化する脆弱性は、入力の周辺に対する出力の範囲である出力境界の複雑性によって生じやすい。出力境界の複雑性は、例えば入力の近傍値に対する出力のうち、入力に対する出力と異なる出力がいくつあるかによって評価することができる。
【0089】
図9は、出力境界の複雑性を概念的に示す。
入力の周辺に対する出力境界63が、入力に対する出力点61の周辺になく、複雑性が大きいと、予測が脆弱になり得る。これに対し、上記第3実施形態によれば、ノイズデータDn(x,y)の出力データyを変換して学習を繰り返すにつれて、出力境界63はより複雑性が低い出力境界62に変化する。その結果、入力がわずかに変化しても出力が変化しにくくなる。
【0090】
〔第4実施形態〕
第3実施形態においては、出力データyを一定の確率に基づいて解データYに変換したが、出力データyを次のように変換することによっても、予測のロバスト性を向上させることができる。
【0091】
図10は、第4実施形態における学習処理のフローチャートである。この学習処理は、第3実施形態のデータ処理装置1Cと同じ構成によって実行することができる。
最初にステップS41において、取得部121がノイズデータDn(x,y)を取得する。
【0092】
ステップS42では、取得部121が、ノイズデータDn(x,y)の入力データxを計算処理部11に出力する。計算処理部11は、入力データxに対する予測データyを計算して出力する。
【0093】
ステップS43において、取得部121は、入力データxの周辺に存在する1又は複数の入力データx^を計算処理部11に出力する。周辺の入力データx^とは、入力データxのデータ空間において入力データxに隣接する又は入力データxから一定距離の範囲内にあるデータをいう。データ空間とは、入力データxが有する複数の変数xiをベクトル要素とする高次元空間である。計算処理部11は、各入力データx^に対する予測データy^を計算して出力する。
【0094】
ステップS44において、変換部127は、計算処理部11から得られた各予測データy及びy^が分類される複数の解データYのうち、多数派の解データYを決定する。具体的には、変換部127は、各予測データy及びy^が分類される複数の解データYのなかで同じ解データYの数をカウントし、最もカウント数が多い解データYを多数派の解データYとして決定する。そして、変換部127は、学習に使用したノイズデータDn(x,y)の出力データyを、決定した解データYに変換する。
【0095】
例えば、ノイズデータDn(x,y)の入力データxがランダムに生成された“1010”の4ビットストリングであった場合、入力データxである“1010”の4ビットストリングと、周辺の入力データx^である“1000”、“1001”、“1011”、及び“1100”の4ビットストリングとが計算処理部11に出力される。
【0096】
各入力データx及びx^に対して次のような予測データy及びy^が出力された場合、閾値0.5によって各予測データy及びy^は3つの“0”と2つの“1”の解データYに分類される。
【表1】
【0097】
各入力データx及びx^から求められた5つの解データYのうち、 “0”の解データYの数は3であり、“1”の解データYの数は2である。よって、多数派の解データYは“0”に決定される。入力データxの“1010”と対の出力データyが“1”であった場合、ノイズデータDn(1010,1)は、ノイズデータDn(1010,0)に変換される。なお、多数派の解データYが元の出力データyと同じ“0”であった場合は変換をスキップすればよい。
【0098】
ステップS45では、取得部121が訓練データD(x,y)を取得する。取得部121は、この訓練データD(x,y)に変換後のノイズデータDn(x,y)を混合して、訓練データ群を生成する。
【0099】
ステップS46では、生成された訓練データ群を用いてミニバッチ学習が行われる。学習時、取得部121は、訓練データ群中の各訓練データD(x,y)又はノイズデータDn(x,y)の入力データxを計算処理部11に出力し、出力データyを更新部124に出力する。計算処理部11は、入力データxから予測データyを計算する。
【0100】
更新部124は、取得部121から出力された出力データyと、計算処理部11において計算された予測データyとから、各訓練データD(x,y)又はノイズデータDn(x,y)の目的関数を求め、平均する。更新部124は、平均された目的関数Eが最小となるように最適化されたパラメータθを計算し、計算処理部11に設定されているパラメータθを計算されたパラメータθに更新する。
【0101】
ステップS47において学習回数が所定回数に至っていない場合(S47:N)、ステップS42に戻る。これにより、ステップS46において学習に使用されたノイズデータDn(x,y)の出力データyが多数派の解データYに変換され、変換後のノイズデータDn(x,y)を含む訓練データ群によってミニバッチ学習が繰り返される。ステップS47において学習回数が所定回数に至ると(S47:Y)、学習処理を終了する。
【0102】
第3実施形態と同様に、変換部127は、学習回数に対して出力データyを変換する回数の割合を調整することができる。学習回数に対する変換回数の割合がある程度大きい方が、予測データyが1つの解に偏ることを抑制しやすく、好ましい。また学習に使用する訓練データ群のデータ数Nに応じて学習回数に対する変換回数の割合が調整されてもよい。
【0103】
以上のように、第4実施形態によれば、ノイズデータDn(x,y)の出力データyが、出力データyと周辺の入力データx^の予測データy^とが分類される複数の解データYのうち、多数派の解データYに変換されながら、ミニバッチ学習が繰り返される。これにより、ノイズデータDn(x,y)の入力データxの周辺の入力データx^であれば、同じ予測データyに近づいていく。
【0104】
訓練データD(x,y)は、もともと例題である入力データに対して最適解である出力データが組み合わされているが、ノイズデータDn(x,y)には必ずしもこのような関係性がなく、入力データと出力データの組み合わせが任意である。しかし、第4実施形態では、学習を繰り返すなかで、出力データが入力データの周辺の解データYに同調するノイズデータDn(x,y)を学習していくことができる。したがって、学習させた入力データxからわずかに変化した未知の入力データに対しても予測データyが変化しにくくなり、予測のロバスト性が向上する。
【0105】
上述したように、入力がわずかな変化によって出力も変化する脆弱性は、入力の周辺に対する出力境界の複雑性による。第4実施形態によれば、入力に対する出力が入力の周辺に対する出力の多数派とは異なる場合には、周辺に同調するようにノイズデータDn(x,y)の出力データyを修正することによって、局所的な同調を実現できる。したがって、第3実施形態と同様に出力境界の複雑性を低減することができ、上記脆弱性を減らすことができる。
【0106】
次の第5~第7実施形態によれば、前処理の実行によりニューラルネットワーク30に目的の特性を付与することができる。
【0107】
〔第5実施形態〕
計算処理部11において、パラメータθは通常、任意の値、例えば0や乱数により初期化され、訓練データD(x,y)の学習を繰り返すことによって更新されていく。このパラメータθの初期値は学習の過程や結果に影響する。第5実施形態では、ニューラルネットワーク30に目的の学習特性を付与するように、前処理によってこのパラメータθの初期値を調整する。
【0108】
図11は、第5実施形態のデータ処理装置1Dの構成を示す。
データ処理装置1Dは、計算処理部11及び学習処理部12Dを備える。学習処理部12Dは、取得部121、データ保存部122、データ生成部123、更新部124及びドロップアウト制御部126を備える。これらは第2実施形態と同じ構成である。図11において、第2実施形態のデータ処理装置1Bと同じ構成部分には同じ符号が付されている。
【0109】
図12は、前処理の処理手順を示す。
最初にステップS51において、更新部124が計算処理部11にパラメータθを設定する。このパラメータθの初期値は、0又は乱数等の任意の値である。
【0110】
ステップS52では、ドロップアウト制御部26が計算処理部11のドロップアウトを実施する。ドロップアウト率は、適宜決定することができる。ドロップアウト率が高いほど、最適解の計算に対する入力データの影響が小さくなりやすい。任意の訓練データD(x,y)により計算される目的関数の勾配が類似しやすく、各訓練データD(x,y)に対する感度が下がりやすくなるため、ニューラルネットワーク30に高い一般性を付与しやすい。一方、ドロップアウト率が低いほど、最適解の計算に対する入力データの影響が大きくなりやすい。よって、任意の訓練データD(x,y)により計算される目的関数の勾配が相互に独立化しやすく、学習効率が高まってより多くのデータを学習することができる。
【0111】
ステップS53では、取得部121が所定数NのノイズデータDn(x,y)を取得し、ノイズデータDn(x,y)からなる訓練データ群を生成する。
【0112】
ステップS54では、生成された訓練データ群を用いてミニバッチ学習が行われる。学習時、取得部121は、各ノイズデータD(x,y)の入力データxを計算処理部11に出力し、出力データyを更新部124に出力する。計算処理部11は、入力データxから予測データyを計算する。
【0113】
更新部124は、取得部121から出力された出力データyと、計算処理部11において計算された予測データyとの誤差から、各ノイズデータDn(x,y)の目的関数を求め、平均する。更新部124は、平均された目的関数Eが最小となるように最適化されたパラメータθを計算し、計算処理部11に設定されているパラメータθを計算されたパラメータθに更新する。
【0114】
更新されたパラメータθが、パラメータθの初期値として設定される。この後、訓練データD(x,y)を用いた学習処理が行われ、パラメータθの初期値は訓練データD(x,y)によって最適化されたパラメータθへと更新されていく。
【0115】
以上のように、第5実施形態によれば、訓練データD(x,y)を用いた学習処理の前に、ノイズデータDn(x,y)によってパラメータθが初期化される。
【0116】
パラメータθの初期値が意味のない任意の値ではなく、ノイズデータDn(x,y)を学習した結果であるため、その後の学習処理に用いられる訓練データD(x,y)に対する学習感度が高まる。また、その後の学習処理時に学習させる訓練データD(x,y)とは別に、前処理においてノイズデータDn(x,y)を学習させているため、全体として学習するデータ量を増やすことができる。したがって、学習によってパラメータθが最適化されるまでの時間を短縮化でき、訓練データD(x,y)を効果的に学習できる学習特性をニューラルネットワーク30に付与できる。
【0117】
またノイズデータDn(x,y)の入力データと出力データは、訓練データD(x,y)のように例題と解の関係にあるとは限らないため、ノイズデータD(x,y)の使用によりニューラルネットワーク30に一般性を付与できる。さらにドロップアウトを組み合わせることにより、任意の訓練データD(x,y)に対する感度、すなわち訓練データD(x,y)への出力の依存性を調整することができる。訓練データD(x,y)への出力の依存性を下げることにより、訓練データD(x,y)の入力データから入力がわずかに変化しても出力が変化することを避けることができ、ニューラルネットワーク30の一般性を高めることができる。したがって、前処理によって目的とする一般性をニューラルネットワーク30にあらかじめ付与することが可能である。
【0118】
〔第6実施形態〕
第5実施形態ではパラメータθを初期化する前処理が行われたが、学習に使用する訓練データ群を選択的に取得する前処理によっても、ニューラルネットワーク30に一般性を付与することができる。
【0119】
図13は、第6実施形態の前処理のフローチャートである。
第6実施形態の前処理は、第5実施形態のデータ処理装置1Dにより実行することができる。この前処理は、訓練データ群をあらかじめ準備する処理であり、この訓練データ群は前処理の後に実施される学習処理において使用される。
【0120】
第6実施形態の前処理では、ステップS61において、取得部121が訓練データD(x,y)を取得する。
ステップS62では、データ生成部123が、取得した訓練データD(x,y)の密度に基づいて、ノイズデータDn(x,y)を生成する。
【0121】
訓練データD(x,y)の密度とは、複数の訓練データD(x,y)の入力データxが分布するデータ空間における各入力データxの粗密をいう。上述のように、データ空間とは、入力データxが有する複数の変数xiをベクトル要素とする高次元空間である。
【0122】
入力データxの密度は、N個の入力データx群が与えられ、各入力データxが変数xiを有するとき、入力データxの密度関数により表すことができる。xiをデルタ関数によってδ(x,h)と定義したとき、密度関数p(x)は、p(x)=Σδ(xi,h)/Nで表される。δ(x,h)は、xにおいてのみピークを有し、半径hの裾野を有するガウシアンである。
【0123】
例えば、データ生成部123は、訓練データD(x,y)の密度が高い領域では低い領域に比べてより多くのノイズデータDn(x,y)を生成することができる。具体的には、訓練データD(x,y)のデータ空間においていくつかの訓練データ(x,y)の周辺に、訓練データD(x,y)と同じ密度のノイズデータDn(x,y)が生成されてもよい。あるいは、いくつかの訓練データ(x,y)の重心に位置するデータがノイズデータDn(x,y)として生成され、ノイズデータDn(x,y)の追加によって訓練データD(x,y)の密度が高くなってもよい。
【0124】
一方、データ生成部123は、訓練データD(x,y)の密度が低い領域ではその周辺において同様に密度が少ないノイズデータDn(x,y)を生成することができる。例えば、訓練データD(x,y)のデータ空間においていくつかの訓練データ(x,y)の周辺に、訓練データD(x,y)と同じ密度のノイズデータDn(x,y)が生成されてもよい。
【0125】
このようにしてノイズデータDn(x,y)が追加された訓練データ群によれば、訓練データD(x,y)に応じて異なる一般性をニューラルネットワーク30に付与することができる。
【0126】
具体的には、訓練データD(x,y)の密度が高い領域では、最適解である出力データyが関連付けられた入力データxの近辺に、同じく最適解に関連付けられた入力データxが存在するため、わずかな入力の違いにも出力が敏感に変化して最適解が出力されやすい。すなわち、訓練データD(x,y)の密度が高い領域では、ニューラルネットワーク30の一般性を下げて、識別能力を高めることができる。
【0127】
一方、訓練データD(x,y)の密度が低い領域では、その周辺に訓練データD(x,y)と同じか又は低い密度のノイズデータDn(x,y)が追加され、訓練データD(x,y)の密度が低い領域が拡大する。これにより、未知データの領域が減り、入力がわずかに変化しても出力の変化が少なくなるため、訓練データD(x,y)の密度が低い領域では、ニューラルネットワーク30の一般性を高めることができる。
【0128】
次に、ステップS63において、取得部121は、データ生成部123により生成されたノイズデータDn(x,y)を、データ保存部122から取得した訓練データD(x,y)に混合し、訓練データ群を生成する。
【0129】
なお、データ生成部123がランダムなノイズデータDn(x,y)を生成し、この中から、取得部121が、訓練データD(x,y)の密度に応じたノイズデータDn(x,y)を取得してもよい。
【0130】
一般的に、訓練データD(x,y)は対象から必ずしも均一な重みでサンプルされるわけではなく、訓練データD(x,y)が多くサンプルされた領域もあれば、少ない領域もある。このように、領域によって訓練データD(x,y)の分布状況が異なる場合、どの領域でも同じ出力が期待されているとは限らない。例えば、多くの訓練データD(x,y)がサンプルされた領域では、入力データのわずかな違いによって敏感に出力が変化することが期待される。逆にサンプル数が少ない領域では、入力データがわずかに変化しても同じ出力が期待される。
【0131】
これに対し、第6実施形態によれば、訓練データD(x,y)の密度に応じてノイズデータDn(x,y)が取得される。訓練データD(x,y)が分布するデータ空間に訓練データD(x,y)の密度に応じたノイズデータDn(x,y)を補充できるため、上述した例のように領域ごとに期待される一般性に調整することができる。したがって、ノイズデータDn(x,y)によって、訓練データD(x,y)の密度が異なる領域ごとに異なる一般性を、訓練データ群を生成する前処理によって付与することができる。
【0132】
〔第7実施形態〕
第7実施形態では、ドロップアウト率を制御する前処理により、入力データxを大分類から小分類へと階層的に分類する特性をニューラルネットワーク30に付与する。
【0133】
第7実施形態の前処理は、第5実施形態のデータ処理装置1Dにより実行することができる。この前処理の後に学習処理が実施される。
【0134】
第7実施形態の前処理では、ドロップアウト制御部26により計算処理部11のドロップアウトが実施される。このとき、ドロップアウト制御部26は、入力層4aから出力層4cに向かうにつれて、各層のドロップアウト率を段階的に低く設定する。
【0135】
例えば、3つの隠れ層4bをドロップアウトする場合、入力層4aから出力層4cまでの各隠れ層4bのドロップアウト率が50%、25%、10%の順に設定され得る。
【0136】
以上のように、第7実施形態によれば、入力層4aから出力層4cに向かって隠れ層4bのドロップアウト率が低下する。入力データxがi個の変量xiを有する場合、隠れ層4bの各ノード31における計算は、入力データxの各変量xiから特徴を抽出し、分類する機能を有する。ドロップアウトは、このようなノード31の分類機能を停止させる。
【0137】
したがって、上記のようなドロップアウト率の勾配制御により、入力層4a側は分類機能が停止するノード31が多く、出力層4b側はそのようなノード31が少なくなる。言い換えると、入力層4aから出力層4cに向かうほど隠れ層4bの分類機能がより働きやすくなり、細かい分類が可能となる。その結果、大分類から小分類へと階層的に入力データxの各変量xiが分類され、特徴付けられていく。
【0138】
このように、第7実施形態によれば、前処理によって、大分類から小分類へと階層的に入力データxを分類する特性をニューラルネットワーク30に付与することができる。
【0139】
一般的に、ニューラルネットワークは、どのようにして予測するのか、予測の原理を解明することが難しい予測モデルである。しかし、ニューラルネットワークであっても、上記のような階層的な分類機能を有する予測モデルは、ユーザが予測の原理を理解しやすい。よって、ユーザが学習内容を設計しやすく、また予測結果を運用しやすくなる。
【0140】
上述した第1~第7実施形態は、適宜組み合わせることができる。例えば、第5実施形態の前処理においてパラメータθを初期化した後、この初期化されたパラメータθを用いて第1実施形態における学習処理が行われてもよい。また第2実施形態においてミニバッチ学習に使用する訓練データ群を生成する際に、第6実施形態を組み合わせて、訓練データ群を生成する前処理が行われてもよい。
【0141】
本発明のデータ処理装置の適用例としては、車両の運転支援等が挙げられる。例えば、車両に搭載されたカメラ、車速センサ、操舵角センサ、又はGPS等の各種センサからのデータを入力データとして、目的の操舵量、又は走行速度等をデータ処理装置により予測してもよい。またカメラ、ミリ波レーダ等からのデータを入力データとして、周辺車両又は歩行者との衝突の可能性をデータ処理装置により予測してもよい。
【0142】
車両に限らず、例えばビッグデータの解析や、X線撮影された画像データにおける病変部の検出等、様々な目的で本発明を利用できる。
【0143】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されない。本発明の範囲内で適宜変更することができる。
【0144】
例えば、ニューラルネットワークの入力層4a、隠れ層4b及び出力層4cのように一列に接続された複数の計算モジュールを備え、重みwi及びバイアスbiのように計算モジュールに関連付けられたパラメータを用いて、前段の計算モジュールからの出力に対して計算を行い、この計算の結果を後続の計算モジュールへ出力することにより、予測データを計算する予測モデルであれば、ニューラルネットワーク以外の予測モデルにも本発明を適用することができる。
【0145】
本発明は、敵対的生成ネットワーク(GAN:Generative Adversarial Network)に使用されるニューラルネットワークにも適用することができる。一般的に、GANでは、Generatorと呼ばれるニューラルネットワークと、Discriminatorと呼ばれるニューラルネットワークが用いられる。Generatorは与えられたデータから偽のデータを生成し、Discriminatorは生成された偽のデータの真偽を本物のデータを使用して判別する。その判別結果に応じてGeneratorはより本物のデータに近い偽のデータを生成する。このように競合して学習するGenerator及びDiscriminatorにも、本発明を適用することが可能である。
【符号の説明】
【0146】
1A~1D・・・データ処理装置、11・・・計算処理部、12A~12D・・・学習処理部、121・・・取得部、124・・・更新部、125・・・混合制御部、126・・・ドロップアウト制御部、127・・・変換部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13