【文献】
KONG, Bailey et al.,Energy-Based Spherical Sparse Coding,2017年10月 4日,pp.1-12,URL,https://arxiv.org/pdf/1710.01820.pdf
(58)【調査した分野】(Int.Cl.,DB名)
コンボリューションレイヤのコンボリューション演算とアクティベーションモジュールのアクティベーション演算を同時に遂行する、学習されたパラメータを有する、CNNの構成方法において、
(a)前記コンピューティング装置が、CNNの演算装置にある比較器をもって、入力イメージの各画素値に対応する入力値を所定の基準値と比較してその比較結果に対する比較結果値を出力する段階;
(b)前記コンピューティング装置が、前記CNNの演算装置にある選択器をもって、前記コンボリューションレイヤのコンボリューションフィルタの多数のパラメータのうち前記比較結果値に対応される特定パラメータを出力する段階;及び
(c)前記コンピューティング装置が、前記CNNの演算装置にある乗算器をもって、前記特定パラメータと前記入力値を掛けた値を出力し、前記掛けた値を、前記アクティベーションモジュールの出力に前記コンボリューションレイヤの前記コンボリューション演算を適用した結果値に決定する段階;を含むことを特徴とする方法。
前記アクティベーション演算はCReLU(Concatenated Rectified Linear Units)演算であることを特徴とする請求項1に記載の方法。
コンボリューションレイヤのコンボリューション演算とアクティベーションモジュールのアクティベーション演算を同時に遂行する、学習されたパラメータを有する、CNNの構成方法において、
(a)前記コンピューティング装置が、CNNの演算装置にある比較器をもって、入力イメージの各画素値に対応する入力値を所定の区間区分の基準値と比較して前記入力値が前記所定の区間区分の基準値のうちどの値の間の区間に該当するかに対する情報を参照して比較結果値を出力する段階;
(b)前記コンピューティング装置が、前記CNNの演算装置にある第1選択器をもって、前記コンボリューションレイヤの多数の統合ウェイトパラメータのうち前記比較結果値に対応される特定統合ウェイトパラメータを出力するプロセス及び前記CNNの演算装置にある第2選択器をもって、前記コンボリューションレイヤの多数の修正バイアスパラメータのうち前記比較結果値に対応される特定修正バイアスパラメータを出力するプロセスを遂行する段階;
(c)前記コンピューティング装置が、前記CNNの演算装置にある乗算器をもって、前記特定統合ウェイトパラメータと前記入力値を掛けて出力する段階;及び
(d)前記コンピューティング装置が、前記CNNの演算装置にある加算器をもって、乗算出力値に前記特定修正バイアスパラメータを足した値を出力し、前記足した値を、前記アクティベーションモジュールの出力に前記コンボリューションレイヤの前記コンボリューション演算を適用した結果値に決定する段階;を含むことを特徴とする方法。
前記アクティベーション演算はN−way CReLU(N−way Concatenated Rectified Linear Units)演算であることを特徴とする請求項4に記載の方法。
コンボリューションレイヤのコンボリューション演算とアクティベーションモジュールのアクティベーション演算を同時に遂行する、学習されたパラメータを有する、CNNの構成装置において、
入力イメージの各画素値に対応する入力値を入力される通信部;
(i)前記入力値を所定の基準値と比較してその比較結果に対する比較結果値を出力するプロセス;(ii)前記コンボリューションレイヤのコンボリューションフィルタの多数のパラメータのうち前記比較結果値に対応される特定パラメータを出力するプロセス;及び(iii)前記特定パラメータと前記入力値を掛けた値を出力し、前記掛けた値を、前記アクティベーションモジュールの出力に前記コンボリューションレイヤの前記コンボリューション演算を適用した結果値に決定するプロセスを遂行するプロセッサ;を含むことを特徴とする装置。
前記アクティベーション演算はCReLU(Concatenated Rectified Linear Units)演算であることを特徴とする請求項8に記載の装置。
コンボリューションレイヤのコンボリューション演算とアクティベーションモジュールのアクティベーション演算を同時に遂行する、学習されたパラメータを有する、CNNの構成装置において、
入力イメージの各画素値に対応する入力値を入力される通信部;
(i)前記入力値を所定の区間区分の基準値と比較して前記入力値が前記所定の区間区分の基準値のうちどの値の間の区間に該当するかに対する情報を参照して比較結果値を出力するプロセス;(ii)前記コンボリューションレイヤの多数の統合ウェイトパラメータのうち前記比較結果値に対応される特定統合ウェイトパラメータを出力するプロセス;(iii)前記コンボリューションレイヤの多数の修正バイアスパラメータのうち前記比較結果値に対応される特定修正バイアスパラメータを出力するプロセス;(iv)前記特定統合ウェイトパラメータと前記入力値を掛けて出力するプロセス;及び(v)乗算出力値に前記特定修正バイアスパラメータを足した値を出力し、前記足した値を、前記アクティベーションモジュールの出力に前記コンボリューションレイヤのコンボリューション演算を適用した結果値に決定するプロセス;を遂行するプロセッサ;を含むことを特徴とする装置。
前記アクティベーション演算はN−way CReLU(N−way Concatenated Rectified Linear Units)演算であることを特徴とする請求項11に記載の装置。
【背景技術】
【0002】
ディープコンボリューションニューラルネットワーク(Deep Convolution Neural Networks;ディープCNN)はディープラーニング分野で起きた驚くべき発展の核心である。CNNは文字認識問題を解くために90年代に既に使用されていたが、現在のように広く使用されるようになったのは最近の研究結果のおかげである。このようなディープCNNは2012年ImageNetイメージ分類コンテストで他の競争相手に勝って優勝を収めた。そうして、コンボリューションニューラルネットワークはMachine Learning分野で非常に有用なツールとなった。
【0003】
図1はCReLU演算とコンボリューション演算を遂行できる既存のCNN学習装置の構成を示す。
【0004】
図1を参照すれば、既存のCNN学習装置100はコンボリューションレイヤ110、130、CReLU(Concatenated Rectified Linear Unit)120及び他のCReLU(未図示)を含んでおり、演算が交互に複数回反復される形態を有している。
【0005】
この時、CReLU120は2個のReLU(Rectified Linear Unit)122を含み、ReLU122で遂行する演算は下のような数式で遂行される。
【0006】
【数1】
【0007】
前記CReLUは既存のCNNモデルのコンボリューションフィルタを学習する時、陰の相関関係が強いフィルタがペアで学習される現象に着眼して下の数式のような既存ReLUのポジティブアクティベーションだけでなく、ネガティブアクティベーションも追加で作り出すアクティベーションスキームである。
【0008】
【数2】
【0009】
図1のように、コンボリューション演算とCReLU(またはReLU)演算が交互に反復される構造で、CReLUはReLUと比較した時にコンボリューション演算量が増加することなく2倍の個数の結果値を出力するか、または同じ個数の結果値を出力する時に前のコンボリューション演算量を1/2に減らすことができる長所がある。従って、CReLU導入により検出速度を維持しながら、検出正確度を高めることができるか、検出正確度を維持しながら、検出速度を速めることができるようになる。
【0010】
図1でCReLUユニット120は一つのスケールレイヤ121、2個のReLUレイヤ122及びコンカチネーションレイヤ123を含む。スケールレイヤ121は以前のコンボリューションレイヤ110からの値に−1を掛けて出力し、ReLUレイヤ122のうち一つは以前のコンボリューションレイヤ110から値を入力され、他の一つはスケールレイヤ121からスケーリングされた値を入力されて、ReLU演算を遂行する。
図1でReLUレイヤ122とコンカチネーションレイヤ123はその順序が変わってもよい。万一コンカチネーションレイヤ123以後にReLUレイヤ122が連結されれば、ReLUレイヤは1個だけ存在する。
【0011】
図1を参照すれば、以前のコンボリューションレイヤ110からの出力値として
【数2-1】
(例えば、この値は(x=0,y=0,チャネルch=0)である位置の画素値が1、(x=1,y=0,チャネルch=1)である位置の画素値が2、(x=0,y=1,チャネルch=1)である位置の画素値が3、(x=1,y=1,チャネルch=0)である位置の画素値が4であり、残りはすべて0である特徴マップを示す)がCReLU120に入力されると、スケールレイヤ121は各値に−1をかけて生成した値である
【数2-2】
を二番目のReLUレイヤに伝達し、
【数2-3】
値を直接伝達された一番目ReLUレイヤ及びスケールレイヤ121から
【数2-4】
値を伝達された二番目のReLUレイヤは各々ポジティブアクティベーション演算を遂行して
【数2-5】
と
【数2-6】
を生成してこれをコンカチネーションレイヤ123に伝達する。それから、コンカチネーションレイヤ123はこれらの値を一つにコンカチネートして
【数2-7】
を生成してこれを次の隣り合ったコンボリューションレイヤ130に伝達する。コンボリューションレイヤ130はこれらの値にコンボリューション演算を遂行する。
【0012】
一方、
図1のように、CReLUレイヤの演算とコンボリューションレイヤの演算を別途遂行するようになると、各々の独立的な演算プロセスが遂行されて演算量が多い問題がある。
【0013】
従って、本発明ではCReLUが用いられたCNNモデルでコンボリューション演算量を減らすための新たな方法を提供しようとする。
【発明の概要】
【発明が解決しようとする課題】
【0014】
本発明はCReLUユニットが用いられたCNNでコンボリューションレイヤの演算量を減らす方法を提供することを目的とする。
【0015】
また、本発明はコンボリューション演算量やメモリが大きく増加することなくCNNモデルの複雑度を高めて検出正確度を高めることができる方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
発明の一態様によれば、コンボリューションレイヤのコンボリューション演算とアクティベーションモジュールのアクティベーション演算を同時に遂行する、学習されたパラメータを有する、CNNの構成方法において、(a)前記コンピューティング装置が、CNNの演算装置にある比較器をもって、入力イメージの各画素値に対応する入力値を所定の基準値と比較してその比較結果に対する比較結果値を出力する段階;(b)前記コンピューティング装置が、前記CNNの演算装置にある選択器をもって、前記コンボリューションレイヤのコンボリューションフィルタの多数のパラメータのうち前記比較結果値に対応される特定パラメータを出力する段階;及び(c)前記コンピューティング装置が、前記CNNの演算装置にある乗算器をもって、前記選択された特定パラメータと前記入力値を掛けた値を出力し、前記掛けた値を、前記アクティベーションモジュールの出力に前記コンボリューションレイヤの前記コンボリューション演算を適用した結果値に決定する段階;を含むことを特徴とする方法が提供される。
【0017】
一例として、前記アクティベーション演算はCReLU(Concatenated Rectified Linear Units)演算であることを特徴とする方法が提供される。
【0018】
一例として、前記(a)段階ないし(c)段階を含む方法は次の数式で表現されて、
【数2-8】
【0019】
ここで、CReLU_Convはアクティベーションモジュールの出力に前記コンボリューションレイヤのコンボリューション演算を適用した結果を示して、xは入力値、前記w
1、w
2は前記コンボリューションレイヤのパラメータ、a、bは前記w
1、w
2を獲得するために用いられるべきコンボリューションレイヤの要素パラメータであり、前記所定の基準値は0であることを特徴とする方法が提供される。
【0020】
本発明の他の態様によれば、コンボリューションレイヤのコンボリューション演算とアクティベーションモジュールのアクティベーション演算を同時に遂行する、学習されたパラメータを有する、CNNの構成方法において、(a)前記コンピューティング装置が、CNNの演算装置にある比較器をもって、入力イメージの各画素値に対応する入力値を所定の区間区分の基準値と比較して前記入力された値が前記所定の区間区分の基準値のうちどの値の間の区間に該当するかに対する情報を参照にして比較結果値を出力する段階;(b)前記コンピューティング装置が、前記CNNの演算装置にある第1選択器をもって、前記コンボリューションレイヤの多数の統合ウェイトパラメータのうち前記比較結果値に対応される特定統合ウェイトパラメータを出力するプロセス及び前記CNNの演算装置にある第2選択器をもって、前記コンボリューションレイヤの多数の修正バイアスパラメータのうち前記比較結果値に対応される特定修正バイアスパラメータを出力するプロセスを遂行する段階;(c)前記コンピューティング装置が、前記CNNの演算装置にある乗算器をもって、前記選択された特定統合ウェイトパラメータと前記入力値を掛けて出力する段階;及び(d)前記コンピューティング装置が、前記CNNの演算装置にある加算器をもって、前記乗算出力値に前記選択された特定修正バイアスパラメータを足した値を出力し、前記足した値を、前記アクティベーションモジュールの出力に前記コンボリューションレイヤの前記コンボリューション演算を適用した結果値に決定する段階;を含むことを特徴とする方法が提供される。
【0021】
一例として、前記アクティベーション演算はN−way CReLU(N−way Concatenated Rectified Linear Units)演算であることを特徴とする方法が提供される。
【0022】
一例として、前記(a)段階ないし(d)段階を含む方法は次の数式で表現されて、
【数2-9】
【0023】
ここで、NCReLU_Convはアクティベーションモジュールの出力に前記コンボリューションレイヤのコンボリューション演算を適用した結果を示して、xは入力値、w
iは前記コンボリューションレイヤの統合ウェイトパラメータ、b
iは前記コンボリューションレイヤの修正バイアスパラメータ、v
iは所定の区間区分の基準値であることを特徴とする方法が提供される。
【0024】
一例として、前記統合ウェイトパラメータ(w
i)、前記修正バイアスパラメータ(b
i)、前記所定の区間区分の基準値(v
i)は次の数式で算出されて、
【数2-10】
【0025】
ここで、q
i(q
1ないしq
n-1)は各バイアスレイヤの要素バイアスパラメータで、p
i(p
1ないしp
n)は各コンボリューションレイヤの要素ウェイトパラメータで、dはコンボリューションレイヤの要素バイアスパラメータであり、rank(q
i)は{q
1,…..q
n-1}のうちq
iが何番目に大きい数かを示して、rank
-1(i)は{q
1,…q
n-1}のうちi番目に大きい数のインデックス(Index)を示すことを特徴とする方法が提供される。
【0026】
本発明のまた他の態様によれば、コンボリューションレイヤのコンボリューション演算とアクティベーションモジュールのアクティベーション演算を同時に遂行する、学習されたパラメータを有する、CNNの構成装置において、入力イメージの各画素値に対応する入力値を入力される通信部;(i)前記入力値を所定の基準値と比較してその比較結果に対する比較結果値を出力するプロセス;(ii)前記コンボリューションレイヤのコンボリューションフィルタの多数のパラメータのうち前記比較結果値に対応される特定パラメータを出力するプロセス;及び(iii)前記選択された特定パラメータと前記入力値を掛けた値を出力し、前記掛けた値を、前記アクティベーションモジュールの出力に前記コンボリューションレイヤの前記コンボリューション演算を適用した結果値に決定するプロセスを遂行するプロセッサ;を含むことを特徴とする装置が提供される。
【0027】
一例として、前記アクティベーション演算はCReLU(Concatenated Rectified Linear Units)演算であることを特徴とする装置が提供される。
【0028】
一例として、前記プロセッサの前記(i)ないし(iii)プロセスは次の数式で表現されて、
【数2-11】
【0029】
ここで、CReLU_Convはアクティベーションモジュールの出力に前記コンボリューションレイヤのコンボリューション演算を適用した結果を示して、xは入力値、前記w
1、w
2は前記コンボリューションレイヤのパラメータ、a、bは前記w
1、w
2を獲得するために用いられるべきコンボリューションレイヤの要素パラメータであり、前記所定の基準値は0であることを特徴とする装置が提供される。
【0030】
本発明のまた他の態様によれば、コンボリューションレイヤのコンボリューション演算とアクティベーションモジュールのアクティベーション演算を同時に遂行する、学習されたパラメータを有する、CNNの構成装置において、入力イメージの各画素値に対応する入力値を入力される通信部;(i)前記入力値を所定の区間区分の基準値と比較して前記入力された値が前記所定の区間区分の基準値のうちどの値の間の区間に該当するかに対する情報を参照にして比較結果値を出力するプロセス;(ii)前記コンボリューションレイヤの多数の統合ウェイトパラメータのうち前記比較結果値に対応される特定統合ウェイトパラメータを出力するプロセス;(iii)前記コンボリューションレイヤの多数の修正バイアスパラメータのうち前記比較結果値に対応される特定修正バイアスパラメータを出力するプロセス;(iv)前記選択された特定統合ウェイトパラメータと前記入力値を掛けて出力するプロセス;及び(v)前記乗算出力値に前記選択された特定修正バイアスパラメータを足した値を出力し、前記足した値を、前記アクティベーションモジュールの出力に前記コンボリューションレイヤのコンボリューション演算を適用した結果値に決定するプロセス;を遂行するプロセッサ;を含むことを特徴とする装置が提供される。
【0031】
一例として、前記アクティベーション演算はN−way CReLU(N−way Concatenated Rectified Linear Units)演算であることを特徴とする装置が提供される。
【0032】
一例として、前記プロセッサの前記(i)ないし(v)プロセスは次の数式で表現されて、
【数2-12】
【0033】
ここで、NCReLU_Convはアクティベーションモジュールの出力に前記コンボリューションレイヤのコンボリューション演算を適用した結果を示して、xは入力値、w
iは前記コンボリューションレイヤの統合ウェイトパラメータ、b
iは前記コンボリューションレイヤの修正バイアスパラメータ、v
iは所定の区間区分の基準値であることを特徴とする装置が提供される。
【0034】
一例として、前記統合ウェイトパラメータ(w
i)、前記修正バイアスパラメータ(b
i)、前記所定の区間区分の基準値(v
i)は次の数式で算出されて、
【数2-13】
【0035】
ここで、q
i(q
1ないしq
n-1)は学習された各バイアスレイヤの要素バイアスパラメータで、p
i(p
1ないしp
n)は各コンボリューションレイヤの要素ウェイトパラメータで、dはコンボリューションレイヤの要素バイアスパラメータであり、rank(q
i)は{q
1,…..q
n-1}のうちq
iが何番目に大きい数かを示して、rank
-1(i)は{q
1,…q
n-1}のうちi番目に大きい数のインデックス(Index)を示すことを特徴とする装置が提供される。
【発明の効果】
【0036】
本発明によれば、より少ない演算量を要求する新たな演算ユニットを通じて、CReLU演算とコンボリューション演算を同時に遂行するようにすることができる。
【0037】
また、本発明によれば、N−way CreLUを具現することで、コンボリューションレイヤでの演算量を減らしながら、他のレイヤでの演算量やメモリが大きく増加することなく検出正確度を高めることができる効果がある。
【発明を実施するための形態】
【0039】
後述する本発明に対する詳細な説明は、本発明が実施され得る特定の実施例を例示として示す添付図面を参照する。これらの実施例は当業者が本発明を実施することができるように充分詳細に説明される。本発明の多様な実施例は相互異なるが、相互排他的である必要はないことを理解されたい。例えば、ここに記載されている特定の形状、構造及び特性は一実施例にかかる本発明の精神及び範囲を逸脱せずに他の実施例で具現され得る。また、各々の開示された実施例内の個別構成要素の位置または配置は本発明の精神及び範囲を逸脱せずに変更され得ることを理解されたい。従って、後述する詳細な説明は限定的な意味で捉えようとするものではなく、本発明の範囲は、適切に説明されると、その請求項が主張することと均等なすべての範囲と、併せて添付された請求項によってのみ限定される。図面で類似する参照符号はいくつかの側面にかけて同一か類似する機能を指称する。
【0040】
以下、本発明が属する技術分野で通常の知識を有する者が本発明を容易に実施することができるようにするために、本発明の好ましい実施例について添付の図面を参照して詳細に説明することとする。
【0041】
図2は本発明の一実施例にかかるCReLU演算とコンボリューション演算を統合するためのCNN学習装置の演算方法を示す。
【0042】
図2を参照すれば、本発明にかかるCReLU演算とコンボリューション演算を統合するためのCNN演算装置200は比較器201、選択器202及び乗算器203を含む。本発明にかかるCNN演算装置200は所定の入力(例えば、以前のコンボリューションレイヤ(未図示)から伝達された特徴マップ)を受信するための通信部(未図示)と前記比較器201、選択器202及び乗算器203で遂行するプロセスを遂行するプロセッサ(未図示)から構成され得る。即ち、前記比較器201、選択器202及び乗算器203の機能はCNN演算装置200内のプロセッサ(未図示)で遂行される各プロセスで具現され得る。
【0043】
再び
図1を参照すれば、
図1のCReLU120の演算は一つの入力に対して二つの出力を作り出すのに下のような数式で表現され得る。
【0045】
上の数式3のように、CReLUは入力値の範囲に応じて一番目または二番目の出力値だけ0ではない値を有するようにする。
【0046】
万一CNNのコンボリューションレイヤ130がコンボリューションフィルタの要素パラメータ値として
【数4-1】
を有する場合、CNNでCReLU120の演算結果を入力でコンボリューションレイヤ130による演算をすることは、下のような数式で簡略に表現され得る。
【0048】
上の数式4のように、CReLU演算とコンボリューション演算を合わせて考えると、CReLUの入力値の範囲に応じてコンボリューションレイヤのパラメータ値を定める形態に変えて次のような数式で表現し得る。
【0050】
ここで、CReLU_ConvはCReLUユニットの出力にコンボリューションフィルタを適用した演算結果を示して、xは入力値、前記w
1、w
2はコンボリューションレイヤのパラメータ、a、bは前記w
1、w
2を獲得するための学習されたコンボリューションレイヤの要素パラメータである。
【0051】
図2は前記数式5を具現するためのCNN演算装置200の演算方法を示す。
【0052】
従来技術によりCReLU演算の次にコンボリューション演算を適用すると、CReLUの出力値に0を掛ける演算のような不要な演算が多く生じざるを得ない。しかし、本発明にかかるCNN演算装置200を利用したCNN演算構成方法は、CReLUでの演算とコンボリューション演算を一つに合わせて、CReLUの入力値(x)の範囲に応じてコンボリューションレイヤのパラメータ値(w
1、w
2)を選択して掛ける形態の効率的な演算過程を利用する。
【0053】
具体的に
図2を参照すれば、本発明にかかるCNN演算装置200がテストイメージとしての入力イメージを入力されると、演算装置200内の比較器201で入力されたイメージの各画素値に対応する入力値(x)を所定の基準値と比較してその比較結果に対する比較結果値を出力する。前記入力イメージはCNN装置に入力されるテストイメージだけでなく以前のCNN演算装置、以前のコンボリューションレイヤまたは以前のアクティベーションレイヤなどから出力されて入力されたイメージまたは特徴マップなどのうち少なくとも一部を含む概念である。そして、前記所定の基準値は0であり得るが、これに限定されるものではない。
【0054】
また、前記選択器202は前記比較結果を参照して前記パラメータ(w
1、w
2)のうち選択された特定パラメータを出力して乗算器203に伝達する。
【0055】
そして、前記乗算器203は前記入力値(x)と前記選択された特定パラメータを掛けて、掛けた値を求めて出力する。
【0056】
例えば、前記数式5のように、入力値(x)が0よりも小さい場合、前記演算装置200は前記入力値にコンボリューションレイヤの第2要素パラメータ(b)の負値である第1パラメータ(w
1)を掛けて出力し、入力値(x)が0よりも大きいか同じ場合、前記演算装置200はコンボリューションレイヤの第1要素パラメータ(a)値である第2パラメータ(w
2)を掛けて出力する。
【0058】
図3Aを参照すれば、入力値(x)が3である場合、前記比較器201では3が所定の基準値である0よりも大きいという比較結果値として2を出力し、前記選択器202では2個のフィルタパラメータ(w
1=0.2,w
2=0.8)のうち比較結果値である2に対応するw
2(0.8)を乗算器203に出力する。それから、前記乗算器203は入力値(x)にw
2(0.8)を掛けた値である0.24を生成した後にこれを出力する。
【0059】
図3Bを参照すれば、入力値(x)が−1である場合、前記比較器201では−1が所定の基準値の0よりも小さいという比較結果値として1を出力し、前記選択器202では2個のフィルタパラメータ(w
1=0.2,w
2=0.8)のうち比較結果値である1に対応するw
1(0.2)を乗算器203に出力する。それから、前記乗算器203は入力値(x)にw
1(0.2)を掛けた値である−0.2を生成した後にこれを出力する。
【0060】
図4A及び
図4BはCReLU_Conv演算の例を示して、
図4CはNCReLU_Conv演算の例を示して、ここで、Nは3である。
【0061】
図4A及び
図4Bは
図2、
図3A、及び
図3Bを通じて説明したCReLU_Conv(CReLU演算とコンボリューション演算の統合演算)の入力(x)と出力(y=CReLU_Conv(x))の関係を示すグラフである。前記
図4A及び
図4Bのグラフの形はw
1及びw
2の値の符号によって異なり得る。
【0062】
一方、
図4Cは線分セグメント個数を3個に拡張し、前記グラフが(0,0)を必ず通過しなければならない制限条件を除去したグラフである。
【0063】
図4Cに示されたとおり、線分セグメント個数は2個からn個に拡張し得て、比較値(以下、区間区分の基準値)も拡張され得る。ここで、各々の区間は入力値と比較される各々の範囲に対する情報が含まれ得る。前記演算装置の前記比較器は前記入力値がどの区間に属するかに対する情報を参照にして決定された比較結果を出力し得る。
【0064】
前記線分セグメント個数は
図4A及び4Bのように2個から
図4Cのようにn個(n=>3、例えば、3)まで増加し得て、前記比較値は
図4A及び4Bのように、1から
図4Cのようにn−1(例えば、2)まで増加し得る。このようになれば、piecewise linear continuous function形態のNCReLU_Conv演算器を具現し得るようになる。
【0065】
かかるNCReLU_Conv演算器は下のような数式で定義され得る。
【0067】
ここで、NCReLU_ConvはN個のアクティベーションユニット(以下、N−way CReLU(N−way Concatenated Rectified Linear Units)またはNCReLUという)から構成されるCReLUの出力にコンボリューションレイヤを適用した演算結果を示して、xは入力値、w
iはコンボリューションレイヤの統合ウェイトパラメータ、b
iはコンボリューションレイヤの修正バイアスパラメータ、v
iは各々の区間区分の基準値である。
【0068】
一方、前記数式6でb
i+1に対する条件式はNCReLU_Convが連続関数(Continuous Function)になるために必要で、b
1を除いたバイアス値は付与されたb
1、w
i、v
i値によって決定される。
【0069】
図5は本発明の他の実施例にかかるCNNのNCReLU_Conv演算方法を示す。
【0070】
図5に示された本発明の一実施例にかかるNCReLU_Conv演算を遂行するCNN演算装置500は、
図2に示された前記演算装置200の改善されたバージョンである。前記演算装置200は2個の比較区間を用いるが、前記演算装置500はpiecewise linear continuous functionを適用して比較区間を2個からn個に拡張した装置である。
【0071】
図5を参照すれば、本発明にかかるCNN演算装置500はNCReLU演算とコンボリューション演算を同時に遂行し得て、比較器501、第1選択器502、第2選択器503、乗算器504及び加算器505を含む。
【0072】
本発明にかかるCNN演算装置500は入力値(例えば、以前の演算部から伝達された特徴マップ)を受信して演算された値を出力するための通信部(未図示)と前記比較器501、第1選択器502、第2選択器503、乗算器504及び加算器505で遂行するプロセスを遂行するプロセッサから構成され得る。即ち、前記比較器501、第1選択器502、第2選択器503、乗算器504及び加算器505の機能はCNN演算装置500内のプロセッサ(未図示)で遂行される各プロセスで具現され得る。
【0073】
具体的に
図5を参照して、CNN演算装置500がテストイメージとしての入力イメージを入力されると、比較器501は入力されたイメージの各画素値に対応する入力値(x)を所定の基準区間区分の値と比較してその比較結果に対する比較結果値を出力する。即ち、入力値(x)が前記所定の区間区分の基準値のうちどの値の間の区間に該当するかに対する比較結果値を出力する。
【0074】
例えば、
図4Cに示された例では、x値がv
1よりも小さい場合、比較結果値として1を、x値がv
1とv
2の間である場合、比較結果値として2を、x値がv
2よりも大きい場合、比較結果値として3を出力する。ここで、入力イメージは入力されたイメージ自体だけでなく、以前のコンボリューションレイヤから受信した特徴マップのうち少なくとも一つを含む概念であり得る。
【0075】
前記第1選択器502は比較結果を参照にして、コンボリューションレイヤの多数の統合ウェイトパラメータ(w
1,…,w
n)のうち選択された特定統合ウェイトパラメータを出力し、前記第2選択器503は比較結果を参照にして、コンボリューションレイヤの多数の修正バイアスパラメータ(b
1,…,b
n)のうち選択された特定修正バイアスパラメータを出力する。一方、CNN演算装置500のプロセッサは第1選択器502のプロセスと第2選択器503のプロセスを同時に遂行し得る。
【0076】
前記乗算器504は第1選択器502で選択された特定統合ウェイトパラメータを入力値(x)と掛けて出力し、加算器505は乗算器504の出力に第2選択器503で選択された特定修正バイアスパラメータを足して出力する。即ち、このように出力された値はNCReLUユニットの出力にコンボリューションレイヤの演算を適用して得た結果値としてみなされ得る。
【0077】
一方、数式6での統合ウェイトパラメータ(w
i)、修正バイアスパラメータ(b
i)、区間区分の基準値(v
i)は次の数式7で算出される。
【0079】
ここで、q
i(q
1ないしq
n-1)は各バイアスレイヤの各々の要素バイアスパラメータで、p
i(p
1ないしp
n)は前記コンボリューションレイヤの各々の要素ウェイトパラメータで、dは前記コンボリューションレイヤの要素バイアスパラメータであり、rank(q
i)は{q
1,…..q
n-1}のうちq
iが何番目に大きい数かを示して、rank
-1(i)は{q
1,…q
n-1}のうちi番目に大きい数のインデックス(Index)を示す。
【0080】
図5に示されたN−way CReLU_Conv(NCReLU_Conv)演算装置はすべての可能なn個のセグメントから構成されたpiecewise linear continuous functionを表現し得る。また、すべての充分にソフトな関数はxの特定範囲内でpiecewise linear continuous functionに近似することができるので、N−way CReLU_Conv演算装置がそのような関数を学習し出すことができるためである。
【0081】
これに比べて、
図1のように、既存のバイアスがないCReLUユニットは2個のセグメントだけから構成されて、“f(x)=0 when x=0”条件を満たすpiecewise linear continuous functionだけを表現し得る短所がある。これは
図2に示された2個のセグメントから構成されるCReLU_Conv演算装置でも同様である。
【0082】
図5のNCReLU_Conv演算装置500でNCReLU_Convのnが2である場合には下記のように表現し得て、これは
図2のCReLU_Conv演算装置の演算内容と同一になる。
【0085】
図6Aを参照すれば、入力値(x)が−1.5である場合、比較器501では2個の区間区分の値(v
1,v
2)と入力値(x)を比較し、入力値(x=−1.5)が第1区間区分の値(v
1)である−1よりも小さいので、比較結果値として1を出力して第1選択器502と第2選択器503に伝達する。前記第1選択器502では3個の統合ウェイトパラメータ(w
1,w
2,w
3)のうち比較結果値(1)に対応される特定統合ウェイトパラメータ(w
1)値である−1を選択して乗算器504に伝達し、前記第2選択器503では3個の修正バイアスパラメータ(b
1,b
2,b
3)のうち比較結果値(1)に対応される特定修正バイアスパラメータ(b
1)値である−1を選択して加算器505に伝達する。それから、乗算器504は入力値(x=−1.5)に第1選択器502の出力である選択された特定統合ウェイトパラメータ(w
1=−1)を掛けた1.5を生成してこれを加算器505に伝達し、加算器505は乗算器504の出力値(1.5)に第2選択器503の出力である選択された特定修正バイアスパラメータ(b
1=−1)を足した値である0.5を生成した後にこれを出力する。
【0086】
図6Bを参照すれば、入力値(x)が0.5である場合、比較器501では2個の区間区分の値(v
1,v
2)と入力値(x)を比較し、入力値(x=0.5)が第1区間区分の値(v
1)である−1と第2区間区分の値(v
2)である1の間であるため比較結果値として2を出力して第1選択器502と第2選択器503に伝達する。前記第1選択器502では3個の統合ウェイトパラメータ(w
1,w
2,w
3)のうち比較結果値(2)に対応される特定統合ウェイトパラメータ(w
2)値である0.5を選択して乗算器504に伝達し、前記第2選択器503では3個の修正バイアスパラメータ(b
1,b
2,b
3)のうち比較結果値(2)に対応される特定修正バイアスパラメータ(b
2)値である0.5を選択して加算器505に伝達する。それから、乗算器504は入力値(x=0.5)に第1選択器502の出力である選択された特定統合ウェイトパラメータ(w
2=0.5)を掛けた0.25を生成してこれを加算器505に伝達し、加算器505は乗算器504の出力値(0.25)に第2選択器503の出力である選択された特定修正バイアスパラメータ(b
2=0.5)を足した値である0.75を生成した後にこれを出力する。
【0087】
一方、数式6での統合ウェイトパラメータ(w
i)、修正バイアスパラメータ(b
i)及び区間区分の基準値(v
i)を求めるためには数式7を利用しなければならず、数式7を利用するためには各バイアスレイヤの要素バイアスパラメータ(q
i(i=1ないしn−1))、各コンボリューションレイヤの要素ウェイトパラメータ(p
i(i=1ないしn))及びコンボリューションレイヤの要素バイアスパラメータ(d)を学習装置を通じて求めなければならない。
【0088】
図7は本発明のまた他の実施例により
図6のNCReLU_Conv演算を具現するためのCNN学習装置を示す。
【0089】
本発明にかかるCNN学習装置700は
図1に示された一つのアクティベーションモジュールあたりの一つのCReLUを利用するCNN学習装置100とは異なり、一つのアクティベーションモジュールでNCReLUを利用し、前記NCReLU(N−way CReLU)ではn−1個のバイアスレイヤを有して、nが増加するほどバイアスレイヤと要素アクティベーションレイヤ(ReLU)のペアが増える。一方、下で説明するが、要素アクティベーションレイヤとコンカチネーションレイヤの順序が変われば、バイアスレイヤの数だけ増えて、要素アクティベーションレイヤは1個だけでもよい。
【0090】
図7を参照すれば、CNN学習装置700はコンボリューションレイヤ710、730、NCReLU720及び他のNCReLU(未図示)のような多くのNCReLUが交互に配置される構成を有する。
【0091】
前記アクティベーションモジュール(NCReLU)720はn−1個のバイアスレイヤ721を含み、各々のバイアスレイヤは各々の要素バイアスパラメータ(q
1ないしq
n-1)を有する。好ましくは、第1バイアスレイヤの要素バイアスパラメータ(q
1)を除いた第2ないし第n−1バイアスレイヤの要素バイアスパラメータ(q
2,…,q
n-1)の順序はq
2>…>q
n-1に設定し得る。
【0092】
また、アクティベーションモジュール720は一つのスケールレイヤ722を含み、n個の要素アクティベーションレイヤ723を含む。一実施例で前記要素アクティベーションレイヤはReLUレイヤである。前記スケールレイヤ722はn−1個のバイアスレイヤ721のうち特定バイアスレイヤ(例えば、第1バイアスレイヤ)と連結されて、前記特定バイアスレイヤの出力値に所定のスケール値を掛けるプロセスを遂行し、前記特定要素アクティベーションレイヤ(特定ReLUレイヤ)に伝送する過程を遂行する。
【0093】
そして、学習装置は、(i)前記スケールレイヤ722に連結された特定要素アクティベーションレイヤをもって前記スケールレイヤ722の出力値に非線形アクティベーション関数を適用するようにし、(ii)前記各々の要素バイアスレイヤ721に連結された残りの要素アクティベーションレイヤをもって前記各々の要素バイアスレイヤの出力値に各々の非線形関数を適用するようにする。前記非線形アクティベーション関数はReLU演算で、前記スケールレイヤのスケール値は−1であり得るが、これに限定されるものではない。
【0094】
そして、学習装置は、コンカチネーションレイヤ724をもって前記特定要素アクティベーションレイヤ及び前記残りの要素アクティベーションレイヤの出力値を一つにコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにする過程を遂行する。
【0095】
他の例として、前記要素アクティベーションレイヤ723とコンカチネーションレイヤ724の順序は変わっても関係ない。万一要素アクティベーションレイヤ723がコンカチネーションレイヤ722の後にくる場合は、要素アクティベーションレイヤ723はn個ではなく1個だけでもよい。
【0096】
再び
図7を参照すれば、アクティベーションモジュール720の出力(即ち、コンカチネーションレイヤ724の出力)が次のコンボリューションレイヤ730に伝達されると、学習装置は、次のコンボリューションレイヤ730の各々の要素ウェイトパラメータ(p
i)及び各々の要素バイアスパラメータ(d)を用いてコンカチネートされた出力値にコンボリューション演算を適用するようにする。
【0097】
そして、多数の反復されたコンボリューションレイヤ710、730、多数のNCReLU720及び他のNCReLU(未図示)は交互に配置され、獲得された出力はアプリケーションブロック740を通じて所望の結果値(例えば、ラベルイメージなど)を算出し、算出された結果値とこれに対応されるGT値の間を比較してロスをロスレイヤ750で獲得して、算出されたロスを利用してバックプロパゲーションを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(q
i)、要素ウェイトパラメータ(p
i)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調節する。
【0098】
図7のようにN−way CreLUを有するCNN学習装置700を通じてCNN学習が完了すると、(i)前記n−1個のバイアスレイヤが学習したバイアス値q
1、…,q
n-1と(ii)前記コンボリューションレイヤ730の要素ウェイトパラメータp
1、…,p
nと(iii)要素バイアスパラメータdが獲得される。そして、上述したように、この値が数式6及び数式7を通じてNCReLU_Conv演算装置で利用される。
【0099】
一方、
図7のCNN学習装置700は以前のレイヤやユニットで生成した値を受信し、当該ユニットで生成した値を伝達するための通信部(未図示)と各ユニットとレイヤで遂行する演算プロセスを遂行するプロセッサ(未図示)から構成され得る。
【0100】
図7のCNN学習装置で各パラメータに対する学習が完了するとロスレイヤ750を除去し、ロスレイヤ750がないテスト装置(未図示)によってテスト過程を遂行するようになる。即ち、テストイメージはコンボリューションレイヤ710、730、NCReLU720及び他のNCReLU(未図示)を交互に配置した後、多数のコンボリューションレイヤ及び多数のNCReLUを通過して獲得された出力がアプリケーションブロック740に入力されるようにし、アプリケーションブロック740から出力された結果値が獲得され得る。例えば、アプリケーションブロック740はCNNモデルの用途に応じて、例えば客体感知ブロックや、セマンティックセグメンテーションブロックなどであり得るが、これに限定されるものではない。
【0101】
図8は
図7の例示的な演算過程を示す。
【0102】
図8を参照すれば、
図7の学習装置700で求めたコンボリューションレイヤの要素ウェイトパラメータ(p
1,…,p
n)と要素バイアスパラメータ(d)、バイアスレイヤの要素バイアスパラメータ(q
1,…,q
n-1)を数式6の代わりに
図7の学習装置700と同一のCNNモデルを利用して入力値を演算した例を示す。
【0103】
図6Bのように、入力値(x)として0.5が以前のコンボリューションレイヤ710でアクティベーションモジュール720に伝達されると、アクティベーションモジュール720の第1バイアスレイヤは第1バイアスパラメータ(q
1=−1)を適用して−0.5をスケールレイヤと第2ReLUレイヤに伝達し、第2バイアスレイヤは第2バイアスパラメータ(q
2=1)を適用して1.5を第3ReLUレイヤに伝達する。
【0104】
一方、スケールレイヤ722は−0.5値を伝達されて−1を掛けて生成した0.5を第1ReLUレイヤに伝達する。結果的に、第1ないし第3ReLUレイヤは各々0.5、−0.5、1.5を入力されてReLU演算して各々0.5、0、1.5を生成して出力する。そして、前記コンカチネーションレイヤ724は前記第1ないし第3ReLUレイヤの出力をコンカチネーションし、コンカチネートされた値を後にくるコンボリューションレイヤに伝達する。
【0105】
前記コンボリューションレイヤは入力された値に要素ウェイトパラメータ(1,−0.5,1.5)と要素バイアスパラメータ(−2)を利用して、出力値(y=0.5*1+0*(−0.5)+1.5*1.5+(−2))で0.75を生成して出力する。このように
図7の学習装置または前記学習装置と類似する形態を有するCNNモデルを通じて、前記CNNモデルのコンボリューションレイヤ730から出力した値である0.75は
図6Bの演算装置を通じた生成値と同一であることを確認することができる。
【0106】
本発明の技術分野の通常の技術者に理解され得ることとして、上で説明されたイメージ、例えばinput image、training image、test imageのようなイメージデータの送受信が学習装置及びテスト装置の通信部によってなされ得て、特徴マップと演算を遂行するためのデータが学習装置及びテスト装置のプロセッサ(及び/または、メモリ)によって保有/維持され得て、コンボリューション演算、デコンボリューション演算、エラー値演算過程が主に学習装置、 演算装置及びテスト装置のプロセッサによって遂行され得るが、本発明がこれに限定されるものではない。
【0107】
以上で説明された本発明にかかる実施例は多様なコンピュータ構成要素を通じて遂行され得るプログラム命令語の形態で具現されてコンピュータで判読可能な記録媒体に記録され得る。前記コンピュータで判読可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独または組み合わせて含まれ得る。前記コンピュータで判読可能な記録媒体に記録されるプログラム命令語は本発明のために特別に設計されて構成されたものか、コンピュータソフトウェア分野の当業者に公知となって使用可能なものでもよい。コンピュータで判読可能な記録媒体の例には、ハードディスク、フロッピィディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスク(flopticaldisk)のような磁気−光媒体(magneto−opticalmedia)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令語を保存して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるものような機械語コードだけではなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードも含まれる。前記ハードウェア装置は本発明にかかる処理を遂行するために一つ以上のソフトウェアモジュールとして作動するように構成されることがあり、その逆も同様である。
【0108】
以上、本発明が具体的な構成要素などのような特定の事項と限定された実施例及び図面によって説明されたが、これは本発明のより全般的な理解を助けるために提供されたものであるに過ぎず、本発明が前記実施例に限定されるものではなく、本発明が属する技術分野において通常の知識を有する者であればかかる記載から多様な修正及び変形が行なわれ得る。
【0109】
従って、本発明の思想は前記説明された実施例に極限されて定められてはならず、後述する特許請求の範囲だけではなく、本特許請求の範囲と均等または等価的に変形されたすべてのものは本発明の思想の範疇に属するといえる。