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

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

▶ 株式会社ソシオネクストの特許一覧

<>
  • 特許-ニューラルネットワーク導出方法 図1
  • 特許-ニューラルネットワーク導出方法 図2
  • 特許-ニューラルネットワーク導出方法 図3
  • 特許-ニューラルネットワーク導出方法 図4
  • 特許-ニューラルネットワーク導出方法 図5
  • 特許-ニューラルネットワーク導出方法 図6
  • 特許-ニューラルネットワーク導出方法 図7
  • 特許-ニューラルネットワーク導出方法 図8
  • 特許-ニューラルネットワーク導出方法 図9
  • 特許-ニューラルネットワーク導出方法 図10
  • 特許-ニューラルネットワーク導出方法 図11
  • 特許-ニューラルネットワーク導出方法 図12
  • 特許-ニューラルネットワーク導出方法 図13
  • 特許-ニューラルネットワーク導出方法 図14
  • 特許-ニューラルネットワーク導出方法 図15
  • 特許-ニューラルネットワーク導出方法 図16
  • 特許-ニューラルネットワーク導出方法 図17
  • 特許-ニューラルネットワーク導出方法 図18
  • 特許-ニューラルネットワーク導出方法 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】ニューラルネットワーク導出方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20241126BHJP
【FI】
G06N20/00
【請求項の数】 26
(21)【出願番号】P 2020190347
(22)【出願日】2020-11-16
(65)【公開番号】P2021125223
(43)【公開日】2021-08-30
【審査請求日】2023-10-16
(31)【優先権主張番号】P 2020018469
(32)【優先日】2020-02-06
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】514315159
【氏名又は名称】株式会社ソシオネクスト
(74)【代理人】
【識別番号】100189430
【弁理士】
【氏名又は名称】吉川 修一
(74)【代理人】
【識別番号】100190805
【弁理士】
【氏名又は名称】傍島 正朗
(72)【発明者】
【氏名】笹川 幸宏
【審査官】宮司 卓佳
(56)【参考文献】
【文献】特開平08-305855(JP,A)
【文献】廣瀬一俊 ほか,量子化誤差を考慮したニューラルネットワークの学習手法,第104回人工知能基本問題研究会資料,日本,一般社団法人人工知能学会,2017年08月01日,pp.1-4(SIG-FPAI-B507-01)
【文献】栗田多喜夫他,多層パーセプトロンの学習における中間層に付加したノイズの影響とネットワークの構造化,電子情報通信学会論文誌 (J79-D-II) 情報・システムII-情報処理,第J79-D-II巻第2号,日本,社団法人電子情報通信学会,1996年02月25日,p.257-p.266
【文献】石井真樹他 ,パターンの変動を考慮した階層型ニューラルネットワークの汎化能力改善学習法,電子情報通信学会技術研究報告 NC2000-133,日本,社団法人電子情報通信学会,2001年03月08日,第100巻,第687号,p.39-p.46
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータが実行する方法であって、
第1のパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、
前記第1学習ステップの後に、前記第1のニューラルネットワークを、前記第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、
を含み、
前記正則化項は、
前記第1のニューラルネットワークに基づいて前記第1のパラメータに変動を加えた第2のパラメータを持つ第2のニューラルネットワークが導出された後、前記第1のニューラルネットワークと前記第2のニューラルネットワークとの内部特徴量または推論値の相互関係に基づいて決定される、
ニューラルネットワーク導出方法。
【請求項2】
コンピュータが実行する方法であって、
第1の重みパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、
前記第1学習ステップの後に、前記第1のニューラルネットワークを、前記第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、
を含み、
前記正則化項は、
前記第1のニューラルネットワークと、前記第1のニューラルネットワークに基づいて前記第1の重みパラメータに変動を加えた第2の重みパラメータを持つ第2のニューラルネットワークとの関係に基づいて決定される、
ニューラルネットワーク導出方法。
【請求項3】
コンピュータが実行する方法であって、
第1のパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、
前記第1学習ステップの後に、前記第1のニューラルネットワークを、前記第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、
を含み、
前記正則化項は、前記第1のニューラルネットワークと、前記第1のニューラルネットワークに基づいた第2のニューラルネットワークとの関係に基づいて決定され、
前記第2のニューラルネットワークは、前記第1のニューラルネットワークに対し、さらに、少なくとも1つのレイヤの入力が、前段レイヤの出力である特徴量に変動を加えたものとなる構成を有する、
ニューラルネットワーク導出方法。
【請求項4】
前記正則化項は、前記第1のニューラルネットワークの第1の推論値と前記第2のニューラルネットワークの第2の推論値との類似度の時系列での変化に基づいて決定される、
請求項1に記載のニューラルネットワーク導出方法。
【請求項5】
前記正則化項は、前記第1のニューラルネットワークの最終レイヤを除く少なくとも1つのレイヤの出力の特徴量と前記第2のニューラルネットワークの対応するレイヤの出力の特徴量との類似度に基づいて決定される、
請求項1に記載のニューラルネットワーク導出方法。
【請求項6】
前記正則化項は、前記類似度が高くなると小さく、前記類似度が低くなると大きくなるように決定される、
請求項4または5に記載のニューラルネットワーク導出方法。
【請求項7】
さらに、前記第1学習ステップと前記第2学習ステップとの間に前記正則化項を決定するための識別器の学習を行う第1の正則化項学習ステップを含み、
前記第1の正則化項学習ステップでは、
前記第1のパラメータおよび前記第2のパラメータを前記識別器への入力とし、
前記第1の推論値と前記第2の推論値とから求められる第1の期待値を用いて前記識別器の学習が行われる、
請求項4に記載のニューラルネットワーク導出方法。
【請求項8】
前記第1の期待値は、
前記第1の推論値に対しては、常にS(S>0)とされ、
前記第2の推論値に対しては、前記第2の推論値を時系列で見たときに、1つ前の前記第2の推論値に対して前記類似度が高くなっている場合には-Sとされ、前記類似度が高くなっていない場合には0とされる、
請求項7に記載のニューラルネットワーク導出方法。
【請求項9】
前記第1の正則化項学習ステップでは、前記第1のパラメータに基づいて算出された第1の特徴量および前記第2のパラメータに基づいて算出された第2の特徴量のそれぞれを入力とする第3のロス関数を用いて前記識別器の学習が行われる、
請求項7または8に記載のニューラルネットワーク導出方法。
【請求項10】
前記第3のロス関数は、Triplet Loss関数であり、
基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる前記第1の特徴量が設定され、
ポジティブ側の特徴量として、N回目の学習で得られる前記第1の特徴量が設定され、
ネガティブ側の特徴量として、N回目の学習で得られる前記第2の特徴量が設定される、
請求項9に記載のニューラルネットワーク導出方法。
【請求項11】
前記第1のパラメータは、第1の数値表現で表され、
前記第2のパラメータは、前記第1のパラメータを第2の数値表現に変換することによって得られる、
請求項4~10いずれか1項に記載のニューラルネットワーク導出方法。
【請求項12】
前記第1の数値表現はfloat値からなる実数であり、前記第2の数値表現は整数であり、
前記第2のパラメータは、前記第1のパラメータを量子化することによって得られる、
請求項11に記載のニューラルネットワーク導出方法。
【請求項13】
さらに、前記第1学習ステップと前記第2学習ステップとの間に前記正則化項を決定するための識別器の学習を行う第2の正則化項学習ステップを含み、
前記第2の正則化項学習ステップでは、
第1の入力データおよび第2の入力データを前記識別器への入力とし、
前記第1の入力データを前記第1のニューラルネットワークに入力したときの前記第1のニューラルネットワークの第3の推論値と、前記第1の入力データに変動を加えた第2の入力データを前記第2のニューラルネットワークに入力したときの前記第2のニューラルネットワークの第4の推論値と、から求められる第2の期待値を用いて前記識別器の学習が行われる、
請求項4~12のいずれか1項に記載のニューラルネットワーク導出方法。
【請求項14】
前記第2の期待値は、
前記第3の推論値に対しては、常にS(S>0)とされ、
前記第4の推論値に対しては、前記第4の推論値を時系列で見たときに、1つ前の前記第4の推論値に対して類似度が高くなっている場合には-Sとされ、前記類似度が高くなっていない場合には0とされる、
請求項13に記載のニューラルネットワーク導出方法。
【請求項15】
前記第2の正則化項学習ステップでは、前記第1のパラメータおよび前記第1の入力データに基づいて算出された第3の特徴量、ならびに、前記第2のパラメータおよび前記第2の入力データに基づいて算出された第4の特徴量のそれぞれを入力とする第4のロス関数を用いて前記識別器の学習が行われる、
請求項13または14に記載のニューラルネットワーク導出方法。
【請求項16】
前記第4のロス関数は、Triplet Loss関数であり、
基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる前記第3の特徴量が設定され、
ポジティブ側の特徴量として、N回目の学習で得られる前記第3の特徴量が設定され、
ネガティブ側の特徴量として、N回目の学習で得られる前記第4の特徴量が設定される、
請求項15に記載のニューラルネットワーク導出方法。
【請求項17】
前記第1の入力データは、第3の数値表現で表され、
前記第2の入力データは、前記第3の数値表現と異なる第4の数値表現で表される、
請求項13~16のいずれか1項に記載のニューラルネットワーク導出方法。
【請求項18】
前記第3の数値表現はfloat値からなる実数であり、前記第4の数値表現は整数である、
請求項17に記載のニューラルネットワーク導出方法。
【請求項19】
コンピュータが実行する方法であって、
第1の入力データが入力される第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、
前記第1学習ステップの後に、前記第1のニューラルネットワークを、前記第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、
を含み、
前記正則化項は、前記第1のニューラルネットワークに基づいて前記第1の入力データに変動を加えた第2の入力データが入力される第2のニューラルネットワークが導出された後、前記第1のニューラルネットワークの第5の推論値と前記第2のニューラルネットワークの第6の推論値との類似度の時系列での変化に基づいて決定される、
ニューラルネットワーク導出方法。
【請求項20】
前記正則化項は、前記類似度が高くなると小さく、前記類似度が低くなると大きくなるように決定される、
請求項19に記載のニューラルネットワーク導出方法。
【請求項21】
さらに、前記第1学習ステップと前記第2学習ステップとの間に前記正則化項を決定するための識別器の学習を行う第3の正則化項学習ステップを含み、
前記第3の正則化項学習ステップでは、
前記第1の入力データおよび前記第2の入力データを前記識別器への入力とし、
前記第5の推論値と前記第6の推論値とから求められる第3の期待値を用いて前記識別器の学習が行われる、
請求項19または20に記載のニューラルネットワーク導出方法。
【請求項22】
前記第3の期待値は、
前記第5の推論値に対しては、常にS(S>0)とされ、
前記第6の推論値に対しては、前記第6の推論値を時系列で見たときに、1つ前の前記第6の推論値に対して前記類似度が高くなっている場合には-Sとされ、前記類似度が高くなっていない場合には0とされる、
請求項21に記載のニューラルネットワーク導出方法。
【請求項23】
前記第3の正則化項学習ステップでは、前記第1の入力データに基づいて算出された第5の特徴量および前記第2の入力データに基づいて算出された第6の特徴量のそれぞれを入力とする第5のロス関数を用いて前記識別器の学習が行われる、
請求項21または22に記載のニューラルネットワーク導出方法。
【請求項24】
前記第5のロス関数は、Triplet Loss関数であり、
基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる前記第5の特徴量が設定され、
ポジティブ側の特徴量として、N回目の学習で得られる前記第5の特徴量が設定され、
ネガティブ側の特徴量として、N回目の学習で得られる前記第6の特徴量が設定される、
請求項23に記載のニューラルネットワーク導出方法。
【請求項25】
前記第1の入力データは、第3の数値表現で表され、
前記第2の入力データは、前記第3の数値表現と異なる第4の数値表現で表される、
請求項19~24のいずれか1項に記載のニューラルネットワーク導出方法。
【請求項26】
前記第3の数値表現はfloat値からなる実数であり、前記第4の数値表現は整数である、
請求項25に記載のニューラルネットワーク導出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ニューラルネットワークを導出するニューラルネットワーク導出方法に関する。
【背景技術】
【0002】
入力されたデータに対する識別または分類を行うために、ニューラルネットワークで構成される推論モデルが用いられる。この推論モデルを生成する方法の一例として、特許文献1には、ニューラルネットワークを学習用のデータセットで学習し、推論モデルを生成する方法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特表2018-525734号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
この推論モデルを実際に使用する場合、ニューラルネットワークが持つパラメータまたはニューラルネットワークに入力される入力データが変動することにより、間違った推論値が出力される場合がある。
【0005】
本開示は、上述の事情を鑑みてなされたもので、ニューラルネットワークのパラメータまたは入力データの変動に対してロバスト性を有するニューラルネットワークを導出するニューラルネットワーク導出方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本開示の一形態に係るニューラルネットワーク導出方法は、コンピュータが実行する方法であって、第1のパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、前記第1学習ステップの後に、前記第1のニューラルネットワークを、前記第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、を含み、前記正則化項は、前記第1のニューラルネットワークに基づいて前記第1のパラメータに変動を加えた第2のパラメータを持つ第2のニューラルネットワークが導出された後、前記第1のニューラルネットワークと前記第2のニューラルネットワークとの内部特徴量または推論値の相互関係に基づいて決定される。
【0007】
上記目的を達成するために、本開示の一形態に係るニューラルネットワーク導出方法は、コンピュータが実行する方法であって、第1の重みパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、前記第1学習ステップの後に、前記第1のニューラルネットワークを、前記第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、を含み、前記正則化項は、前記第1のニューラルネットワークと、前記第1のニューラルネットワークに基づいて前記第1の重みパラメータに変動を加えた第2の重みパラメータを持つ第2のニューラルネットワークとの関係に基づいて決定される。
【0008】
上記目的を達成するために、本開示の一形態に係るニューラルネットワーク導出方法は、コンピュータが実行する方法であって、第1のパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、前記第1学習ステップの後に、前記第1のニューラルネットワークを、前記第1のロス関数に正則化項を加えた第2のロス関数を指標として学習す
る第2学習ステップと、を含み、前記正則化項は、前記第1のニューラルネットワークと、前記第1のニューラルネットワークに基づいた第2のニューラルネットワークとの関係に基づいて決定され、前記第2のニューラルネットワークは、前記第1のニューラルネットワークに対し、さらに、少なくとも1つのレイヤの入力が、前段レイヤの出力である特徴量に変動を加えたものとなる構成を有する。
【0009】
上記目的を達成するために、本開示の一形態に係るニューラルネットワーク導出方法は、コンピュータが実行する方法であって、第1の入力データが入力される第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、前記第1学習ステップの後に、前記第1のニューラルネットワークを、前記第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、を含み、前記正則化項は、前記第1のニューラルネットワークに基づいて前記第1の入力データに変動を加えた第2の入力データが入力される第2のニューラルネットワークが導出された後、前記第1のニューラルネットワークの第5の推論値と前記第2のニューラルネットワークの第6の推論値との類似度の時系列での変化に基づいて決定される。
【0010】
なお、これらの全般的または具体的な態様は、装置、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【0011】
本開示により、ニューラルネットワークのパラメータまたは入力データの変動に対してロバスト性を有するニューラルネットワークを導出できる。
【図面の簡単な説明】
【0012】
図1図1は、ニューラルネットワークの重みパラメータが変動したときの推論値の精度の変化を模式的に示す図である。
図2図2は、推論値の精度を識別する識別器の機能を示す模式図である。
図3図3は、ニューラルネットワーク導出方法の概要を示すフローである。
図4図4は、実施の形態1において、ニューラルネットワークを導出するための導出モデルを示す図である。
図5図5は、実施の形態1に係るニューラルネットワーク導出方法を示すフローチャートである。
図6図6は、図5に続いて実行されるニューラルネットワーク導出方法を示すフローチャートである。
図7図7は、図4の導出モデルに含まれる識別学習モデルを示す模式図である。
図8図8は、実施の形態1に係るニューラルネットワーク導出方法を実現する装置の機能をソフトウェアにより実現するコンピュータのハードウェア構成の一例を示す図である。
図9図9は、実施の形態2において、ニューラルネットワークを導出するための導出モデルを示す図である。
図10図10は、実施の形態2に係るニューラルネットワーク導出方法を示すフローチャートである。
図11図11は、図10に続いて実行されるニューラルネットワーク導出方法を示すフローチャートである。
図12図12は、図9の導出モデルに含まれる識別学習モデルを示す模式図である。
図13図13は、実施の形態3において、ニューラルネットワークを導出するための導出モデルを示す図である。
図14図14は、実施の形態3に係るニューラルネットワーク導出方法を示すフローチャートである。
図15図15は、図10に続いて実行されるニューラルネットワーク導出方法を示すフローチャートである。
図16図16は、図13の導出モデルに含まれる識別学習モデルを示す模式図である。
図17図17は、実施の形態4において、ニューラルネットワークを導出する導出モデルを示す図である。
図18図18は、実施の形態4に係るニューラルネットワーク導出方法を示すフローチャートである。
図19図19は、実施の形態4における特徴量類似度の定義を示す図である。
【発明を実施するための形態】
【0013】
(本開示に至る経緯)
機械学習にて学習済の推論モデルをLSI(大規模集積回路)に実装することが増えてきている。一般に、学習時には実数値表現の重みパラメータが使われるが、実装時には学習時の重みパラメータを固定小数点表示などに量子化(離散化)した重みパラメータが使われる。量子化した重みパラメータを使うことで、実装時のハードウェアコストを抑制することができるが、一方で、量子化誤差による推論モデルの推論値の精度が劣化することがある。
【0014】
また、学習済の推論モデルの入力データに意図的なノイズを付加し、間違った推論をさせる手法が発表されている。例えば「DEFENSIVE QUANTIZATION:WHEN EFFICIENCY MEETS ROBUSTNESS、ICLR 2019」では、量子化により、アドバーサリアル・アタック(敵対的サンプルによる攻撃)に対する耐性が大幅に劣化することが発表されている。
【0015】
そこで、このような重みパラメータおよび入力データの変動に対して推論値の精度が左右されにくい、ロバスト性を有する推論モデルが求められる。以下では理解を容易にするため、重みパラメータおよび入力データのうち重みパラメータに着目して説明する。
【0016】
図1は、ニューラルネットワークの重みパラメータが変動したときの推論値の精度の変化を模式的に示す図である。図1の右側には、重みパラメータが変動することによって推論値の精度が大きく変化する例が示され、図1の左側には重みパラメータが変動しても推論値の精度がそれほど変化しない例が示されている。推論モデルのロバスト性という観点では、図1の左側に示すように、重みパラメータが変動しても推論値の精度が劣化しにくいことが望ましい。
【0017】
例えば、ロス関数のみを指標としてニューラルネットワークの学習を行うと、図1の右側に示すようにロバスト性の低い推論モデルが生成されることがある。そこで本開示では、推論モデルを生成する際に、ロス関数に正則化項を加えたものを指標として学習を行う。この正則化項は、ニューラルネットワークで使われる重みパラメータが、推論値の精度を変化させやすい性質の重みパラメータになることを防ぐためのものである。例えば本開示ではニューラルネットワークの学習を行う際に、「ロス関数+正則化項」の値を小さくするように重みパラメータを更新し、推論モデルを生成する。これによれば、実装時に重みパラメータを量子化した場合であっても、推論値の精度が大きく劣化することを抑制できる。
【0018】
上記「ロス関数+正則化項」の正則化項は、推論値の精度が劣化する場合は大きく、推論値の精度が向上する場合は小さくなるように決定される。ここで、推論値の精度が劣化するかまたは向上するかをどのように識別するかについて検討する。
【0019】
図2は、推論値の精度を識別する識別器の機能を示す模式図である。図2には、量子化すると推論値の精度が劣化する重みパラメータ(図2の下側領域)と、量子化しても推論値の精度が劣化しにくい重みパラメータ(図2の上側領域)とが、識別器が有する機能によって分類されている様子が示されている。このような識別器を生成することができれば、未知の重みパラメータが推論値の精度を劣化させるか否かを識別することができ、この識別結果に基づいて正則化項を大きくするか小さくするかを決めることができる。
【0020】
図3は、ニューラルネットワーク導出方法の概要を示すフローである。本開示では、まず、学習データセットを用いてニューラルネットワークの学習を行う。次に、このニューラルネットワークの重みパラメータを用いて識別器の学習を行い、識別器を生成する。次に、この識別器から正則化項を導出し、正則化項が反映された「ロス関数+正則化項」を指標として、再びニューラルネットワークの学習を行う。そして、ニューラルネットワークの学習と識別器の学習とを繰り返すことで推論モデルを生成する。このニューラルネットワーク導出方法によれば、重みパラメータの変動に対してロバスト性を有するニューラルネットワークを導出することが可能となる。
【0021】
以下、本開示の実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも本開示の一具体例を示す。以下の実施の形態で示される数値、形状、材料、規格、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序等は、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本開示の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また、各図は、必ずしも厳密に図示したものではない。各図において、実質的に同一の構成については同一の符号を付し、重複する説明は省略又は簡略化する場合がある。
【0022】
(実施の形態1)
[1-1.ニューラルネットワークを導出するための導出モデル]
まず、パラメータの変動に対してロバスト性を有するニューラルネットワークを導出するための導出モデルについて説明する。
【0023】
図4は、実施の形態1において、ニューラルネットワークを導出する導出モデル10を示す図である。図4に示すように、導出モデル10は、量子化前モデル20と、量子化後モデル30と、識別学習モデル40とによって構成されている。
【0024】
例えば、量子化前モデル20は、ある条件のもとで機械学習が実行されるモデルであり、量子化後モデル30は、最終的には、量子化前モデル20を量子化することで得られ、LSI等に実装される推論モデルとなる。識別学習モデル40は、推論値の精度を識別する識別器41を学習させるためのモデルである。量子化前モデル20、量子化後モデル30および識別器41のそれぞれは、ニューラルネットワークによって構成されている。また量子化前モデル20、量子化後モデル30、識別学習モデル40はそれぞれ学習の状態と推論の状態があり、推論の状態ではモデルの重みパラメータは固定されたものとなる。
【0025】
これらのモデルは、マルチレイヤ構造を有し、入力レイヤ、中間レイヤおよび出力レイヤなどによって構成されている。各レイヤは、ニューロンに相当する複数のノード(図示省略)を有している。ニューロン同士のつながりの強さは、重みパラメータで表現される。ニューラルネットワークは複数の重みパラメータを持つが、理解を容易にするため、以下では複数の重みパラメータのうちの1つの重みパラメータを例に挙げて説明する。
【0026】
量子化前モデル20は、重みパラメータ(第1のパラメータ)wを持つ第1のニューラルネットワークによって構成されている。重みパラメータwは、例えば、float(浮動小数点精度)値からなる実数などの第1の数値表現で表される。量子化前モデル20には、入力データzが入力される。入力データzは、学習データであり、各種の入力パターンがある。入力データzが入力された量子化前モデル20は、出力値として推論値xを出力する。量子化前モデル20は、入力データzを含む所定の学習データセットに基づいて機械学習が行われる。また識別器41の学習の際には重みパラメータwにΔwが加算された重みパラメータw+Δwで動作する。
【0027】
量子化後モデル30は、重みパラメータ(第2のパラメータ)wを持つ第2のニューラルネットワークによって構成されている。重みパラメータwは、量子化前モデル20の重みパラメータwを上記第1の数値表現とは異なる第2の数値表現に変換することによって得られる。第2の数値表現は、例えば整数などの固定小数点精度による数値表現である。具体的には、重みパラメータwは、重みパラメータwにΔwが加算された重みパラメータw+Δwを量子化することによって得られる。したがって重みパラメータwは、重みパラメータwに変動を加えた値に更に量子化誤差が加えられた値となっている。量子化後モデル30には、入力データzが入力される。入力データzが入力された量子化後モデル30は、出力値として推論値G(z)を出力する。
【0028】
識別学習モデル40は、推論値の精度を識別する識別器41を学習するためのモデルであり、識別器41等を有している。
【0029】
識別器41には、量子化前の重みパラメータw+Δw、量子化後の重みパラメータwのそれぞれが入力される。識別器41は、重みパラメータw+Δwに対応して推論値D(w+Δw)を出力し、重みパラメータwに対応して推論値D(w)を出力する。
【0030】
識別学習モデル40には、量子化前モデル20の推論値(第1の推論値)x、量子化後モデル30の推論値(第2の推論値)G(z)のそれぞれが入力される。識別学習モデル40は、入力された推論値x、推論値G(z)と上記の推論値D(w+Δw)、D(w)とを対比し、バックプロパゲーションを行うことで、識別器41を学習させる。そして識別学習モデル40は、学習済の識別器41によって、前述した正則化項を導出する。識別学習モデル40によって導出された正則化項は、量子化前モデル20の第1のニューラルネットワークを再び学習する際に用いられる。識別学習モデル40については、後で詳しく説明する。
【0031】
[1-2.ニューラルネットワーク導出方法]
次に、上記導出モデル10を用いてニューラルネットワークを導出する方法について説明する。
【0032】
図5は、本実施の形態に係るニューラルネットワーク導出方法を示すフローである。
【0033】
ニューラルネットワーク導出方法は、第1学習ステップS10と、正則化項学習ステップ(第1の正則化項学習ステップ)S11と、第2学習ステップS20と、を含む。
【0034】
第1学習ステップS10は、量子化前モデル20の第1のニューラルネットワークを学習するステップである。第1学習ステップS10は、図5の(a)の破線内で実行される。このステップでは、第1のロス関数を指標とし、所定の学習データセットを用いて第1のニューラルネットワークの学習が行われる。第1学習ステップS10により、第1のニューラルネットワークにおける重みパラメータwがいったん求められる。
【0035】
正則化項学習ステップS11は、前述した正則化項を導出するために学習を行うステップである。正則化項学習ステップS11は、量子化後モデル30を生成するステップS12と、識別器41を学習するステップS13と、識別器41から正則化項を導出するステップS14とを含む。
【0036】
量子化後モデル30を生成するステップS12は、第1のニューラルネットワークに基づいて、重みパラメータwを持つ第2のニューラルネットワークを導出するステップである。このステップS12は、図5の(b)の破線内で実行される。重みパラメータwは、重みパラメータw+Δwにさらに変動が加えられた値を量子化したものであり、例えば、重みパラメータw+Δwを量子化することで求められる。
【0037】
識別器41を学習するステップS13は、図5の(c)および(d)のそれぞれの破線内の系で実行されるステップである。ここで、図5の(c)に示す破線内の系を量子化前モデル側の系41aと呼び、図5の(d)に示す破線内の系を量子化後モデル側の系41bと呼ぶ。
【0038】
図5の(c)に示すように、量子化前モデル側の系41aでは、重みパラメータw+Δwが識別器41に入力される。Δwは、学習を行う際のサンプル数を増やすことにもなり、例えば、量子化ステップの半分を最大値として、乱数で与えられる。重みパラメータw+Δwが入力された識別器41からは、推論値D(w+Δw)が出力される。また、識別学習モデル40には、量子化前モデル20および量子化後モデル30の出力である推論値x、G(z)が入力される。識別学習モデル40は、この推論値xと推論値G(z)との類似度の時系列での変化に基づいて、推論値D(w+Δw)の精度が向上するように識別器41を学習させる。
【0039】
ここでいう類似度は、2つの推論値x、G(z)の似ている度合を示すものである。類似度が高いということは、推論値の精度が高いことになる。類似度としては、例えば(式1)に示すようなcos類似度が用いられる。なお(式1)では、推論値x、G(z)をベクトル化(Tensor shapeを一次元化)したものを、V、VGzとしている。
【0040】
【数1】
【0041】
このように量子化前モデル側の系41aでは、量子化前モデル20が固定された状態で、識別器41が学習される。
【0042】
図5の(d)に示すように、量子化後モデル側の系41bでは、量子化後モデル30の重みパラメータw(w=quantizer(w+Δw))が、識別器41に入力される。重みパラメータwが入力された識別器41からは、推論値D(w)が出力される。識別学習モデル40は、入力された推論値xと推論値G(z)との類似度の時系列での変化に基づいて、推論値D(w)の精度が向上するように識別器41を学習させる。このように量子化後モデル側の系41bでは、量子化後モデル30が固定された状態で、識別器41が学習される。
【0043】
なお、上記の量子化前モデル側の系41aおよび量子化後モデル側の系41bにおける重みは共通化(量子化前モデル側の系41aでの重みパラメータを量子化したものが、量子化後モデル側の系41bの重みパラメータとなっている)されており、また、これらの系41a、41bによる識別器41の学習は同時に実行される。
【0044】
正則化項を導出するステップS14は、識別器41を用いて正則化項を導出するステップである。正則化項は、推論値xと推論値G(z)との類似度の大きさに対して負の相関があり、例えば時系列でみて、上記類似度が高くなると小さく、上記類似度が低くなると大きくなるように決定される。識別器41から導出された正則化項は、量子化前モデル20の第1のニューラルネットワークの学習に反映される。
【0045】
第2学習ステップS20は、第1のロス関数に正則化項を加えた第2のロス関数(第2のロス関数=第1のロス関数+正則化項)を指標として、第1のニューラルネットワークを学習するステップである。第2学習ステップS20も、図5の(a)の破線内で実行され、第1学習ステップS10と同様に所定の学習データセットが用いられる。第2学習ステップS20による学習は、識別学習モデル40を固定した状態で行われる。第2学習ステップS20により、第1のニューラルネットワークの重みパラメータwが更新される。
【0046】
図6は、図5に続いて実行されるニューラルネットワーク導出方法を示すフローチャートである。このニューラルネットワーク導出方法では、第2学習ステップS20の後に、正則化項学習ステップS11と同様の正則化項学習ステップS11Aが実行される。正則化項学習ステップS11Aは、前述した量子化後モデル30を生成するステップS12と、識別器41を学習するステップS13と、識別器41から正則化項を導出するステップS14とを含む。
【0047】
そして本実施の形態のニューラルネットワーク導出方法では、第2学習ステップS20および正則化項学習ステップS11Aを繰り返すことで、ロバスト性を有する第1のニューラルネットワークが生成される。また、上記繰り返しによって生成された第1のニューラルネットワークの重みパラメータwを量子化することで、重みパラメータwを持ち、ロバスト性を有する第2のニューラルネットワークが生成される。
【0048】
これらの学習は、識別器41の学習レベルが予め決められたレベル以上となったときに終了される。また、これらの学習は、上記推論値xと推論値G(z)との類似度が予め決められた閾値以上となったときに終了されてもよい。
【0049】
なお、上記では第2学習ステップS20と正則化項学習ステップS11Aとを交互に繰り返すイタレーション例(S20→S11A→S20→S11A→・・・→S20)を示したが、イタレーション例はそれに限られない。例えば、第2学習ステップS20と正則化項学習ステップS11Aとを、(S20→S11A→S11A)→(S20→S11A→S11A)→・・・→S20の順で繰り返してもよい。
【0050】
[1-3.識別学習モデルの動作]
次に、識別器41を学習させるための識別学習モデル40の動作について説明する。
【0051】
図7は、導出モデル10に含まれる識別学習モデル40を示す模式図である。なお、図7には、量子化前モデル20および量子化後モデル30も図示されている。
【0052】
識別器41は、畳み込みニューラルネットワーク(CNN)および全結合ニューラルネットワーク(FC)によって構成されている。識別器41には、重みパラメータw+Δwおよび重みパラメータwが入力され、それぞれに対応して、推論値D(w+Δw)および推論値D(w)が出力される。
【0053】
また、識別学習モデル40には、量子化前モデル20から推論値xが入力され、量子化後モデル30から推論値G(z)が入力される。識別学習モデル40では、この推論値xと推論値G(z)とから求められる類似度および期待値を用いて、識別器41が学習される。
【0054】
ここで、識別器41を学習する際に用いる期待値(第1の期待値)について説明する。期待値は、学習を行う際のラベルであり、(式2)に示すように、識別学習モデル40に入力された推論値x、G(z)に基づいて決定される。
【0055】
期待値={xに対する推論値(xまたはG(z))の類似度,xに対する推論値(xまたはG(z))の類似度の前回の評価に対する向上具合}・・・(式2)
【0056】
表1には、識別器の量子化前モデル側の系41aおよび量子化後モデル側の系41bに対するそれぞれの期待値が示されている。上記期待値は、識別器41の出力である推論値D(w+Δw)、D(w)に良否を付ける際に、比較的容易に学習させやすい識別器である2クラス分類器として学習させるため、0および1という二値で表されている。
【0057】
【表1】
【0058】
表1に示すように、量子化前モデル側の系41aのxに対する類似度は、推論値xがxと同じなので期待値1となる。量子化後モデル側の系41bのxに対する類似度は、推論値G(z)がxと異なるので期待値0となる。量子化前モデル側の系41aおよび量子化後モデル側の系41bのそれぞれの推論値x、G(z)の類似度の向上具合は、前回求めた類似度に対して今回求めた類似度が向上していれば期待値1、向上していなければ期待値0となる。なお、量子化前モデル側の系41aは常に推論値x自身との比較になるため、学習における類似度の向上具合の期待値は実質1となる。
【0059】
識別学習モデル40では、上記のように決めた期待値を用いて識別器41の学習が行われる。具体的には、識別器41から出力される推論値D(w+Δw)、D(w)が、期待値1に近づくように、識別器41の学習が行われる。識別器41を学習する際は、量子化前モデル側の系41aおよび量子化後モデル側の系41bの両方の系を用いて学習が行われ、識別器41のニューラルネットワークの重みが更新される。識別器41の学習を終えると、この識別器41を用いて正則化項が導出される。なお、量子化前モデル20の第1のニューラルネットワークに反映されるのは、識別器41のうちの量子化前モデル側の系41aにて導出された正則化項である。
【0060】
上記では期待値(第1の期待値)を0および1という二値で表現したが、それに限られず、0およびS(S>0)という2つの値で表現してもよい。例えば、上記期待値は、推論値xに対しては、常にS(S>0)とされ、推論値G(z)に対しては、推論値G(z)を時系列で見たときに、1つ前の推論値G(z)に対して類似度が高くなっている場合には-Sとされ、類似度が高くなっていない場合には0とされてもよい。
【0061】
なお、識別器41を学習する際は、重みパラメータw+Δwに基づいて算出された第1の特徴量および重みパラメータwに基づいて算出された第2の特徴量のそれぞれを入力とする第3のロス関数を指標として学習が行われてもよい。
【0062】
第1の特徴量および第2の特徴量のそれぞれは、識別器41の畳み込みニューラルネットワークと全結合ニューラルネットワークとの境界において、畳み込みニューラルネットワークから出力される値である。第1の特徴量は量子化前モデル側の系41aにおける特徴量であり、第2の特徴量は、量子化後モデル側の系41bにおける特徴量である。
【0063】
識別器41の学習では、これらの第1の特徴量および第2の特徴量により、識別器41の第3のロス関数が設定され、第3のロス関数を指標として第3のロス関数が小さくなるように識別器41の学習が行われる。
【0064】
第3のロス関数としては、例えば、Triplet Loss関数が用いられる。Triplet Loss関数は、ニューラルネットワークの特徴量(基準値、基準値から派生した値aおよび値b)を因子としてもち、学習によって基準値と値aとの距離を狭めつつ、基準値と値bとの距離を広げるという性質を持っている。これにより(基準値または値a)と、値bとを分離しやすい状態にして学習を進めることができる。
【0065】
例えば、学習の繰り返し回数Nに対して、量子化前モデル側の系41aの特徴量(ポジティブ側の特徴量)と、量子化後モデル側の系41bの特徴量(ネガティブ側の特徴量)とを分離しやすい状態とするために、
基準値:(N-1)回目の量子化前モデル側の系41aの特徴量
値a:N回目の量子化前モデル側の系41aの特徴量
値b:N回目の量子化後モデル側の系41bの特徴量
とすることが望ましい。
【0066】
これらを式で表すと、以下の(式3)に示すようになる。
【0067】
【数2】
【0068】
すなわち第3のロス関数を設定する場面では、基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる第1の特徴量が設定され、ポジティブ側の特徴量として、N回目の学習で得られる第1の特徴量が設定され、ネガティブ側の特徴量として、N回目の学習で得られる第2の特徴量が設定されることが望ましい。
【0069】
[1-4.ハードウェア構成]
次に、本実施の形態に係るニューラルネットワーク導出モデルを構成する導出装置のハードウェア構成について、図8を用いて説明する。図8は、導出装置の機能をソフトウェアにより実現するコンピュータ1000のハードウェア構成の一例を示す図である。
【0070】
コンピュータ1000は、図8に示すように、入力装置1001、出力装置1002、CPU1003、内蔵ストレージ1004、RAM1005、読取装置1007、送受信装置1008及びバス1009を備えるコンピュータである。入力装置1001、出力装置1002、CPU1003、内蔵ストレージ1004、RAM1005、読取装置1007及び送受信装置1008は、バス1009により接続される。
【0071】
入力装置1001は入力ボタン、タッチパッド、タッチパネルディスプレイなどといったユーザインタフェースとなる装置であり、ユーザの操作を受け付ける。なお、入力装置1001は、ユーザの接触操作を受け付ける他、音声での操作、リモコン等での遠隔操作を受け付ける構成であってもよい。
【0072】
出力装置1002は、入力装置1001と兼用されており、タッチパッドまたはタッチパネルディスプレイなどによって構成され、ユーザに知らすべき情報を通知する。
【0073】
内蔵ストレージ1004は、フラッシュメモリなどである。また、内蔵ストレージ1004は、導出装置の機能を実現するためのプログラム、及び、導出装置の機能構成を利用したアプリケーションの少なくとも一方が、予め記憶されていてもよい。
【0074】
RAM1005は、ランダムアクセスメモリ(Random Access Memory)であり、プログラム又はアプリケーションの実行に際してデータ等の記憶に利用される。
【0075】
読取装置1007は、USB(Universal Serial Bus)メモリなどの記録媒体から情報を読み取る。読取装置1007は、上記のようなプログラムやアプリケーションが記録された記録媒体からそのプログラムやアプリケーションを読み取り、内蔵ストレージ1004に記憶させる。
【0076】
送受信装置1008は、無線又は有線で通信を行うための通信回路である。送受信装置1008は、例えばネットワークに接続されたサーバ装置と通信を行い、サーバ装置から上記のようなプログラムやアプリケーションをダウンロードして内蔵ストレージ1004に記憶させる。
【0077】
CPU1003は、中央演算処理装置(Central Processing Unit)であり、内蔵ストレージ1004に記憶されたプログラム、アプリケーションをRAM1005にコピーし、そのプログラムやアプリケーションに含まれる命令をRAM1005から順次読み出して実行する。
【0078】
[1-5.効果等]
以上のように、本実施の形態のニューラルネットワーク導出方法は、第1のパラメータ(例えば重みパラメータw)を持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップS10と、第1学習ステップS10の後に、第1のニューラルネットワークを、第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップS20と、を含む。正則化項は、第1のニューラルネットワークに基づいて第1のパラメータに変動を加えた第2のパラメータ(例えば重みパラメータw)を持つ第2のニューラルネットワークが導出された後、第1のニューラルネットワークの第1の推論値xと第2のニューラルネットワークの第2の推論値G(z)との類似度の時系列での変化に基づいて決定される。
【0079】
これによれば、第1のニューラルネットワークの第1の推論値xと第2のニューラルネットワークの第2の推論値G(z)との類似度の時系列での変化に基づいて正則化項を求め、この正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、ニューラルネットワークのパラメータの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0080】
また、正則化項は、類似度が高くなると小さく、類似度が低くなると大きくなるように決定されてもよい。
【0081】
これによれば、ニューラルネットワークで使われる第1のパラメータが、推論値の精度を変化させやすい性質のパラメータになることを防ぐことができる。これにより、ニューラルネットワークのパラメータの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0082】
また、ニューラルネットワーク導出方法は、さらに、第1学習ステップS10と第2学習ステップS20との間に正則化項を決定するための識別器41の学習を行う第1の正則化項学習ステップS11を含む。第1の正則化項学習ステップS11では、第1のパラメータおよび第2のパラメータを識別器41への入力とし、第1の推論値xと第2の推論値G(z)とから求められる第1の期待値を用いて識別器41の学習が行われてもよい。
【0083】
これによれば、第1の期待値を用いて識別器41を学習することができるので、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、ニューラルネットワークのパラメータの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0084】
また、第1の期待値は、第1の推論値xに対しては、常にS(S>0)とされ、第2の推論値G(z)に対しては、第2の推論値G(z)を時系列で見たときに、1つ前の第2の推論値G(z)に対して類似度が高くなっている場合には-Sとされ、類似度が高くなっていない場合には0とされてもよい。
【0085】
これによれば、第1の期待値を適切に決めることができ、識別器41を適切に学習することができる。そのため、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、ニューラルネットワークのパラメータの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0086】
また、第1の正則化項学習ステップS11では、第1のパラメータに基づいて算出された第1の特徴量および第2のパラメータに基づいて算出された第2の特徴量のそれぞれを入力とする第3のロス関数を用いて識別器41の学習が行われてもよい。
【0087】
これによれば、識別器41を適切に学習することができるので、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、ニューラルネットワークのパラメータの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0088】
また、第3のロス関数は、Triplet Loss関数であり、基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる第1の特徴量が設定され、ポジティブ側の特徴量として、N回目の学習で得られる第1の特徴量が設定され、ネガティブ側の特徴量として、N回目の学習で得られる第2の特徴量が設定されてもよい。
【0089】
これによれば、第3のロス関数に基づいて、識別器41を適切に学習することができる。そのため、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、ニューラルネットワークのパラメータの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0090】
また、第1のパラメータは、第1の数値表現で表され、第2のパラメータは、第1のパラメータを第2の数値表現に変換することによって得られてもよい。
【0091】
本実施の形態のニューラルネットワーク導出方法は、パラメータが第1の数値表現から第2の数値表現に変換されるような場合であっても、この変換に対してロバスト性を有するニューラルネットワークを導出することができる。
【0092】
また、第1の数値表現はfloat値からなる実数であり、第2の数値表現は整数であり、第2のパラメータは、第1のパラメータを量子化することによって得られてもよい。
【0093】
本実施の形態のニューラルネットワーク導出方法は、パラメータが量子化されて変換されるような場合であっても、この変換に対してロバスト性を有するニューラルネットワークを導出することができる。
【0094】
(実施の形態2)
[2-1.ニューラルネットワークを導出するための導出モデル]
次に、実施の形態2において、ニューラルネットワークを導出するための導出モデルについて説明する。実施の形態2では、実施の形態1で示したパラメータの変動に対するロバスト性に加え、入力データの変動に対してロバスト性を有するニューラルネットワークを生成する例について説明する。
【0095】
図9は、実施の形態2において、ニューラルネットワークを導出する導出モデル10Aを示す図である。図9に示すように、導出モデル10Aは、量子化前モデル20と、量子化後モデル30と、識別学習モデル40とによって構成されている。
【0096】
量子化前モデル20は、重みパラメータ(第1のパラメータ)wを持つ第1のニューラルネットワークによって構成されている。量子化前モデル20には、入力データ(第1の入力データ)zが入力される。入力データzは、例えば、float値からなる実数などの第3の数値表現で表される。入力データzが入力された量子化前モデル20は、出力値として推論値(第3の推論値)xを出力する。量子化前モデル20は、入力データzを含む所定の学習データセットに基づいて機械学習が行われる。また識別器41の学習の際には重みパラメータwにΔwが加算された重みパラメータw+Δwで動作する。
【0097】
量子化後モデル30は、重みパラメータ(第2のパラメータ)wを持つ第2のニューラルネットワークによって構成されている。量子化後モデル30には、入力データ(第2の入力データ)z+Δzが入力される。Δzは、例えば学習済の量子化前モデル20の重みパラメータを固定し、間違った推論値となるように入力データzを学習させることで求められる。この場合、Δzは、元の入力データzとの差となって表れる。入力データz+Δzは、上記第3の数値表現とは異なる第4の数値表現で表される。第4の数値表現は、例えば整数などの固定小数点精度による数値表現である。入力データz+Δzは、入力データzに変動を加えた値となっており、入力データzとは値が少し異なっている。入力データz+zが入力された量子化後モデル30は、出力値として推論値(第4の推論値)G(z+Δz)を出力する。
【0098】
識別学習モデル40は、推論値の精度を識別する識別器41を学習するためのモデルであり、識別器41等を有している。
【0099】
識別器41には、量子化前の重みパラメータw+Δw、量子化後の重みパラメータwのそれぞれが入力され、また、入力データz、z+Δzのそれぞれが入力される。識別器41は、入力データzならびに重みパラメータw+Δwに対応して推論値D(z,w+Δw)を出力する。また、識別器41は、入力データz+Δzならびに重みパラメータwに対応して推論値D(z+Δz,w)を出力する。なおここで推論値D(A,B)という表記はテンソルAとテンソルB、両方に依存する推論値を意味する。
【0100】
識別学習モデル40には、量子化前モデル20の推論値x、量子化後モデル30の推論値G(z+Δz)のそれぞれが入力される。識別学習モデル40は、入力された推論値x、推論値G(z+Δz)と上記の推論値D(z,w+Δw)、D(z+Δz,w)とを対比し、バックプロパゲーションを行うことで、識別器41を学習させる。そして識別学習モデル40は、学習済の識別器41によって、前述した正則化項を導出する。識別学習モデル40によって導出された正則化項は、量子化前モデル20の第1のニューラルネットワークを再び学習する際に用いられる。
【0101】
[2-2.ニューラルネットワーク導出方法]
次に、上記導出モデル10Aを用いてニューラルネットワークを導出する方法について説明する。
【0102】
図10は、本実施の形態に係るニューラルネットワーク導出方法を示すフローである。
【0103】
ニューラルネットワーク導出方法は、第1学習ステップS10と、正則化項学習ステップS17(第2の正則化項学習ステップ)と、第2学習ステップS20と、を含む。
【0104】
第1学習ステップS10は、量子化前モデル20の第1のニューラルネットワークを学習するステップである。第1学習ステップS10は、図10の(a)の破線内で実行される。このステップでは、第1のロス関数を指標とし、所定の学習データセットを用いて第1のニューラルネットワークの学習が行われる。第1学習ステップS10により、第1のニューラルネットワークにおける重みパラメータwがいったん求められる。
【0105】
正則化項学習ステップS17は、前述した正則化項を導出するために学習を行うステップである。正則化項学習ステップS17は、量子化後モデル30を生成するステップS12と、識別器41を学習するステップS13と、識別器41から正則化項を導出するステップS14とを含む。
【0106】
量子化後モデル30を生成するステップS12は、第1のニューラルネットワークに基づいて、重みパラメータwを持つ第2のニューラルネットワークを導出するステップである。このステップS12は、図10の(b)の破線内で実行される。重みパラメータwは、重みパラメータw+Δwにさらに変動が加えられた値を量子化したものであり、例えば、重みパラメータw+Δwを量子化することで求められる。
【0107】
識別器41を学習するステップS13は、図10の(c)および(d)のそれぞれの破線内の系で実行されるステップである。ここで、図10の(c)に示す破線内の系を量子化前モデル側の系41aと呼び、図10の(d)に示す破線内の系を量子化後モデル側の系41bと呼ぶ。
【0108】
図10の(c)に示すように、量子化前モデル側の系41aでは、重みパラメータw+Δwおよび入力データzが、識別器41に入力される。重みパラメータw+Δwおよび入力データzが入力された識別器41からは、推論値D(z,w+Δw)が出力される。また、識別学習モデル40には、量子化前モデル20および量子化後モデル30の出力である推論値xおよび推論値G(z+Δz)が入力される。識別学習モデル40は、この推論値xと推論値G(z+Δz)との類似度の時系列での変化に基づいて、推論値D(z,w+Δw)の精度が向上するように識別器41を学習させる。
【0109】
ここでいう類似度は、2つの推論値x、G(z+Δz)の似ている度合を示すものである。類似度としては、前述したcos類似度が用いられる。
【0110】
図10の(d)に示すように、量子化後モデル側の系41bでは、量子化後モデル30の重みパラメータwおよび入力データz+Δzが、識別器41に入力される。重みパラメータwおよび入力データz+Δzが入力された識別器41からは、推論値D(z+Δz,w)が出力される。識別学習モデル40は、入力された推論値xと推論値G(z+Δz)との類似度の時系列での変化に基づいて、推論値D(z+Δz,w)の精度が向上するように識別器41を学習させる。
【0111】
なお、上記の量子化前モデル側の系41aおよび量子化後モデル側の系41bにおける重みは共通化(量子化前モデル側の系41aでの重みパラメータを量子化したものが,量子化後モデル側の系41bの重みパラメータとなっている)されており、また、これらの系41a、41bによる識別器41の学習は同時に実行される。
【0112】
正則化項を導出するステップS14は、識別器41を用いて正則化項を導出するステップである。正則化項は、推論値xと推論値G(z+Δz)との類似度の大きさに対して負の相関があり、例えば時系列でみて、上記類似度が高くなると小さく、上記類似度が低くなると大きくなるように決定される。識別器41から導出された正則化項は、量子化前モデル20の第1のニューラルネットワークの学習に反映される。
【0113】
第2学習ステップS20は、第1のロス関数に正則化項を加えた第2のロス関数(第2のロス関数=第1のロス関数+正則化項)を指標として、第1のニューラルネットワークを学習するステップである。第2学習ステップS20も、図10の(a)の破線内で実行され、第1学習ステップS10と同様に所定の学習データセットが用いられる。第2学習ステップS20により、第1のニューラルネットワークの重みパラメータwが更新される。
【0114】
図11は、図10に続いて実行されるニューラルネットワーク導出方法を示すフローチャートである。このニューラルネットワーク導出方法では、第2学習ステップS20の後に、正則化項学習ステップS17と同様の正則化項学習ステップS17Aが実行される。正則化項学習ステップS17Aは、前述した量子化後モデル30を生成するステップS12と、識別器41を学習するステップS13と、識別器41から正則化項を導出するステップS14とを含む。
【0115】
そして本実施の形態のニューラルネットワーク導出方法では、第2学習ステップS20および正則化項学習ステップS17Aを繰り返すことで、ロバスト性を有する第1のニューラルネットワークが生成される。また、上記繰り返しによって生成された第1のニューラルネットワークの重みパラメータwを量子化することで、パラメータおよび入力データの変動に対してロバスト性を有する第2のニューラルネットワークが生成される。
【0116】
[2-3.識別学習モデルの動作]
次に、識別器41を学習させるための識別学習モデル40の動作について説明する。
【0117】
図12は、導出モデル10Aに含まれる識別学習モデル40を示す模式図である。なお、図12には、量子化前モデル20および量子化後モデル30も図示されている。
【0118】
識別器41の量子化前モデル側の系41aには、重みパラメータw+Δw、入力データzが入力され、推論値D(z,w+Δw)が出力される。識別器41の量子化後モデル側の系41bには、重みパラメータw、入力データz+Δzが入力され、推論値D(z+Δz,w)が出力される。
【0119】
また、識別学習モデル40には、量子化前モデル20から推論値xが入力され、量子化後モデル30から推論値G(z+Δz)が入力される。識別学習モデル40では、この推論値xと推論値G(z+Δz)とから求められる類似度および期待値を用いて、識別器41が学習される。
【0120】
ここで、識別器41を学習する際に用いる期待値(第2の期待値)について説明する。
【0121】
期待値は、学習を行う際のラベルであり、(式4)に示すように、識別学習モデル40に入力された推論値x、G(z+Δz)に基づいて決定される。
【0122】
期待値={xに対する推論値(xまたはG(z+Δ))の類似度,xに対する推論値(xまたはG(z+Δ))の類似度の前回の評価に対する向上具合}・・・(式4)
【0123】
表2には、識別器の量子化前モデル側の系41aおよび量子化後モデル側の系41bに対するそれぞれの期待値が示されている。上記期待値は、識別器41の出力である推論値D(z,w+Δw)、D(z+Δz,w)に良否を付ける際に、比較的容易に学習させやすい識別器である2クラス分類器として学習させるため、0および1という二値で表されている。
【0124】
【表2】
【0125】
表2に示すように、量子化前モデル側の系41aのxに対する類似度は、推論値xがxと同じなので期待値1となる。量子化後モデル側の系41bのxに対する類似度は、推論値G(z+Δz)がxと異なるので期待値0となる。量子化前モデル側の系41aおよび量子化後モデル側の系41bのそれぞれの推論値x、G(z+Δz)の類似度の向上具合は、前回求めた類似度に対して今回求めた類似度が向上していれば期待値1、向上していなければ期待値0となる。なお、量子化前モデル側の系41aは常に推論値x自身との比較になるため、学習における類似度の向上具合の期待値は実質1となる。
【0126】
識別学習モデル40では、上記のように決めた期待値を用いて識別器41の学習が行われる。具体的には、識別器41から出力される推論値D(z,w+Δw)、D(z+Δz,w)が、期待値1に近づくように、識別器41の学習が行われる。識別器41を学習する際は、量子化前モデル側の系41aおよび量子化後モデル側の系41bの両方の系を用いて学習が行われ、識別器41のニューラルネットワークの重みが更新される。識別器41の学習を終えると、識別器41のうちの量子化前モデル側の系41aを用いて正則化項が導出される。
【0127】
上記では期待値(第2の期待値)を0および1という二値で表現したが、それに限られず、0およびS(S>0)という2つの値で表現してもよい。例えば、上記期待値は、推論値xに対しては、常にS(S>0)とされ、推論値G(z+Δz)に対しては、推論値G(z+Δz)を時系列で見たときに、1つ前の推論値G(z+Δz)に対して類似度が高くなっている場合には-Sとされ、類似度が高くなっていない場合には0とされてもよい。
【0128】
なお、識別器41を学習する際は、重みパラメータw+Δwおよび入力データzに基づいて算出された第3の特徴量、ならびに、重みパラメータwおよび入力データz+Δzに基づいて算出された第4の特徴量のそれぞれを入力とする第4のロス関数を指標として学習が行われてもよい。
【0129】
第3の特徴量および第4の特徴量のそれぞれは、識別器41の畳み込みニューラルネットワークと全結合ニューラルネットワークとの境界において、畳み込みニューラルネットワークから出力される値である。第3の特徴量は量子化前モデル側の系41aにおける特徴量であり、第4の特徴量は、量子化後モデル側の系41bにおける特徴量である。
【0130】
識別器41の学習では、これらの第3の特徴量および第4の特徴量により、識別器41の第4のロス関数が設定され、第4のロス関数を指標として第4のロス関数が小さくなるように識別器41の学習が行われる。
【0131】
第4のロス関数としては、例えば、Triplet Loss関数が用いられる。Triplet Loss関数は、ニューラルネットワークの特徴量(基準値、基準値から派生した値aおよび値b)を因子としてもち、学習によって基準値と値aとの距離を狭めつつ、基準値と値bとの距離を広げるという性質を持っている。
【0132】
例えば、学習の繰り返し回数Nに対して、量子化前モデル側の系41aの特徴量(ポジティブ側の特徴量)と、量子化後モデル側の系41bの特徴量(ネガティブ側の特徴量)とを分離しやすい状態とするために、
基準値:(N-1)回目の量子化前モデル側の系41aの特徴量
値a:N回目の量子化前モデル側の系41aの特徴量
値b:N回目の量子化後モデル側の系41bの特徴量
とすることが望ましい。
【0133】
すなわち第4のロス関数を設定する場面では、基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる第3の特徴量が設定され、ポジティブ側の特徴量として、N回目の学習で得られる第4の特徴量が設定され、ネガティブ側の特徴量として、N回目の学習で得られる第4の特徴量が設定されることが望ましい。
【0134】
[2-4.効果等]
以上のように、実施の形態2のニューラルネットワーク導出方法は、実施の形態1に加えさらに、第1学習ステップS10と第2学習ステップS20との間に正則化項を決定するための識別器41の学習を行う第2の正則化項学習ステップS17を含む。第2の正則化項学習ステップS17では、第1の入力データ(例えば入力データz)および第2の入力データ(例えば入力データz+Δz)を識別器41への入力とし、第1の入力データを第1のニューラルネットワークに入力したときの第1のニューラルネットワークの第3の推論値xと、第1の入力データに変動を加えた第2の入力データを第2のニューラルネットワークに入力したときの第2のニューラルネットワークの第4の推論値G(z+Δz)と、から求められる第2の期待値を用いて識別器41の学習が行われる。
【0135】
これによれば、第2の期待値を用いて識別器41を学習することができるので、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、パラメータおよび入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。またそれにより、アドバーサリアル・アタック(敵対的サンプルによる攻撃)に対する耐性が大幅に向上する。
【0136】
また、第2の期待値は、第3の推論値xに対しては、常にS(S>0)とされ、第4の推論値G(z+Δz)に対しては、第4の推論値G(z+Δz)を時系列で見たときに、1つ前の第4の推論値G(z+Δz)に対して類似度が高くなっている場合には-Sとされ、類似度が高くなっていない場合には0とされてもよい。
【0137】
これによれば、第2の期待値を適切に決めることができ、識別器41を適切に学習することができる。そのため、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、パラメータおよび入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0138】
また、第2の正則化項学習ステップS17では、第1のパラメータおよび第1の入力データに基づいて算出された第3の特徴量、ならびに、第2のパラメータおよび第2の入力データに基づいて算出された第4の特徴量のそれぞれを入力とする第4のロス関数を用いて識別器41の学習が行われてもよい。
【0139】
これによれば、識別器41を適切に学習することができるので、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、パラメータおよび入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0140】
また、第4のロス関数は、Triplet Loss関数であり、基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる第3の特徴量が設定され、ポジティブ側の特徴量として、N回目の学習で得られる第3の特徴量が設定され、ネガティブ側の特徴量として、N回目の学習で得られる第4の特徴量が設定されてもよい。
【0141】
これによれば、第4のロス関数に基づいて、識別器41を適切に学習することができる。そのため、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、パラメータおよび入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0142】
また、第1の入力データは、第3の数値表現で表され、第2の入力データは、第3の数値表現と異なる第4の数値表現で表されてもよい。
【0143】
本実施の形態のニューラルネットワーク導出方法は、入力データが第3の数値表現から第4の数値表現に変わるような場合であっても、ロバスト性を有するニューラルネットワークを導出することができる。
【0144】
また、第3の数値表現はfloat値からなる実数であり、第4の数値表現は整数であってもよい。
【0145】
本実施の形態のニューラルネットワーク導出方法は、第3の数値表現がfloat値からなる実数であり、第4の数値表現が整数であっても、ロバスト性を有するニューラルネットワークを導出することができる。
【0146】
(実施の形態3)
[3-1.ニューラルネットワークを導出するための導出モデル]
次に、実施の形態3において、ニューラルネットワークを導出するための導出モデルについて説明する。実施の形態3では、入力データの変動に対してロバスト性を有するニューラルネットワークを生成する例について説明する。
【0147】
図13は、実施の形態3において、ニューラルネットワークを導出する導出モデル10Bを示す図である。図13に示すように、導出モデル10Bは、基準モデル20Bと、クローンモデル30Bと、識別学習モデル40とによって構成されている。
【0148】
基準モデル20Bは、重みパラメータ(第1のパラメータ)wを持つ第1のニューラルネットワークによって構成されている。基準モデル20Bには、入力データ(第1の入力データ)zが入力される。入力データzは、例えば、float値からなる実数などの第3の数値表現で表される。入力データzが入力された基準モデル20Bは、出力値として推論値(第5の推論値)xを出力する。基準モデル20Bは、入力データzを含む所定の学習データセットに基づいて機械学習が行われる。また識別器41の学習の際には重みパラメータwにΔwが加算された重みパラメータw+Δwで動作する。
【0149】
クローンモデル30Bは、基準モデル20Bと同じ重みパラメータwを持つ第2のニューラルネットワークによって構成されている。クローンモデル30Bには、入力データ(第2の入力データ)z+Δzが入力される。Δzは、例えば学習済の基準モデル20Bの重みパラメータを固定し、間違った推論値となるように入力データzを学習させることで求められる。この場合、Δzは、元の入力データzとの差となって表れる。入力データz+Δzは、上記第3の数値表現とは異なる第4の数値表現で表される。第4の数値表現は、例えば整数などの固定小数点精度による数値表現である。入力データz+Δzは、入力データzに変動を加えた値となっており、入力データzとは値が少し異なっている。入力データz+zが入力されたクローンモデル30Bは、出力値として推論値(第6の推論値)G(z+Δz)を出力する。また識別器41の学習の際には重みパラメータwにΔwが加算された重みパラメータw+Δwで動作する。
【0150】
識別学習モデル40は、推論値の精度を識別する識別器41を学習するためのモデルであり、識別器41等を有している。
【0151】
識別器41には、2つの重みパラメータw+Δwのそれぞれが入力され、また、入力データz、z+Δzのそれぞれが入力される。識別器41は、入力データzならびに重みパラメータw+Δwに対応して推論値D(z,w+Δw)を出力する。また、識別器41は、入力データz+Δzならびに重みパラメータw+Δwに対応して推論値D(z+Δz,w+Δw)を出力する。なおここで推論値D(A,B)という表記はテンソルAとテンソルB、両方に依存する推論値を意味する。
【0152】
識別学習モデル40には、基準モデル20Bの推論値x、クローンモデル30Bの推論値G(z+Δz)のそれぞれが入力される。識別学習モデル40は、入力された推論値x、推論値G(z+Δz)と上記の推論値D(z,w+Δw)、D(z+Δz,w+Δw)とを対比し、バックプロパゲーションを行うことで、識別器41を学習させる。そして識別学習モデル40は、学習済の識別器41によって、前述した正則化項を導出する。識別学習モデル40によって導出された正則化項は、基準モデル20Bの第1のニューラルネットワークを再び学習する際に用いられる。
【0153】
[3-2.ニューラルネットワーク導出方法]
次に、上記導出モデル10Bを用いてニューラルネットワークを導出する方法について説明する。
【0154】
図14は、本実施の形態に係るニューラルネットワーク導出方法を示すフローである。
【0155】
ニューラルネットワーク導出方法は、第1学習ステップS10と、正則化項学習ステップS18(第3の正則化項学習ステップ)と、第2学習ステップS20と、を含む。
【0156】
第1学習ステップS10は、基準モデル20Bの第1のニューラルネットワークを学習するステップである。第1学習ステップS10は、図14の(a)の破線内で実行される。このステップでは、第1のロス関数を指標とし、所定の学習データセットを用いて第1のニューラルネットワークの学習が行われる。第1学習ステップS10により、第1のニューラルネットワークにおける重みパラメータwがいったん求められる。
【0157】
正則化項学習ステップS18は、前述した正則化項を導出するために学習を行うステップである。正則化項学習ステップS18は、クローンモデル30Bを生成するステップS12Aと、識別器41を学習するステップS13と、識別器41から正則化項を導出するステップS14とを含む。
【0158】
クローンモデル30Bを生成するステップS12Aは、第1のニューラルネットワークに基づいて、同じ重みパラメータwを持つ第2のニューラルネットワークを導出するステップである。このステップS12Aは、図14の(b)の破線内で実行される。
【0159】
識別器41を学習するステップS13は、図14の(c)および(d)のそれぞれの破線内の系で実行されるステップである。ここで、図14の(c)に示す破線内の系を基準モデル側の系41cと呼び、図14の(d)に示す破線内の系をクローンモデル側の系41dと呼ぶ。
【0160】
図14の(c)に示すように、基準モデル側の系41cでは、重みパラメータw+Δwおよび入力データzが識別器41に入力される。重みパラメータw+Δwおよび入力データzが入力された識別器41からは、推論値D(z,w+Δw)が出力される。また、識別学習モデル40には、基準モデル20Bおよびクローンモデル30Bの出力である推論値x、G(z+Δz)が入力される。識別学習モデル40は、この推論値xと推論値G(z+Δz)との類似度の時系列での変化に基づいて、推論値D(z,w+Δw)の精度が向上するように識別器41を学習させる。
【0161】
ここでいう類似度は、2つの推論値x、G(z+Δz)の似ている度合を示すものである。類似度としては、前述したcos類似度が用いられる。
【0162】
図14の(d)に示すように、クローンモデル側の系41dでは、クローンモデル30Bの重みパラメータw+Δwおよび入力データz+Δzが、識別器41に入力される。重みパラメータw+Δwおよび入力データz+Δzが入力された識別器41からは、推論値D(z+Δz,w+Δw)が出力される。識別学習モデル40は、入力された推論値xと推論値G(z+Δz)との類似度の時系列での変化に基づいて、推論値D(z+Δz,w+Δw)の精度が向上するように識別器41を学習させる。
【0163】
なお、上記の基準モデル側の系41cおよびクローンモデル側の系41dにおける重みは共通化されており、また、これらの系41c、41dによる識別器41の学習は同時に実行される。
【0164】
正則化項を導出するステップS14は、識別器41を用いて正則化項を導出するステップである。正則化項は、推論値xと推論値G(z+Δz)との類似度の大きさに対して負の相関があり、例えば時系列でみて、上記類似度が高くなると小さく、上記類似度が低くなると大きくなるように決定される。識別器41から導出された正則化項は、基準モデル20Bの第1のニューラルネットワークの学習に反映される。
【0165】
第2学習ステップS20は、第1のロス関数に正則化項を加えた第2のロス関数(第2のロス関数=第1のロス関数+正則化項)を指標として、第1のニューラルネットワークを学習するステップである。第2学習ステップS20も、図14の(a)の破線内で実行され、第1学習ステップS10と同様に所定の学習データセットが用いられる。第2学習ステップS20により、第1のニューラルネットワークの重みパラメータwが更新される。
【0166】
図15は、図14に続いて実行されるニューラルネットワーク導出方法を示すフローチャートである。このニューラルネットワーク導出方法では、第2学習ステップS20の後に、正則化項学習ステップS18と同様の正則化項学習ステップS18Aが実行される。正則化項学習ステップS18Aは、前述したクローンモデル30Bを生成するステップS12Aと、識別器41を学習するステップS13と、識別器41から正則化項を導出するステップS14とを含む。
【0167】
そして本実施の形態のニューラルネットワーク導出方法では、第2学習ステップS20および正則化項学習ステップS18Aを繰り返すことで、ロバスト性を有する第1のニューラルネットワークが生成される。また、上記繰り返しによって生成された第1のニューラルネットワークと同じ重みパラメータwを持たせることで、入力データの変動に対してロバスト性を有する第2のニューラルネットワークが生成される。
【0168】
[3-3.識別学習モデルの動作]
次に、識別器41を学習させるための識別学習モデル40の動作について説明する。
【0169】
図16は、導出モデル10Bに含まれる識別学習モデル40を示す模式図である。なお、図16には、基準モデル20Bおよびクローンモデル30Bも図示されている。
【0170】
識別器41の基準モデル側の系41cには、重みパラメータw+Δw、入力データzが入力され、推論値D(z,w+Δw)が出力される。識別器41のクローンモデル側の系41dには、重みパラメータw+Δw、入力データz+Δzが入力され、推論値D(z+Δz,w+Δw)が出力される。
【0171】
また、識別学習モデル40には、基準モデル20Bから推論値xが入力され、クローンモデル30Bから推論値G(z+Δz)が入力される。識別学習モデル40では、この推論値xと推論値G(z+Δz)とから求められる類似度および期待値を用いて、識別器41が学習される。
【0172】
ここで、識別器41を学習する際に用いる期待値(第3の期待値)について説明する。
【0173】
期待値は、学習を行う際のラベルであり、(式5)に示すように、識別学習モデル40に入力された推論値x、G(z+Δz)に基づいて決定される。
【0174】
期待値={xに対する推論値(xまたはG(z+Δz))類似度,xに対する推論値(xまたはG(z+Δz))の類似度の前回の評価に対する向上具合}・・・(式5)
【0175】
表3には、識別器の基準モデル側の系41cおよびクローンモデル側の系41dに対するそれぞれの期待値が示されている。上記期待値は、識別器41の出力である推論値D(z,w+Δw)、D(z+Δz,w+Δw)に良否を付ける際に、比較的容易に学習させやすい識別器である2クラス分類器として学習させるため、0および1という二値で表されている。
【0176】
【表3】
【0177】
表3に示すように、基準モデル側の系41cのxに対する類似度は、推論値xがxと同じなので期待値1となる。クローンモデル側の系41dのxに対する類似度は、推論値G(z+Δz)がxと異なるので期待値0となる。基準モデル側の系41cおよびクローンモデル側の系41dのそれぞれの推論値x、G(z+Δz)の類似度の向上具合は、前回求めた類似度に対して今回求めた類似度が向上していれば期待値1、向上していなければ期待値0となる。なお、基準モデル側の系41cは常に推論値x自身との比較になるため、学習における類似度の向上具合の期待値は実質1となる。
【0178】
識別学習モデル40では、上記のように決めた期待値を用いて識別器41の学習が行われる。具体的には、識別器41から出力される推論値D(z,w+Δw)、D(z+Δz,w+Δw)が、期待値1に近づくように、識別器41の学習が行われる。識別器41を学習する際は、基準モデル側の系41cおよびクローンモデル側の系41dの両方の系を用いて学習が行われ、識別器41のニューラルネットワークの重みが更新される。識別器41の学習を終えると、識別器41のうちの基準モデル側の系41cを用いて正則化項が導出される。
【0179】
上記では期待値(第3の期待値)を0および1という二値で表現したが、それに限られず、0およびS(S>0)という2つの値で表現してもよい。例えば、上記期待値は、推論値xに対しては、常にS(S>0)とされ、推論値G(z+Δz)に対しては、推論値G(z+Δz)を時系列で見たときに、1つ前の推論値G(z+Δz)に対して類似度が高くなっている場合には-Sとされ、類似度が高くなっていない場合には0とされてもよい。
【0180】
なお、識別器41を学習する際は、入力データzに基づいて算出された第5の特徴量、ならびに、入力データz+Δzに基づいて算出された第6の特徴量のそれぞれを入力とする第5のロス関数を指標として学習が行われてもよい。
【0181】
第5の特徴量および第6の特徴量のそれぞれは、識別器41の畳み込みニューラルネットワークと全結合ニューラルネットワークとの境界において、畳み込みニューラルネットワークから出力される値である。第5の特徴量は基準モデル側の系41cにおける特徴量であり、第6の特徴量は、クローンモデル側の系41dにおける特徴量である。
【0182】
識別器41の学習では、これらの第5の特徴量および第6の特徴量により、識別器41の第5のロス関数が設定され、第5のロス関数を指標として第5のロス関数が小さくなるように識別器41の学習が行われる。
【0183】
第5のロス関数としては、例えば、Triplet Loss関数が用いられる。Triplet Loss関数は、ニューラルネットワークの特徴量(基準値、基準値から派生した値aおよび値b)を因子としてもち、学習によって基準値と値aとの距離を狭めつつ、基準値と値bとの距離を広げるという性質を持っている。
【0184】
例えば、学習の繰り返し回数Nに対して、基準モデル側の系41cの特徴量(ポジティブ側の特徴量)と、クローンモデル側の系41dの特徴量(ネガティブ側の特徴量)とを分離しやすい状態とするために、
基準値:(N-1)回目の基準モデル側の系41cの特徴量
値a:N回目の基準モデル側の系41cの特徴量
値b:N回目のクローンモデル側の系41dの特徴量
とすることが望ましい。
【0185】
すなわち第5のロス関数を設定する場面では、基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる第5の特徴量が設定され、ポジティブ側の特徴量として、N回目の学習で得られる第6の特徴量が設定され、ネガティブ側の特徴量として、N回目の学習で得られる第6の特徴量が設定されることが望ましい。
【0186】
[3-4.効果等]
以上のように、実施の形態3のニューラルネットワーク導出方法は、第1の入力データ(例えば入力データz)が入力される第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップS10と、第1学習ステップS10の後に、第1のニューラルネットワークを、第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップS20と、を含む。正則化項は、第1のニューラルネットワークに基づいて第1の入力データに変動を加えた第2の入力データ(例えば入力データz+Δz)が入力される第2のニューラルネットワークが導出された後、第1のニューラルネットワークの第5の推論値xと第2のニューラルネットワークの第6の推論値G(z+Δz)との類似度の時系列での変化に基づいて決定される。
【0187】
これによれば、第1のニューラルネットワークの第5の推論値xと第2のニューラルネットワークの第6の推論値G(z+Δz)との類似度の時系列での変化に基づいて正則化項を求め、この正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、ニューラルネットワークの入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。またそれにより、アドバーサリアル・アタック(敵対的サンプルによる攻撃)に対する耐性が大幅に向上する。
【0188】
また、正則化項は、類似度が高くなると小さく、類似度が低くなると大きくなるように決定されてもよい。
【0189】
これによれば、ニューラルネットワークで使われる第1のパラメータが、推論値の精度を変化させやすい性質のパラメータになることを防ぐことができる。これにより、ニューラルネットワークの入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0190】
また、ニューラルネットワーク導出方法は、さらに、第1学習ステップS10と第2学習ステップS20との間に正則化項を決定するための識別器41の学習を行う第3の正則化項学習ステップS18を含む。第3の正則化項学習ステップS18では、第1の入力データおよび第2の入力データを識別器41への入力とし、第5の推論値xと第6の推論値G(z+Δz)とから求められる第3の期待値を用いて識別器41の学習が行われてもよい。
【0191】
これによれば、第3の期待値を用いて識別器41を学習することができるので、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0192】
また、第3の期待値は、第5の推論値に対しては、常にS(S>0)とされ、第6の推論値に対しては、第6の推論値を時系列で見たときに、1つ前の第6の推論値に対して類似度が高くなっている場合には-Sとされ、類似度が高くなっていない場合には0とされてもよい。
【0193】
これによれば、第3の期待値を適切に決めることができ、識別器41を適切に学習することができる。そのため、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0194】
また、第3の正則化項学習ステップでは、第1の入力データに基づいて算出された第5の特徴量および第2の入力データに基づいて算出された第6の特徴量のそれぞれを入力とする第5のロス関数を用いて識別器41の学習が行われてもよい。
【0195】
これによれば、識別器41を適切に学習することができるので、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0196】
また、第5のロス関数は、Triplet Loss関数であり、基準となる特徴量として、N-1回目(Nは1より大きい整数)の学習で得られる第5の特徴量が設定され、ポジティブ側の特徴量として、N回目の学習で得られる第5の特徴量が設定され、ネガティブ側の特徴量として、N回目の学習で得られる第6の特徴量が設定されてもよい。
【0197】
これによれば、第5のロス関数に基づいて、識別器41を適切に学習することができる。そのため、学習済の識別器41によって決定された正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、入力データの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0198】
また、第1の入力データは、第3の数値表現で表され、第2の入力データは、第3の数値表現と異なる第4の数値表現で表されてもよい。
【0199】
本実施の形態のニューラルネットワーク導出方法は、入力データが第3の数値表現から第4の数値表現に変わるような場合であっても、ロバスト性を有するニューラルネットワークを導出することができる。
【0200】
また、第3の数値表現はfloat値からなる実数であり、第4の数値表現は整数であってもよい。
【0201】
本実施の形態のニューラルネットワーク導出方法は、第3の数値表現がfloat値からなる実数であり、第4の数値表現が整数であっても、ロバスト性を有するニューラルネットワークを導出することができる。
【0202】
(実施の形態4)
[4-1.ニューラルネットワークを導出するための導出モデル]
次に、実施の形態4において、ニューラルネットワークを導出するための導出モデルについて説明する。実施の形態4では、重みパラメータの変動に対してロバスト性を有するニューラルネットワークを生成する例について説明する。
【0203】
図17は、実施の形態4において、ニューラルネットワークを導出する導出モデル10Cを示す図である。図17に示すように、導出モデル10Cは、基準モデル20Cと、微小変動モデル30Cとによって構成されている。
【0204】
基準モデル20Cは、重みパラメータ(第1のパラメータ)wを持つ第1のニューラルネットワークによって構成されている。基準モデル20Cには、入力データ(第1の入力データ)zが入力される。入力データzは、例えば、float値からなる実数などの第3の数値表現で表される。入力データzが入力された基準モデル20Cは、出力値として推論値(第7の推論値)xを出力する。基準モデル20Cは、入力データzを含む所定の学習データセットに基づいて機械学習が行われる。また基準モデルは複数のレイヤで構成され、各レイヤの出力を特徴量としてRfeat[N]と示す(Nはレイヤのインデックス)。各レイヤの入力特徴量Rfeatin[N]はRfeat[N-1]に等しい。
【0205】
微小変動モデル30Cは、基準モデル20Cと同じ重みパラメータwに微小変動Δwを加えた重みパラメータ(第2のパラメータ)を持つ第2のニューラルネットワークによって構成されている。微小変動モデル30Cには、入力データ(第1の入力データ)zが入力され、出力値として推論値(第8の推論値)G(z)を出力する。また微小変動モデル30Cと基準モデル20Cは重みパラメータwを共有し、微小変動モデル30Cの学習によって基準モデル20Cの重みパラメータwが更新される。また微小変動モデルは複数のレイヤで構成され、各レイヤの出力を特徴量としてGfeat[N]と示す(Nはレイヤのインデックス)。各レイヤの入力特徴量Gfeatin[N]はGfeat[N-1]に微小変動ΔGfeat[N]を加えたものとなる。
【0206】
なお、各レイヤから出力される特徴量は、元々はネットワークの内部の特徴量である。したがって、各レイヤから出力される特徴量は、ネットワークの内部特徴量に含まれるものであり、上記内部特徴量と実質的に同じである。微小変動モデル30Cは、上記の重みパラメータを除き、基準モデル20Cと同じ構成を有している。
【0207】
[4-2.ニューラルネットワーク導出方法]
次に、上記導出モデル10Cを用いてニューラルネットワークを導出する方法について説明する。
【0208】
図18は、実施の形態4に係るニューラルネットワーク導出方法を示すフローチャートである。
【0209】
ニューラルネットワーク導出方法は、第1学習ステップS10と、正則化項構築ステップS19と、第2学習ステップS21と、を含む。
【0210】
第1学習ステップS10は、基準モデル20Cの第1のニューラルネットワークを学習するステップである。第1学習ステップS10は、図18の(a)の破線内で実行される。このステップでは、第1のロス関数を指標とし、所定の学習データセットを用いて第1のニューラルネットワークの学習が行われる。第1学習ステップS10により、第1のニューラルネットワークにおける重みパラメータwがいったん求められる。
【0211】
正則化項構築ステップS19は、前述した正則化項とは別の形態を導出するステップである。正則化項構築ステップS19は、微小変動モデル30Cを生成するステップS12Bと、基準モデル20Cと微小変動モデル30Cから正則化項を導出するステップS15とを含む。
【0212】
微小変動モデル30Cを生成するステップS12Bは、第1のニューラルネットワークに基づいて、同じ重みパラメータwに微小変動Δwを加えた重みを持つ第2のニューラルネットワークを導出するステップである。このステップS12Bは、図18の(b)の破線内で実行される。重みが(w+Δw)となっている。本来の重みwは基準モデルと共有されている。
【0213】
正則化項を導出するステップS15は、図18の(c)の系で実行されるステップである。図18(c)に示すように、基準モデルと微小変動モデルの特徴量類似度を求める。図19は、実施の形態4における特徴量類似度の定義を示す図である。この図では、複数のレイヤで構成される基準モデル、微小変動モデルにおいて、各レイヤの出力を特徴量としてRfeat[N]、Gfeat[N](Nはレイヤのインデックス)と示す。ここでいう類似度は、2つのRfeat[N]、Gfeat[N]の似ている度合を示すものである。類似度としては、前述したcos類似度が用いられる。
【0214】
正則化項としては各レイヤの重みw[N]にそれぞれ対応してレイヤNの特徴量類似度を逆の符号にしたものを定義する。
【0215】
第2学習ステップS21は、第1のロス関数に正則化項を加えた第2のロス関数(第2のロス関数=第1のロス関数+正則化項)を指標として、第1のニューラルネットワークを学習するステップである。第2学習ステップS21は、図18の(c)の破線内で実行され、第1学習ステップS10と同様に所定の学習データセットが用いられる。前述した通り本来の重みwは基準モデルと微小変動モデルで共有しているため、第2学習ステップS21により、第1のニューラルネットワークの重みパラメータwが更新される。
【0216】
[4-3.効果等]
以上のように、実施の形態4のニューラルネットワーク導出方法は、第1の入力データ(例えば入力データz)が入力される第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップS10と、第1学習ステップS10の後に、第1のニューラルネットワークを、第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップS21と、を含む。正則化項は、第1のニューラルネットワークに基づいて第1のパラメータに変動を加えた第2のパラメータ(例えば、重みパラメータ(w+Δw)、入力データ(z+Δz))が入力される第2のニューラルネットワークが導出された後、または、第1のニューラルネットワークの各レイヤの出力の特徴量に変動を加えた特徴量(Gfeat[N-1]+ΔGfeat[N]))を有する第2のニューラルネットワークが導出された後、第1のニューラルネットワークの各レイヤの出力の特徴量と第2のニューラルネットワークの対応するレイヤの出力の特徴量との類似度に基づいて決定される。
【0217】
これによれば、第1のニューラルネットワークの特徴量(Rfeat)と第2のニューラルネットワークの特徴量(Gfeat)との類似度に基づいて正則化項を求め、この正則化項を含む第2のロス関数を指標として第1のニューラルネットワークを学習することができる。これにより、実施の形態1、2、3で使用した識別器を用いずに、ニューラルネットワークのパラメータの変動に対してロバスト性を有するニューラルネットワークを導出することができる。
【0218】
また、第1のパラメータは、第3の数値表現で表され、第2のパラメータは、第3の数値表現と異なる第4の数値表現で表されてもよい。
【0219】
本実施の形態のニューラルネットワーク導出方法は、パラメータが第3の数値表現から第4の数値表現に変わるような場合であっても、ロバスト性を有するニューラルネットワークを導出することができる。
【0220】
また、第3の数値表現はfloat値からなる実数であり、第4の数値表現は整数であってもよい。
【0221】
本実施の形態のニューラルネットワーク導出方法は、第3の数値表現がfloat値からなる実数であり、第4の数値表現が整数であっても、ロバスト性を有するニューラルネットワークを導出することができる。
【0222】
また、第2のニューラルネットワークにおける変動は、重みパラメータ(例えばw+Δw)のみでも構わない。
【0223】
本実施の形態のニューラルネットワーク導出方法は、第2のニューラルネットワークにおける変動が重みパラメータのみであっても、重みパラメータに対するロバスト性を有するニューラルネットワークを導出することができる。
【0224】
また、本実施の形態のニューラルネットワーク導出方法は、以下に示すように構成されてもよい。
【0225】
例えば、ニューラルネットワーク導出方法は、第1のパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、第1学習ステップの後に、第1のニューラルネットワークを、第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、を含み、正則化項は、第1のニューラルネットワークに基づいて第1のパラメータに変動を加えた第2のパラメータを持つ第2のニューラルネットワークが導出された後、第1のニューラルネットワークと第2のニューラルネットワークとの内部特徴量または推論値の相互関係に基づいて決定されてもよい。また、正則化項は、第1のニューラルネットワークの最終レイヤを除く少なくとも1つのレイヤの出力の特徴量と第2のニューラルネットワークの対応するレイヤの出力の特徴量との類似度に基づいて決定されてもよい。
【0226】
例えば、ニューラルネットワーク導出方法は、第1の重みパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、第1学習ステップの後に、第1のニューラルネットワークを、第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、を含み、正則化項は、第1のニューラルネットワークと、第1のニューラルネットワークに基づいて第1の重みパラメータに変動を加えた第2の重みパラメータを持つ第2のニューラルネットワークとの関係に基づいて決定されてもよい。
【0227】
例えば、ニューラルネットワーク導出方法は、第1のパラメータを持つ第1のニューラルネットワークを第1のロス関数を指標として学習する第1学習ステップと、第1学習ステップの後に、第1のニューラルネットワークを、第1のロス関数に正則化項を加えた第2のロス関数を指標として学習する第2学習ステップと、を含み、正則化項は、第1のニューラルネットワークと、第1のニューラルネットワークに基づいた第2のニューラルネットワークとの関係に基づいて決定され、第2のニューラルネットワークは、第1のニューラルネットワークに対し、さらに、少なくとも1つのレイヤの入力が、前段レイヤの出力である特徴量に変動を加えたものとなる構成を有していてもよい。なお、上記における「少なくとも1つのレイヤ」は、必ずしも全てのレイヤである必要はない。つまり、第2のニューラルネットワークは、第1のニューラルネットワークに対し、さらに、一部のレイヤの入力が、前段レイヤの出力である特徴量に変動を加えたものとなる構成を有していてもよい。
【0228】
(その他の実施の形態)
以上、本開示に係るニューラルネットワーク導出方法について、各実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の主旨を逸脱しない限り、当業者が思いつく各種変形を各実施の形態に施したものや、各実施の形態における一部の構成要素を組み合わせて構築される別の形態も、本開示の範囲内に含まれる。
【0229】
また、以下に示す形態も、本開示の一つ又は複数の態様の範囲内に含まれてもよい。
【0230】
(1)上記の導出装置を構成する構成要素の一部は、マイクロプロセッサ、ROM、RAM、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムであってもよい。前記RAM又はハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0231】
(2)上記の導出装置を構成する構成要素の一部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムLSIは、その機能を達成する。
【0232】
(3)上記の導出装置を構成する構成要素の一部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。前記ICカード又は前記モジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。前記ICカード又は前記モジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ICカード又は前記モジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【0233】
(4)また、上記の導出装置を構成する構成要素の一部は、前記コンピュータプログラム又は前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【0234】
また、上記の導出装置を構成する構成要素の一部は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【0235】
(5)本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【0236】
(6)また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【0237】
(7)また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【0238】
(8)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【0239】
本開示は、ニューラルネットワークのコンピュータなどへの実装方法として、画像処理方法、音声認識方法または物体制御方法などに利用できる。
【符号の説明】
【0240】
10、10A、10B、10C 導出モデル
20 量子化前モデル
20B、20C 基準モデル
30 量子化後モデル
30B クローンモデル
30C 微小変動モデル
40 識別学習モデル
41 識別器
41a 量子化前モデル側の系
41b 量子化後モデル側の系
41c 基準モデル側の系
41d クローンモデル側の系
1000 コンピュータ
1001 入力装置
1002 出力装置
1003 CPU
1004 内蔵ストレージ
1005 RAM
1007 読取装置
1008 送受信装置
1009 バス
w、w 重みパラメータ
z、z+Δz 入力データ
x、G(z)、D(w+Δw)、D(w)、D(z,w+Δw)、D(z+Δz,w)、D(z+Δz,w+Δw) 推論値
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19