【文献】
大枝 真一 他,「進化論に基づくニューラルネットワークの構造適応学習アルゴリズムの構成」,情報処理学会論文誌,社団法人情報処理学会,2002年 8月15日,第43巻 第8号,第2728頁-第2738頁
【文献】
米澤 保雄,「人工生命 コンピュータに宿る生命」,bit,共立出版株式会社,1993年 7月 1日,第25巻 第7号,第15頁-第25頁
【文献】
吉村 具実 他,「素子単位の遺伝的アルゴリズムを利用した神経回路網の最適構造決定法」,電子情報通信学会技術研究報告,社団法人電子情報通信学会,1998年 3月20日,第97巻 第624号,第39頁-第46頁
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
本発明の実施形態について説明する。この実施形態においてはこの実施形態における方法では並列化した逆伝搬学習の1ステップ(1 epoch)ごとにGAにおける選択と変異とをおこなうことによって、従来の逆伝搬学習法およびそれとGAとをくみあわせた方法と同様に学習結果としてニューラルネットを最適化するとともに、従来の方法においてはできなかった逆伝搬学習過程における学習率の最適化がなされる。
【0014】
(全体構成)
図5を使用してこの実施形態の全体構成すなわちデータ識別用ニューラルネット設計ツール500の構成と動作の概要を説明する。データ識別用ニューラルネット設計ツール500は画像データの識別などのためのニューラルネットをユーザが設計するためのツールであり、学習用のデータである原データ504と、原データ504を説明する教師情報505が入力される。原データ504としてはビデオや静止画を入力することができ、教師情報505はそのビデオや静止画のどの位置に識別するべき情報たとえば車両または歩行者が存在するかを指示する複数の矩形領域(bounding box)の情報をふくむ。設計されたニューラルネットは識別用ニューラルネット508のためのおもみ、バイアスというかたちで学習用ニューラルネット群507からとりだされる。この設計結果はテストデータとして識別するべきデータ509をあたえてテストすることができ、その結果として識別結果出力510が出力される。
【0015】
学習制御コンピュータ501はユーザの入力を学習制御プログラム502につたえ、学習制御プログラムからの出力をユーザにつたえる端末である。また、学習制御コンピュータ501は学習制御プログラム502、学習データ生成プログラム503、複数のニューラルネットによって構成される学習用ニューラルネット群507および識別用ニューラルネット508をそのうえで動作させることも可能であり、これらのプログラムの入出力である原データ504、教師情報505、教師情報つき学習データ506、識別するべきデータ509、および識別結果出力510を格納することができる。ただし、学習データ生成プログラム503、学習用ニューラルネット群507、識別用ニューラルネット508、原データ504、教師情報505、教師情報つき学習データ506、識別するべきデータ509、および識別結果出力510は学習制御プログラム502から指示される他のコンピュータ上に格納し実行させることもできる(
図6参照)。
【0016】
ユーザは学習制御コンピュータ501に原データ504および教師情報505としてどのデータを使用するかを指示する情報、学習データ生成プログラム503、ならびに、学習用ニューラルネット群507および識別用ニューラルネット508のためのパラメタを入力する。学習用ニューラルネット群507のためのパラメタは、後述するようにニューラルネットの数すなわち個体数、ニューラルネットのおもみおよびバイアスをランダムにきめるための乱数の種、複数のニューラルネットのおもみおよびバイアスの分布をきめる正規分布などの分布関数、平均値および標準偏差、ならびに、学習率の初期値の平均値および標準偏差をふくむ。ただし、これらの値として既定値を使用するときはユーザはそれを入力する必要はない。また、この入力はニューラルネットの停止条件としてステップ数(epoch数)の上限や誤差の目標値、学習率の目標値をふくむことができる。ユーザはこの入力の際に識別するべきデータ509もあわせて入力することができる。
【0017】
ユーザの指示によって学習制御プログラム502は学習データ生成プログラム503を動作させ、教師情報つき学習データ506を生成させる。原データ504は比較的おおきなサイズ(たとえば640×480)のフレーム画像であり、そのままでは学習用ニューラルネット群507があつかえないため、1枚のフレーム画像を使用して比較的ちいさなサイズ(たとえば24×48)の多数のパッチ画像を生成し、教師情報つき学習データ506とする。これらの画像は学習データ生成プログラム503が教師情報505を使用することによって正例すなわち検出するべき画像と負例すなわち検出するべきでない画像とに分類されるため、教師情報つき学習データ506においてはその分類が画像と1対1に対応するかたちで格納される。教師情報505においては検出するべき画像がクラスわけされていることもあり、この場合には教師情報つき学習データ506にはそのクラスが格納される。すなわち、パッチ画像とクラスとの対が格納される。
【0018】
ユーザの指示によって学習制御プログラム502は学習用ニューラルネット群507を動作させて逆伝搬学習をおこなう。すなわち、教師情報つき学習データ506がふくむ画像をニューラルネットに入力し、その出力と教師情報との差にもとづいて学習用ニューラルネット群507のウェイトとバイアスを更新することがくりかえされる。複数のニューラルネットを学習させる方法は後述する。
【0019】
図6は、本発明の実施形態のデータ識別用ニューラルネット設計ツール500のハードウェア構成を説明するブロック図である。
【0020】
本実施形態のデータ識別用ニューラルネット設計ツール500は、例えば、ネットワーク630によって相互に接続された計算機600、610および620によって実現することができる。
【0021】
計算機600は、
図5の学習制御コンピュータ501に相当し、相互に接続されたCPU(Central Processing Unit)601、メモリ602、I/F(Interface)603およびHDD(Hard Disk Drive)604を有する。CPU601は、メモリ602に格納されたプログラムを実行するプロセッサである。メモリ602は、CPU601によって実行されるプログラム及び処理されるデータ等を格納するいわゆる主記憶装置である。本実施形態のメモリ602は、学習制御プログラム502を格納する。本実施形態において学習制御プログラム502が実行する処理は、実際には、CPU601が学習制御プログラム502に従って実行する。I/F603は、ネットワーク630を介して計算機610および620との間でデータを送受信する。HDD604は、CPU601によって実行されるプログラム及び処理されるデータ等を格納するいわゆる補助記憶装置である。例えば学習制御プログラム502がHDD604に格納され、必要に応じてメモリ602にコピーされてもよい。
【0022】
計算機610は、相互に接続されたCPU611、メモリ617、I/F616およびHDD615を有し、さらに、CPU611に接続されたGPU(Graphics Processing Unit)612を有する。CPU611は、メモリ617に格納されたプログラムを実行するプロセッサである。メモリ617は、CPU611によって実行されるプログラム及び処理されるデータ等を格納するいわゆる主記憶装置である。本実施形態のメモリ602は、学習データ生成プログラム503を格納する。本実施形態において学習データ生成プログラム503が実行する処理は、実際には、CPU611が学習データ生成プログラム503に従って実行する。I/F616は、ネットワーク630を介して計算機600および620との間でデータを送受信する。HDD615は、CPU611等によって実行されるプログラム及び処理されるデータ等を格納するいわゆる補助記憶装置である。本実施例のHDD615は、原データ504および教師情報505を格納する。
【0023】
GPU612は、複数のプロセッサコア613及びメモリ614を有するプロセッサである。本実施例のメモリ614には、学習用ニューラルネット群507および教師情報つき学習データ506が格納される。本実施形態の学習用ニューラルネット群507の動作は、GPU612によって実行される。
【0024】
なお、教師情報つき学習データ506は、原データ504および教師情報505から学習データ生成プログラム503によって生成されると、HDD615に格納され、その後、CPU611によってメモリ614にコピーされてもよい。同様に、学習用ニューラルネット群507は、HDD615またはメモリ617に格納され、CPU611によってメモリ614にコピーされてもよい。
【0025】
学習用ニューラルネット群507に含まれる各学習用ニューラルネットは、メモリ614に格納された各学習用ニューラルネットに含まれるニューロン間の重みおよびバイアス等の構造パラメタのセットと、それらの構造パラメタおよび入力された学習データに基づいて出力を計算し、その出力の評価に基づいて所定の学習方法(たとえば逆伝搬学習)による学習を行うプログラムと、に対応する。すなわち、各学習用ニューラルネットは、GPU612が構造パラメタを使用して対応するプログラムを実行することによって実現されるシステムである。
【0026】
計算機620は、相互に接続されたCPU621、メモリ626、I/F625およびHDD627を有し、さらに、CPU621に接続されたGPU622を有する。CPU621は、メモリ626に格納されたプログラムを実行するプロセッサである。メモリ626は、CPU621によって実行されるプログラム及び処理されるデータ等を格納するいわゆる主記憶装置である。I/F625は、ネットワーク630を介して計算機600および610との間でデータを送受信する。HDD627は、CPU621等によって実行されるプログラム及び処理されるデータ等を格納するいわゆる補助記憶装置である。
【0027】
GPU622は、複数のプロセッサコア623及びメモリ624を有するプロセッサである。本実施例のメモリ624には、識別用ニューラルネット508、識別するべきデータ509および識別結果出力510が格納される。本実施形態の識別用ニューラルネット508の動作は、GPU622によって実行される。
【0028】
なお、識別用ニューラルネット508および識別するべきデータ509は、HDD627またはメモリ626に格納され、CPU621によってメモリ624にコピーされてもよい。また、識別結果出力510は、CPU621によってメモリ624からメモリ626またはHDD627にコピーされ、さらに、必要に応じてI/F625およびネットワーク630を介して計算機600等に送信されてもよい。
【0029】
なお、
図6はデータ識別用ニューラルネット設計ツール500のハードウェア構成の一例であり、実際には種々の変形例があり得る。例えば、計算機610が複数のGPU612を有してもよい。その場合、各GPU612のメモリ614に、学習用ニューラルネット群507に含まれる各学習用ニューラルネットと、教師情報つき学習データ506とが格納され、それぞれのGPU612が一つの学習用ニューラルネットの学習を行ってもよい。これによって、複数のニューラルネットの学習が並列に実行されるため、学習に要する時間が短縮される。
【0030】
あるいは、計算機600、610および620のいずれか二つまたは全部の機能が一つの計算機によって実現されてもよい。あるいは、上記の例においてGPU612等が実行する処理が、CPU611等によって実行されてもよい。あるいは、HDD604等がフラッシュメモリ等のHDD以外の種類の記憶装置によって置き換えられてもよい。
【0031】
(染色体の表現)
この実施形態においては、
図1のように多層ニューラルネットのパラメタが遺伝的アルゴリズム(GA)の染色体にエンコードされる。1個の個体は1個の染色体だけをもつため、染色体と個体はここでは同義である。
図1(a)には3層パーセプトロンの例をしめす。結合のおもみ101を染色体上にエンコードする点は従来のニューラルネットとGAをくみあわせた方法におけるエンコード法と同様だが、本実施形態ではさらに学習率(learning rate)102もあわせてエンコードされている。なお、
図1(a)においてはニューロン間の結合パラメタのうちおもみだけを記述しているが、定数項すなわちバイアスも染色体にエンコードすることができる。また、ここではニューラルネットの構造は固定にしているため構造は染色体上に表現されていないが、構造も表現することによって、学習過程において所定の変異規則にしたがってニューロンおよびニューロン間結合を変更(たとえば削除)するような構造最適化もGAを使用して実現することができる。すなわち、染色体を可変長にし、各ニューロンのパラメタを記述する(ニューロンを削除する際にはそれ全体を削除する)ようにしたり、ニューロン間の結合に関するパラメタを記述する(結合を削除する際にはそれを削除する)ようにすることができる。
【0032】
図1(b)には、画像認識などにおいてよく使用されるたたみこみニューラルネット(CNN)のエンコードをしめしている。
図1(a)と比較するとパラメタ数は増加し染色体の規模が拡大するが、パラメタをエンコードするという点においてはおなじである。
【0033】
染色体の構造はすべての個体について同一である必要はない。すなわち、ことなる構造の(たとえばニューロン間の結合がことなる、またはニューロン数およびニューロン間の結合がことなる)ニューラルネットを使用して計算をおこなうことができる。この場合でも変異は同様におこなうことができる。GAにおいては変異のほかに交叉という演算が使用されるが、同一の構造をもつ染色体間ではもちろん、ことなる構造をもつ染色体間でも交叉をおこなうことが可能である。たとえば、2個のニューラルネットのそれぞれをいずれかの層のあいだで分割するか、特定の層において2分割して、それらを交叉してくみあわせることが可能である。この際には、切断する結合の数がひとしくなるようにすれば単純に再接続するだけでニューラルネットの構造を維持することができるが、結合が不足するときはおもみ0の結合を導入したり、結合に剰余がでるときには結合を削除することによって、ニューラルネットの構造を再構築することができる。
【0034】
なお、染色体へのコーディングは多層ニューラルネットにかぎらず、学習または最適化・探索のための他の種類のシステムにおいても適用することができる。すなわち、システムの構造パラメタ(ニューラルネットにおける結合のおもみに相当)と学習パラメタまたは最適化・探索の過程を制御するパラメタ(学習率に相当)をコーディングし、変異および交叉の操作を適用することができる。
【0035】
(学習法)
以下、
図2を使用して逆伝搬学習とGAとをくみあわせた学習法について説明する。この学習法をLOG−BP学習法(learning-rate-optimizing genetic back-propapation 学習法)とよぶ。この学習法においては、前節でしめした染色体を複数用意して並列に逆伝搬学習をおこなうことによって、それらの染色体上のおもみは自律的に変異する。また、学習率は確率的に変異させる。
【0036】
まず、
図2のプログラム(すなわち学習用ニューラルネット群507にふくまれるプログラム)がくみこまれたコンピュータ(
図6の例では計算機610)が、染色体の初期化をおこなう(201)。個体数は可変とすることもできるが、ここでは固定数(たとえば20個)とする。それらの染色体がもつおもみと学習率は乱数によってきめられる。おもみの初期化は通常の逆伝搬学習におけるのと同様におこなえばよいが、たとえば正規分布する乱数によっておもみやバイアスをきめてもよい。学習率も乱数を使用して適度に分布させるが、たとえば正規分布によってきめればよい。学習率は発散頻度がたかくなりすぎない程度に、比較的おおきな値にするのがよいとかんがえられる。これらの初期値をきめるためのパラメタは学習制御プログラム502を経由して外部から入力することができる。すなわち、学習の開始前に学習率、おもみの平均値、標準偏差、分布の形状、および乱数の種を指定することができる。
【0037】
つぎに、コンピュータは、各個体について逆伝搬学習の1ステップ(1 epoch)をおこなう(203)。このステップがGAにおける1世代に相当する。たとえば、コンピュータは、画像データを学習させるときには、あらかじめ、できるだけ多数の画像データを訓練データとして用意し、その一部を検証用データとしてとりわける。また、おなじ形式の画像からなる評価用データを必要に応じて用意する。そして、コンピュータは、すべての訓練データを1回、学習させる(画像データを使用した学習に関しては後述する)。ミニバッチを単位とする確率的勾配降下法(すなわち、訓練データのすべてを一度に学習させる最急降下法とも、1個ずつ学習させる基本的な確率的勾配降下法ともちがって、ある程度ずつまとめて学習させる方法)を使用するときは、配列に格納した訓練用データをミニバッチごとに分割して1回ずつ逆伝搬させて学習させる。このとき、学習率としては各染色体にエンコードされた値を使用する。
【0038】
つぎに、コンピュータは、学習によって変化したおもみによって、染色体上のおもみを更新する(204)。すなわち、この方法においては染色体上のおもみの値は外的に変化させるのではなくて、乱数と各個体の学習にもとづいて自律的に更新される。すなわち、Darwin的な遺伝ではなく、獲得形質がそのまま遺伝するLamarck的な遺伝を実現する。ただし、おもみの更新を変異とかんがえれば、この過程はGAの基本に一致する。
【0039】
つぎに、コンピュータは、更新された各個体(もとの個体の無性生殖による卵子)に関して、検証用データを使用して評価をおこなう(205)。十分な評価値をもつ個体があれば、ここで計算を終了すればよい(206)。十分な評価値をもつ個体がないときは、評価結果がエラー率であれば値はひくいほどよいから、コンピュータは、その値にもとづいて選択をおこなう。すなわち、値が最大のものすなわち評価が最悪の個体(すなわち染色体)は殺して(すなわち削除して)、最小のものすなわち評価が最良の個体をコピーする(2卵性双生児を生成する)(207)。これによって個体数は不変になる。ただし、生成(コピー)確率と死滅確率とを同一にしないことにより、個体数がしだいに増加または減少するようにすることも可能である。コンピュータは、コピーによって生成された個体に関してはつぎの式にしたがって染色体上の学習率ηを変異させる。
【0040】
η' = fη (確率 0.5)
η' =η/f (確率 0.5)
【0041】
すなわち、どちらの式を適用するかは乱数によって等確率になるように決定する。fはたとえば1.2くらいの値であり、適応的な逆伝搬学習法において使用される規則(この規則は本来はGAとは無関係)にちかい。ただし、上記の式による学習率の変更は一例であり、評価が最良の個体の学習率とそれをコピーすることによって生成された個体の学習率とが相違するように決定されるかぎり、例えば両方の学習率を変更するなど、上記以外の方法によって学習率を決定してもよい。また、上記の例では、評価が最悪の個体が削除されて、評価が最良の個体のコピーが生成されるが、コピーが生成される個体の評価が削除される個体の評価よりよいかぎり、削除とコピーの対象を評価が最悪の個体と最良の個体とに限定する必要はない。
【0042】
また、処理207における染色体の削除は、当該染色体をそれ以降の機械学習の処理から除外するための処理の一例であり、実際にその染色体をメモリ614から削除してもよいし、その染色体をメモリ614に残したまま、例えば学習制御プログラム502がそれ以降のepochにおいてその染色体に関する機械学習を行わないように学習を制御するなどの方法でその染色体を機械学習の処理から除外してもよい。以下の説明における染色体の削除も同様である。
【0043】
コンピュータは、適切な解がえられるまで、あるいは変化がほとんどおこらなくなるまで、上記のステップ(epoch)を反復して計算する(209)。計算停止の条件は通常の逆伝搬学習法におけるのと同様にきめればよい。処理202および208はこの反復にかかわるパラメタの初期化および更新のための処理である。
【0044】
上記ではステップごとに選択と変異をおこなうように記述したが、実際にはステップごとの選択と変異の回数の平均値を選択・制御するのがよいとかんがえられる。すなわち、各ステップにちょうど1回の選択・変異をおこなうのでは、個体数がすくないときはその回数は過大になり、個体数がおおいときにはその回数は過小になる。そのため、ステップごとに選択・変異をおこなう回数の平均値をあらかじめきめておいて、実際の回数は確率的にきめればよい。選択回数が過大であれば探索範囲がはやくせばまりすぎるし、過小であれば探索範囲がひろくなりすぎるとかんがえられる。選択回数を適切に制御することによって、計算開始時には広域を探索し、徐々に探索範囲をせまくすることができ、うまく解をもとめることができるという効果がある。
【0045】
なお、ニューラルネットのかわりに他の学習システムまたは最適化・探索システムを使用するときは、反復実行されるその学習や最適化・探索の1ステップごとに評価をおこない、その結果にもとづいて選択をおこない、学習過程を制御する学習パラメタあるいは最適化・探索過程を制御する最適化・探索パラメタの値を変異させる。この変異に関しては、これらのパラメタの複数の値のあいだに距離(スカラー値のときは差)が定義できるときは乱数を使用して距離のちかいパラメタ値を生成すればよい。また、距離が定義できないときはいずれかことなる値を乱数によって選択すればよい。
【0046】
(学習法と応用範囲に関する補足)
以下、LOG−BP学習法の変異とその応用範囲拡大に関する6点について記述する。第1に、各個体は検証用データにもとづく評価値を参照し、それを学習に反映させることができる。上記のアルゴリズムにおいては選択のためにもその評価値を使用しているが、選択は外的なものとかんがえられるから、選択のための評価値はそれとはべつにあたえることが可能である。たとえば、検証用データ以外に評価用データをあたえ、選択にはそれを使用することもかんがえられる。すなわち、各個体による選択基準(逆伝搬学習における基準)と外的な選択基準(GAにおける基準)としてことなる基準を使用することができる。
【0047】
第2に、前記の方法においてはニューラルネットの構造およびパラメタは選択・変異によって変化しない。以下の評価においては拡張はおこなわないが、構造およびパラメタを最適化する目的でこれを拡張し、変異および交差を使用することは可能である。たとえば、各染色体が各ニューラルネットのニューロン数およびニューロン間の結合の有無を示す情報を含み、計算機610は、処理207において、所定の変異規則に基づいて染色体を変異させることによって、ニューロン間の結合を切断したり、ニューロンを消滅させたりすることができる。後述するニューロンの追加も同様である。ニューラルネット以外のシステムを使用するときも、同様の方法によってその一部を変更・削除することができる。
【0048】
第3に、変異によってニューロンを追加することも可能である。ニューロンを追加する際、それによってすでにおこなった学習を無効にしないためには、おもみの値をちいさくすればよいとかんがえられる(おもみが0ならば追加しないのとおなじになる)。ただし、それでは追加したニューロンが活性化されない可能性もある。訓練データを増加させずにニューロンを追加すると過剰適合が発生し、みかけ上は評価値が向上しやすいとかんがえられる。そのため、ニューラルネットの規模がちいさいときに評価値が向上するように評価関数をきめるのがよいとかんがえられる。たとえば、評価値の一部として最小記述長(minimul description length, MDL)をくわえる(いいかえればdescription length penalty をあたえる)ことがかんがえられる。すなわち、ニューラルネットのモデルの記述長を評価値の一部とする。染色体がニューラルネットの構造を記述しているときには、それはモデルを記述したものということができるから、染色体のながさを記述長として使用することができる。ニューラルネット以外のシステムを使用するときも、その一部を追加することができる。
【0049】
第4に、すでに補足説明してきているように、LOG−BP学習法は上記のようにニューラルネットへの適用において拡張できるだけでなく、他の学習法への拡張も可能である。すなわち、分類・検知などをおこなう(ニューラルネットに対応する)システムが存在し、それを訓練するための学習法が存在するとする。その学習は反復的におこなわれ、また学習を制御するパラメタが存在するとする。このとき、反復の過程で学習の効果を評価する方法があたえられていれば、ニューラルネットの逆伝搬学習におけるのと同様に本学習法(LOG学習法)を適用することができる。すなわち、システムの構造をきめるパラメタを染色体として表現し、複数の染色体を初期化して学習を開始し、学習、評価、変異・選択を反復していく。変異の対象となる学習制御パラメタは実数値である必要もなく、単にそれを他の値に変異させる方法が前記の変異のための2個の式のかわりにあたえられればよい。
【0050】
第5に、上記の実施形態においては全個体が同種のニューラルネットだったが、個体ごとに異種のニューラルネットあるいは他の学習法を使用する個体であっても、評価関数をそろえて学習パラメタとその変異の方法を指定すれば上記の方法によって評価し、選択・変異させることができる。すなわち、ニューラルネットと他の学習法を混合して適用することができる。具体的には、たとえば、学習用ニューラルネット群507が、ニューロン間の結合の有無が異なる複数のニューラルネットを含んでもよいし、ニューロン数及びニューロン間の結合の有無が異なる複数のニューラルネットを含んでもよい。それらのすべてについて逆伝搬学習を使用してもよいし、ニューラルネットごとに異なる学習法を使用してもよい。これによって、異種のニューラルネットまたは異種の学習法のなかで最適なものを特定することができる。
【0051】
第6に、上記の実施形態においては1台のコンピュータ上(例えば
図6の計算機610)での学習を基本としたが、複数台のコンピュータ(例えば複数の計算機610)を用意し、各コンピュータに1個の染色体をわりあてることによって、これらのコンピュータが有するプロセッサ(例えば各計算機610のCPU611またはGPU612)によって並列計算をおこなうことができる。各染色体の評価値は1台のコンピュータにあつめて選択をおこなうことができる。つぎのepochにすすむ際にはそれらのコンピュータのうちの1台または複数台の染色体をいれかえる必要があるが、この操作は少量のデータをコンピュータ間で交換することによっておこなうことができる。ことなるパラメタを使用した通常の逆伝搬学習を複数のコンピュータ上でおこなうことは従来技術によって実現できるが、それと比較すると上記のような方法をとることによってより高速に、またより最適にちかい値がもとめられる確率がたかまるという利点がある。あるいは、
図6を参照して説明したように、例えば計算機610が複数のGPU612を有し、それぞれのGPU612を使用して上記と同様の処理と実行することもできる。
【0052】
(画像データセットの学習例)
この節においては、前記の学習法にしたがって歩行者画像データセットを学習させる方法について記述する。歩行者画像データセットの例としては、Caltech歩行者データセットがある。歩行者画像のかわりに顔画像、物体の画像、文字画像などを使用する場合もおなじ方法を適用することができる。この学習において使用するデータセットは複数個のビデオをふくんでいる。ビデオとはべつに注釈データが付属していて、そのなかに歩行者の位置とサイズをしめすbounding boxのデータもある。ビデオは訓練用の1個または複数個のビデオと、テスト用の1個または複数個のビデオとで構成されている。
【0053】
訓練データのうち半数は正例であるが、それをつぎのようにして生成する。上記のデータセットにおいて指定されているbounding boxをきりとって24×48のサイズに正規化することによって10万個の画像を用意し、それを左右反転してえられた10万個とあわせた20万個の画像を2回ずつ正例として使用する。
【0054】
また、訓練データののこり半数の負例はつぎのようにして生成する。Caltech歩行者データセットのbounding box以外の部分からきりだしたサイズ24×48の画像を20万個使用する。この初期負例の生成にあたってはその位置を乱数によってきめる。24×48とはことなるサイズの画像をきりだしてリサイズすることもできるが、ちょうど24×48のサイズの画像だけをきりだすことも可能である。そして、さらに正例20万個、負例20万個を使用して訓練したたたみこみ層1段のCNNをもとのデータセットに適用して誤認識した部分から負例20万個を生成する。すなわち、そのCNNが歩行者がふくまれると判定したがbounding boxからはずれている画像をあらたな負例とする。これらの負例をあわせて40万個とし、正例とあわせて80万個の画像を用意する。
【0055】
これらのデータがふくむ数値は、Caltech歩行者データセットなどの原データにおいては0〜255だが、これをほぼ−1〜1の範囲の浮動小数にし、さらに平均が0になるように補正する。
【0056】
以下、使用するべきCNNの構造とハイパー・パラメタについて記述する。その例は、たたみこみ層2段であることを前提とすると、つぎのとおりである。
【0057】
・たたみこみ層初段:フィルタ・サイズ5×5、フィルタ数16、非線形(activation)関数:ReLU
・プーリング層初段:最大プーリング.サイズ2×2
・たたみこみ層2段め:フィルタ・サイズ3×3、フィルタ数26、28、または32、非線形関数:ReLU
・プーリング層2段め:最大プーリング.サイズ2×2
・かくれ層(1段):ニューロン数50
・出力層:Logistic regression.ニューロン数2(期待される出力は[1,0]または[0,1])
・ミニバッチ・サイズ:250(もとにしたDeep learning tutorialよりはちいさいが、過大である可能性あり)
ここでReLUとは、f(x) = if x < 0 then 0 else x という折れ線関数を意味している。
【0058】
(学習率の変化)
本実施形態の学習過程における学習率の変化の例を
図3にしめす。学習率の平均値と標準偏差とはepochごとに測定することができるが、この図においてはそれらを5 epochごとにプロットしている。学習率は初期値がひくすぎるとき(
図3(b))にはその平均値が最初は増加し、その後減少するが、
図3(a)においては増加していない。
図3(b)においてはやや初期値がひくすぎたが、それが自律的に調整されたのだとかんがえられる。学習率の標準偏差は初期状態では比較的おおきくしているが、学習がすすむと通常は減少する。しかし、増加する場合もある。いずれにしても、学習率は自律的に調整される。ニューラルネットの学習のかわりに他のシステムの機械学習や最適化・探索をおこなうときは、学習率のかわりに学習過程を制御する他の学習パラメタまたは最適化・探索の過程を制御するパラメタが自律的に調整される。
【0059】
このような学習率(あるいは学習パラメタ、最適化・探索パラメタ)の値およびその変化は、学習をおこなう際あるいは学習の終了時に
図3のようなグラフまたは表などの手段によって表示することができる。
【0060】
(学習性能等に関する補足)
第1に、個体数(染色体数)に関して記述する。それが多いほうが確率的にはより最適にちかい解をもとめることができるが、すべてを並列に計算できるのでなければ、個体数が多いほうが計算時間がかかる。計算時間と探索範囲のバランスがとれる値の例として、個体数を12個程度にすることがかんがえられる。個体数を12として100 epochまで実験するにはGPUを使用してたとえば8時間程度かかる。
【0061】
第2に、多様性を維持する方法すなわち探索の大域性を制御するための方法に関して記述する。選択・変異の頻度がたかいと、すべての個体が1個の個体からのコピーになりやすい。そのため、その個体が大域最適値からはなれた局所最適値しかない部分に位置していると、満足できる解に到達できない。1 epochで選択・変異する確率を5%以下にする(個体数が12個なら0.6個以下にする)必要があるとかんがえられる。選択・変異の確率をひくくすると、学習の過程がすすんでもより大域的な探索がおこなわれる。逆に選択・変異の確率をたかくすると、比較的早期に探索が局所的になる。
【0062】
第3に、大域探索性能に関して記述する。染色体数12程度では大域探索に十分とはいえない。この場合、最初は12か所を探索するが、しだいに複写によって生成される個体がふえるため、上記の多様性を維持する方法を適用しても、すぐに探索箇所が3点の近傍くらいにしぼられるからである。探索範囲が何個くらいあるかは、これまでにもとめた最良の個体と現在の各個体とのユークリッド距離を計算し表示することによって推定することができる。
図4にこのような表示の例をしめす。各行の右の4個の数値が各段のウェイトのユークリッド距離である。個体9(左端の数字が9の行)が最良の個体であり、すくなくとも2か所の近傍を並列に探索していることがわかる。
【0063】
第4に、発散した個体の削除について記述する。この実験で使用した単純な逆伝搬学習のアルゴリズムにおいては、逆伝搬によってウェイトが発散する(“nan”になる)ことがしばしばある。このような個体はゾンビすなわち計算を継続しても解がえられる可能性のない個体だとかんがえられるから、削除するべきである。削除のための論理をくみこむこともできるが、そのような個体は評価値が極端に悪化するため、このアルゴリズムにおいては優先的に削除されるから、特別な論理をくみこむ必要はかならずしもない。ただし、その場合は選択・変異の頻度をゾンビの発生頻度よりたかくする必要がある。また、ゾンビが多数発生するときはそれが除去する論理をくみこんだほうが計算効率がよくなる。
【0064】
たとえば、計算機610は、処理207において、評価が所定の条件を満たす(たとえば所定の値より悪い)全ての染色体を削除し、削除した染色体と同数の染色体の複製を生成してもよい。たとえば、計算機610は、複数の染色体を削除した場合、評価が最良の染色体の複製を、削除した染色体と同数生成して、評価が最良の染色体とそれらを複製した複数の染色体の学習率が全て異なるようにそれらの染色体の学習率を変更してもよい。あるいは、計算機610は、複数の染色体を削除した場合、削除した染色体と同数の、評価が上位の染色体を選択して、選択した染色体の複製を一つずつ生成し、複製元の染色体と複製された染色体の学習率が異なるようにそれらの少なくとも一方を変更してもよい。
【0065】
(本発明の実施形態のまとめ)
以上のように、本実施形態は、逆伝搬学習過程にGAの方法をとりいれた、あらたな学習法に関する。この方法においてはニューラルネットを1個の染色体(データ)をもつ個体としてコンピュータ上に(プログラムおよびデータとして)表現し、各個体の染色体にニューラルネットのハイパー・パラメタすなわちニューロン間の接続のおもみなどをコーディング(表現)する。また、それとあわせて各染色体にそのニューラルネットの学習率をコーディングする。複数の個体を用意して並列に計算し、並列化された逆伝搬学習の1ステップ(1 epoch)ごとにGAにおける選択と変異とをおこなう。すなわち、成績のわるい個体を削除して成績のよい個体の学習率を変異させたものによって置換する。
【0066】
また、本実施形態の方法はニューラルネットの学習にかぎらず、他の機械学習にも適用することができる。すなわち、画像、音声、ドキュメントなどのデータの反復学習をおこない、その結果を数値的に評価することができるときに、その機械学習を制御する学習パラメタを染色体上にコーディングし、並列化された学習の1ステップごとにGAにおける選択と変異とをおこなう。
【0067】
さらに、本発明の方法は最適化および探索にも適用することができる。すなわち、探索空間内の移動を反復して最適化や探索をおこなう際に、探索空間内の現在の点を数値的に評価することができるとき、その最適化や探索を制御する最適化・探索制御パラメタを染色体上にコーディングし、並列化された最適化や探索の1ステップごとにGAにおける選択と変異とをおこなう。
【0068】
本実施形態の最大の効果は学習率(または学習パラメタ、最適化・探索制御パラメタ)が自律的に決定されることである。すなわち、逆伝搬学習(または学習、最適化、探索)の1ステップごとに選択と変異とをおこなうことによって、従来の逆伝搬学習法(または学習法、最適化法、探索法)およびそれとGAとをくみあわせた方法と同様に学習結果としてニューラルネット(またはシステム)を最適化するのと同時に、従来の方法においてはできなかった逆伝搬学習過程(学習過程、最適化過程、または探索過程)における学習率(または学習パラメタ、最適化・探索制御パラメタ)を最適化することができる。すなわち、1ステップごとにおこなう選択と変異とによって、学習率(または学習パラメタ、最適化・探索制御パラメタ)の平均値がそのステップにおける最適値にちかづけられ、学習(または最適化、探索)の進展とともに変化する最適値に追随する。学習率(または学習パラメタ、最適化・探索制御パラメタ)は、通常は学習(または最適化、探索)の初期には比較的おおきな値をとり学習(または最適化、探索)がすすむとともに最適なスケジュールで低下させることができるが、低下させないほうがよいときはそのようになる。
【0069】
また、それと同時に本実施形態においては学習(または最適化、探索)における探索範囲が適切に制御できるという効果がある。学習(または最適化、探索)の初期には大域的な探索をおこなうことができ、学習(または最適化、探索)の進展とともに探索範囲をせばめることができる。初期には大域的な探索をおこなうことによって局所最適値におちいる確率が低下するとともに、後期にはせまい範囲を効率的に並列探索することができる。ただし、適切な制御のためには選択と変異の頻度を適切に制御する必要がある。
【0070】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。たとえば、上記した実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0071】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【0072】
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。