(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-15
(45)【発行日】2023-12-25
(54)【発明の名称】学習処理装置及び方法
(51)【国際特許分類】
G06N 3/082 20230101AFI20231218BHJP
G06N 3/096 20230101ALI20231218BHJP
G06N 3/0495 20230101ALI20231218BHJP
【FI】
G06N3/082
G06N3/096
G06N3/0495
(21)【出願番号】P 2021575563
(86)(22)【出願日】2020-02-07
(86)【国際出願番号】 JP2020004878
(87)【国際公開番号】W WO2021157067
(87)【国際公開日】2021-08-12
【審査請求日】2022-06-17
(73)【特許権者】
【識別番号】501387839
【氏名又は名称】株式会社日立ハイテク
(74)【代理人】
【識別番号】110000350
【氏名又は名称】ポレール弁理士法人
(72)【発明者】
【氏名】石川 昌義
(72)【発明者】
【氏名】大内 将記
(72)【発明者】
【氏名】新藤 博之
(72)【発明者】
【氏名】豊田 康隆
(72)【発明者】
【氏名】篠田 伸一
【審査官】多賀 実
(56)【参考文献】
【文献】米国特許出願公開第2018/0114114(US,A1)
【文献】HAN, Song et al.,"DSD: Dense-Sparse-Dense Training for Deep Neural Networks",arXiv.org [online],米国,Cornell University,2017年,arXiv:1607.04381v2,pp.1-13,[検索日 2020.03.30], インターネット:<URL: https://arxiv.org/pdf/1607.04381v2.pdf>
【文献】JANG, Eric et al.,"Categorical Reparameterization with Gumbel-Softmax",arXiv.org [online],米国,Cornell University,2017年,arXiv:1611.01144v5,pp.1-13,[検索日 2020.03.30], インターネット:<URL: https://arxiv.org/pdf/1611.01144v5.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
既存の第1の学習モデルから新たな第2の学習モデルを得る学習処理装置であって、
第1の学習データセットを学習して事前生成された第1の学習モデルと枝刈りされていないニューラルネットワークを得る入力部と、前記第1の学習モデルと前記ニューラルネットワークを用いて学習対象の前記ニューラルネットワークを初期化し、第2の学習データセットと初期化された前記ニューラルネットワークを用いて、初期化された前記ニューラルネットワークの認識処理におけるパラメータの重要度を特定する重要パラメータ特定部と、前記パラメータの重要度を用いて、初期化された前記ニューラルネットワークから重要でないパラメータを削除する枝刈り処理を行い第2のニューラルネットワークを生成する新モデル生成部と、前記第2の学習データセットを用いて前記第2のニューラルネットワークを学習する学習部と、学習後の前記第2のニューラルネットワークを第2の学習モデルとして出力する出力部とを備え、
複数の前記第1の学習モデルについて、前記重要パラメータ特定部で求めたパラメータの重要度をそれぞれ求めて、前記第1の学習モデルの種別とともに記憶し、重要度情報として提示する表示部を備えることを特徴とする学習処理装置。
【請求項2】
請求項1に記載の学習処理装置であって、
前記重要度は、重要度総和と枝刈り後重要度総和を含むことを特徴とする学習処理装置。
【請求項3】
既存の第1の学習モデルから新たな第2の学習モデルを得る学習処理装置であって、
第1の学習データセットを学習して事前生成された第1の学習モデルと枝刈りされていないニューラルネットワークを得る入力部と、前記第1の学習モデルと前記ニューラルネットワークを用いて学習対象の前記ニューラルネットワークを初期化し、第2の学習データセットと初期化された前記ニューラルネットワークを用いて、初期化された前記ニューラルネットワークの認識処理におけるパラメータの重要度を特定する重要パラメータ特定部と、前記パラメータの重要度を用いて、初期化された前記ニューラルネットワークから重要でないパラメータを削除する枝刈り処理を行い第2のニューラルネットワークを生成する新モデル生成部と、前記第2の学習データセットを用いて前記第2のニューラルネットワークを学習する学習部と、学習後の前記第2のニューラルネットワークを第2の学習モデルとして出力する出力部とを備え、
前記重要パラメータ特定部が与える重要度について、学習対象の認識処理に重要な特徴を、前記第1の学習モデルが学習できていない場合に、枝刈りされるパラメータを部分的に再度初期化する部分的再初期化部を備え、部分的再初期化後に前記新モデル生成部の処理を行うことを特徴とする学習処理装置。
【請求項4】
既存の第1の学習モデルから新たな第2の学習モデルを得る学習処理装置であって、
第1の学習データセットを学習して事前生成された第1の学習モデルと枝刈りされていないニューラルネットワークを得る入力部と、前記第1の学習モデルと前記ニューラルネットワークを用いて学習対象の前記ニューラルネットワークを初期化し、第2の学習データセットと初期化された前記ニューラルネットワークを用いて、初期化された前記ニューラルネットワークの認識処理におけるパラメータの重要度を特定する重要パラメータ特定部と、前記パラメータの重要度を用いて、初期化された前記ニューラルネットワークから重要でないパラメータを削除する枝刈り処理を行い第2のニューラルネットワークを生成する新モデル生成部と、前記第2の学習データセットを用いて前記第2のニューラルネットワークを学習する学習部と、学習後の前記第2のニューラルネットワークを第2の学習モデルとして出力する出力部とを備え、
ニューラルネットワークは畳み込みニューラルネットワークであって、
畳み込みニューラルネットワークに含まれる畳み込み層の一部もしくは全部に畳み込み層の出力の特徴チャンネルを認識に利用するか否かを緩和ベルヌーイ分布によって学習することを特徴とする学習処理装置。
【請求項5】
請求項4に記載の学習処理装置であって、
前記緩和ベルヌーイ分布の学習時に特徴チャンネルを認識に利用する量を学習中に徐々に大きくすることを特徴とする学習処理装置。
【請求項6】
請求項5に記載の学習処理装置であって、
前記重要度の評価は、損失関数の前記ニューラルネットワークのパラメータに関する1次ないしは2次の微分情報と前記ニューラルネットワークのパラメータから求められる量もしくは前記緩和ベルヌーイ分布のパラメータによって求められることを特徴とする学習処理装置。
【請求項7】
請求項6に記載の学習処理装置であって、
前記第1の学習モデルのパラメータによって初期化されなかったネットワーク構造の部分を初期化する際には枝刈りしやすい値となるように初期化することを特徴とする学習処理装置。
【請求項8】
既存の第1の学習モデルから新たな第2の学習モデルを得る学習処理方法であって、
第1の学習データセットを学習して事前生成された第1の学習モデルと枝刈りされていないニューラルネットワークを得、前記第1の学習モデルと前記ニューラルネットワークを用いて学習対象の前記ニューラルネットワークを初期化し、第2の学習データセットと初期化された前記ニューラルネットワークを用いて、初期化された前記ニューラルネットワークの認識処理におけるパラメータの重要度を特定し、前記パラメータの重要度を用いて、初期化された前記ニューラルネットワークから重要でないパラメータを削除する枝刈り処理を行い第2のニューラルネットワークを生成し、前記第2の学習データセットを用いて前記第2のニューラルネットワークを学習し、学習後の前記第2のニューラルネットワークを第2の学習モデルとすることを備える
とともに、
ニューラルネットワークは畳み込みニューラルネットワークであって、
畳み込みニューラルネットワークに含まれる畳み込み層の一部もしくは全部に畳み込み層の出力の特徴チャンネルを認識に利用するか否かを緩和ベルヌーイ分布によって学習することを特徴とする学習処理方法。
【請求項9】
既存の第1の学習モデルから新たな第2の学習モデルを得る学習処理方法であって、
枝刈りしていないニューラルネットワークと第1の学習モデルを用いて学習対象の前記枝刈りしていないニューラルネットワークを初期化し、第2の学習データセットと初期化された前記ニューラルネットワークを用いて、初期化された前記ニューラルネットワークの認識処理におけるパラメータの重要度を求め、重要度に応じた枝刈り処理を行い、前記第2の学習データセットを用いた枝刈り後の前記ニューラルネットワークの学習により第2の学習モデルを得る
とともに、
ニューラルネットワークは畳み込みニューラルネットワークであって、
畳み込みニューラルネットワークに含まれる畳み込み層の一部もしくは全部に畳み込み層の出力の特徴チャンネルを認識に利用するか否かを緩和ベルヌーイ分布によって学習することを特徴とする学習処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークを利用する学習処理装置及び方法に関する。
【背景技術】
【0002】
画像処理や自然言語処理、音声認識をはじめとする信号処理の分野において、多層のニューラルネットワークを利用する学習処理装置を用いて、認識処理を行うことがある。近年のニューラルネットワークは認識性能を向上させるために多数のパラメータを持ち、膨大な演算量を必要とする。しかしながら、学習後に行う認識処理時には大量の画像などのデータを処理するため、少ないパラメータと少ない演算量で処理することが望ましい。本発明では少ないパラメータと演算量で処理可能なニューラルネットワークを軽量モデルと呼ぶ。
【0003】
学習後に多層のニューラルネットワークのパラメータ及び演算量を削減する技術として枝刈りがある。枝刈りは学習後のニューラルネットワークにおいて不要なパラメータや不要な演算を特定し、削除することでニューラルネットワークの認識処理に必要とするパラメータと演算量を削減する技術である。
【0004】
例えば特許文献1では学習後のニューラルネットワークのユニットをランダムに削除し、再学習後にコスト関数の評価を行い、最もコスト関数が良い構造をニューラルネットワークの最適構造として出力する仕組みが検討されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
一般に枝刈りによるニューラルネットワークの軽量化は長い学習期間を必要とする。これはニューラルネットワークの軽量化の際に認識精度への悪影響を最小化するために、パラメータの削除を少しずつ行うためである。一度に大量のパラメータを削除すると認識精度が大きく落ちてしまうため、通常は少量のパラメータの削除と再学習を複数回繰り返すことで認識精度の劣化の少ない軽量なモデルを学習する。
【0007】
そのため軽量なニューラルネットワークの学習は通常のニューラルネットワークの学習の数倍の学習回数が必要になるため学習期間が長期化する。特に実行する認識処理の種類が多い場合や実行環境において利用するニューラルネットワークのモデルを切り替える場合では、複数の軽量モデルを用意する必要があるため、学習期間の長期化は認識処理機能の展開、更新の遅延要因となる。
【0008】
そのため、軽量モデルの学習を短期間で完了させるための構成が必要となるが、特許文献1では軽量モデルの学習の短期化に対する検討は行われていない。
【課題を解決するための手段】
【0009】
以上のことから、本発明においては、「既存の第1の学習モデルから新たな第2の学習モデルを得る学習処理装置であって、第1の学習データセットを学習して事前生成された第1の学習モデルと枝刈りされていないニューラルネットワークを得る入力部と、第1の学習モデルとニューラルネットワークを用いて学習対象のニューラルネットワークを初期化し、第2の学習データセットと初期化されたニューラルネットワークを用いて、初期化されたニューラルネットワークの認識処理におけるパラメータの重要度を特定する重要パラメータ特定部と、パラメータの重要度を用いて、初期化されたニューラルネットワークから重要でないパラメータを削除する枝刈り処理を行い第2のニューラルネットワークを生成する新モデル生成部と、第2の学習データセットを用いて第2のニューラルネットワークを学習する学習部と、学習後の前記第2のニューラルネットワークを第2の学習モデルとして出力する出力部とを備えることを特徴とする学習処理装置」としたものである。
【0010】
また本発明においては、「既存の第1の学習モデルから新たな第2の学習モデルを得る学習処理方法であって、第1の学習データセットを学習して事前生成された第1の学習モデルと枝刈りされていないニューラルネットワークを得、第1の学習モデルとニューラルネットワークを用いて学習対象のニューラルネットワークを初期化し、第2の学習データセットと初期化されたニューラルネットワークを用いて、初期化されたニューラルネットワークの認識処理におけるパラメータの重要度を特定し、パラメータの重要度を用いて、初期化されたニューラルネットワークから重要でないパラメータを削除する枝刈り処理を行い第2のニューラルネットワークを生成し、第2の学習データセットを用いて第2のニューラルネットワークを学習し、学習後の第2のニューラルネットワークを第2の学習モデルとすることを備えることを特徴とする学習処理方法」としたものである。
【0011】
また本発明においては、「既存の第1の学習モデルから新たな第2の学習モデルを得る学習処理方法であって、枝刈りしていないニューラルネットワークと第1の学習モデルを用いて学習対象の枝刈りしていないニューラルネットワークを初期化し、第2の学習データセットと初期化されたニューラルネットワークを用いて、初期化されたニューラルネットワークの認識処理におけるパラメータの重要度を求め、重要度に応じた枝刈り処理を行い、第2の学習データセットを用いた枝刈り後のニューラルネットワークの学習により第2の学習モデルを得ることを特徴とする学習処理方法」としたものである。
【発明の効果】
【0012】
本発明によれば、実行する認識処理が多種であったり、実行環境によって利用するニューラルネットワークのモデルを切り替える場合であったりしても、軽量モデルの学習にかかる時間を短期化し、迅速な認識処理機能の提供が可能となる。
【図面の簡単な説明】
【0013】
【
図1】本発明の学習処理装置が想定するニューラルネットワークの利用形態の一例を示した図。
【
図2】本発明の学習処理装置が想定するニューラルネットワークの利用形態の一例を示した図。
【
図4】本発明に係る学習処理装置の処理概要を示した図。
【
図5】本発明と従来法による効果を比較して示した図。
【
図6】本発明の学習処理装置の機能構成例を示した図。
【
図7】本発明の学習処理方法の処理フロー例を示した図。
【
図8】複数の事前学習モデル302の候補に対する重要度評価を操作者が行う際の判断材料情報をテーブル形式にして示した図。
【
図9】本発明の実施例2に係る学習処理装置の機能構成例を示した図。
【
図10】本発明の実施例2に係る学習処理方法の処理フロー例を示した図。
【
図12】本発明の実施例3に係る学習処理装置の機能構成例を示した図。
【
図13】本発明の実施例2に係る学習処理方法の処理フロー例を示した図。
【
図15】複雑なネットワーク構造を持つニューラルネットワークに対するマスク層の適用方法について示した図。
【
図16】畳み込み層1402-a~dが4つのチャンネルを共有する状況を表形式で示した図。
【
図17】本発明の学習処理装置に好適なモニタ画面の構成例を示した図。
【
図18】複数の事前学習モデルの候補に対する重要度評価を実施するための画面の構成例を示した図。
【発明を実施するための形態】
【0014】
以下、図面を用いて本発明の実施例について説明する。
【実施例1】
【0015】
図1、
図2は本発明の学習処理装置が想定するニューラルネットワークの利用形態の一例を示した図である。これらの事例では、学習処理装置100が画像処理を行う事例について例示しているが、処理の対象は自然言語処理、音声認識、その他の信号処理であっても適用が可能である。
【0016】
図1の場合に、学習処理装置100は、入力画像101を入力して複数の画像処理部102(102-1,102-2,102-3)に与え、画像処理部102は入力画像101に対する認識処理を実行する。
【0017】
画像処理部102での処理は、例えば画像分類、物体検出、セマンティックセグメンテーション、キャプショニングといった画像処理であり、画像処理部102-1,102-2,102-3はそれぞれ異なる認識処理を行う。例えば、製品の画像検査の例では与えられた画像に対して画像処理部102-1は良品,不良品など製品の品質を分類する画像処理1を実行し、画像処理部102-2は製品に混入した遺物を検出する画像処理2を実行し、画像処理部102-3は製品の形状を認識するセグメンテーションを行う画像処理3を実行する。この結果として処理結果部103(103-1,103-2,103-3)には、各部位における処理結果を得る。
【0018】
画像処理部102-1,102-2,102-3は、それぞれの認識処理に特化された構成のニューラルネットワークを含む学習モデルである。このように一つの入力画像101に対して複数の画像処理を適用する場合であって、それぞれの画像処理毎に異なるニューラルネットワークを用いる場合などでは、複数のニューラルネットワークに対して軽量モデルを学習する必要がある。
【0019】
本発明における
図1の構成の学習処理装置100では、新たな検査項目が発生した際に追加される画像処理結果4を得る画像処理部102-4(軽量モデル)と、処理結果部103-4を新たに追加することを想定する。
【0020】
また、同一の認識処理であっても複数の軽量モデルを学習する必要がある場合がある。
図2は、
図1の画像処理部102-1,102-2,102-3における各学習モデルが例えば画像計測上の環境の変化に応じて、最適化された学習モデルとされる場合を例示している。画像処理部102´(102-1,102´-2,102´-3)は、環境変化に応じて最適化された学習モデル(環境モデル)を用いた構成である。本発明では、
図1の構成から、新たに
図2の環境モデルを追加構成することを想定する。
【0021】
例えば異なる倍率のレンズを介して画像入手した場合における処理を行うための学習モデルは、通常倍率での学習モデルとは相違することから、異なる倍率のレンズを介して入手した画像に特化した新たなニューラルネットワークを構成する必要があり、
図2の構成を新たに得る必要がある。
【0022】
このように、
図2の環境別モデル102´(102-1,102´-2,102´-3)は、
図1の学習モデル102(102-1,102-2,102-3)と同一の画像処理をおこなうものであるが、入力画像101に関する環境に応じて実行するモデルが変化する例である。ここで環境とは、入力画像101が取得された場所や状況に関するものであったり、認識処理を実行する場所や状況であったりする。例えば屋外の画像データである場合には昼間、夜間といった状況で実行するモデルを変更したり、画像検査システムであれば検査対象の種類ごとにモデルを変更することになる。
【0023】
なお処理結果部103´(103´-1,103´-2,103´-3)は環境別モデル102´(102-1,102´-2,102´-3)による出力である。処理結果1´、2´,3´は実行されるニューラルネットワークが異なるため、
図1とは異なる結果を出力することとなる。
【0024】
このように環境別モデル102´(102-1,102´-2,102´-3)を利用する場合でも複数の軽量モデルを学習する必要がある。特に画像検査システムの場合では検査対象の物体種別や検査工程の種別の組み合わせは無数にあるため、環境別モデルと画像処理の組み合わせは膨大になる。そのため軽量なモデルの取得の効率化が必須となる。
【0025】
なお、本実施例では画像処理、環境別モデルのいずれも3つずつの例を示したが、1つ以上の場合であってもよい。
【0026】
軽量モデルを学習し、作成する場合の手法として枝刈りの手法が知られている。
図3は従来法による枝刈りの概要を示した図である。枝刈りを行うことにより、学習モデルを軽量化することができる。
【0027】
通常、枝刈りでは最初に学習処理201-0によって枝刈りしていないニューラルネットワーク204-0について学習データセット301を用いて学習する。その後枝刈り処理202-1によって学習後の前記枝刈りしていないニューラルネットワーク204-0における不要なパラメータを特定し、パラメータの削除を行い枝刈り後のニューラルネットワーク204-1を出力する。ここで枝刈りによって特定される不要なパラメータとはパラメータの絶対値が小さいもの等が選ばれる。
【0028】
枝刈りによってパラメータを削除されたニューラルネットワーク204-1は枝刈りしていないニューラルネットワーク204-0と比較して認識精度が低下することがあるため、再学習処理203-1によって枝刈り後のニューラルネットワーク204-1の枝ありされていないパラメータを更新し、低下した認識精度を枝刈りしていないニューラルネットワーク204-0と近い値になるようにする。その後、枝刈り量が不十分である場合や複数回の枝刈り処理が設定されている場合には、枝刈り処理202-2及び再学習処理203-2によって更に枝刈りしたニューラルネットワーク204-2を得る。この枝刈り処理と再学習処理は2回以上繰り返し適用してもよい。なお再学習処理203-1、203-2では、学習の時に最初の学習処理201-0で使用したと同じ内容の学習データセット301を用いて学習する。
【0029】
このように従来法による枝刈りでは、学習後に不要なパラメータを特定し、不要なパラメータの削除後に再学習を行うことを繰りかえす。これは枝刈りによる軽量化時に認識性能へ悪影響を与えないように徐々にパラメータを削除する必要があるためである。この手順による処理では、繰り返し学習処理が複数回存在するため、軽量モデルの学習に必要な時間が長くなる。そのため、特に
図1、
図2に記載したような複数の軽量モデルを整備する必要があるような場合では準備期間が長期化し、認識機能の提供の遅延要因となる。
【0030】
図4は本発明に係る学習処理装置の処理概要を示した図である。この処理では、事前に準備した第1のモデル(ネットワーク)から、別処理に適した第2のモデル(ネットワーク)を生成する。この関係は、例えば
図1において画像処理部102(102-1,102-2,102-3)のいずれかのモデル(ネットワーク)を第1のモデルとして、新たに画像処理部102-4を第2のモデルとして生成することであり、あるいは画像処理部102(102-1,102-2,102-3)のいずれかのモデル(ネットワーク)を第1のモデルとして、新たに
図2における環境モデル102´を第2のモデルとして生成することである。
【0031】
従って、新モデル作成の基礎となる第1のモデルは、事前に準備した事前学習モデル302であり、事前学習モデル302は事前学習モデル302に特化された学習対象である第1の学習データセット301Aを使用して生成されている。またこの図において、303は、操作者により提示された枝刈りしていないニューラルネットワークである。
【0032】
重要パラメータ特定部304では、第1のモデルである事前学習モデル302に対して、新たに作成したい第2のモデルに特化された学習対象である第2の学習データセット301Bを適用する。これにより第2の学習データセット301Bにおいて重要なパラメータを事前学習モデル302から特定し、重要なパラメータのみを抽出する。ここでの重要パラメータは、第2の学習データセット301Bの認識に重要な第2のモデルのパラメータを特定することを意味する。
【0033】
その後、新モデル生成部306において、枝刈りしていないニューラルネット303から、第2の学習データセット301Bの認識に重要な第2のモデルのパラメータのみを抽出したニューラルネットワーク305を生成する。このニューラルネットワーク305を学習処理307によって学習することで、短期で軽量モデルを取得することを可能とする。この学習処理307では、第2の学習データセット301Bを使用している。
【0034】
枝刈りを適用しない場合、つまり異なるデータセット(学習データセット301A)で学習したモデルを初期値として学習する方法を転移学習という。本発明では転移時に枝刈りを適用することで従来必要であった学習処理201-0を不要とできるため学習回数を減らし、軽量モデルの学習を短期化することが可能となる。
【0035】
本発明は、基本的に上記のような手順での処理を行うものであるが、この実現にあたり、いくつか工夫すべき事項がある。
【0036】
工夫、改善すべき事項の第1点は、従来手法では転移学習時に枝刈りを適用することは困難であったということにある。一般に
図3の学習処理201-0では枝刈り処理202を実行した際の精度低下が少なくなるように、枝刈り処理202に合わせた正則化が適用される。例えば枝刈り処理202でパラメータの絶対値が小さいものを削除する場合には、学習処理201-0でWeight decayと呼ばれるニューラルネットワークのパラメータの絶対値が小さくなる正則化を適用する。Weight decayを含むニューラルネットワークの損失関数を(1)式に示す。
【0037】
【数1】
(1)式において、ニューラルネットワークの損失関数Lを構成する右辺第一項は認識処理の学習毎に定義された損失関数Lrであり、第2項がWeight decayの項である。λはWeight decayの係数でありθはニューラルネットワークのパラメータである。より多くのパラメータを削除するためには、Weight decayの係数λを比較的大きく設定する必要がある。
【0038】
しかしながら、Weight decayの係数λを大きくするとパラメータの多くが微小な値となる。そのため、学習したデータセットのみで認識性能が発揮でき、転移学習には不向きとなる。そのため、事前学習済みモデル302は特定の学習データセット302に対して強いWeiget decayを適用したモデルではなく、多くのパラメータが非ゼロの値を持つニューラルネットワークであることが望ましい。
【0039】
このような場合では重要パラメータ特定部304はパラメータの絶対値によって重要なパラメータを特定できない。
【0040】
この点の改善に関して、本発明の実施例では、さらに以下のように対応するのがよい。
【0041】
図4において、一般に学習データセット301Bとは異なる学習データセット301Aで学習した事前学習モデル302には学習データセット301Bの認識に有効なパラメータと不要なパラメータが存在する。重要パラメータ特定部304はヘッセ行列を分析することで学習データセット301Bの認識に有効なパラメータを抽出する。ヘッセ行列は損失関数Lのパラメータに対する二次微分である。そのため、例えば各パラメータの値の二乗とヘッセ行列の対角成分の積により各パラメータを削除した際に損失関数に与える影響を算出できる。
【0042】
(2)式に算出式を示す。下添え字のqはq番目のパラメータに関する値であることを示す。Hはヘッセ行列であり、下添え字qqはq行q列目の値であることを示す。この値が小さいものから所望の枝刈り量となるまでパラメータを削除することで事前学習モデル302から学習データセット301Bの認識に有効なパラメータのみを抽出することが可能となる。
【0043】
【数2】
このように本発明ではあるパラメータを削除した際にニューラルネットワークの挙動に与える影響を評価し各パラメータの重要度とする。この重要度の大きなパラメータ程、削除した際にニューラルネットワークの認識性能を低下させる。そのため重要度の低いパラメータから枝刈りを行うことでニューラルネットワークの認識性能の低下を抑え多くのパラメータを削除することができる。
【0044】
またこの点に関連して工夫、改善すべき事項の第2点は、一般に多層のニューラルネットワークはパラメータ数が膨大となるためヘッセ行列を直接計算することは困難である場合があるということである。
【0045】
そのような場合では、損失関数Lの一次微分の二次モーメントであるフィッシャー情報行列や、フィッシャー情報行列の近似であるKronecker-Factored Approximated Curvature により各パラメータを削除した際の影響を算出してもよい。また、損失関数Lの一次微分の統計量や一次微分とパラメータの積の統計量を用いて影響を算出してもよい。この場合には例えば勾配の期待値とパラメータの値の積の絶対値を各パラメータを削除した際に損失関数に与える影響として算出できる。
【0046】
また、畳み込みニューラルネットワークの場合はパラメータ単位で求めた重要度をチャンネルもしくはフィルタと呼ばれる次元毎に集約しチャンネルもしくはフィルタ毎の重要度としてもよい。
【0047】
また、実施例4に示す緩和ベルヌーイ分布を利用し各パラメータの重要度を評価してもよい。
【0048】
図5は、本発明と従来法による効果を比較して示した図である。本発明による学習曲線401、従来法による学習曲線402はいずれも横軸に学習時のパラメータ更新回数、縦軸に認識性能をとった図である。
【0049】
図5左の本発明によれば、事前学習モデル302から学習データセット301Bにおいて重要なパラメータのみを特定し直接軽量モデル306を学習するため、学習曲線401のように一度の学習曲線のみを描く。
【0050】
これに対し、従来法では学習処理201-0や1回以上の再学習処理203を必要とするため、学習曲線402のように2度以上の学習曲線を示す。ここで学習曲線402の中央付近にある破線は枝刈りによる精度低下の影響を示す。このように本発明によれば一度の学習で軽量モデルを取得できるため一つの軽量モデルの獲得に必要な時間を大幅に短縮できる。
【0051】
図6に本発明の学習処理装置の機能構成例を、
図7に本発明の学習処理方法の処理フロー例を示す。これらの図では学習データセット301と事前学習済みモデル302を用いて軽量モデルを学習するまでの構成とフローを示す。
【0052】
まず
図6に示す本発明の学習処理装置の機能構成例図は、本発明の処理を計算機により実現するときの演算部における処理内容を主要な処理機能として表記したものである。ここでは、学習データセット301Aで学習した事前学習モデル302と、枝刈りしていないニューラルネットワーク303を対象とする。
【0053】
重要パラメータ特定部304では、事前学習モデル302と枝刈りしていないニューラルネットワーク303を用いて、まず学習対象のニューラルネットワーク303を初期化する。この初期化により、事前学習モデル302のパラメータは芝刈りしていない形式のニューラルネットワーク303に反映されるため、初期化後のニューラルネットワーク303は事前学習モデル302と等価のものということができる。重要パラメータ特定部304では、次に初期化後のニューラルネットワーク303と新たに作成したい第2のモデル305に特化された学習対象である第2の学習データセット301Bを用いて、初期化後のニューラルネットワーク303の認識処理において重要なパラメータを特定する。
【0054】
枝刈り部306は、
図4の新モデル生成部306に対応する処理であり、枝刈りしていないニューラルネット303から、第2の学習データセット301Bの認識に重要な第2のモデルのパラメータのみを抽出した枝刈り後形式のニューラルネットワーク305を生成する。
【0055】
学習処理部307では、第2の学習データセット301Bを使用してニューラルネットワーク305を学習する。
【0056】
モデル評価部503では、ニューラルネットワーク305(第2のモデル)に対して、評価データセット504を用いて、その演算精度を評価する。評価データセット504の基準を満たす性能を発揮するニューラルネットワーク305が最終的に第2のモデル(計量モデル)とされる。
【0057】
図7に示す本発明の学習処理方法の処理フロー例では、まずステップS601で学習フローを開始する。これは操作者などによって軽量モデルの学習に必要な事項が設定された後に、操作者によって学習を実行された際に開始する。
【0058】
ステップS602は、
図6の重要パラメータ特定部304の一部に対応しており、ここでは操作者によって入力された枝刈りしていないネットワーク構造303と事前学習モデル302を用いて学習対象のニューラルネットワークを初期化する。ここで枝刈りしていないネットワーク構造303は、軽量モデルを学習する対象の画像処理を実行するために操作者によって与えられるネットワーク構造である。またここで、学習対象のニューラルネットワークの初期化とは、与えられたネットワーク構造303のパラメータの初期値を決定することであり、前記学習対象のニューラルネットワークの一部または全部は事前学習モデル302のパラメータをコピーすることで初期化される。前記学習対象のニューラルネットワークのうち、事前学習モデル302のパラメータをコピーされなかったパラメータは操作者によって設定された乱数、または定数によって値が決定される。
【0059】
このように事前学習モデル302のパラメータを利用してニューラルネットワークの初期化を行うことを一般に転移学習と呼ぶ。なお初期化されたネットワーク構造303は、枝刈りしていないニューラルネットワーク構成のものであり、このネットワーク構造303は事前学習モデル302のパラメータを反映している。従って、初期化されたネットワーク構造303は、軽量化された形式の事前学習モデル302を、枝刈りしていないネットワーク原形式のネットワーク構造に反映させたものということができる。
【0060】
ここで前記学習対象のニューラルネットワークの中からいずれのパラメータを事前学習モデル302からコピーするかは操作者によって決定される。前記学習対象のニューラルネットワークの一部のみ事前学習モデル302からパラメータをコピーする操作は、学習対象の画像処理機能と事前学習モデルの画像処理機能が異なる際等に行われる。例えば学習対象は物体検出機能で、事前学習モデル302が画像分類機能の際は、入力画像から画像特徴を抽出する特徴抽出器と呼ばれるニューラルネットワークの部分のみ物体検出用のニューラルネットワークにパラメータがコピーされる。また、両者が同じ画像分類機能であっても特徴抽出器と呼ばれるニューラルネットワークの一部のみパラメータをコピーし、分類結果を予測する後段の層は他の方法によって初期化することもある。
【0061】
ステップS603は
図6の重要パラメータ特定部304の一部に対応しており、ここではステップS602で初期化したニューラルネットワークと学習データセット301Bを用いてステップS602で初期化したニューラルネットワークの各パラメータの重要度を評価する。ここで重要度の評価は
図4の説明で記載した通りである。
【0062】
ステップS604は、
図6の枝刈部(
図4の新モデル生成部)306に対応しており、ここではステップS602で初期化したニューラルネットワークからステップS603で評価した各パラメータの重要度に応じて、重要度の低いパラメータを削除する。ここで削除するパラメータの決定方法は操作者によって選択され、重要度が上位何割かのパラメータ以外を削除する方法や、重要度がある閾値以下のパラメータを削除するなどの方法がある。
【0063】
ステップS605は、
図6の学習部307に対応しており、ここでは学習データセット301Bを用いてステップS604で得られた軽量化済みのニューラルネットワークのパラメータを学習する。これはニューラルネットワークの学習に通常用いられる確率勾配降下法などで行われる。
【0064】
ステップS606は、
図6のモデル評価部503に対応しており、ここでは評価データセット504を用いてステップS605で学習したニューラルネットワークの性能を評価する。このニューラルネットワークの性能評価は得られた軽量モデル505が認識対象の画像処理でどの程度の性能を達成可能か評価する。
【0065】
ステップS607では、ステップS605で学習したニューラルネットワークを軽量モデル505として出力する。この際に、ステップS606で評価した認識性能や認識処理の実行時間と併せて出力するのがよい。
【0066】
ステップS608で学習フローを終了する。
【0067】
このように本発明では事前学習モデル302から学習データセット301B、評価データセット504の認識に重要なパラメータを特定し、重要なパラメータのみ転移することで初期化時に軽量なモデルを構成することができるため、一度の学習によって認識精度の良い軽量モデル505を獲得することができる。
【実施例2】
【0068】
実施例2では、事前学習モデルが複数存在する場合に、所望の軽量モデルを生成する上で、どの事前学習モデルを利用するのが適切であるのか、その判断材料を事前に作成し、実運用上の参考に供することに関する。
【0069】
本発明の実施例1によれば、長時間の学習を行わずとも事前学習モデル302が学習データセット301B、評価データセット504に対して重要なパラメータをどの程度保持しているか評価できる。複数の学習モデルを用意するケースでは事前学習モデル302として利用するモデルの候補も複数存在する。一般に事前学習モデル302として利用するモデルによって学習するニューラルネットワークの性能は変化する。そのため、短期間で軽量なモデルを学習するには適切な事前学習モデル302を選択することが重要である。
【0070】
しかしながら従来手法では、実際に学習データセット301Bと学習部306でニューラルネットワークを学習し評価データセット504とモデル評価部503で認識性能を評価しなければ各事前学習モデルの善し悪しを判別することができなかった。
【0071】
そのため、複数の事前学習モデル302の候補がある場合には、最も良いモデルを事前学習モデル302として選択するには全ての候補に対して学習、評価を行う必要がある。このような場合には軽量モデル305の学習に必要な時間が膨大となってしまう。そのため、学習をせずに複数の事前学習モデル302の候補の中から適切なモデルを一つ選択することは高精度な軽量モデルを短期間で学習するために重要となる。
【0072】
ここで枝刈りしていない非軽量モデルは対象のニューラルネットワークが到達可能な認識性能の指標となるため、前記非軽量モデルを学習、保持することはモデルの管理上、必要となる。
【0073】
本発明の実施例2では、
図6に示す学習処理装置100の一部機能である重要パラメータ特定部304を利用して、
図8の重要度評価テーブル700を事前作成しておき、事前作成の重要度評価テーブル700を参照して実運用上の適切な事前学習モデルの選択の参考に供する。重要度評価テーブル700を事前作成するための装置構成並びに処理フローは、
図9、
図10を参照して後述する。
【0074】
図8は、複数の事前学習モデル302の候補に対する重要度評価テーブルの一例を示した図である。このテーブルは、学習データセット301Bとネットワーク構造303、枝刈りに関する設定が操作者によって選択された際に、転移学習が可能な事前学習候補を抽出するための判断材料情報として操作者に提示される。具体的な判断材料情報は、複数の事前学習モデルのネットワーク構造及び事前学習モデルの学習に用いたデータセット毎に準備された各事前学習モデルの重要度総和及び枝刈り後の重要度総和の情報である。
【0075】
図8の重要度評価テーブル700において、事前学習モデル種別701は、各事前学習モデルのネットワーク種別である。例えば学習対象の認識処理が物体検出の場合では、事前学習モデル302として画像分類器を用いる場合は特徴抽出器と呼ばれるニューラルネットワークの部分のみ転移し、事前学習モデル302として同じ物体検出器を用いる場合には特徴抽出器に加え物体検出用のニューラルネットワークの部分も転移する。そのためネットワーク構造303が与えられたとしても事前学習モデルの種別は複数存在する。また、特徴抽出器のみ転移するとしても層数や各層のパラメータ数などによって事前学習モデルの種別は複数存在しうる。このため、ここでは事前学習モデルの種別701を明確にしておく。
【0076】
事前学習データセット702は、事前学習モデルの学習に用いたデータセット(
図4の学習データセット301A)に対応)を示す。転移学習を行う際には、転移元が学習した特徴と学習対象のデータセット301Aが持つ特徴が一致することがニューラルネットワークの高精度化に重要となる。
【0077】
重要度総和703は、各事前学習モデル302の重要度の総和である。これは学習データセット301Aと重要パラメータ特定部304によって評価された各パラメータの重要度の総和である。また、事前学習モデル302によってはパラメータ数が異なるため単なる総和ではパラメータ数が多いモデルの方が重要度総和は大きくなりやすい。そのため、事前学習モデルの重要度総和を各事前学習モデルのパラメータ数で割った重要度平均を用いてもよい。
【0078】
枝刈り後重要度総和704は、操作者によって与えられた枝刈りに関する設定を用いて枝刈りをした際に残るパラメータの重要度の総和である。これは重要度総和703と同様に重要度平均でもよい。
【0079】
重要度はあるパラメータを削除した際に認識性能へ与える悪影響を評価した値であるため、重要度総和703が大きい程、学習対象の認識処理に重要なパラメータを多く含んでいると考えることができる。
【0080】
そのため重要度総和703が大きいモデルを事前学習モデル302として選択すると高精度なモデルを学習しやすくなる。また、軽量モデルの学習時には枝刈りによって複数のパラメータが削除される。そのため枝刈り後重要度総和704を評価することで枝刈り後に残ったパラメータがどの程度学習データセット301Bの認識に重要か評価できる。そのため、枝刈り後重要度総和704が大きいモデルが軽量モデル505を学習した際に軽量で高精度なモデルを学習できる。操作者はこのような表を確認し、重要度総和703と枝刈り後重要度総和704の両方が大きいモデルを選択することで、軽量かつ高精度なモデルを学習することが可能となる。
【0081】
図9及び
図10に、
図8で示した複数の事前学習モデル302の候補に対する重要度評価テーブル700を作成する装置構成及び処理フロー例を示す。
【0082】
まず
図9に示す本発明の実施例2に係る学習処理装置の機能構成例図は、
図6の学習処理装置100に、学習済みモデル記憶部801、事前学習モデル候補抽出部802、事前学習モデル選択部803、重要度評価結果記憶部804の各機能を追加したものである。このうち学習済みモデル記憶部801と重要度評価結果記憶部804は、計算機のデータベースなどの記憶部であり、学習済みモデル記憶部801には例えば
図1のモデル(ネットワーク)102-1,102-2,102-3の情報が事前学習モデルとして記憶され、また重要度評価結果記憶部804には
図6の重要パラメータ特定部(枝刈り部)304で抽出した重要パラメータについての評価結果が記憶されている。また、
図8の重要度評価データも最終的には重要度評価結果記憶部804に蓄積記憶される。なお事前学習モデル候補抽出部802、事前学習モデル選択部803は、操作者による処理、判断内容を表している。
【0083】
図10のフロー図は、
図9に示すハード資源、ソフト資源などを用いて以下に示す処理を逐次実行する。まず、
図10の最初のステップS901では、複数の事前学習モデル302の候補に対する重要度評価フローを開始する。これは操作者によって実行が指示されたタイミングで開始する。
【0084】
ステップS902(事前学習モデル候補抽出部802の処理に対応)では、操作者によって与えられたネットワーク構造303を用いて学習モデル記憶部801から事前学習モデル302の候補を抽出する。学習モデル記憶部801は、モデル毎に設定されたモデルID、モデルの名称、モデルのネットワーク構造、学習に用いたデータセット301A、および到達した認識性能が紐づけられ格納されている。またステップS902(事前学習モデル候補抽出部802の処理に対応)では、与えられたネットワーク構造303に転移が可能なネットワーク構造を含むモデルを学習済みモデル記憶部801から抽出し事前学習モデル候補として事前学習モデル選択部803に出力する。
【0085】
ステップS903(事前学習モデル選択部803の処理に対応)では、事前学習モデル候補抽出部802が抽出した事前学習モデル候補の中から、重要度評価を行っていないモデルを一つ選択し事前学習モデル302とする。
【0086】
ステップS904(重要パラメータ特定部304の処理に対応)では、操作者によって与えられたネットワーク構造303、事前学習モデル302を用いて学習対象のニューラルネットワークの初期化を行う。これは
図7記載のステップS602と同様の方法で行う。
【0087】
ステップS905(重要パラメータ特定部304の処理に対応)では、学習データセット301Bを用いてステップS904で初期化されたニューラルネットワークの各パラメータの重要度を評価する。これは
図7記載のステップS603と同様の方法で行う。
【0088】
ステップS906(重要パラメータ特定部304の処理に対応)では、ステップS904、ステップS905による評価が操作者によって設定された回数に達したか確認する。設定された回数に達していればステップS907に進み、達していなければステップS904に戻り、設定された回数に達するまで繰り返す。ここで設定される回数は1回以上であれば何回でもよい。これはステップS904で行うニューラルネットワークの初期化時に乱数を利用するため、複数回評価することで乱数の影響を抑えるために行ってもよい。
【0089】
例えば物体検出用のニューラルネットワークを学習する際に画像分類で事前学習されたモデルを転移する場合には、一般に特徴抽出器の部分のみパラメータがコピーされ他の部分に関しては乱数で初期化される。重要度評価時に用いる特徴抽出器の1次ないしは2次の勾配情報は特徴抽出器の後段にある他のニューラルネットワークの初期化によって影響を受ける。そのため、このようなケースでは、特徴抽出器に含まれる各パラメータの重要度を正しく評価するために、乱数による初期化を複数回行い、重要度評価を複数回行ってもよい。実際には複数回評価した重要度からステップS907で統計情報を用いて算出した重要度を各事前モデルの重要度として用いるのがよい。
【0090】
ステップS907(重要パラメータ特定部304の処理に対応)では、ステップS904、S905、S906で評価した重要度から、各パラメータの重要度を算出する。これは重要度総和が最も大きい回次の結果を用いることや各評価の平均値を用いることができる。重要度総和が最も大きい回次を利用することは最もよい初期値を得た回の評価値を利用することに相当する。この場合は各パラメータの初期値を記憶しておき、実際に学習する際に利用してもよい。また、各回の平均を重要度として利用する場合は、乱数の影響を受けづらいパラメータを重視して利用することに相当する。
【0091】
ステップS908(重要パラメータ特定部304の処理に対応)では、利用した評価条件とステップS907で評価した重要度を関連付けて重要度評価結果記憶部804に格納する。ここで利用した評価条件は事前学習モデル302に関する情報や重要度の評価を行った回数やステップS907で重要度の評価に利用した方法などに関するものである。重要度評価結果記憶部804には各評価で利用した学習データセット301Bの情報や評価した重要度に関する情報、事前学習モデルとして利用したモデルのモデルID、名称、ネットワーク構造、事前学習に用いられたデータセット、事前学習時の認識性能が格納される。ここで重要度に関する情報は各パラメータに関する重要度を全て保存してもよいし、統計化した情報を保存してもよい。ステップS908の処理により、
図8の重要度評価テーブル700に、着目した事前学習モデル候補についての重要度総和703、枝刈り後重要度総和704のデータが追記されることになる。
【0092】
ステップS909(重要パラメータ特定部304の処理に対応)では、ステップS902で抽出した全ての事前学習モデル候補に対しての評価が完了したか確認し、完了していればステップS910に進み、完了していなければ完了するまでステップS903から繰り返す。
【0093】
ステップS910で重要度評価フローを終了する。必要なすべての事前準備モデルに対する処理完了後には、重要度評価結果記憶部804には
図8のデータが整備されたことになる。
【0094】
以上のように本発明によれば転移学習時に事前学習モデル302から重要なパラメータのみ特定し学習を行うことで一度の学習で軽量モデル306を獲得することができ、軽量モデル306の学習を短期間で行うことが可能となる。
【0095】
また、
図8、
図9、
図10で示したように事前学習モデル302に対して重要度の評価のみを行うことで実際の学習を行うことなく各事前学習モデルの善し悪しを評価することが可能となり、軽量モデル305の学習を短期間化できる。
【実施例3】
【0096】
実施例3では、転移学習時に、学習対象の認識処理に重要な特徴を事前学習モデル302が学習できていない場合について、対応する。
【0097】
本発明の実施例1では、転移学習時に学習対象の認識処理において重要なパラメータのみ転移することで軽量モデル505の学習に必要な時間を短縮した。しかしながら、転移学習時には学習対象の認識処理に重要な特徴を、事前学習モデル302が学習できていない場合があり得る。このような場合には事前学習モデル302から重要なパラメータを転移するのみでは高精度な軽量モデル505を学習することが難しい。
【0098】
図11はこのような課題を解決するために導入する部分的再初期化処理について示した図である。
図11は、
図4に対応する処理の流れを示したものであり、
図4の手順に部分的再初期化処理1001と枝刈り処理1003の処理を新規に追加したものである。
【0099】
これらの一連の処理では、すでに説明したように重要パラメータ特定部304が重要パラメータを特定しており、その時のネットワーク305が想定されているが、転移学習時には学習対象の認識処理に重要な特徴を、事前学習モデル302が学習できていなかった、従ってネットワーク305は不十分なものであったという前提である。ここで不十分とは、ネットワークが簡素化されすぎてしまっている、あるいは必要なルートが形成されていないなどを意味している。
【0100】
このことから、部分的再初期化処理1001では、重要パラメータ特定部304が重要パラメータを特定した後に、枝刈りされるパラメータのみを再度初期化する。これにより重要度の高いパラメータのみを残したニューラルネットワーク305に部分的再初期化処理1001を適用すると、ニューラルネットワーク1002に示すように、破線で示したニューロンのように再初期化される。この再初期化は枝刈りがしやすい形で実施され、モデル生成処理部306で学習された後に枝刈り処理1003で精度への影響少なく枝刈り可能なようにする。この枝がりしやすい再初期化とは、例えば各パラメータをゼロで初期化することなどになる。また、とりうる値の絶対値が小さな乱数を用いてもよい。
【0101】
図12及び
図13は、
図11の部分的再初期化を含めた本発明の学習処理装置の機能構成例及び学習処理方法の処理フロー例を示した図である。これらは
図6及び
図7で示した本発明の機能構成例及び処理フロー例に部分的再初期化処理を加えた構成及びフローであるため、差分のみ記載する。
【0102】
図13のフローにおいて、ステップS1201ではステップS604で枝刈り部502がステップS603で評価した重要度に応じてステップS602で初期化したニューラルネットワークから重要度の低いパラメータを削除したパラメータを部分的再初期化部1101が再初期化する。これは前述の通り、ゼロや絶対値の小さな乱数などで行うことで枝刈りしやすい再初期化を実施する。
【0103】
ステップS1202で枝刈り部502がステップS605で学習したニューラルネットワークから不要なパラメータを削除する。ステップS1201で行う再初期化処理は枝刈りしやすいように実施するために精度への影響を小さくとどめることができる。
【0104】
このように部分再初期化処理を組み合わせることによって事前学習モデル302が学習データセット301Bの認識に重要なパラメータを持っている場合は転移したパラメータが学習され、持っていない場合では部分的再初期化されたニューロンが学習される。また学習データセット301Bの認識に重要な特徴が全て事前学習モデル302によって学習されている場合には部分的再初期化されたニューロンは容易に枝刈りすることが可能となる。また、ステップS1202の枝刈り後に再度ステップS605でニューラルネットワークを学習してもよい。
【実施例4】
【0105】
実施例3では、部分的再初期化処理1001において小さな値でパラメータを再初期化することを記載したが、通常の学習と同様の方法で初期化し異なる方法で枝刈りする領域を求めてもよい。本発明の実施例4では、マスク層による枝刈りについて記載する。
【0106】
マスク層による枝刈りの概念を
図14に示す。
図14は画像処理でよく用いられる畳み込みニューラルネットワークに対してマスク層理1304を適用した際の構成を示す。通常畳み込みニューラルネットワークでは複数の畳み込み層1302が適用されるが、
図14は一つの畳み込み層1302に注目した際の構成である。通常の畳み込みニューラルネットワークでは入力1301に対して畳み込み層1302、正規化層1303、活性化層1305を適用し出力1306を得る。
【0107】
畳み込み層1302の処理及びパラメータをf、w、正規化層1303の処理及びパラメータをg、θ、活性化層1305の処理をa、入力をx、出力をyとすると、畳み込み層1302の一連の処理は(3)式で表される。
【0108】
【数3】
ここで入出力x、yはそれぞれ3次テンソルであり、画像特徴の幅、高さ、特徴チャンネルの次元を持つ。一般に畳み込み層1302を高速化する場合には特徴チャンネル単位で演算を削除することが効果的である。例えば元々の畳み込み層1302が128チャンネル有する場合には認識性能に影響しない10チャンネルを削除し、118チャンネルを出力することを行う。
【0109】
本発明の実施例4では、このチャンネルの削除をマスク層1304によって行う。マスク層1304の処理とパラメータをm,νとすると(3)式で示した畳み込み層1302の一連の処理は(4)式のようになる。
【0110】
【数4】
畳み込み層1302の特徴チャンネル単位の削除を行うためにマスク層1304はパラメータνを学習する。パラメータνは0もしくは1の値を取る特徴チャンネルと同じ次元を持つベクトルであり、マスク層1304の処理mはパラメータνが1の部分は入力された特徴マップをそのまま出力し、パラメータνが0の部分は全ての幅、高さの値を0として出力する。このようなパラメータνを学習できれば、認識性能への影響なしに学習後にパラメータνが0の部分の計算を削除できる。すなわち、畳み込み層1302及び正規化層1303を入力に適用した隠れ変数をhとし、隠れ変数hに対してマスク層を適用した隠れ変数をh´とした場合には、h´の各要素は(5)式で与えられる。
【0111】
【数5】
また(5)式において、マスク層1304を適用した隠れ変数h´は、畳み込み層処理1302及び正規化層1303を入力に適用した隠れ変数hで表記できることから、3次テンソルである隠れ変数の幅i、高さj、特徴チャンネルの位置kを可変とする(6)式で表すことができる。
【0112】
【数6】
ここでさらに、パラメータνは0もしくは1の値を取るものであり、(7)式で表すことができる。
【0113】
【数7】
しかしながら(7)式に示すところの0もしくは1の値を取る離散的なパラメータνは、ニューラルネットワークの学習に通常用いられる確率勾配法では学習することができない。これは離散的なパラメータνは勾配が伝播しないためである。そのためパラメータνのいずれの特徴チャンネルを有効にすればよいか学習することは難しい。
【0114】
この課題を解決するために、本発明の実施例4では、さらに緩和ベルヌーイ分布からパラメータνを学習中にサンプリングする。緩和ベルヌーイ分布は離散分布であるベルヌーイ分布を連続分布に緩和したものであり確率勾配降下法で学習が可能になる。また、Gumbel-softmaxという名称でも知られている。緩和ベルヌーイ分布を利用した際にはパラメータνは0.1や0.5など0から1の値を取る連続値がサンプリングされる。マスク層1304はサンプリングされたパラメータνを入力された特徴マップの対応するチャンネル全体に対して積を計算し出力する。そのため、学習中には認識に不要なチャンネルはパラメータνが確率勾配降下法によって徐々に小さい値になり、認識に重要なチャンネルはパラメータνが徐々に大きい値になる。マスク層1304はパラメータνをサンプリングするために緩和ベルヌーイ分布のロジットを学習する。このロジットはベルヌーイ分布のロジットと同様のパラメータである。ロジットが大きい値の場合にはベルヌーイ分布では1が生成される確率が高くなるが、緩和ベルヌーイ分布では1に近い値が生成される確率が高くなる。学習終了後の推論時には緩和ベルヌーイ分布のロジットが所定の値より大きい特徴チャンネルのみ用いることで少ない演算量で認識精度を落とさず認識処理を行うことができる。すなわちマスク層1304の出力は(8)式のようになる。
【0115】
【数8】
ここでν´は(9)式の通りロジットlと温度tをパラメータに持つ緩和ベルヌーイ分布RBからサンプリングされた値で0から1の間の連続的な変数となる。このようにすればロジットlを確率勾配降下法で学習することが可能となり、枝刈りを行う特徴チャンネル単位でのマスクを学習できる。
【0116】
【数9】
緩和ベルヌーイ分布の内、有効なチャンネル数が所定の値以下になるように学習することで重要な特徴チャンネルのみロジットが大きくなり、認識に寄与しないパラメータはロジットが小さくなるように学習できる。これにより学習終盤では少ない特徴チャンネルで学習している状態になるため、
図2で示した枝刈り後の再学習と同様の状況となる。そのため再学習不要でロジットの大きい特徴チャンネルのみ利用することで認識精度を落とすことなく枝刈りを実施することが可能となる。ここで有効なチャンネル数が所定の値以下になるような学習とは、ニューラルネットワーク全体が持つ緩和ベルヌーイ分布の上位何割かのロジットはロジットが大きくなるように、残りのチャンネルはロジットが小さくなるように学習する方法であり、例えばロジットの上位何割かに対応する特徴チャンネルでは1の生成確率が高い値に設定されたベルヌーイ分布とのカルバック・ライブラ情報量を最小化することなどで行われる。すなわち(10)式のように学習時の損失関数にロジットに関する項を加える。
【0117】
【数10】
ここで(10)式の第3項は緩和ベルヌーイ分布RB(l、t)と同じロジットを持つベルヌーイ分布B(l)とロジットの上位何割かと対応する要素が大きな値となるylをロジットとするB(yl)とのカルバック・ライブラ情報量である。
【0118】
またマスク層1304による枝刈り処理は重要パラメータ特定部と組み合わせず単独で適用してもよい。
【0119】
またマスク層の追加によって得られる緩和ベルヌーイ分布のロジットの値を、重要パラメータ特定部304で評価する重要度として用いて
図6に示した構成による学習処理を行ってもよい。この場合もロジットの値が大きい特徴チャンネル程、チャンネル単位で削除した際にニューラルネットワークの認識性能に与える影響が大きいとみなすことができる。
【0120】
また実施例3に示した構成にマスク層を適用する場合は、部分的再初期化部1101の再初期化を行う際にニューラルネットワークに関する重みは通常と同様の初期化方法を用いて初期化し、マスク層のロジットを通常より小さい値で初期化する。これにより再初期化されたパラメータに関しては他のネットワークより枝刈りしやすい形で初期化ができる。
【実施例5】
【0121】
実施例5では、複雑なネットワーク構造を持つニューラルネットワークに対するマスク層の適用方法について説明する。
【0122】
図15は複雑なネットワーク構造を持つニューラルネットワークに対するマスク層の適用方法について示した図である。
【0123】
Residual ShortcutやResidual connectionと呼ばれる構造を持つニューラルネットワークでは、
図15に示したように複数の畳み込み層が同じ特徴マップを共有する。例えば入力1401は畳み込み層1402-a及び1402-bが適用され同じ次元の3次テンソルとなり和がとられる。この二つの畳み込み層の出力の和は畳み込み層1402-cが適用され、自身との和が計算される。さらに畳み込み層1402-dが適用され自身との和が計算され、出力1403となる。ここでは簡単のため畳み込み層以外の正規化層、マスク層、活性化層は省略したが、各畳み込み層に付随して適用してもよい。このように複数の畳み込み層1402-a~dが同じ特徴マップを共有する場合、枝刈りを効率的に行えない場合がある。
【0124】
これに対し
図16は、
図15に示した複雑なネットワーク構造を持つニューラルネットワークにおいて共有される畳み込み層1402-a~dの4つの層で共有される4つのチャンネルの認識における有効度合いと実際に枝刈り可能なチャンネルの関係を示した図である。
表の1段目チャンネル番号1404は各畳み込み層1402-a~dの4特徴チャンネルの番号を示している。有効特徴チャンネル1405-a~dは各畳み込み層1402-a~dで有効とされた特徴チャンネルを示す。ここで有効とされた特徴チャンネルとはマスク層1304の持つロジットが閾値以上の特徴チャンネルである。有効特徴チャンネル1405-a~dは該当するチャンネル番号のロジットが閾値以上の場合、有効な特徴チャンネルとして対応するマスに1が、有効な特徴チャンネルでない場合は0が記載されている。例えば有効特徴チャンネル1405-aはチャンネル番号1および4と対応するマスク層1304のロジットの1番目と4番目の要素が閾値以上であり、認識処理に重要な特徴チャンネルである。
【0125】
論理和1406は特徴マップを共有する畳み込み層の有効特徴チャンネル1405-a~dの論理和である。チャンネル番号3のみが全ての畳み込み層1402-a~dで有効でないので0となり、他のチャンネル番号では畳み込み層1402-a~dのいずれかで有効な特徴チャンネルとなっているため1が記載されている。このようなケースでは、いずれの特徴チャンネルもいずれかの畳み込み層では有効でない場合が存在するが、チャンネル番号3のように共有される畳み込み層1402-a~dの全てで有効でないチャンネルしか演算処理を削除することができない。そのため、多くの演算を削除することが難しい。
【0126】
従来の枝刈り手法は畳み込み層のパラメータの値や各パラメータの重要度で枝刈りするパラメータを評価していたため、特徴マップを共有する複数の畳み込み層で枝刈りする特徴チャンネルを一致させることが難しかった。
【0127】
マスク層1403は複雑なネットワークを持つ層に対しても効率的に枝刈りを行う特徴チャンネルを決定できる。これは特徴マップを共有する畳み込み層に付随するマスク層1304の緩和ベルヌーイ分布のロジットが同一の値をとるようにすることで行われる。これは例えば、畳み込み層1402-a~dに付随するマスク層のロジットを同じパラメータを利用することや、各ロジット間のカルバックライブラ情報量が小さくなるように学習することで行う。これ以外にも複数のロジットの平均や最大値などの統計量とのカルバックライブラ情報量が小さくなるようにしてもよいし、論理和1406のように複数のロジットの示す有効特徴チャンネルの論理和をパラメータνが1をとる確率とみなしたベルヌーイ分布とのカルバックライブラ情報量が小さくなるようにしてもよい。
【実施例6】
【0128】
実施例6では、本発明の学習処理装置に好適なモニタ画面の構成例について説明する。
図17は軽量モデルの学習を実施するための画面の構成を示した図である。
図17の画面構成例では、各種の設定部と実行部と結果表示部により構成される。各種の設定部は、1501から1507の設定要因で構成されている。
【0129】
設定部のうち、学習データセット設定部1501は学習データセット301Bに関する設定を行う領域である。ここでは所定のフォーマットで格納された記憶領域を指定することでデータを読み込む。評価データセット設定部1502は評価データセット504に関する設定を行う領域である。ここでは学習データセット設定部1501と同様の設定を行う。学習条件設定部1503は学習部(新モデル生成部)306がニューラルネットワークを学習する際の条件を設定する領域である。これは例えば学習時のパラメータ更新回数に関するものであったり、学習率スケジュール、weight decayの係数、各種損失関数の係数であったりする。
【0130】
ネットワーク構造設定部1504は学習するネットワーク構造303に関する設定を行う領域である。ここで学習対象の認識処理に応じて適切なネットワーク構造303を操作者が選択する。事前学習モデル設定部1505は事前学習モデル302Aを設定する領域である。ここでは操作者が事前学習モデルを一つ選択、もしくは指定する。
【0131】
枝刈りパラメータ設定部1506は枝刈りに関するパラメータを設定する領域である。マスク層1304を用いた枝刈りの場合では緩和ベルヌーイ分布のロジットの初期値やロジットを決定するマスク確率の初期値、マスク層1304に関する損失関数の係数などを設定する。また、一般にニューラルネットワークの学習において、初期ではエッジや曲線などの原始的な画像特徴が学習され、徐々に認識性能を向上させるために重要な複雑な特徴が学習されていく。そのため、学習初期からマスク層に関する損失関数を強く設定したり、多くの特徴チャンネルが有効にならないような設定では学習が難しい場合がある。そのため、学習初期ではマスクの損失関数の係数を極小さな値にしてもよいし、マスク層1304のロジットの内上位何割が有効となることを許容するかを決定するマスク目標値は学習が進むにつれて徐々に緩和してもよい。例えば、学習の初期30%はマスク損失関数の係数をゼロにしたり、学習の初期50%ではネットワーク全体の特徴チャンネルの内10%のみ有効、学習の進捗75%までは20%までの特徴チャンネルが有効、学習終了までは30%の特徴チャンネルが有効となるように学習してもよい。
【0132】
重要パラメータ特定条件設定部1507は重要パラメータ特定部304の処理条件に関する設定を行う領域である。ここでは例えば重要度の評価関数として、ヘッセ行列とパラメータの行列積、ヘッセ行列の対角成分とパラメータベクトルの要素積、勾配情報とパラメータベクトルの要素積の絶対値、ヘッセ行列の代替としてK-FACをもちいる、マスク層を用いるなどの条件を設定する。また転移を行うパラメータの割合や部分的再初期化の実行有無、実行手法を設定する。
【0133】
次に、実行部は、重要度評価実行部1508と学習結果表示部1510により構成されている。ここでは、重要度評価実行部1508が操作者によって選択されると重要パラメータ特定部304が動作し、設定された事前学習モデル302の各パラメータの重要度評価を行う。軽量モデル作成実行部1509が操作者によって選択されると学習部306が動作し、設定された条件に従ってステップS604から学習フローを開始する。
【0134】
学習結果表示部1510は学習結果に関する情報を表示する領域である。ここでは例えば達成した認識性能や得られた軽量モデルの推論に必要な時間、学習時間に対する認識性能及び有効特徴チャンネル数の変化を表示する。また重要度評価実行部1508が選択され評価が完了した時点で、重要度のヒストグラムを表示してもよい。
【0135】
操作者はこれらの情報を用いて所望の認識性能、推論速度を達するまで各パラメータを調整する。
【0136】
図18は、複数の事前学習モデルの候補に対する重要度評価を実施するための画面の構成を示した図である。この場合にも画面は、設定部と実行部と結果表示部により構成される。
【0137】
操作者はこの画面を用いて
図17で示した軽量モデル505の学習に用いる事前学習モデルを決定する。学習データセット設定部1501、ネットワーク構造設定部1504、重要パラメータ特定条件設定部1507は
図17と同様である。
【0138】
評価事前学習モデル設定部1601は重要度を評価する事前学習モデルを設定する。
図8及び
図9では事前学習モデル候補抽出部802が抽出した事前学習モデルの候補を全て評価する例で記載したが、評価時間の短縮のため操作者が評価事前学習モデル設定部1601で重要度評価を行うモデルを選択してもよい。また、ここでは事前学習モデル候補抽出部802が抽出した事前学習モデルをユーザに提示してもよい。
【0139】
重要度評価一括実行部1602が操作者によって選択されると、
図10記載の重要度評価フローのステップS903から処理を開始する。
【0140】
事前学習モデル評価結果表示部1603は各事前学習モデルの評価結果を表示する。ここでは
図8で示した表と選択された事前学習モデルの重要度のヒストグラムを表示する例を記載した。
【0141】
以上の画面構成を採用した本発明によれば軽量モデル505を効率的に学習することが可能となる。
【0142】
本発明は上記実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換える事が可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について他の構成の追加・削除・置換をすることができる。
【符号の説明】
【0143】
101:入力画像、102(102-1,102-2,102-3,102-4):画像処理部(学習モデル)、103(103-1,103-2,103-3,103-4):処理結果部、102´(102-1,102´-2,102´-3):画像処理部(環境別モデル)、103´(103´-1,103´-2,103´-3):処理結果部、201:従来の枝刈りにおける学習処理、202:従来の枝刈りにおける枝刈り処理、203:従来の枝刈りにおける再学習処理、204:従来の枝刈りによるニューラルネットワークの構成例、301(301A,301B):学習データセット、302:事前学習済みモデル、303:枝刈りしていないニューラルネットワーク、304:重要パラメータ特定部、305:抽出された重要パラメータによって構成されるニューラルネットワーク、306:新モデル生成部、307:学習処理、401、402:学習曲線、503:モデル評価部、504:評価データセット、700:重要度評価テーブル、701:事前学習モデル種別、702:事前学習データセット、703:重要度総和、704:枝刈り後重要度総和、801:学習済みモデル記憶部、802:事前学習モデル候補抽出部、803:事前学習モデル選択部、804:重要度評価結果記憶部、1001:部分的再初期化処理部、1002:部分的再初期化されたニューラルネットワーク、1003:枝刈り処理部、1004:枝刈りされたニューラルネットワーク、1301:畳み込み層への入力、1302:畳み込み層、1303:正規化層、1304:マスク層、1305:活性化層、1306:一連の畳み込み層の出力、1401:複雑なネットワーク構造を持つニューラルネットワークへの入力、1402-a~d:複雑なネットワーク構造を持つニューラルネットワークにおける複数の畳み込み層、1403:複雑なネットワーク構造を持つニューラルネットワークの出力