(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-07-20
(45)【発行日】2023-07-28
(54)【発明の名称】ニューラルネットワークモデル軽量化方法およびこれを遂行する電子装置
(51)【国際特許分類】
G06N 3/02 20060101AFI20230721BHJP
【FI】
G06N3/02
(21)【出願番号】P 2023076065
(22)【出願日】2023-05-02
【審査請求日】2023-05-02
(31)【優先権主張番号】10-2022-0057599
(32)【優先日】2022-05-11
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0182086
(32)【優先日】2022-12-22
(33)【優先権主張国・地域又は機関】KR
【早期審査対象出願】
(73)【特許権者】
【識別番号】523165640
【氏名又は名称】ノタ、インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】キュンフワン シム
【審査官】福西 章人
(56)【参考文献】
【文献】中国特許出願公開第114330714(CN,A)
【文献】中国特許出願公開第113283524(CN,A)
【文献】中国特許出願公開第111723915(CN,A)
【文献】中国特許出願公開第110263628(CN,A)
【文献】LUO, Jian-Hao et al.,ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression,v1,2017年07月20日,p.1-9,[オンライン]、インターネット<URL:https://arxiv.org/abs/1707.06342>、[検索日:2019.05.29]
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
電子装置によって遂行されるニューラルネットワークモデル軽量化方法において、
複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデル、前記原本モデルに適用する軽量化程度および前記複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)の入力を受ける段階;
前記メトリックを利用して前記複数のフィルタそれぞれの重要度を決定する段階;
前記原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの残重要度に基づいて前記各フィルタの重要度を正規化することによって、レイヤ単位で前記複数のフィルタそれぞれの重要度を正規化する段階;および
前記正規化された重要度および前記軽量化程度に基づいて前記複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する段階;を含む、方法。
【請求項2】
前記複数のフィルタそれぞれの重要度を決定する段階は、
前記メトリックを利用して各フィルタの重要度を算出する段階、および
前記算出された各フィルタの重要度の重複度に基づいて前記各フィルタの重要度を再算出する段階を含む、請求項1に記載の方法。
【請求項3】
前記各フィルタの算出された重要度の重複度が大きいほど、前記各フィルタの再算出された重要度は小さくなる、請求項2に記載の方法。
【請求項4】
前記各フィルタの算出された重要度の重複度は、
前記各フィルタの算出された重要度、前記各フィルタを含む各レイヤに含まれたフィルタの算出された重要度の平均および標準偏差に基づいて算出される、請求項2に記載の方法。
【請求項5】
前記除去される少なくとも一つのフィルタは、
前記複数のフィルタを重要度の大きさ順で整列し、前記複数のフィルタで重要度の大きさが小さい順で前記軽量化程度に基づいて決定された個数だけ選択される、請求項1に記載の方法。
【請求項6】
前記軽量化する段階は、
前記正規化された重要度および前記原本モデルに含まれた複数のレイヤのうち互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーに基づいて、前記互いに関連したレイヤ上の複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する段階、を含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
ニューラルネットワークモデルを軽量化する電子装置において、
少なくとも一つのインストラクションを保存するメモリ;および
プロセッサ;を含み、
前記プロセッサは、前記少なくとも一つのインストラクションを実行することによって、
複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデル、前記原本モデルに適用する軽量化程度および前記複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)の入力を受け、
前記メトリックを利用して前記複数のフィルタそれぞれの重要度を決定し、
前記原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの残重要度に基づいて前記各フィルタの重要度を正規化することによって、レイヤ単位で前記複数のフィルタそれぞれの重要度を正規化し、
前記正規化された重要度および前記軽量化程度に基づいて前記複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する、電子装置。
【請求項8】
前記プロセッサは、
前記メトリックを利用して各フィルタの重要度を算出し、
前記算出された各フィルタの重要度の重複度に基づいて前記各フィルタの重要度を再算出する、請求項7に記載の電子装置。
【請求項9】
前記各フィルタの算出された重要度の重複度が大きいほど、前記各フィルタの再算出された重要度は小さくなる、請求項8に記載の電子装置。
【請求項10】
前記プロセッサは、
前記各フィルタの算出された重要度、前記各フィルタを含む各レイヤに含まれたフィルタの算出された重要度の平均および標準偏差に基づいて前記各フィルタの算出された重要度の重複度を算出する、請求項8に記載の電子装置。
【請求項11】
前記プロセッサは、
前記複数のフィルタを重要度の大きさ順で整列し、
前記軽量化程度に基づいて決定された個数だけ前記複数のフィルタで重要度の大きさが小さい順で少なくとも一つのフィルタを選択する、請求項7に記載の電子装置。
【請求項12】
前記プロセッサは、
前記正規化された重要度および前記原本モデルに含まれた複数のレイヤのうち互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーに基づいて、前記互いに関連したレイヤ上の複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する、請求項7から11のいずれか一項に記載の電子装置。
【請求項13】
電子装置によって遂行されるニューラルネットワークモデル軽量化方法において、
複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデルおよび前記複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)の入力を受ける段階;
前記メトリックを利用して前記複数のフィルタそれぞれの重要度を決定する段階;
前記原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの残重要度に基づいて前記各フィルタの重要度を正規化することによって、レイヤ単位で前記複数のフィルタそれぞれの重要度を正規化する段階;および
前記正規化された重要度および前記原本モデルに含まれた複数のレイヤのうち互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーに基づいて、前記互いに関連したレイヤ上の複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する段階;を含む、方法。
【請求項14】
前記互いに関連したレイヤは、
複数の第1フィルタを含んだ第1レイヤおよび複数の第2フィルタを含んだ第2レイヤを含み、
前記除去される少なくとも一つのフィルタは、
前記正規化された重要度と使用者が設定した軽量化程度とに基づいて前記複数の第1フィルタのうち第1除去候補を決定し、前記複数の第2フィルタのうち第2除去候補を決定し、
前記ポリシー、前記第1除去候補および前記第2除去候補に基づいて前記複数の第1フィルタのうち第1除去対象を選択し、前記複数の第2フィルタのうち第2除去対象を選択することによって決定される、請求項13に記載の方法。
【請求項15】
前記ポリシーが第1ポリシーである場合、前記第1除去対象は前記第1除去候補のうち前記第2除去候補とインデックスが同一のフィルタに選択され、前記第2除去対象は前記第2除去候補のうち前記第1除去候補とインデックスが同一のフィルタに選択される、請求項14に記載の方法。
【請求項16】
前記ポリシーが第2ポリシーである場合、前記第1除去対象は前記複数の第1フィルタのうち前記第2除去候補とインデックスが同一のフィルタと前記第1除去候補とを含み、前記第2除去対象は前記複数の第2フィルタのうち前記第1除去候補とインデックスが同一のフィルタと前記第2除去候補とを含む、請求項14に記載の方法。
【請求項17】
前記除去される少なくとも一つのフィルタは、
前記ポリシーが第3ポリシーである場合、前記複数のフィルタのうちインデックスが同一のフィルタの重要度の和に基づいて決定される、請求項13に記載の方法。
【請求項18】
前記除去されるフィルタは、
前記ポリシーが第4ポリシーである場合、前記複数のフィルタのうちインデックスが同一のフィルタの重要度の平均に基づいて選択される、請求項13に記載の方法。
【請求項19】
前記互いに関連したレイヤは、
予め設定された演算子を通じて連結され、
前記予め設定された演算子は、
要素別演算子(element-wise operator)を含む、請求項13から18のいずれか一項に記載の方法。
【請求項20】
ニューラルネットワークモデルを軽量化する電子装置において、
少なくとも一つのインストラクションを保存するメモリ;および
プロセッサ;を含み、
前記プロセッサは、前記少なくとも一つのインストラクションを実行することによって、
複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデルおよび前記複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)の入力を受け、
前記メトリックを利用して前記複数のフィルタそれぞれの重要度を決定し、
前記原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの残重要度に基づいて前記各フィルタの重要度を正規化することによって、レイヤ単位で前記複数のフィルタそれぞれの重要度を正規化し、
前記正規化された重要度および前記原本モデルに含まれた複数のレイヤのうち互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーに基づいて、前記互いに関連したレイヤ上の複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する、電子装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示はニューラルネットワークモデル軽量化方法およびこれを遂行する電子装置に関する。
【0002】
[関連出願の相互参照]
本出願は、2022年5月11日に韓国特許庁に出願された韓国特許出願第10-2022-0057599号、および2022年12月22日に韓国特許庁に出願された韓国特許出願第10-2022-0182086号の優先権の利益を主張し、それらの出願の開示内容は、本明細書に参照により組み込まれる。
【背景技術】
【0003】
プルーニング(pruning)はニューラルネットワークモデル軽量化技法の一つであって、相対的に不要な媒介変数(例えば、加重値)を除去する方法である。これまで多様な種類のプルーニング技法が開発されてきたが、いくつかの問題点があった。一例として、不要なフィルタを除去せずにフィルタの一部の加重値を0にマスキング(masking)する技法の場合、特定のデバイスでのみレイテンシ(latency)の減少が現れて実質的には軽量化を通じての速度向上の利点がなかった。
【0004】
他の一例として、不要なフィルタを実際に除去する技法もあったが、特定レイヤ全体が消えてしまってモデルの正確度が急減するという問題があった。また、レイヤ全体が消えないとしても、レイヤ間の連結関係を考慮せずにフィルタを除去するためモデルが含有している情報の歪曲が発生する問題があった。
【0005】
さらに他の一例として、各レイヤごとに使用者が直接軽量化程度を設定するようにする方法があったが、使用者に非常に高い水準の軽量化知識が要されるため進入障壁が非常に高かった。
【0006】
したがって、モデルの正確度の減少を最小化しながらも軽量化によるレイテンシの減少を最大化し、使用者便宜性が向上したプルーニング技法が必要であるのが実情である。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする一技術的課題は、モデルの正確度の減少を最小化しつつ、レイテンシの減少を最大化できる軽量化方法を提供することである。
【0008】
本発明が解決しようとする他の一技術的課題は、モデルの軽量化による情報の歪曲および正確度の顕著な減少を防止できる軽量化方法を提供することである。
【0009】
本発明が解決しようとするさらに他の一技術的課題は、使用者便宜性が向上した軽量化方法を提供することである。
【0010】
本発明の技術的課題は以上で言及した技術的課題に制限されず、言及されていないさらに他の技術的課題は下記の記載から本発明の技術分野における通常の技術者に明確に理解され得るであろう。
【課題を解決するための手段】
【0011】
前述した技術的課題を解決するための本開示の例示的な一実施例によると、電子装置によって遂行されるニューラルネットワークモデル軽量化方法において、複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデル、前記原本モデルに適用する軽量化程度および前記複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)の入力を受ける段階;前記メトリックを利用して前記複数のフィルタそれぞれの重要度を決定する段階;前記原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの残残重要度に基づいて前記各フィルタの重要度を正規化することによって、レイヤ単位で前記複数のフィルタそれぞれの重要度を正規化する段階;および前記正規化された重要度および前記軽量化程度に基づいて前記複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する段階;を含む方法が提供され得る。
【0012】
前述した技術的課題を解決するための本開示の例示的な一実施例によると、ニューラルネットワークモデルを軽量化する電子装置において、少なくとも一つのインストラクションを保存するメモリ;およびプロセッサ;を含み、前記プロセッサは、前記少なくとも一つのインストラクションを実行することによって、複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデル、前記原本モデルに適用する軽量化程度および前記複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)の入力を受け、前記メトリックを利用して前記複数のフィルタそれぞれの重要度を決定し、前記原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの残重要度に基づいて前記各フィルタの重要度を正規化することによって、レイヤ単位で前記複数のフィルタそれぞれの重要度を正規化し、前記正規化された重要度および前記軽量化程度に基づいて前記複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する電子装置が提供され得る。
【0013】
前述した技術的課題を解決するための本開示の例示的な一実施例によると、電子装置によって遂行されるニューラルネットワークモデル軽量化方法において、複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデルおよび前記複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)の入力を受ける段階;前記メトリックを利用して前記複数のフィルタそれぞれの重要度を決定する段階;前記原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの残重要度に基づいて前記各フィルタの重要度を正規化することによって、レイヤ単位で前記複数のフィルタそれぞれの重要度を正規化する段階;および前記正規化された重要度および前記原本モデルに含まれた複数のレイヤのうち互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーに基づいて、前記互いに関連したレイヤ上の複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する段階;を含む方法が提供され得る。
【0014】
前述した技術的課題を解決するための本開示の例示的な一実施例によると、ニューラルネットワークモデルを軽量化する電子装置において、少なくとも一つのインストラクションを保存するメモリ;およびプロセッサ;を含み、前記プロセッサは、前記少なくとも一つのインストラクションを実行することによって、複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデルおよび前記複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)の入力を受け、前記メトリックを利用して前記複数のフィルタそれぞれの重要度を決定し、前記原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの残重要度に基づいて前記各フィルタの重要度を正規化することによって、レイヤ単位で前記複数のフィルタそれぞれの重要度を正規化し、前記正規化された重要度および前記原本モデルに含まれた複数のレイヤのうち互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーに基づいて、前記互いに関連したレイヤ上の複数のフィルタのうち少なくとも一つのフィルタを除去して前記原本モデルを軽量化する電子装置が提供され得る。
【0015】
本開示の課題の解決手段は前述した解決手段に制限されるものではなく、言及されていない解決手段は本明細書および添付された図面から本開示が属する技術分野で通常の知識を有する者に明確に理解され得るであろう。
【発明の効果】
【0016】
以上のような本開示の多様な実施例によると、軽量化方法を利用してモデルの正確度の減少を最小化しつつ、レイテンシの減少を最大化することができる。また、モデルの軽量化による情報の歪曲および正確度の顕著な減少が防止され得る。また、使用者は原本モデルを便利に軽量化できるため満足感が向上し得る。
【0017】
その他に、本開示の実施例によって得ることができるか予測される効果については、本開示の実施例に対する詳細な説明で直接的または暗示的に開示することにする。例えば、本開示の実施例により予測される多様な効果については、後述される詳細な説明内で開示されるであろう。
本開示の他の様相、利点および著しい特徴は、添付された図面と関連して本発明の多様な実施例を開示する下記の詳細な説明から当業者に明白となるであろう。
【図面の簡単な説明】
【0018】
本開示の特定実施例の様相、特徴および利点は添付された図面を参照して後述される説明を通じてより明確となるであろう。
【0019】
【
図1】本開示の一実施例に係るニューラルネットワークモデル軽量化方法を示すフローチャートである。
【
図2】本開示の一実施例に係るフィルタの重要度を決定する方法を示すフローチャートである。
【
図3】本開示の一実施例に係るフィルタの重要度を決定する方法を説明するための図面である。
【
図4】本開示の一実施例に係る重要度を正規化する方法を説明するための図面である。
【
図5】本開示の一実施例に係るニューラルネットワークモデル軽量化方法を示すフローチャートである。
【
図6A】本開示の一実施例に係る第1ポリシーを説明するための図面である。
【
図6B】本開示の一実施例に係る第1ポリシーを説明するための図面である。
【
図7A】本開示の一実施例に係る第2ポリシーを説明するための図面である。
【
図7B】本開示の一実施例に係る第2ポリシーを説明するための図面である。
【
図8A】本開示の一実施例に係る第3ポリシーを説明するための図面である。
【
図8B】本開示の一実施例に係る第3ポリシーを説明するための図面である。
【
図9A】本開示の一実施例に係る第4ポリシーを説明するための図面である。
【
図9B】本開示の一実施例に係る第4ポリシーを説明するための図面である。
【
図10】本開示の一実施例に係る電子装置の構成を図示したブロック図である。
【発明を実施するための形態】
【0020】
本明細書で使われる用語について簡略に説明し、本開示について具体的に説明することにする。
【0021】
本開示の実施例で使われる用語は本開示での機能を考慮しつつ、できる限り現在広く使われる一般的な用語を選択したが、これは当分野に従事する技術者の意図または判例、新しい技術の出現などにより変わり得る。また、特定の場合は出願人が任意に選定した用語もあり、この場合、該当する開示の説明部分で詳細にその意味を記載するであろう。したがって、本開示で使われる用語は単純な用語の名称ではなく、その用語が有する意味と本開示の全般にわたった内容とに基づいて定義されるべきである。
【0022】
本開示の実施例は多様な変換を加えることができ、多様な実施例を有することができるところ、特定実施例を図面に例示して詳細な説明に詳細に説明する。しかし、これは特定の実施形態に対して範囲を限定しようとするものではなく、開示された思想および技術範囲に含まれるすべての変換、均等物または代替物を含むものと理解されるべきである。実施例の説明において関連した公知技術に対する具体的な説明が要旨を曖昧にさせ得る恐れがあると判断される場合、その詳細な説明を省略する。
【0023】
第1、第2等の用語は多様な構成要素の説明に使われ得るが、構成要素は用語によって限定されてはならない。用語は一つの構成要素を他の構成要素から区別する目的でのみ使われる。
【0024】
単数の表現は文脈上明白に異なって意味しない限り、複数の表現を含む。本出願で、「含む」または「構成される」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定しようとするものであって、一つまたはそれ以上の他の特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものなどの存在または付加の可能性を予め排除しないものと理解されるべきである。
【0025】
以下では添付した図面を参照して、本開示の実施例について本開示が属する技術分野で通常の知識を有する者が容易に実施できるように詳細に説明する。しかし、本開示は多様な異なる形態で具現され得、ここで説明する実施例に限定されない。そして、図面で本開示を明確に説明するために説明と関わらない部分は省略し、明細書全体を通じて類似する部分に対しては類似する図面符号を付した。
【0026】
図1は、本開示の一実施例に係るニューラルネットワークモデル軽量化方法を示すフローチャートである。
【0027】
図1を参照すると、電子装置100は複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデル、原本モデルに適用する軽量化程度および複数のフィルタそれぞれの重要度を決定するためのメトリックを受信することができる(S110)。
【0028】
原本モデルはニューラルネットワークモデルであって、一例としては、イメージでオブジェクトを分類するように学習されたモデルであり得る。原本モデルは、複数のレイヤを含み、複数のレイヤのうち少なくとも一部は複数のフィルタ(またはカーネル)を含むことができる。
【0029】
軽量化程度は原本モデルをどの程度軽量化させるかを示す値であり、一例としては、圧縮率やプルーニング比率(pruning ratio)となり得る。
【0030】
メトリック(metric)はフィルタの重要度を決定するための数学式(formula)であり得る。例えば、メトリックは、L2 norm、幾何中央値(Geometric Median)、Nuclear normおよび/またはL1 Normを含むことができる。フィルタの重要度は重要度点数で表され得る。
【0031】
電子装置100は原本モデル、軽量化程度およびメトリックを使用者から入力を受けることができる。例えば、使用者装置は原本モデル、軽量化程度およびメトリックを選択する使用者入力を受信することができる。電子装置100は使用者装置から原本モデル、軽量化程度およびメトリック、またはこれに関連した情報を受信することができる。
【0032】
電子装置100はメトリックを利用して複数のフィルタそれぞれの重要度を決定することができる(S120)。電子装置100はメトリックを利用して複数のフィルタそれぞれの重要度を算出することができる。各フィルタに対応する重要度は、スカラー値であり得る。
【0033】
電子装置100は各フィルタの重要度の重複度に基づいて各フィルタの重要度を再算出することができる。特定フィルタの重要度の重複度は、該当フィルタの重要度が、該当フィルタを含むレイヤに含まれた他のフィルタの重要度とどの程度重複するかを示すことができる。例えば、第1フィルタの重要度が第1フィルタを含む第1レイヤに含まれた全体フィルタの重要度の平均値に近いほど、第1フィルタの重要度の重複度が大きくてもよい。また、第1レイヤに含まれた全体フィルタの重要度の標準偏差が大きいほど、第1フィルタの重要度の重複度が大きいと言える。
【0034】
重要度を再算出する過程で、各フィルタの重要度は重複度により増加したり減少したりし得る。例えば、第1フィルタの重要度の重複度が一定水準以上であれば、第1フィルタの重要度は最初値に比べて減少し得る。第1フィルタの重要度の重複度が一定水準より小さければ、第1フィルタの重要度は最初値に比べて増加し得る。
【0035】
電子装置100は再算出された重要度が低いフィルタを除去するので、重複度が高い重要度を有するフィルタであるほど除去される確率が高いと言える。重複度が高い重要度を有するフィルタが除去される場合、重複度が低い重要度を有するフィルタが除去される場合に比べて情報の歪曲およびモデルの正確度の減少が少なくてもよい。したがって、重複度を考慮してモデルを軽量化すると、軽量化による正確度の減少を最小化しながらも軽量化水準を高めることができるという長所がある。
【0036】
電子装置100は原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの重要度に基づいて各フィルタの重要度を正規化することによって、レイヤ単位で複数のフィルタそれぞれの重要度を正規化することができる(S130)。電子装置100は各レイヤごとに該当レイヤに含まれたフィルタの重要度を合算した値で該当レイヤに含まれた各フィルタの重要度を割って各フィルタの重要度を正規化することができる。例えば、第1レイヤが第1フィルタ、第2フィルタおよび第3フィルタを含む場合、電子装置100は第1フィルタの重要度、第2フィルタの重要度および第3フィルタの重要度を合算した値で第1フィルタの重要度を割って第1フィルタの重要度を正規化することができる。
【0037】
一方、各フィルタの重要度をレイヤ内のすべてのフィルタの重要度の和で割る方式で正規化を進める場合、該当レイヤに含まれたフィルタ数の増加により、フィルタの重要度がフィルタの個数によって退色し得る。また、使用者が設定した軽量化程度が増加することによって一部のレイヤが除去され得る。この場合、モデルの情報の歪曲および正確度の減少が深化し得る。
【0038】
これを防止するために、電子装置100は各フィルタの重要度を正規化する時、該当フィルタを含んだレイヤ内で該当フィルタの重要度以上の重要度を有するフィルタのみ選別することができる。電子装置100は各フィルタの重要度を、選別されたフィルタの重要度の和で割ることができる。すなわち、電子装置100は各フィルタの重要度を正規化する時、該当フィルタの重要度より小さい重要度を有するフィルタは無視することができる。
【0039】
正規化が完了すると、電子装置100はレイヤを区分せずにすべてのフィルタを重要度順で整列することができる。そして、電子装置100は使用者が設定した軽量化程度に基づいて決定された個数だけ重要度が低いフィルタを除去することができる。前述した通り、電子装置100は各フィルタの重要度を正規化する時に該当フィルタの重要度より小さい重要度を有するフィルタは無視するので、軽量化が完了した各レイヤには少なくとも一つのフィルタ(すなわち、各レイヤで重要度が最も高いフィルタ)は残ることになる。各レイヤには少なくとも一つのフィルタが残ることになるので、レイヤ自体が除去されることは発生しなくなる。このように、本開示に係る軽量化方法は、モデルのレイヤを除去しはしないので既存の軽量化方法に比べて情報の歪曲およびモデルの正確度の減少が小さいという長所がある。
【0040】
電子装置100は正規化された重要度および軽量化程度に基づいて、複数のフィルタのうち少なくとも一つのフィルタを除去して原本モデルを軽量化することができる(S140)。電子装置100はレイヤを区分せずにすべてのフィルタを正規化された重要度を基準として整列することができる。電子装置100は軽量化程度に基づいて正規化された重要度が低い少なくとも一つのフィルタを選択することができる。軽量化程度により選択されるフィルタの個数が決定され得る。例えば、軽量化程度が増加するほど、選択されるフィルタの個数も増加し得る。
【0041】
図2は、本開示の一実施例に係るフィルタの重要度を決定する方法(S120)を示すフローチャートである。
【0042】
図2を参照すると、電子装置100はメトリックを利用して複数のフィルタそれぞれの重要度を算出することができる(S121)。
【0043】
電子装置100は算出された重要度の重複度に基づいて複数のフィルタそれぞれの重要度を再算出することができる(S122)。例えば、電子装置100は各フィルタの重要度を標準点数化して各フィルタの重要度を再算出することができる。すなわち、再算出されたフィルタの重要度は、最初に算出された重要度の標準点数であり得る。フィルタの重要度を標準点数化することにより、重要度の重複度は再算出された重要度に反映され得る。
【0044】
電子装置100は各フィルタの重要度の重複度により各フィルタの重要度を調節することができる。例えば、電子装置100は重複度が低い重要度はその大きさを増加させ、重複度が高い重要度はその大きさを減少させることができる。重複度が低い重要度を有するフィルタは除去される場合、モデルの正確度の減少に及ぼす影響が大きい反面、重複度が大きい重要度を有するフィルタは除去されてもモデルの正確度の減少に及ぼす影響が相対的に少ないこともある。したがって、相対的に重複度が大きい重要度を有するフィルタを除去することがモデルの正確度の保存に有利であり得る。
【0045】
図3は、本開示の一実施例に係るフィルタの重要度を決定する方法を説明するための図面である。
【0046】
図3を参照すると、第1レイヤL1は第1フィルタ31、第2フィルタ32および第3フィルタ33を含むことができる。図示された円はフィルタを示し、円内に表示された文字(W、c、r)はフィルタの加重値、重要度および再算出された重要度をそれぞれ示す。各文字の下付きの表記は(レイヤのインデックス値、フィルタまたはチャネルのインデックス値)を示す。フィルタ31、32、33の加重値(W
1、1、W
1、2、W
1、3)は各元素が加重値である所定の大きさを有する行列であり得る。例えば、第1フィルタ31の加重値(W
1、1)は3×3行列であり得る。一方、
図3では便宜上一つのレイヤを基準としてフィルタの重要度を決定する方法を説明するが、後述する方法は原本モデルに含まれた他のレイヤにそのまま適用され得ることを明らかにする。
【0047】
電子装置100は第1数学式(F1)にフィルタ31、32、33の加重値(W1、1、W1、2、W1、3)を適用してフィルタ31、32、33の重要度(c1、1、c1、2、c1、3)を算出することができる。重要度(c1、1、c1、2、c1、3)はスカラー値であり得る。
【0048】
電子装置100は第2数学式(F2)に重要度(c1、1、c1、2、c1、3)を適用してフィルタ31、32、33の重要度を再算出することができる。これに伴い、電子装置100はフィルタ31、32、33の再算出された重要度(c'1、1、c'1、2、c'1、3)を獲得することができる。電子装置100は第2数学式(F2)を利用してフィルタの重要度をレイヤ単位で標準点数化することができる。第2数学式(F2)で、std(clayer)は各レイヤに含まれたすべてのフィルタの重要度の標準偏差を示し、Mean(clayer)は各レイヤに含まれたすべてのフィルタの重要度の平均を示す。第1レイヤL1の場合、std(clayer)は重要度(c1、1、c1、2、c1、3)の標準偏差であり、Mean(clayer)は重要度(c1、1、c1、2、c1、3)の平均値である。
【0049】
第2数学式(F2)はフィルタの重要度の重複度を反映することができる。例えば、第1レイヤに含まれた第1フィルタの重要度と、第1レイヤに含まれたすべてのフィルタの重要度との平均の差が小さいほど第1フィルタの重複度は大きいと言える。
【0050】
図4は、本開示の一実施例に係る重要度を正規化する方法を説明するための図面である。
【0051】
図4を参照すると、電子装置100は第3数学式(F3)にフィルタ31、32、33の再算出された重要度(c'
1、1、c'
1、2、c'
1、3)を適用してフィルタ31、32、33を正規化することができる。これに伴い、電子装置100はフィルタ31、32、33の正規化された重要度(nc
1,1、nc
1,2、nc
1,3)を獲得することができる。
【0052】
第3数学式(F3)を参照すると、正規化はレイヤ単位で遂行される。例えば、第1フィルタ31の重要度(c'1、1)を正規化する場合、第1レイヤL1に含まれたフィルタ31、32、33の重要度(c'1、1、c'1、2、c'1、3)は利用されるが、他のレイヤに含まれたフィルタの重要度は利用されなくてもよい。
【0053】
また、第3数学式(F3)の分母を見ると分かるように、特定フィルタの重要度を正規化する時、該当フィルタより重要度が小さいフィルタの重要度は考慮されなくてもよい。例えば、フィルタ31、32、33のうち最も大きい重要度を有するフィルタが第1フィルタ31である場合、第1フィルタ31を正規化する時に残りのフィルタ32、33の重要度は第3数学式(F3)の分母に反映されなくてもよい。したがって、第1レイヤL1に含まれたフィルタの個数が増加しても、フィルタの重要度はフィルタの個数によって退色されないことができる。また、第1レイヤL1で重要度が最も大きいフィルタの重要度は正規化により1となるので、以後除去するフィルタを選択する過程で選択されなくなって第1レイヤL1全体が除去されることはなくなり得る。
【0054】
一方、第3数学式(F3)では自身より重要度が小さいフィルタの重要度は分母に反映されない。他の実施例として、第3数学式(F3)の分母で、自身より重要度が小さいフィルタの重要度は0に近い非常に小さい値で置換されてもよい。
【0055】
電子装置100は原本モデルに含まれたすべてのフィルタの重要度に対して正規化を遂行できる。そして、電子装置100はレイヤにかかわらずすべてのフィルタを正規化された重要度に基づいて整列することができる。電子装置100は使用者が設定した軽量化程度に基づいて決定された個数だけ重要度が低いフィルタを選択することができる。電子装置100は選択されたフィルタを除去することによって原本モデルを軽量化することができる。電子装置100は軽量化されたモデルを使用者に提供することができる。例えば、電子装置100は軽量化されたモデルに対応するダウンロードデータを使用者に提供することができる。
【0056】
一方、
図3および
図4では第1レイヤL1に含まれたフィルタの個数が3個であるものを例に挙げたが、フィルタの個数が3に限定されるものではないことを明らかにしておく。
【0057】
図5は、本開示の一実施例に係るニューラルネットワークモデル軽量化方法を示すフローチャートである。
【0058】
図5を参照すると、電子装置100は複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデルおよび複数のフィルタそれぞれの重要度を決定するためのメトリック(metric)を受信することができる(S510)。例えば、原本モデルは第1レイヤおよび第2レイヤを含むことができる。第1レイヤは、複数の第1フィルタを含むことができる。第2レイヤは、複数の第2フィルタを含むことができる。
【0059】
電子装置100はメトリックを利用して複数のフィルタそれぞれの重要度を決定することができる(S520)。フィルタの重要度を決定する方法は、
図1ですでに説明したところ、詳細な説明は省略することにする。
【0060】
電子装置100は原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの重要度に基づいて各フィルタの重要度を正規化することによって、レイヤ単位で複数のフィルタそれぞれの重要度を正規化することができる(S530)。本段階は
図1のS130を通じて明確に理解できるところ、詳細な説明は省略することにする。
【0061】
電子装置100は正規化された重要度および原本モデルに含まれた複数のレイヤのうち互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーに基づいて、互いに関連したレイヤ上の複数のフィルタのうち少なくとも一つのフィルタを除去して原本モデルを軽量化することができる(S540)。
【0062】
本開示で互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーは、「フィルタ除去ポリシー」、「剪定ポリシー」または「ポリシー」で簡略に指称され得る。使用者は使用者装置に原本モデルを入力し、剪定ポリシーを設定することができる。電子装置100は使用者装置から原本モデルと剪定ポリシーとを受信することができる。
【0063】
本開示の剪定ポリシーは第1ポリシー、第2ポリシー、第3ポリシーおよび第4ポリシーを含むことができる。第1ポリシーおよび第2ポリシーによると、各レイヤで一部のフィルタが除去候補に決定され、除去候補に決定されたフィルタのインデックスに基づいて最終除去対象が決定され得る。例えば、電子装置100は算出された重要度と使用者が設定した軽量化程度とに基づいて複数の第1フィルタのうち第1除去候補を決定し、複数の第2フィルタのうち第2除去候補を決定することができる。
【0064】
第1ポリシーによると、各レイヤの除去候補のうち、他のレイヤの除去候補とインデックスが同一のフィルタが該当レイヤでの除去対象に決定され得る。例えば、第1除去候補のうち第2除去候補とインデックスが同一のフィルタが第1レイヤでの除去対象に決定され得る。第1ポリシーは、「intersection」とも指称され得る。
【0065】
第2ポリシーによると、各レイヤの除去候補だけでなく、各レイヤで除去候補に決定されないフィルタのうち他のレイヤの除去候補とインデックスが同一のフィルタまで除去対象に決定され得る。例えば、第1レイヤでの除去対象は、第1除去候補と、第1レイヤで第1除去候補に決定されなかったが第2レイヤの第2除去候補とインデックスが同一の第1フィルタを含むことができる。第2ポリシーは、「union」とも指称され得る。
【0066】
第3ポリシーおよび第4ポリシーによると、複数のレイヤに含まれたフィルタのうちインデックスが同一のフィルタの重要度間の追加的な演算を通じて、各インデックス(またはチャネル)に対応する重要度が算出され得る。そして、使用者が設定した軽量化程度と各インデックスに対応する重要度とに基づいて重要度が低いインデックスが選択され得る。選択されたインデックスを有するフィルタが各レイヤで除去される除去対象に決定され得る。第3ポリシーでは、インデックスに対応する重要度を算出する追加的な演算が合算であり得る。第3ポリシーは、「sum」とも指称され得る。第4ポリシーではインデックスに対応する重要度を算出する追加的な演算が平均化であり得る。第4ポリシーは、「average」とも指称され得る。
【0067】
電子装置100は互いに関連した第1レイヤおよび第2レイヤを識別することができる。本開示で複数のレイヤが相互に関連するとは、複数のレイヤが予め設定された演算子を通じて連結されたことを意味する。ここで、複数のレイヤが予め設定された演算子を通じて連結されるとは、複数のレイヤ間で予め設定された演算子に基づいた演算が遂行されることを意味する。例えば、第1レイヤと第2レイヤとが足し算の演算子を通じて連結されて第1レイヤおよび第2レイヤ間の足し算の演算が遂行される場合があり得る。予め設定された演算子は要素別演算子(element-wise operator)および連結演算子(concatenation operator)を含むことができる。要素別演算子は四則演算の演算子を含むことができる。
【0068】
電子装置100は第1レイヤに含まれた複数の第1フィルタそれぞれの重要度および第2レイヤに含まれた複数の第2フィルタそれぞれの重要度を算出することができる。例えば、電子装置100は
図3の重要度決定方法に基づいて、複数の第1フィルタそれぞれの重要度と複数の第2フィルタそれぞれの重要度とを算出することができる。または、電子装置100は
図4の正規化方法を追加的に適用して算出された重要度を正規化することができる。
【0069】
電子装置100は算出された重要度とポリシーに基づいて、第1レイヤおよび第2レイヤで除去されるフィルタを決定することができる。例えば、第1ポリシーまたは第2ポリシーの場合、電子装置100は算出された重要度と使用者が設定した軽量化程度とに基づいて複数の第1フィルタのうち第1除去候補を決定し、複数の第2フィルタのうち第2除去候補を決定することができる。電子装置100はポリシー、第1除去候補および第2除去候補に基づいて、複数の第1フィルタのうち第1除去対象を選択し、複数の第2フィルタのうち第2除去対象を選択することができる。
【0070】
第1ポリシーの場合、電子装置100は第1除去候補のうち第2除去候補とインデックスが同一のフィルタを第1除去対象に選択することができる。また、電子装置100は第2除去候補のうち第1除去候補とインデックスが同一のフィルタを第2除去対象に選択することができる。
【0071】
第2ポリシーの場合、電子装置100は複数の第1フィルタのうち第2除去候補とインデックスが同一のフィルタと第1除去候補を第1除去対象に決定することができる。また、電子装置100は複数の第2フィルタのうち第1除去候補とインデックスが同一のフィルタと第2除去候補を第2除去対象に決定することができる。
【0072】
第3ポリシーの場合、電子装置100は複数の第1フィルタおよび複数の第2フィルタのうちインデックスが同一のフィルタの重要度の和に基づいて各レイヤで除去されるフィルタを決定することができる。第4ポリシーの場合、電子装置100は複数の第1フィルタおよび複数の第2フィルタのうちインデックスが同一のフィルタの重要度の平均に基づいて各レイヤで除去されるフィルタを決定することができる。
【0073】
前述したポリシーは、互いに関連したレイヤに共通してプルーニングを適用するための方法である。本開示のポリシーに基づいて原本モデルにプルーニングを適用すると、互いに関連したレイヤの不均衡な剪定による情報の歪曲およびモデル正確度の顕著な減少を防止することができる。
【0074】
図6Aおよび
図6Bは、本開示の一実施例に係る第1ポリシーを説明するための図面である。
図6Aは除去候補を決定する方法を示し、
図6Bは除去対象を選択する方法を示す。
【0075】
図6Aおよび
図6Bを参照すると、第1レイヤL1は第1フィルタ61、第2フィルタ62、第3フィルタ63および第4フィルタ64を含むことができる。第2レイヤL2は第5フィルタ65、第6フィルタ66、第7フィルタ67および第8フィルタ68を含むことができる。第1フィルタ61と第5フィルタ65とは同一のインデックスを有し、第2フィルタ62と第6フィルタ66とは同一のインデックスを有し、第3フィルタ63と第7フィルタ67とは同一のインデックスを有し、第4フィルタ64と第8フィルタ68とは同一のインデックスを有する。各フィルタを示す円内に表示された数字は該当フィルタの重要度を示す。第1レイヤL1と第2レイヤL2とは足し算の演算子を通じて連結されて互いに関連したレイヤである。
【0076】
図6Aを参照すると、第1レイヤL1で重要度が低い第1フィルタ61および第2フィルタ62が第1除去候補に決定され得る。第2レイヤL2では重要度が低い第6フィルタ66および第8フィルタ68が第2除去候補に決定され得る。一方、本実施例では、各レイヤに除去候補に決定されるフィルタの個数が2であるが、これは一実施例に過ぎず、除去候補に決定されるフィルタの個数は使用者が設定した軽量化程度により変わり得る。例えば、使用者が設定した軽量化程度が増加する場合、除去候補に決定されるフィルタの個数が3に増加し得る。
【0077】
図6Bを参照すると、第1除去候補61、62および第2除去候補66、68でインデックスが同一の第2フィルタ62および第6フィルタ66が除去対象に決定され得る。具体的には、第1除去候補61、62では第2除去候補66、68とインデックスが同一の第2フィルタ62が第1除去対象に決定され得る。第2除去候補66、68では第1除去候補61、62とインデックスが同一の第6フィルタ66が第2除去対象に決定され得る。
【0078】
図7Aおよび
図7Bは、本開示の一実施例に係る第2ポリシーを説明するための図面である。
図7Aは除去候補を決定する方法を示し、
図7Bは除去対象を選択する方法を示す。
【0079】
図7Aおよび
図7Bを参照すると、第1レイヤL1は第1フィルタ61、第2フィルタ62、第3フィルタ63および第4フィルタ64を含むことができる。第2レイヤL2は第5フィルタ65、第6フィルタ66、第7フィルタ67および第8フィルタ68を含むことができる。第1フィルタ61と第5フィルタ65とは同一のインデックスを有し、第2フィルタ62と第6フィルタ66とは同一のインデックスを有し、第3フィルタ63と第7フィルタ67とは同一のインデックスを有し、第4フィルタ64と第8フィルタ68とは同一のインデックスを有する。各フィルタを示す円内に表示された数字は該当フィルタの重要度を示す。第1レイヤL1と第2レイヤL2とは足し算の演算子を通じて連結されて互いに関連したレイヤである。
【0080】
図7Aを参照すると、第1レイヤL1で重要度が低い第1フィルタ61および第2フィルタ62が第1除去候補に決定され得る。第2レイヤL2では重要度が低い第6フィルタ66および第8フィルタ68が第2除去候補に決定され得る。一方、本実施例では、各レイヤに除去候補に決定されるフィルタの個数が2であるが、これは一実施例に過ぎず、除去候補に決定されるフィルタの個数は使用者が設定した軽量化程度により変わり得る。例えば、使用者が設定した軽量化程度が増加する場合、除去候補に決定されるフィルタの個数が3に増加し得る。
【0081】
図7Bを参照すると、第1レイヤL1で除去される第1除去対象として、第1除去候補61、62、および第1レイヤL1に含まれたフィルタ61、62、63、64のうち第2除去候補66、68とインデックスが同一の第4フィルタ64が決定され得る。第2レイヤL2で除去される第2除去対象としては、第2除去候補66、68、および第2レイヤL2に含まれたフィルタ65、66、67、68のうち第1除去候補61、62とインデックスが同一の第5フィルタ65が決定され得る。
【0082】
図8Aおよび
図8Bは、本開示の一実施例に係る第3ポリシーを説明するための図面である。
図8Aは、第1レイヤL1と第2レイヤL2とに含まれたフィルタの重要度の和を示す。
図8Bは、除去対象を選択する方法を示す。
【0083】
図8Aおよび
図8Bを参照すると、第1レイヤL1は第1フィルタ61、第2フィルタ62、第3フィルタ63および第4フィルタ64を含むことができる。第2レイヤL2は第5フィルタ65、第6フィルタ66、第7フィルタ67および第8フィルタ68を含むことができる。第1フィルタ61と第5フィルタ65とは第1インデックスi1を有し、第2フィルタ62と第6フィルタ66とは第2インデックスi2を有し、第3フィルタ63と第7フィルタ67とは第3インデックスi3を有し、第4フィルタ64と第8フィルタ68とは第4インデックスi4を有することができる。各フィルタを示す円内に表示された数字は該当フィルタの重要度を示す。第1レイヤL1と第2レイヤL2とは足し算の演算子を通じて連結されて互いに関連したレイヤである。
【0084】
図8Aは各インデックス別重要度の和を示す。第1インデックスi1を有する第1フィルタ61と第5フィルタ65との重要度に基づいて第1インデックスi1に対応する重要度(すなわち、32)が算出され得る。第2インデックスi2を有する第2フィルタ62と第6フィルタ66との重要度に基づいて第2インデックスi2に対応する重要度(すなわち、30)が算出され得る。第3インデックスi3を有する第3フィルタ63と第7フィルタ67との重要度に基づいて第3インデックスi3に対応する重要度(すなわち、50)が算出され得る。第4インデックスi4を有する第4フィルタ64と第8フィルタ68との重要度に基づいて第4インデックスi4に対応する重要度(すなわち、40)が算出され得る。
【0085】
図8Bを参照すると、重要度が低い第1インデックスi1に対応する第1フィルタ61と第5フィルタ65が除去対象に決定され得る。また、第2インデックスi2に対応する第2フィルタ62と第6フィルタ66とが除去対象に決定され得る。一方、本実施例では、各レイヤで除去対象に決定されるフィルタの個数が2であるが、これは一実施例に過ぎず、除去対象に決定されるフィルタの個数は使用者が設定した軽量化程度により変わり得る。例えば、使用者が設定した軽量化程度が増加する場合、除去対象に決定されるフィルタの個数が3に増加し得る。または使用者が設定した軽量化程度が減少する場合、除去対象に決定されるフィルタの個数が1に減少し得る。
【0086】
図9Aおよび
図9Bは、本開示の一実施例に係る第4ポリシーを説明するための図面である。
図9Aは、第1レイヤL1と第2レイヤL2とに含まれたフィルタの重要度の平均を示す。
図9Bは、除去対象を選択する方法を示す。
【0087】
図9Aおよび
図9Bを参照すると、第1レイヤL1は第1フィルタ61、第2フィルタ62、第3フィルタ63および第4フィルタ64を含むことができる。第2レイヤL2は第5フィルタ65、第6フィルタ66、第7フィルタ67および第8フィルタ68を含むことができる。第1フィルタ61と第5フィルタ65とは第1インデックスi1を有し、第2フィルタ62と第6フィルタ66とは第2インデックスi2を有し、第3フィルタ63と第7フィルタ67とは第3インデックスi3を有し、第4フィルタ64と第8フィルタ68とは第4インデックスi4を有することができる。各フィルタを示す円内に表示された数字は該当フィルタの重要度を示す。第1レイヤL1と第2レイヤL2とは足し算の演算子を通じて連結されて互いに関連したレイヤである。
【0088】
図9Aは、各インデックス別重要度の平均を示す。第1インデックスi1を有する第1フィルタ61と第5フィルタ65との重要度に基づいて第1インデックスi1に対応する重要度(すなわち、16)が算出され得る。第2インデックスi2を有する第2フィルタ62と第6フィルタ66との重要度に基づいて第2インデックスi2に対応する重要度(すなわち、15)が算出され得る。第3インデックスi3を有する第3フィルタ63と第7フィルタ67との重要度に基づいて第3インデックスi3に対応する重要度(すなわち、25)が算出され得る。第4インデックスi4を有する第4フィルタ64と第8フィルタ68との重要度に基づいて第4インデックスi4に対応する重要度(すなわち、20)が算出され得る。
【0089】
図9Bを参照すると、重要度が低い第1インデックスi1に対応する第1フィルタ61と第5フィルタ65とが除去対象に決定され得る。また、第2インデックスi2に対応する第2フィルタ62と第6フィルタ66とが除去対象に決定され得る。一方、本実施例では、各レイヤで除去対象に決定されるフィルタの個数が2であるが、これは一実施例に過ぎず、除去対象に決定されるフィルタの個数は使用者が設定した軽量化程度により変わり得る。例えば、使用者が設定した軽量化程度が増加する場合、除去対象に決定されるフィルタの個数が3に増加し得る。または使用者が設定した軽量化程度が減少する場合、除去対象に決定されるフィルタの個数が1に減少し得る。
【0090】
図10は、本開示の一実施例に係る電子装置の構成を図示したブロック図である。
【0091】
図10を参照すると、電子装置100は通信インターフェース110、メモリ120およびプロセッサ130を含むことができる。例として、電子装置100は物理的サーバーまたはクラウドサーバーで具現され得る。
【0092】
通信インターフェース110は少なくとも一つの通信回路を含み、多様な類型の外部装置と通信を遂行できる。例えば、通信インターフェース110は外部装置から原本モデル、軽量化程度およびメトリックに対する情報を受信することができる。外部装置は使用者装置であり得る。使用者装置は、パソコンおよびモバイル装置を含むことができる。使用者装置は使用者から原本モデル、軽量化程度およびメトリックの入力を受けることができる。
【0093】
通信インターフェース110はワイファイ通信モジュール、セルラー通信モジュール、3G(第3世代)移動通信モジュール、4G(第4世代)移動通信モジュール、第4世代LTE(Long Term Evolution)通信モジュール、5G(第5世代)移動通信モジュールおよび有線イーサネット(登録商標)(Ethernet(登録商標))のうち少なくとも一つを含むことができる。
【0094】
メモリ120は電子装置100の構成要素の全般的な動作を制御するための運営体制(OS:Operating System)および電子装置100の構成要素に関連した命令またはデータを保存することができる。特に、メモリ120は原本モデルを軽量化するためのインストラクション(instruction)を保存することができる。メモリ120は不揮発性メモリ(ex:ハードディスク、SSD(Solid state drive)、フラッシュメモリ)または揮発性メモリなどで具現され得る。
【0095】
プロセッサ130はメモリ120と電気的に連結されて電子装置100の全般的な機能および動作を制御することができる。プロセッサ130はメモリ120に保存されたインストラクションを実行することによって電子装置100を制御することができる。
【0096】
例えば、プロセッサ130は原本モデル、原本モデルに適用する軽量化程度およびメトリックを獲得することができる。プロセッサ130は通信インターフェース110を通じて使用者装置から原本モデル、軽量化程度およびメトリックを受信することができる。原本モデルは複数のレイヤを含むことができる。レイヤは複数のフィルタ(またはカーネル)を含むことができる。
【0097】
プロセッサ130はメトリックを利用して複数のフィルタそれぞれの重要度を決定することができる。プロセッサ130はメトリックを利用して複数のフィルタそれぞれの重要度を算出し、算出された重要度の重複度に基づいて複数のフィルタそれぞれの重要度を再算出することができる。重要度の重複度によりフィルタの重要度は調節され得る。例えば、第1フィルタの算出された重要度の重複度が大きいほど、第1フィルタの再算出された重要度が小さくなり得る。プロセッサ130は第1フィルタの算出された重要度、第1レイヤに含まれたフィルタの算出された重要度の平均および標準偏差に基づいて第1フィルタの算出された重要度の重複度を算出することができる。
【0098】
プロセッサ130は再算出された重要度を正規化することができる。例えば、第1レイヤに含まれた第1フィルタの重要度を正規化する時、プロセッサ130は第1レイヤに含まれたフィルタのうち第1フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの重要度に基づいて第1フィルタの重要度を正規化することができる。
【0099】
プロセッサ130は複数のフィルタを重要度の大きさ順で整列することができる。プロセッサ130は軽量化程度に基づいて決定された個数だけ複数のフィルタで重要度の大きさが小さい順で少なくとも一つのフィルタを選択することができる。または、使用者が設定した軽量化程度に基づいて除去するフィルタを選択するための臨界重要度が決定され得る。この時、プロセッサ130は臨界重要度より重要度が小さいフィルタを選択することができる。プロセッサ130は選択されたフィルタを除去して原本モデルを軽量化することができる。これに伴い、プロセッサ130は軽量化されたモデルを生成することができる。軽量化されたモデルに含まれた複数のレイヤそれぞれは少なくとも一つのフィルタを含むことができる。
【0100】
プロセッサ130は原本モデル、および原本モデルに含まれた複数のレイヤのうち互いに関連したレイヤに含まれたフィルタをともに除去するための方法に関連したポリシーを獲得することができる。また、プロセッサ130は原本モデルを軽量化するための軽量化程度を獲得することができる。
【0101】
プロセッサ130は原本モデルを分析して互いに関連した第1レイヤおよび第2レイヤを識別することができる。例えば、第1レイヤおよび第2レイヤが要素別演算子を通じて連結された場合、プロセッサ130は第1レイヤおよび第2レイヤが互いに関連したと判断することができる。
【0102】
プロセッサ130は第1レイヤに含まれた複数の第1フィルタそれぞれの重要度および第2レイヤに含まれた複数の第2フィルタそれぞれの重要度を算出することができる。プロセッサ130は算出された重要度とポリシーとに基づいて第1レイヤおよび第2レイヤで除去されるフィルタを決定することができる。各ポリシー別に除去されるフィルタを決定する方法は前述したため、その詳細な説明は省略することにする。
【0103】
以上で説明された多様な実施例は、ソフトウェア(software)、ハードウェア(hardware)またはこれらの組み合わせを利用してコンピュータ(computer)またはこれに類似する装置で読み取り可能な記録媒体内で具現され得る。一部の場合において、本明細書で説明される実施例がプロセッサそのもので具現され得る。ソフトウェアで具現される場合、本明細書で説明される手続きおよび機能のような実施例は別途のソフトウェアモジュールで具現され得る。ソフトウェアモジュールそれぞれは本明細書で説明される一つ以上の機能および作動を遂行できる。
【0104】
前述した本開示の多様な実施例に係る処理動作を遂行するためのコンピュータ命令語(computer instructions)は、非一時的コンピュータ読み取り可能媒体(non-transitory computer-readable medium)に保存され得る。このような非一時的コンピュータ読み取り可能媒体に保存されたコンピュータ命令語は、プロセッサによって実行された時に前述した多様な実施例に係る処理動作を特定機器が遂行するようにすることができる。
【0105】
非一時的コンピュータ読み取り可能媒体とは、レジスタ、キャッシュ、メモリなどのように短い瞬間の間データを保存する媒体ではなく、半永久的にデータを保存し、機器によって読み取り(reading)が可能な媒体を意味する。非一時的コンピュータ読み取り可能媒体の具体的な例としては、CD、DVD、ハードディスク、ブルーレイディスク、USB、メモリカード、ROMなどがあり得る。
【0106】
機器で読み取り可能な保存媒体は、非一時的(non-transitory)保存媒体の形態で提供され得る。ここで、「非一時的保存媒体」は実在(tangible)する装置であって、信号(signal)(例:電磁波)を含まないということを意味するだけであり、この用語はデータが保存媒体に半永久的に保存される場合と一時的に保存される場合とを区分しない。例として、「非一時的保存媒体」はデータが一時的に保存されるバッファを含むことができる。
【0107】
本文書に開示された多様な実施例に係る方法は、コンピュータプログラム製品(computer program product)に含まれて提供され得る。コンピュータプログラム製品は、商品として販売者および購入者間で取り引きされ得る。コンピュータプログラム製品は機器で読み取り可能な保存媒体(例:compact disc read only memory(CD-ROM))の形態で配布されるか、またはアプリケーションストア(例:プレイストアTM)を通じて、または二つの使用者装置(例:スマートフォン)間で直接、オンラインで配布(例:ダウンロードまたはアップロード)され得る。オンライン配布の場合に、コンピュータプログラム製品(例:ダウンローダブルアプリ(downloadable app))の少なくとも一部は、メーカーのサーバー、アプリケーションストアのサーバー、または中継サーバーのメモリのような機器で読み取り可能な保存媒体に少なくとも一時保存されるか、一時的に生成され得る。
【0108】
以上では本開示の好ましい実施例について図示し説明したが、本開示は前述した特定の実施例に限定されず、特許請求の範囲で請求する本開示の要旨を逸脱することなく当該開示に属する技術分野で通常の知識を有する者によって多様な変形実施が可能であることはもちろん、このような変形実施は本開示の技術的思想または展望から個別的に理解されてはならないであろう。
【符号の説明】
【0109】
100:電子装置
110:通信インターフェース
120:メモリ
130:プロセッサ
【要約】 (修正有)
【課題】ニューラルネットワークモデル軽量化方法およびこれを遂行する電子装置を提供する。
【解決手段】ニューラルネットワークモデル軽量化方法は、複数のフィルタをそれぞれ含む複数のレイヤを含む原本モデル、軽量化程度およびメトリック(metric)の入力を受ける段階、メトリックを利用して複数のフィルタそれぞれの重要度を決定する段階、原本モデルのそれぞれのレイヤに含まれた複数のフィルタの中で各フィルタの重要度より小さい重要度を有するフィルタを除いた残りのフィルタの重要度に基づいて各フィルタの重要度を正規化することによって、レイヤ単位で複数のフィルタそれぞれの重要度を正規化する段階並びに正規化された重要度及び軽量化程度に基づいて複数のフィルタのうち少なくとも一つのフィルタを除去して原本モデルを軽量化する段階を含む。
【選択図】
図1