(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022042467
(43)【公開日】2022-03-14
(54)【発明の名称】人工ニューラルネットワークモデル学習方法およびシステム
(51)【国際特許分類】
G06N 3/08 20060101AFI20220307BHJP
【FI】
G06N3/08
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021003948
(22)【出願日】2021-01-14
(31)【優先権主張番号】10-2020-0111900
(32)【優先日】2020-09-02
(33)【優先権主張国・地域又は機関】KR
【新規性喪失の例外の表示】新規性喪失の例外適用申請有り
(71)【出願人】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(71)【出願人】
【識別番号】321003371
【氏名又は名称】LINE株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ユ ヨンジュン
(72)【発明者】
【氏名】キム テフン
(57)【要約】
【課題】 本開示は人工ニューラルネットワークモデル学習方法に関する。
【解決手段】 人工ニューラルネットワークモデル学習方法は、モーメンタム(momentum)基盤の勾配降下法によってあらかじめ設定されたエポック(epoch)まで第1人工ニューラルネットワークモデルを学習して、エポックでの第1人工ニューラルネットワークモデルのモーメンタム値を決定する段階、決定されたモーメンタム値を第2人工ニューラルネットワークモデルの初期モーメンタム値として設定する段階および初期モーメンタム値に基づいて、学習データを利用して第2人工ニューラルネットワークモデルのパラメータ値をアップデートする段階を含み、パラメータは複数の加重値(weight)およびモーメンタムを含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
少なくとも一つのプロセッサによって遂行される人工ニューラルネットワークモデル学習方法において、
モーメンタム(momentum)基盤の勾配降下法によってあらかじめ設定されたエポック(epoch)まで第1人工ニューラルネットワークモデルを学習して、前記エポックでの前記第1人工ニューラルネットワークモデルのモーメンタム値を決定する段階;
前記決定されたモーメンタム値を第2人工ニューラルネットワークモデルの初期モーメンタム値として設定する段階;および
前記初期モーメンタム値に基づいて、学習データを利用して前記第2人工ニューラルネットワークモデルのパラメータ値をアップデートする段階を含み、
前記パラメータ値は複数の加重値(weight)およびモーメンタムを含む、人工ニューラルネットワークモデル学習方法。
【請求項2】
モーメンタム基盤の勾配降下法によって前記あらかじめ設定されたエポックまで第1人工ニューラルネットワークモデルを学習して、前記エポックでの前記第1人工ニューラルネットワークモデルのモーメンタム値を決定する段階は、
最初のエポックまで前記第1人工ニューラルネットワークモデルを学習して、前記最初のエポックでの前記第1人工ニューラルネットワークモデルのモーメンタム値を決定する段階を含む、請求項1に記載の人工ニューラルネットワークモデル学習方法。
【請求項3】
前記アップデートされた第2人工ニューラルネットワークモデルのパラメータ値を量子化して、第3人工ニューラルネットワークモデルを生成する段階をさらに含む、請求項1または請求項2に記載の人工ニューラルネットワークモデル学習方法。
【請求項4】
前記第1人工ニューラルネットワークモデルのパラメータ値は第1データ型で表現され、
前記第2人工ニューラルネットワークモデルのパラメータ値は前記第1データ型または第2データ型で表現され、
前記第3人工ニューラルネットワークモデルのパラメータ値は前記第2データ型で表現され、
前記第2データ型のビット数が前記第1データ型のビット数より小さい、請求項3に記載の人工ニューラルネットワークモデル学習方法。
【請求項5】
前記初期モーメンタム値に基づいて、学習データを利用して前記第2人工ニューラルネットワークモデルのパラメータ値をアップデートする段階は、
前記第2データ型で表現されたパラメータ値を利用して前記第2人工ニューラルネットワークモデルの順伝播(forward-propagation)学習過程を遂行する段階;および
前記第1データ型で表現されたパラメータ値を利用して前記第2人工ニューラルネットワークモデルの逆伝播(backward-propagation)学習過程を遂行する段階を含む、請求項4に記載の人工ニューラルネットワークモデル学習方法。
【請求項6】
前記初期モーメンタム値に基づいて、学習データを利用して前記第2人工ニューラルネットワークモデルのパラメータ値をアップデートする段階は、
前記第2人工ニューラルネットワークモデルの複数の加重値に対するグラジエント(gradient)値に基づいて、学習データを利用して前記第2人工ニューラルネットワークモデルのパラメータ値をアップデートする段階を含む、請求項1~請求項4のいずれか一項に記載の人工ニューラルネットワークモデル学習方法。
【請求項7】
前記第2人工ニューラルネットワークモデルの複数の加重値に対するグラジエント値に基づいて、学習データを利用して前記第2人工ニューラルネットワークモデルのパラメータ値をアップデートする段階は、
前記複数の加重値のうち少なくとも一つの加重値に対するグラジエント値の符号に基づいて現在の学習方向に対応する方向に前記グラジエント値を増幅する段階;および
前記増幅されたグラジエント値に基づいて、前記第2人工ニューラルネットワークモデルのパラメータ値をアップデートする段階を含む、請求項6に記載の人工ニューラルネットワークモデル学習方法。
【請求項8】
請求項1~請求項7のいずれか一項に記載された人工ニューラルネットワークモデル学習方法をコンピュータで実行するための、コンピュータプログラム。
【請求項9】
人工ニューラルネットワークモデル学習システムであって、
通信モジュール;
メモリ;および
前記メモリと連結され、前記メモリに含まれたコンピュータ読み取り可能な少なくとも一つのプログラムを実行するように構成された少なくとも一つのプロセッサを含み、
前記少なくとも一つのプログラムは、
モーメンタム基盤の勾配降下法によってあらかじめ設定されたエポックまで第1人工ニューラルネットワークモデルを学習して、前記エポックでの前記第1人工ニューラルネットワークモデルのモーメンタム値を決定し、前記決定されたモーメンタム値を第2人工ニューラルネットワークモデルの初期モーメンタム値として設定し、前記初期モーメンタム値に基づいて、学習データを利用して前記第2人工ニューラルネットワークモデルのパラメータ値をアップデートするための命令語を含み、
前記パラメータ値は複数の加重値およびモーメンタムを含む、人工ニューラルネットワークモデル学習システム。
【請求項10】
前記少なくとも一つのプログラムは、
最初のエポックまで前記第1人工ニューラルネットワークモデルを学習して、前記最初のエポックでの前記第1人工ニューラルネットワークモデルのモーメンタム値を決定するための命令語を含む、請求項9に記載の人工ニューラルネットワークモデル学習システム。
【請求項11】
前記少なくとも一つのプログラムは、
前記アップデートされた第2人工ニューラルネットワークモデルのパラメータ値を量子化して、第3人工ニューラルネットワークモデルを生成するための命令語をさらに含む、請求項9または請求項10に記載の人工ニューラルネットワークモデル学習システム。
【請求項12】
前記第1人工ニューラルネットワークモデルのパラメータ値は第1データ型で表現され、前記第2人工ニューラルネットワークモデルのパラメータ値は前記第1データ型または第2データ型で表現され、前記第3人工ニューラルネットワークモデルのパラメータ値は前記第2データ型で表現され、前記第2データ型のビット数が前記第1データ型のビット数より小さい、請求項11に記載の人工ニューラルネットワークモデル学習システム。
【請求項13】
前記少なくとも一つのプログラムは、
前記第2データ型で表現されたパラメータ値を利用して前記第2人工ニューラルネットワークモデルの順伝播学習過程を遂行し、前記第1データ型で表現されたパラメータ値を利用して前記第2人工ニューラルネットワークモデルの逆伝播学習過程を遂行するための命令語を含む、請求項12に記載の人工ニューラルネットワークモデル学習システム。
【請求項14】
前記少なくとも一つのプログラムは、
前記第2人工ニューラルネットワークモデルの複数の加重値に対するグラジエント値に基づいて、学習データを利用して前記第2人工ニューラルネットワークモデルのパラメータ値をアップデートするための命令語を含む、請求項9~請求項13のいずれか一項に記載の人工ニューラルネットワークモデル学習システム。
【請求項15】
前記少なくとも一つのプログラムは、
前記複数の加重値のうち少なくとも一つの加重値に対するグラジエント値の符号に基づいて現在の学習方向に対応する方向に前記グラジエント値を増幅するための命令語を含む、請求項14に記載の人工ニューラルネットワークモデル学習システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は人工ニューラルネットワークモデル学習方法およびシステムに関し、具体的には人工ニューラルネットワークモデルを学習して量子化された人工ニューラルネットワークモデルを生成する方法およびシステムに関する。
【背景技術】
【0002】
人工ニューラルネットワーク(artificial neural network)は、人工ニューロン(neuron)(またはニューロンモデル)の相互連結された集合を具現するために、コンピューティング機器またはコンピューティング機器によって遂行される方法やデータ構造を指称し得る。人工ニューラルネットワークで任意のレイヤーに含まれた人工ニューロンは、入力データに対する加重値の積算や活性化関数の適用のような演算を遂行することによって出力データを生成することができ、出力データは他のレイヤーに含まれた人工ニューロンに伝達され得る。人工ニューラルネットワークの例示として、ディープニューラルネットワーク(deep neural network)またはディープランニング(deep learning)モデルは複数のレイヤーを含み、各レイヤーのノードは多数の学習データにより学習されることによって学習データの特性を認知することができる。このような人工ニューラルネットワークは分類(classification)、客体感知(object detection)、セマンティックセグメンテーション(semantic segmentation)またはスタイル移転(style transfer)などのような多様な応用分野に適用され得る。
【0003】
従来には人工ニューラルネットワークモデルの複雑性(complexity)を減らし、人工ニューラルネットワークモデルの迅速な処理速度のために、人工ニューラルネットワークモデルの加重値(weight)および/またはアクティベーション(activation)を量子化する研究が活発に進行されている。このような人工ニューラルネットワークモデルの量子化は、小さい数のビットで表現される固定小数点データの演算で、高精度(full-precision)モデルの高い数のビットで表現される浮動小数点演算を近似することを目標とする。すなわち、事前学習された高精度モデル(pre-trained full-precision model)から量子化された対応モデル(quantized counterpart)への転移学習(transfer learning)を目標とする。
【0004】
しかし、順伝播(forward-propagation)演算過程で量子化による近似エラーが蓄積され、これに伴い、人工ニューラルネットワークモデルの性能が大きく低下し得る。特に軽量モデル(lightweight model)の場合、量子化による初期統計エラーによって事前学習された高精度モデルの加重値をそのまま使い難いという問題がある。このような問題を解決するために、学習過程でネットワーク量子化(network quantization)をシミュレーションする方法が使われ得る。例えば、量子化認知学習(QAT:quantization-aware training)は、順伝播過程で量子化された推論をシミュレーションし、逆伝播過程でグラジエント(gradient)を計算するために予測器(STE:straight-through estimator)を使う。QAT方法が加重値の範囲で差と極端な加重値(outlier weight value)の数を減少させることができるが、STEによって発生するグラジエント近似エラーを克服することは難しい。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】韓国登録特許第10-1897962号
【発明の概要】
【発明が解決しようとする課題】
【0006】
本開示は、前記のような問題を解決するための人工ニューラルネットワークモデル学習方法、コンピュータプログラムおよび装置(システム)を提供する。
【課題を解決するための手段】
【0007】
本開示は方法、装置(システム)またはコンピュータプログラムを含んだ多様な方式で具現され得る。
【0008】
本開示の一実施例によると、少なくとも一つのプロセッサによって遂行される人工ニューラルネットワークモデル学習方法は、モーメンタム(momentum)基盤の勾配降下法によってあらかじめ設定されたエポック(epoch)まで第1人工ニューラルネットワークモデルを学習して、エポックでの第1人工ニューラルネットワークモデルのモーメンタム値を決定する段階、決定されたモーメンタム値を第2人工ニューラルネットワークモデルの初期モーメンタム値として設定する段階および初期モーメンタム値に基づいて、学習データを利用して第2人工ニューラルネットワークモデルのパラメータ値をアップデートする段階を含み、パラメータ値は複数の加重値(weight)およびモーメンタムを含む。
【0009】
本開示の一実施例に係る人工ニューラルネットワークモデル学習方法をコンピュータで実行するためのコンピュータプログラムが提供される。
【0010】
本開示の一実施例に係る人工ニューラルネットワークモデル学習システムは、通信モジュール、メモリおよびメモリと連結され、メモリに含まれたコンピュータ読み取り可能な少なくとも一つのプログラムを実行するように構成された少なくとも一つのプロセッサを含み、少なくとも一つのプログラムは、モーメンタム基盤の勾配降下法によってあらかじめ設定されたエポックまで第1人工ニューラルネットワークモデルを学習して、エポックでの第1人工ニューラルネットワークモデルのモーメンタム値を決定し、決定されたモーメンタム値を第2人工ニューラルネットワークモデルの初期モーメンタム値として設定し、初期モーメンタム値に基づいて、学習データを利用して第2人工ニューラルネットワークモデルのパラメータ値をアップデートするための命令語を含み、パラメータ値は複数の加重値およびモーメンタムを含む。
【図面の簡単な説明】
【0011】
本開示の実施例は、以下で説明する添付図面を参照して説明され、ここで類似する参照番号は類似する要素を示すが、これに限定されはしない。
【
図1】本開示の一実施例に係る高精度(FP)人工ニューラルネットワークモデルに対する量子化認知学習(QAT)を実行して8ビット整数型(INT8:Integer 8-bit)人工ニューラルネットワークモデルを生成する人工ニューラルネットワーク学習過程の例示を示す図面である。
【
図2】本開示の一実施例に係る人工ニューラルネットワークモデル学習システムの内部構成を示すブロック図である。
【
図3】本開示の一実施例に係る学習データDBと連結されたプロセッサの内部構成を示すブロック図である。
【
図4】本開示の一実施例に係る人工ニューラルネットワークモデル学習方法を示すフローチャートである。
【
図5】本開示の一実施例に係る第2人工ニューラルネットワークモデルのパラメータ値をアップデートする方法を示すフローチャートである。
【
図6】本開示の実施例により生成および学習した人工ニューラルネットワークモデルの性能評価のための、各レイヤー(layer)での加重値グラジエント値のヒストグラム(histograms)である。
【
図7】本開示の実施例により生成および学習した人工ニューラルネットワークモデルの性能評価のための、損失関数グラフ(loss landscapes)である。
【
図8】本開示の実施例により生成および学習したイメージスタイル移転の人工ニューラルネットワークモデルの性能評価結果の例示である。
【
図9】本開示の一実施例に係る人工ニューラルネットワークモデル学習方法を遂行するためのアルゴリズムのフローチャートである。
【発明を実施するための形態】
【0012】
以下、本開示の実施のための具体的な内容を添付された図面を参照して詳細に説明する。ただし、以下の説明では本開示の要旨を不要に曖昧にさせ得る恐れがある場合、広く知られている機能や構成に関する具体的な説明は省略することにする。
【0013】
添付された図面で、同一または対応する構成要素には同じ参照符号が付与されている。また、以下の実施例の説明において、同一または対応する構成要素を重複して記述することが省略され得る。しかし、構成要素に関する技術が省略されても、そのような構成要素がある実施例に含まれないものと意図されはしない。
【0014】
開示された実施例の利点および特徴、そしてそれらを達成する方法は、添付される図面とともに後述されている実施例を参照すると明確になるであろう。しかし、本開示は以下で開示される実施例に限定されるものではなく、互いに異なる多様な形態で具現され得、ただし、本実施例は本開示を完全なものとし、本開示が通常の技術者に発明の範疇を完全に知らせるために提供されるものに過ぎない。
【0015】
本明細書で使われる用語について簡略に説明し、開示された実施例について具体的に説明することにする。本明細書で使われる用語は本開示での機能を考慮しつつ、できるだけ現在広く使われる一般的な用語を選択したが、これは関連分野に従事する技術者の意図または判例、新しい技術の出現などにより変わり得る。また、特定の場合は出願人が任意に選定した用語もあり、この場合、該当する発明の説明の部分で詳細にその意味を記載する。したがって、本開示で使われる用語は単純な用語の名称ではない、その用語が有する意味と本開示の全般にわたった内容に基づいて定義されるべきである。
【0016】
本明細書での単数の表現は文脈上明白に単数であると特定しない限り、複数の表現を含む。また、複数の表現は文脈上明白に複数であると特定しない限り、単数の表現を含む。明細書全体において、ある部分がある構成要素を含むとするとき、これは特に反対の記載がない限り、他の構成要素を除くものではなく他の構成要素をさらに含み得ることを意味する。
【0017】
また、明細書で使われる「モジュール」または「部」という用語はソフトウェアまたはハードウェア構成要素を意味し、「モジュール」または「部」はある役割を遂行する。しかし、「モジュール」または「部」はソフトウェアまたはハードウェアに限定される意味ではない。「モジュール」または「部」はアドレッシングできる保存媒体にあるように構成されてもよく、一つまたはそれ以上のプロセッサを再生させるように構成されてもよい。したがって、一例として、「モジュール」または「部」はソフトウェア構成要素、客体指向ソフトウェア構成要素、クラス構成要素およびタスク構成要素のような構成要素と、プロセス、関数、属性、プロシーザー、サブルーチン、プログラム コードのセグメント、ドライバ、ファームウェア、マイクロコード、回路、データ、データベース、データ構造、テーブル、アレイまたは変数のうち少なくとも一つを含むことができる。構成要素と「モジュール」または「部」は、中で提供される機能はさらに小さい数の構成要素および「モジュール」または「部」で結合されたり、追加的な構成要素と「モジュール」または「部」にさらに分離され得る。
【0018】
本開示の一実施例によると、「モジュール」または「部」はプロセッサおよびメモリで具現され得る。「プロセッサ」は汎用プロセッサ、中央処理装置(CPU)、マイクロ・プロセッサ、デジタル信号プロセッサ(DSP)、制御器、マイクロ制御器、状態マシンなどを含むように広く解釈されるべきである。いくつかの環境において、「プロセッサ」は特定用途向け半導体(ASIC)、プログラム可能ロジックデバイス(PLD)、フィールドプログラム可能ゲートアレイ(FPGA)等を指称することもある。「プロセッサ」は、例えば、DSPとマイクロ・プロセッサの組み合わせ、複数のマイクロ・プロセッサの組み合わせ、DSPコアと結合した一つ以上のマイクロ・プロセッサの組み合わせ、または任意の他のそのような構成の組み合わせのような処理デバイスの組み合わせを指称することもある。また、「メモリ」は電子情報を保存可能な任意の電子コンポーネントを含むように広く解釈されるべきである。「メモリ」はランダムアクセスメモリ(RAM)、読み取り-専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、プログラム可能読み取り-専用メモリ(PROM)、消去-プログラム可能読み取り専用メモリ(EPROM)、電気的に消去可能PROM(EEPROM)、フラッシュメモリ、磁気または光学データ保存装置、レジスタなどのようなプロセッサ-読み取り可能媒体の多様な類型を指称することもある。プロセッサがメモリから情報を読み取り/読み取ったりメモリに情報を記録できるのであれば、メモリはプロセッサと電子通信状態にあると言われる。プロセッサに集積されたメモリはプロセッサと電子通信状態にある。
【0019】
本開示で「高精度(full-precision or high-precision)人工ニューラルネットワークモデル」は大きい数のビットで表現されるデータ型のパラメータを含む人工ニューラルネットワークモデルを指称し得る。例えば、高精度人工ニューラルネットワークモデルは32ビットまたはそれ以上のビット数で表現される浮動小数点データ型のパラメータ(加重値、モーメンタム、カーネル、アクティベーションなど)で構成される人工ニューラルネットワークモデルを含むことができる。これに反し、「低精度(low-precision)人工ニューラルネットワークモデル」は小さい数のビットで表現されるデータ型のパラメータを含む人工ニューラルネットワークモデルを指称し得る。例えば、低精度人工ニューラルネットワークモデルは8ビットで表現される固定小数点または整数データ型のパラメータで構成される人工ニューラルネットワークモデルを含むことができる。
【0020】
本開示で「量子化(quantization)」は、人工ニューラルネットワークのパラメータのデータ型のビット数を減少させることによって、人工ニューラルネットワークのパラメータが保存されるメモリ量またはそのパラメータに対する演算量を減少させる方法を指称し得る。例えば、人工ニューラルネットワークの量子化方法は、高精度人工ニューラルネットワークモデルの学習が完了した後、該当モデルのパラメータのデータ型をさらに小さい数のビットで表現されるデータ型に変換する後量子化方法(post-quantization)、人工ニューラルネットワークの学習過程中に、パラメータのうち少なくとも一部に対する演算を小さい数のビット演算でシミュレーションする量子化認知学習(QAT:quantization-aware training)等を含むことができる。
【0021】
本開示で「エラー逆伝播(error back-propagation)学習」方法は、人工ニューラルネットワークの人工ニューロンに対する入力に対する出力値と学習対象であるターゲット値の差(またはエラー)に基づいて、逆伝播学習過程でパラメータ(例えば、加重値、モーメンタム)をアップデートする方法を指称し得る。エラー逆伝播学習方法は、人工ニューラルネットワークの出力値とターゲット値の差が最小となるように加重値を決定する方法として「勾配降下法(gradient-descent)」を使うことができる。勾配降下法により人工ニューラルネットワークのパラメータをアップデートするとき、人工ニューラルネットワークの学習が局所最低点で停滞する現象が発生し得る。このような問題点を防止するために、以前のエポックでのパラメータのアップデート方向を維持するための要素としてモーメンタム(momentum)を使うことができる。
【0022】
図1は本開示の一実施例に係る高精度(FP:Full-Precision)人工ニューラルネットワークモデルに対する量子化認知学習(QAT)を実行して、8ビット整数型(INT8:Integer 8-bit)人工ニューラルネットワークモデル150を生成する人工ニューラルネットワーク学習過程の例示を示す図面である。
【0023】
図示された人工ニューラルネットワーク学習過程によると、QATモデル130を学習のための初期パラメータ値のうち少なくとも一部をFPモデル110の学習を通じて獲得することができる。一実施例において、QATモデル130のパラメータをモーメンタム基盤の勾配降下法を利用して最適化する場合、QATモデル130の初期パラメータの中でモーメンタムをFPモデル110の学習を通じて獲得することができる。例えば、FPモデル110のパラメータアップデートの最初の一定の周期(例えば、最初周期(first epoch))で決定されたモーメンタムがQATモデル130の初期モーメンタムとして使われ得る。このようにQATモデル130の初期モーメンタムをFPモデル110の最初の一定の周期までの学習を通じて決定されたモーメンタムから決定することによって、QATモデル130が学習過程で局所最低点(local minimum)で停滞することを防止して全域最低点(global minimum)を効果的に探索できるように助けることができる。
【0024】
具体的には、第1モデル学習部120はエラー逆伝播学習方法を利用してFPモデル110のパラメータをアップデートすることができる。ここで、FPモデル110のパラメータは高精度(full-precision)演算が可能なデータ型(例えば、32またはそれ以上のビット数で表現される浮動小数点データ)で表現され得る。したがって、FPモデル110の生成および学習と該当モデルに基づいた推論(inference)の実行時、パラメータを保存および演算処理するために高容量および高費用のメモリおよび計算リソース(resource)が必要であり得る。
【0025】
第1モデル学習部120であらかじめ設定されたエポック(epoch)(例えば、最初の1次エポック)までFPモデル110を学習して、該当エポックでのFPモデル110のパラメータ値を決定することができる。例えば、第1モデル学習部120がモーメンタム基盤の勾配降下法を利用してパラメータを最適化する場合に、最初のエポックでFPモデル110の各レイヤーに学習データを入力して出力値を計算する順伝播(forward-propagation)学習段階を実行し、その出力値とターゲット値の差(エラー)を加重値(weight)で偏微分した値(またはグラジエント(gradient)を利用して該当加重値をアップデートする逆伝播(back-propagation)学習段階を実行することができる。逆伝播学習段階は、各加重値をアップデートする方向がFPモデル110のエラーを最小化するものに設定され得るように、加重値にグラジエントとともにモーメンタムを加えることを含むことができる。ここで、モーメンタム値は以前の段階(または以前のエポック)で計算されたグラジエント値の跡(trace)を累積したものを意味し得る。このように、最初のエポックでのFPモデル110のモーメンタム値(m1)を決定することができる。
【0026】
第2モデル学習部140はこのように決定されたFPモデル110のモーメンタムに基づいてQATモデル130を生成し、生成されたQATモデル130を学習/アップデートすることができる。例えば、第2モデル学習部140は最初のエポックで決定されたFPモデル110のm1をQATモデル130の初期モーメンタム値として設定し、これに基づいて、学習データを利用してQATモデル130を学習/アップデートすることができる。例えば、第2モデル学習部140はモーメンタム基盤の勾配降下法を利用してQATモデル130のパラメータを最適化することができる。
【0027】
一実施例において、第2モデル学習部140は、QATモデル130の順伝播学習過程ではパラメータの量子化の効果をシミュレーション(simulation)して予測値を決定し、逆伝播学習過程では既存の方法の通り高精度のデータ型で表現されたパラメータ値のアップデートを遂行することによってQATモデル130を学習/アップデートすることができる。例えば、第2モデル学習部140はQATモデル130のパラメータ値のうち少なくとも一部を8ビット整数型で表現して順伝播学習過程を遂行し、32ビット実数型で表現されたQATモデル130のパラメータ値を利用して逆伝播学習過程を遂行することができる。したがって、QATモデル130のパラメータの値は32ビットの実数型でアップデートおよび保存され得、QATモデル130は順伝播および逆伝播学習過程がすべて8ビット整数型で学習/アップデートされたモデルより高い精度(または正確度)を有することができる。このために、QATモデル130は人工ニューラルネットワークの各レイヤーに含まれたノードに入力値を伝達する経路にフェイク量子化ノード(fake quantization node)をさらに含み、第2モデル学習部140は順伝播学習過程でフェイク量子化ノードを通じて入力値を量子化された8ビット整数型の値に変換することによって、既存の32ビット実数型演算(例えば、32ビット実数型で表現されたパラメータを含む演算)を通じて8ビット整数型計算を模倣(mimic)することができる。
【0028】
一実施例において、第2モデル学習部140は逆伝播学習過程でQATモデル130の複数のパラメータをグラジエント値に基づいてアップデートすることができる。具体的には、複数のパラメータのうち少なくとも一つのパラメータに対するグラジエント値を増幅し、増幅されたグラジエント値に基づいて、QATモデル130のパラメータ値をアップデートすることができる。このように第2モデル学習部140によりQATモデル130のパラメータ値をアップデートすることによって、QATモデル130の初期エポックでエラーが含まれた情報によってグラジエントが計算されて最適な局所最小値に対する探索領域の範囲を減少させる問題を解決することができる。
【0029】
QATモデル130の学習が完了した後、QATモデル130のパラメータを低精度のデータ型で量子化してINT8モデル150を生成することができる。例えば、32ビット実数型のQATモデル130のパラメータ値を8ビット整数型で量子化して、INT8モデル150を生成することができる。このように生成されたINT8モデル150はQATモデル130より低費用および低容量のリソースを必要とし、該当モデルを利用した推論過程も速い速度で実行することができる。また、以上で説明した方法により生成されたINT8モデル150は、後量子化方式(post-quantization)により高精度データ型で表現されたパラメータを含むFPモデルを学習/アップデートした後に量子化して生成したモデルに比べて、量子化によるエラーをさらに減少させることができ、場合によりさらに向上した性能を有する。
【0030】
図1では第1モデル学習部120と第2モデル学習部140がそれぞれ図示されているが、これに限定せず、第1モデル学習部120と第2モデル学習部140は一つの学習部で統合されて具現され得る。また、
図1ではFPモデル110、QATモデル130およびINT8モデル150がそれぞれ別途の人工ニューラルネットワークモデルで図示されているが、これに限定せず、一つの人工ニューラルネットワークモデル構造に含まれたパラメータ値のデータ型を各学習段階により修正または変更して具現されたものであり得る。
【0031】
図2は、本開示の一実施例に係る人工ニューラルネットワークモデル学習システム200の内部構成を示すブロック図である。人工ニューラルネットワークモデル学習システム200は
図1を参照して前述した少なくとも一つの装置を含んだり、
図1を参照して前述した少なくとも一つの方法を遂行することができる。人工ニューラルネットワークモデル学習システム200は、図示された通り、通信モジュール210、メモリ220およびプロセッサ230を含むことができるが、これに限定されない。人工ニューラルネットワークモデル学習システム200は、本開示の実施例に係る分類(classification)、客体感知(object detection)、セマンティックセグメンテーション(semantic segmentation)またはスタイル移転(style transfer)等の処理を遂行する人工ニューラルネットワークモデルを生成、学習/アップデートすることができる。
【0032】
通信モジュール210は、人工ニューラルネットワークモデル学習システム200が外部装置または外部システム(一例として別途のクラウドシステムなど)と通信するための構成または機能を提供することができる。例えば、人工ニューラルネットワークモデル学習システム200は、通信モジュール210を通じて外部システムから学習データおよび人工ニューラルネットワークモデル学習のためのプログラムコードなどを受信することができる。逆に、人工ニューラルネットワークモデル学習システム200のプロセッサ230の制御により提供される制御信号や命令、データなどが通信モジュール210を通じて外部装置または外部システムに伝達され得る。例えば、人工ニューラルネットワークモデル学習システム200は生成および学習が完了した人工ニューラルネットワークモデルに対するパラメータ、プログラムコードなどを通信モジュール210を通じて外部装置または外部システムに提供することができる。
【0033】
メモリ220は人工ニューラルネットワークモデルのパラメータ(例えば、人工ニューラルネットワークを構成するレイヤーの入力の特性、加重値、カーネルの特性のうち少なくとも一つ)を保存したり、人工ニューラルネットワーク学習方法が具現されたプログラムコードを保存することができる。メモリ220は揮発性メモリまたは不揮発性メモリであり得る。またはメモリ220は非一過性の任意のコンピュータ読み取り可能な記録媒体を含むことができる。例えば、メモリ220はRAM(random access memory)、ROM(read only memory)、ディスクドライブ、SSD(solid state drive)、フラッシュメモリ(flash memory)などのような非消滅性大容量保存装置(permanent mass storage device)を含むことができる。
【0034】
プロセッサ230は、基本的な算術、ロジックおよび入出力演算を遂行することによって、コンピュータプログラムの命令を処理するように構成され得る。命令はメモリ220または通信モジュール210によりプロセッサ230に提供され得る。例えば、プロセッサ230はプログラムを実行することによって、人工ニューラルネットワークモデル学習システム200を制御することができる。プロセッサ230によって実行されるプログラムのコードはメモリ220に保存され得る。人工ニューラルネットワークモデル学習システム200は通信モジュール210または入出力装置(図示されず)を通じて外部装置(例えば、パーソナルコンピュータまたはネットワーク)に連結され、データを交換することができる。一実施例によると、人工ニューラルネットワークモデル学習システム200は人工ニューラルネットワークに関連した演算を高速で処理するCPU(Central Processing Unit)またはGPU(Graphics Processing Unit)、CNN加速器、NPU(Neural Processing Unit)またはVPU(Vision Processing Unit)に採用されて該当専用プロセッサを制御することができる。人工ニューラルネットワークモデル学習システム200は設計意図にしたがって多様なハードウェアを採用したり多様なハードウェアに採用され得、図示された構成要素の実施例に限定されない。人工ニューラルネットワークモデルを生成および学習/アップデート時に前述した実施例を適用する場合、人工ニューラルネットワークの処理で要求されるデータ量または演算量を減らしてメモリを節減し処理速度を高めることができるため、前述した実施例は制限されたリソースを使う環境やエンベデッド端末に適合し得る。一実施例に係る人工ニューラルネットワークモデル学習システム200は、順伝播学習過程でエラーが最小化されるように逆伝播学習過程でパラメータの変更の方向を調節することによって、人工ニューラルネットワークモデルの性能を持続的に発展させることができる。
【0035】
図3は、本開示の一実施例に係る学習データDB310と連結されたプロセッサ230の内部構成を示すブロック図である。図示された通り、プロセッサ230は、例えば通信モジュールを通じて学習データDB310と連結され、データ入力部320、第1人工ニューラルネットワークモデル学習部330、第2人工ニューラルネットワークモデル学習部340および第3人工ニューラルネットワークモデル生成部350を含むことができる。ここで、学習データDB310は人工ニューラルネットワークモデルを生成および学習するために利用される学習データを含むことができる。例えば、学習データDB310は、分類、認識またはセマンティックセグメンテーションの対象となる客体が表現されたイメージ、スタイル移転の対象となるイメージを含むことができる。学習データDB310は、人工ニューラルネットワークモデル学習システム200のメモリに含まれ得る。これとは異なり、学習データDB310は外部システム、外部装置または外部メモリに保存され、通信モジュールを通じて人工ニューラルネットワークモデル学習システム200と連結され得る。
【0036】
データ入力部320は学習データDB310から学習データを受信することができる。選択的にまたは追加的に、データ入力部320は受信された学習データに対するデータ型の変換、次元の縮小、正規化などのような前処理を遂行することができる。データ入力部320が受信した学習データは第1人工ニューラルネットワークモデル学習部330および/または第2人工ニューラルネットワークモデル学習部340で人工ニューラルネットワークモデルを生成および学習するのに使われ得る。
【0037】
一実施例において、第1人工ニューラルネットワークモデル学習部330および第2人工ニューラルネットワークモデル学習部340は、エラー逆伝播学習方式を利用して人工ニューラルネットワークモデルのパラメータ(例えば、加重値)を学習/アップデートすることができる。エラー逆伝播学習方式を利用する場合、第1人工ニューラルネットワークモデル学習部330および第2人工ニューラルネットワークモデル学習部340は、出力エラーを最小化するための最適なパラメータを決定するためにモーメンタム基盤の勾配降下法を利用することができる。例えば、第1人工ニューラルネットワークモデル学習部330および第2人工ニューラルネットワークモデル学習部340は下記の式1に基づいて人工ニューラルネットワークモデルの加重値を学習/アップデートすることができる。
【0038】
Wt+1=Wt+ηg(Wt)+βmt (1)
【0039】
前記式(1)において、Wt、Wt+1それぞれはt番目のエポックでの加重値の値およびt+1番目のエポックでの加重値の値を示し、g(Wt)はグラジエント値を示し、mtはモーメンタム値を示し、βはモーメンタム値の影響力を調節するための定数を示す。ここで、モーメンタム値は以前の段階(または以前のエポック)で計算されたグラジエント値の跡(trace)を累積したものを意味し得、ηは人工ニューラルネットワークモデル学習の学習率を制御するための定数を示す。
【0040】
第1人工ニューラルネットワークモデル学習部330は、第1人工ニューラルネットワークモデルのパラメータを学習/アップデートすることができる。ここで、第1人工ニューラルネットワークモデルのパラメータ値は第1データ型で表現され得る。例えば、第1人工ニューラルネットワークモデル学習部330は32ビット実数型のパラメータで表現されるFPモデルを学習/アップデートすることができる。
【0041】
第2人工ニューラルネットワークモデル学習部340は第2人工ニューラルネットワークモデルのパラメータを学習/アップデートすることができる。一実施例において、第2人工ニューラルネットワークモデル学習部340は第2データ型で表現されたパラメータ値を利用して第2人工ニューラルネットワークモデルの順伝播学習過程を遂行し、第1データ型で表現されたパラメータ値を利用して2人工ニューラルネットワークモデルの逆伝播学習過程を遂行して第2人工ニューラルネットワークモデルのパラメータを学習/アップデートすることができる。ここで、第2データ型は第1データ型より小さい数のビットで表現されるデータ型であり得る(例えば、8ビット整数)。例えば、第2人工ニューラルネットワークモデル学習部340は第2人工ニューラルネットワークモデルのパラメータを量子化認知学習(QAT)方法を通じてアップデートすることができ、第2人工ニューラルネットワークモデルはQATモデルであり得る。この場合、第2人工ニューラルネットワークモデル学習部340は、第2人工ニューラルネットワークモデルの順伝播学習過程の間は8ビット整数型で量子化された推論(quantized inference)をシミュレーションし、逆伝播学習過程の間はSTE(straight through estimator)を使って32ビット実数型で加重値のグラジエント値を計算して加重値をアップデートすることができる。第2人工ニューラルネットワークモデル学習部340が使うQAT方法は、公知のQAT方法のうちいずれか一つを含むかその方法の変形例であり得る(Benoit Jacob、Skirmantas Kligys、Bo Chen、Menglong Zhu、Matthew Tang、Andrew Howard、Hartwig Adam、and Dmitry Kalenichenko、「Quantization and training of neural networks for efficient integer-arithmetic-only inference」 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition、pages 2704-2713.IEEE、2018.参照)。
【0042】
QAT方法によると、パラメータのうち一部の値の量子化によって、グラジエント値を計算するにおいて近似(estimation)によるエラー(error)が発生し得、このようなグラジエント値のエラーは加重値の量子化確率値(quantization statistics)をアップデートするにおいてエラーを発生させ得る。このようなエラーはさらに、次のエポックで計算されるグラジエント値のエラーを引き起こすため、QAT方法による人工ニューラルネットワークモデルの学習を繰り返すほど該当人工ニューラルネットワークモデルのエラーはさらに増幅され得る。第2人工ニューラルネットワークモデル学習部340はこのようなエラー増幅を防止するために、第2人工ニューラルネットワークモデルのための適切な初期モーメンタム値を設定することができる。第2人工ニューラルネットワークモデルの適切な初期モーメンタム値を設定することによって、パラメータが適切な学習方向にアップデートされるように誘導することができ、エラーのあるグラジエント値が無視されることができる。したがって、QAT方法により決定される加重値の量子化確率値は正しい方向にアップデートされ得、グラジエント値のエラーも減少し得る。
【0043】
一実施例において、第2人工ニューラルネットワークモデル学習部340が第2人工ニューラルネットワークモデルのための適切な初期モーメンタム値を設定するために、まず、あらかじめ設定されたエポックまで第1人工ニューラルネットワークモデルを学習して、あらかじめ設定されたエポックでの第1人工ニューラルネットワークモデルのモーメンタム値を決定することができる。また、第2人工ニューラルネットワークモデル学習部340はこのように決定された第1人工ニューラルネットワークモデルのモーメンタム値の提供を受けることができる。例えば、第1人工ニューラルネットワークモデル学習部330は、最初のエポックまで32ビット実数型のパラメータを含むFPモデルを学習してモーメンタムm1値を決定し、モーメンタムm1を第2人工ニューラルネットワークモデル学習部340に提供することができる。その後、第2人工ニューラルネットワークモデル学習部340は、提供されたモーメンタム値を第2人工ニューラルネットワークモデルの初期モーメンタム値として設定し、学習データを利用して第2人工ニューラルネットワークモデルのパラメータをアップデートすることができる。したがって、第2人工ニューラルネットワークモデル学習部340は、第1人工ニューラルネットワークモデル学習部330からFPモデルの適切な初期モーメンタム値の提供を受けてQATモデルの学習初期段階の不安定性を制御することによって、QAT方法によりQATモデルのパラメータを学習するときに発生するエラーを減少させることができる。
【0044】
一実施例において、第2人工ニューラルネットワークモデル学習部340は第2人工ニューラルネットワークモデルの複数の加重値のうち少なくとも一つの加重値に対するグラジエント値を増幅し、増幅されたグラジエント値に基づいて第2人工ニューラルネットワークモデルのパラメータをアップデートすることができる。例えば、第2人工ニューラルネットワークモデル学習部340は、複数の加重値のうち少なくとも一つの加重値に対するグラジエント値の符号に基づいて現在の学習方向に対応する方向にグラジエント値を増幅し、増幅されたグラジエント値に基づいて第2人工ニューラルネットワークモデルのパラメータをアップデートすることができる。
【0045】
第2人工ニューラルネットワークモデル学習部340は、複数の加重値(W)から任意に一部の加重値(w)を抽出して抽出した一部の加重値に対してグラジエント値を増幅し、残りの加重値に対しては増幅しないことができる。一実施例において、第2人工ニューラルネットワークモデル学習部340は下記の式2~4に基づいてグラジエント値を増幅することができる。
【0046】
ψ2=sign(g(w))*|ψ1| (2)
【0047】
ψ3=min(max(ψ2,0),ε) (3)
【0048】
g(w)←g(w)+λψ3 (4)
【0049】
ここで、ψ1は複数の加重値のグラジエント値の確率分布に基づいて決定される歪み値(distortion)を示し、sign(g(w))はg(w)の符号(+あるいは-)を示し、εは急激なグラジエント増幅を防止するためのクランピング係数(clamping factor)を示し、λは指数的に減衰(exponential decay)するエポックの指数(power of t)を示し得る。ここで、歪み値は複数の加重値のグラジエント値のラプラス(Laplace)確率分布に基づいて決定され得る。したがって、前記式によると、g(w)の符号とψ3の符号を一致させ、g(w)にψ3を足すことによって、グラジエント値を現在の学習方向に増幅することができる。
【0050】
第3人工ニューラルネットワークモデル生成部350は、第2人工ニューラルネットワークモデルのパラメータを量子化して第3人工ニューラルネットワークモデルを生成することができる。例えば、第2人工ニューラルネットワークモデルの32ビット実数型のパラメータを8ビット整数型のパラメータで量子化することによって、第3人工ニューラルネットワークモデルを生成することができる。このように生成された第3人工ニューラルネットワークモデルは8ビット整数型のパラメータで構成されるため、該当量子化されたモデルが保存されるメモリの大きさを節減することができ、該当モデルを利用した推論の速度を高めることができるため、制限されたリソースを使う環境やエンベデッド端末に適用され得る。また、第3人工ニューラルネットワークモデルは既存のQAT方法で学習された8ビット整数型人工ニューラルネットワークモデルに比べて向上した性能を有することができる。
【0051】
図4は、本開示の一実施例に係る人工ニューラルネットワークモデル学習方法400を示すフローチャートである。図示された通り、少なくとも一つのプロセッサによって遂行される人工ニューラルネットワークモデル学習方法400は、モーメンタム基盤の勾配降下法によってあらかじめ設定されたエポックまで第1人工ニューラルネットワークモデルを学習して、該当エポックでの第1人工ニューラルネットワークモデルのモーメンタム値を決定する段階(S410)で開始され得る。一実施例によると、最初のエポックまで第1人工ニューラルネットワークモデルを学習して、最初のエポックでの第1人工ニューラルネットワークモデルのモーメンタム値を決定することができる。決定されたモーメンタム値を第2人工ニューラルネットワークモデルの初期モーメンタム値として設定することができる(S420)。
【0052】
その後、初期モーメンタム値に基づいて、学習データを利用して第2人工ニューラルネットワークモデルのパラメータ値をアップデートすることができる(S430)。ここで、パラメータは複数の加重値(weight)およびモーメンタムを含むことができる。一実施例において、プロセッサは第2データ型で表現されたパラメータ値を利用して第2人工ニューラルネットワークモデルの順伝播学習過程を遂行し、第1データ型で表現されたパラメータ値を利用して第2人工ニューラルネットワークモデルの逆伝播学習過程を遂行することができる。第2データ型は第1データ型に比べてさらに小さい数のビットで表現され得る。例えば、第2データ型は8ビット固定小数点データ型であり、第1データ型は32ビット浮動小数点データ型であり得る。
【0053】
一実施例において、アップデートされた第2人工ニューラルネットワークモデルのパラメータ値を量子化して、第3人工ニューラルネットワークモデルを生成することができる。一実施例において、第1人工ニューラルネットワークモデルのパラメータ値は第1データ型で表現され、第2人工ニューラルネットワークモデルのパラメータ値は第1データ型または第2データ型で表現され、第3人工ニューラルネットワークモデルのパラメータ値は第2データ型で表現され得る。
【0054】
図5は、本開示の一実施例に係る第2人工ニューラルネットワークモデルのパラメータ値をアップデートする方法(S430)を示すフローチャートである。一実施例によると、段階(S430)で初期モーメンタム値に基づいて、学習データを利用して第2人工ニューラルネットワークモデルのパラメータ値をアップデートするとき、プロセッサは複数の加重値に対するグラジエント(gradient)値に基づいて、学習データを利用して第2人工ニューラルネットワークモデルのパラメータ値をアップデートすることができる。具体的には、プロセッサは、複数の加重値のうち少なくとも一つの加重値に対するグラジエント値の符号に基づいて、現在の学習方向に対応する方向にグラジエント値を増幅することができる(S510)。また、プロセッサは、増幅されたグラジエント値に基づいて、第2人工ニューラルネットワークモデルのパラメータ値をアップデートすることができる(S520)。
【0055】
図4および
図5で詳述した人工ニューラルネットワークモデル学習方法は、分類、客体感知、セマンティックセグメンテーションまたはスタイル移転などの処理を遂行する人工ニューラルネットワークモデルを生成および学習するのに適用され得る。
【0056】
図6は、本開示の実施例により生成および学習した人工ニューラルネットワークモデルの性能評価のための、各レイヤー(layer)での加重値グラジエント値のヒストグラム(histograms)610、620、630である。
【0057】
本開示の実施例に係る人工ニューラルネットワークモデルの学習方法およびシステムの性能評価のために、前述した人工ニューラルネットワーク学習方法で、CIFAR-10データセットを利用してMobileNetV2モデルを10番目のエポックまで学習した。第1ヒストグラム610は従来の高精度(FP)モデル学習方法で学習した人工ニューラルネットワークモデルの各レイヤーでの加重値グラジエント値を示し、第2ヒストグラム620はFPモデルのモーメンタム値を初期モーメンタム値として利用せず、グラジエント値の増幅を適用しない、従来のQAT方法で学習した人工ニューラルネットワークモデルの各レイヤーでの加重値グラジエント値を示す。また、第3ヒストグラム630は本開示の実施例により、最初のエポックで決定されたFPモデルのモーメンタム値を初期モーメンタム値として利用し、グラジエント値の増幅を適用するQAT方法で学習した人工ニューラルネットワークモデルの各レイヤーでの加重値グラジエント値を示す。すなわち、第1ヒストグラム610は本開示の人工ニューラルネットワーク学習方法およびシステムが目標とするターゲット性能を有する人工ニューラルネットワークモデルのヒストグラムであり得る。
【0058】
第2ヒストグラム620に示された通り、従来のQAT方法によると、STEによるグラジエント近似エラーによってグラジエント値が消えてしまう問題が発生することを確認することができる。反面、第3ヒストグラム630は、本開示の実施例により学習した人工ニューラルネットワークモデルの各レイヤーでの加重値グラジエント値の分布が第1ヒストグラム610の分布と類似していることを示している。したがって、本開示の実施例により学習した人工ニューラルネットワークモデルはターゲット性能を有する人工ニューラルネットワークモデルと類似する性能を有することを確認することができる。
【0059】
図7は、本開示の実施例により生成および学習した人工ニューラルネットワークモデルの性能評価のための、損失関数グラフ(loss landscapes)710、720、730、740である。
【0060】
本開示の実施例に係る人工ニューラルネットワークモデルの学習方法およびシステムの性能評価のために、前述した人工ニューラルネットワーク学習方法で、CIFAR-10データセットを利用してMobileNetV2モデルを学習した。
【0061】
第1グラフ710は従来のFP学習方法で学習した人工ニューラルネットワークモデルの損失関数グラフを示し、第2グラフ720は最初のエポックで決定されたFPモデルのモーメンタム値を利用せず、グラジエント値の増幅なしに、従来のQAT方法で学習した人工ニューラルネットワークモデルの損失関数グラフを示す。また、第3グラフ730は本開示の実施例により、最初のエポックで決定されたFPモデルのモーメンタム値を初期モーメンタム値として利用してQAT方法で学習した人工ニューラルネットワークモデルの損失関数グラフを示し、第4グラフ740は本開示の実施例により、最初のエポックで決定されたFPモデルのモーメンタム値を初期モーメンタム値として利用し、グラジエント値の増幅を適用する、QAT方法で学習した人工ニューラルネットワークモデルの損失関数グラフを示す。すなわち、第1グラフ710は本開示の人工ニューラルネットワーク学習方法およびシステムが目標とするターゲット性能を有する人工ニューラルネットワークモデルの損失関数グラフであり得る。
【0062】
図示された通り、第2グラフ720は平たい表面で示される反面、第3グラフ730および第4グラフ740は第1グラフ710と類似して安定した損失関数グラフを示す。特に、第4グラフ740がより広い範囲の損失領域(loss terrain)を含んで(cover)おり、これを通じて、グラジエント値の増幅を適用するQAT方法により人工ニューラルネットワークを学習する場合、最適な局所最小値(local-minima)の探索領域(search area)が拡張され得ることを確認することができる。
【0063】
図8は、本開示の実施例により生成および学習した人工ニューラルネットワークモデルをイメージスタイル移転の応用分野に適用する場合の性能評価結果の例示である。本開示の多様な実施例に係る人工ニューラルネットワークモデル学習方法は、分類、客体感知、セマンティックセグメンテーションまたはスタイル移転などの処理を遂行する人工ニューラルネットワークモデルを生成および学習するのに適用され得る。
図8は、本開示の実施例により学習したスタイル移転のための人工ニューラルネットワークモデルの入力イメージとそれに対応する出力イメージを図示する。
【0064】
ミニマックス生成損失(minimax generation loss)を適用したPix2Pixスタイル移転モデルを学習することによって、不安定な学習損失に対する本開示の実施例に係る人工ニューラルネットワークモデル学習方法の堅固性を評価することができる。レイヤー融合(layer fusion)互換性のために、ResNet基盤のPix2Pixモデルと本開示の実施例に係る人工ニューラルネットワークモデル学習方法を適用したAdamオプティマイザ(optimizer)を使った。人工ニューラルネットワークを利用した推論過程中に判別子(discriminator)が使われないため、モデルの生成子(generator)にのみフェイク量子化を適用した。本開示の実施例に係る人工ニューラルネットワークモデル学習方法は、ミニマックス基板生成モデルのエラー信号と見なされるモード崩壊を誘発せず、ファジー(fuzzy)学習条件にも適合であることを確認することができる。したがって、図示された通り、本開示の実施例に係る人工ニューラルネットワークモデル学習方法は、多様なイメージ-イメージスタイル移転を遂行できるPix2Pixモデルを学習することができる。
【0065】
一方、下記の表1は本開示の実施例により学習した分類人工ニューラルネットワークモデルのImageNet-1Kデータセットに対する分類結果(上位1正確度)である。
【表1】
【0066】
前記表において、「Params」は各モデルの媒介変数の数を示し、「MAdds」は224×224入力に対して測定された積算-加算値(Multiply-Adds)を示し、「QAT Fine-tune」は従来のQAT方法で学習されたり微細調整された量子化されたモデルを示す。一方、「StatAssist Only」は、本開示の実施例により最初のエポックで決定されたFPモデルのモーメンタム値を初期モーメンタム値として利用してQAT方法で学習したモデルを示し、「StatAssist GradBoost」は本開示の実施例により最初のエポックで決定されたFPモデルのモーメンタム値を初期モーメンタム値として利用し、グラジエント値の増幅を適用する、QAT方法で学習したモデルを示す。
【0067】
「QAT Fine-tune」と「FP training」間の性能差はモデルの構造により異なる。特に、ShuffleNetV2モデルとShuffleNetV2×0.5モデルでその性能差がより大きいことを確認することができる。一方、「StatAssist GradBoost」と「FP training」の性能差が0.9%以下に該当することを確認することができる。したがって、本開示の実施例に係る人工ニューラルネットワークモデル学習方法で学習した分類人工ニューラルネットワークモデルは、FP学習したモデルと類似する性能を有する。
【0068】
下記の表2は本開示の実施例により学習した客体感知人工ニューラルネットワークモデルのPASCAL-VOC2007データセットに対する客体感知結果(mAP)である。
【表2】
【0069】
「MAdds」は300×300入力に対して測定された積算―加算値(Multiply-Adds)を示す。T-DSODモデルの場合、初期学習率(lr)を2e-2に設定し、総180K繰り返しのうち120Kおよび150K繰り返しで学習率を0.1に調整した。SSD-mv2モデルの場合、初期学習率は1e-2であって、総120K繰り返しを使用し、80Kおよび100Kで学習率を調整した。各場合に対してバッチの大きさを64に設定し、性能評価のために各モデルのすべてのレイヤーを融合するように感知器を若干修正した。
【0070】
表2に示された通り、「FP Training」に比べて、「QAT Fine-tune」では若干のmAP下落が示される反面、「StatAssist GradBoost」ではmAP増加が示される。すなわち、「QAT Fine-tune」の性能は「FP training」の性能を凌駕できないが、「StatAssist GradBoost」の性能が「FP training」の性能より優秀であることを確認することができる。
【0071】
下記の表3は本開示の実施例により学習したセマンティックセグメンテーション人工ニューラルネットワークモデルのCityscapesデータセットに対するセマンティックセグメンテーション結果(mIOU)である。
【表3】
【0072】
ここで、「MAdds」は768×768入力に対して測定された積算―加算値(Multiply-Adds)を示し、「-Large」および「-Small」はそれぞれ高いリソース使用事例と低いリソース使用事例を対象とする異なるモデル構成を示し、「-RE」はハードスウィッシュアクティベーション(hard-swish activation)をReLUに取り換えたモデルを示す。
【0073】
学習のために初期学習率を7e-3に設定し、ポリ(poly)学習率日程とともにNesterov-momentum SGDを使った。単一NVIDIA P40 GPUで、モデルに適合するように768×768に無作為に切った汽車のイメージを利用してモデルを学習した。性能評価はフルスケール2048×1024イメージで遂行した。
【0074】
表3に示された通り、「FP training」に比べて、「QAT Fine-tune」は平均0.65%mIOUの減少が示されるが、「StatAssist GradBoost」は平均0.13%mIOUの増加が示される。したがって、「StatAssist GradBoost」の性能が「FP training」の性能と類似するか、「FP training」の性能より優秀であることを確認することができる。
【0075】
図9は、本開示の一実施例に係る人工ニューラルネットワークモデル学習方法を遂行するためのアルゴリズム900のフローチャートである。
図9に図示された本発明に係る人工ニューラルネットワークモデル学習方法を実行するアルゴリズムは、例えばPyTorch 1.4量子化ライブラリを利用して具現され得る(Adam Paszke、Sam Gross、Francisco Massa、Adam Lerer、James Bradbury、Gregory Chanan、Trevor Killeen、Zeming Lin、Natalia Gimelshein、Luca Antiga、Alban Desmaison、Andreas Kopf、Edward Yang、Zachary DeVito、Martin Raison、Alykhan Tejani、Sasank Chilamkurthy、Benoit Steiner、Lu Fang、Junjie Bai、and Soumith Chintala、「Pytorch:An imperative style、high-performance deep learning library、」 In Advances in Neural Information Processing Systems 32、pages 8024-8035.Curran Associates、Inc.、2019.参照)。
【0076】
本実施例に係る人工ニューラルネットワークモデル学習方法を遂行するためのアルゴリズムは、フェイク量子化互換性を有するFPモデルを準備する段階(S910)で開始され得る。例えば、人工ニューラルネットワークモデルを学習するためのプログラムコードで、あらかじめ保存されたFPモデルを呼び出したり宣言することができる。その後、FPモデルの学習ワークフロー(workflow)を生成することができる(S920)。また、人工ニューラルネットワークのパラメータの最適化を遂行するオプティマイザ(optimizer)のバージョンを、人工ニューラルネットワークモデルの加重値の値をアップデートするときにグラジエント値を増幅するバージョンに変更することができる(S930)。その後、FPモデルを最初のエポックまで学習して最初のモーメンタム値を決定することができる(S940)。例えば、段階(S920)で生成した学習ワークフローによりFPモデルを最初のエポックまで学習することができる。
【0077】
その後、レイヤーの融合およびフェイク量子化されたQATモデルを準備することができる(S950)。QATモデルのレイヤーの融合は、推論過程でコンボリューション、正規化およびアクティベーションを一つのコンボリューション演算に統合することによって、演算の遅延を減少させることを意味し得る。例えば、段階(S940)で決定されたFPモデルの最初のモーメンタム値を初期モーメンタム値として設定してQATモデルを準備することができる。
【0078】
このように準備されたQATモデルをQAT方法で学習することができる(S960)。このとき、段階(S930)でオプティマイザのバージョンを、人工ニューラルネットワークモデルの加重値の値をアップデートするときにグラジエント値を増幅するバージョンに変更したので、QATモデルの複数の加重値のうち少なくとも一つの加重値に対するグラジエント値が増幅され、増幅されたグラジエント値に基づいてQATモデルのパラメータ値がアップデートされ得る。QATモデルの学習が完了すると、学習完了したモデルをINT8で量子化されたバージョンに切り替えることができる(S970)。
【0079】
本開示の多様な実施例でQATモデルの適切な初期モーメンタム値を設定することによって、パラメータが適切な学習方向にアップデートされるように誘導することができ、エラーのあるグラジエント値が無視されることができる。これに伴い、エポックを繰り返すにつれて量子化によるエラーが増幅することを防止し、QATモデルのパラメータを学習/アップデートするときに発生するエラーを減少させることができる。
【0080】
本開示の多様な実施例で量子化されたモデルは、FPモデルに比べて生成、学習および推論過程で低費用および低容量のリソースを必要とし、速い速度で推論過程を実行することができる。
【0081】
本開示の多様な実施例で量子化されたモデルは既存のQATモデルを量子化したモデルとは異なって、FPモデルの性能に近接またはさらに改善された性能を有することができる。
【0082】
本開示の多様な実施例で分類、客体感知、セマンティックセグメンテーションまたはスタイル移転などの処理を遂行する優秀な性能を有する軽量モデルを生成および学習することができる。
【0083】
前述人工ニューラルネットワークモデル学習方法はコンピュータで実行するために、コンピュータ読み取り可能な記録媒体に保存されたコンピュータプログラムで提供され得る。媒体はコンピュータで実行可能なプログラムを保存し続けたり、実行またはダウンロードのために仮保存するものでもよい。また、媒体は単一または数個のハードウェアが結合された形態の多様な記録手段または保存手段であり得るが、あるコンピュータシステムに直接接続される媒体に限定されず、ネットワーク上に分散存在するものでもよい。媒体の例示としては、ハードディスク、フロッピーディスクおよび磁気テープのような磁気媒体、CD-ROMおよびDVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical medium)、およびROM、RAM、フラッシュメモリなどを含んでプログラム命令語が保存されるように構成されたものが挙げられる。また、他の媒体の例示として、アプリケーションを流通するアプリストアやその他の多様なソフトウェアを供給乃至流通するサイト、サーバーなどで管理する記録媒体乃至保存媒体が挙げられる。
【0084】
本開示の方法、動作または技法は多様な手段によって具現されてもよい。例えば、このような技法はハードウェア、ファームウェア、ソフトウェア、またはこれらの組み合わせで具現されてもよい。本願の開示と連係して説明された多様な例示的な論理的ブロック、モジュール、回路、およびアルゴリズム段階は、電子ハードウェア、コンピュータソフトウェア、または両者の組み合わせで具現されてもよいことを通常の技術者は理解できるであろう。ハードウェアおよびソフトウェアのこのような相互間の代替を明確に説明するために、多様な例示的な構成要素、ブロック、モジュール、回路、および段階が、それらの機能的な観点で一般的に前述された。そのような機能がハードウェアで具現されるかまたはソフトウェアで具現されるかの有無は、特定のアプリケーションおよび全体システムに賦課される設計要求事項により変わる。通常の技術者はそれぞれの特定のアプリケーションのために多様な方式で説明された機能を具現してもよいが、そのような具現が本開示の範囲から逸脱させるものと解釈されてはならない。
【0085】
ハードウェアの具現において、技法の遂行に利用されるプロセッシングユニットは、一つ以上のASIC、DSP、デジタル信号プロセッシングデバイス(digital signal processing devices;DSPD)、プログラム可能論理デバイス(programmable logic devices;PLD)、フィールドプログラム可能ゲートアレイ(field programmable gate arrays;FPGA)、プロセッサ、制御器、マイクロ制御器、マイクロ・プロセッサ、電子デバイス、本開示に説明された機能を遂行するように設計された他の電子ユニット、コンピュータ、またはこれらの組み合わせ内で具現されてもよい。
【0086】
したがって、本開示と連係して説明された多様な例示的な論理ブロック、モジュール、および回路は汎用プロセッサ、DSP、ASIC、FPGAや他のプログラム可能論理デバイス、離散ゲートやトランジスタロジック、離散ハードウェアコンポーネント、または本願に説明された機能を遂行するように設計されたものなどの任意の組み合わせで具現されたり遂行されてもよい。汎用プロセッサはマイクロ・プロセッサでもよいが、代案として、プロセッサは任意の従来のプロセッサ、制御器、マイクロ制御器、または状態マシンでもよい。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、DSPとマイクロ・プロセッサ、複数のマイクロ・プロセッサ、DSPコアと連係した一つ以上のマイクロ・プロセッサ、または任意の他の構成の組み合わせで具現されてもよい。
【0087】
ファームウェアおよび/またはソフトウェアの具現において、技法はランダムアクセスメモリ(random access memory;RAM)、読み取り専用メモリ(read-only memory;ROM)、不揮発性RAM(non-volatile random access memory;NVRAM)、PROM(programmable read-only memory)、EPROM(erasable programmable read-only memory)、EEPROM(electrically erasable PROM)、フラッシュメモリ、コンパクトディスク(compact disc;CD)、磁気または光学データストレージデバイスなどのようなコンピュータ読み取り可能媒体上に保存された命令として具現されてもよい。命令は一つ以上のプロセッサによって実行可能でもよく、プロセッサに本開示に説明された機能の特定の態様を遂行させてもよい。
【0088】
以上で説明された実施例が一つ以上の独立型のコンピュータシステムで現在開示された主題の態様を活用するものとして記述されたが、本開示はこれに限定されず、ネットワークや分散コンピューティング環境のような任意のコンピューティング環境と連係して具現されてもよい。ひいては、本開示で主題の様相は複数のプロセッシングチップや装置で具現されてもよく、ストレージは複数の装置に亘って類似するように影響を受けることもあり得る。このような装置はPC、ネットワークサーバー、および携帯用装置を含んでもよい。
【0089】
本明細書では本開示が一部の実施例と関連して説明されたが、本開示の発明が属する技術分野の通常の技術者が理解できる本開示の範囲を逸脱しない範囲で多様に変形および変更され得る。また、そのような変形および変更は本明細書に添付された特許請求の範囲内に属するものと理解されるべきである。
【符号の説明】
【0090】
110:FPモデル
120:第1モデル学習部
130:QATモデル
140:第2モデル学習部
150:INT8モデル
200:人工ニューラルネットワークモデル学習システム
210:通信モジュール
220:メモリ
230:プロセッサ