(57)【要約】【課題】より識別力が高いニューラルネットワークを実現するための学習方法および学習システムを提供する。【解決手段】第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習する方法であって、前記識別器が弱識別器として動作するよう前記第２の重みを設定する第１ステップと、前記設定された前記第２の重みを固定して前記第１の重みを更新する第２ステップと、を備える、学習方法が提供される。【選択図】図５
2020060838.tif 000002
【特許請求の範囲】
【請求項１】
第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習する方法であって、
前記識別器が弱識別器として動作するよう前記第２の重みを設定する第１ステップと、
前記設定された前記第２の重みを固定して前記第１の重みを更新する第２ステップと、を備える、学習方法。
【請求項２】
第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習する方法であって、
前記第１の重みを固定して前記第２の重みを更新することにより前記第２の重みを設定する第１ステップと、
前記設定された前記第２の重みを固定して前記第１の重みを更新する第２ステップと、を備える、学習方法。
【請求項３】
前記第１ステップでは、前記識別器が弱識別器として動作するよう前記第２の重みを設定する、請求項２に記載の学習方法。
【請求項４】
反復ごとに初期化
前記第２ステップは、複数の学習データを含むミニバッチを用いて行われ、
特定のミニバッチを用いて前記第２ステップを行った後、
前回の前記第２ステップで固定されていた前記第２の重みを用いることなく、新たに前記第２の重みを設定する前記第１ステップを行い、さらに、
別のミニバッチを用いて前記第２ステップを行うことを反復する、請求項１乃至３のいずれかに記載の学習方法。
【請求項５】
前記第２ステップは、複数の学習データを含むミニバッチを用いて行われ、
用いるミニバッチを変えながら前記第２ステップを複数回反復した後、
前回の前記第２ステップで固定されていた前記第２の重みを用いることなく、新たに前記第２の重みを設定する前記第１ステップを行い、さらに、
別のミニバッチを用いて前記第２ステップを行うことを反復する、請求項１乃至３のいずれかに記載の学習方法。
【請求項６】
ある反復では、第１タスク用のデータセットからサンプリングされたミニバッチが用いられ、
別のある反復では、前記第１タスクとは異なる第２タスク用のデータセットからサンプリングされたミニバッチが用いられる、請求項４または５に記載の学習方法。
【請求項７】
１回の反復において、第１タスク用のデータセットからサンプリングされたミニバッチと、前記第１タスクとは異なる第２タスク用のデータセットからサンプリングされたミニバッチと、が用いられる、請求項４または５に記載の学習方法。
【請求項８】
前記第１ステップでは、複数とおりの前記第２の重みを設定し、
前記第２ステップは、複数とおりの前記第２の重みについての平均値に基づく目的関数を利用して前記第１の重みを更新する、請求項１乃至７のいずれかに記載の学習方法。
【請求項９】
前記第１ステップでは、複数とおりの前記第２の重みを設定し、
前記第２ステップでは、
複数の学習用の入力のそれぞれに対して、前記第１の重みおよび前記複数のとおりの前記第２の重みをそれぞれ適用して、複数の出力を生成し、
前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、
前記コスト関数の前記複数の学習用の入力についての第１平均値を算出し、
前記第１平均値の前記複数とおりの前記第２の重みについての第２平均値を算出し、
前記第２平均値に基づく目的関数が小さくなるよう前記第１の重みを更新する、請求項１乃至８のいずれかに記載の学習方法。
【請求項１０】
前記第１ステップでは、複数とおりの前記第２の重みを設定し、
前記第２ステップでは、
複数の学習用の入力のそれぞれに対して、前記第１の重みおよび前記複数のとおりの前記第２の重みをそれぞれ適用して、複数の出力を生成し、
前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、
前記コスト関数の前記第１の重みに対する勾配を算出し、
前記勾配の前記複数の学習用の入力についての第１平均値を算出し、
前記第１平均値の前記複数とおりの前記第２の重みについての第２平均値を算出し、
前記第２平均値に基づく目的関数が小さくなるよう前記第１の重みを更新する、請求項１乃至８のいずれかに記載の学習方法。
【請求項１１】
複数のノードのそれぞれが、前記特徴抽出器および前記識別器を有し、
前記第１ステップにおいて、各ノードが互いに異なる前記第２の重みを設定し、
前記第２ステップにおいて、
各ノードが、
複数の学習用の入力のそれぞれに対して、前記第１の重みおよび前記第２の重みを適用して、複数の出力を生成し、
前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、
前記コスト関数の前記第１の重みに対する勾配を算出し、
前記勾配の前記複数の学習用の入力についての第１平均値を算出し、
各ノードから前記第１平均値を受信して足し合わせた結果を用いて、前記第１の重みを更新する、請求項１０に記載の学習方法。
【請求項１２】
前記第１ステップでは、前記第２の重みを乱数で初期化し、次いで、
前記初期化された前記第２の重みを所定回更新することにより、
前記識別器が弱識別器として動作するよう前記初期化された前記第２の重みを更新することにより、または、
識別力の評価指標が所定範囲内になるよう前記初期化された前記第２の重みを更新することにより、
前記第２の重みを設定する、請求項１乃至１１のいずれかに記載の学習方法。
【請求項１３】
前記第１ステップでは、
前記第２の重みを乱数で初期化し、
特定のミニバッチに含まれる複数の学習データの少なくとも一部の真値を変更し、
真値が変更された学習データを含む前記複数の学習データを用いて、前記第２の重みを設定する、請求項１ないし１１のいずれかに記載の学習方法。
【請求項１４】
第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習する方法であって、
前記第２の重みを初期化する第１ステップと、
１回の更新において、前記第１の重みおよび前記第２の重みの両方を更新する処理を１または複数回行う第２ステップと、を備え、
前記第１ステップおよび前記第２ステップを反復して行う、学習方法。
【請求項１５】
第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みおよび第２の重みを学習する方法であって、
第１ドメインでの第１学習データを用いて、請求項１乃至１４のいずれかに記載の学習方法により前記第１の重みを学習するステップと、その後に、
得られた前記第１の重みを固定して、前記第１ドメインとは異なる第２ドメインでの第２学習データを用いて前記第２の重みを初期値から更新するステップと、を備える、学習方法。
【請求項１６】
第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みおよび第２の重みを学習する方法であって、
所定ドメインでの学習データを用いて、請求項１乃至１４のいずれかに記載の学習方法により前記第１の重みを学習するステップと、その後に、
得られた前記第１の重みを固定して、前記所定ドメインでの学習データを用いて前記第２の重みを初期値から更新するステップと、を備える、学習方法。
【請求項１７】
第１の重みによって規定される特徴抽出器と、それぞれが第２の重みによって規定される２以上の識別器と、を有するニューラルネットワークにおける前記第１の重みおよび第２の重みを学習する方法であって、
前記２以上の識別器は、１つの前記特徴抽出器からの特徴量を用いて識別を行うが、識別タスクは互いに異なっており、
所定の学習データを用いて、請求項１乃至１４のいずれかに記載の学習方法により前記第１の重みを学習するステップと、その後に、
得られた前記第１の重みを固定して、各識別タスクに応じた学習データを用いて各識別器における前記第２の重みを初期値から更新するステップと、を備える、学習方法。
【請求項１８】
第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習するシステムであって、
前記識別器が弱識別器として動作するよう前記第２の重みを設定し、前記設定された前記第２の重みを固定して前記第１の重みを更新する重み設定部を備える学習システム。
【請求項１９】
第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習するシステムであって、
前記第１の重みを固定して前記第２の重みを更新することにより前記第２の重みを設定し、前記設定された前記第２の重みを固定して前記第１の重みを更新する重み設定部を備える学習システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークにおける重みを設定する学習方法および学習システムに関する。
【背景技術】
【０００２】
これまでに多くのニューラルネットワークが提案されている（例えば、特許文献１，２）。ニューラルネットワークの一例として、特徴抽出器および識別器から構成され、入力（例えば、画像）に対する識別（例えば、歩行者の検知）を行うものが挙げられる。このようなニューラルネットワークにおいては、特徴抽出器を規定する重みおよび識別器を規定する重みを学習して、最適化する必要がある。
【０００３】
あるドメインにおける学習データを用いて学習を行い、当該ドメインにおける入力に対しては高い精度で識別結果が得られるよう重みを設定したとしても、他のドメインにおける入力に対しては必ずしも高い精度で識別結果が得られるとは限らない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１９７３８９号公報
【特許文献２】特開２０１８−１０６４８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、本発明の課題は、より識別力が高いニューラルネットワークを実現するための学習方法および学習システムを提供することである。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習する方法であって、前記識別器が弱識別器として動作するよう前記第２の重みを設定する第１ステップと、前記設定された前記第２の重みを固定して前記第１の重みを更新する第２ステップと、を備える、学習方法が提供される。
【０００７】
また、本発明の別の態様によれば、第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習する方法であって、前記第１の重みを固定して前記第２の重みを更新することにより前記第２の重みを設定する第１ステップと、前記設定された前記第２の重みを固定して前記第１の重みを更新する第２ステップと、を備える、学習方法が提供される。
【０００８】
前記第１ステップでは、前記識別器が弱識別器として動作するよう前記第２の重みを設定するのが望ましい。
【０００９】
前記第２ステップは、複数の学習データを含むミニバッチを用いて行われ、特定のミニバッチを用いて前記第２ステップを行った後、前回の前記第２ステップで固定されていた前記第２の重みを用いることなく、新たに前記第２の重みを設定する前記第１ステップを行い、さらに、別のミニバッチを用いて前記第２ステップを行うことを反復してもよい。
【００１０】
あるいは、前記第２ステップは、複数の学習データを含むミニバッチを用いて行われ、用いるミニバッチを変えながら前記第２ステップを複数回反復した後、前回の前記第２ステップで固定されていた前記第２の重みを用いることなく、新たに前記第２の重みを設定する前記第１ステップを行い、さらに、別のミニバッチを用いて前記第２ステップを行うことを反復してもよい。
【００１１】
ある反復では、第１タスク用のデータセットからサンプリングされたミニバッチが用いられ、別のある反復では、前記第１タスクとは異なる第２タスク用のデータセットからサンプリングされたミニバッチが用いられてもよい。
【００１２】
１回の反復において、第１タスク用のデータセットからサンプリングされたミニバッチと、前記第１タスクとは異なる第２タスク用のデータセットからサンプリングされたミニバッチと、が用いられてもよい。
【００１３】
前記第１ステップでは、複数とおりの前記第２の重みを設定し、前記第２ステップは、複数とおりの前記第２の重みについての平均値に基づく目的関数を利用して前記第１の重みを更新してもよい。
【００１４】
具体例として、前記第１ステップでは、複数とおりの前記第２の重みを設定し、前記第２ステップでは、複数の学習用の入力のそれぞれに対して、前記第１の重みおよび前記複数のとおりの前記第２の重みをそれぞれ適用して、複数の出力を生成し、前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、前記コスト関数の前記複数の学習用の入力についての第１平均値を算出し、前記第１平均値の前記複数とおりの前記第２の重みについての第２平均値を算出し、前記第２平均値に基づく目的関数が小さくなるよう前記第１の重みを更新してもよい。
【００１５】
別の具体例として、前記第１ステップでは、複数とおりの前記第２の重みを設定し、前記第２ステップでは、複数の学習用の入力のそれぞれに対して、前記第１の重みおよび前記複数のとおりの前記第２の重みをそれぞれ適用して、複数の出力を生成し、前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、前記コスト関数の前記第１の重みに対する勾配を算出し、前記勾配の前記複数の学習用の入力についての第１平均値を算出し、前記第１平均値の前記複数とおりの前記第２の重みについての第２平均値を算出し、前記第２平均値に基づく目的関数が小さくなるよう前記第１の重みを更新してもよい。
【００１６】
この場合、複数のノードのそれぞれが、前記特徴抽出器および前記識別器を有し、前記第１ステップにおいて、各ノードが互いに異なる前記第２の重みを設定し、前記第２ステップにおいて、各ノードが、複数の学習用の入力のそれぞれに対して、前記第１の重みおよび前記第２の重みを適用して、複数の出力を生成し、前記複数の出力のそれぞれと、各入力と対応する真値と、がどの程度離れているかを示すコスト関数を算出し、前記コスト関数の前記第１の重みに対する勾配を算出し、前記勾配の前記複数の学習用の入力についての第１平均値を算出し、各ノードから前記第１平均値を受信して足し合わせた結果を用いて、前記第１の重みを更新してもよい。
【００１７】
前記第１ステップでは、前記第２の重みを乱数で初期化し、次いで、前記初期化された前記第２の重みを所定回更新することにより、前記識別器が弱識別器として動作するよう前記初期化された前記第２の重みを更新することにより、または、識別力の評価指標が所定範囲内になるよう前記初期化された前記第２の重みを更新することにより、前記第２の重みを設定してもよい。
【００１８】
あるいは、前記第１ステップでは、前記第２の重みを乱数で初期化し、特定のミニバッチに含まれる複数の学習データの少なくとも一部の真値を変更し、真値が変更された学習データを含む前記複数の学習データを用いて、前記第２の重みを設定してもよい。
【００１９】
本発明の別の態様によれば、第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習する方法であって、前記第２の重みを初期化する第１ステップと、１回の更新において、前記第１の重みおよび前記第２の重みの両方を更新する処理を１または複数回行う第２ステップと、を備え、前記第１ステップおよび前記第２ステップを反復して行う、学習方法が提供される。
【００２０】
本発明の別の態様によれば、第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みおよび第２の重みを学習する方法であって、第１ドメインでの第１学習データを用いて、上記のいずれかに記載の学習方法により前記第１の重みを学習するステップと、その後に、得られた前記第１の重みを固定して、前記第１ドメインとは異なる第２ドメインでの第２学習データを用いて前記第２の重みを初期値から更新するステップと、を備える、学習方法が提供される。
【００２１】
本発明の別の態様によれば、第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みおよび第２の重みを学習する方法であって、所定ドメインでの学習データを用いて、上記のいずれかに記載の学習方法により前記第１の重みを学習するステップと、その後に、得られた前記第１の重みを固定して、前記所定ドメインでの学習データを用いて前記第２の重みを初期値から更新するステップと、を備える、学習方法が提供される。
【００２２】
本発明の別の態様によれば、第１の重みによって規定される特徴抽出器と、それぞれが第２の重みによって規定される２以上の識別器と、を有するニューラルネットワークにおける前記第１の重みおよび第２の重みを学習する方法であって、前記２以上の識別器は、１つの前記特徴抽出器からの特徴量を用いて識別を行うが、識別タスクは互いに異なっており、所定の学習データを用いて、上記のいずれかに記載の学習方法により前記第１の重みを学習するステップと、その後に、得られた前記第１の重みを固定して、各識別タスクに応じた学習データを用いて各識別器における前記第２の重みを初期値から更新するステップと、を備える、学習方法が提供される。
【００２３】
本発明の別の態様によれば、第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習するシステムであって、前記識別器が弱識別器として動作するよう前記第２の重みを設定し、前記設定された前記第２の重みを固定して前記第１の重みを更新する重み設定部を備える学習システムが提供される。
【００２４】
本発明の別の態様によれば、第１の重みによって規定される特徴抽出器と、第２の重みによって規定される識別器と、を有するニューラルネットワークにおける前記第１の重みを学習するシステムであって、前記第１の重みを固定して前記第２の重みを更新することにより前記第２の重みを設定し、前記設定された前記第２の重みを固定して前記第１の重みを更新する重み設定部を備える学習システムが提供される。
【発明の効果】
【００２５】
ニューラルネットワークの識別力を高くすることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明が対象とするニューラルネットワークを模式的に示す図。
【図２】複数の入力ｘの特徴量Ｆφ（ｘ）の特徴空間における分布を模式的に示す図。
【図３】学習過程におけるある段階Ｔでの識別境界を模式的に示す図。
【図４】学習過程における次の段階Ｔ＋１での識別境界を模式的に示す図。
【図５】第１の実施形態に係る学習手法の概要を示すフローチャート。
【図６】作成されたミニバッチに含まれる入力ｘの特徴量Ｆφ（ｘ）の特徴空間における分布を模式的に示す図。
【図７】図１３の特徴量Ｆφ（ｘ）に対して作成された弱識別器による識別境界Ｂを模式的に示す図。
【図８】重みφを更新した後の特徴量Ｆφ（ｘ）の分布および識別境界Ｂを模式的に示す図。
【図９】重みφを反復して更新した後の特徴量Ｆφ（ｘ）の分布および識別境界Ｂを模式的に示す図。
【図１０】第１の実施形態に係る学習システム１００の概略構成を示すブロック図。
【図１１】第１の実施形態に係る学習システムの処理動作の一例を示すフローチャート。
【図１２】第２の実施形態に係る学習システムの処理動作の一例を示すフローチャート。
【図１３】分散学習を行う学習システムの概略構成の一例を示すブロック図。
【図１４】第３の実施形態に係る学習システムの処理動作の一例を示すフローチャート。
【図１５】マルチタスクを行うニューラルネットワークおよび学習システムの概略構成を示すブロック図。
【発明を実施するための形態】
【００２７】
以下、本発明に係る実施形態について、図面を参照しながら具体的に説明する。
【００２８】
図１は、本発明が対象とするニューラルネットワークを模式的に示す図である。ニューラルネットワークは、特徴抽出器１（Feature Extractor）と、識別器２（Classifier）とを有する。このニューラルネットワークは入力ｘに対する識別結果ｙを出力するものである。
【００２９】
特徴抽出器１は階層的に設けられる複数の畳み込み層（ＣＮＶ）３を有する。初段の畳み込み層３は識別対象である入力データ（例えば、画像データ）ｘが入力され、２段目以降の畳み込み層３は前段の畳み込み層３からの出力が入力される。そして、畳み込み層３のそれぞれは、所定の処理、例えば重みφが設定されたフィルタの適用、非線形写像およびプーリング操作を順に行って得られる値を出力する。
【００３０】
ニューラルネットワークにおける学習は、畳み込み層３における重みφを逐次更新して最適化することを含む。特徴抽出器１は重みφによって規定されると考えることができる。
【００３１】
ここで、最終段の畳み込み層３からの出力を特徴量と呼ぶ。そして、ニューラルネットワークへの入力ｘに対する、重みφによって規定される特徴抽出器１が出力する特徴量をＦφ（ｘ）と表記する。
【００３２】
識別器２は階層的に設けられる複数の全結合層４（例えば、初段の入力層、複数段の隠れ層および最終段の出力層）を有する。初段の全結合層４には特徴抽出器１からの（すなわち最終段の畳み込み層３からの）特徴量Ｆφ（ｘ）が入力され、２段目以降の全結合層４は前段の全結合層４からの出力が入力される。そして、全結合層４のそれぞれは、重みθを用いた積和演算と、それに続く任意の非線形活性化を行って得られる値を出力する。最終段の全結合層４からの出力が識別結果ｙである。
【００３３】
ニューラルネットワークにおける学習は、全結合層４における重みθを逐次更新して最適化することを含む。識別器２は重みθによって規定されると考えることができる。
【００３４】
そして、識別器２への入力（つまり、特徴抽出器１からの出力）Ｆφ（ｘ）に対する、重みθによって規定される識別器２の出力をＣθ（Ｆφ（ｘ））と表記する。すなわち、ニューラルネットワークは、ｘが入力されるとＣθ（Ｆφ（ｘ））を出力する。
【００３５】
本発明に係る学習方法の説明に先立って、通常の学習方法の一例を比較例として説明する。
【００３６】
学習には、識別の対象となる学習用の入力ｘと、それに対する理想的な出力である真値ｔとの組である学習データ（ｘ，ｔ）が多数用いられる。本比較例では、１回の重み更新において、学習データの全セットＤのうちの一部（ミニバッチＭという）を用いるミニバッチ学習を行うものとする。そして、最適な重みφ*，θ*を以下の（１Ａ）〜（１Ｃ）式に基づいて得る。
【００３７】
【数１】
2020060838.tif 000003
【００３８】
上記（１Ｃ）式における右辺のＬ（Ｃθ（Ｆφ（ｘ）），ｔ）は、ニューラルネットワークの出力Ｃθ（Ｆφ（ｘ））が真値ｔからどの程度離れているかを示すコスト関数であり、例えば二乗誤差やクロスエントロピーである。また、Ｅ(x,t)∈Mは、ミニバッチＭに含まれる学習データ（ｘ，ｔ）の全ての組について、コスト関数Ｌ（Ｃθ（Ｆφ（ｘ），ｔ）の平均値（期待値とも言える。以下同じ。）を算出する関数である。
【００３９】
そして、上記（１Ｃ）式における左辺のＪ（Ｍ，φ，θ）はミニバッチＭにおける損失関数である。すなわち、損失関数Ｊ（Ｍ，φ，θ）は、ミニバッチＭに含まれる学習データ（ｘ，ｔ）の全ての組についての、コスト関数Ｌ（Ｃθ（Ｆφ（ｘ），ｔ）の平均値であり、ミニバッチＭ、重みφ，θの関数となっている。
【００４０】
上記（１Ｂ）式における右辺のＥM∈Dは、学習データの全セットＤに含まれる全ミニバッチＭについて、損失関数Ｊ（Ｍ，φ，θ）の平均値を算出する関数である。
【００４１】
そして、上記（１Ｂ）式における左辺のＧD（φ，θ）は学習データの全セットＤにおける目的関数である。すなわち、目的関数ＧD（φ，θ）は、学習データの全セットＤに含まれる全ミニバッチＭについての、損失関数Ｊ（Ｍ，φ，θ）の平均値であり、重みφ，θの関数となっている。このように、目的関数ＧD（φ，θ）が重みφのみならず、重みθの関数にもなっている点が留意される。
【００４２】
上記（１Ａ）式における右辺の関数ａｒｇｍｉｎは、誤差逆伝搬法などによって重みφ，θの更新を繰り返し、目的関数ＧD（φ，θ）が最小となる重みφ*，θ*を返す関数である。これにより、最適された重みφ*，θ*が得られる。ここで、目的関数ＧD（φ，θ）は重みφ，θの関数であるから、上記（１Ａ）式では、重みφ，θが同時に最適化される。
【００４３】
しかしながら、このように重みφ，θを同時に最適化する手法には次のような問題があることを本願発明者らは見出した。
【００４４】
説明を簡単にするため、入力ｘがクラス１およびクラス２のいずれであるかを識別するニューラルネットワークを例に取って説明する。
【００４５】
図２は、複数の入力ｘの特徴量Ｆφ（ｘ）の特徴空間における分布を模式的に示す図である。ここでは、特徴量が２次元であるとしている。
【００４６】
重みφで規定される特徴抽出器１は、学習用の各入力ｘに基づく２次元の特徴量Ｆφ（ｘ）（以下、単に「入力ｘの特徴量Ｆφ（ｘ）」ともいう）を出力する。図２では、各入力ｘの特徴量Ｆφ（ｘ）を２次元空間（特徴空間）に示している。特徴抽出器１は特徴空間における入力ｘの特徴量Ｆφ（ｘ）の位置（座標）を規定するものと言える。丸印はクラス１と識別されるべき（真値がクラス１）入力ｘの特徴量であり、三角印はクラス２と識別されるべき（真値がクラスＢ）入力ｘの特徴量である。
【００４７】
図３に、学習過程におけるある段階Ｔでの識別境界を模式的に示す。識別器２は特徴空間において識別境界を規定するものと言える。識別境界Ｂ１の内側および識別境界Ｂ２の右側がクラス２と識別される領域である。学習過程では識別の精度は高くなく、誤識別がある（例えば、クラス１と識別されるべき入力に対する特徴量Ｆφ（ｘａ）がクラス２と識別され、クラス２と識別されるべき入力に対する特徴量Ｆφ（ｘｂ），Ｆφ（ｘｃ）がクラス１と識別されている）。また、識別器２は非線形な性質を有するので、特定の入力を囲う識別境界Ｂ１や、非常に複雑な形状の識別境界Ｂ２が生成され得る。
【００４８】
このような識別境界Ｂ１，Ｂ２が生成された段階で重みφ，θが更新されることによって、次の段階Ｔ＋１では、特徴空間における各入力の特徴量および識別境界が微小に変化する。具体的には、重みφの更新によって各入力の特徴量が変化し、重みθの更新によって識別境界が変化する。
【００４９】
図４に、学習過程における次の段階Ｔ＋１での識別境界を模式的に示す。段階Ｔ＋１では、段階Ｔにおける識別境界Ｂ１，Ｂ２に対して、可能な範囲で各入力ｘの特徴量Ｆφ（ｘ）が適切な方向に動くよう重みφが更新される。「適切な方向」とは、正しい識別結果が得られている入力ｘの特徴量Ｆφ（ｘ）は識別境界から離れる方向であり、誤った識別結果が得られている入力ｘの特徴量Ｆφ（ｘ）は識別境界を超える（あるいは、識別境界に近づく）方向である。「可能な範囲」とは、特徴抽出器１の重みφのみ、あるいは、識別器２の重みθのみが単独で最適化されるのではなく、互いの束縛を受けながら最適化されることを意味する。
【００５０】
このような更新を反復することで、学習用の各入力ｘを高精度に識別できるように、言い換えると、特徴空間における各特徴量Ｆφ（ｘ）に対する識別境界を高精度に定義できるようになる。
【００５１】
しかしながら、このような手法においては、上述したように、重みφ，θが互いの束縛を受けながら最適化されるため、識別境界がある段階における複雑な形状を保ったまま学習を終了してしまうことがある。そうすると、学習用の入力ｘとは異なる新たな入力に対して、必ずしも正確な識別結果が得られるとは限らない。
【００５２】
このように、比較例による手法では、重みφ，θを同時に更新するため、学習段階における特定の識別器２に過度に適合した特徴抽出器１の重みφが得られ、それによって必要以上に複雑な識別境界が得られてしまうこと、ひいては識別エラー率が高くなってしまうことが問題である。
【００５３】
そこで、本願発明者らは、特徴抽出器１の重みφが特定の識別器２に過度に適合することがないよう、弱識別器として動作する識別器２を用いて特徴抽出器１の重みφを更新することに想到した。以下、重みφの学習方法について、複数の実施形態を説明する。
【００５４】
なお、本願明細書における「弱識別器」とは、ランダムゲス（random guess：当てずっぽうの識別器）よりは識別力が高いが、強識別器よりは識別力が低い識別器を意味する。識別力は所定の評価指標によって定量的に表わすこともできる（例えば、最小化すべき目的関数やエラー率が所定範囲内、など）。
【００５５】
（第１の実施形態）
第１の実施形態は、識別器２を弱識別器として動作させる複数の重みθを用意し、各重みθを固定して（すなわち、更新することなく）特徴抽出器１の重みφの更新を反復することで、特定の識別器２に過度に適合しない、汎用性がある重みφが得られるようにするものである。
【００５６】
図５は、第１の実施形態に係る学習手法の概要を示すフローチャートである。
まず、予め重みφを初期化しておく。続いて、真値が予め用意された多数の学習データから所定数の学習データをサンプリングしてミニバッチを作成する（ステップＳ１００）。
【００５７】
図６に、作成されたミニバッチに含まれる入力ｘの特徴量Ｆφ（ｘ）の特徴空間における分布を模式的に示す。なお、図６は図２に対応しており、丸印はクラス１と識別されるべき入力ｘの特徴量Ｆφ（ｘ）であり、三角印はクラス２と識別されるべき入力ｘの特徴量である。
【００５８】
次いで、作成されたミニバッチに含まれる入力ｘに対して弱識別器を作成する（図５のステップＳ２００）。具体的には、識別器２が弱識別器として動作するよう、識別器２の重みθを設定する。具体例として、重みθを乱数で初期化し、続いて、勾配降下法に基づく下式を適切な回数（識別器２が弱識別器として動作するよう予め設定）行って重みθを設定することができる（ｍはミニバッチに含まれる学習データ数、βは予め定めた定数）。
【００５９】
【数２】
2020060838.tif 000004
【００６０】
図７に、図１３の特徴量Ｆφ（ｘ）に対して作成された弱識別器による識別境界Ｂを模式的に示す。識別境界Ｂの左側がクラス１と識別される領域であり、右側がクラス２と識別される領域でる。この識別器２は複数の入力に対する特徴量Ｆφ（ｘ）を誤識別している（例えば、特徴量Ｆφ（ｘ1）〜特徴量Ｆφ（ｘ3））。このように、ステップＳ２００では、あえて識別力が高くない弱識別器（言い換えると、より識別力を高くする余地がある識別器２）を作成する。
【００６１】
続いて、弱識別器を更新することなく（つまり、重みθを固定して）、ミニバッチ（ステップＳ１００で作成されたものと同じでもよいし、異なっていてもよい）に含まれる学習データを用いて特徴抽出器１の重みφを更新する（図５のステップＳ３００）。具体例として、勾配降下法に基づく下式を適切な回数（例えば１回）行うことによって、重みφを更新できる（ｍ’はミニバッチに含まれる学習データ数、γは予め定めた定数）。
【００６２】
【数３】
2020060838.tif 000005
【００６３】
図８に、重みφを更新した後の特徴量Ｆφ（ｘ）の分布および識別境界Ｂを模式的に示す。重みθを固定しているため識別境界Ｂは変化しないが、各特徴量Ｆφ（ｘ）の分布がわずかに変化する。その結果、識別境界Ｂは変化しないものの、ニューラルネットワーク全体としての識別力はわずかに強化される。
【００６４】
以上のステップＳ１００〜Ｓ３００を所定の終了条件を満たすまで反復する（ステップＳ４００）。終了条件は、例えば、反復数が予め定めた反復回数に達することや、検証用データにおける認識精度が所定値を超えることである。
【００６５】
このように、ステップＳ２００であえて弱識別器を作成した上で、その識別結果が高くなるよう特徴抽出器１の重みφを更新していく。この更新則を反復することで、特徴量Ｆφ（ｘ）の分布は図９に示すようなものに更新されていくことが期待できる。特徴抽出器１の重みφを更新することで図９に示すように特徴量Ｆφ（ｘ）が分布するようになると、識別能力が極めて高い識別境界（例えば、実線で示すＢ１〜Ｂ３）を引くことは容易であるが、誤識別があり、かつ、ランダムゲスよりも識別力が高い識別境界（例えば、破線で示すＢ１１，Ｂ１２）を引くことは困難である。これは、弱識別器を作成し、それに対して識別力が強化されるよう学習を反復したことの帰結である。
【００６６】
なお、ステップＳ２００における弱識別器の作成法は種々考えられる。一例として、まず識別器２の重みθをランダムな初期値に設定し、特徴抽出器１を更新することなく（つまり、重みφを固定して）、重みθを少数回更新することで識別器２を弱識別器とすることができる。また、ステップＳ１００〜Ｓ３００を反復するが、反復の度に新たな弱識別器を作成してもよいし、弱識別器を作成するための時間を軽減すべく、一定回数の反復の度に新たな弱識別器を作成してもよい（すなわち、ステップＳ２００が省略される反復があってもよい）。
【００６７】
ステップＳ２００において新たに弱識別器を作成することは、特定の識別器２（特定の重みθ）でなく、複数の識別器２を学習対象とすることを意味する。これにより、特徴抽出器１（重みφ）が特定の識別器２に過度に適合するのを抑えられる。
【００６８】
また、弱識別器を用いることは、識別器２が規定する識別境界が、学習における各段階での特徴量Ｆφ（ｘ）の特徴空間における分布に過度に適合したもの（例えば、図３に示す識別境界Ｂ１，Ｂ２）となりにくいことを意味する。これにより、特徴空間における特徴量Ｆφ（ｘ）の分布が過度に複雑にならないよう重みφが更新されていくことが期待される。
【００６９】
なお、ステップＳ２００における弱識別器の別の作成法として、重みθを乱数で初期化し、続いて、一部の学習データにおける真値を無作為に変更したうえで、そのような学習データを用いて重みθを更新してもよい。これにより、識別器２は真値に過剰に適合することができなくなり、結果として弱識別器となる。
【００７０】
以下、図５のステップＳ３００における重みφの更新処理をより詳細に説明する。本実施形態では、以下の（２Ａ）〜（２Ｄ）式に基づいて重みφを更新し、最適な重みφ*を得る。
【００７１】
【数４】
2020060838.tif 000006
【００７２】
上記（２Ｄ）式における左辺のＪ（Ｍ，φ，θ）は、上記（１Ｄ）式と同じくミニバッチＭにおける損失関数であり、ミニバッチＭ、重みφ，θの関数である。
【００７３】
上記（２Ｃ）式における左辺のＪ’（Ｍ，φ）は本実施形態で定義される損失関数である。ここで右辺に現れるΘ（Ｍ，φ）は、ミニバッチＭおよび重みφで規定される特徴抽出器１が与えられた場合に、識別器２を弱識別器として動作させる重みθの集合であり、複数の重みθから構成される。この複数の重みθが、上述した識別器２を弱識別器として動作させる複数の重みθに対応する。そして、Ｅθ∈Θ(M,φ)は、Θ（Ｍ，φ）に含まれる全ての重みθについての、損失関数Ｊ（Ｍ，φ，θ）の平均値を示す。
【００７４】
すなわち、損失関数Ｊ’（Ｍ，φ）は、Θ（Ｍ，φ）に含まれる全ての重みθについての、言い換えると、重みθで規定される複数の弱識別器についての、損失関数Ｊ（Ｍ，φ，θ）の平均値である。よって、損失関数Ｊ’（Ｍ，φ）はミニバッチＭおよび重みφの関数であって、特定の重みθには依存しない。
【００７５】
上記（２Ｂ）式は上記（１Ｂ）式と対応しており、左辺のＧD（φ）は学習データの全セットＤにおける目的関数である。ただし、右辺の損失関数Ｊ’（Ｍ，φ）は複数の重みθについての平均値に基づくものであるので、特定の重みθには依存しない。そのため、目的関数ＧD（φ）も特定の重みθには依存しない点が上記（１Ｂ）式とは大きく異なる。
【００７６】
上記（２Ａ）式は上記（１Ａ）式と対応しており、左辺は目的関数ＧD（φ）が最小となる重みφ*である。このようにして、特定の重みθ（特定の識別器２）に依存しない最適な重みφ*が得られる。
【００７７】
なお、厳密には、上記（２Ｂ）式で定義される目的関数ＧD（φ）を最小化することは困難である。上記（２Ｂ）式は学習データの全セットＤに含まれる無数のミニバッチＭについての平均値を算出することが必要であり、上記（２Ｃ）式は無数の重みθについての平均値を算出することが必要であるためである。
【００７８】
そこで、実際には、目的関数ＧD（φ）を近似的に最小化することになる。具体的には、学習処理の各反復において、全てのミニバッチＭについての平均値に代えて、ランダムにサンプリングされた単一または所定数のミニバッチＭについての平均値で近似することとする。また、全ての重みθについての平均値に代えて、弱識別器の集合Θ（Ｍ，φ）からランダムにサンプリングされた単一または所定数のθについての平均値で近似することとする。
【００７９】
図１０は、第１の実施形態に係る学習システム１００の概略構成を示すブロック図である。学習システムは、学習の対象となる特徴抽出器１および識別器２に加え、学習データ記憶部１１と、ミニバッチ作成部１２と、重み設定部１３とを備えている。これらは、１または複数のコンピュータで構成され得る。また、ミニバッチ作成部１２および重み設定部１３の全ての機能がソフトウェアで実現されてもよいし、少なくとも一部がハードウェアで実装されてもよい。
【００８０】
特徴抽出器１および識別器２は図１を用いて説明したとおりである。すなわち、特徴抽出器１は、入力ｘに対して重みφを適用し、特徴量Ｆφ（ｘ）を出力する。識別器２は、特徴量Ｆφ（ｘ）に対して重みθを適用し、識別結果Ｃθ（Ｆφ（ｘ））を出力する。
学習データ記憶部１１は複数の学習データ（入力ｘとその真値ｔとの組）を予め多数記憶している。
【００８１】
ミニバッチ作成部１２は、学習データ記憶部１１に記憶されたｎ個の入力ｘのうちｍ（＜ｎ）個をサンプリングして、ミニバッチを作成する。ミニバッチの作成法に特に制限はない。例えば、ミニバッチ作成部１２はｎ個の入力ｘをランダムにシャッフルし、先頭から順にｍ個を取り出してミニバッチを作成してもよい。あるいは、ミニバッチ作成部１２はｎ個の入力ｘからランダムにｍ個を抽出してミニバッチを作成してもよい。
【００８２】
重み設定部１３は特徴抽出器１の重みφおよび識別器２の重みθを設定する。特に、本実施形態では、重み設定部１３は、識別器２が弱識別器として動作するよう重みθを設定することができる。
【００８３】
図１１は、第１の実施形態に係る学習システムの処理動作の一例を示すフローチャートである。本実施形態では、１つのミニバッチＭはｍ個の学習データから構成され、ｐ個のミニバッチＭ1〜Ｍpを用いたミニバッチ学習を行うものとする。さらに、１つのミニバッチＭに対してｋとおり弱識別器を用いて重みφを更新するものとする。なお、以下に説明する手順は一例であり、適宜処理順を入れ替えたり、同時並行で行ったりしてもよい。
【００８４】
まず、重み設定部１３は、重みφ，θを初期値（例えば、乱数）に設定し、ミニバッチを特定するパラメータｊ（ｊ＝１〜ｐ）および弱識別器を特定するパラメータｈ（ｈ＝１〜ｋ）を１に初期化しておく（ステップＳ１）。
【００８５】
そして、ミニバッチ作成部１２はｊ番目のミニバッチＭjを作成する（ステップＳ２）。これにより、学習に用いられるｍ個の入力ｘi（ｉ＝１〜ｍ）と、対応する真値ｔiとが抽出される。
【００８６】
次いで、特徴抽出器１は入力ｘ1〜ｘmのそれぞれに対する特徴量Ｆφ（ｘ1）〜Ｆφ（ｘm）を生成する（ステップＳ３）。
【００８７】
そして、重み設定部１３はｈ番目の識別器２の重みθhを乱数で初期化する（ステップＳ４ａ）。さらに、重み設定部１３は、例えば公知の誤差逆伝播法により、ステップＳ３で生成された特徴量Ｆφ（ｘ1）〜Ｆφ（ｘm）に対して、ミニバッチＭjにおけるコスト（例えば、上記（２Ｄ）式の損失関数Ｊ（Ｍj，φ，θh）））が低下するよう、最急降下法などによって重みθhを少数回更新する（ステップＳ４ｂ）。なお、ステップＳ４ａ，Ｓ４ｂでは、重み設定部１３は重みφを更新しない。
【００８８】
少数回の更新に留める理由は、識別器２が強識別器となる前に更新を止めるためである。少数回とは、例えば予め定めた固定回数であってもよい。あるいは、識別器２の識別力を示す評価指標（目的関数やエラー率など）が所定の範囲に収まる回数であってもよい。
【００８９】
以上のステップＳ３，Ｓ４ａ，Ｓ４ｂは図５のステップＳ２００の具体例であり、ｈ番目の重みθhが設定され、ｈ番目の弱識別器が作成される。なお、重み設定部１３は他の手法で弱識別器を作成してもよい。
【００９０】
ｈ（ｈ＝１〜ｋ）番目の弱識別器が作成されると、識別器２は、入力ｘ1〜ｘmのそれぞれに対する出力Ｃθh（Ｆφ（ｘ1））〜Ｃθh（Ｆφ（ｘm））を算出し（ステップＳ５ａ）、重み設定部１３に出力する。重み設定部１３は、各出力Ｃθh（Ｆφ（ｘ1））〜Ｃθh（Ｆφ（ｘm））と、対応する各真値ｔ1〜ｔmとの間のコスト関数Ｌ（Ｃθh（Ｆφ（ｘ1），ｔ1））〜Ｌ（Ｃθh（Ｆφ（ｘm），ｔm））を算出する（ステップＳ５ｂ）。さらに、重み設定部１３はこれらｍ個のコスト関数Ｌ（Ｃθh（Ｆφ（ｘ1），ｔ1））〜Ｌ（Ｃθh（Ｆφ（ｘm），ｔm））の平均値を算出し、損失関数Ｊ（Ｍj，φ，θh）とする（ステップＳ５ｃ）。以上のステップＳ５ａ〜Ｓ５ｃは上記（２Ｄ）式に相当する。
【００９１】
以上のステップＳ４ａ〜５ｃをｋ回繰り返すことで（ステップＳ６ａ，Ｓ６ｂ）、ｋ個の損失関数Ｊ（Ｍj，φ，θ1）〜Ｊ（Ｍj，φ，θk）が得られる（ステップＳ７ａ）。そして、重み設定部１３はこれらｋ個の損失関数Ｊ（Ｍj，φ，θ1）〜Ｊ（Ｍj，φ，θk）の平均値を算出し、損失関数Ｊ’（Ｍj，φ）とする（ステップＳ７ｂ）。以上のステップＳ７ａ，７ｂは上記（２Ｃ）式に相当する。得られた損失関数Ｊ’（Ｍj，φ）はステップＳ１で生成したｊ番目のミニバッチＭjにおける損失関数である。このようにしてｋ個の重みθに対する平均値を算出するため、特定の重みθに依存しない損失関数Ｊ’（Ｍj，φ）が得られる。
【００９２】
以上のステップＳ２〜Ｓ７ｂをｐ回繰り返すことで（ステップＳ８ａ，８ｂ）、ｐ個の損失関数Ｊ’（Ｍ1，φ）〜Ｊ’（Ｍp，φ）が得られる（ステップＳ９ａ）。そして、重み設定部１３はこれらｐ個の損失関数Ｊ’（Ｍj，φ）の平均値を算出し、目的関数ＧD（φ）とする（ステップＳ９ｂ）。以上のステップＳ９ａ，Ｓ９ｂは上記（２Ｂ）式に相当する。
【００９３】
そして、重み設定部１３は、誤差逆伝搬法などによって重みφの更新を繰り返し、目的関数ＧD（φ）が最小となる重みφ*を得る（ステップＳ１０）。このステップＳ１０は上記（２Ａ）式に相当する。
【００９４】
なお、反復におけるステップＳ２で作成されるミニバッチＭjは、毎回同じタスク用のデータセットから選択されたミニバッチでもよいし、異なるタスク用のデータセットから選択されたミニバッチでもよい。反復のたびに異なる識別器２を用いるということは、反復ごとに異なるデータセットを使用できる、ということでもある。
【００９５】
例えば、ある反復では、手書き数字認識というタスクのための画像データセットからサンプリングされたミニバッチを用い、次の反復では、物体認識というタスクのための画像データセットからサンプリングされたミニバッチを用いてもよい。データセットの使用順はランダムに決めてもよいし、一定回数ごとに切り替えてもよい。
【００９６】
もちろん、１回の反復において、タスクが互いに異なる複数のデータセットを利用してもよい。例えば、ある反復において、特徴抽出器１の重みφに対し、次の２種類の損失関数の勾配を計算する。１種類目は、データセットＡのミニバッチと、データセットＡが規定する損失関数を使って生成された弱識別器を用いて計算された、データセットＡが規定する損失関数のφに対する勾配である。２種類目は、データセットＢのミニバッチと、データセットＢが規定する損失関数を使って生成された弱識別器を用いて計算された、データセットＢが規定する損失関数のφに対する勾配である。これら２種類の勾配の平均を使ってφを更新する。
これらの適用により、単一のデータセットへの過適合を抑制できる。  
【００９７】
このように、第１の実施形態では、識別器２を弱識別器として動作させ、その重みθを固定して特徴抽出器１用の重みφを更新する。しかも、複数（ｋ個）の弱識別器についての損失関数Ｊの平均値である損失関数Ｊ’を含む目的関数ＧD（φ）が小さくなるよう、重みφを更新する。そのため、特定の識別器２に過度に適合しない、汎用性がある重みφが得られる。
【００９８】
（第２の実施形態）
次に説明する第２の実施形態は第１の実施形態の変形例である。具体的には、図６のステップＳ５ｃにおけるコスト関数Ｌの平均値である損失関数Ｊに代えて、コスト関数Ｌの重みφに対する勾配ｄＬ／ｄφの平均値である勾配平均値ＥｄＬ／ｄφを算出する。そして、複数の重みθ1〜θk（すなわちｋ個の弱識別器）における勾配平均値ＥｄＬ／ｄφの平均値ＥＥｄＬ／ｄφを用いて重みφを更新する。以下、具体的に説明する。
【００９９】
図１２は、第２の実施形態に係る学習システムの処理動作の一例を示すフローチャートである。ステップＳ１〜Ｓ５ｂは図１１と共通するので説明を省略する。
【０１００】
ステップＳ５ｂにおいて、コスト関数Ｌ（Ｃθh（Ｆφ（ｘ1）），ｔ1）〜Ｌ（Ｃθh（Ｆφ（ｘm）），ｔm）が得られると、重み設定部１３はそのそれぞれについて、重みφに対する勾配ｄＬ（Ｃθh（Ｆφ（ｘ1）），ｔ1）／ｄφ〜ｄＬ（Ｃθh（Ｆφ（ｘm）），ｔm）／ｄφを算出する（ステップＳ５ｂ’）。そして、重み設定部１３は、これらｍ個の勾配ｄＬ（Ｃθh（Ｆφ（ｘ1）），ｔ1）／ｄφ〜ｄＬ（Ｃθh（Ｆφ（ｘm）），ｔm）／ｄφの平均値を算出し、勾配平均値ＥｄＬ（Ｍj，φ，θh）／ｄφとする（ステップＳ５ｃ’）。
【０１０１】
以上のステップＳ４ａ〜Ｓ５ｃ’をｋ回繰り返すことで（ステップＳ６ａ，Ｓ６ｂ）、ｋ個の勾配平均値ＥｄＬ（Ｍj，φ，θ1）／ｄφ〜ＥｄＬ（Ｍj，φ，θk）／ｄφが得られる（ステップＳ７ａ’）。そして、重み設定部１３はこれらｋ個の勾配平均値ＥｄＬ（Ｍj，φ，θ1）／ｄφ〜ＥｄＬ（Ｍj，φ，θk）／ｄφの平均値を算出し、関数ＥＥｄＬ（Ｍj，φ）／ｄφを算出する（ステップＳ７ｂ’）。これにより、特定の重みθに依存しない関数ＥＥｄＬ（Ｍj，φ）／ｄφが得られる。
【０１０２】
そして、重み設定部１３は勾配平均値の平均値である関数ＥＥｄＬ（Ｍj，φ）／ｄφを用いて重みφを更新する（ステップＳ１０’）。重み設定部１３は以上のステップＳ１〜Ｓ１０’をｐ回（ｐ個のミニバッチについて）反復し、最適な重みφ*を得る。
【０１０３】
このように、第２の実施形態においても、識別器２を弱識別器として動作させ、その重みθを固定して特徴抽出器１用の重みφを更新する。しかも、複数（ｋ個）の弱識別器についての勾配の平均値を利用して重みφを更新する。そのため、特定の識別器２に過度に適合しない、汎用性がある重みφが得られる。
【０１０４】
以上説明した第２の実施形態で説明した学習手法を、複数のノードを用いて並列的に学習を行う分散学習に適用することもできる。本願発明者らは、既に分散学習に関する発明を提案してきた（例えば、特願２０１６−２５３１６９（上記特許文献１）、特願２０１５−２２０７８０（上記特許文献２））。これらは、あるノードで目的関数（コスト関数）の勾配（微分値）を算出し、勾配を複数ノード間で通信して足し合わせることによって重みを更新するものである。
【０１０５】
図１２においては、１つの識別器２における重みθをｋ回設定し直す（ステップＳ６ａ、Ｓ６ｂ）ことでｋ個の弱識別器を作成する。これに対し、分散学習においては、ｋ個のノードがそれぞれ互いに異なる弱識別器を作成することで、ｋ個の弱識別器を作成することができる。そして、各ノードがステップＳ５ｃ’で算出する勾配平均値ＥｄＬ（Ｍj，φ，θh）／ｄφを通信して足し合わせる（ステップＳ７ａ’，Ｓ７ｂ’）ことで、重みφを更新できる。
【０１０６】
図１３に、分散学習を行う学習システムの概略構成の一例を示すブロック図を示す。学習システムは、ｋ個のノード１０１〜１０ｋ（図１３では２つのノード１０１，１０ｋのみを図示）と、重み設定部２００とを備えている。各ノード１０１〜１０ｋは、スーパーコンピュータなどの計算機であり、そのそれぞれが図１０に示した構成となっている。各ノード１０１から１０ｋおよび重み設定部２００は、互いに通信可能となっている。各ノードの学習データ記憶部１１に、互いに異なる学習データが分割して記憶される。
【０１０７】
ノード１０ｈ（ｈ＝１〜ｋ）の識別器２にはそれぞれ互いに異なる重みθhが設定され、それぞれ互いに異なる弱識別器として動作する（図１２のステップＳ４ａ，Ｓ４ｂ）。そして、ノード１０ｈの重み設定部１３は勾配平均値ＥｄＬ（Ｍj，φ，θh）／ｄφを算出する（図１２のステップＳ５ａ〜Ｓ５ｃ’）。そして、重み設定部１３は勾配平均値ＥｄＬ（Ｍj，φ，θh）／ｄφを重み設定部２００に送信する。
【０１０８】
次いで、重み設定部２００はノード１０１〜１０ｋから勾配平均ＥｄＬ（Ｍj，φ，θ1）／ｄφ〜ＥｄＬ（Ｍj，φ，θk）／ｄφをそれぞれ受信し（図１２のステップ７ａ’）、これらを足し合わせた結果を用いて、重みφを更新する（ステップＳ７ｂ’，Ｓ１０’）。
【０１０９】
図１２に示す処理を図１３に示す分散学習に適用すると、特徴抽出器１の重みφに対する勾配の平均値の通信は発生するが、識別器２の重みθに対する勾配や重みθの通信は不要である。
【０１１０】
一般に、識別器２における全結合層４は、特徴抽出器１における畳み込み層３より重みの数が多い。そのため、識別器２の重みθに対する勾配や重みθの通信を要する手法では、必ずしも学習を高速化できるとは限らない。
【０１１１】
これに対し、本手法では、識別器２の重みθに対する勾配や重みθの通信を行わないため、学習を高速化できる。
【０１１２】
なお、図１３に示す構成は例示にすぎない。例えば、学習データ記憶部１１はノードに対して外付けであってもよい。あるいは、１つの学習データ記憶部１１に記憶された学習データを複数のノードが用いるようにしてもよい。
【０１１３】
（第３の実施形態）
上述した第１および第２の実施形態は、識別器２の重みθを固定して、特徴抽出器１の重みφを更新するものであった。これに対し、以下に説明する第３の実施形態は、重みθ，φを同時に更新しつつも、特定の識別器２に過度に適合しないようにするものである。
【０１１４】
図１４は、第３の実施形態に係る学習システムの処理動作の一例を示すフローチャートである。初めに、重み設定部１３がそれぞれ重みφ，θを初期値（例えば、乱数）に設定しているものとする。
【０１１５】
まず、ミニバッチ作成部１２はミニバッチを作成する（ステップＳ２１）。そして、ミニバッチに含まれる学習データを用いて重み設定部１３はそれぞれ重みφ，θを更新する（ステップＳ２２）。これにより、重みφ，θの両方が同時に更新される。更新の手法は従来から知られている任意のもの（例えば、上記（１Ａ）〜（１Ｃ）式に基づくもの）を適用すればよいので、ここでは説明を省略する。通常の学習はステップＳ２１，Ｓ２２を反復するだけのものである。
【０１１６】
これに対し、本実施形態では、ステップＳ２１，Ｓ２２の反復数が所定回に達すると（ステップＳ２３のＹＥＳ）、重み設定部１３はθを初期化（例えば、乱数に設定）する（ステップＳ２５）。すなわち、これまでの更新によって得られた重みθを破棄する。そして、ステップＳ２１以降を所定の終了条件を満たすまで繰り返す（ステップＳ２４）。終了条件とは、例えば全体の反復数（ステップＳ２１を行う数）がある閾値に達したことである。
【０１１７】
なお、ステップＳ２３の「所定回」があまりにも多いと、特定の識別器２に過度に適合してしまう。そのため、「所定回」を少なくし（例えば、識別器２が弱識別器として動作する範囲の回数）、終了条件を満たすまでの反復数を十分に多くすることで、実質的に過剰な適合を抑えることができる。
【０１１８】
このような手法によれば、従来の重み更新手法をそのまま適用できるため、実装が容易である。
【０１１９】
（第４の実施形態）
以下の第４および第５の実施形態では、上述した学習手法の応用例を示す。まずは、「転移学習」への応用を説明する。
【０１２０】
ニューラルネットワークの産業上の適用例として、センサ情報を入力としたパターン認識技術が挙げられる。近年では、機械学習の学術的発展を背景に、産業上の応用に堪えうる精度でのパターン認識が可能になりつつある。例として、生産設備における、画像を使った外観検査装置などが挙げられる。これは製品の品質管理のための装置であり、不良品、またはその候補の判定を行う装置である。
【０１２１】
一部製品においては、既にこのようなパターン認識器が実装され、外観検査装置によって当該一部製品の外観検査が行われている。しかしながら、外観検査の対象を任意の製品に拡張することは、現状の技術水準では困難である。なぜなら、機械学習によってあらたな認識対象に対して充分に高い認識精度を獲得するには、多数の学習標本、つまりこれらの対象が含まれた画像が必要とされるが、その収集が容易ではないことが多いためである。
【０１２２】
外観検査などの不良品判定を機械学習の枠組みで行うには、一般的に良品と不良品双方の画像データを必要とするが、製造を開始して間もない製品などでは、通常不良品のデータは極端に少なく、たとえ機械学習を適用したとしても望ましい認識精度を達することは一般的に難しい。
【０１２３】
また、多品目を少量生産する生産設備などでは、この問題はさらに深刻である。製造する対象ごとに、スクラッチから学習を行うこと（ニューラルネットワークにおいては、乱数で初期化された重みを最適化すること）は、人的かつ計算量的なコストを伴う。また、少量のデータを学習していては、高い認識精度を得ることは難しい。
【０１２４】
こうした学習データの不足の問題を緩和する方法として、「転移学習」が知られている。転移学習とは、ソースドメインの多量の学習データを使って学習した学習器を、ターゲットドメインの少量の学習データを使ってさらに学習することを指す。ターゲットドメインとは、この例では認識したい製品を意味し、ソースドメインとは、ターゲットドメインとは似ているが別のドメイン、例えばデータが大量に存在する古いタイプの製品などを意味する。ソースドメインには標本となる多数の学習データ（入力画像と出力の真値）が存在することが前提であり、このためソースドメインにおいて学習された学習器の認識能力は極めて高い。この認識能力を、学習標本の少ないターゲットドメインに転移することで、多くの場合、ターゲットドメインでの認識能力を改善できることが知られている。
【０１２５】
転移学習は、まずソースドメインでの学習データを用いて、特徴抽出器１の重みφおよび識別器２の重みθの学習を行う。次いで、特徴抽出器１の重みφはそのままとし、識別器２の重θみを乱数で初期化する。そして、ターゲットドメインでの学習データを用い、特徴抽出器１の重みφを固定して、識別器２の重みθのみを学習する。
【０１２６】
このような転移学習によって、次のような効果が得られる。画像認識には、様々なドメインがあり得るが、エッジに対応する特徴や様々な曲率に対応する特徴は形状認識の基本となる特徴であり、いずれのドメインにも共通して有用な特徴である。ソースドメインにおいて充分に大規模なデータセットを学習することで、ニューラルネットワークにおける特徴抽出器１は様々な形状を識別するための汎用的な特徴抽出能力を獲得できる。
【０１２７】
つまり、このように獲得された特徴抽出器１は、汎用的な特徴量を抽出するため、任意のドメインにおいて汎用的に有効であることが期待できる。無論、ターゲットドメインにおいて充分に大規模なデータセットが準備できるのであれば、ニューラルネットワークをスクラッチからターゲットドメインにおいて学習すればよい。しかし、ターゲットドメインにおいて充分に大規模なデータセットを準備できない場合、これをスクラッチから学習してしまうと、学習データに過度に特化した特徴抽出能力しか獲得できず、汎化能力を損なってしまう。以上が特徴抽出器１を転移することの利点である。
【０１２８】
一方、識別器２は、ドメイン固有のタスクを解くために最適化されているため、一般的には、ソースドメインで学習されたものを、そのままターゲットドメインに適用することはできない。このため、ターゲットドメインにおいて学習することが必要である。識別器２を小規模なデータで学習することで、識別器２が過学習してしまうことのリスクは残るものの、特徴抽出器１および識別器２の全体を小規模データで学習する場合と比較すると、前者の方が特徴抽出器１が秀逸な分、高い汎化能力を持つ可能性が高い。
【０１２９】
ただし、上述した比較例に示す学習では、特徴抽出器１の重みφと識別器２の重みθとが同時に最適化されるため、ソースドメインでの識別を最適化する特定の識別器２に過剰に適合した特徴抽出器１が生成されている可能性がある。そうすると、ターゲットドメインに対して識別器２の重みθを学習したとしても、識別力が高い識別器２が生成されるとは限らない。
【０１３０】
これに対し、第１〜第３の実施形態で説明した手法によれば、特定の識別器２に過剰に適合していない、汎用的な特徴抽出器１が生成される。そのため、転移学習に適しているといえる。
【０１３１】
具体的には、まず、ソースドメインでの学習データを用い、各実施形態で説明した手法を適用して特徴抽出器１の重みφの学習を行う。これにより、汎用的な特徴抽出器１が生成される。次いで、得られた特徴抽出器１の重みφを固定し、ターゲットドメインでの学習データを用い、識別器２の重みθを初期値から学習する。このような転移学習により、識別力が高い識別器２を生成できる。
【０１３２】
なお、転移学習とは異なるが、あるドメインでの学習データを用いて重みφを学習し、次いで、この重みφを固定し、同じドメインでの学習データを用いて重みθを学習してもよい。
【０１３３】
（第５の実施形態）
続いて、マルチタスク学習への応用について説明する。ここでのマルチタスクとは、図１５に示すように、１つの特徴抽出器１が、互いに識別タスクが異なる複数の識別器２（図１５では２つの識別器２ａ，２ｂを描いている）に接続される構成を指し、１つのネットワークでありながら複数の識別タスクを解くものである。
【０１３４】
以下では、説明を簡略化するため、特徴抽出器１に道路環境を含む画像が入力され、識別器２ａは当該画像から歩行者を検知し、識別器２ｂは当該画像から標識を検知するものを例に取って説明する。
【０１３５】
仮に、特徴抽出器１が歩行者検知に特化した特徴量を抽出すると、識別器２ａは高精度に歩行者を検知できるが、識別器２ｂは精度よく標識を検知できるとは限らない。逆に、特徴抽出器１が標識検知に特化した特徴量を抽出すると、識別器２ｂは高精度に標識を検知できるが、識別器２ａは精度よく歩行者を検知できるとは限らない。そのため、このようなマルチタスクにおいては、歩行者検知にも標識検知にも使える汎用的な特徴量（例えば、画像のエッジや曲率など）を抽出することを要する。
【０１３６】
上述した第１〜第３の実施形態で説明した手法によれば、特定の識別器２に過剰に適合していない、汎用的な特徴抽出器１が生成される。そのため、マルチタスクにも適しているといえる。
【０１３７】
具体的には、まず、各実施形態で説明した手法を適用して特徴抽出器１の重みφの学習を行う。これにより、歩行者検知にも標識検知にも適した汎用的な特徴抽出器１が作成される。次いで、得られた特徴抽出器１の重みφを固定し、各識別器２の識別タスクに応じた学習データを用い、各識別器２の重みθを初期化からそれぞれ学習する。より具体的には、学習データ１１ａに記憶された、画像（入力）と、その画像における歩行者が存在する領域（真値）との組からなる学習データを用いて、重み設定部１３ａが識別器２ａの重みθを学習する。また、学習データ１１ｂに記憶された、画像（入力）と、その画像における標識が存在する領域（真値）との組からなる学習データを用いて、重み設定部１３ｂが識別器２ｂの重みθを学習する。このようにして、マルチタスクの学習を行うことができる。
【０１３８】
上述した実施形態は、本発明が属する技術分野における通常の知識を有する者が本発明を実施できることを目的として記載されたものである。上記実施形態の種々の変形例は、当業者であれば当然になしうることであり、本発明の技術的思想は他の実施形態にも適用しうることである。したがって、本発明は、記載された実施形態に限定されることはなく、特許請求の範囲によって定義される技術的思想に従った最も広い範囲とすべきである。
【符号の説明】
【０１３９】
１  特徴抽出器
２，２ａ，２ｂ  識別器
３  畳み込み層
４  全結合層
１１，１１ａ，１１ｂ  学習データ記憶部
１２，１２ａ，１２ｂ  ミニバッチ作成部
１３，１３ａ，１３ｂ，２００  重み設定部
１００，１０１，１０ｋ  学習システム
【図１】
2020060838.tif 000007
【図２】
2020060838.tif 000008
【図３】
2020060838.tif 000009
【図４】
2020060838.tif 000010
【図５】
2020060838.tif 000011
【図６】
2020060838.tif 000012
【図７】
2020060838.tif 000013
【図８】
2020060838.tif 000014
【図９】
2020060838.tif 000015
【図１０】
2020060838.tif 000016
【図１１】
2020060838.tif 000017
【図１２】
2020060838.tif 000018
【図１３】
2020060838.tif 000019
【図１４】
2020060838.tif 000020
【図１５】
2020060838.tif 000021