JP2017182320A - 機械学習装置 - Google Patents

機械学習装置 Download PDF

Info

Publication number
JP2017182320A
JP2017182320A JP2016066357A JP2016066357A JP2017182320A JP 2017182320 A JP2017182320 A JP 2017182320A JP 2016066357 A JP2016066357 A JP 2016066357A JP 2016066357 A JP2016066357 A JP 2016066357A JP 2017182320 A JP2017182320 A JP 2017182320A
Authority
JP
Japan
Prior art keywords
network
layer
additional
output
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016066357A
Other languages
English (en)
Inventor
健太 西行
Kenta Nishiyuki
健太 西行
長谷川 弘
Hiroshi Hasegawa
弘 長谷川
基康 田中
Motoyasu Tanaka
基康 田中
藤吉 弘亘
Hironobu Fujiyoshi
弘亘 藤吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MegaChips Corp filed Critical MegaChips Corp
Priority to JP2016066357A priority Critical patent/JP2017182320A/ja
Publication of JP2017182320A publication Critical patent/JP2017182320A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】ニューラルネットワークの学習効率を向上させることができる機械学習装置を提供することを過大とする。【解決手段】機械学習装置100は、ラージネットワーク2Aの中間層に追加出力層24を接続し、スモールネットワーク3Aの中間層に追加出力層34を接続する。演算部104は、ラージネットワーク2Aの演算を実行し、出力層から通常出力値43を取得し、追加出力層24から追加出力値53を取得する。出力値調整部105は、通常出力値43の分布範囲が狭くなるように通常出力値43を調整して、追加調整値54を生成する。追加誤差計算部107は、追加出力値53及び追加調整値54を用いて追加誤差値55を算出する。更新部109は、追加誤差値55を、スモールネットワーク3Aの追加出力層34に入力し、スモールネットワーク3Aの重み計数を、誤差逆伝播法を用いて更新する。【選択図】図1

Description

本発明は、ニューラルネットワークの学習を行う機械学習装置に関する。
ニューラルネットワークは、カメラにより撮影された画像から人物などの所定の物体を検出する物体検出装置や、センサにより計測されたデータを解析する解析装置などに採用されている。例えば、ニューラルネットワークを物体検出装置に用いる場合、機械学習装置が、画像に含まれる所定の物体の特徴をニューラルネットワークに学習させる。学習を終了したニューラルネットワークをコンピュータなどに実装することにより、物体検出装置が作成される。
ニューラルネットワークは、その規模が大きくなるほど学習の精度が高くなる傾向にある。しかし、ニューラルネットワークの規模が大きくなるにつれて、ニューラルネットワークの演算量が増大する。ニューラルネットワークを物体検出装置や、データ解析装置に適用するためには、ニューラルネットワークの演算量はできるだけ少ないことが望ましい。このため、高精度で、演算量の少ないニューラルネットネットワークを作成する技術の開発が望まれている。
非特許得文献1には、学習済みの大規模なニューラルネットワークの出力結果を利用して、小規模なニューラルネットワークの学習を行う技術が開示されている。小規模なニューラルネットワークの学習には、誤差逆伝播法(バックプロパゲーション)が用いられる。誤差逆伝播法は、教師あり学習のアルゴリズムである。
"Distilling the Knowledge in a Neural Network", [online], [平成28年2月9日検索], インターネット<URL: https://www.cs.toronto.edu/~hinton/absps/distillation.pdf>
誤差逆伝播法を用いる機械学習装置は、ある学習データをニューラルネットワークに入力し、ニューラルネットワークの出力値と学習データの正解値とに基づいて誤差を計算する。機械学習装置は、ニューラルネットワークにおける出力層のノードに、計算した誤差を入力し、入力した誤差が小さくなるように出力層のノードに関する重み計数を更新する。その後、機械学習装置は、出力層よりも前に位置する下位層のノードから出力される出力値の誤差が小さくなるように、各層のノードに関する重み計数を更新する処理を繰り返す。
誤差逆伝播法を用いる場合、出力層のノードに入力された誤差は、下位層に伝播するに従って減衰する。ニューラルネットワークの下位層の重み計数の更新量は、誤差の減衰に従って小さくなるため、ニューラルネットワークの下位層の重み計数が更新されない場合がある。
従って、非特許文献1に開示されている技術を用いて、小規模なニューラルネットワークの学習を行う場合であっても、下位層の重み計数が更新されない可能性が考えられる。ニューラルネットワークの下位層の重み計数を更新させるために、ニューラルネットワークに大量の学習データを学習させる必要がある。学習する学習データの量が増加するほど、ニューラルネットワークの学習効率は低下する。
本発明の目的は、ニューラルネットワークの学習効率を向上させることができる機械学習装置を提供することである。
上記課題を解決するため、請求項1記載の発明は、機械学習装置であって、学習済みのニューラルネットワークである第1ネットワークと、前記第1ネットワークよりも規模の小さいニューラルネットワークであり、かつ、層の数がm(mは4以上の自然数)である第2ネットワークとを取得するネットワーク取得部と、前記第1のネットワークから一の中間層を選択し、前記一の中間層を構成するノードと接続されたノードを有する第1追加出力層を前記第1ネットワークに追加する第1追加出力層生成部と、前記第2ネットワークに含まれる中間層の中から前記一の中間層に対応する第k層(kは2以上m−2以下の自然数)を特定し、前記第k層を構成するノードと接続されたノードを有する第2追加出力層を前記第2ネットワークに追加する第2追加出力層生成部と、学習データを前記第1ネットワークに入力して前記第1ネットワークを用いた演算を実行し、前記第1ネットワークの通常出力層のノードから通常出力値を取得し、前記第1追加出力層のノードから追加出力値を取得する演算部と、前記通常出力値の分布範囲が狭くなるように前記通常出力値を調整することにより追加調整値を生成する出力値調整部と、前記追加出力値及び前記追加調整値から追加誤差値を算出する追加誤差計算部と、前記追加誤差値を前記第2追加出力層のノードに入力し、前記第2ネットワークに含まれる前記第k層のノードと、第(k−1)層のノードとを接続する信号経路の重み計数を誤差逆伝播法を用いて更新する更新部と、を備える。
請求項2記載の発明は、請求項1に記載の機械学習装置であって、前記第2ネットワークにおける層の数は、前記第1ネットワークにおける層の数と同じであり、前記第2ネットワークの入力層を基準にした場合における前記第k層の位置が、前記第1ネットワークの入力層を基準にした場合における前記一の中間層の位置と同じである。
請求項3記載の発明は、請求項1または請求項2に記載の機械学習装置であって、前記第1ネットワークの出力層のノードの数と、前記第2ネットワークの出力層のノードの数と、前記第1追加出力層のノードの数と、前記第2追加出力層のノードの数とは、同じである。
請求項4記載の発明は、請求項1ないし請求項3のいずれかに記載の機械学習装置であって、さらに、前記出力値調整部は、前記通常出力値の分布範囲が狭くなるように前記出力値を調整することにより、調整出力値を生成し、前記機械学習装置は、さらに、前記通常出力値及び前記調整出力値に基づいて調整誤差値を生成する出力誤差計算部、を備え、前記更新部は、前記調整誤差値を前記第2ネットワークの通常出力層に入力し、前記通常出力層に入力された調整誤差値を用いて前記重み計数を更新する。
請求項5記載の発明は、請求項4に記載の機械学習装置であって、前記追加調整値の分布範囲は、前記調整出力値の分布範囲よりも狭い。
請求項6記載の発明は、請求項4に記載の機械学習装置であって、前記出力誤差計算部は、前記通常出力値及び前記学習データに対応する正解値に基づいて出力誤差値を生成し、前記更新部は、前記出力誤差値を前記第2ネットワークの通常出力層に入力し、前記通常出力層に入力された出力誤差値を用いて前記重み計数を更新する。
請求項7記載の発明は、請求項6に記載の機械学習装置であって、前記更新部は、前記通常出力層に入力された調整誤差値に基づく前記重み計数の第1の更新量を計算し、前記第2の追加出力層に入力された追加誤差値に基づく前記重み計数の第2の更新量を計算し、前記第2の更新量の学習率は、前記第1の更新量の学習率よりも小さい。
請求項8記載の発明は、機械学習方法であって、学習済みのニューラルネットワークである第1ネットワークと、前記第1ネットワークよりも規模の小さいニューラルネットワークであり、かつ、層の数がm(mは4以上の自然数)である第2ネットワークとを取得するステップと、前記第1のネットワークから一の中間層を選択し、前記一の中間層を構成するノードと接続されたノードを有する第1追加出力層を生成するステップと、前記第2ネットワークに含まれる中間層の中から前記一の中間層に対応する第k層(kは2以上m−2以下の自然数)を特定し、前記第k中間層を構成するノードと接続されたノードを有する第2追加出力層を生成するステップと、学習データを前記第1ネットワークに入力して前記第1ネットワークを用いた演算を実行し、前記第1ネットワークの通常出力層のノードから通常出力値を取得し、前記第1追加出力層のノードから追加出力値を取得するステップと、前記通常出力値の分布範囲が狭くなるように前記通常出力値を調整することにより追加調整値を生成するステップと、前記追加出力値及び前記追加調整値から追加誤差値を算出するステップと、前記追加誤差値を前記第2追加出力層のノードに入力し、前記第2ネットワークに含まれる前記第k層のノードと、第(k−1)層のノードとを接続する信号経路の重み計数を誤差逆伝播法を用いて更新するステップと、を備える。
本発明の機械学習装置において、演算部は、第1ネットワークの通常中間層のノードから通常出力値を取得し、第1ネットワークの一の中間層に接続された第1追加出力層のノードから追加出力値を取得する。出力値調整部は、通常出力値の分布範囲よりも狭い分布範囲を有する追加調整値を通常出力値から生成する。追加誤差計算部は、追加出力値及び追加調整値を用いて、追加誤差値を算出し、更新部は、追加誤差値を第2ネットワークの第k層に接続された第2追加出力層に入力し、誤差逆伝播法を用いて第2ネットワークの重み計数を更新する。
機械学習装置は、第2ネットワークの第k層よりも下位に位置する下位層のノードに対して、従来の誤差逆伝播法を用いて誤差を伝播させる場合よりも、減衰量の少ない誤差を伝播させることができる。これにより、機械学習装置は、第2ネットワークの下位層の重み計数を効率よく更新することが可能となり、ニューラルネットワークの学習効率を向上させることができる。
本発明の第1の実施の形態に係る機械学習装置の構成を示す機能ブロック図である。 図1に示す機械学習装置に入力されるラージネットワークの一例を示す図である。 図1に示す機械学習装置に入力されるスモールネットワークの一例を示す図である。 図1に示す機械学習装置の動作を示すフローチャートである。 図1に示す機械学習装置により追加出力層を追加されたラージネットワークの一例を示す図である。 図1に示す機械学習装置により追加出力層を追加されたスモールネットワークの一例を示す図である。 図5に示すラージネットワークにおける追加学習の対象を示す図である。 図1に示す出力誤差計算部により算出される調整誤差値及び出力誤差値の算出過程を示す図である。 図8に示す通常出力値43及び調整通常出力値44の分布図である。 図1に示す追加誤差計算部により算出される追加誤差値の算出過程を示す図である。 図6に示すスモールネットワークにおける重み計数の更新の概略を示す図である。 一般的なニューラルネットワークにおける重み計数と、ノードとの関係を示す図である。 図1に示す機械学習装置の構成の変形例を示す機能ブロック図である。
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
{1.機械学習装置100の構成}
図1は、本発明の実施の形態に係る機械学習装置100の構成を示す機能ブロック図である。図1に示すように、機械学習装置100は、ラージネットワーク2A及びスモールネットワーク3Aを入力する。ラージネットワーク2Aは、学習済みのニューラルネットワークである。スモールネットワーク3Aは、未学習のニューラルネットワークであり、ラージネットワーク2Aよりも規模が小さい。
機械学習装置100は、ラージネットワーク2Aの構成を一部変更したラージネットワーク2Cを生成し、スモールネットワーク3Aの構成を一部変更したスモールネットワーク3Bの学習を行う。ラージネットワーク2Cは、ラージネットワーク3Aと同様に学習済みである。機械学習装置100は、ラージネットワーク2Cの識別結果を利用して、スモールネットワーク3Bの学習を行う。学習済みのスモールネットワーク3Bは、スモールネットワーク3Cとして、機械学習装置100から出力される。
ラージネットワーク2Aは、上述のように学習済みであり、例えば、カメラにより撮影された画像から、複数種類の物体を検出するために用いられる。複数種類の物体は、例えば、イヌ、ネコ及びその他の物体である。ラージネットワーク2Aの学習アルゴリズムは特に限定されない。ラージネットワーク2Aの学習において、転移学習を用いてもよい。
一般的に、ニューラルネットワークは、その規模が大きいほど学習の精度が高いといわれている。機械学習装置100は、規模の大きいラージネットワーク2Cの識別結果を利用して、ラージネットワーク2Cよりも規模の小さいスモールネットワーク3Bの学習を行う。これにより、比較的規模の小さいニューラルネットワークの学習精度を高めることが可能となる。つまり、機械学習装置100は、演算回数が少なく、かつ、精度が高いニューラルネットワークを生成することができる。
機械学習装置100は、ネットワーク取得部101と、追加出力層生成部102,108と、追加学習部103と、演算部104と、出力値調整部105と、出力誤差計算部106と、追加誤差計算部107と、更新部109とを備える。
ネットワーク取得部101は、ラージネットワーク2A及びスモールネットワーク3Aを取得する。
追加出力層生成部102は、ラージネットワーク2Aに追加出力層を追加することにより、ラージネットワーク2Bを生成する。具体的には、追加出力層生成部102は、ラージネットワーク2Aに含まれる複数の中間層から一の中間層を選択し、選択した中間層のノードと接続された追加出力層を生成する。追加出力層は、ラージネットワーク2Aが予め備えている出力層と別の層である。
追加学習部103は、誤差逆伝播法(バックプロパゲーション)を用いて、選択した中間層に含まれるノードと、追加出力層に含まれるノードとの間の信号経路の重み計数を更新する。追加学習部103は、追加学習の終了したラージネットワーク2Bを、ラージネットワーク2Cとして演算部104に出力する。
演算部104は、ラージネットワーク2Cに学習データ4を入力して、ラージネットワーク2Cを用いた演算を実行する。学習データ4は、例えば、イヌ、ネコ及びその他の物体が撮影された画像である。
出力値調整部105は、ラージネットワーク2Cの演算結果として、ラージネットワーク2Cの出力層を構成する各ノードから通常出力値43A,43B,43C,・・・を取得する。以下、通常出力値43A,43B,43C,・・・を総称する場合、通常出力値43と記載する。
出力値調整部105は、通常出力値43の分布範囲を調整して、調整通常出力値44を生成する。調整通常出力値44は、通常出力値43A,43B,43C,・・・の各々を調整することにより得られる調整通常出力値44A,44B,44C,・・・の総称である。調整通常出力値44の分布範囲は、通常出力値43の分布範囲よりも狭い。
また、出力値調整部105は、通常出力値43の分布範囲を調整して、追加調整値54を生成する。追加調整値54は、通常出力値43A,43B,43C,・・・の各々を調整することにより得られる追加調整値54A,54B,54C,・・・の総称である。追加調整値54の分布範囲は、通常出力値43の分布範囲よりも狭く、かつ、調整通常出力値44の分布範囲よりも狭い。
出力誤差計算部106は、通常出力値43を用いて、調整誤差値45及び出力誤差値47を算出する。
出力誤差計算部106は、通常出力値43と正解値46との差分を計算することにより、出力誤差値47を生成する。正解値46は、ラージネットワーク2Cに学習データ4を入力した場合に、ラージネットワーク2Cの出力層を構成する各ノードが出力すべき所定値である。出力誤差値47A,47B,47C,・・・は、ラージネットワーク2Cの出力層が有する各出力ノードに対応する。出力誤差値47は、出力誤差値47A,47B,47C,・・・の総称である。
出力誤差計算部106は、通常出力値43と調整通常出力値44との差分を計算することにより、調整誤差値45を生成する。調整誤差値45は、通常出力値43A,43B,43C,・・・の各々に対応する調整誤差値45A,45B,45C,・・・の総称である。
追加誤差計算部107は、ラージネットワーク2Cの演算結果である追加出力値53A,53B,53C,・・・を演算部104から取得する。追加出力値53A,53B,53C,・・・は、ラージネットワーク2Cの追加出力層を構成する各ノードから出力される。以下、追加出力値53A,53B,53C,・・・を総称する場合、追加出力値53と記載する。追加誤差計算部107は、追加出力値53と追加調整値54との差分を計算することにより、追加誤差値55を生成する。追加誤差値55は、追加出力値53A,53B,53C,・・・の各々に対応する追加誤差値55A,55B,55C,・・・の総称である。
追加出力層生成部108は、追加出力層生成部102によりラージネットワーク2Aから選択された一の中間層に対応する中間層を、スモールネットワーク3Aに含まれる複数の中間層の中から選択する。スモールネットワーク3Aの中間層の選択の詳細については、後述する。追加出力層生成部108は、選択したスモールネットワーク3Aの中間層のノードと接続されたノードを有する追加出力層を生成する。生成された追加出力層は、スモールネットワーク3Aが予め備えている出力層と別の層である。追加出力層生成部108は、スモールネットワーク3Aに追加出力層を追加したニューラルネットワークを、スモールネットワーク3Bとして更新部109に出力する。
更新部109は、誤差逆伝播法を用いて、スモールネットワーク3Bの学習を実行する。具体的には、更新部109は、調整誤差値45及び出力誤差値47をスモールネットワーク3Bにおける出力層のノードに入力し、追加誤差値55をスモールネットワーク3Bにおける追加出力層のノードに入力する。更新部109は、誤差逆伝播法を用いて、スモールネットワーク3Bの重み計数を更新する。
{2.ラージネットワークとスモールネットワークとの関係}
図2は、図1に示すラージネットワーク2Aの構成の一例を示す図である。図2に示すラージネットワーク2Aにおいて、円は、ニューラルネットワークを構成するノードを示し、矢印は、2つのノード間を接続する信号経路を示す。以下の説明で参照される図3、図5〜図7、図11〜図12も同様である。
図2に示すラージネットワーク2Aにおいて、層の数は4である。ラージネットワーク2Aは、入力層21と、中間層221,222と、出力層23とを備える。入力層21と、中間層221及び222とは、それぞれ、4つのノードを備える。なお、中間層221は、ノード221a〜221dを備える。
出力層23は、第2ネットワークに予め設けられた通常出力層であり、3つの出力ノード23a〜23cを備える。上述のように、ラージネットワーク2Aがイヌ、ネコ及びその他の物体を識別するために用いられる場合、出力ノード23aは、イヌに対応する出力値を出力し、出力ノード23bは、ネコに対応する出力値を出力する。出力ノード23cは、その他の物体に対応する出力値を出力する。
図3は、図1に示すスモールネットワーク3Aの構成の一例を示す図である。図3に示すように、スモールネットワーク3Aは、入力層31と、中間層321,322と、出力層33とを備える。中間層321は、ノード321a〜321cを備え、出力層33は、出力ノード33a〜33cを有する。
スモールネットワーク3Aは、ラージネットワーク2Aよりも規模の小さいニューラルネットワークであり、ラージネットワーク2Aの構造に基づいて作成される。ラージネットワーク2Aの構成と、スモールネットワーク3Aの構成とは、下記の2点で同じである。
第1の点は、スモールネットワーク3Aが有する層の数は、ラージネットワーク2Aが有する層の数と同じであることである。このため、ラージネットワーク2Aの層は、スモールネットワーク3Aの層と1対1に対応する。ラージネットワーク2Aの層と、スモールネットワーク3Aの層との対応関係は、各ネットワークの入力層を基準にして決定される。例えば、ラージネットワーク2Aの中間層221は、入力層21から数えて2番目の位置にある。従って、中間層221は、スモールネットワーク3Aの入力層31から数えて2番目の位置にある中間層321に対応する。
第2の点は、ラージネットワーク2A及びスモールネットワーク3Aにおいて、入力層のノードの数が同じであり、出力層のノードの数が同じであることである。図2及び図3に示す例では、入力層21及び31におけるノードの数は、ともに4であり、出力層23及び33におけるノードの数は、ともに3である。スモールネットワーク3Aの出力層33が有するノード33a〜33cは、ラージネットワーク2Aの出力層23が有するノード23a〜23cにそれぞれ対応する。
相違点は、以下の通りである。スモールネットワーク3Aの中間層のノードの数は、対応するラージネットワーク2Aの中間層のノードの数よりも小さいか、同じである。図2及び図3に示すように、中間層321及び322が有するノードの数は、対応するラージネットワーク2Aの中間層221及び222が有するノードの数よりも少ない。すなわち、スモールネットワーク3Aにおける一の中間層が有するノードの数が、この一の中間層に対応するラージネットワーク2Aの中間層が有するノードの数よりも少なければよい。これにより、スモールネットワーク3Aの規模を、ラージネットワーク2Aの規模よりも小さくすることができる。
{3.機械学習装置100の動作}
以下、機械学習装置100の動作について詳しく説明する。機械学習装置100は、ラージネットワーク2Cによる学習データ4の識別結果を、スモールネットワーク3Bに反映させることにより、スモールネットワーク3Bの学習を実行する。機械学習装置100は、スモールネットワーク3Bの学習が終了した場合、学習済みのスモールネットワーク3Bから追加出力層を削除したニューラルネットワークを、スモールネットワーク3Cとして出力する。
以下、機械学習装置100が、図2に示すラージネットワーク2Aと、図3に示すスモールネットワーク3Aを取得する場合を例にして、機械学習装置100の動作を詳しく説明する。
{3.1.ニューラルネットワークの取得}
図4は、機械学習装置100の動作を示すフローチャートである。図4に示すように、ネットワーク取得部101が、ラージネットワーク2A及びスモールネットワーク3Aを取得する(ステップS1)。
ラージネットワーク2A及びスモールネットワーク3Aの各々は、各層に含まれるノードを定義するデータと、2つのノードを接続する信号経路の重み計数とを含むデータである。ラージネットワーク2Aに含まれる重み計数は、イヌ、ネコ及びその他の物体を識別するために既に調整されている。機械学習装置100は、図4に示す処理を実行する際に、ラージネットワーク2Aに含まれる重み計数を更新しない。
{3.2.追加出力層の追加}
追加出力層生成部102が、ネットワーク取得部101が取得したラージネットワーク2Aに追加出力層を追加する(ステップS2)。具体的には、追加出力層生成部102は、ラージネットワーク2Aに含まれる複数の中間層から一の中間層を選択し、選択した中間層のノードと接続された追加出力層を生成する。この結果、ラージネットワーク2Bが、ラージネットワーク2Aから生成される。
図5は、追加出力層生成部102により生成されたラージネットワーク2Bの一例を示す図である。図5に示す例では、追加出力層生成部102は、追加出力ノード24a〜24cを有する追加出力層24を生成する。追加出力ノード24a〜24cの数は、出力層23が有する出力ノード23a〜23cの数と一致する。追加出力層生成部102は、中間層221を選択し、中間層221のノード221a〜221dと追加出力ノード24a〜24cとを接続する。
追加出力ノード24a〜24cは、出力層23が備える出力ノード23a〜23cのいずれか1つに対応する。具体的には、追加出力ノード24aは、出力ノード23aに対応する。追加出力ノード24bは、出力ノード23bに対応する。追加出力ノード24cは、出力ノード23cに対応する。
追加出力層生成部102は、追加出力層24の追加に伴って、ノード221a〜221dと、追加出力ノード24a〜24cとの間における信号経路の重み計数の初期値を設定する。重み計数の初期値は、例えば、予め定められた分散の範囲内に収まるようにランダムに設定される。
再び、図4を参照する。追加出力層生成部108が、ネットワーク取得部101が取得したスモールネットワーク3Aに追加出力層を追加する(ステップS3)。具体的には、追加出力層生成部108は、スモールネットワーク3Aが有する中間層の中から、ステップS2において追加出力層が接続されたラージネットワーク2Aの中間層に対応する層を特定する。追加出力層生成部108は、特定したスモールネットワーク3Aの中間層に接続された追加出力層を生成する。これにより、これにより、スモールネットワーク3Bが、スモールネットワーク3Aから生成される。
図6は、追加出力層生成部108により生成されたスモールネットワーク3Bの一例を示す図である。図6に示すスモールネットワーク3Bは、図5に示すラージネットワーク2Bに基づいて生成される。図6に示すように、スモールネットワーク3Bは、入力層31と、中間層321,322と、出力層33と、追加出力層34とを備える。
追加出力層34は、追加出力ノード34a〜34cを備える。追加出力ノード34a〜34cの数は、出力層33が備える出力ノード33a〜33cの数と同じである。追加出力ノード34aは、出力ノード33aに対応する。追加出力ノード34bは、出力ノード33bに対応する。追加出力ノード34cは、出力ノード33cに対応する。
{3.3.追加学習}
再び、図4を参照する。追加学習部103は、ラージネットワーク2Bの追加学習を実行する(ステップS4)。図7は、図5に示すラージネットワーク2Bにおける追加学習の対象を示す図である。図7において、出力層23の表示を省略し、中間層222が有するノードと、出力層23が有するノードとの間の経路の表示を省略している。
図7に示すように、追加学習の対象は、ラージネットワーク2Bにおいて、実線で示す信号経路の重み計数である。つまり、破線で示す信号経路は、追加学習(ステップS4)の対象とならない。追加学習は、従来の誤差逆伝播法を用いて実行される。
追加学習(ステップS4)において、中間層221が有するノードと、追加出力層24が有するノードとの間の信号経路のみが追加学習の対象となる理由を説明する。追加学習部103は、入力層21が有するノードと中間層221が有するノードとの間の信号経路の重み係数を、追加学習の際に更新することが可能である。しかし、破線で示す信号経路の重み計数は、ラージネットワーク2Aの学習により既に調整されている。入力層21が有するノードと中間層221が有するノードとの間の信号経路の重み係数を、追加学習時に更新した場合、学習済みのラージネットワーク2Aの識別能力が失われる可能性がある。このため、追加学習では、図7において実線で示される信号経路の重み係数のみが更新される。
追加学習部103は、追加学習の終了したラージネットワーク2Bを、ラージネットワーク2Cとして演算部104に出力する。
{3.4.調整誤差値45の算出)
次に、演算部104は、学習データ4をラージネットワーク2Cに入力し、ラージネットワーク2Cを用いた演算を実行する(ステップS5)。学習データ4は、本実施の形態では、スモールネットワーク3Cの学習に用いられる画像データであり、イヌ、ネコ及びその他の物体のいずれかを含む。演算部104は、演算結果として、出力ノード23a〜23cから通常出力値43a〜43cを出力し、追加出力ノード24a〜24cから追加出力値53a〜53cを出力する。
出力値調整部105は、出力ノード23a〜23cから出力された通常出力値43を演算部104から取得する。出力値調整部105は、取得したされた通常出力値43を調整して、調整通常出力値44を生成する(ステップS6)。以下、通常出力値43の調整について説明する。
図8は、調整誤差値45及び出力誤差値47の算出過程を示す図である。図8に示す通常出力値43、調整通常出力値44、調整誤差値45、正解値46及び出力誤差値47の数値は、説明のための便宜的な値であり、機械学習装置100の動作を限定するものではない。
ステップS6において、出力値調整部105は、調整通常出力値44の分布範囲が通常出力値43の分布範囲よりも狭くなるように、通常出力値43を調整する。具体的には、出力値調整部105は、下記式(1)を用いて、通常出力値43を調整する。
Figure 2017182320
上記式(1)において、uは、出力層23におけるi(iは1以上の自然数)番目の出力ノードから出力される通常出力値43である。sは、出力層23におけるi(iは1以上の自然数)番目の出力ノードに対応する調整通常出力値44である。調整パラメータTは、任意の値であり、例えば、3に設定される。式(1)を用いて、図8に示す通常出力値43a〜43bを調整した場合、調整通常出力値44a、44b及び44cは、それぞれ、1.35、0.24及び0.37となる。
図9は、図8に示す通常出力値43及び調整通常出力値44の分布図である。図9に示すように、調整通常出力値44の分布範囲が、通常出力値43の分布範囲よりも狭くなっている。ここで、分布範囲は、通常出力値43また調整通常出力値44における最大値と最小値との差分絶対値を意味する。つまり、式(1)を用いて通常出力値43を調整することにより、通常出力値43を緩やかにした調整通常出力値44を生成することができる。ここで、「通常出力値43を緩やかにする」とは、図9に示すような通常出力値の分布図において、2つの通常出力値を結ぶ直線の傾きが小さくなるように、通常出力値43を調整することをいう。式(1)により生成される調整通常出力値44は、ソフトターゲット(Soft Target)と呼ばれる。
図8に示す通常出力値43において、最大値が3.9であり、最小値が−1.2である。このため、通常出力値43における最大値と最小値との差分絶対値は、5.1である。一方、図8に示す通常出力値43において、最大値が1.35であり、最小値が0.24である。このため、調整通常出力値44における最大値と最小値の差分絶対値は、1.11である。式(1)を用いて通常出力値43を調整することにより、調整通常出力値44の分布範囲が、通常出力値43の分布範囲よりも狭くなっていることがわかる。式(1)において、調整パラメータTを大きくするほど、調整通常出力値44の分布範囲を狭くすることが可能である。
出力値調整部105は、調整通常出力値44の分布範囲を通常出力値43の分布範囲よりも狭くすることができるのであれば、式(1)を用いる方法以外の方法を用いて、通常出力値43を調整してもよい。
次に、出力誤差計算部106が、演算部104から通常出力値43を取得し、出力値調整部105から調整通常出力値44を取得する。出力誤差計算部106は、通常出力値43と調整通常出力値44との差分を計算することにより、調整誤差値45を生成する(ステップS7)。具体的には、調整誤差値45は、下記式(2)を用いることにより得られる。
Figure 2017182320
上記式(2)において、δは、出力層23におけるi番目の出力ノードに対応する調整誤差値45である。uは、i番目の出力ノードにおける通常出力値43である。sは、i番目の出力ノードに対応する調整通常出力値44である。
次に、出力誤差計算部106は、学習データ4に対応する正解値46を取得し、通常出力値43と正解値46との差分を取ることにより、出力誤差値47を算出する(ステップS8)。図8に示すように、正解値46は、出力層23における出力ノード23a〜23cに対応する正解値46a〜46cを有する。出力誤差計算部106は、s(調整通常出力値44)を、出力層23におけるi番目の出力ノードに対応する正解値46に置き換えた式(2)を用いて、出力ノード23a〜23cに対応する出力誤差値47a〜47cを算出する。
{3.5.追加誤差値55の算出}
図10は、追加誤差値55の算出過程を示す図である。図10に示す通常出力値43は、図8に示す通常出力値43と同じである。図10に示す通常出力値43、追加出力値53、追加調整値54及び追加誤差値55の数値は、説明のための便宜的な値であり、機械学習装置100の動作を限定するものではない。
上述したように、出力値調整部105は、通常出力値43から追加調整値54を算出する(ステップS9)。具体的には、出力値調整部105は、式(1)を用いて、追加調整値54の分布範囲が調整通常出力値44の分布範囲よりも狭くなるように、通常出力値43を調整する。ステップS9において、出力値調整部105は、式(1)の調整パラメータTの値を、調整通常出力値44の算出時に用いられる値よりも大きくする。追加調整値54は、調整通常出力値44と同様に、ソフトターゲットである。
図10に示す追加調整値54a〜54cは、式(1)の調整パラメータTを5に設定することにより、通常出力値43a〜43cから算出される。図9に示す分布図において、図10に示す追加調整値54a〜54cがプロットされている。図9に示すように、追加調整値54の分布範囲が、通常出力値43の分布範囲及び調整通常出力値44の分布範囲よりも狭くなっていることが分かる。
次に、追加誤差計算部107は、演算部104から追加出力値53を取得し、出力値調整部105から追加調整値54を取得する。追加誤差計算部107は、追加出力値53と追加調整値54との差分を計算することにより、追加誤差値55を生成する(ステップS10)。具体的には、追加誤差計算部107は、出力層23のi番目の出力ノードに対応する調整出力値sを、追加出力層24のi番目の追加出力ノードに対応する追加調整値54に置換した式(2)を用いて、追加誤差値55を算出する。
このように、機械学習装置100は、通常出力値43から2種類のソフトターゲット(調整通常出力値44及び追加調整値54)を算出し、これらのソフトターゲットから2種類の誤差(調整誤差値45及び追加誤差値55)を算出する。調整誤差値45及び追加誤差値55が、スモールネットワーク3Bの重み係数の更新に用いられる。
{3.6.重み係数の更新}
更新部109は、出力誤差計算部106から調整誤差値45及び出力誤差値47を取得し、追加誤差計算部107から追加誤差値55を取得する。更新部109は、取得した調整誤差値45、出力誤差値47及び追加誤差値55をスモールネットワーク3Bに入力し、誤差逆伝播法を用いてスモールネットワーク3Bの重み計数を更新する(ステップS11)。
{3.6.1.重み計数の更新の概略}
図11は、ステップS11によりスモールネットワーク3Bの重み計数が更新される場合における誤差の伝播方向を示す図である。
ステップS11により、スモールネットワーク3Bにおける重み計数351〜354が更新される。重み計数351は、入力層31から中間層321までの区間Aにおける各信号経路に対して設定される。ここで、「区間」は、ニューラルネットワークにおける信号経路の位置を示すための便宜的な呼称である。
重み計数352は、中間層321から中間層322までの区間Bにおける各信号経路に対して設定される。重み係数353は、中間層322から出力層33までの区間Cにおける各信号経路に対して設定される。重み係数354は、中間層321から追加出力層34までの区間Dにおける各信号経路に対して設定される。
図11に示すように、更新部109は、調整誤差値45に基づく重み計数の更新を行うために、スモールネットワーク3Bの出力層33における出力ノード33a〜33cに調整誤差値45を入力する。また、更新部109は、追加誤差値47に基づく重み係数の更新を行うために、出力ノード33a〜33cに調整誤差値47を入力する。調整誤差値45a及び出力誤差値47aが、出力ノード33aに個別に入力され、調整誤差値45b及び出力誤差値47bが、出力ノード33bに個別に入力され、調整誤差値45c及び出力誤差値47cが、出力ノード33cに個別に入力される。
更新部109は、調整誤差値45a〜45c及び出力誤差値47a〜47cを用いて、誤差逆伝播法により重み係数353を更新する。更新部109は、更新された重み計数353に基づいて、中間層322が有する各ノードの出力値の誤差を計算し、計算した誤差を用いて、誤差逆伝播法により重み係数352を更新する。
更新部109は、追加誤差値55a〜55cを、スモールネットワーク3Bにおける追加出力ノード34a〜34cに入力する。更新部109は、追加誤差値55a〜55cを用いて、誤差逆伝播法により重み計数354を更新する。
更新部109は、重み計数352及び354を更新した後に、重み計数351を更新する。更新部109は、調整誤差値45、出力誤差値47及び追加誤差値55を用いて、重み計数351を更新する。更新部109は、調整誤差値45及び出力誤差値47を、矢印36で示す方向に伝播させ、追加誤差値55を、矢印37で示す方向に沿って伝播させる。つまり、更新部109は、スモールネットワーク3Bにおいて、誤差を2つの経路で伝播させることによって、重み計数を更新する。
{3.6.2.一般的な誤差逆伝播法による重み計数の更新}
ここで、最初に、一般的な誤差逆伝播法による重み計数の更新について説明する。図12は、一般的なニューラルネットワーク200の構成を示す図である。図12に示すように、ニューラルネットワーク200は、m個の層を有する。各層は、1個以上のノードを有する。第m層(出力層)は、n個のノードを有する。ここでは、mは3以上の自然数、nは2以上の自然数である
図12において、第1層、第(t−1)層、第t層、第(t+1)層、第m層のみを表示し、それ以外の層の表示を省略している。ここで、tは、2以上m−1以下の自然数である。また、図12において、各層における一部のノードの表示を省略している。各ノードの下に示す数値は、各層におけるノードの位置を示す。例えば、ノードN_jは、第t層におけるj番目のノードである。
ニューラルネットワーク200において、重み係数wji t−1は、下記式(3)に基づいて更新される。ここで、wji t−1は、第(t−1)層におけるi番目のノードN_iと、第t層におけるj番目のノードN_jとの間の信号経路の重み計数を示す。
Figure 2017182320
式(3)において、Eは、誤差関数である。学習率εは、0以上1以下の数値であり、誤差関数Eの偏微分量を、重み係数wji t−1の更新にどの程度反映させるかを示すパラメータである。つまり、重み係数wji t−1の更新量は、誤差関数Eを重み係数wji t−1で偏微分し、誤差関数Eの偏微分量に学習率εを乗算することにより得られる。
誤差関数Eは、ニューラルネットワーク200の出力層の各出力ノードにおける2乗誤差であり、下記式(4)により表される。
Figure 2017182320
式(4)において、u は、ニューラルネットワーク200の第m層におけるj番目のノードの出力値である。dは、第m層におけるj番目のノードにおける正解値(教師信号)である。つまり、式(4)における(u m−d m)は、第m層におけるj番目のノードの出力誤差値47である。
式(3)における誤差関数Eの偏微分量は、t≠mである場合、下記式(5)により表される。
Figure 2017182320
式(5)において、f’(x)は、活性化関数の微分である。例えば、シグモイド関数が、活性化関数として用いられる。u は、第t層におけるj番目のノードN_jの出力値である。u t−1は、第(t−1)層におけるi番目のノードN_iの出力値である。u t+1は、第(t+1)層におけるk番目のノードN_kの出力値である。d t+1は、第(t+1)層におけるk番目のノードN_kの正解値である。
また、式(3)における誤差関数Eの偏微分量は、t=mである場合、下記式(6)により表される。
Figure 2017182320
式(6)において、u は、出力層である第m層のk番目のノードの出力値であり、d は、第m層のk番目のノードの正解値(教師信号)である。つまり、式(6)における(u −d )は、第m層のk番目のノードの出力誤差値47である。
{3.6.3.スモールネットワーク3Bの重み計数の更新}
(重み計数353の更新)
図11を参照しながら、重み計数353の更新について説明する。重み計数353は、区間Cにおける各信号経路に対して設定される。重み係数353は、出力ノード33a〜33cに入力される調整誤差値45及び出力誤差値47に基づいて更新される。具体的には、重み係数353は、下記式(7)に基づいて更新される。
Figure 2017182320
式(7)の右辺における第1項及び第2項は、式(6)の右辺における第1項及び第2項と同じである。つまり、式(7)における右辺第2項は、出力誤差値47に基づく重み係数の更新量を示す。
式(7)における右辺第3項は、調整誤差値45に基づく重み係数の更新量を示す。Eは、調整誤差値45に基づく誤差関数である。誤差関数Eは、式(4)における第m層における第k番目のノードの出力誤差値47である(u m−d m)を、第k番目のノードの調整誤差値45に置換することによって得られる。
調整誤差値45に基づく重み係数の更新量は、誤差関数Eを重み係数wji t−1で偏微分した偏微分量に、学習率αを乗じることによって算出される。学習率ε及びαの大小関係は、特に限定されない。学習率ε及びαの大小関係は、スモールネットワーク3Bの学習において、調整誤差値45に基づく学習と出力誤差値47に基づく学習のどちらを重視するかによって決定される。
式(7)における誤差関数Eの偏微分量は、上記式(6)に基づいて算出される。ただし、右辺第3項を計算する場合、式(6)における(uk m−dk m)が、出力層33における第k番目のノードの調整誤差値45に置換される。
このように、更新部109は、重み係数353を更新する場合、出力誤差値47に基づく重み係数の更新量と、調整誤差値45に基づく重み係数の更新量とを個別に算出する。更新部109は、算出した2つの更新量の合計を重み係数353から減算することにより、重み係数353を更新する。
(重み計数352の更新)
更新部109は、重み係数353を更新した後に、重み係数352を更新する。図11に示すように、重み計数352は、区間Bにおける各信号経路に対して設定される。調整誤差値45及び出力誤差値47が、区間Bにおける各信号経路を逆方向に伝播する。更新部109は、重み係数353の更新と同様に、上記式(7)を用いて重み係数を更新する。式(7)において、中間層322が、重み係数352の計算における第t層に該当するため、誤差関数Eの偏微分量及び誤差関数Eの偏微分量は、式(5)により算出される。
ただし、誤差関数Eの偏微分量は、式(5)におけるd t+1を、出力層33の第k番目のノードに対応する調整通常出力値44に置換することによって得られる。この理由は、式(5)において、中間層322が第t層に該当し、第t+1層が出力層33に該当するためである。
(重み係数354の更新)
図11に示すように、重み計数354は、区間Dにおける各信号経路に対して設定される。追加出力層24の追加出力ノード24a〜24cには、追加誤差値55a〜55cが入力されるため、追加誤差値55が、区間Dにおける各信号経路を逆方向に伝播する。従って、更新部109は、誤差逆伝播法を用いて重み計数354を更新する場合、追加誤差値55のみを用いて、重み係数354を更新する。
具体的には、更新部109は、区間Dにおける重み係数354を、式(8)を用いて更新する。
Figure 2017182320
式(8)において、重み係数wji t−1は、中間層321のi番目のノードから、追加出力層34のj番目のノードまでの信号経路の重み計数に相当する。Eは、追加誤差値55の誤差関数である。誤差関数Eにおいて、第m層は、追加出力層34に相当する。従って、誤差関数Eは、式(4)における(uk m−dk m)を追加誤差値55に置換することにより得られる。
式(8)の右辺第2項は、重み係数354の更新量である。重み係数354の更新量は、誤差関数Eを重み係数354で偏微分した偏微分量に、学習率βを乗じることにより得られる。学習率βと、学習率α、εとの大小関係については、後述する。誤差関数Eの偏微分量は、式(6)における(uk m−dk m)を、追加誤差値55に置換することにより得られる。
(重み計数351の更新)
更新部109は、重み係数352及び354の更新が終了した後に、区間A(図11参照)における各信号経路に対して設定される重み係数351を更新する。上述したように、調整誤差値45,出力誤差値47及び追加誤差値55が、区間Aにおける各信号経路を逆方向に伝播する。従って、更新部109は、調整誤差値45,出力誤差値47及び追加誤差値55を考慮に入れた誤差逆伝播法に基づいて、重み計数351を更新する。
具体的には、更新部109は、下記式(9)に基づいて、重み係数351を更新する。
Figure 2017182320
上記式(9)において、右辺第2項は、出力誤差値47に基づく更新量を示す、右辺第3項は、調整誤差値45に基づく更新量を示し、式(7)における右辺第3項と同じである。右辺第4項は、追加誤差値55に基づく更新量を示し、式(8)における右辺第2項と同じである。つまり、更新部109は、調整誤差値45,出力誤差値47及び追加誤差値55が逆方向に伝播する信号経路の重み係数を更新する場合、調整誤差値45に基づく更新量と、出力誤差値47に基づく更新量と、追加誤差値55に基づく更新量との合計を使用する。
重み係数351を更新する場合、中間層321が、第t層に該当する。このため、式(9)における誤差関数Eの偏微分量は、式(5)により算出される。式(9)における誤差関数Eの偏微分量は、式(5)において、第(t+1)層のk番目のノードにおける正解値d t+1を、k番目のノードの調整通常出力値44に置換することにより得られる。更新部109は、上記式(2)を用いて、第(t+1)層のk番目のノードの出力値を調整することにより、第(t+1)層のk番目のノードの調整通常出力値44を算出する。式(9)における誤差関数Eの偏微分量は、式(5)において、第(t+1)層のk番目のノードにおける正解値d t+1を、追加出力層34におけるk番目のノードの追加誤差値55に置換することにより得られる。
このように、重み計数351の更新を、調整誤差値45及び出力誤差値47だけでなく、追加誤差値55を用いて行うことにより、重み計数351の更新を効率よく実行することができる。以下、その理由を説明する。
一般的な誤差逆伝播法を用いて重み計数を更新する場合、重み計数は、出力層から入力層に向かって、順次更新される。一般的な誤差逆伝播法は、誤差を小さくするように重み係数を更新するため、誤差は、ニューラルネットワーク内を逆方向に伝播するにつれて減衰する。例えば、中間層321におけるノード321a〜321cの出力誤差値は、ノード23a〜23cに入力される出力誤差値47よりも小さい。この結果、重み計数351の更新量は、重み計数353の更新量よりも小さくなる。つまり、従来の誤差逆伝播方法では、ニューラルネットワークにおいて入力層に近い下位層の学習が十分に行われない可能性がある。
図11に示すように、スモールネットワーク3Bにおいて、出力層23から中間層321までの信号経路の距離は、追加出力層24から中間層321までの信号経路の距離よりも長い。従って、追加誤差値55が区間Aを逆方向に伝播する場合において、追加誤差値55の減衰量は、調整誤差値45及び出力誤差値47の減衰量よりも小さい。更新部109は、減衰の少ない追加誤差値55を使用することにより、重み計数351を効率よく更新することができる。つまり、機械学習装置100は、スモールネットワーク3Bの下位層における学習を効率よく実行することができる。機械学習装置100は、従来よりも少ない量の学習データで、スモールネットワーク3Bの学習を精度良く実行することができる。
学習率βは、学習率α及びεよりも小さくなるように設定される理由を説明する。上述のように、追加誤差値55を用いて重み計数351を更新することにより、スモールネットワーク3Bの下位層における学習を効率よく実行することができる。しかし、区間Aを逆方向に伝播する誤差のうち、追加誤差値55の成分が、調整誤差値45及び出力誤差値47の成分よりも大きい。従って、学習率βを学習率α及びεよりも大きくした場合、重み計数351を更新する際に、追加誤差値55の成分が過大に評価され、学習の精度が逆に低下する可能性がある。そこで、学習率βは、学習率α及びεよりも小さくなるように設定することにより、重み計数351の更新時において、追加誤差値55の成分を適切に評価することを抑制することが可能となる。
(スモールネットワーク3Cの出力)
更新部109が重み計数351の更新を終了することにより、図4に示す処理が終了する。機械学習装置100は、新たな学習データ4を用いて、図4に示す処理を繰り返すことにより、スモールネットワーク3Bの学習を実行する。
スモールネットワーク3Bの学習が完了した場合、更新部109は、中間層321が有するノード321a〜321cと追加出力層34が有する追加出力ノード34a〜34cとの接続を解除して、スモールネットワーク3Bから追加出力層34を切り離す。更新部109は、スモールネットワーク3Bから追加出力層34を切り離したニューラルネットワークを、スモールネットワーク3Cとして出力する。スモールネットワーク3Cは、イヌ、ネコ及びその他の物体を識別するための識別器として使用される。
以上説明したように、機械学習装置100は、学習済みのラージネットワーク2Cに学習データ4を入力して、出力層23の各ノードから通常出力値43を取得し、追加出力層24の各ノードから追加出力値53を取得する。機械学習装置100は、通常出力値43を調整して調整通常出力値44を生成する。調整誤差値45が、通常出力値43から調整通常出力値44を減算することにより算出され、出力誤差値47が、通常出力値43から正解値46を減算することにより算出される。機械学習装置100は、追加出力値53を調整して追加調整値54を生成し、追加出力値53から追加調整値54を減算して追加誤差値55を算出する。機械学習装置100は、スモールネットワーク3Bの出力層33の各ノードに、調整誤差値45及び出力誤差値47を入力し、追加出力層34の各ノードに追加誤差値55を入力する。機械学習装置100は、スモールネットワーク3Bに入力された誤差値を用いて、誤差逆伝播法によりスモールネットワーク3Bの重み計数を更新する。
これにより、スモールネットワーク3Bの重み計数を更新する際に、スモールネットワーク3Bの下位層に適切な大きさの誤差を伝播させることができるため、スモールネットワーク3Bの学習を効率よく行うことができる。機械学習装置100は、スモールネットワーク3Bの学習を行う際に、学習データ4の量を削減することが可能となる。
{変形例}
上記実施の形態において、ラージネットワーク2A及びスモールネットワーク3Aの層の数が4である場合を例に説明したが、これに限られない。ラージネットワーク2A及びスモールネットワーク3Aの層の数は、4以上であればよい。追加出力層生成部102は、ラージネットワーク2Aに追加出力層34を追加する場合、入力層21から数えて2番目の中間層から(m−2)番目の中間層までの少なくとも1つの中間層に追加出力層34を接続すればよい。ここで、mは、層の数であり、4以上の自然数である。
つまり、追加出力層生成部102は、追加出力層34を入力層31に接続しなければよい。この理由は、追加出力層34をスモールネットワーク3Aの入力層31に接続した場合、追加誤差値55を用いて、スモールネットワーク3Aの信号経路の重み計数を更新することができないためである。
また、追加出力層生成部102は、追加出力層34を(m−1)番目の層に接続しなければよい。この理由は、追加出力層34をスモールネットワーク3Aの(m−1)番目の層に接続した場合、スモールネットワーク3Bにおける追加誤差値55の伝播経路が、調整誤差値45及び出力誤差値47の伝播経路と実質的に同じになるためである。この結果、調整誤差値45、出力誤差値47及び追加誤差値55の減衰量が同じとなり、スモールネットワーク3Bの下位層における学習を効率よく実行することができない。
上記実施の形態において、更新部109が、出力層33が有する出力ノード23a〜23cに出力誤差値47を入力する例を説明したが、これに限られない。更新部109は、出力ノード23a〜23cに調整誤差値45のみを入力してもよい。
上記実施の形態において、追加出力層生成部102が、1つの追加出力層34をラージネットワーク2Aに追加する例を説明したが、これに限られない。追加出力層生成部102は、2つ以上の追加出力層24をラージネットワーク2Aに追加してもよい。例えば、ラージネットワーク2Aにおける層の数が100である場合、追加出力層生成部102は、追加出力層24を接続する中間層を5つおきに選択してもよい。あるいは、追加出力層生成部102は、入力層21から数えて(m−1)番目の中間層を除く全ての中間層に、追加出力層34を接続してもよい。
この場合、追加出力層生成部108は、スモールネットワーク3Aの中間層のうち、追加出力層24が接続されたラージネットワーク2Aの中間層に対応する中間層を特定し、特定した中間層に追加出力層34を接続すればよい。各追加出力層24における追加誤差値55は、上記実施の形態と同様に算出される。また、更新部109は、各追加出力層24の追加誤差値55に基づく重み計数の更新量を算出し、これらの更新量を用いて重み計数を更新すればよい。
また、上記実施の形態において、ラージネットワーク2A及びスモールネットワーク3Aが全結合層を形成している場合を例に説明したが、これに限られない。ラージネットワーク2A及びスモールネットワーク3Aの少なくとも一方が、畳み込み層を備えていてもよい。畳み込み層のノードに接続された信号経路の重み付け係数の更新については、基本的に上記実施の形態と同様である。畳み込み層のノードに接続された信号経路の重み付け係数を更新する場合、更新部109は、畳み込み層のノードに接続された信号経路のうち、畳み込みに関係しない重み計数を更新せずにゼロのままとすればよい。
また、上記実施の形態における機械学習装置100の各機能ブロック(各機能部)の処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記実施の形態の機械学習装置100において、各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。例えば、機械学習装置100の構成を、図13に示すような構成とすることにより、上記各実施形態の各機能ブロック(各機能部)の処理の一部または全部が実行されるものであっても良い。
また、上記実施の形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
また、上記実施の形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
また、文言「部」は、「サーキトリー(circuitry)」を含む概念であってもよい。サーキトリーは、ハードウェア、ソフトウェア、あるいは、ハードウェアおよびソフトウェアの混在により、その全部または一部が、実現されるものであってもよい。
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
100 機械学習装置
101 ネットワーク取得部
102,108 追加出力層生成部
103 追加学習部
104 演算部
105 出力値調整部
106 出力誤差計算部
107 追加誤差計算部
109 更新部

Claims (8)

  1. 学習済みのニューラルネットワークである第1ネットワークと、前記第1ネットワークよりも規模の小さいニューラルネットワークであり、かつ、層の数がm(mは4以上の自然数)である第2ネットワークとを取得するネットワーク取得部と、
    前記第1のネットワークから一の中間層を選択し、前記一の中間層を構成するノードと接続されたノードを有する第1追加出力層を前記第1ネットワークに追加する第1追加出力層生成部と、
    前記第2ネットワークに含まれる中間層の中から前記一の中間層に対応する第k層(kは2以上m−2以下の自然数)を特定し、前記第k層を構成するノードと接続されたノードを有する第2追加出力層を前記第2ネットワークに追加する第2追加出力層生成部と、
    学習データを前記第1ネットワークに入力して前記第1ネットワークを用いた演算を実行し、前記第1ネットワークの通常出力層のノードから通常出力値を取得し、前記第1追加出力層のノードから追加出力値を取得する演算部と、
    前記通常出力値の分布範囲が狭くなるように前記通常出力値を調整することにより追加調整値を生成する出力値調整部と、
    前記追加出力値及び前記追加調整値から追加誤差値を算出する追加誤差計算部と、
    前記追加誤差値を前記第2追加出力層のノードに入力し、前記第2ネットワークに含まれる前記第k層のノードと、第(k−1)層のノードとを接続する信号経路の重み計数を誤差逆伝播法を用いて更新する更新部と、
    を備える機械学習装置。
  2. 請求項1に記載の機械学習装置であって、
    前記第2ネットワークにおける層の数は、前記第1ネットワークにおける層の数と同じであり、
    前記第2ネットワークの入力層を基準にした場合における前記第k層の位置が、前記第1ネットワークの入力層を基準にした場合における前記一の中間層の位置と同じである機械学習装置。
  3. 請求項1または請求項2に記載の機械学習装置であって、
    前記第1ネットワークの出力層のノードの数と、前記第2ネットワークの出力層のノードの数と、前記第1追加出力層のノードの数と、前記第2追加出力層のノードの数とは、同じである機械学習装置。
  4. 請求項1ないし請求項3のいずれかに記載の機械学習装置であって、さらに、
    前記出力値調整部は、前記通常出力値の分布範囲が狭くなるように前記出力値を調整することにより、調整出力値を生成し、
    前記機械学習装置は、さらに、
    前記通常出力値及び前記調整出力値に基づいて調整誤差値を生成する出力誤差計算部、
    を備え、
    前記更新部は、前記調整誤差値を前記第2ネットワークの通常出力層に入力し、前記通常出力層に入力された調整誤差値を用いて前記重み計数を更新する機械学習装置。
  5. 請求項4に記載の機械学習装置であって、
    前記追加調整値の分布範囲は、前記調整出力値の分布範囲よりも狭い機械学習装置。
  6. 請求項4に記載の機械学習装置であって、
    前記出力誤差計算部は、前記通常出力値及び前記学習データに対応する正解値に基づいて出力誤差値を生成し、
    前記更新部は、前記出力誤差値を前記第2ネットワークの通常出力層に入力し、前記通常出力層に入力された出力誤差値を用いて前記重み計数を更新する機械学習装置。
  7. 請求項6に記載の機械学習装置であって、
    前記更新部は、前記通常出力層に入力された調整誤差値に基づく前記重み計数の第1の更新量を計算し、前記第2の追加出力層に入力された追加誤差値に基づく前記前記重み計数の第2の更新量を計算し、
    前記第2の更新量の学習率は、前記第1の更新量の学習率よりも小さい機械学習装置。
  8. 学習済みのニューラルネットワークである第1ネットワークと、前記第1ネットワークよりも規模の小さいニューラルネットワークであり、かつ、層の数がm(mは4以上の自然数)である第2ネットワークとを取得するステップと、
    前記第1のネットワークから一の中間層を選択し、前記一の中間層を構成するノードと接続されたノードを有する第1追加出力層を生成するステップと、
    前記第2ネットワークに含まれる中間層の中から前記一の中間層に対応する第k層(kは2以上m−2以下の自然数)を特定し、前記第k中間層を構成するノードと接続されたノードを有する第2追加出力層を生成するステップと、
    学習データを前記第1ネットワークに入力して前記第1ネットワークを用いた演算を実行し、前記第1ネットワークの通常出力層のノードから通常出力値を取得し、前記第1追加出力層のノードから追加出力値を取得するステップと、
    前記通常出力値の分布範囲が狭くなるように前記通常出力値を調整することにより追加調整値を生成するステップと、
    前記追加出力値及び前記追加調整値から追加誤差値を算出するステップと、
    前記追加誤差値を前記第2追加出力層のノードに入力し、前記第2ネットワークに含まれる前記第k層のノードと、第(k−1)層のノードとを接続する信号経路の重み計数を誤差逆伝播法を用いて更新するステップと、
    を備える機械学習方法。
JP2016066357A 2016-03-29 2016-03-29 機械学習装置 Pending JP2017182320A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016066357A JP2017182320A (ja) 2016-03-29 2016-03-29 機械学習装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016066357A JP2017182320A (ja) 2016-03-29 2016-03-29 機械学習装置

Publications (1)

Publication Number Publication Date
JP2017182320A true JP2017182320A (ja) 2017-10-05

Family

ID=60007385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016066357A Pending JP2017182320A (ja) 2016-03-29 2016-03-29 機械学習装置

Country Status (1)

Country Link
JP (1) JP2017182320A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019079102A (ja) * 2017-10-20 2019-05-23 ヤフー株式会社 学習装置、生成装置、分類装置、学習方法、学習プログラム、および動作プログラム
CN109886386A (zh) * 2019-01-30 2019-06-14 北京声智科技有限公司 唤醒模型的确定方法及装置
JP2019106140A (ja) * 2017-12-14 2019-06-27 アイシン精機株式会社 機械学習のモデルパラメータの学習装置
WO2019167884A1 (ja) * 2018-02-28 2019-09-06 富士フイルム株式会社 機械学習方法及び装置、プログラム、学習済みモデル、並びに判別装置
CN111699496A (zh) * 2018-03-14 2020-09-22 欧姆龙株式会社 神经网络型图像处理装置
JP2021026291A (ja) * 2019-07-31 2021-02-22 株式会社東芝 学習装置、学習方法およびプログラム
EP3828776A1 (en) 2019-11-27 2021-06-02 Fujitsu Limited Program, learning method, and learning apparatus
EP3893164A1 (en) 2020-04-06 2021-10-13 Fujitsu Limited Learning program, learing method, and learning apparatus

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019079102A (ja) * 2017-10-20 2019-05-23 ヤフー株式会社 学習装置、生成装置、分類装置、学習方法、学習プログラム、および動作プログラム
JP7000834B2 (ja) 2017-12-14 2022-01-19 株式会社アイシン 機械学習のモデルパラメータの学習装置
JP2019106140A (ja) * 2017-12-14 2019-06-27 アイシン精機株式会社 機械学習のモデルパラメータの学習装置
WO2019167884A1 (ja) * 2018-02-28 2019-09-06 富士フイルム株式会社 機械学習方法及び装置、プログラム、学習済みモデル、並びに判別装置
JPWO2019167884A1 (ja) * 2018-02-28 2021-02-12 富士フイルム株式会社 機械学習方法及び装置、プログラム、学習済みモデル、並びに判別装置
US11929174B2 (en) 2018-02-28 2024-03-12 Fujifilm Corporation Machine learning method and apparatus, program, learned model, and discrimination apparatus using multilayer neural network
CN111699496A (zh) * 2018-03-14 2020-09-22 欧姆龙株式会社 神经网络型图像处理装置
CN111699496B (zh) * 2018-03-14 2023-08-29 欧姆龙株式会社 神经网络型图像处理装置、外观检查装置及外观检查方法
CN109886386A (zh) * 2019-01-30 2019-06-14 北京声智科技有限公司 唤醒模型的确定方法及装置
JP2021026291A (ja) * 2019-07-31 2021-02-22 株式会社東芝 学習装置、学習方法およびプログラム
JP7068242B2 (ja) 2019-07-31 2022-05-16 株式会社東芝 学習装置、学習方法およびプログラム
EP3828776A1 (en) 2019-11-27 2021-06-02 Fujitsu Limited Program, learning method, and learning apparatus
EP3893164A1 (en) 2020-04-06 2021-10-13 Fujitsu Limited Learning program, learing method, and learning apparatus

Similar Documents

Publication Publication Date Title
JP2017182320A (ja) 機械学習装置
US9785886B1 (en) Cooperative execution of a genetic algorithm with an efficient training algorithm for data-driven model creation
US11106978B2 (en) Execution of a genetic algorithm with variable evolutionary weights of topological parameters for neural network generation and training
US10635978B2 (en) Ensembling of neural network models
CN110490717B (zh) 基于用户会话及图卷积神经网络的商品推荐方法及系统
US11687786B2 (en) Pre-processing for data-driven model creation
JP6708847B1 (ja) 機械学習装置及び方法
Montalto et al. Neural networks with non-uniform embedding and explicit validation phase to assess Granger causality
JP6623947B2 (ja) 情報処理装置、イジング装置及び情報処理装置の制御方法
JP2017182319A (ja) 機械学習装置
CN110543935B (zh) 处理交互序列数据的方法及装置
CN110689110B (zh) 处理交互事件的方法及装置
CN110490274B (zh) 评估交互事件的方法及装置
JP2019159997A (ja) 最適化装置及び最適化装置の制御方法
CN115204352B (zh) 信息处理装置、信息处理方法和存储介质
Igel et al. Operator adaptation in evolutionary computation and its application to structure optimization of neural networks
US20230268035A1 (en) Method and apparatus for generating chemical structure using neural network
JP6947108B2 (ja) データ予測装置、方法、及びプログラム
US20240095535A1 (en) Executing a genetic algorithm on a low-power controller
JP2015114988A (ja) 処理装置、処理方法、およびプログラム
US20200327393A1 (en) Optimization system and control method for optimization system
Stanescu et al. Learning parsimonious ensembles for unbalanced computational genomics problems
JP5950284B2 (ja) 処理装置、処理方法、およびプログラム
Dash DECPNN: A hybrid stock predictor model using Differential Evolution and Chebyshev Polynomial neural network
US11954429B2 (en) Automated notebook completion using sequence-to-sequence transformer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200121

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200721