JP6676722B2 - アクティベーション演算とコンボリューション演算を同時に遂行するための方法及び装置、そしてこのための学習方法及び学習装置 - Google Patents

アクティベーション演算とコンボリューション演算を同時に遂行するための方法及び装置、そしてこのための学習方法及び学習装置 Download PDF

Info

Publication number
JP6676722B2
JP6676722B2 JP2018193025A JP2018193025A JP6676722B2 JP 6676722 B2 JP6676722 B2 JP 6676722B2 JP 2018193025 A JP2018193025 A JP 2018193025A JP 2018193025 A JP2018193025 A JP 2018193025A JP 6676722 B2 JP6676722 B2 JP 6676722B2
Authority
JP
Japan
Prior art keywords
layer
value
activation
layers
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018193025A
Other languages
English (en)
Other versions
JP2019075115A (ja
Inventor
キム、ヨンジョン
ナム、ウンユン
ボ、シュクフン
シュン、ミュンチュル
エオ、ドンフン
リュウ、ウージュ
ジャン、タエウォン
ジョン、キュンジョン
ジェ、ホンモ
チョ、ホジン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Stradvision Inc
Original Assignee
Stradvision Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Stradvision Inc filed Critical Stradvision Inc
Publication of JP2019075115A publication Critical patent/JP2019075115A/ja
Application granted granted Critical
Publication of JP6676722B2 publication Critical patent/JP6676722B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/12Simultaneous equations, e.g. systems of linear equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Neurology (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Image Analysis (AREA)
  • Complex Calculations (AREA)

Description

本発明はアクティベーション演算とコンボリューション演算を同時に遂行できる演算方法及び演算装置、そしてこれを具現するための学習方法及び学習装置に関する。より詳細には、(i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行する、学習装置でCNNのパラメータを学習する方法において、(a)前記学習装置が、入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセスを遂行する段階;(b)前記学習装置が、前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセスを遂行する段階;(c)前記学習装置が、(i)前記スケールレイヤに連結された特定要素アクティベーションレイヤをもって前記スケールレイヤの出力値に非線形アクティベーション関数を適用するようにするプロセス及び(ii)前記各々の要素バイアスレイヤに連結された残りの要素アクティベーションレイヤをもって前記各々の要素バイアスレイヤの出力値に各々の非線形関数を適用するようにするプロセスを遂行する段階;(d)前記学習装置が、コンカチネーションレイヤをもって前記特定要素アクティベーションレイヤ及び前記残りの要素アクティベーションレイヤの出力値を一つにコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセスを遂行する段階;(e)前記学習装置が、前記コンボリューションレイヤをもって前記コンボリューションレイヤの各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記コンカチネートされた出力値に前記コンボリューション演算を遂行するようにする段階;及び(f)前記(e)段階の出力を、前記コンボリューション演算の結果を使用して前記CNNの用途に応じた結果値を獲得するアプリケーションブロックに入力して前記アプリケーションブロックによって前記結果値が出力されると、前記学習装置が、ロスレイヤをもって前記アプリケーションブロックから出力された前記結果値及び前記結果値に対応されるGT(Ground−Truth)値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整する段階;を含むことを特徴とする方法及び装置、そしてこのための学習方法及び学習装置に関する。
ディープコンボリューションニューラルネットワーク(Deep Convolution Neural Networks;ディープCNN)はディープラーニング分野で起きた驚くべき発展の核心である。CNNは文字認識問題を解くために90年代に既に使用されていたが、現在のように広く使用されるようになったのは最近の研究結果のおかげである。このようなディープCNNは2012年ImageNetイメージ分類コンテストで他の競争相手に勝って優勝を収めた。そうして、コンボリューションニューラルネットワークはMachine Learning分野で非常に有用なツールとなった。
図1はCReLU演算とコンボリューション演算を遂行できる既存のCNN学習装置の構成を示す。
図1を参照すれば、既存のCNN学習装置100はコンボリューションレイヤ110、130、CReLU(Concatenated Rectified Linear Unit)120及び他のCReLU(未図示)を含んでおり、演算が交互に複数回反復される形態を有している。
この時、CReLU120は2個のReLU(Rectified Linear Unit)122を含み、ReLU122で遂行する演算は下のような数式で遂行される。
Figure 0006676722
前記CReLUは既存のCNNモデルのコンボリューションフィルタを学習する時、陰の相関関係が強いフィルタがペアで学習される現象に着眼して下の数式のような既存ReLUのポジティブアクティベーションだけでなく、ネガティブアクティベーションも追加で作り出すアクティベーションスキームである。
Figure 0006676722
図1のように、コンボリューション演算とCReLU(またはReLU)演算が交互に反復される構造で、CReLUはReLUと比較した時にコンボリューション演算量が増加することなく2倍の個数の結果値を出力するか、または同じ個数の結果値を出力する時に前のコンボリューション演算量を1/2に減らすことができる長所がある。従って、CReLU導入により検出速度を維持しながら、検出正確度を高めることができるか、検出正確度を維持しながら、検出速度を速めることができるようになる。
図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個だけ存在する。
図1を参照すれば、以前のコンボリューションレイヤ110からの出力値として
Figure 0006676722

(例えば、この値は(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をかけて生成した値である
Figure 0006676722

を二番目のReLUレイヤに伝達し、
Figure 0006676722

値を直接伝達された一番目ReLUレイヤ及びスケールレイヤ121から
Figure 0006676722

値を伝達された二番目のReLUレイヤは各々ポジティブアクティベーション演算を遂行して
Figure 0006676722


Figure 0006676722

を生成してこれをコンカチネーションレイヤ123に伝達する。それから、コンカチネーションレイヤ123はこれらの値を一つにコンカチネートして
Figure 0006676722

を生成してこれを次の隣り合ったコンボリューションレイヤ130に伝達する。コンボリューションレイヤ130はこれらの値にコンボリューション演算を遂行する。
一方、図1のように、CReLUレイヤの演算とコンボリューションレイヤの演算を別途遂行するようになると、各々の独立的な演算プロセスが遂行されて演算量が多い問題がある。
従って、本発明ではCReLUが用いられたCNNモデルでコンボリューション演算量を減らすための新たな方法を提供しようとする。
本発明はCReLUユニットが用いられたCNNでコンボリューションレイヤの演算量を減らす方法を提供することを目的とする。
また、本発明はコンボリューション演算量やメモリが大きく増加することなくCNNモデルの複雑度を高めて検出正確度を高めることができる方法を提供することを目的とする。
本発明の一態様によれば、(i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行する学習装置でCNNのパラメータを学習する方法において、(a)前記学習装置が、入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセスを遂行する段階;(b)前記学習装置が、前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセスを遂行する段階;(c)前記学習装置が、(i)前記スケールレイヤに連結された特定要素アクティベーションレイヤをもって前記スケールレイヤの出力値に非線形アクティベーション関数を適用するようにするプロセス及び(ii)前記各々の要素バイアスレイヤに連結された残りの要素アクティベーションレイヤをもって前記各々の要素バイアスレイヤの出力値に各々の非線形関数を適用するようにするプロセスを遂行する段階;(d)前記学習装置が、コンカチネーションレイヤをもって前記特定要素アクティベーションレイヤ及び前記残りの要素アクティベーションレイヤの出力値を一つにコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセスを遂行する段階;(e)前記学習装置が、前記コンボリューションレイヤをもって前記コンボリューションレイヤの各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記コンカチネートされた出力値にコンボリューション演算を遂行するようにする段階;及び(f)前記(e)段階の出力を所定のアプリケーションブロックに入力して前記アプリケーションブロックによって所定の結果値が出力されると、前記学習装置が、ロスレイヤをもって前記アプリケーションブロックから出力された結果値及び前記結果値に対応されるGT値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整する段階;を含むことを特徴とする方法が提供される。
一例として、前記スケール値は負数であることを特徴とする学習方法が提供される。
一例として、前記アクティベーションモジュールはN−way CReLU(N−way Concatenated Rectified Linear Units)を含み、前記要素アクティベーションレイヤはReLU(Rectified Linear Units)レイヤであることを特徴とする学習方法が提供される。
一例として、前記(c)段階でn個の要素アクティベーションレイヤを用いる場合、前記(a)段階で用いられる前記要素バイアスレイヤの個数はn−1個であることを特徴とする学習方法が提供される。
本発明の他の態様によれば、(i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行する学習装置でCNNのパラメータを学習する方法において、(a)前記学習装置が、入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセスを遂行する段階;(b)前記学習装置が、前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセスを遂行する段階;(c)前記学習装置が、前記スケールレイヤ及び前記各々の要素バイアスレイヤに連結されたコンカチネーションレイヤをもって前記スケールレイヤの出力値及び前記各々の要素バイアスレイヤの出力値をコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセスを遂行する段階;(d)前記学習装置が、前記コンカチネーションレイヤに連結されたアクティベーションレイヤをもって前記コンカチネートされた出力値に非線形アクティベーション関数を適用するようにするプロセスを遂行する段階;(e)前記学習装置が、前記コンボリューションレイヤをもって前記コンボリューションレイヤの各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記アクティベーションレイヤの出力値にコンボリューション演算を遂行するようにする段階;及び(f)前記(e)段階の出力を所定のアプリケーションブロックに入力して前記アプリケーションブロックによって所定の結果値が出力されると、前記学習装置が、ロスレイヤをもって前記アプリケーションブロックから出力された結果値及び前記結果値に対応されるGT値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整する段階;を含むことを特徴とする方法が提供される。
一例として、前記スケール値は負数であることを特徴とする学習方法が提供される。
一例として、前記アクティベーションモジュールはN−way CReLU(N−way Concatenated Rectified Linear Units)を含み、前記アクティベーションレイヤはReLU(Rectified Linear Units)レイヤであることを特徴とする学習方法が提供される。
一例として、前記単一の(a)段階で用いられる前記要素バイアスレイヤの個数はn−1個であることを特徴とする学習方法が提供される。
本発明のまた他の態様によれば、(i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行するCNNのパラメータを学習する装置において、前記入力イメージを受信する通信部;及び(i)入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセス;(ii)前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセス;(iii)前記スケールレイヤに連結された特定要素アクティベーションレイヤをもって前記スケールレイヤの出力値に非線形アクティベーション関数を適用するようにするプロセス;(iv)前記各々の要素バイアスレイヤに連結された残りの要素アクティベーションレイヤをもって前記各々の要素バイアスレイヤの出力値に各々の非線形関数を適用するようにするプロセス;(v)コンカチネーションレイヤをもって前記特定要素アクティベーションレイヤ及び前記残りの要素アクティベーションレイヤの出力値を一つにコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセス;及び(vi)前記コンボリューションレイヤをもって前記コンボリューションレイヤ各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記コンカチネートされた出力値に対するコンボリューション演算を遂行するようにするプロセス;及び(vii)所定のアプリケーションブロックによって所定の結果値が出力されると、ロスレイヤをもって前記アプリケーションブロックから出力された結果値及び前記結果値に対応されるGT値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整するプロセス;を遂行するプロセッサを含むことを特徴とする学習装置が提供される。
一例として、前記スケール値は負数であることを特徴とする学習装置が提供される。
一例として、前記アクティベーションモジュールはN−way CReLU(N−way Concatenated Rectified Linear Units)を含み、前記要素アクティベーションレイヤはReLU(Rectified Linear Units)レイヤであることを特徴 とする学習装置が提供される。
一例として、前記プロセッサでn個の要素アクティベーションレイヤを用いる場合、前記要素バイアスレイヤの個数はn−1個であることを特徴とする学習装置が提供される。
本発明のまた他の態様によれば、(i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行するCNNのパラメータを学習する装置において、前記入力イメージを受信する通信部;及び(i)入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセス;(ii)前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセス;(iii)前記スケールレイヤ及び前記各々の要素バイアスレイヤに連結されたコンカチネーションレイヤをもって前記スケールレイヤの出力値及び前記各々の要素バイアスレイヤの出力値をコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセス;(iv)前記コンカチネーションレイヤに連結されたアクティベーションレイヤをもって前記コンカチネートされた出力値に非線形アクティベーション関数を適用するようにするプロセス;(v)前記コンボリューションレイヤをもって前記コンボリューションレイヤの各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記アクティベーションレイヤの出力値にコンボリューション演算を遂行するようにするプロセス;及び(vi)所定のアプリケーションブロックによって所定の結果値が出力されると、ロスレイヤをもって前記アプリケーションブロックから出力された結果値及び前記結果値に対応されるGT値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整するプロセス;を遂行するプロセッサを含むことを特徴とする学習装置が提供される。
一例として、前記スケール値は負数であることを特徴とする学習装置が提供される。
一例として、前記アクティベーションモジュールはN−way CReLU(N−way Concatenated Rectified Linear Units)を含み、前記要素アクティベーションレイヤはReLU(Rectified Linear Units)レイヤであることを特徴とする学習装置が提供される。
一例として、前記プロセッサで用いられる前記要素バイアスレイヤの個数はn−1個であることを特徴とする学習装置が提供される。
本発明によれば、より少ない演算量を要求する新たな演算ユニットを通じて、CReLU演算とコンボリューション演算を同時に遂行するようにすることができる。
また、本発明によれば、N−way CreLUを具現することで、コンボリューションレイヤでの演算量を減らしながら、他のレイヤでの演算量やメモリが大きく増加することなく検出正確度を高めることができる効果がある。
図1は、CReLU演算とコンボリューション演算を遂行できる既存のCNN学習装置の構成を示す。 図2は、本発明の一実施例にかかるCReLU演算とコンボリューション演算を統合するためのCNN学習装置の演算方法を示す。 図3Aは、図2の例示的な演算過程を示す。 図3Bは、図2の例示的な演算過程を示す。 図4Aは、CReLU_Conv演算の例を示す。 図4Bは、CReLU_Conv演算の例を示す。 図4Cは、NCReLU_Conv演算の例を示して、ここで、Nは3である。 図5は、本発明の他の実施例にかかるCNNのNCReLU_Conv演算方法を示す。 図6Aは、図5の例示的な演算過程を示す。 図6Bは、図5の例示的な演算過程を示す。 図7は、本発明のまた他の実施例により図6のNCReLU_Conv演算を具現するためのCNN学習装置を示す。 図8は、図7の例示的な演算過程を示す。
後述する本発明に対する詳細な説明は、本発明が実施され得る特定の実施例を例示として示す添付図面を参照する。これらの実施例は当業者が本発明を実施することができるように充分詳細に説明される。本発明の多様な実施例は相互異なるが、相互排他的である必要はないことを理解されたい。例えば、ここに記載されている特定の形状、構造及び特性は一実施例にかかる本発明の精神及び範囲を逸脱せずに他の実施例で具現され得る。また、各々の開示された実施例内の個別構成要素の位置または配置は本発明の精神及び範囲を逸脱せずに変更され得ることを理解されたい。従って、後述する詳細な説明は限定的な意味で捉えようとするものではなく、本発明の範囲は、適切に説明されると、その請求項が主張することと均等なすべての範囲と、併せて添付された請求項によってのみ限定される。図面で類似する参照符号はいくつかの側面にかけて同一か類似する機能を指称する。
以下、本発明が属する技術分野で通常の知識を有する者が本発明を容易に実施することができるようにするために、本発明の好ましい実施例について添付の図面を参照して詳細に説明することとする。
図2は本発明の一実施例にかかるCReLU演算とコンボリューション演算を統合するためのCNN学習装置の演算方法を示す。
図2を参照すれば、本発明にかかるCReLU演算とコンボリューション演算を統合するためのCNN演算装置200は比較器201、選択器202及び乗算器203を含む。本発明にかかるCNN演算装置200は所定の入力(例えば、以前のコンボリューションレイヤ(未図示)から伝達された特徴マップ)を受信するための通信部(未図示)と前記比較器201、選択器202及び乗算器203で遂行するプロセスを遂行するプロセッサ(未図示)から構成され得る。即ち、前記比較器201、選択器202及び乗算器203の機能はCNN演算装置200内のプロセッサ(未図示)で遂行される各プロセスで具現され得る。
再び図1を参照すれば、図1のCReLU120の演算は一つの入力に対して二つの出力を作り出すのに下のような数式で表現され得る。
Figure 0006676722
上の数式3のように、CReLUは入力値の範囲に応じて一番目または二番目の出力値だけ0ではない値を有するようにする。
万一CNNのコンボリューションレイヤ130がコンボリューションフィルタの要素パラメータ値として
Figure 0006676722

を有する場合、CNNでCReLU120の演算結果を入力でコンボリューションレイヤ130による演算をすることは、下のような数式で簡略に表現され得る。
Figure 0006676722
上の数式4のように、CReLU演算とコンボリューション演算を合わせて考えると、CReLUの入力値の範囲に応じてコンボリューションレイヤのパラメータ値を定める形態に変えて次のような数式で表現し得る。
Figure 0006676722
ここで、CReLU_ConvはCReLUユニットの出力にコンボリューションフィルタを適用した演算結果を示して、xは入力値、前記w1、w2はコンボリューションレイヤのパラメータ、a、bは前記w1、w2を獲得するための学習されたコンボリューションレイヤの要素パラメータである。
図2は前記数式5を具現するためのCNN演算装置200の演算方法を示す。
従来技術によりCReLU演算の次にコンボリューション演算を適用すると、CReLUの出力値に0を掛ける演算のような不要な演算が多く生じざるを得ない。しかし、本発明にかかるCNN演算装置200を利用したCNN演算構成方法は、CReLUでの演算とコンボリューション演算を一つに合わせて、CReLUの入力値(x)の範囲に応じてコンボリューションレイヤのパラメータ値(w1、w2)を選択して掛ける形態の効率的な演算過程を利用する。
具体的に図2を参照すれば、本発明にかかるCNN演算装置200がテストイメージとしての入力イメージを入力されると、演算装置200内の比較器201で入力されたイメージの各画素値に対応する入力値(x)を所定の基準値と比較してその比較結果に対する比較結果値を出力する。前記入力イメージはCNN装置に入力されるテストイメージだけでなく以前のCNN演算装置、以前のコンボリューションレイヤまたは以前のアクティベーションレイヤなどから出力されて入力されたイメージまたは特徴マップなどのうち少なくとも一部を含む概念である。そして、前記所定の基準値は0であり得るが、これに限定されるものではない。
また、前記選択器202は前記比較結果を参照して前記パラメータ(w1、w2)のうち選択された特定パラメータを出力して乗算器203に伝達する。
そして、前記乗算器203は前記入力値(x)と前記選択された特定パラメータを掛けて、掛けた値を求めて出力する。
例えば、前記数式5のように、入力値(x)が0よりも小さい場合、前記演算装置200は前記入力値にコンボリューションレイヤの第2要素パラメータ(b)の負値である第1パラメータ(w1)を掛けて出力し、入力値(x)が0よりも大きいか同じ場合、前記演算装置200はコンボリューションレイヤの第1要素パラメータ(a)値である第2パラメータ(w2)を掛けて出力する。
図3A及び図3Bは図2の例示的な演算過程を示す。
図3Aを参照すれば、入力値(x)が3である場合、前記比較器201では3が所定の基準値である0よりも大きいという比較結果値として2を出力し、前記選択器202では2個のフィルタパラメータ(w1=0.2,w2=0.8)のうち比較結果値である2に対応するw2(0.8)を乗算器203に出力する。それから、前記乗算器203は入力値(x)にw2(0.8)を掛けた値である0.24を生成した後にこれを出力する。
図3Bを参照すれば、入力値(x)が−1である場合、前記比較器201では−1が所定の基準値の0よりも小さいという比較結果値として1を出力し、前記選択器202では2個のフィルタパラメータ(w1=0.2,w2=0.8)のうち比較結果値である1に対応するw1(0.2)を乗算器203に出力する。それから、前記乗算器203は入力値(x)にw1(0.2)を掛けた値である−0.2を生成した後にこれを出力する。
図4A及び図4BはCReLU_Conv演算の例を示して、図4CはNCReLU_Conv演算の例を示して、ここで、Nは3である。
図4A及び図4Bは図2、図3A、及び図3Bを通じて説明したCReLU_Conv(CReLU演算とコンボリューション演算の統合演算)の入力(x)と出力(y=CReLU_Conv(x))の関係を示すグラフである。前記図4A及び図4Bのグラフの形はw1及びw2の値の符号によって異なり得る。
一方、図4Cは線分セグメント個数を3個に拡張し、前記グラフが(0,0)を必ず通過しなければならない制限条件を除去したグラフである。
図4Cに示されたとおり、線分セグメント個数は2個からn個に拡張し得て、比較値(以下、区間区分の基準値)も拡張され得る。ここで、各々の区間は入力値と比較される各々の範囲に対する情報が含まれ得る。前記演算装置の前記比較器は前記入力値がどの区間に属するかに対する情報を参照にして決定された比較結果を出力し得る。
前記線分セグメント個数は図4A及び4Bのように2個から図4Cのようにn個(n=>3、例えば、3)まで増加し得て、前記比較値は図4A及び4Bのように、1から図4Cのようにn−1(例えば、2)まで増加し得る。このようになれば、piecewise linear continuous function形態のNCReLU_Conv演算器を具現し得るようになる。
かかるNCReLU_Conv演算器は下のような数式で定義され得る。
Figure 0006676722
ここで、NCReLU_ConvはN個のアクティベーションユニット(以下、N−way CReLU(N−way Concatenated Rectified Linear Units)またはNCReLUという)から構成されるCReLUの出力にコンボリューションレイヤを適用した演算結果を示して、xは入力値、wiはコンボリューションレイヤの統合ウェイトパラメータ、biはコンボリューションレイヤの修正バイアスパラメータ、viは各々の区間区分の基準値である。
一方、前記数式6でbi+1に対する条件式はNCReLU_Convが連続関数(Continuous Function)になるために必要で、b1を除いたバイアス値は付与されたb11、wi、vi値によって決定される。
図5は本発明の他の実施例にかかるCNNのNCReLU_Conv演算方法を示す。
図5に示された本発明の一実施例にかかるNCReLU_Conv演算を遂行するCNN演算装置500は、図2に示された前記演算装置200の改善されたバージョンである。前記演算装置200は2個の比較区間を用いるが、前記演算装置500はpiecewise linear continuous functionを適用して比較区間を2個からn個に拡張した装置である。
図5を参照すれば、本発明にかかるCNN演算装置500はNCReLU演算とコンボリューション演算を同時に遂行し得て、比較器501、第1選択器502、第2選択器503、乗算器504及び加算器505を含む。
本発明にかかるCNN演算装置500は入力値(例えば、以前の演算部から伝達された特徴マップ)を受信して演算された値を出力するための通信部(未図示)と前記比較器501、第1選択器502、第2選択器503、乗算器504及び加算器505で遂行するプロセスを遂行するプロセッサから構成され得る。即ち、前記比較器501、第1選択器502、第2選択器503、乗算器504及び加算器505の機能はCNN演算装置500内のプロセッサ(未図示)で遂行される各プロセスで具現され得る。
具体的に図5を参照して、CNN演算装置500がテストイメージとしての入力イメージを入力されると、比較器501は入力されたイメージの各画素値に対応する入力値(x)を所定の基準区間区分の値と比較してその比較結果に対する比較結果値を出力する。即ち、入力値(x)が前記所定の区間区分の基準値のうちどの値の間の区間に該当するかに対する比較結果値を出力する。
例えば、図4Cに示された例では、x値がv1よりも小さい場合、比較結果値として1を、x値がv1とv2の間である場合、比較結果値として2を、x値がv2よりも大きい場合、比較結果値として3を出力する。ここで、入力イメージは入力されたイメージ自体だけでなく、以前のコンボリューションレイヤから受信した特徴マップのうち少なくとも一つを含む概念であり得る。
前記第1選択器502は比較結果を参照にして、コンボリューションレイヤの多数の統合ウェイトパラメータ(w1,…,wn)のうち選択された特定統合ウェイトパラメータを出力し、前記第2選択器503は比較結果を参照にして、コンボリューションレイヤの多数の修正バイアスパラメータ(b1,…,bn)のうち選択された特定修正バイアスパラメータを出力する。一方、CNN演算装置500のプロセッサは第1選択器502のプロセスと第2選択器503のプロセスを同時に遂行し得る。
前記乗算器504は第1選択器502で選択された特定統合ウェイトパラメータを入力値(x)と掛けて出力し、加算器505は乗算器504の出力に第2選択器503で選択された特定修正バイアスパラメータを足して出力する。即ち、このように出力された値はNCReLUユニットの出力にコンボリューションレイヤの演算を適用して得た結果値としてみなされ得る。
一方、数式6での統合ウェイトパラメータ(wi)、修正バイアスパラメータ(bi)、区間区分の基準値(vi)は次の数式7で算出される。
Figure 0006676722
ここで、qi(q1ないしqn-1)は各バイアスレイヤの各々の要素バイアスパラメータで、pi(p1ないしpn)は前記コンボリューションレイヤの各々の要素ウェイトパラメータで、dは前記コンボリューションレイヤの要素バイアスパラメータであり、rank(qi)は{q1,…..qn-1}のうちqiが何番目に大きい数かを示して、rank-1(i)は{q1,…qn-1}のうちi番目に大きい数のインデックス(Index)を示す。
図5に示されたN−way CReLU_Conv(NCReLU_Conv)演算装置はすべての可能なn個のセグメントから構成されたpiecewise linear continuous functionを表現し得る。また、すべての充分にソフトな関数はxの特定範囲内でpiecewise linear continuous functionに近似することができるので、N−way CReLU_Conv演算装置がそのような関数を学習し出すことができるためである。
これに比べて、図1のように、既存のバイアスがないCReLUユニットは2個のセグメントだけから構成されて、“f(x)=0 when x=0”条件を満たすpiecewise linear continuous functionだけを表現し得る短所がある。これは図2に示された2個のセグメントから構成されるCReLU_Conv演算装置でも同様である。
図5のNCReLU_Conv演算装置500でNCReLU_Convのnが2である場合には下記のように表現し得て、これは図2のCReLU_Conv演算装置の演算内容と同一になる。
Figure 0006676722
図6A及び図6Bは図5の例示的な演算過程を示す。
図6Aを参照すれば、入力値(x)が−1.5である場合、比較器501では2個の区間区分の値(v1,v2)と入力値(x)を比較し、入力値(x=−1.5)が第1区間区分の値(v1)である−1よりも小さいので、比較結果値として1を出力して第1選択器502と第2選択器503に伝達する。前記第1選択器502では3個の統合ウェイトパラメータ(w1,w2,w3)のうち比較結果値(1)に対応される特定統合ウェイトパラメータ(w1)値である−1を選択して乗算器504に伝達し、前記第2選択器503では3個の修正バイアスパラメータ(b1,b2,b3)のうち比較結果値(1)に対応される特定修正バイアスパラメータ(b1)値である−1を選択して加算器505に伝達する。それから、乗算器504は入力値(x=−1.5)に第1選択器502の出力である選択された特定統合ウェイトパラメータ(w1=−1)を掛けた1.5を生成してこれを加算器505に伝達し、加算器505は乗算器504の出力値(1.5)に第2選択器503の出力である選択された特定修正バイアスパラメータ(b1=−1)を足した値である0.5を生成した後にこれを出力する。
図6Bを参照すれば、入力値(x)が0.5である場合、比較器501では2個の区間区分の値(v1,v2)と入力値(x)を比較し、入力値(x=0.5)が第1区間区分の値(v1)である−1と第2区間区分の値(v2)である1の間であるため比較結果値として2を出力して第1選択器502と第2選択器503に伝達する。前記第1選択器502では3個の統合ウェイトパラメータ(w1,w2,w3)のうち比較結果値(2)に対応される特定統合ウェイトパラメータ(w2)値である0.5を選択して乗算器504に伝達し、前記第2選択器503では3個の修正バイアスパラメータ(b1,b2,b3)のうち比較結果値(2)に対応される特定修正バイアスパラメータ(b2)値である0.5を選択して加算器505に伝達する。それから、乗算器504は入力値(x=0.5)に第1選択器502の出力である選択された特定統合ウェイトパラメータ(w2=0.5)を掛けた0.25を生成してこれを加算器505に伝達し、加算器505は乗算器504の出力値(0.25)に第2選択器503の出力である選択された特定修正バイアスパラメータ(b2=0.5)を足した値である0.75を生成した後にこれを出力する。
一方、数式6での統合ウェイトパラメータ(wi)、修正バイアスパラメータ(bi)及び区間区分の基準値(vi)を求めるためには数式7を利用しなければならず、数式7を利用するためには各バイアスレイヤの要素バイアスパラメータ(qi(i=1ないしn−1))、各コンボリューションレイヤの要素ウェイトパラメータ(pi(i=1ないしn))及びコンボリューションレイヤの要素バイアスパラメータ(d)を学習装置を通じて求めなければならない。
図7は本発明のまた他の実施例により図6のNCReLU_Conv演算を具現するためのCNN学習装置を示す。
本発明にかかるCNN学習装置700は図1に示された一つのアクティベーションモジュールあたりの一つのCReLUを利用するCNN学習装置100とは異なり、一つのアクティベーションモジュールでNCReLUを利用し、前記NCReLU(N−way CReLU)ではn−1個のバイアスレイヤを有して、nが増加するほどバイアスレイヤと要素アクティベーションレイヤ(ReLU)のペアが増える。一方、下で説明するが、要素アクティベーションレイヤとコンカチネーションレイヤの順序が変われば、バイアスレイヤの数だけ増えて、要素アクティベーションレイヤは1個だけでもよい。
図7を参照すれば、CNN学習装置700はコンボリューションレイヤ710、730、NCReLU720及び他のNCReLU(未図示)のような多くのNCReLUが交互に配置される構成を有する。
前記アクティベーションモジュール(NCReLU)720はn−1個のバイアスレイヤ721を含み、各々のバイアスレイヤは各々の要素バイアスパラメータ(q1ないしqn-1)を有する。好ましくは、第1バイアスレイヤの要素バイアスパラメータ(q1)を除いた第2ないし第n−1バイアスレイヤの要素バイアスパラメータ(q2,…,qn-1)の順序はq2>…>qn-1に設定し得る。
また、アクティベーションモジュール720は一つのスケールレイヤ722を含み、n個の要素アクティベーションレイヤ723を含む。一実施例で前記要素アクティベーションレイヤはReLUレイヤである。前記スケールレイヤ722はn−1個のバイアスレイヤ721のうち特定バイアスレイヤ(例えば、第1バイアスレイヤ)と連結されて、前記特定バイアスレイヤの出力値に所定のスケール値を掛けるプロセスを遂行し、前記特定要素アクティベーションレイヤ(特定ReLUレイヤ)に伝送する過程を遂行する。
そして、学習装置は、(i)前記スケールレイヤ722に連結された特定要素アクティベーションレイヤをもって前記スケールレイヤ722の出力値に非線形アクティベーション関数を適用するようにし、(ii)前記各々の要素バイアスレイヤ721に連結された残りの要素アクティベーションレイヤをもって前記各々の要素バイアスレイヤの出力値に各々の非線形関数を適用するようにする。前記非線形アクティベーション関数はReLU演算で、前記スケールレイヤのスケール値は−1であり得るが、これに限定されるものではない。
そして、学習装置は、コンカチネーションレイヤ724をもって前記特定要素アクティベーションレイヤ及び前記残りの要素アクティベーションレイヤの出力値を一つにコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにする過程を遂行する。
他の例として、前記要素アクティベーションレイヤ723とコンカチネーションレイヤ724の順序は変わっても関係ない。万一要素アクティベーションレイヤ723がコンカチネーションレイヤ722の後にくる場合は、要素アクティベーションレイヤ723はn個ではなく1個だけでもよい。
再び図7を参照すれば、アクティベーションモジュール720の出力(即ち、コンカチネーションレイヤ724の出力)が次のコンボリューションレイヤ730に伝達されると、学習装置は、次のコンボリューションレイヤ730の各々の要素ウェイトパラメータ(pi)及び各々の要素バイアスパラメータ(d)を用いてコンカチネートされた出力値にコンボリューション演算を適用するようにする。
そして、多数の反復されたコンボリューションレイヤ710、730、多数のNCReLU720及び他のNCReLU(未図示)は交互に配置され、獲得された出力はアプリケーションブロック740を通じて所望の結果値(例えば、ラベルイメージなど)を算出し、算出された結果値とこれに対応されるGT値間を比較してロスをロスレイヤ750で獲得して、算出されたロスを利用してバックプロパゲーションを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調節する。
図7のようにN−way CreLUを有するCNN学習装置700を通じてCNN学習が完了すると、(i)前記n−1個のバイアスレイヤが学習したバイアス値q1、…,qn-1と(ii)前記コンボリューションレイヤ730の要素ウェイトパラメータp1、…,pnと(iii)要素バイアスパラメータdが獲得される。そして、上述したように、この値が数式6及び数式7を通じてNCReLU_Conv演算装置で利用される。
一方、図7のCNN学習装置700は以前のレイヤやユニットで生成した値を受信し、当該ユニットで生成した値を伝達するための通信部(未図示)と各ユニットとレイヤで遂行する演算プロセスを遂行するプロセッサ(未図示)から構成され得る。
図7のCNN学習装置で各パラメータに対する学習が完了するとロスレイヤ750を除去し、ロスレイヤ750がないテスト装置(未図示)によってテスト過程を遂行するようになる。即ち、テストイメージはコンボリューションレイヤ710、730、NCReLU720及び他のNCReLU(未図示)を交互に配置した後、多数のコンボリューションレイヤ及び多数のNCReLUを通過して獲得された出力がアプリケーションブロック740に入力されるようにし、アプリケーションブロック740から出力された結果値が獲得され得る。例えば、アプリケーションブロック740はCNNモデルの用途に応じて、例えば客体感知ブロックや、セマンティックセグメンテーションブロックなどであり得るが、これに限定されるものではない。
図8は図7の例示的な演算過程を示す。
図8を参照すれば、図7の学習装置700で求めたコンボリューションレイヤの要素ウェイトパラメータ(p1,…,pn)と要素バイアスパラメータ(d)、バイアスレイヤの要素バイアスパラメータ(q1,…,qn-1)を数式6の代わりに図7の学習装置700と同一のCNNモデルを利用して入力値を演算した例を示す。
図6Bのように、入力値(x)として0.5が以前のコンボリューションレイヤ710でアクティベーションモジュール720に伝達されると、アクティベーションモジュール720の第1バイアスレイヤは第1バイアスパラメータ(q1=−1)を適用して−0.5をスケールレイヤと第2ReLUレイヤに伝達し、第2バイアスレイヤは第2バイアスパラメータ(q2=1)を適用して1.5を第3ReLUレイヤに伝達する。
一方、スケールレイヤ722は−0.5値を伝達されて−1を掛けて生成した0.5を第1ReLUレイヤに伝達する。結果的に、第1ないし第3ReLUレイヤは各々0.5、−0.5、1.5を入力されてReLU演算して各々0.5、0、1.5を生成して出力する。そして、前記コンカチネーションレイヤ724は前記第1ないし第3ReLUレイヤの出力をコンカチネーションし、コンカチネートされた値を後にくるコンボリューションレイヤに伝達する。
前記コンボリューションレイヤは入力された値に要素ウェイトパラメータ(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の演算装置を通じた生成値と同一であることを確認することができる。
本発明の技術分野の通常の技術者に理解され得ることとして、上で説明されたイメージ、例えばinput image、training image、test imageのようなイメージデータの送受信が学習装置及びテスト装置の通信部によってなされ得て、特徴マップと演算を遂行するためのデータが学習装置及びテスト装置のプロセッサ(及び/または、メモリ)によって保有/維持され得て、コンボリューション演算、デコンボリューション演算、エラー値演算過程が主に学習装置、演算装置及びテスト装置のプロセッサによって遂行され得るが、本発明がこれに限定されるものではない。
以上で説明された本発明にかかる実施例は多様なコンピュータ構成要素を通じて遂行され得るプログラム命令語の形態で具現されてコンピュータで判読可能な記録媒体に記録され得る。前記コンピュータで判読可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独または組み合わせて含まれ得る。前記コンピュータで判読可能な記録媒体に記録されるプログラム命令語は本発明のために特別に設計されて構成されたものか、コンピュータソフトウェア分野の当業者に公知となって使用可能なものでもよい。コンピュータで判読可能な記録媒体の例には、ハードディスク、フロッピィディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスク(flopticaldisk)のような磁気−光媒体(magneto−opticalmedia)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令語を保存して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるものような機械語コードだけではなく、インタプリタなどを用いてコンピュータによって実行され得る高級言語コードも含まれる。前記ハードウェア装置は本発明にかかる処理を遂行するために一つ以上のソフトウェアモジュールとして作動するように構成されることがあり、その逆も同様である。
以上、本発明が具体的な構成要素などのような特定の事項と限定された実施例及び図面によって説明されたが、これは本発明のより全般的な理解を助けるために提供されたものであるに過ぎず、本発明が前記実施例に限定されるものではなく、本発明が属する技術分野において通常の知識を有する者であればかかる記載から多様な修正及び変形が行なわれ得る。
従って、本発明の思想は前記説明された実施例に極限されて定められてはならず、後述する特許請求の範囲だけではなく、本特許請求の範囲と均等または等価的に変形されたすべてのものは本発明の思想の範疇に属するといえる。

Claims (16)

  1. (i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行する学習装置でCNNのパラメータを学習する方法において、
    (a)前記学習装置が、入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセスを遂行する段階;
    (b)前記学習装置が、前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセスを遂行する段階;
    (c)前記学習装置が、(i)前記スケールレイヤに連結された特定要素アクティベーションレイヤをもって前記スケールレイヤの出力値に非線形アクティベーション関数を適用するようにするプロセス及び(ii)前記各々の要素バイアスレイヤに連結された残りの要素アクティベーションレイヤをもって前記各々の要素バイアスレイヤの出力値に各々の非線形関数を適用するようにするプロセスを遂行する段階;
    (d)前記学習装置が、コンカチネーションレイヤをもって前記特定要素アクティベーションレイヤ及び前記残りの要素アクティベーションレイヤの出力値を一つにコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセスを遂行する段階;
    (e)前記学習装置が、前記コンボリューションレイヤをもって前記コンボリューションレイヤの各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記コンカチネートされた出力値に前記コンボリューション演算を遂行するようにする段階;及び
    (f)前記(e)段階の出力を、前記コンボリューション演算の結果を使用して前記CNNの用途に応じた結果値を獲得するアプリケーションブロックに入力して前記アプリケーションブロックによって前記結果値が出力されると、前記学習装置が、ロスレイヤをもって前記アプリケーションブロックから出力された前記結果値及び前記結果値に対応されるGT(Ground−Truth)値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整する段階;
    を含むことを特徴とする方法。
  2. 前記スケール値は負数であることを特徴とする請求項1に記載の学習方法。
  3. 前記アクティベーションモジュールはN−way CReLU(N−way Concatenated Rectified Linear Units)を含み、
    前記要素アクティベーションレイヤはReLU(Rectified Linear Units)レイヤであることを特徴とする請求項1に記載の学習方法。
  4. 前記(c)段階でn個の要素アクティベーションレイヤを用いる場合、前記(a)段階で用いられる前記要素バイアスレイヤの個数はn−1個であることを特徴とする請求項1に記載の学習方法。
  5. (i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行する学習装置でCNNのパラメータを学習する方法において、
    (a)前記学習装置が、入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセスを遂行する段階;
    (b)前記学習装置が、前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセスを遂行する段階;
    (c)前記学習装置が、前記スケールレイヤ及び前記各々の要素バイアスレイヤに連結されたコンカチネーションレイヤをもって前記スケールレイヤの出力値及び前記各々の要素バイアスレイヤの出力値をコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセスを遂行する段階;
    (d)前記学習装置が、前記コンカチネーションレイヤに連結されたアクティベーションレイヤをもって前記コンカチネートされた出力値に非線形アクティベーション関数を適用するようにするプロセスを遂行する段階;
    (e)前記学習装置が、前記コンボリューションレイヤをもって前記コンボリューションレイヤの各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記アクティベーションレイヤの出力値に前記コンボリューション演算を遂行するようにする段階;及び
    (f)前記(e)段階の出力を、前記コンボリューション演算の結果を使用して前記CNNの用途に応じた結果値を獲得するアプリケーションブロックに入力して前記アプリケーションブロックによって前記結果値が出力されると、前記学習装置が、ロスレイヤをもって前記アプリケーションブロックから出力された前記結果値及び前記結果値に対応されるGT(Ground−Truth)値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整する段階;
    を含むことを特徴とする方法。
  6. 前記スケール値は負数であることを特徴とする請求項5に記載の学習方法。
  7. 前記アクティベーションモジュールはN−way CReLU(N−way Concatenated Rectified Linear Units)を含み、
    前記アクティベーションレイヤはReLU(Rectified Linear Units)レイヤであることを特徴とする請求項5に記載の学習方法。
  8. 前記(a)段階で用いられる前記要素バイアスレイヤの個数はn−1個であることを特徴とする請求項5に記載の学習方法。
  9. (i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行するCNNのパラメータを学習する装置において、
    前記入力イメージを受信する通信部;及び
    (i)入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセス;(ii)前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセス;(iii)前記スケールレイヤに連結された特定要素アクティベーションレイヤをもって前記スケールレイヤの出力値に非線形アクティベーション関数を適用するようにするプロセス;(iv)前記各々の要素バイアスレイヤに連結された残りの要素アクティベーションレイヤをもって前記各々の要素バイアスレイヤの出力値に各々の非線形関数を適用するようにするプロセス;(v)コンカチネーションレイヤをもって前記特定要素アクティベーションレイヤ及び前記残りの要素アクティベーションレイヤの出力値を一つにコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセス;及び(vi)前記コンボリューションレイヤをもって前記コンボリューションレイヤ各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記コンカチネートされた出力値に対する前記コンボリューション演算を遂行するようにするプロセス;及び(vii)前記コンボリューション演算の結果を使用して前記CNNの用途に応じた結果値を獲得するアプリケーションブロックによって前記結果値が出力されると、ロスレイヤをもって前記アプリケーションブロックから出力された前記結果値及び前記結果値に対応されるGT(Ground−Truth)値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整するプロセス;を遂行するプロセッサを含むことを特徴とする学習装置。
  10. 前記スケール値は負数であることを特徴とする請求項9に記載の学習装置。
  11. 前記アクティベーションモジュールはN−way CReLU(N−way Concatenated Rectified Linear Units)を含み、
    前記要素アクティベーションレイヤはReLU(Rectified Linear Units)レイヤであることを特徴とする請求項9に記載の学習装置。
  12. 前記プロセッサでn個の要素アクティベーションレイヤを用いる場合、前記要素バイアスレイヤの個数はn−1個であることを特徴とする請求項9に記載の学習装置。
  13. (i)多数の要素バイアスレイヤ、スケールレイヤ及び多数の要素アクティベーションレイヤを含むアクティベーションモジュールのアクティベーション演算と(ii)コンボリューションレイヤのコンボリューション演算を遂行するCNNのパラメータを学習する装置において、
    前記入力イメージを受信する通信部;及び
    (i)入力イメージに対応される入力値が各々の多数の要素バイアスレイヤに各々伝達されるようにし、前記各々の多数の要素バイアスレイヤをもって各々の対応する要素バイアスパラメータ(qi)を前記入力値に適用するようにするプロセス;(ii)前記多数の要素バイアスレイヤのうち特定要素バイアスレイヤに連結された前記スケールレイヤをもって前記特定要素バイアスレイヤの出力値に所定のスケール値を掛けるようにするプロセス;(iii)前記スケールレイヤ及び前記各々の要素バイアスレイヤに連結されたコンカチネーションレイヤをもって前記スケールレイヤの出力値及び前記各々の要素バイアスレイヤの出力値をコンカチネートするようにし、前記コンカチネートされた出力値を獲得するようにするプロセス;(iv)前記コンカチネーションレイヤに連結されたアクティベーションレイヤをもって前記コンカチネートされた出力値に非線形アクティベーション関数を適用するようにするプロセス;(v)前記コンボリューションレイヤをもって前記コンボリューションレイヤの各々の要素ウェイトパラメータ(pi)及び前記コンボリューションレイヤの各々の要素バイアスパラメータ(d)を利用して、前記アクティベーションレイヤの出力値に前記コンボリューション演算を遂行するようにするプロセス;及び(vi)前記コンボリューション演算の結果を使用して前記CNNの用途に応じた結果値を獲得するアプリケーションブロックによって前記結果値が出力されると、ロスレイヤをもって前記アプリケーションブロックから出力された前記結果値及び前記結果値に対応されるGT(Ground−Truth)値間を参照して計算されたロスを獲得するようにし、バックプロパゲーションプロセスを遂行して、前記各々の要素バイアスレイヤの各々の要素バイアスパラメータ(qi)、前記要素ウェイトパラメータ(pi)及び前記要素バイアスパラメータ(d)のうち少なくとも一部のパラメータを調整するプロセス;を遂行するプロセッサを含むことを特徴とする学習装置。
  14. 前記スケール値は負数であることを特徴とする請求項13に記載の学習装置。
  15. 前記アクティベーションモジュールはN−way CReLU(N−way Concatenated Rectified Linear Units)を含み、
    前記要素アクティベーションレイヤはReLU(Rectified Linear Units)レイヤであることを特徴とする請求項13に記載の学習装置。
  16. 前記プロセッサで用いられる前記要素バイアスレイヤの個数はn−1個であることを特徴とする請求項13に記載の学習装置。
JP2018193025A 2017-10-13 2018-10-12 アクティベーション演算とコンボリューション演算を同時に遂行するための方法及び装置、そしてこのための学習方法及び学習装置 Active JP6676722B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/783,367 US10049323B1 (en) 2017-10-13 2017-10-13 Method and device for performing activation and convolution operation at the same time and learning method and learning device for the same
US15/783,367 2017-10-13

Publications (2)

Publication Number Publication Date
JP2019075115A JP2019075115A (ja) 2019-05-16
JP6676722B2 true JP6676722B2 (ja) 2020-04-08

Family

ID=63078872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018193025A Active JP6676722B2 (ja) 2017-10-13 2018-10-12 アクティベーション演算とコンボリューション演算を同時に遂行するための方法及び装置、そしてこのための学習方法及び学習装置

Country Status (5)

Country Link
US (1) US10049323B1 (ja)
EP (1) EP3471025A1 (ja)
JP (1) JP6676722B2 (ja)
KR (1) KR102112997B1 (ja)
CN (1) CN109670575B (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020093654A1 (en) * 2018-11-06 2020-05-14 Genesys Logic, Inc. Multichip system and data processing method adapted to the same for implementing neural network application
US10803594B2 (en) 2018-12-31 2020-10-13 Beijing Didi Infinity Technology And Development Co., Ltd. Method and system of annotation densification for semantic segmentation
US10467500B1 (en) 2018-12-31 2019-11-05 Didi Research America, Llc Method and system for semantic segmentation involving multi-task convolutional neural network
US11461653B2 (en) * 2019-01-23 2022-10-04 StradVision, Inc. Learning method and learning device for CNN using 1xK or Kx1 convolution to be used for hardware optimization, and testing method and testing device using the same
US10410120B1 (en) * 2019-01-25 2019-09-10 StradVision, Inc. Learning method and testing method of object detector to be used for surveillance based on R-CNN capable of converting modes according to aspect ratios or scales of objects, and learning device and testing device using the same
US10890916B2 (en) * 2019-01-30 2021-01-12 StradVision, Inc. Location-specific algorithm selection for optimized autonomous driving
US11615303B2 (en) * 2019-02-25 2023-03-28 Samsung Electronics Co., Ltd. Electronic device for classifying classes, electronic device for providing classification model for classifying classes, and method for operating the same
KR20210017185A (ko) 2019-08-07 2021-02-17 한국전자통신연구원 심층 신경망을 기반으로 영상의 압축 포아송 잡음을 제거하는 방법 및 장치
CN110689081B (zh) * 2019-09-30 2020-08-21 中国科学院大学 一种基于分歧学习的弱监督目标分类和定位方法
US20210150306A1 (en) * 2019-11-14 2021-05-20 Qualcomm Incorporated Phase selective convolution with dynamic weight selection
US11449758B2 (en) 2020-03-11 2022-09-20 Qualcomm Incorproated Quantization and inferencing for low-bitwidth neural networks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836839B2 (en) 2015-05-28 2017-12-05 Tokitae Llc Image analysis systems and related methods
CN104992167B (zh) * 2015-07-28 2018-09-11 中国科学院自动化研究所 一种基于卷积神经网络的人脸检测方法及装置
CN108140141B (zh) 2015-08-15 2019-09-06 易享信息技术有限公司 在深度神经网络中对表征输入放射体的三维3d数据进行分类的计算机实现的方法及系统
US9767381B2 (en) * 2015-09-22 2017-09-19 Xerox Corporation Similarity-based detection of prominent objects using deep CNN pooling layers as features
US10002313B2 (en) * 2015-12-15 2018-06-19 Sighthound, Inc. Deeply learned convolutional neural networks (CNNS) for object localization and classification
JP6658033B2 (ja) 2016-02-05 2020-03-04 富士通株式会社 演算処理回路、および情報処理装置
US20170337682A1 (en) * 2016-05-18 2017-11-23 Siemens Healthcare Gmbh Method and System for Image Registration Using an Intelligent Artificial Agent
CN106204468B (zh) * 2016-06-27 2019-04-26 深圳市未来媒体技术研究院 一种基于ReLU卷积神经网络的图像去噪方法
IL281321B (en) 2016-10-04 2022-07-01 Magic Leap Inc Efficient data layouts for convolutional neural networks
KR102631381B1 (ko) 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
KR20180073118A (ko) * 2016-12-22 2018-07-02 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
CN107229942B (zh) * 2017-04-16 2021-03-30 北京工业大学 一种基于多个分类器的卷积神经网络分类方法

Also Published As

Publication number Publication date
KR102112997B1 (ko) 2020-06-02
US10049323B1 (en) 2018-08-14
EP3471025A1 (en) 2019-04-17
CN109670575A (zh) 2019-04-23
JP2019075115A (ja) 2019-05-16
CN109670575B (zh) 2023-07-21
KR20190041922A (ko) 2019-04-23

Similar Documents

Publication Publication Date Title
JP6676722B2 (ja) アクティベーション演算とコンボリューション演算を同時に遂行するための方法及び装置、そしてこのための学習方法及び学習装置
JP6676721B2 (ja) アクティベーション演算とコンボリューション演算を同時に遂行するための方法及び装置、そしてこのための学習方法及び学習装置
KR102192850B1 (ko) Fun을 사용하여 특징 맵을 생성하기 위한 방법 및 장치
KR102229342B1 (ko) Fun을 사용하여 cnn의 성능을 향상시키기 위한 학습 방법 및 학습 장치, 그리고 이를 이용한, 테스트 방법 및 테스트 장치
US11462035B2 (en) Processing images using deep neural networks
JP6682595B2 (ja) イメージセグメンテーションのための学習方法及び学習装置、そしてこれを利用したイメージセグメンテーション方法及びイメージセグメンテーション装置
US11462034B2 (en) Generating images using neural networks
US10282864B1 (en) Method and device for encoding image and testing method and testing device using the same
US10311337B1 (en) Method and device for providing integrated feature map using ensemble of multiple outputs from convolutional neural network
CN105631519A (zh) 一种基于预决策的卷积神经网络加速方法及系统
JP2020119518A (ja) ハードウェア最適化を通じてモバイル装置または高精度の小型ネットワークに使用されるcnnパラメータ量子化を最適化するためにcnnレイヤを変換する方法及び装置
JP7252120B2 (ja) 核心性能指数を満たすことができるハードウェア最適化が行われるように、cnnで複数のブロック内の入力イメージから特徴を抽出する学習方法及び学習装置、それを利用したテスト方法及びテスト装置
US20220067888A1 (en) Image processing method and apparatus, storage medium, and electronic device
KR20190098402A (ko) 심층 신경망 시스템
CN118094296A (zh) 情感识别方法、装置、设备、介质及程序产品
CN117273098A (zh) 自注意力运算方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191029

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200312

R150 Certificate of patent or registration of utility model

Ref document number: 6676722

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250