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

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

▶ 株式会社デンソーアイティーラボラトリの特許一覧 ▶ 独立行政法人産業技術総合研究所の特許一覧

<>
  • 特許-学習方法および学習システム 図1
  • 特許-学習方法および学習システム 図2
  • 特許-学習方法および学習システム 図3
  • 特許-学習方法および学習システム 図4
  • 特許-学習方法および学習システム 図5
  • 特許-学習方法および学習システム 図6
  • 特許-学習方法および学習システム 図7
  • 特許-学習方法および学習システム 図8
  • 特許-学習方法および学習システム 図9
  • 特許-学習方法および学習システム 図10
  • 特許-学習方法および学習システム 図11
  • 特許-学習方法および学習システム 図12
  • 特許-学習方法および学習システム 図13
  • 特許-学習方法および学習システム 図14
  • 特許-学習方法および学習システム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-11
(45)【発行日】2023-01-19
(54)【発明の名称】学習方法および学習システム
(51)【国際特許分類】
   G06N 3/08 20230101AFI20230112BHJP
【FI】
G06N3/08
【請求項の数】 15
(21)【出願番号】P 2018189818
(22)【出願日】2018-10-05
(65)【公開番号】P2020060838
(43)【公開日】2020-04-16
【審査請求日】2021-07-27
(73)【特許権者】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(73)【特許権者】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】230104019
【弁護士】
【氏名又は名称】大野 聖二
(74)【代理人】
【識別番号】100106840
【弁理士】
【氏名又は名称】森田 耕司
(74)【代理人】
【識別番号】100131451
【弁理士】
【氏名又は名称】津田 理
(74)【代理人】
【識別番号】100167933
【弁理士】
【氏名又は名称】松野 知紘
(74)【代理人】
【識別番号】100174137
【弁理士】
【氏名又は名称】酒谷 誠一
(72)【発明者】
【氏名】佐藤 育郎
(72)【発明者】
【氏名】劉 国慶
(72)【発明者】
【氏名】田中 正行
【審査官】金田 孝之
(56)【参考文献】
【文献】特開2018-128897(JP,A)
【文献】特開平08-297495(JP,A)
【文献】特開2016-197389(JP,A)
【文献】特開2018-106489(JP,A)
【文献】国際公開第2018/047225(WO,A1)
【文献】特開2017-129990(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みを学習する方法であって、
多数の学習データのうちの一部の学習データのみを用いることにより、前記識別器が弱識別器として動作するよう前記第2の重みを設定する第1ステップと、
前記設定された前記第2の重みを固定して前記第1の重みを更新する第2ステップと、を備える、学習方法。
【請求項2】
前記第2ステップは、複数の学習データを含むミニバッチを用いて行われ、
特定のミニバッチを用いて前記第2ステップを行った後、
前回の前記第2ステップで固定されていた前記第2の重みを用いることなく、新たに前記第2の重みを設定する前記第1ステップを行い、さらに、
別のミニバッチを用いて前記第2ステップを行うことを反復する、請求項1に記載の学習方法。
【請求項3】
前記第2ステップは、複数の学習データを含むミニバッチを用いて行われ、
用いるミニバッチを変えながら前記第2ステップを複数回反復した後、
前回の前記第2ステップで固定されていた前記第2の重みを用いることなく、新たに前記第2の重みを設定する前記第1ステップを行い、さらに、
別のミニバッチを用いて前記第2ステップを行うことを反復する、請求項1に記載の学習方法。
【請求項4】
ある反復では、第1タスク用のデータセットからサンプリングされたミニバッチが用いられ、
別のある反復では、前記第1タスクとは異なる第2タスク用のデータセットからサンプリングされたミニバッチが用いられる、請求項に記載の学習方法。
【請求項5】
1回の反復において、第1タスク用のデータセットからサンプリングされたミニバッチと、前記第1タスクとは異なる第2タスク用のデータセットからサンプリングされたミニバッチと、が用いられる、請求項に記載の学習方法。
【請求項6】
前記第1ステップでは、複数とおりの前記第2の重みを設定し、
前記第2ステップは、複数とおりの前記第2の重みについてのそれぞれの損失関数を平均化した目的関数を利用して前記第1の重みを更新する、請求項1乃至のいずれかに記載の学習方法。
【請求項7】
前記第1ステップでは、複数とおりの前記第2の重みを設定し、
前記第2ステップでは、
複数の学習用の入力のそれぞれに対して、前記第1の重みおよび前記複数のとおりの前記第2の重みをそれぞれ適用して、複数の出力を生成し、
前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、
前記コスト関数の前記複数の学習用の入力についての第1平均値を算出し、
前記第1平均値の前記複数とおりの前記第2の重みについての第2平均値を算出し、
前記第2平均値に基づく目的関数が小さくなるよう前記第1の重みを更新する、請求項1乃至のいずれかに記載の学習方法。
【請求項8】
前記第1ステップでは、複数とおりの前記第2の重みを設定し、
前記第2ステップでは、
複数の学習用の入力のそれぞれに対して、前記第1の重みおよび前記複数のとおりの前記第2の重みをそれぞれ適用して、複数の出力を生成し、
前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、
前記コスト関数の前記第1の重みに対する勾配を算出し、
前記勾配の前記複数の学習用の入力についての第1平均値を算出し、
前記第1平均値の前記複数とおりの前記第2の重みについての第2平均値を算出し、
前記第2平均値に基づく目的関数が小さくなるよう前記第1の重みを更新する、請求項1乃至のいずれかに記載の学習方法。
【請求項9】
複数のノードのそれぞれが、前記特徴抽出器および前記識別器を有し、
前記第1ステップにおいて、各ノードが互いに異なる前記第2の重みを設定し、
前記第2ステップにおいて、
各ノードが、
複数の学習用の入力のそれぞれに対して、前記第1の重みおよび前記第2の重みを適用して、複数の出力を生成し、
前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、
前記コスト関数の前記第1の重みに対する勾配を算出し、
前記勾配の前記複数の学習用の入力についての第1平均値を算出し、
各ノードから前記第1平均値を受信して足し合わせた結果を用いて、前記第1の重みを更新する、請求項に記載の学習方法。
【請求項10】
前記第1ステップでは、前記第2の重みを乱数で初期化し、次いで、
前記初期化された前記第2の重みを所定回更新することにより、
または、
識別力の評価指標が所定範囲内になるよう前記初期化された前記第2の重みを更新することにより、前記第2の重みを設定する、請求項1乃至のいずれかに記載の学習方法。
【請求項11】
前記第1ステップでは、
前記第2の重みを乱数で初期化し、
特定のミニバッチに含まれる複数の学習データの少なくとも一部の真値を変更し、
真値が変更された学習データを含む前記複数の学習データを用いて、前記第2の重みを設定する、請求項1ないしのいずれかに記載の学習方法。
【請求項12】
第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みおよび第2の重みを学習する方法であって、
第1ドメインでの第1学習データを用いて、請求項1乃至1のいずれかに記載の学習方法により前記第1の重みを学習するステップと、その後に、
得られた前記第1の重みを固定して、前記第1ドメインとは異なる第2ドメインでの第2学習データを用いて前記第2の重みを初期値から更新するステップと、を備える、学習方法。
【請求項13】
第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みおよび第2の重みを学習する方法であって、
所定ドメインでの学習データを用いて、請求項1乃至1のいずれかに記載の学習方法により前記第1の重みを学習するステップと、その後に、
得られた前記第1の重みを固定して、前記所定ドメインでの学習データを用いて前記第2の重みを初期値から更新するステップと、を備える、学習方法。
【請求項14】
第1の重みによって規定される特徴抽出器と、それぞれが第2の重みによって規定される2以上の識別器と、を有するニューラルネットワークにおける前記第1の重みおよび第2の重みを学習する方法であって、
前記2以上の識別器は、1つの前記特徴抽出器からの特徴量を用いて識別を行うが、識別タスクは互いに異なっており、
所定の学習データを用いて、請求項1乃至1のいずれかに記載の学習方法により前記第1の重みを学習するステップと、その後に、
得られた前記第1の重みを固定して、各識別タスクに応じた学習データを用いて各識別器における前記第2の重みを初期値から更新するステップと、を備える、学習方法。
【請求項15】
第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みを学習するシステムであって、
多数の学習データのうちの一部の学習データのみを用いることにより、前記識別器が弱識別器として動作するよう前記第2の重みを設定し、前記設定された前記第2の重みを固定して前記第1の重みを更新する重み設定部を備える学習システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークにおける重みを設定する学習方法および学習システムに関する。
【背景技術】
【0002】
これまでに多くのニューラルネットワークが提案されている(例えば、特許文献1,2)。ニューラルネットワークの一例として、特徴抽出器および識別器から構成され、入力(例えば、画像)に対する識別(例えば、歩行者の検知)を行うものが挙げられる。このようなニューラルネットワークにおいては、特徴抽出器を規定する重みおよび識別器を規定する重みを学習して、最適化する必要がある。
【0003】
あるドメインにおける学習データを用いて学習を行い、当該ドメインにおける入力に対しては高い精度で識別結果が得られるよう重みを設定したとしても、他のドメインにおける入力に対しては必ずしも高い精度で識別結果が得られるとは限らない。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-197389号公報
【文献】特開2018-106489号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明はこのような問題点に鑑みてなされたものであり、本発明の課題は、より識別力が高いニューラルネットワークを実現するための学習方法および学習システムを提供することである。
【課題を解決するための手段】
【0006】
本発明の一態様によれば、第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みを学習する方法であって、前記識別器が弱識別器として動作するよう前記第2の重みを設定する第1ステップと、前記設定された前記第2の重みを固定して前記第1の重みを更新する第2ステップと、を備える、学習方法が提供される。
【0007】
また、本発明の別の態様によれば、第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みを学習する方法であって、前記第1の重みを固定して前記第2の重みを更新することにより前記第2の重みを設定する第1ステップと、前記設定された前記第2の重みを固定して前記第1の重みを更新する第2ステップと、を備える、学習方法が提供される。
【0008】
前記第1ステップでは、前記識別器が弱識別器として動作するよう前記第2の重みを設定するのが望ましい。
【0009】
前記第2ステップは、複数の学習データを含むミニバッチを用いて行われ、特定のミニバッチを用いて前記第2ステップを行った後、前回の前記第2ステップで固定されていた前記第2の重みを用いることなく、新たに前記第2の重みを設定する前記第1ステップを行い、さらに、別のミニバッチを用いて前記第2ステップを行うことを反復してもよい。
【0010】
あるいは、前記第2ステップは、複数の学習データを含むミニバッチを用いて行われ、用いるミニバッチを変えながら前記第2ステップを複数回反復した後、前回の前記第2ステップで固定されていた前記第2の重みを用いることなく、新たに前記第2の重みを設定する前記第1ステップを行い、さらに、別のミニバッチを用いて前記第2ステップを行うことを反復してもよい。
【0011】
ある反復では、第1タスク用のデータセットからサンプリングされたミニバッチが用いられ、別のある反復では、前記第1タスクとは異なる第2タスク用のデータセットからサンプリングされたミニバッチが用いられてもよい。
【0012】
1回の反復において、第1タスク用のデータセットからサンプリングされたミニバッチと、前記第1タスクとは異なる第2タスク用のデータセットからサンプリングされたミニバッチと、が用いられてもよい。
【0013】
前記第1ステップでは、複数とおりの前記第2の重みを設定し、前記第2ステップは、複数とおりの前記第2の重みについての平均値に基づく目的関数を利用して前記第1の重みを更新してもよい。
【0014】
具体例として、前記第1ステップでは、複数とおりの前記第2の重みを設定し、前記第2ステップでは、複数の学習用の入力のそれぞれに対して、前記第1の重みおよび前記複数のとおりの前記第2の重みをそれぞれ適用して、複数の出力を生成し、前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、前記コスト関数の前記複数の学習用の入力についての第1平均値を算出し、前記第1平均値の前記複数とおりの前記第2の重みについての第2平均値を算出し、前記第2平均値に基づく目的関数が小さくなるよう前記第1の重みを更新してもよい。
【0015】
別の具体例として、前記第1ステップでは、複数とおりの前記第2の重みを設定し、前記第2ステップでは、複数の学習用の入力のそれぞれに対して、前記第1の重みおよび前記複数のとおりの前記第2の重みをそれぞれ適用して、複数の出力を生成し、前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、前記コスト関数の前記第1の重みに対する勾配を算出し、前記勾配の前記複数の学習用の入力についての第1平均値を算出し、前記第1平均値の前記複数とおりの前記第2の重みについての第2平均値を算出し、前記第2平均値に基づく目的関数が小さくなるよう前記第1の重みを更新してもよい。
【0016】
この場合、複数のノードのそれぞれが、前記特徴抽出器および前記識別器を有し、前記第1ステップにおいて、各ノードが互いに異なる前記第2の重みを設定し、前記第2ステップにおいて、各ノードが、複数の学習用の入力のそれぞれに対して、前記第1の重みおよび前記第2の重みを適用して、複数の出力を生成し、前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、前記コスト関数の前記第1の重みに対する勾配を算出し、前記勾配の前記複数の学習用の入力についての第1平均値を算出し、各ノードから前記第1平均値を受信して足し合わせた結果を用いて、前記第1の重みを更新してもよい。
【0017】
前記第1ステップでは、前記第2の重みを乱数で初期化し、次いで、前記初期化された前記第2の重みを所定回更新することにより、前記識別器が弱識別器として動作するよう前記初期化された前記第2の重みを更新することにより、または、識別力の評価指標が所定範囲内になるよう前記初期化された前記第2の重みを更新することにより、前記第2の重みを設定してもよい。
【0018】
あるいは、前記第1ステップでは、前記第2の重みを乱数で初期化し、特定のミニバッチに含まれる複数の学習データの少なくとも一部の真値を変更し、真値が変更された学習データを含む前記複数の学習データを用いて、前記第2の重みを設定してもよい。
【0019】
本発明の別の態様によれば、第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みを学習する方法であって、前記第2の重みを初期化する第1ステップと、1回の更新において、前記第1の重みおよび前記第2の重みの両方を更新する処理を1または複数回行う第2ステップと、を備え、前記第1ステップおよび前記第2ステップを反復して行う、学習方法が提供される。
【0020】
本発明の別の態様によれば、第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みおよび第2の重みを学習する方法であって、第1ドメインでの第1学習データを用いて、上記のいずれかに記載の学習方法により前記第1の重みを学習するステップと、その後に、得られた前記第1の重みを固定して、前記第1ドメインとは異なる第2ドメインでの第2学習データを用いて前記第2の重みを初期値から更新するステップと、を備える、学習方法が提供される。
【0021】
本発明の別の態様によれば、第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みおよび第2の重みを学習する方法であって、所定ドメインでの学習データを用いて、上記のいずれかに記載の学習方法により前記第1の重みを学習するステップと、その後に、得られた前記第1の重みを固定して、前記所定ドメインでの学習データを用いて前記第2の重みを初期値から更新するステップと、を備える、学習方法が提供される。
【0022】
本発明の別の態様によれば、第1の重みによって規定される特徴抽出器と、それぞれが第2の重みによって規定される2以上の識別器と、を有するニューラルネットワークにおける前記第1の重みおよび第2の重みを学習する方法であって、前記2以上の識別器は、1つの前記特徴抽出器からの特徴量を用いて識別を行うが、識別タスクは互いに異なっており、所定の学習データを用いて、上記のいずれかに記載の学習方法により前記第1の重みを学習するステップと、その後に、得られた前記第1の重みを固定して、各識別タスクに応じた学習データを用いて各識別器における前記第2の重みを初期値から更新するステップと、を備える、学習方法が提供される。
【0023】
本発明の別の態様によれば、第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みを学習するシステムであって、前記識別器が弱識別器として動作するよう前記第2の重みを設定し、前記設定された前記第2の重みを固定して前記第1の重みを更新する重み設定部を備える学習システムが提供される。
【0024】
本発明の別の態様によれば、第1の重みによって規定される特徴抽出器と、第2の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第1の重みを学習するシステムであって、前記第1の重みを固定して前記第2の重みを更新することにより前記第2の重みを設定し、前記設定された前記第2の重みを固定して前記第1の重みを更新する重み設定部を備える学習システムが提供される。
【発明の効果】
【0025】
ニューラルネットワークの識別力を高くすることができる。
【図面の簡単な説明】
【0026】
図1】本発明が対象とするニューラルネットワークを模式的に示す図。
図2】複数の入力xの特徴量Fφ(x)の特徴空間における分布を模式的に示す図。
図3】学習過程におけるある段階Tでの識別境界を模式的に示す図。
図4】学習過程における次の段階T+1での識別境界を模式的に示す図。
図5】第1の実施形態に係る学習手法の概要を示すフローチャート。
図6】作成されたミニバッチに含まれる入力xの特徴量Fφ(x)の特徴空間における分布を模式的に示す図。
図7図13の特徴量Fφ(x)に対して作成された弱識別器による識別境界Bを模式的に示す図。
図8】重みφを更新した後の特徴量Fφ(x)の分布および識別境界Bを模式的に示す図。
図9】重みφを反復して更新した後の特徴量Fφ(x)の分布および識別境界Bを模式的に示す図。
図10】第1の実施形態に係る学習システム100の概略構成を示すブロック図。
図11】第1の実施形態に係る学習システムの処理動作の一例を示すフローチャート。
図12】第2の実施形態に係る学習システムの処理動作の一例を示すフローチャート。
図13】分散学習を行う学習システムの概略構成の一例を示すブロック図。
図14】第3の実施形態に係る学習システムの処理動作の一例を示すフローチャート。
図15】マルチタスクを行うニューラルネットワークおよび学習システムの概略構成を示すブロック図。
【発明を実施するための形態】
【0027】
以下、本発明に係る実施形態について、図面を参照しながら具体的に説明する。
【0028】
図1は、本発明が対象とするニューラルネットワークを模式的に示す図である。ニューラルネットワークは、特徴抽出器1(Feature Extractor)と、識別器2(Classifier)とを有する。このニューラルネットワークは入力xに対する識別結果yを出力するものである。
【0029】
特徴抽出器1は階層的に設けられる複数の畳み込み層(CNV)3を有する。初段の畳み込み層3は識別対象である入力データ(例えば、画像データ)xが入力され、2段目以降の畳み込み層3は前段の畳み込み層3からの出力が入力される。そして、畳み込み層3のそれぞれは、所定の処理、例えば重みφが設定されたフィルタの適用、非線形写像およびプーリング操作を順に行って得られる値を出力する。
【0030】
ニューラルネットワークにおける学習は、畳み込み層3における重みφを逐次更新して最適化することを含む。特徴抽出器1は重みφによって規定されると考えることができる。
【0031】
ここで、最終段の畳み込み層3からの出力を特徴量と呼ぶ。そして、ニューラルネットワークへの入力xに対する、重みφによって規定される特徴抽出器1が出力する特徴量をFφ(x)と表記する。
【0032】
識別器2は階層的に設けられる複数の全結合層4(例えば、初段の入力層、複数段の隠れ層および最終段の出力層)を有する。初段の全結合層4には特徴抽出器1からの(すなわち最終段の畳み込み層3からの)特徴量Fφ(x)が入力され、2段目以降の全結合層4は前段の全結合層4からの出力が入力される。そして、全結合層4のそれぞれは、重みθを用いた積和演算と、それに続く任意の非線形活性化を行って得られる値を出力する。最終段の全結合層4からの出力が識別結果yである。
【0033】
ニューラルネットワークにおける学習は、全結合層4における重みθを逐次更新して最適化することを含む。識別器2は重みθによって規定されると考えることができる。
【0034】
そして、識別器2への入力(つまり、特徴抽出器1からの出力)Fφ(x)に対する、重みθによって規定される識別器2の出力をCθ(Fφ(x))と表記する。すなわち、ニューラルネットワークは、xが入力されるとCθ(Fφ(x))を出力する。
【0035】
本発明に係る学習方法の説明に先立って、通常の学習方法の一例を比較例として説明する。
【0036】
学習には、識別の対象となる学習用の入力xと、それに対する理想的な出力である真値tとの組である学習データ(x,t)が多数用いられる。本比較例では、1回の重み更新において、学習データの全セットDのうちの一部(ミニバッチMという)を用いるミニバッチ学習を行うものとする。そして、最適な重みφ*,θ*を以下の(1A)~(1C)式に基づいて得る。
【0037】
【数1】
【0038】
上記(1C)式における右辺のL(Cθ(Fφ(x)),t)は、ニューラルネットワークの出力Cθ(Fφ(x))が真値tからどの程度離れているかを示すコスト関数であり、例えば二乗誤差やクロスエントロピーである。また、E(x,t)Mは、ミニバッチMに含まれる学習データ(x,t)の全ての組について、コスト関数L(Cθ(Fφ(x),t)の平均値(期待値とも言える。以下同じ。)を算出する関数である。
【0039】
そして、上記(1C)式における左辺のJ(M,φ,θ)はミニバッチMにおける損失関数である。すなわち、損失関数J(M,φ,θ)は、ミニバッチMに含まれる学習データ(x,t)の全ての組についての、コスト関数L(Cθ(Fφ(x),t)の平均値であり、ミニバッチM、重みφ,θの関数となっている。
【0040】
上記(1B)式における右辺のEMDは、学習データの全セットDに含まれる全ミニバッチMについて、損失関数J(M,φ,θ)の平均値を算出する関数である。
【0041】
そして、上記(1B)式における左辺のGD(φ,θ)は学習データの全セットDにおける目的関数である。すなわち、目的関数GD(φ,θ)は、学習データの全セットDに含まれる全ミニバッチMについての、損失関数J(M,φ,θ)の平均値であり、重みφ,θの関数となっている。このように、目的関数GD(φ,θ)が重みφのみならず、重みθの関数にもなっている点が留意される。
【0042】
上記(1A)式における右辺の関数argminは、誤差逆伝搬法などによって重みφ,θの更新を繰り返し、目的関数GD(φ,θ)が最小となる重みφ*,θ*を返す関数である。これにより、最適された重みφ*,θ*が得られる。ここで、目的関数GD(φ,θ)は重みφ,θの関数であるから、上記(1A)式では、重みφ,θが同時に最適化される。
【0043】
しかしながら、このように重みφ,θを同時に最適化する手法には次のような問題があることを本願発明者らは見出した。
【0044】
説明を簡単にするため、入力xがクラス1およびクラス2のいずれであるかを識別するニューラルネットワークを例に取って説明する。
【0045】
図2は、複数の入力xの特徴量Fφ(x)の特徴空間における分布を模式的に示す図である。ここでは、特徴量が2次元であるとしている。
【0046】
重みφで規定される特徴抽出器1は、学習用の各入力xに基づく2次元の特徴量Fφ(x)(以下、単に「入力xの特徴量Fφ(x)」ともいう)を出力する。図2では、各入力xの特徴量Fφ(x)を2次元空間(特徴空間)に示している。特徴抽出器1は特徴空間における入力xの特徴量Fφ(x)の位置(座標)を規定するものと言える。丸印はクラス1と識別されるべき(真値がクラス1)入力xの特徴量であり、三角印はクラス2と識別されるべき(真値がクラスB)入力xの特徴量である。
【0047】
図3に、学習過程におけるある段階Tでの識別境界を模式的に示す。識別器2は特徴空間において識別境界を規定するものと言える。識別境界B1の内側および識別境界B2の右側がクラス2と識別される領域である。学習過程では識別の精度は高くなく、誤識別がある(例えば、クラス1と識別されるべき入力に対する特徴量Fφ(xa)がクラス2と識別され、クラス2と識別されるべき入力に対する特徴量Fφ(xb),Fφ(xc)がクラス1と識別されている)。また、識別器2は非線形な性質を有するので、特定の入力を囲う識別境界B1や、非常に複雑な形状の識別境界B2が生成され得る。
【0048】
このような識別境界B1,B2が生成された段階で重みφ,θが更新されることによって、次の段階T+1では、特徴空間における各入力の特徴量および識別境界が微小に変化する。具体的には、重みφの更新によって各入力の特徴量が変化し、重みθの更新によって識別境界が変化する。
【0049】
図4に、学習過程における次の段階T+1での識別境界を模式的に示す。段階T+1では、段階Tにおける識別境界B1,B2に対して、可能な範囲で各入力xの特徴量Fφ(x)が適切な方向に動くよう重みφが更新される。「適切な方向」とは、正しい識別結果が得られている入力xの特徴量Fφ(x)は識別境界から離れる方向であり、誤った識別結果が得られている入力xの特徴量Fφ(x)は識別境界を超える(あるいは、識別境界に近づく)方向である。「可能な範囲」とは、特徴抽出器1の重みφのみ、あるいは、識別器2の重みθのみが単独で最適化されるのではなく、互いの束縛を受けながら最適化されることを意味する。
【0050】
このような更新を反復することで、学習用の各入力xを高精度に識別できるように、言い換えると、特徴空間における各特徴量Fφ(x)に対する識別境界を高精度に定義できるようになる。
【0051】
しかしながら、このような手法においては、上述したように、重みφ,θが互いの束縛を受けながら最適化されるため、識別境界がある段階における複雑な形状を保ったまま学習を終了してしまうことがある。そうすると、学習用の入力xとは異なる新たな入力に対して、必ずしも正確な識別結果が得られるとは限らない。
【0052】
このように、比較例による手法では、重みφ,θを同時に更新するため、学習段階における特定の識別器2に過度に適合した特徴抽出器1の重みφが得られ、それによって必要以上に複雑な識別境界が得られてしまうこと、ひいては識別エラー率が高くなってしまうことが問題である。
【0053】
そこで、本願発明者らは、特徴抽出器1の重みφが特定の識別器2に過度に適合することがないよう、弱識別器として動作する識別器2を用いて特徴抽出器1の重みφを更新することに想到した。以下、重みφの学習方法について、複数の実施形態を説明する。
【0054】
なお、本願明細書における「弱識別器」とは、ランダムゲス(random guess:当てずっぽうの識別器)よりは識別力が高いが、強識別器よりは識別力が低い識別器を意味する。識別力は所定の評価指標によって定量的に表わすこともできる(例えば、最小化すべき目的関数やエラー率が所定範囲内、など)。
【0055】
(第1の実施形態)
第1の実施形態は、識別器2を弱識別器として動作させる複数の重みθを用意し、各重みθを固定して(すなわち、更新することなく)特徴抽出器1の重みφの更新を反復することで、特定の識別器2に過度に適合しない、汎用性がある重みφが得られるようにするものである。
【0056】
図5は、第1の実施形態に係る学習手法の概要を示すフローチャートである。
まず、予め重みφを初期化しておく。続いて、真値が予め用意された多数の学習データから所定数の学習データをサンプリングしてミニバッチを作成する(ステップS100)。
【0057】
図6に、作成されたミニバッチに含まれる入力xの特徴量Fφ(x)の特徴空間における分布を模式的に示す。なお、図6図2に対応しており、丸印はクラス1と識別されるべき入力xの特徴量Fφ(x)であり、三角印はクラス2と識別されるべき入力xの特徴量である。
【0058】
次いで、作成されたミニバッチに含まれる入力xに対して弱識別器を作成する(図5のステップS200)。具体的には、識別器2が弱識別器として動作するよう、識別器2の重みθを設定する。具体例として、重みθを乱数で初期化し、続いて、勾配降下法に基づく下式を適切な回数(識別器2が弱識別器として動作するよう予め設定)行って重みθを設定することができる(mはミニバッチに含まれる学習データ数、βは予め定めた定数)。
【0059】
【数2】
【0060】
図7に、図13の特徴量Fφ(x)に対して作成された弱識別器による識別境界Bを模式的に示す。識別境界Bの左側がクラス1と識別される領域であり、右側がクラス2と識別される領域でる。この識別器2は複数の入力に対する特徴量Fφ(x)を誤識別している(例えば、特徴量Fφ(x1)~特徴量Fφ(x3))。このように、ステップS200では、あえて識別力が高くない弱識別器(言い換えると、より識別力を高くする余地がある識別器2)を作成する。
【0061】
続いて、弱識別器を更新することなく(つまり、重みθを固定して)、ミニバッチ(ステップS100で作成されたものと同じでもよいし、異なっていてもよい)に含まれる学習データを用いて特徴抽出器1の重みφを更新する(図5のステップS300)。具体例として、勾配降下法に基づく下式を適切な回数(例えば1回)行うことによって、重みφを更新できる(m’はミニバッチに含まれる学習データ数、γは予め定めた定数)。
【0062】
【数3】
【0063】
図8に、重みφを更新した後の特徴量Fφ(x)の分布および識別境界Bを模式的に示す。重みθを固定しているため識別境界Bは変化しないが、各特徴量Fφ(x)の分布がわずかに変化する。その結果、識別境界Bは変化しないものの、ニューラルネットワーク全体としての識別力はわずかに強化される。
【0064】
以上のステップS100~S300を所定の終了条件を満たすまで反復する(ステップS400)。終了条件は、例えば、反復数が予め定めた反復回数に達することや、検証用データにおける認識精度が所定値を超えることである。
【0065】
このように、ステップS200であえて弱識別器を作成した上で、その識別結果が高くなるよう特徴抽出器1の重みφを更新していく。この更新則を反復することで、特徴量Fφ(x)の分布は図9に示すようなものに更新されていくことが期待できる。特徴抽出器1の重みφを更新することで図9に示すように特徴量Fφ(x)が分布するようになると、識別能力が極めて高い識別境界(例えば、実線で示すB1~B3)を引くことは容易であるが、誤識別があり、かつ、ランダムゲスよりも識別力が高い識別境界(例えば、破線で示すB11,B12)を引くことは困難である。これは、弱識別器を作成し、それに対して識別力が強化されるよう学習を反復したことの帰結である。
【0066】
なお、ステップS200における弱識別器の作成法は種々考えられる。一例として、まず識別器2の重みθをランダムな初期値に設定し、特徴抽出器1を更新することなく(つまり、重みφを固定して)、重みθを少数回更新することで識別器2を弱識別器とすることができる。また、ステップS100~S300を反復するが、反復の度に新たな弱識別器を作成してもよいし、弱識別器を作成するための時間を軽減すべく、一定回数の反復の度に新たな弱識別器を作成してもよい(すなわち、ステップS200が省略される反復があってもよい)。
【0067】
ステップS200において新たに弱識別器を作成することは、特定の識別器2(特定の重みθ)でなく、複数の識別器2を学習対象とすることを意味する。これにより、特徴抽出器1(重みφ)が特定の識別器2に過度に適合するのを抑えられる。
【0068】
また、弱識別器を用いることは、識別器2が規定する識別境界が、学習における各段階での特徴量Fφ(x)の特徴空間における分布に過度に適合したもの(例えば、図3に示す識別境界B1,B2)となりにくいことを意味する。これにより、特徴空間における特徴量Fφ(x)の分布が過度に複雑にならないよう重みφが更新されていくことが期待される。
【0069】
なお、ステップS200における弱識別器の別の作成法として、重みθを乱数で初期化し、続いて、一部の学習データにおける真値を無作為に変更したうえで、そのような学習データを用いて重みθを更新してもよい。これにより、識別器2は真値に過剰に適合することができなくなり、結果として弱識別器となる。
【0070】
以下、図5のステップS300における重みφの更新処理をより詳細に説明する。本実施形態では、以下の(2A)~(2D)式に基づいて重みφを更新し、最適な重みφ*を得る。
【0071】
【数4】
【0072】
上記(2D)式における左辺のJ(M,φ,θ)は、上記(1D)式と同じくミニバッチMにおける損失関数であり、ミニバッチM、重みφ,θの関数である。
【0073】
上記(2C)式における左辺のJ’(M,φ)は本実施形態で定義される損失関数である。ここで右辺に現れるΘ(M,φ)は、ミニバッチMおよび重みφで規定される特徴抽出器1が与えられた場合に、識別器2を弱識別器として動作させる重みθの集合であり、複数の重みθから構成される。この複数の重みθが、上述した識別器2を弱識別器として動作させる複数の重みθに対応する。そして、Eθ∈Θ(M,φ)は、Θ(M,φ)に含まれる全ての重みθについての、損失関数J(M,φ,θ)の平均値を示す。
【0074】
すなわち、損失関数J’(M,φ)は、Θ(M,φ)に含まれる全ての重みθについての、言い換えると、重みθで規定される複数の弱識別器についての、損失関数J(M,φ,θ)の平均値である。よって、損失関数J’(M,φ)はミニバッチMおよび重みφの関数であって、特定の重みθには依存しない。
【0075】
上記(2B)式は上記(1B)式と対応しており、左辺のGD(φ)は学習データの全セットDにおける目的関数である。ただし、右辺の損失関数J’(M,φ)は複数の重みθについての平均値に基づくものであるので、特定の重みθには依存しない。そのため、目的関数GD(φ)も特定の重みθには依存しない点が上記(1B)式とは大きく異なる。
【0076】
上記(2A)式は上記(1A)式と対応しており、左辺は目的関数GD(φ)が最小となる重みφ*である。このようにして、特定の重みθ(特定の識別器2)に依存しない最適な重みφ*が得られる。
【0077】
なお、厳密には、上記(2B)式で定義される目的関数GD(φ)を最小化することは困難である。上記(2B)式は学習データの全セットDに含まれる無数のミニバッチMについての平均値を算出することが必要であり、上記(2C)式は無数の重みθについての平均値を算出することが必要であるためである。
【0078】
そこで、実際には、目的関数GD(φ)を近似的に最小化することになる。具体的には、学習処理の各反復において、全てのミニバッチMについての平均値に代えて、ランダムにサンプリングされた単一または所定数のミニバッチMについての平均値で近似することとする。また、全ての重みθについての平均値に代えて、弱識別器の集合Θ(M,φ)からランダムにサンプリングされた単一または所定数のθについての平均値で近似することとする。
【0079】
図10は、第1の実施形態に係る学習システム100の概略構成を示すブロック図である。学習システムは、学習の対象となる特徴抽出器1および識別器2に加え、学習データ記憶部11と、ミニバッチ作成部12と、重み設定部13とを備えている。これらは、1または複数のコンピュータで構成され得る。また、ミニバッチ作成部12および重み設定部13の全ての機能がソフトウェアで実現されてもよいし、少なくとも一部がハードウェアで実装されてもよい。
【0080】
特徴抽出器1および識別器2は図1を用いて説明したとおりである。すなわち、特徴抽出器1は、入力xに対して重みφを適用し、特徴量Fφ(x)を出力する。識別器2は、特徴量Fφ(x)に対して重みθを適用し、識別結果Cθ(Fφ(x))を出力する。
学習データ記憶部11は複数の学習データ(入力xとその真値tとの組)を予め多数記憶している。
【0081】
ミニバッチ作成部12は、学習データ記憶部11に記憶されたn個の入力xのうちm(<n)個をサンプリングして、ミニバッチを作成する。ミニバッチの作成法に特に制限はない。例えば、ミニバッチ作成部12はn個の入力xをランダムにシャッフルし、先頭から順にm個を取り出してミニバッチを作成してもよい。あるいは、ミニバッチ作成部12はn個の入力xからランダムにm個を抽出してミニバッチを作成してもよい。
【0082】
重み設定部13は特徴抽出器1の重みφおよび識別器2の重みθを設定する。特に、本実施形態では、重み設定部13は、識別器2が弱識別器として動作するよう重みθを設定することができる。
【0083】
図11は、第1の実施形態に係る学習システムの処理動作の一例を示すフローチャートである。本実施形態では、1つのミニバッチMはm個の学習データから構成され、p個のミニバッチM1~Mpを用いたミニバッチ学習を行うものとする。さらに、1つのミニバッチMに対してkとおり弱識別器を用いて重みφを更新するものとする。なお、以下に説明する手順は一例であり、適宜処理順を入れ替えたり、同時並行で行ったりしてもよい。
【0084】
まず、重み設定部13は、重みφ,θを初期値(例えば、乱数)に設定し、ミニバッチを特定するパラメータj(j=1~p)および弱識別器を特定するパラメータh(h=1~k)を1に初期化しておく(ステップS1)。
【0085】
そして、ミニバッチ作成部12はj番目のミニバッチMjを作成する(ステップS2)。これにより、学習に用いられるm個の入力xi(i=1~m)と、対応する真値tiとが抽出される。
【0086】
次いで、特徴抽出器1は入力x1~xmのそれぞれに対する特徴量Fφ(x1)~Fφ(xm)を生成する(ステップS3)。
【0087】
そして、重み設定部13はh番目の識別器2の重みθhを乱数で初期化する(ステップS4a)。さらに、重み設定部13は、例えば公知の誤差逆伝播法により、ステップS3で生成された特徴量Fφ(x1)~Fφ(xm)に対して、ミニバッチMjにおけるコスト(例えば、上記(2D)式の損失関数J(Mj,φ,θh)))が低下するよう、最急降下法などによって重みθhを少数回更新する(ステップS4b)。なお、ステップS4a,S4bでは、重み設定部13は重みφを更新しない。
【0088】
少数回の更新に留める理由は、識別器2が強識別器となる前に更新を止めるためである。少数回とは、例えば予め定めた固定回数であってもよい。あるいは、識別器2の識別力を示す評価指標(目的関数やエラー率など)が所定の範囲に収まる回数であってもよい。
【0089】
以上のステップS3,S4a,S4bは図5のステップS200の具体例であり、h番目の重みθhが設定され、h番目の弱識別器が作成される。なお、重み設定部13は他の手法で弱識別器を作成してもよい。
【0090】
h(h=1~k)番目の弱識別器が作成されると、識別器2は、入力x1~xmのそれぞれに対する出力Cθh(Fφ(x1))~Cθh(Fφ(xm))を算出し(ステップS5a)、重み設定部13に出力する。重み設定部13は、各出力Cθh(Fφ(x1))~Cθh(Fφ(xm))と、対応する各真値t1~tmとの間のコスト関数L(Cθh(Fφ(x1),t1))~L(Cθh(Fφ(xm),tm))を算出する(ステップS5b)。さらに、重み設定部13はこれらm個のコスト関数L(Cθh(Fφ(x1),t1))~L(Cθh(Fφ(xm),tm))の平均値を算出し、損失関数J(Mj,φ,θh)とする(ステップS5c)。以上のステップS5a~S5cは上記(2D)式に相当する。
【0091】
以上のステップS4a~5cをk回繰り返すことで(ステップS6a,S6b)、k個の損失関数J(Mj,φ,θ1)~J(Mj,φ,θk)が得られる(ステップS7a)。そして、重み設定部13はこれらk個の損失関数J(Mj,φ,θ1)~J(Mj,φ,θk)の平均値を算出し、損失関数J’(Mj,φ)とする(ステップS7b)。以上のステップS7a,7bは上記(2C)式に相当する。得られた損失関数J’(Mj,φ)はステップS1で生成したj番目のミニバッチMjにおける損失関数である。このようにしてk個の重みθに対する平均値を算出するため、特定の重みθに依存しない損失関数J’(Mj,φ)が得られる。
【0092】
以上のステップS2~S7bをp回繰り返すことで(ステップS8a,8b)、p個の損失関数J’(M1,φ)~J’(Mp,φ)が得られる(ステップS9a)。そして、重み設定部13はこれらp個の損失関数J’(Mj,φ)の平均値を算出し、目的関数GD(φ)とする(ステップS9b)。以上のステップS9a,S9bは上記(2B)式に相当する。
【0093】
そして、重み設定部13は、誤差逆伝搬法などによって重みφの更新を繰り返し、目的関数GD(φ)が最小となる重みφ*を得る(ステップS10)。このステップS10は上記(2A)式に相当する。
【0094】
なお、反復におけるステップS2で作成されるミニバッチMjは、毎回同じタスク用のデータセットから選択されたミニバッチでもよいし、異なるタスク用のデータセットから選択されたミニバッチでもよい。反復のたびに異なる識別器2を用いるということは、反復ごとに異なるデータセットを使用できる、ということでもある。
【0095】
例えば、ある反復では、手書き数字認識というタスクのための画像データセットからサンプリングされたミニバッチを用い、次の反復では、物体認識というタスクのための画像データセットからサンプリングされたミニバッチを用いてもよい。データセットの使用順はランダムに決めてもよいし、一定回数ごとに切り替えてもよい。
【0096】
もちろん、1回の反復において、タスクが互いに異なる複数のデータセットを利用してもよい。例えば、ある反復において、特徴抽出器1の重みφに対し、次の2種類の損失関数の勾配を計算する。1種類目は、データセットAのミニバッチと、データセットAが規定する損失関数を使って生成された弱識別器を用いて計算された、データセットAが規定する損失関数のφに対する勾配である。2種類目は、データセットBのミニバッチと、データセットBが規定する損失関数を使って生成された弱識別器を用いて計算された、データセットBが規定する損失関数のφに対する勾配である。これら2種類の勾配の平均を使ってφを更新する。
これらの適用により、単一のデータセットへの過適合を抑制できる。
【0097】
このように、第1の実施形態では、識別器2を弱識別器として動作させ、その重みθを固定して特徴抽出器1用の重みφを更新する。しかも、複数(k個)の弱識別器についての損失関数Jの平均値である損失関数J’を含む目的関数GD(φ)が小さくなるよう、重みφを更新する。そのため、特定の識別器2に過度に適合しない、汎用性がある重みφが得られる。
【0098】
(第2の実施形態)
次に説明する第2の実施形態は第1の実施形態の変形例である。具体的には、図6のステップS5cにおけるコスト関数Lの平均値である損失関数Jに代えて、コスト関数Lの重みφに対する勾配dL/dφの平均値である勾配平均値EdL/dφを算出する。そして、複数の重みθ1~θk(すなわちk個の弱識別器)における勾配平均値EdL/dφの平均値EEdL/dφを用いて重みφを更新する。以下、具体的に説明する。
【0099】
図12は、第2の実施形態に係る学習システムの処理動作の一例を示すフローチャートである。ステップS1~S5bは図11と共通するので説明を省略する。
【0100】
ステップS5bにおいて、コスト関数L(Cθh(Fφ(x1)),t1)~L(Cθh(Fφ(xm)),tm)が得られると、重み設定部13はそのそれぞれについて、重みφに対する勾配dL(Cθh(Fφ(x1)),t1)/dφ~dL(Cθh(Fφ(xm)),tm)/dφを算出する(ステップS5b’)。そして、重み設定部13は、これらm個の勾配dL(Cθh(Fφ(x1)),t1)/dφ~dL(Cθh(Fφ(xm)),tm)/dφの平均値を算出し、勾配平均値EdL(Mj,φ,θh)/dφとする(ステップS5c’)。
【0101】
以上のステップS4a~S5c’をk回繰り返すことで(ステップS6a,S6b)、k個の勾配平均値EdL(Mj,φ,θ1)/dφ~EdL(Mj,φ,θk)/dφが得られる(ステップS7a’)。そして、重み設定部13はこれらk個の勾配平均値EdL(Mj,φ,θ1)/dφ~EdL(Mj,φ,θk)/dφの平均値を算出し、関数EEdL(Mj,φ)/dφを算出する(ステップS7b’)。これにより、特定の重みθに依存しない関数EEdL(Mj,φ)/dφが得られる。
【0102】
そして、重み設定部13は勾配平均値の平均値である関数EEdL(Mj,φ)/dφを用いて重みφを更新する(ステップS10’)。重み設定部13は以上のステップS1~S10’をp回(p個のミニバッチについて)反復し、最適な重みφ*を得る。
【0103】
このように、第2の実施形態においても、識別器2を弱識別器として動作させ、その重みθを固定して特徴抽出器1用の重みφを更新する。しかも、複数(k個)の弱識別器についての勾配の平均値を利用して重みφを更新する。そのため、特定の識別器2に過度に適合しない、汎用性がある重みφが得られる。
【0104】
以上説明した第2の実施形態で説明した学習手法を、複数のノードを用いて並列的に学習を行う分散学習に適用することもできる。本願発明者らは、既に分散学習に関する発明を提案してきた(例えば、特願2016-253169(上記特許文献1)、特願2015-220780(上記特許文献2))。これらは、あるノードで目的関数(コスト関数)の勾配(微分値)を算出し、勾配を複数ノード間で通信して足し合わせることによって重みを更新するものである。
【0105】
図12においては、1つの識別器2における重みθをk回設定し直す(ステップS6a、S6b)ことでk個の弱識別器を作成する。これに対し、分散学習においては、k個のノードがそれぞれ互いに異なる弱識別器を作成することで、k個の弱識別器を作成することができる。そして、各ノードがステップS5c’で算出する勾配平均値EdL(Mj,φ,θh)/dφを通信して足し合わせる(ステップS7a’,S7b’)ことで、重みφを更新できる。
【0106】
図13に、分散学習を行う学習システムの概略構成の一例を示すブロック図を示す。学習システムは、k個のノード101~10k(図13では2つのノード101,10kのみを図示)と、重み設定部200とを備えている。各ノード101~10kは、スーパーコンピュータなどの計算機であり、そのそれぞれが図10に示した構成となっている。各ノード101から10kおよび重み設定部200は、互いに通信可能となっている。各ノードの学習データ記憶部11に、互いに異なる学習データが分割して記憶される。
【0107】
ノード10h(h=1~k)の識別器2にはそれぞれ互いに異なる重みθhが設定され、それぞれ互いに異なる弱識別器として動作する(図12のステップS4a,S4b)。そして、ノード10hの重み設定部13は勾配平均値EdL(Mj,φ,θh)/dφを算出する(図12のステップS5a~S5c’)。そして、重み設定部13は勾配平均値EdL(Mj,φ,θh)/dφを重み設定部200に送信する。
【0108】
次いで、重み設定部200はノード101~10kから勾配平均EdL(Mj,φ,θ1)/dφ~EdL(Mj,φ,θk)/dφをそれぞれ受信し(図12のステップ7a’)、これらを足し合わせた結果を用いて、重みφを更新する(ステップS7b’,S10’)。
【0109】
図12に示す処理を図13に示す分散学習に適用すると、特徴抽出器1の重みφに対する勾配の平均値の通信は発生するが、識別器2の重みθに対する勾配や重みθの通信は不要である。
【0110】
一般に、識別器2における全結合層4は、特徴抽出器1における畳み込み層3より重みの数が多い。そのため、識別器2の重みθに対する勾配や重みθの通信を要する手法では、必ずしも学習を高速化できるとは限らない。
【0111】
これに対し、本手法では、識別器2の重みθに対する勾配や重みθの通信を行わないため、学習を高速化できる。
【0112】
なお、図13に示す構成は例示にすぎない。例えば、学習データ記憶部11はノードに対して外付けであってもよい。あるいは、1つの学習データ記憶部11に記憶された学習データを複数のノードが用いるようにしてもよい。
【0113】
(第3の実施形態)
上述した第1および第2の実施形態は、識別器2の重みθを固定して、特徴抽出器1の重みφを更新するものであった。これに対し、以下に説明する第3の実施形態は、重みθ,φを同時に更新しつつも、特定の識別器2に過度に適合しないようにするものである。
【0114】
図14は、第3の実施形態に係る学習システムの処理動作の一例を示すフローチャートである。初めに、重み設定部13がそれぞれ重みφ,θを初期値(例えば、乱数)に設定しているものとする。
【0115】
まず、ミニバッチ作成部12はミニバッチを作成する(ステップS21)。そして、ミニバッチに含まれる学習データを用いて重み設定部13はそれぞれ重みφ,θを更新する(ステップS22)。これにより、重みφ,θの両方が同時に更新される。更新の手法は従来から知られている任意のもの(例えば、上記(1A)~(1C)式に基づくもの)を適用すればよいので、ここでは説明を省略する。通常の学習はステップS21,S22を反復するだけのものである。
【0116】
これに対し、本実施形態では、ステップS21,S22の反復数が所定回に達すると(ステップS23のYES)、重み設定部13はθを初期化(例えば、乱数に設定)する(ステップS25)。すなわち、これまでの更新によって得られた重みθを破棄する。そして、ステップS21以降を所定の終了条件を満たすまで繰り返す(ステップS24)。終了条件とは、例えば全体の反復数(ステップS21を行う数)がある閾値に達したことである。
【0117】
なお、ステップS23の「所定回」があまりにも多いと、特定の識別器2に過度に適合してしまう。そのため、「所定回」を少なくし(例えば、識別器2が弱識別器として動作する範囲の回数)、終了条件を満たすまでの反復数を十分に多くすることで、実質的に過剰な適合を抑えることができる。
【0118】
このような手法によれば、従来の重み更新手法をそのまま適用できるため、実装が容易である。
【0119】
(第4の実施形態)
以下の第4および第5の実施形態では、上述した学習手法の応用例を示す。まずは、「転移学習」への応用を説明する。
【0120】
ニューラルネットワークの産業上の適用例として、センサ情報を入力としたパターン認識技術が挙げられる。近年では、機械学習の学術的発展を背景に、産業上の応用に堪えうる精度でのパターン認識が可能になりつつある。例として、生産設備における、画像を使った外観検査装置などが挙げられる。これは製品の品質管理のための装置であり、不良品、またはその候補の判定を行う装置である。
【0121】
一部製品においては、既にこのようなパターン認識器が実装され、外観検査装置によって当該一部製品の外観検査が行われている。しかしながら、外観検査の対象を任意の製品に拡張することは、現状の技術水準では困難である。なぜなら、機械学習によってあらたな認識対象に対して充分に高い認識精度を獲得するには、多数の学習標本、つまりこれらの対象が含まれた画像が必要とされるが、その収集が容易ではないことが多いためである。
【0122】
外観検査などの不良品判定を機械学習の枠組みで行うには、一般的に良品と不良品双方の画像データを必要とするが、製造を開始して間もない製品などでは、通常不良品のデータは極端に少なく、たとえ機械学習を適用したとしても望ましい認識精度を達することは一般的に難しい。
【0123】
また、多品目を少量生産する生産設備などでは、この問題はさらに深刻である。製造する対象ごとに、スクラッチから学習を行うこと(ニューラルネットワークにおいては、乱数で初期化された重みを最適化すること)は、人的かつ計算量的なコストを伴う。また、少量のデータを学習していては、高い認識精度を得ることは難しい。
【0124】
こうした学習データの不足の問題を緩和する方法として、「転移学習」が知られている。転移学習とは、ソースドメインの多量の学習データを使って学習した学習器を、ターゲットドメインの少量の学習データを使ってさらに学習することを指す。ターゲットドメインとは、この例では認識したい製品を意味し、ソースドメインとは、ターゲットドメインとは似ているが別のドメイン、例えばデータが大量に存在する古いタイプの製品などを意味する。ソースドメインには標本となる多数の学習データ(入力画像と出力の真値)が存在することが前提であり、このためソースドメインにおいて学習された学習器の認識能力は極めて高い。この認識能力を、学習標本の少ないターゲットドメインに転移することで、多くの場合、ターゲットドメインでの認識能力を改善できることが知られている。
【0125】
転移学習は、まずソースドメインでの学習データを用いて、特徴抽出器1の重みφおよび識別器2の重みθの学習を行う。次いで、特徴抽出器1の重みφはそのままとし、識別器2の重θみを乱数で初期化する。そして、ターゲットドメインでの学習データを用い、特徴抽出器1の重みφを固定して、識別器2の重みθのみを学習する。
【0126】
このような転移学習によって、次のような効果が得られる。画像認識には、様々なドメインがあり得るが、エッジに対応する特徴や様々な曲率に対応する特徴は形状認識の基本となる特徴であり、いずれのドメインにも共通して有用な特徴である。ソースドメインにおいて充分に大規模なデータセットを学習することで、ニューラルネットワークにおける特徴抽出器1は様々な形状を識別するための汎用的な特徴抽出能力を獲得できる。
【0127】
つまり、このように獲得された特徴抽出器1は、汎用的な特徴量を抽出するため、任意のドメインにおいて汎用的に有効であることが期待できる。無論、ターゲットドメインにおいて充分に大規模なデータセットが準備できるのであれば、ニューラルネットワークをスクラッチからターゲットドメインにおいて学習すればよい。しかし、ターゲットドメインにおいて充分に大規模なデータセットを準備できない場合、これをスクラッチから学習してしまうと、学習データに過度に特化した特徴抽出能力しか獲得できず、汎化能力を損なってしまう。以上が特徴抽出器1を転移することの利点である。
【0128】
一方、識別器2は、ドメイン固有のタスクを解くために最適化されているため、一般的には、ソースドメインで学習されたものを、そのままターゲットドメインに適用することはできない。このため、ターゲットドメインにおいて学習することが必要である。識別器2を小規模なデータで学習することで、識別器2が過学習してしまうことのリスクは残るものの、特徴抽出器1および識別器2の全体を小規模データで学習する場合と比較すると、前者の方が特徴抽出器1が秀逸な分、高い汎化能力を持つ可能性が高い。
【0129】
ただし、上述した比較例に示す学習では、特徴抽出器1の重みφと識別器2の重みθとが同時に最適化されるため、ソースドメインでの識別を最適化する特定の識別器2に過剰に適合した特徴抽出器1が生成されている可能性がある。そうすると、ターゲットドメインに対して識別器2の重みθを学習したとしても、識別力が高い識別器2が生成されるとは限らない。
【0130】
これに対し、第1~第3の実施形態で説明した手法によれば、特定の識別器2に過剰に適合していない、汎用的な特徴抽出器1が生成される。そのため、転移学習に適しているといえる。
【0131】
具体的には、まず、ソースドメインでの学習データを用い、各実施形態で説明した手法を適用して特徴抽出器1の重みφの学習を行う。これにより、汎用的な特徴抽出器1が生成される。次いで、得られた特徴抽出器1の重みφを固定し、ターゲットドメインでの学習データを用い、識別器2の重みθを初期値から学習する。このような転移学習により、識別力が高い識別器2を生成できる。
【0132】
なお、転移学習とは異なるが、あるドメインでの学習データを用いて重みφを学習し、次いで、この重みφを固定し、同じドメインでの学習データを用いて重みθを学習してもよい。
【0133】
(第5の実施形態)
続いて、マルチタスク学習への応用について説明する。ここでのマルチタスクとは、図15に示すように、1つの特徴抽出器1が、互いに識別タスクが異なる複数の識別器2(図15では2つの識別器2a,2bを描いている)に接続される構成を指し、1つのネットワークでありながら複数の識別タスクを解くものである。
【0134】
以下では、説明を簡略化するため、特徴抽出器1に道路環境を含む画像が入力され、識別器2aは当該画像から歩行者を検知し、識別器2bは当該画像から標識を検知するものを例に取って説明する。
【0135】
仮に、特徴抽出器1が歩行者検知に特化した特徴量を抽出すると、識別器2aは高精度に歩行者を検知できるが、識別器2bは精度よく標識を検知できるとは限らない。逆に、特徴抽出器1が標識検知に特化した特徴量を抽出すると、識別器2bは高精度に標識を検知できるが、識別器2aは精度よく歩行者を検知できるとは限らない。そのため、このようなマルチタスクにおいては、歩行者検知にも標識検知にも使える汎用的な特徴量(例えば、画像のエッジや曲率など)を抽出することを要する。
【0136】
上述した第1~第3の実施形態で説明した手法によれば、特定の識別器2に過剰に適合していない、汎用的な特徴抽出器1が生成される。そのため、マルチタスクにも適しているといえる。
【0137】
具体的には、まず、各実施形態で説明した手法を適用して特徴抽出器1の重みφの学習を行う。これにより、歩行者検知にも標識検知にも適した汎用的な特徴抽出器1が作成される。次いで、得られた特徴抽出器1の重みφを固定し、各識別器2の識別タスクに応じた学習データを用い、各識別器2の重みθを初期化からそれぞれ学習する。より具体的には、学習データ11aに記憶された、画像(入力)と、その画像における歩行者が存在する領域(真値)との組からなる学習データを用いて、重み設定部13aが識別器2aの重みθを学習する。また、学習データ11bに記憶された、画像(入力)と、その画像における標識が存在する領域(真値)との組からなる学習データを用いて、重み設定部13bが識別器2bの重みθを学習する。このようにして、マルチタスクの学習を行うことができる。
【0138】
上述した実施形態は、本発明が属する技術分野における通常の知識を有する者が本発明を実施できることを目的として記載されたものである。上記実施形態の種々の変形例は、当業者であれば当然になしうることであり、本発明の技術的思想は他の実施形態にも適用しうることである。したがって、本発明は、記載された実施形態に限定されることはなく、特許請求の範囲によって定義される技術的思想に従った最も広い範囲とすべきである。
【符号の説明】
【0139】
1 特徴抽出器
2,2a,2b 識別器
3 畳み込み層
4 全結合層
11,11a,11b 学習データ記憶部
12,12a,12b ミニバッチ作成部
13,13a,13b,200 重み設定部
100,101,10k 学習システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15