特許第6872264号(P6872264)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社ストラッドビジョンの特許一覧

特許6872264ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるCNNパラメータ量子化を最適化するためにCNNレイヤを変換する方法及び装置
<>
  • 特許6872264-ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるCNNパラメータ量子化を最適化するためにCNNレイヤを変換する方法及び装置 図000008
  • 特許6872264-ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるCNNパラメータ量子化を最適化するためにCNNレイヤを変換する方法及び装置 図000009
  • 特許6872264-ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるCNNパラメータ量子化を最適化するためにCNNレイヤを変換する方法及び装置 図000010
  • 特許6872264-ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるCNNパラメータ量子化を最適化するためにCNNレイヤを変換する方法及び装置 図000011
  • 特許6872264-ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるCNNパラメータ量子化を最適化するためにCNNレイヤを変換する方法及び装置 図000012
  • 特許6872264-ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるCNNパラメータ量子化を最適化するためにCNNレイヤを変換する方法及び装置 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6872264
(24)【登録日】2021年4月21日
(45)【発行日】2021年5月19日
(54)【発明の名称】ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるCNNパラメータ量子化を最適化するためにCNNレイヤを変換する方法及び装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20210510BHJP
   G06N 3/04 20060101ALI20210510BHJP
   G06N 3/08 20060101ALI20210510BHJP
【FI】
   G06T7/00 350C
   G06N3/04
   G06N3/08
【請求項の数】14
【全頁数】17
(21)【出願番号】特願2019-238383(P2019-238383)
(22)【出願日】2019年12月27日
(65)【公開番号】特開2020-119518(P2020-119518A)
(43)【公開日】2020年8月6日
【審査請求日】2019年12月27日
(31)【優先権主張番号】16/255,197
(32)【優先日】2019年1月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】517038176
【氏名又は名称】株式会社ストラドビジョン
(74)【代理人】
【識別番号】100121728
【弁理士】
【氏名又は名称】井関 勝守
(74)【代理人】
【識別番号】100165803
【弁理士】
【氏名又は名称】金子 修平
(72)【発明者】
【氏名】キム ゲヒョン
(72)【発明者】
【氏名】キム ヨンジュン
(72)【発明者】
【氏名】キム インス
(72)【発明者】
【氏名】キム ハクギョン
(72)【発明者】
【氏名】ナム ウンヒョン
(72)【発明者】
【氏名】ブ ソクフン
(72)【発明者】
【氏名】ソン ミョンチョル
(72)【発明者】
【氏名】ヨ ドンフン
(72)【発明者】
【氏名】リュ ウジュ
(72)【発明者】
【氏名】ジャン テウン
(72)【発明者】
【氏名】ジョン ギョンジュン
(72)【発明者】
【氏名】ジェ ホンモ
(72)【発明者】
【氏名】ジョ ホジン
【審査官】 合田 幸裕
(56)【参考文献】
【文献】 国際公開第2015/078018(WO,A1)
【文献】 国際公開第2017/196931(WO,A1)
【文献】 特開2018−181124(JP,A)
【文献】 国際公開第2018/031833(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 3/04
G06N 3/08
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
m個のコンボリューションブロックを含むCNNのコンボリューションレイヤを変換する方法において、
(a)コンピューティング装置が、スケーリングパラメータを決定するために使用される入力イメージが取得されると、(i)第kコンボリューションブロックに含まれた第k初期コンボリューションレイヤの一つ以上の第k初期重み付け値と、(ii)(ii−1)kが1である場合、前記入力イメージ、(ii−2)kが2からmまでの常数である場合、第(k−1)コンボリューションブロックから出力された前記入力イメージに対応する第(k−1)特徴マップと、(iii)(iii−1)kが1である場合、前記入力イメージに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれ、及び(iii−2)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれを参照して、一つ以上の第k量子化ロス値と、を生成する段階(kは1からmまでの常数である);
(b)前記コンピューティング装置が、前記第k量子化ロス値を参照して、前記第kスケーリングパラメータのうちで前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する第k最適スケーリングパラメータそれぞれを決定する段階;
(c)前記コンピューティング装置が、前記第k最適スケーリングパラメータを参照して、第kスケーリングレイヤ及び第k逆スケーリングレイヤを生成する段階;
(d)前記コンピューティング装置が、(i)kが1である場合、前記第kスケーリングレイヤを使用して、前記第k初期コンボリューションレイヤを第k統合コンボリューションレイヤに変換し、(ii)kが2からmまでの常数である場合、前記第kスケーリングレイヤ及び前記第(k−1)逆スケーリングレイヤを使用して、前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換する段階;
を含むことを特徴とする方法。
【請求項2】
前記(a)段階は、
前記コンピューティング装置が、(iv)BW値(前記BW値は、前記CNNに含まれた重み付け値及び特徴マップに含まれた値を二進数で表現するために使用されたビットの個数である)、及び(v)第kFL値(前記第kFL値は、(i)前記第k初期コンボリューションレイヤの前記第k初期重み付け値、及び(ii)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれた値であり、kが1である場合、前記入力イメージに含まれた値のLSBが示す数の指数の絶対値である)をさらに参照して、前記第k量子化ロス値を生成することを含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記(a)段階は、
【数1】
前記数1によって前記第k量子化ロス値が生成され、前記数1でθは(i)kが2からmまでの常数である場合、前記第(k−1)特徴マップ及び前記第k初期コンボリューション特徴マップの前記第k初期重み付け値の値、(ii)kが1である場合、前記入力イメージ及び前記第k初期コンボリューション特徴マップの前記第k初期重み付け値の値を含み、Ckiは、前記第kスケーリングパラメータのうちで特定の第kスケーリングパラメータであり、FL及びBWはそれぞれ前記第kFL値及び前記BW値であり、Q演算は、前記第kFL値及び前記BW値を参照して生成されたCkiθの量子化された値とCkiθとの間の差を生成する演算であり、
前記(b)段階は、前記コンピューティング装置が、前記△Lを最も小さくする前記Ckiを選択することにより、前記第k最適スケーリングパラメータそれぞれを決定することを特徴とする請求項2に記載の方法。
【請求項4】
前記コンピューティング装置が、ネステロフ加速勾配(Nesterov Accelerated Gradient)法を使用して、前記Ckiを選択して前記第k最適スケーリングパラメータを決定することを特徴とする請求項3に記載の方法。
【請求項5】
前記(c)段階は、
前記コンピューティング装置が、
前記第k最適スケーリングパラメータそれぞれがその構成要素として決定される前記第kスケーリングレイヤを生成し、前記第k最適スケーリングパラメータの逆数それぞれがその構成要素として決定される前記第k逆スケーリングレイヤを生成することを特徴とする請求項1に記載の方法。
【請求項6】
前記(d)段階は、
前記コンピューティング装置が、(1)kが1である場合、(i)前記第k初期コンボリューションレイヤ及び前記第kスケーリングレイヤの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を前記入力値に適用して生成された結果との間の差が閾値より小さくなるように前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換し、(2)kが2以上m以下の常数である場合、(i)第(k−1)逆スケーリングレイヤと、前記第k初期コンボリューションレイヤと、前記第kスケーリングレイヤとの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を入力値に適用して生成された結果との間の差が前記閾値より小さくなるように前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換することを特徴とする請求項1に記載の方法。
【請求項7】
(e)前記コンピューティング装置が、前記第kコンボリューションブロックに含まれた前記第k統合コンボリューションレイヤの各重み付け値を量子化して、前記第kコンボリューションブロックにより遂行されるCNN演算に対する最適化重み付け値として、第k量子化重み付け値を生成する段階;
をさらに含むことを特徴とする請求項1に記載の方法。
【請求項8】
m個のコンボリューションブロックを含むCNNのコンボリューションレイヤを変換するコンピューティング装置において、
各インストラクションを格納する少なくとも一つのメモリと、
(I)(i)第kコンボリューションブロックに含まれた第k初期コンボリューションレイヤの一つ以上の第k初期重み付け値と、(ii)(ii−1)kが1である場合、スケーリングパラメータを決定するために使用される入力イメージ、(ii−2)kが2からmまでの常数である場合、第(k−1)コンボリューションブロックから出力された前記入力イメージに対応する第(k−1)特徴マップと、(iii)(iii−1)kが1である場合、前記入力イメージに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれ、及び(iii−2)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれを参照して、一つ以上の第k量子化ロス値と、を生成するプロセス(kは1からmまでの常数である);(II)前記第k量子化ロス値を参照して、前記第kスケーリングパラメータのうちで前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する第k最適スケーリングパラメータそれぞれを決定するプロセス;(III)前記第k最適スケーリングパラメータを参照して、第kスケーリングレイヤ及び第k逆スケーリングレイヤを生成するプロセス;(IV)(i)kが1である場合、前記第kスケーリングレイヤを使用して、前記第k初期コンボリューションレイヤを第k統合コンボリューションレイヤに変換し、(ii)kが2からmまでの常数である場合、前記第kスケーリングレイヤ及び前記第(k−1)逆スケーリングレイヤを使用して前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換するプロセス;を遂行するための前記インストラクションを実行するように構成された少なくとも一つのプロセッサと、
を含むことを特徴とするコンピューティング装置。
【請求項9】
前記(I)プロセスは、
前記プロセッサが、(iv)BW値(前記BW値は、前記CNNに含まれた重み付け値及び特徴マップに含まれた値を二進数で表現するために使用されたビットの個数である)、及び(v)第kFL値(前記第kFL値は、(1)前記第k初期コンボリューションレイヤの前記第k初期重み付け値、及び(2)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれた値であり、kが1である場合、前記入力イメージに含まれた値のLSBが示す数の指数の絶対値である)をさらに参照して、前記第k量子化ロス値を生成することを含むことを特徴とする請求項8に記載のコンピューティング装置。
【請求項10】
前記(I)プロセスは、
前記プロセッサが、
【数2】
前記数2によって前記第k量子化ロス値が生成され、前記数2でθは(i)kが2からmまでの常数である場合、前記第(k−1)特徴マップ及び前記第k初期コンボリューション特徴マップの前記第k初期重み付け値の値、(ii)kが1である場合、前記入力イメージ及び前記第k初期コンボリューション特徴マップの前記第k初期重み付け値の値を含み、Ckiは、前記第kスケーリングパラメータのうちで特定の第kスケーリングパラメータであり、FL及びBWはそれぞれ前記第kFL値及び前記BW値であり、Q演算は、前記第kFL値及び前記BW値を参照して生成されたCkiθの量子化された値とCkiθとの間の差を生成する演算であり、
前記(II)プロセスは、
前記プロセッサが、
前記△Lを最も小さくする前記Ckiを選択することにより、前記第k最適スケーリングパラメータそれぞれを決定することを特徴とする請求項9に記載のコンピューティング装置。
【請求項11】
前記プロセッサが、ネステロフ加速勾配(Nesterov Accelerated
Gradient)法を使用して、前記Ckiを選択して前記第k最適スケーリングパラメータを決定することを特徴とする請求項10に記載のコンピューティング装置。
【請求項12】
前記(III)プロセスは、
前記プロセッサが、前記第k最適スケーリングパラメータそれぞれがその構成要素として決定される前記第kスケーリングレイヤを生成し、前記第k最適スケーリングパラメータの逆数それぞれがその構成要素として決定される前記第k逆スケーリングレイヤを生成することを特徴とする請求項8に記載のコンピューティング装置。
【請求項13】
前記(IV)プロセスは、
前記プロセッサが、(1)kが1である場合、(i)前記第k初期コンボリューションレイヤ及び前記第kスケーリングレイヤの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を前記入力値に適用して生成された結果との差が閾値より小さくなるように前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換し、(2)kが2以上m以下の常数である場合、(i)第(k−1)逆スケーリングレイヤと、前記第k初期コンボリューションレイヤと、前記第kスケーリングレイヤとの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を入力値に適用して生成された結果との間の差が前記閾値より小さくなるように前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換することを特徴とする請求項8に記載のコンピューティング装置。
【請求項14】
前記プロセッサが、
(V)前記第kコンボリューションブロックに含まれた前記第k統合コンボリューションレイヤの重み付け値を量子化して、前記第kコンボリューションブロックにより遂行されるCNN演算に対する最適化重み付け値として、第k量子化重み付け値を生成するプロセス;をさらに遂行することを特徴とする請求項8に記載のコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、m個のコンボリューションブロックを含むCNNのコンボリューションレイヤを変換する方法において、(a)コンピューティング装置が、スケーリングパラメータを決定するために使用される入力イメージが取得されると、(i)第kコンボリューションブロックに含まれた第k初期コンボリューションレイヤの一つ以上の第k初期重み付け値と、(ii)(ii−1)kが1である場合、前記入力イメージ、(ii−2)kが2からmまでの常数である場合、第(k−1)コンボリューションブロックから出力された前記入力イメージに対応する第(k−1)特徴マップと、(iii)(iii−1)kが1である場合、前記入力イメージに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれ、及び(iii−2)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれを参照して、一つ以上の第k量子化ロス値と、を生成する段階(kは1からmまでの常数である);(b)前記コンピューティング装置が、前記第k量子化ロス値を参照して、前記第kスケーリングパラメータのうちで前記第(k−1)特徴マップに含まれた前記チャンネルそれぞれに対応する第k最適スケーリングパラメータそれぞれを決定する段階;(c)前記コンピューティング装置が、前記第k最適スケーリングパラメータを参照して第kスケーリングレイヤ及び第k逆スケーリングレイヤを生成する段階;(d)前記コンピューティング装置が、(i)kが1である場合、前記第kスケーリングレイヤを使用して、前記第k初期コンボリューションレイヤを第k統合コンボリューションレイヤに変換し、(ii)kが2からmまでの常数である場合、前記第kスケーリングレイヤ及び前記第(k−1)逆スケーリングレイヤを使用して前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換する段階;を含むことを特徴とする方法及び装置に関する。
【背景技術】
【0002】
ディープコンボリューションニューラルネットワーク(Deep Convolution Neural Networks;DeepCNN)は、ディープラーニング分野で起きた驚くべき発展の核心である。CNNは文字の認識問題を解決するために90年代にも使用されたが、近年になって機械学習(Machine Learning)分野で広く使用されるようになった。例えば、CNNは2012年にイメージ認識コンテスト(ImageNet Large Scale Visual Recognition Challenge)で他の競争相手に勝って優勝を収めた。その後、CNNは、機械学習分野で非常に有用なツールとして使用されるようになった。
【0003】
しかし、ディープラーニングアルゴリズムには、32ビット浮動小数点演算が必要であるという偏見があったため、モバイル装置は、ディープラーニングアルゴリズムを含むプログラムを遂行することができないものとみなされていた。
【0004】
ところが、32ビット浮動小数点演算より少ないコンピューティング性能が必要な10ビット固定小数点演算がディープラーニングアルゴリズムには十分であるということが一部の実験で証明された。従って、リソースが制限された装置、すなわちモバイル装置において、ディープラーニングアルゴリズムに10ビット固定小数点演算を使用する方法を提供しようとする多くの試みがあった。
【0005】
32ビット浮動小数点で表現された数を10ビット固定小数点に量子化するいくつかの成功裏の方法が提示されたが、重要な問題があった。複数のチャンネルに含まれた値が大きく変わる場合、チャンネルのうち小さな値を含む一つ以上の特定チャンネルの値が無視されることがある。それは、図5において見ることができる。
【0006】
図5は、大きく異なる様々なチャンネルの値を例示的に示している。
【0007】
図5を参照すると、第1コンボリューションブロック210−1から出力された第1特徴マップの第1チャンネルに含まれた各値は、(0.64、0.65、0.63)であり、第2チャンネルに含まれた各値は、(0.002、0.001、0.0019)であることが分かる。従来技術によると、第1チャンネルの値及び第2チャンネルの値が量子化される場合、量子化に使用される単位値は第1チャンネルまたは第2チャンネルによって決定された。
【発明の概要】
【発明が解決しようとする課題】
【0008】
単位値が第1チャンネルによって決定される場合、単位値は第1チャンネルに含まれた値を示すために大きくなる。そして、単位値が第2チャンネルに含まれた値に比べてあまりにも大きいため、第2チャンネルに含まれた値は0に量子化され得る。反対に、単位値が第2チャンネルによって決定される場合、単位値は第2チャンネルに含まれた値を示すために小さくなる。それでは、単位値があまりにも小さくて第1チャンネルに含まれた値を正しく量子化することができない。
【0009】
特定チャンネルの各値が無視されるか、または特定チャンネルの各値が上記のように適切に量子化されなければ、CNNの出力が歪曲されかねない。
【0010】
本発明は、上述した問題点を解決することを目的とする。
【0011】
本発明は、出力値にある小さな値を含む特定チャンネルの各値を適切に反映するために、少なくとも一つの特徴マップに含まれた値を平坦化することができるようにCNNレイヤを変換する方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
前記のような本発明の目的を達成し、後述する本発明の特徴的な効果を実現するための本発明の特徴的な構成は以下の通りである。
【0013】
本発明の一態様によると、m個のコンボリューションブロックを含むCNNのコンボリューションレイヤを変換する方法において、(a)コンピューティング装置が、スケーリングパラメータを決定するために使用される入力イメージが取得されると、(i)第kコンボリューションブロックに含まれた第k初期コンボリューションレイヤの一つ以上の第k初期重み付け値と、(ii)(ii−1)kが1である場合、前記入力イメージ、(ii−2)kが2からmまでの常数である場合、第(k−1)コンボリューションブロックから出力された前記入力イメージに対応する第(k−1)特徴マップと、(iii)(iii−1)kが1である場合、前記入力イメージに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれ、及び(iii−2)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれを参照して、一つ以上の第k量子化ロス値と、を生成する段階(kは1からmまでの常数である);(b)前記コンピューティング装置が、前記第k量子化ロス値を参照して、前記第kスケーリングパラメータのうちで前記第(k−1)特徴マップに含まれた前記チャンネルそれぞれに対応する第k最適スケーリングパラメータそれぞれを決定する段階;(c)前記コンピューティング装置が、前記第k最適スケーリングパラメータを参照して第kスケーリングレイヤ及び第k逆スケーリングレイヤを生成する段階;(d)前記コンピューティング装置が、(i)kが1である場合、前記第kスケーリングレイヤを使用して、前記第k初期コンボリューションレイヤを第k統合コンボリューションレイヤに変換し、(ii)kが2からmまでの常数である場合、前記第kスケーリングレイヤ及び前記第(k−1)逆スケーリングレイヤを使用して前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換する段階;を含むことを特徴とする方法が提供される。
【0014】
一実施例において、前記(a)段階は、前記コンピューティング装置が、(iv)BW値(前記BW値は、前記CNNに含まれた重み付け値及び特徴マップに含まれた値を二進数で表現するために使用されたビットの個数である)、及び(v)第kFL値(前記第kFL値は、(i)前記第k初期コンボリューションレイヤの前記第k初期重み付け値、及び(ii)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれた値であり、kが1である場合、前記入力イメージに含まれた値のLSBが示す数の指数の絶対値である)をさらに参照して、前記第k量子化ロス値を生成することを含むことを特徴とする方法が提供される。
【0015】
【数1】
一実施例において、前記(a)段階は、前記数式によって前記第k量子化ロス値が生成され、前記数式でθは(i)kが2からmまでの常数である場合、前記第(k−1)特徴マップ及び前記第k初期コンボリューション特徴マップの前記第k初期重み付け値の値、(ii)kが1である場合、前記入力イメージ及び前記第k初期コンボリューション特徴マップの前記第k初期重み付け値の値を含み、Ckiは、前記第kスケーリングパラメータのうちで特定の第kスケーリングパラメータであり、FL及びBWはそれぞれ前記FL値及び前記BW値であり、Q演算は、前記FL値及び前記BW値を参照して生成されたCkiθの量子化された値とCkiθとの間の差を生成する演算であり、前記(b)段階は、前記コンピューティング装置が、前記△Lを最も小さくする前記Ckiを選択することにより、前記第k最適スケーリングパラメータそれぞれを決定することを特徴とする方法が提供される。
【0016】
一実施例において、前記コンピューティング装置が、ネステロフ加速勾配(Nesterov Accelerated Gradient)法を使用して、前記Ckiを選択して前記第k最適スケーリングパラメータを決定することを特徴とする方法が提供される。
【0017】
一実施例において、前記(c)段階は、前記コンピューティング装置が、前記第k最適スケーリングパラメータそれぞれがその構成要素として決定される前記第kスケーリングレイヤを生成し、前記第k最適スケーリングパラメータの逆数それぞれがその構成要素として決定される前記第k逆スケーリングレイヤを生成することを特徴とする方法が提供される。
【0018】
一実施例において、前記(d)段階は、前記コンピューティング装置が、(1)kが1である場合、(i)前記第k初期コンボリューションレイヤ及び前記第kスケーリングレイヤの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を前記入力値に適用して生成された結果との間の差が閾値より小さくなるように前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換し、(2)kが2以上m以下の常数である場合、(i)第(k−1)逆スケーリングレイヤと、前記第k初期コンボリューションレイヤと、前記第kスケーリングレイヤとの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を入力値に適用して生成された結果との間の差が前記閾値より小さくなるように前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換することを特徴とする方法が提供される。
【0019】
一実施例において、(e)前記コンピューティング装置が、前記第kコンボリューションブロックに含まれた前記第k統合コンボリューションレイヤの各重み付け値を量子化して、前記第kコンボリューションブロックによって遂行されるCNN演算に対する最適化重み付け値として、第k量子化重み付け値を生成する段階;をさらに含むことを特徴とする方法が提供される。
【0020】
本発明の他の態様によると、m個のコンボリューションブロックを含むCNNのコンボリューションレイヤを変換するコンピューティング装置において、各インストラクションを格納する少なくとも一つのメモリと、(I)(i)第kコンボリューションブロックに含まれた第k初期コンボリューションレイヤの一つ以上の第k初期重み付け値と、(ii)(ii−1)kが1である場合、スケーリングパラメータを決定するために使用される入力イメージ、(ii−2)kが2からmまでの常数である場合、第(k−1)コンボリューションブロックから出力された前記入力イメージに対応する第(k−1)特徴マップと、(iii)(iii−1)kが1である場合、前記入力イメージに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれ、及び(iii−2)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する第kスケーリングパラメータそれぞれを参照して、一つ以上の第k量子化ロス値と、を生成するプロセス(kは1からmまでの常数である);(II)前記第k量子化ロス値を参照して、前記第kスケーリングパラメータのうちで前記第(k−1)特徴マップに含まれた前記チャンネルそれぞれに対応する第k最適スケーリングパラメータそれぞれを決定するプロセス;(III)前記第k最適スケーリングパラメータを参照して、第kスケーリングレイヤ及び第k逆スケーリングレイヤを生成するプロセス;(IV)(i)kが1である場合、前記第kスケーリングレイヤを使用して、前記第k初期コンボリューションレイヤを第k統合コンボリューションレイヤに変換し、(ii)kが2からmまでの常数である場合、前記第kスケーリングレイヤ及び前記第(k−1)逆スケーリングレイヤを使用して前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換するプロセス;を遂行するための前記インストラクションを実行するように構成された少なくとも一つのプロセッサと、を含むことを特徴とするコンピューティング装置が提供される。
【0021】
一実施例において、前記(I)プロセスは、前記プロセッサが、(iv)BW値(前記BW値は、前記CNNに含まれた重み付け値及び特徴マップに含まれた値を二進数で表現するために使用されたビットの個数である)、及び(v)第kFL値(前記第kFL値は、(1)前記第k初期コンボリューションレイヤの前記第k初期重み付け値、及び(2)kが2からmまでの常数である場合、前記第(k−1)特徴マップに含まれた値であり、kが1である場合、前記入力イメージに含まれた値のLSBが示す数の指数の絶対値である)をさらに参照して、前記第k量子化ロス値を生成することを含むことを特徴とするコンピューティング装置が提供される。
【0022】
【数2】
一実施例において、前記(I)プロセスは、前記プロセッサが、前記数式によって前記第k量子化ロス値が生成され、前記数式でθは(i)kが2からmまでの常数である場合、前記第(k−1)特徴マップ及び前記第k初期コンボリューション特徴マップの前記第k初期重み付け値の値、(ii)kが1である場合、前記入力イメージ及び前記第k初期コンボリューション特徴マップの前記第k初期重み付け値の値を含み、Ckiは、前記第kスケーリングパラメータのうちで特定の第kスケーリングパラメータであり、FL及びBWはそれぞれ前記FL値及び前記BW値であり、Q演算は、前記FL値及び前記BW値を参照して生成されたCkiθの量子化された値とCkiθとの間の差を生成する演算であり、前記(II)プロセスは、前記プロセッサが、前記△Lを最も小さくする前記Ckiを選択することにより、前記第k最適スケーリングパラメータそれぞれを決定することを特徴とするコンピューティング装置が提供される。
【0023】
一実施例において、前記プロセッサが、ネステロフ加速勾配(Nesterov Accelerated Gradient)法を使用して、前記Ckiを選択して前記第k最適スケーリングパラメータを決定することを特徴とするコンピューティング装置が提供される。
【0024】
一実施例において、前記(III)プロセスは、前記プロセッサが、前記第k最適スケーリングパラメータそれぞれがその構成要素として決定される前記第kスケーリングレイヤを生成し、前記第k最適スケーリングパラメータの逆数それぞれがその構成要素として決定される前記第k逆スケーリングレイヤを生成することを特徴とするコンピューティング装置が提供される。
【0025】
一実施例において、前記(IV)プロセスは、前記プロセッサが、(1)kが1である場合、(i)前記第k初期コンボリューションレイヤ及び前記第kスケーリングレイヤの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を前記入力値に適用して生成された結果との間の差が閾値より小さくなるように前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換し、(2)kが2以上m以下の常数である場合、(i)第(k−1)逆スケーリングレイヤと、前記第k初期コンボリューションレイヤと、前記第kスケーリングレイヤとの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を入力値に適用して生成された結果との間の差が前記閾値より小さくなるように前記第k初期コンボリューションレイヤを前記第k統合コンボリューションレイヤに変換することを特徴とするコンピューティング装置が提供される。
【0026】
一実施例において、前記プロセッサが、(V)前記第kコンボリューションブロックに含まれた前記第k統合コンボリューションレイヤの重み付け値を量子化して、前記第kコンボリューションブロックによって遂行されるCNN演算に対する最適化重み付け値として、第k量子化重み付け値を生成するプロセス;をさらに遂行することを特徴とするコンピューティング装置が提供される。
【発明の効果】
【0027】
本発明は、出力値にある小さな値を含む特定チャンネルの各値を適切に反映するために、少なくとも一つの特徴マップに含まれた値を平坦化することができるようにCNNレイヤを変換する方法を提供することができ、モバイル装置または高精度の小型ネットワークなどに適用することが可能なハードウェアを最適化して使用され得る。
【図面の簡単な説明】
【0028】
本発明の実施例の説明に利用されるために添付された以下の各図面は、本発明の実施例のうちの一部に過ぎず、本発明が属する技術分野でおいて、通常の知識を有する者(以下「通常の技術者」)にとっては、発明的作業が行われることなくこの図面に基づいて他の図面が得られ得る。
図1図1は、本発明の一実施例によるCNNパラメータ量子化の最適化のためにCNNレイヤを変換する方法を遂行するためのコンピューティング装置の構成を示した図面である。
図2図2は、本発明の一実施例によるスケーリングレイヤ及び逆スケーリングレイヤが含まれたCNNの構成を示した図面である。
図3a図3aは、本発明の一実施例によるスケーリングレイヤ及び逆スケーリングレイヤの位置を切り換えることにより、統合コンボリューションレイヤを生成する過程を示す図面である。
図3b図3bは、本発明の一実施例によるスケーリングレイヤ及び逆スケーリングレイヤの位置を切り換えることにより、統合コンボリューションレイヤを生成する過程を示す図面である。
図4図4は、本発明の一実施例によるスケーリング方法によって値が大きく変わらない異なるいくつかのチャンネルの値を示す例示図である。
図5図5は、従来技術によって値が大きく変わる異なるいくつかのチャンネルの値を示す例示図である。
【発明を実施するための形態】
【0029】
後述する本発明に対する詳細な説明は、本発明が実施され得る特定の実施例を例示として示す添付図面を参照する。これらの実施例は、当業者が本発明を実施することができるように十分詳細に説明される。本発明の多様な実施例は互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施例に関連して本発明の精神及び範囲を逸脱せず、かつ他の実施例で具現され得る。また、それぞれの開示された実施例内の個別の構成要素の位置又は配置は、本発明の精神及び範囲を逸脱せず、かつ変更され得ることが理解されるべきである。したがって、後述する詳細な説明は、限定的な意味として受け取ろうとするのではなく、本発明の範囲は適切に説明されるのであれば、その請求項が主張することと均等な全ての範囲とともに添付された請求項によってのみ限定される。図面において類似した参照符号は、様々な側面にわたって同一であるか、又は類似の機能を指す。
【0030】
また、本発明の詳細な説明及び各請求項にわたって、「含む」という単語及びそれらの変形は、他の各技術的特徴、各付加物、構成要素又は段階を除外することを意図したものではない。通常の技術者にとって本発明の他の各目的、長所及び各特性が、一部は本明細書から、また一部は本発明の実施から明らかになるであろう。以下の例示及び図面は実例として提供され、本発明を限定することを意図したものではない。
【0031】
本発明で言及している各種イメージは、舗装または非舗装道路関連のイメージを含み得、この場合、道路環境で登場し得る物体(例えば、自動車、人、動物、植物、物、建物、飛行機やドローンのような飛行体、その他の障害物)を想定し得るが、必ずしもこれに限定されるものではなく、本発明で言及している各種イメージは、道路と関係のないイメージ(例えば、非舗装道路、路地、空き地、海、湖、川、山、森、砂漠、空、室内と関連したイメージ)でもあり得、この場合、非舗装道路、路地、空き地、海、湖、川、山、森、砂漠、空、室内環境で登場し得る物体(例えば、自動車、人、動物、植物、物、建物、飛行機やドローンのような飛行体、その他の障害物)を想定し得るが、必ずしもこれに限定されるものではない。
【0032】
以下、本発明が属する技術分野で通常の知識を有する者が本発明を容易に実施することができるようにするために、本発明の好ましい実施例について添付の図面に基づいて詳細に説明する。
【0033】
図1は、本発明の一実施例によるCNNパラメータ量子化の最適化のためにCNNレイヤを変換する方法を遂行するためのコンピューティング装置100の構成を示した図面である。また、図2は、本発明の一実施例によるスケーリングレイヤ及び逆スケーリングレイヤが含まれたCNNの構成を示した図面である。
【0034】
図1を参照すると、コンピューティング装置100はCNN200を含むことができる。前記CNN200による様々なデータの入力及び出力と各種データ演算の過程は、それぞれ通信部110及びプロセッサ120によって行われ得る。ところが、図1において、通信部110とプロセッサ120とがどのように連結されるのについての詳細な説明は省略する。また、コンピューティング装置は、次のプロセスを遂行するためのコンピュータ読取り可能な命令語を格納することができるメモリ115をさらに含むことができる。一例として、プロセッサ、メモリ、ミディアム等は、統合プロセッサと統合され得る。
【0035】
CNN200は、一つ以上のコンボリューションブロックを含むことができる。以下、便宜上、CNN200はm個のコンボリューションブロックを含み、kは1ないしmの常数を示すための変数として使用する。ここで、第kコンボリューションブロックは、図2に示されたように第k初期コンボリューションレイヤ211_k、第kアクティベーションレイヤ212_k及び第kプーリングレイヤ213_kを含むことができる。
【0036】
以上、本発明のコンピューティング装置100及びそれに含まれたCNN200の構成を検討したところ、本発明の一実施例による第k初期コンボリューションレイヤ211_kの変換方法について簡略に説明することにする。
【0037】
先ず、通信部110によってスケーリングパラメータを決定するために使用される入力イメージが取得され得る。以後、コンピューティング装置100は、(i)第kコンボリューションブロック210_kに含まれた第k初期コンボリューションレイヤ211_kの一つ以上の第k初期重み付け値と、(ii)第kコンボリューションブロック210_kによって処理される第(k−1)特徴マップと、(iii)第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する第kスケーリングレイヤ214_kのそれぞれの第kスケーリングパラメータとを参照して、一つ以上の第k量子化ロス値を生成することができる。ここで、kが1である場合、第(k−1)特徴マップは、入力イメージを示すことができ、以下と同じである。
【0038】
また、コンピューティング装置100は、(iv)BW値(前記BW値は、前記CNNに含まれた重み付け値及び特徴マップに含まれた値を二進数で表現するために使用されたビットの個数である)、及び(v)第kFL値(前記第kFL値は、前記第k初期コンボリューションレイヤの前記第k初期重み付け値及び第(k−1)特徴マップに含まれた値のLSBが示す数の指数の絶対値である)をさらに参照して、前記第k量子化ロス値を生成することができる。
【0039】
また、コンピューティング装置100は、下記の公式によって第k量子化ロス値を生成することができる。
【0040】
【数3】
ここで、前記数式は、量子化ロスを微分して第k量子化ロス値を生成する過程を示す。
【0041】
前記数式でθは、前記第(k−1)特徴マップ及び前記第k初期コンボリューションレイヤの前記第k初期重み付け値を含むことができる。Ckiは、前記第kスケーリングパラメータのうちで前記第(k−1)特徴マップに含まれた第iチャンネルに対応する特定の第kスケーリングパラメータであり得る。FL及びBWはそれぞれ前記FL値及び前記BW値であり、Q演算は、前記FL値及び前記BW値を参照して生成されたCkiθの量子化された値とCkiθとの間の差を生成する演算であり得る。
【0042】
前記のように、第k量子化ロス値が生成された後、コンピューティング装置100は、前記第kスケーリングパラメータのうちで前記第(k−1)特徴マップに含まれた前記チャンネルそれぞれに対応する第k最適スケーリングパラメータそれぞれを決定することができる。具体的に、前記コンピューティング装置100は、前記△Lを最も小さくする前記Ckiを選択することにより、前記第k最適スケーリングパラメータそれぞれを決定する。前記Ckiを選択するためにネステロフ最適化アルゴリズムが使用され得るが、これに限定されはしない。
【0043】
ネステロフ最適化アルゴリズムを適用するためには、第kスケーリングパラメータ間の制約条件(constraint)を決定しなければならない。したがって、コンピューティング装置100は、CNN200に含まれたレイヤをトポロジー的にソート(topologically sort)することができる。以後、各レイヤの類型に対応する第kスケーリングパラメータに対する制約条件が決定され得る。しかし、制約条件のうち不必要な制約条件、例えば重複した制約条件が存在し得る。したがって、一部の制約条件が除去され得る。ここで、制約条件が除去される過程で各レイヤ間の連結状態情報を参照することができる。
【0044】
以後、コンピューティング装置100は、CNN200でフォワードパッシング(Forward passing)及びバックワードパッシング(backward passing)を何回か繰り返して、各レイヤに含まれた重み付け値それぞれに対応する2Dヒストグラム(histogram)それぞれを取得して第k量子化ロス値のグラフを生成することができる。そして、コンピューティング装置100は、第kスケーリングパラメータそれぞれであるCkiを変化させながら第k量子化ロス値に対応する最も小さい第k最適スケーリングパラメータを決定することができる。前記パラメータを変化させる過程は、ネステロフ最適化アルゴリズムによって提案されたベクトル移動技法によることができる。
【0045】
前記のような方式で、第k最適スケーリングパラメータが決定されると、コンピューティング装置100は、前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する前記第k最適スケーリングパラメータのそれぞれがその構成要素として決定される前記第kスケーリングレイヤ214_kを生成し、前記第(k−1)特徴マップに含まれたチャンネルそれぞれに対応する前記第k最適スケーリングパラメータの逆数それぞれがその構成要素として決定される前記第k逆スケーリングレイヤ215_kを生成することができる。
【0046】
以下では、図2を参照して、第kスケーリングレイヤ214_k及び第k逆スケーリングレイヤ215_kが第kコンボリューションブロック210_kにどのように挿入されるのかについて説明する。
【0047】
図2を参照すると、第kスケーリングレイヤ214_k及び第k逆スケーリングレイヤ215_kがそれぞれアクティベーションレイヤ212_kの前端及び後端に挿入され得る。これは第kアクティベーションレイヤ212_k、第kスケーリングレイヤ214_k、及び第k逆スケーリングレイヤ215_kによって遂行される動作に交換法則が成立するためである。ここで、第kアクティベーションレイヤ212_kが遂行する演算は、ReLU演算であり得るが、これに限定されるわけではない。
【0048】
数学的に整理すると、
【数4】
【0049】
前記数式を参照すると、Sc*I.Scは元来数式に追加され得る。なぜならば、ScすなわちスケーリングレイヤとI.Scすなわち逆スケーリングレイヤとは互いに逆関数の関係であるからである。そして、前記Sc項目とI.Sc項目とはアクティベーションレイヤと交換法則が成立するため、アクティベーションレイヤの両方に移され得るのである。
【0050】
一方、第kスケーリングレイヤ214_k及び第k逆スケーリングレイヤ215_kがCNN200に追加されると、さらに多くのコンピュータリソースが必要であり、これは非効率的である。したがって、本発明はスケーリングレイヤ、初期コンボリューションレイヤ、及び逆スケーリングレイヤを統合する方法を提示するところ、図3a及び図3bを参照して説明することにする。
【0051】
図3a及び図3bは、本発明の一実施例によるスケーリングレイヤ及び逆スケーリングレイヤの位置を切り換えることにより、統合コンボリューションレイヤを生成する過程を示す図面である。
【0052】
図3a及び図3bを参照すると、第(k−1)コンボリューションブロック210_(k−1)に含まれた第(k−1)逆スケーリングレイヤ215_(k−1)は、第kコンボリューションブロック210_kに移され得る。これは第(k−1)プーリングレイヤ213_(k−1)自体は値の変化と関連がないためである。
【0053】
図3bを参照すると、第(k−1)逆スケーリングレイヤ215_(k−1)、第k初期コンボリューションレイヤ211_k、及び第kスケーリングレイヤ214_kは、第k統合コンボリューションレイヤ216_kを生成するために統合され得る。コンピューティング装置100は、(i)第(k−1)逆スケーリングレイヤと、前記第k初期コンボリューションレイヤと、前記第kスケーリングレイヤとの演算を入力値に適用して生成された結果と、(ii)前記第k統合コンボリューションレイヤの演算を入力値に適用して生成された結果との差が閾値より小さくなるように前記第k統合コンボリューションレイヤ216_kのパラメータが決定され得る。ここで、今までに説明した統合プロセスは、第(k−1)逆スケーリングレイヤ215_(k−1)、第k初期コンボリューションレイヤ211_k、及び第kスケーリングレイヤ214_kに対応する構成要素を掛け合わせるプロセスが含まれ得るが、これに限定されるわけではない。
【0054】
kが1である場合については図3bに示されていないが、当然その前のブロックから移動された逆スケーリングレイヤがないので、最初の初期コンボリューションレイヤ211_1と最初のスケーリングレイヤ214_1のみが統合コンボリューションレイヤ216_1を生成するのに使用される。
【0055】
上記で説明されたプロセスは、量子化に最適化された第k統合コンボリューションレイヤ216_kのパラメータを生成するためのものである。ここで、第k統合コンボリューションレイヤ216_kのパラメータを生成するプロセスとは独立して量子化プロセスが説明される。したがって、コンピューティング装置100が前記第kコンボリューションブロック210_kに含まれた重み付け値を量子化して、前記第kコンボリューションブロック210_kによって遂行されるCNN演算に対する最適化重み付け値として、第k量子化重み付け値を生成することができる。これは、前記第k統合コンボリューションレイヤ216_kを生成するプロセスの前、プロセスの途中、プロセスの後に関係なく遂行される。
【0056】
前記最適化された量子化CNN重み付け値の長所は、図4を参照して説明する。
【0057】
図4は、本発明の一実施例によるスケーリング方法によって値が大きく変わらない異なるいくつかのチャンネルの値を示す例示図である。
【0058】
まず、従来技術を説明する際に参照していた図5を参照すると、本発明によって提供される方法が適用されない場合、第1特徴マップに含まれた第2チャンネルの値が第1特徴マップに含まれた第1チャンネルの値よりはるかに小さいことが確認された。これと反対に、図4を参照すると、第1チャンネルの値と第2チャンネルの値とが類似することが分かる。これは第1統合コンボリューションレイヤ216_1の重み付け値に反映された第1スケーリングパラメータによるものであって、第1値と第2値との間の差が大きくないため、第1コンボリューションブロック210_2によって遂行された演算の後で第1値及び第2の値が適切に量子化され得るのである。
【0059】
本発明の技術分野における通常の技術者にとって理解され得るところとして、上記にて説明されたイメージ、例えば原本イメージ、原本ラベル及び追加ラベルのようなイメージデータの送受信が学習装置及びテスト装置の各通信部によって行われ得、特徴マップと演算を遂行するためのデータが学習装置及びテスト装置のプロセッサ(及び/又はメモリ)により保有/維持され得、コンボリューション演算、デコンボリューション演算、ロス値演算の過程が主に学習装置及びテスト装置のプロセッサにより遂行され得るが、本発明がこれに限定されはしないであろう。
【0060】
以上にて説明された本発明による実施例は、多様なコンピュータの構成要素を通じて遂行することができるプログラム命令語の形態で具現されて、コンピュータ読取り可能な記録媒体に格納され得る。前記コンピュータ読取り可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記コンピュータ読取り可能な記録媒体に格納されるプログラム命令語は、本発明のために特別に設計され、構成されたものであるか、コンピュータソフトウェア分野の当業者に公知にされて使用可能なものであり得る。コンピュータ読取り可能な記録媒体の例には、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカル・ディスク(Floptical Disk)のような磁気−光メディア(Magneto−Optical Media)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令語を格納して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるもののような機械語コードだけでなく、インタープリターなどを使用してコンピュータによって実行される高級言語コードも含まれる。前記ハードウェア装置は、本発明による処理を実行するために一つ以上のソフトウェアモジュールとして作動するように構成され得、その反対も同様である。
【0061】
以上にて本発明が具体的な構成要素などのような特定事項と限定された実施例及び図面によって説明されたが、これは本発明のより全般的な理解の一助とするために提供されたものであるに過ぎず、本発明が前記実施例に限られるものではなく、本発明が属する技術分野において通常の知識を有する者であれば、係る記載から多様な修正及び変形が行われ得る。
【0062】
従って、本発明の思想は、前記説明された実施例に局限されて定められてはならず、後述する特許請求の範囲だけでなく、本特許請求の範囲と均等または等価的に変形されたものすべては、本発明の思想の範囲に属するといえる。
図1
図2
図3a
図3b
図4
図5