JP2023514173A - サブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する方法及び装置 - Google Patents

サブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する方法及び装置 Download PDF

Info

Publication number
JP2023514173A
JP2023514173A JP2022548235A JP2022548235A JP2023514173A JP 2023514173 A JP2023514173 A JP 2023514173A JP 2022548235 A JP2022548235 A JP 2022548235A JP 2022548235 A JP2022548235 A JP 2022548235A JP 2023514173 A JP2023514173 A JP 2023514173A
Authority
JP
Japan
Prior art keywords
kernel
neural network
sub
network model
test
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.)
Granted
Application number
JP2022548235A
Other languages
English (en)
Other versions
JP7425216B2 (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 JP2023514173A publication Critical patent/JP2023514173A/ja
Application granted granted Critical
Publication of JP7425216B2 publication Critical patent/JP7425216B2/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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7753Incorporation of unlabelled data, e.g. multiple instance learning [MIL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)

Abstract

オン-デバイスニューラルネットワークモデルを最適化する方法は、(a)ニューラルネットワーク(NN)モデルの搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスクを遂行することができる最大キャパシティを持つビッグNNモデルを入力データに対する第1インファレンス結果を生成するように学習させた状態で、サブ-カーネルサーチングモジュールによって、学習データに対応する制約と状態ベクトルを把握し、適切な特定のサブ-カーネルのアーキテクチャー情報を生成させる段階と、(b)前記アーキテクチャー情報を参照して前記ビッグNNモデルを最適化して前記学習データに対する第2インファレンス結果を生成する特定のスモールNNモデルを生成させる段階と、(c)前記第1及び第2インファレンス結果を参照して前記サブ-カーネルサーチングモジュールを学習させる段階と、を含む。【選択図】図4

Description

本発明は、2020年5月13日付にて出願された米国特許出願第63/024,025号と2020年12月28日付にて出願された米国特許出願第17/135,301号に対する優先権を主張し、これは本願に参照として組み込まれる。
本発明は、オン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する方法及び装置に係り、より詳細には、オン-デバイスニューラルネットワークモデルを最適化するために利用されるサブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を学習させ、サブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する方法及びこれを利用した学習装置と最適化装置に関する。
イメージクラシフィケーション(Image classification)が使用されるデバイスは、入力されたイメージの明るさ、振動、ノイズなどの様々な要因によって入力されたイメージの中で少なくとも一部を識別するのに困難を経験することがある。
したがって、ディープラーニング(deep learning)を適用して多様なイメージに対する持続的な学習を通じてイメージクラシフィケーションの正確度を向上させることができる。
しかし、イメージクラシフィケーションの正確度を向上させるためには、持続的なニューラルネットワークモデル(neural network model)の最適化(optimization)が必要であり、これによってニューラルネットワークモデルを効率的にアップデートするための多様な技術が開発されている。
このため、従来は人が直接ディープラーニングネットワークモデルを設計したが、最近はAIニューラルネットワークがデバイスに適用されたニューラルネットワークモデルを直接設計するニューラルアーキテクチャサーチ(Neural Architecture Search、NAS)のような方法が開発されている。
一例として、図1を参照すれば、従来のNASはリカレントニューラルネットワーク(Recurrent Neural Network、RNN)を利用してデバイスに適用されたり適用されるニューラルネットワークモデルのアーキテクチャー情報を入れたコンフィギュレーションストリング(configuration string)を生成することでチャイルドニューラルネットワークモデル(child neural network model)を設計する。以後、チャイルドニューラルネットワークモデルの性能について検証セット(validation set)を利用して測定し、結果から得た正確度(accuracy)Rを強化学習(reinforcement learning)のリウォード(reward)で使用し、チャイルドニューラルネットワークモデルのパラメーター(parameter)をアップデートする。それ以外にも、最適のネットワーク性能を達成するために、勾配降下最適化(gradient descent optimization)、進化サーチ(evolutionary search)などの技法が適用されている。
また、図2を参照すれば、他の従来のニューラルネットワーク最適化技術としてオンライン学習(online learning)のような方法がある。このようなオンライン学習では、既存のニューラルネットワークモデルに対してオンラインでインファレンス(推論:inference)を進めた後、その結果に応じて既存のニューラルネットワークモデルをアップデートするか、再学習させる過程を利用している。
このように、ニューラルネットワークを利用したニューラルネットワークモデルアーキテクチャーの最適化は、自律走行自動車、無人飛行機、ロボットなどのディープラーニング技術が必要な走行装置に搭載されたエッジデバイス(edge device)に有用であるが、エッジデバイスに特定機能を遂行するニューラルネットワークモデルを搭載して利用する従来の方法には次のような問題点が存在する。
まず、エッジデバイスに搭載されたニューラルネットワークモデルは許容された演算量とパラメーターの数が相対的に少ないため、モデルキャパシティ(model capacity)に制限を持つようになる。
また、イメージを検出して認識するために必要なモデルキャパシティはイメージの難易度によって異なるが、エッジデバイスに搭載される従来のニューラルネットワークモデルは全てのイメージに対して同じ演算量とパラメーターを適用するので、イメージの難易度によって検出及び認識能力の偏差が大きくなる限界がある。
これに加え、エッジデバイスに搭載されたニューラルネットワークモデルは、人が介入せずにハードサンプル(hard sample)を見つけることが難しいため、ハードサンプルに対する学習を行ってニューラルネットワークモデルの性能を改善するためには多くの人力と費用が要されるという問題点が存在する。
したがって、前記問題点を解決するための改善方案が要求されているのが実情である。
本発明は、上述した問題点を全て解決することをその目的とする。
また、本発明はエッジデバイス(edge device)に搭載されたニューラルネットワークモデル(neural network model)に対する最適化を外部サーバーの助けを得ずに遂行することをまた他の目的とする。
また、本発明はエッジデバイスの演算能力及び周辺環境によってニューラルネットワークモデルのサブ-アーキテクチャー(sub-architecture)を生成することでエッジデバイスに搭載されたニューラルネットワークモデルを最適化することをまた他の目的とする。
また、本発明は入力されたデータの難易度によって最適化された演算量(computational load)を適用することにより、インファレンス(inference)の際に読み取るウエイト(weights)の大きさと演算回数(mac/flops)とを減少させることを目的とする。
また、本発明は各サブ-アーキテクチャーの各演算量によるハードサンプルを持続的に収集することでニューラルネットワークモデルの各サブ-アーキテクチャーの性能を向上させることをまた他の目的とする。
本発明の一実施例によると、サブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する方法において、(a)ニューラルネットワークモデルが搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)を、入力された入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、学習装置が前記学習データをサブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i)前記学習データに対応する演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)に適用された少なくとも一つの制約(constraint)を確認し、(ii)前記学習データに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含む状態ベクトル(state vector)を生成し、(iii)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)で、前記スーパーカーネルより小さいかまたは同じカーネルの大きさと、少ないかまたは同じチャンネルの数からなり、前記制約で前記状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる特定のサブ-カーネルのアーキテクチャー情報(architecture information)を生成させるプロセスを遂行するか、または遂行するように支援する段階と、(b)前記学習装置が、(i)前記特定のサブ-カーネルの前記アーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記特定のサブ-カーネルの前記アーキテクチャー情報を持つ特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)を生成し、(ii)前記特定のスモールニューラルネットワークモデルによって前記学習データに対する第2インファレンス結果(second inference result)を生成させるプロセスを遂行するか、または遂行するように支援する段階と、(c)前記学習装置が、前記第1インファレンス結果と前記第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、前記第1ロスを利用して前記サブ-カーネルサーチングモジュールを学習させるプロセスを遂行するか、または遂行するように支援する段階と、を含む方法が提供される。
前記(a)の段階において、前記学習装置は、前記サブ-カーネルサーチングモジュールによって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM)を通じて前記学習データに対応するシーンフィーチャー(scene features)を生成させ、前記シーンフィーチャーに対応する前記状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG)を通じて前記制約で前記状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる前記最小限のカーネルの大きさと前記最小限のチャンネルの数とからなる前記特定のサブ-カーネルの前記アーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記学習装置は、(i)与えられた前記制約で前記第1ロスを通じたバックプロパゲーション(back-propagation)を通じて前記第1ロスを最小化するように前記シーンオーバービューイングモジュールと前記サブ-カーネルネットワーク生成器とを学習させ、(ii)前記状態ベクトルと、これに対応する原本正解(ground truth)とを参照して一つ以上の第2ロスを生成し、前記第2ロスを最小化するように前記シーンオーバービューイングモジュールをさらに学習させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記シーンオーバービューイングモジュールは、コンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成され、前記サブ-カーネルネットワーク生成器はリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成され、前記学習装置は前記シーンオーバービューイングモジュールと前記サブ-カーネルネットワーク生成器とをそれぞれ学習させたり同時に学習させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記学習装置は、前記シーンオーバービューイングモジュールの前記コンボリューショナルニューラルネットワークを通じて前記学習データに対して少なくとも一つのコンボリューション(convolution)演算、少なくとも一つのプーリング(pooling)演算、及び少なくとも一つのFC(全結合:Fully-Connected)演算を適用して前記学習データに対応する前記シーンフィーチャーを生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記(b)の段階において、前記学習装置は、前記特定のサブ-カーネルの前記アーキテクチャー情報によって前記ビッグニューラルネットワークモデルの前記スーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整して前記ビッグニューラルネットワークモデルを最適化することにより、前記特定のサブ-カーネルの前記アーキテクチャー情報を持つ前記特定のスモールニューラルネットワークモデルを生成するプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記学習装置は、前記第1インファレンス結果と前記第2インファレンス結果とを参照し、前記第1インファレンス結果と前記第2インファレンス結果との差が既設定された基準値を超える場合、前記学習データと前記特定のスモールニューラルネットワークモデルの前記アーキテクチャー情報とをサーバーに伝送し、前記サーバーによって前記学習データを前記特定のスモールニューラルネットワークモデルでのハードサンプル(hard sample)としてタグ付け(tag)し、学習データベースに追加させるプロセスを遂行するか、または遂行するように支援する。
また、本発明の他の実施例によると、サブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する方法において、(a)学習装置によって、(i)ニューラルネットワークモデルが搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)を、入力された入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、前記学習データをサブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i-1)前記学習データに対応する演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)の中の少なくとも一つに適用された学習用制約(constraint)を確認し、(i-2)前記学習データに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含む学習用状態ベクトル(state vector)を生成し、(i-3)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)で、前記スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなり、前記学習用制約で前記学習用状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる学習用特定のサブ-カーネルの学習用アーキテクチャー情報(architecture information)を生成させるプロセス、(ii)(ii-1)前記学習用特定のサブ-カーネルの前記学習用アーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記学習用特定のサブ-カーネルの前記学習用アーキテクチャー情報を持つ学習用特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)を生成し、(ii-2)前記学習用特定のスモールニューラルネットワークモデルによって前記学習データに対する第2インファレンス結果(second inference result)を生成させるプロセス、及び(iii)前記第1インファレンス結果と前記第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、前記第1ロスを利用して前記サブ-カーネルサーチングモジュールを学習させるプロセスが遂行された状態で、最適化装置がテストデータを獲得すれば前記テストデータを前記サブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i)前記テストデータに対応する演算量、パラメーター、レイテンシ、正確度、及びフロップスの中の少なくとも一つに適用されたテスト用の制約(constraint)を確認し、(ii)前記テストデータに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含むテスト用の状態ベクトルを生成し、(iii)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応する前記スーパーカーネルのサブセットで、前記スーパーカーネルより小さいか同じカーネルの大きさと少ないか同じチャンネルの数とからなり、前記テスト用の制約で前記テスト用の状態ベクトルを持つ前記テストデータに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなるテスト用の特定のサブ-カーネルのテスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援する段階と、(b)前記最適化装置が、(i)前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を持つテスト用の特定のスモールニューラルネットワークモデルを生成し、(ii)前記テスト用の特定のスモールニューラルネットワークモデルによって前記テストデータに対する第3インファレンス結果(third inference result)を生成させるプロセスを遂行するか、または遂行するように支援する段階と、を含む方法が提供される。
前記(a)の段階において、前記最適化装置は、前記サブ-カーネルサーチングモジュールによって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM)を通じて前記テストデータに対応するテスト用のシーンフィーチャー(scene features)を生成させ、前記テスト用のシーンフィーチャーに対応する前記テスト用の状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG)を通じて前記テスト用の制約で前記テスト用の状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記シーンオーバービューイングモジュールはコンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成され、前記サブ-カーネルネットワーク生成器はリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成されていることを特徴とする。
前記最適化装置は、前記シーンオーバービューイングモジュールの前記コンボリューションニューラルネットワークを通じて前記テストデータに対して少なくとも一つのコンボリューション(convolution)演算、少なくとも一つのプーリング(pooling)演算、及び少なくとも一つのFC(Fully-Connected)演算を適用して前記テストデータに対応する前記テスト用のシーンフィーチャーを生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記(b)の段階において、前記最適化装置は、前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報によって前記ビッグニューラルネットワークモデルの前記スーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整して前記ビッグニューラルネットワークモデルを最適化することにより、前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を持つ前記テスト用の特定のスモールニューラルネットワークモデルを生成するプロセスを遂行するか、または遂行するように支援することを特徴とする。
また、本発明の他の実施例によると、サブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する学習装置であって、インストラクションを格納する少なくとも一つのメモリと、前記インストラクションを実行するために構成された少なくとも一つのプロセッサと、を含み、前記プロセッサが、(I)ニューラルネットワークモデルが搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)を、入力された入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、前記学習データをサブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i)前記学習データに対応する演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)に適用された少なくとも一つの制約(constraint)を確認し、(ii)前記学習データに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含む状態ベクトル(state vector)を生成し、(iii)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)で、前記スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなり、前記制約で前記状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる特定のサブ-カーネルのアーキテクチャー情報(architecture information)を生成させるプロセスを遂行するか、または遂行するように支援するステップと、(II)(i)前記特定のサブ-カーネルの前記アーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記特定のサブ-カーネルの前記アーキテクチャー情報を持つ特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)を生成し、(ii)前記特定のスモールニューラルネットワークモデルによって前記学習データに対する第2インファレンス結果(second inference result)を生成させるプロセスを遂行するか、または遂行するように支援するステップと、(III)前記第1インファレンス結果と前記第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、前記第1ロスを利用して前記サブ-カーネルサーチングモジュールを学習させるプロセスを遂行するか、または遂行するように支援するステップと、を含む学習装置が提供される。
前記(I)のステップにおいて、前記プロセッサは、前記サブ-カーネルサーチングモジュールによって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM)を通じて前記学習データに対応するシーンフィーチャー(scene features)を生成させ、前記シーンフィーチャーに対応する前記状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG)を通じて前記制約で前記状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる前記最小限のカーネルの大きさと前記最小限のチャンネルの数とからなる前記特定のサブ-カーネルの前記アーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記プロセッサは、(i)与えられた前記制約で前記第1ロスを通じたバックプロパゲーション(back-propagation)を通じて前記第1ロスを最小化するように前記シーンオーバービューイングモジュールと前記サブ-カーネルネットワーク生成器とを学習させ、(ii)前記状態ベクトルと、これに対応する原本正解(ground truth)を参照して一つ以上の第2ロスを生成し、前記第2ロスを最小化するように前記シーンオーバービューイングモジュールをさらに学習させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記シーンオーバービューイングモジュールはコンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成され、前記サブ-カーネルネットワーク生成器はリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成され、前記プロセッサは前記シーンオーバービューイングモジュールと前記サブ-カーネルネットワーク生成器とをそれぞれ学習させたり同時に学習させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記プロセッサは前記シーンオーバービューイングモジュールの前記コンボリューショナルニューラルネットワークを通じて前記学習データに対して少なくとも一つのコンボリューション(convolution)演算、少なくとも一つのプーリング(pooling)演算、及び少なくとも一つのFC(全結合:Fully-Connected)演算を適用して前記学習データに対応する前記シーンフィーチャーを生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記(II)のステップにおいて、前記プロセッサは、前記特定のサブ-カーネルの前記アーキテクチャー情報によって前記ビッグニューラルネットワークモデルの前記スーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整して前記ビッグニューラルネットワークモデルを最適化することにより、前記特定のサブ-カーネルの前記アーキテクチャー情報を持つ前記特定のスモールニューラルネットワークモデルを生成するプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記プロセッサは、前記第1インファレンス結果と前記第2インファレンス結果とを参照し、前記第1インファレンス結果と前記第2インファレンス結果との差が既設定された基準値を超える場合、前記学習データと前記特定のスモールニューラルネットワークモデルの前記アーキテクチャー情報とをサーバーに伝送し、前記サーバーによって前記学習データを前記特定のスモールニューラルネットワークモデルでのハードサンプル(hard sample)としてタグ付け(tag)し、学習データベースに追加させるプロセスを遂行するか、または遂行するように支援する。
また、本発明の他の実施例によると、サブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する最適化装置であって、インストラクションを格納する少なくとも一つのメモリと、前記インストラクションを実行するために構成された少なくとも一つのプロセッサと、を含み、(I)学習装置によって、(i)ニューラルネットワークモデルが搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)を、入力された入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、前記学習データをサブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i-1)前記学習データに対応する演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)の中の少なくとも一つに適用された学習用制約(constraint)を確認し、(i-2)前記学習データに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含む学習用状態ベクトル(state vector)を生成し、(i-3)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)で、前記スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなり、前記学習用制約で前記学習用状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる学習用特定のサブ-カーネルの学習用アーキテクチャー情報(architecture information)を生成させるプロセス、(ii)(ii-1)前記学習用特定のサブ-カーネルの前記学習用アーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記学習用特定のサブ-カーネルの前記学習用アーキテクチャー情報を持つ学習用特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)を生成し、(ii-2)前記学習用特定のスモールニューラルネットワークモデルによって前記学習データに対する第2インファレンス結果(second inference result)を生成させるプロセス、及び(iii)前記第1インファレンス結果と前記第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、前記第1ロスを利用して前記サブ-カーネルサーチングモジュールを学習させるプロセスが遂行された状態で、前記プロセッサがテストデータを獲得すれば前記テストデータを前記サブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i)前記テストデータに対応する演算量、パラメーター、レイテンシ、正確度、及びフロップスの中の少なくとも一つに適用されたテスト用の制約(constraint)を確認し、(ii)前記テストデータに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含むテスト用の状態ベクトルを生成し、(iii)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応する前記スーパーカーネルのサブセットで、前記スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなり、前記テスト用の制約で前記テスト用の状態ベクトルを持つ前記テストデータに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなるテスト用の特定のサブ-カーネルのテスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援するステップと、(II)前記プロセッサが(i)前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を持つテスト用の特定のスモールニューラルネットワークモデルを生成し、(ii)前記テスト用の特定のスモールニューラルネットワークモデルによって前記テストデータに対する第3インファレンス結果(third inference result)を生成させるプロセスを遂行するか、または遂行するように支援するステップと、を遂行する最適化装置が提供される。
前記(I)のステップにおいて、前記プロセッサは、前記サブ-カーネルサーチングモジュールによって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM)を通じて前記テストデータに対応するテスト用のシーンフィーチャー(scene features)を生成させ、前記テスト用のシーンフィーチャーに対応する前記テスト用の状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG)を通じて前記テスト用の制約で前記テスト用の状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと、最小限のチャンネルの数とからなる前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記シーンオーバービューイングモジュールはコンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成され、前記サブ-カーネルネットワーク生成器はリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成されていることを特徴とする。
前記プロセッサは、前記シーンオーバービューイングモジュールの前記コンボリューションニューラルネットワークを通じて前記テストデータに対して少なくとも一つのコンボリューション(convolution)演算、少なくとも一つのプーリング(pooling)演算、及び少なくとも一つのFC(全結合:Fully-Connected)演算を適用して前記テストデータに対応する前記テスト用のシーンフィーチャーを生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする。
前記(II)のステップにおいて、前記プロセッサは、前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報によって前記ビッグニューラルネットワークモデルの前記スーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整して前記ビッグニューラルネットワークモデルを最適化することにより、前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を持つ前記テスト用の特定のスモールニューラルネットワークモデルを生成するプロセスを遂行するか、または遂行するように支援することを特徴とする。
この他にも、本発明の方法を行うためのコンピュータプログラムを記録するためのコンピュータ読み取り可能な記録媒体がさらに提供される。
本発明は、エッジデバイス(edge device)に搭載されたニューラルネットワークモデル(neural network model)に対する最適化を外部サーバーの助けを得ずに遂行する効果がある。
また、本発明はエッジデバイスの演算能力及び周辺環境によってニューラルネットワークモデルのサブ-アーキテクチャー(sub-architecture)を生成することでエッジデバイスに搭載されたニューラルネットワークモデルを最適化する効果がある。
また、本発明は入力されたデータの難易度によって最適化された演算量(computational load)を適用することでインファレンス(inference)の際に読み取るウエイト(weights)の大きさと演算回数(mac/flops)を減少させる効果がある。
また、本発明は各サブ-アーキテクチャーの各演算量によるハードサンプルを持続的に収集することでニューラルネットワークモデルの各サブ-アーキテクチャーの性能を向上させる効果がある。
本発明の実施例の説明に利用されるために添付された以下の図面は、本発明の実施例のうち単に一部であるに過ぎず、本発明の属する技術分野において通常の知識を有する者(以下「通常の技術者」)にとっては、発明的作業が行われずにこれらの図面に基づいて他の各図面が得られる。
図1は、従来のニューラルネットワーク(neural network)を最適化(optimization)するためのシステムを簡略に示したものである。 図2は、従来のニューラルネットワーク(neural network)を最適化(optimization)するためのシステムを簡略に示したものである。 図3は、本発明の一実施例によってサブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する方法において、サブ-カーネルサーチングモジュールを学習させる学習装置を簡略に示したものである。 図4は、本発明の一実施例によってサブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する方法において、サブ-カーネルサーチングモジュールを学習させる過程を簡略に示したものである。 図5は、本発明の一実施例によってサブ-カーネルサーチングモジュールに含まれたシーンオーバービューイングモジュール(Scence Overviewing Module、SOM)の構造を簡略に示したものである。 図6は、本発明の一実施例によってスーパーカーネル(super kernel)とサブ-カーネル(sub-kernel)の概念を利用してビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)とスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)とを生成して学習させる方法を簡略に示したものである。 図7は、本発明の一実施例によってサブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する最適化装置を簡略に示したものである。 図8は、本発明の一実施例によって入力と出力の例示を通じてサブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する方法を簡略に示したものである。
後述する本発明に関する詳細な説明は、本発明の各目的、各技術的解法、及び各長所を明らかにするために本発明が実施され得る特定の実施例を例示として示す添付図面を参照する。これらの実施例は、当業者が本発明を実施することができるように十分詳細に説明される。さらに、本発明は、本明細書に示された実施例のすべての可能な組み合わせを網羅する。本発明の多様な実施例は互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施例に関連して本発明の精神及び範囲を逸脱せず、かつ他の実施例で具現され得る。また、それぞれの開示された実施例内の個別の構成要素の位置又は配置は、本発明の精神及び範囲を逸脱せず、かつ変更され得ることが理解されるべきである。したがって、後述の詳細な説明は、限定的な意味として受け取られるべきものではなく、本発明の範囲は適切に説明されるのであれば、その請求項が主張することと均等な全ての範囲とともに添付された請求項によってのみ限定される。図面において類似の参照符号は、様々な態様にわたって同一であるか、又は類似の機能を指す。
本発明で言及している各種イメージは、舗装または非舗装道路関連のイメージを含むことができ、この場合、道路環境で登場し得る物体(例えば、自動車、人、動物、植物、物、建物、飛行機やドローンのような飛行体、その他の障害物)を想定し得るが、必ずしもこれに限定されるものではなく、本発明で言及している各種イメージは、道路と関係のないイメージ(例えば、非舗装道路、路地、空き地、海、湖、川、山、森、砂漠、空、室内と関連したイメージ)でもあり得、この場合、非舗装道路、路地、空き地、海、湖、川、山、森、砂漠、空、室内環境で登場し得る物体(例えば、自動車、人、動物、植物、物、建物、飛行機やドローンのような飛行体、その他の障害物)を想定し得るが、必ずしもこれに限定されるものではない。ここに提供された本開示の題目及び発明の概要は単に便宜のためのものであり、実施例の範囲または意味を制限しない。
参照として、本明細書は全般にわたって学習過程と係わる用語には「学習用」または「学習」を追加し、テスト過程と係わる用語には「テスト用の」または「テスト」を追加して可能な混沌を避けようとした。
また、本発明の詳細な説明及び各請求項にわたって、「含む」という単語及びそれらの変形は、他の技術的各特徴若しくは各付加物、構成要素又は段階を除外することを意図したものではない。通常の技術者にとって本発明の他の各目的、長所及び各特性が、一部は本明細書から、また一部は本発明の実施から明らかになるであろう。以下の例示及び図面は実例として提供され、本発明を限定することを意図したものではない。
ここに提供された本開示の題目及び発明の概要は単に便宜のためのものであり、実施例の範囲または意味を制限しない。
以下、本発明の属する技術分野において通常の知識を有する者が本発明を容易に実施し得るようにするために、本発明の好ましい実施例について、添付された図面を参照して詳細に説明することにする。
まず、図3は、本発明の一実施例によってサブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(On-Device neural network model)を最適化する方法において、サブ-カーネルサーチングモジュールを学習させる学習装置を簡略に示したものである。
図3を参照すれば、学習装置1000はオン-デバイスニューラルネットワークモデルを最適化するために利用されるサブ-カーネルサーチングモジュールを学習させるインストラクションを格納するメモリ1001とメモリ1001に格納されたインストラクションに対応してサブ-カーネルサーチングモジュールを学習させるための動作を遂行するプロセッサ1002を含むことができる。
具体的に、学習装置1000は、コンピューティング装置(例えば、コンピュータプロセッサ、メモリ、ストレージ、入力装置及び出力装置、その他既存コンピューティング装置の構成要素を含むことができる装置;ルーター、スイッチなどのような電子通信装置;ネットワーク付きストレージ(NAS)及びストレージ領域ネットワーク(SAN)のような電子情報ストレージシステム)とコンピュータソフトウェア(すなわち、コンピューティング装置によって特定方式で機能させるインストラクション)との組み合わせを利用して所望のシステム性能を達成するものであってもよい。
また、コンピューティング装置のプロセッサは、MPU(Micro Processing Unit)またはCPU(Central Processing Unit)、キャッシュメモリ(Cache Memory)、データバス(Data Bus)などのハードウェア構成を含むことができる。また、コンピューティング装置は、オペレーティングシステム、特定目的を遂行するアプリケーションのソフトウェア構成をさらに含むこともできる。
しかし、コンピューティング装置が本発明を実施するためのミディアム、プロセッサ及びメモリが統合された形態の統合プロセッサを含む場合を排除するものではない。
このように構成された学習装置1000を利用して、サブ-カーネルサーチングモジュール100を学習させる過程を図4ないし図6を参照して説明すれば次のとおりである。
先ず、図4を参照すれば、学習装置1000は、ニューラルネットワークモデルが搭載されたエッジデバイス(edge device)が許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model、200)を入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、学習データをサブ-カーネルサーチングモジュール100に入力し、サブ-カーネルサーチングモジュールによって、(i)学習データに対応する制約(constraint)を確認し、(ii)学習データに対応する状態ベクトル(state vector)を生成し、(iii)与えられた制約で状態ベクトルを持つ学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネル数とからなる特定のサブ-カーネルのアーキテクチャー情報(architecture information)を生成させるプロセスを遂行するか、または遂行するように支援することができる。
ここで、制約は少なくとも演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)の中の一つに適用された制約を含み、学習データが入力される時のエッジデバイスのデバイス状態及び周辺環境によって制約は変更されることがある。また、制約は各エッジデバイスによって既設定されたり追加に入力されて変更されることがある。また、ここで目的とするタスクとは、データ分析、分類、データに含まれた情報検出などの目的を遂行することができ、目的によって利用されるデータの種類もテキスト、イメージ、テキストが含まれたイメージなどに変わることがあるが、本発明がこれに限定されるものではない。
なお、状態ベクトルは少なくとも学習データの複雑度、鮮明度の中の一つに対する情報を含む1次元ベクトル(1-dimensional vector)であり、これによって、状態ベクトルは学習データの難易度(difficulty level)を判断する基準になることができる。次いで、特定のサブ-カーネルはビッグニューラルネットワークモデルの最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)であって、スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなっている。
一方、サブ-カーネルサーチングモジュール100はシーンオーバービューイングモジュール(Scene Overviewing Module、SSM、110)とサブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG、120)とで構成することができる。
具体的に、学習装置1000は、サブ-カーネルサーチングモジュール100によって、(i)シーンオーバービューイングモジュール110を通じて学習データに対応するシーンフィーチャー(scene features)を生成させ、シーンフィーチャーに対応する状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器120を通じて前記制約で前記状態ベクトルを持つ学習データに対して目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネル数とからなる特定のサブ-カーネルのアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することができる。
ここで、与えられた制約によって演算量、パラメーター、レイテンシ、正確度、及びフロップスなどは互いに相互関連して影響を与えることができる。その例として、要求される正確度が高くなれば、それによって要求される最小パラメーターの数が増加することがある一方、フロップスが減少するか、レイテンシが増加するなどの演算量減少が発生すると、許容されるパラメーターの数が減少することがある。したがって、特定のサブ-カーネルのアーキテクチャー情報は与えられた制約で与えられた状態ベクトルを持つ学習データに対して目的とするタスクを遂行することができる最小限のキャパシティに対応する最小限のカーネルの大きさと最小限のチャンネル数に対する情報とを含むことができる。
この時、シーンオーバービューイングモジュール110はデバイスの全体性能に大きい影響を及ぼさない小さいコンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成することができ、サブ-カーネルネットワーク生成器120は全体性能に大きい影響を及ぼさない小さいリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成することができる。
図5を参照すれば、シーンオーバービューイングモジュール110は、一例として、コンボリューショナルレイヤー(convolutional layer)、プーリングレイヤー(pooling layer)及びFCレイヤー(全結合層:Fully-Connected layer)で構成されることができる。シーンオーバービューイングモジュール110に学習データが入力されると、交互に配置されている多数のコンボリューショナルレイヤーとプーリングレイヤーを経て生成されたフィーチャーマップ(feature map)がFCレイヤーに入力されてアウトプットプリディックション(output predictions)を生成することができる。この時、アウトプットプリディックションは、1次元ベクトルの形態である状態ベクトル、すなわち、シーンオーバービューイングモジュール(SOM、110)の出力物であるか、または一連の過程を経て状態ベクトルに転換することができる。
また、サブ-カーネルネットワーク生成器120が出力する特定のサブ-カーネルのアーキテクチャー情報のデータタイプ(data type)はディクショナリー(dictionary)やストリング(string)であってもよく、一例として、{{conv1:{k=3、c=26}}、{conv2:{k=7、c=35}}、・・・、{ssd_layer:{k=1、c=121}}}のような形態でアーキテクチャー情報を出力することができる。すなわち、サブ-カーネルネットワーク生成器120は与えられた制約で生成されたシーンフィーチャーの情報を反映する状態ベクトルに対応するサブ-カーネル(sub-kernel)のアーキテクチャーのパラメーターに対する情報を生成することができる。
次に、また図4を参照すれば、学習装置1000は(i)特定のサブ-カーネルのアーキテクチャー情報を参照してビッグニューラルネットワークモデル200を最適化し、ビッグニューラルネットワークモデル200から特定のサブ-カーネルのアーキテクチャー情報を持つ特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model、300)を生成し、(ii)特定のスモールニューラルネットワークモデル300によって学習データに対する第2インファレンス結果(second inference result)を生成させるプロセスを遂行するか、または遂行するように支援することができる。
ここで、学習装置1000は特定のサブ-カーネルのアーキテクチャー情報によってビッグニューラルネットワークモデル200のスーパーカーネルのカーネルの高さ、カーネルの幅及びチャンネルの数の中の少なくとも一つを調整してビッグニューラルネットワークモデル200を最適化することで、特定のサブ-カーネルのアーキテクチャー情報を持つ特定のスモールニューラルネットワークモデル300を生成するプロセスを遂行するか、または遂行するように支援することができる。すなわち、本発明はビッグニューラルネットワークモデル200のスーパーカーネルのカーネルの高さ、カーネルの幅及びチャンネルの数の中の少なくとも一つを調整することでスーパーカーネルのカーネルの大きさとチャンネルの数の中の少なくとも一つを調整してビッグニューラルネットワークモデル200のスーパーカーネルの大きさまたはボリュームに変化を与えることができる。
具体的に、図6は、本発明の一実施例によってスーパーカーネル(super kernel)とサブ-カーネル(sub-kernel)の概念を利用してビッグニューラルネットワークモデル(B-NN Model、200)とスモールニューラルネットワークモデル(S-NN Model、300)とを生成して学習させる方法を簡略に示したものである。ここで、ビッグニューラルネットワークモデル(B-NN Model、200)は、ニューラルネットワークモデル(neural network model)を適用しようとするエッジデバイス(edge device)、一例として、自律走行自動車、自律走行飛行体、ロボットなどのコンピューティングパワーが処理することのできる最大のキャパシティ、すなわち、最大の演算量(computational load)及び最大のパラメーター(parameters)を持つニューラルネットワークモデルであって、人によって設計することができる。
ここで、ビッグニューラルネットワークモデルのスーパーカーネルは、最大限のカーネルの高さ、最大限のカーネルの幅及び最大限のチャンネルの数、すなわち、(max_kernel_w*max_kernel_h*max_ch)からなるニューラルネットワークモデルでのカーネルを意味する。言い換えれば、スーパーカーネルは、例えば、X-Y平面上の2次元カーネルと、X-Y平面に垂直のZ軸に沿って配列された1次元チャンネルで構成された3次元構造を示すことができる。したがって、以下のスーパーカーネルは説明の便宜上、簡略に最大カーネルの大きさと最大チャンネルの数を持つものとして描写される場合がある。
そして、ビッグニューラルネットワークモデル(B-NN Model、200)とスモールニューラルネットワークモデル(S-NN Model、300)とを生成して学習させる方法としては、従来のワン-ショットニューラルアーキテクチャーサーチ(one-shot neural architecture search)などの方法が利用されることができる。
ここで、ビッグニューラルネットワークモデル200のスーパーカーネルを学習させる時、スーパーカーネルのサブセット(subset)に属する一部のパラメーター(parameter)をステップ(step)ごとに学習させる方法でスーパーカーネルのカーネルの大きさとチャンネルの数とを調節しながら学習させると、ニューラルネットワークモデルのインファレンス(inference)の時のカーネルの大きさとチャンネルの大きさとを少しだけ変更しても性能が急に下落する問題を防いで、減った演算量とパラメーターの数に比例するように性能を調節することができる。
図6を参照してビッグニューラルネットワークモデル(B-NN Model、200)を学習させる一例を挙げると、スーパーカーネルのカーネルの大きさ及びチャンネルの数に対応するカーネルの大きさ(7*7)、チャンネルの数である128個からなる第1コンボリューショナルレイヤー(first convolutional layer)、すなわち、CONV1に対して第1ステップではスーパーカーネルの真ん中の3*3*64カーネルの模様(kernel shape)を、そして第2ステップでは5*5*64カーネルの模様をインファレンス(inference)の時に使用して学習させる方法でスーパーカーネルのサブセット(subset)に属する一部のパラメーターをステップごとに学習させることができる。
一方、スーパーカーネルのカーネルの大きさとチャンネルの数とを調節しながらニューラルネットワークモデルを学習させる具体的な方法については、次の論文、Dimitrios Stamoulis著「Single-Path NAS:Designing Hardware-Efficient ConvNets in less than 4 Hours」(2019)、Jiahui Yu著「Universally Slimmable Networks and Improved Training Techniques(2019)などを参照することができる。一例として、インファレンス及び学習時に利用されるカーネルの外の領域を一時的にゼロアウト(zero-out)させると、使われるカーネルの大きさによって性能を維持することができる。また、バッチ統計(Batch statistics)を学習以後に多量のデータで再度求めると、チャンネル変更による急激な性能低下を防ぐことができる。
したがって、本発明はスーパーカーネルを持つビッグニューラルネットワークモデル(B-NN Model、200)を生成して学習させ、以後ビッグニューラルネットワークモデル(B-NN Model、200)の最適化を通じたスモールニューラルネットワークモデル(S-NN Model、300)の生成を可能とする。この時、スモールニューラルネットワークモデル(S-NN Model、300)は、演算量、パラメーター、レイテンシ、正確度、フロップスなどの制約下で与えられた特定難易度の学習データに対して目的とするタスクを遂行するための最小限のカーネルの大きさと最小限のチャンネルの数とからなるニューラルネットワークモデルである。
次に、再び図4を参照すれば、学習装置1000は第1インファレンス結果と第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、第1ロスを利用して与えられた制約で第1ロスを通じたバックプロパゲーション(back-propagation)を通じて第1ロスを最小化するようにシーンオーバービューイングモジュール110とサブ-カーネルネットワーク生成器120とを学習させるプロセスを遂行するか、または遂行するように支援することができる。
さらに、学習装置1000は状態ベクトルとこれに対応する原本正解(ground truth)とを参照して一つ以上の第2ロスを生成し、第2ロスを最小化するようにシーンオーバービューイングモジュール110をさらに学習させるプロセスを遂行するか、または遂行するように支援することができる。これによって、シーンオーバービューイングモジュール110について、サブ-カーネルネットワーク生成器120にシーン(scene)に対する正しい情報を提供する方向に最適化することができる。この時、状態ベクトルに対応する原本正解は人や高度に学習されたニューラルネットワークによって生成されて学習が行われることがあるが、これとは違って、Generative Adversarial Network(GAN)を利用した非指導学習(unsupervised learning)などの方法で行われることもあり、本発明はこれに限定されない。
ここで、上記のように、サブ-カーネルサーチングモジュール100を構成するシーンオーバービューイングモジュール(SOM、110)とサブ-カーネルネットワーク生成器120とはそれぞれコンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)とリカレントニューラルネットワーク(Recurrent Neural Network、RNN)とで構成することができる。したがって、シーンオーバービューイングモジュール110とサブ-カーネルネットワーク生成器120とは、それぞれ学習させることもでき、統合された学習方法で一緒に学習させることもできる。統合された学習方法としては、シーン理解(scene understanding)方法を応用したCNN+RNNコンバインドトレーニング(combined training)としてOriol Vinyals等「Show and Tell:A Neural Image Caption Generator」(2015)のような方法を参照することができる。
そして、学習装置1000によるシーンオーバービューイングモジュール110の学習において、学習装置1000はビッグニューラルネットワークモデル(B-NN model、200)と学習用スモールニューラルネットワークモデル(S-NN Model、300)との間の第1ロスを利用したバックプロパゲーションを通じてシーンオーバービューイングモジュール110によって演算量、パラメーター、レイテンシ、正確度、フロップスなどの中の少なくとも一つに対して与えられた制約下で第1ロスを最小化し、シーンオーバービューイングモジュール110がサブ-カーネルネットワーク生成器120に正確な情報を提供する方向に学習を行うことができる。この時、入力された学習データに対して第1ロスが既設定された臨界値より大きければ該学習データに対するビッグニューラルネットワークモデル(B-NN Model、200)のキャパシティは十分であるが、スモールニューラルネットワークモデル(S-NN Model、300)のキャパシティは十分ではないという情報を内包することができる。
一例として、シーンオーバービューイングモジュール(SOM、110)から出力される状態ベクトルは、シーンフィーチャーに対応するシーン情報(scene information)を反映することができる。ここで、シーン情報は学習データの前景と背景の複雑度、データがどれほど明らかかなどの情報を反映してもよいが、本発明はこれに限定されない。学習データが複雑であったり明らかではないほどハードサンプル(hard sample)であり、この場合、より多くの演算量とパラメーターの数とを要求する方向にシーンオーバービューイングモジュール110の学習を行わせることができる。また、シーンオーバービューイングモジュール110の性能は、ニューラルネットワークモデルが搭載されたエッジデバイスの性能やオリジナルネットワークの大きさ、目標とする性能(例:speed、accuracy)によって調節することができる。
また、学習装置1000によるサブ-カーネルネットワーク生成器120の学習において、学習装置1000は第1ロスを利用したバックプロパゲーションを通じてサブ-カーネルネットワーク生成器120によって演算量、パラメーター、レイテンシ、正確度、フロップスなどの中の少なくとも一つに対し、与えられた制約下で第1ロスを最小化する方向に学習を行うことができる。この時、サブ-カーネルネットワーク生成器120の学習は、制約の微分可能性(differentiability)によって強化学習(reinforcement learning)を利用した最適化や勾配降下最適化(gradient descent optimization)などの方法を選択することができる。
一方、学習装置1000が上記のようにサブ-カーネルサーチングモジュール100を学習させる時、入力された学習データに対して第1ロスが既設定された臨界値より大きい場合、すなわち、第1インファレンス結果と第2インファレンス結果との差が既設定された基準値を超える場合、該当学習データはビッグニューラルネットワークモデル(B-NN Model、200)ではハードサンプルではないが、スモールニューラルネットワークモデル(S-NN Model、300)ではハードサンプルでありえることを意味する。したがって、このような場合は学習装置1000が該学習データとサブ-カーネルサーチングモジュールを通じて生成された学習用スモールニューラルネットワークモデル(S-NN Model、300)アーキテクチャーの情報とをサーバーに伝送し、サーバーによって該学習データを該学習用スモールニューラルネットワークモデル(S-NN Model、300)でのハードサンプルであるとタグ付け(tag)し、学習データベースに追加させるプロセスを遂行するか、または遂行するように支援することができる。ここで、既設定された臨界値や既設定された基準値は同じでも異なってもよい。
しかし、これとは違って、別途コンピューティング装置を使用したモデルの大きさによるハードサンプルサーチ(hard sample search)が必要となる時、サブ-カーネルサーチングモジュール100をハードサンプルサーチャー(hard sample searcher)として機能させることができる。具体的に、第1ロスが既設定された臨界値より大きい場合、ビッグニューラルネットワークモデル(B-NN Model、200)の演算量で解くことができる問題がスモールニューラルネットワークモデル(S-NN Model、300)の演算量で解きにくいことを暗示するので、第1ロスが既設定された臨界値より大きい場合、学習データとサブ-カーネルサーチングモジュール100を通じて生成された当該特定のスモールニューラルネットワークモデル(S-NN Model、300)のアーキテクチャーの情報とをサーバーに伝送し、該学習データは特定構造、特定演算量、特定パラメーターの数などを持つ当該特定のスモールニューラルネットワークモデル(S-NN Model、300)へのハードサンプルであるということをタグ付けして学習データベースに追加することができる。したがって、学習データベースに格納されたハードサンプルは、以後、似ている演算量とパラメーターの数とを持つ特定のスモールニューラルネットワークモデル(S-NN Model、300)の学習に利用することができる。ここで、本発明の特定のスモールニューラルネットワークモデル(S-NN Model、300)はスモールニューラルネットワークモデル(S-NN Model、300)として使用可能な全ての任意の構造を称することができるので、特定のスモールニューラルネットワークモデル(S-NN Model、300)と称されるスモールニューラルネットワークモデル(S-NN Model、300)は相異なることがある。
一方、上記のようにサブ-カーネルサーチングモジュール100を学習させた状態で、最適化装置が学習したサブ-カーネルサーチングモジュール100を利用してオン-デバイスニューラルネットワークモデルを最適化する方法を図7と図8を利用して説明すれば次のとおりである。
まず、図7は、本発明の一実施例によってサブ-カーネルサーチングモジュール100を使用してオン-デバイスニューラルネットワークモデルを最適化する最適化装置2000を簡略に示したものである。
図7を参照すれば、最適化装置2000はサブ-カーネルサーチングモジュール100を利用してオン-デバイスニューラルネットワークモデルであるビッグニューラルネットワークモデル(B-NN Model、200)を最適化するためのインストラクションを格納するメモリ2001とメモリ2001に格納されたインストラクションに対応してサブ-カーネルサーチングモジュール100とを利用してビッグニューラルネットワークモデル(B-NN Model、200)を最適化するための動作を行うプロセッサ2002を含むことができる。ここで、テスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300)を生成してテストするための基準値となるビッグニューラルネットワークモデル(B-NN Model、200)は図7及び図8に記載していない。しかし、前記でサブ-カーネルサーチングモジュール100を学習させる過程で提供されたビッグニューラルネットワークモデル(B-NN Model、200)に対する説明は、図7及び図8でも相変らず適用することができる。
具体的に、最適化装置2000は、典型的にコンピューティング装置(例えば、コンピュータプロセッサ、メモリ、ストレージ、入力装置及び出力装置、その他既存コンピューティング装置の構成要素を含むことができる装置;ルーター、スイッチなどのような電子通信装置;ネットワーク付きストレージ(NAS)及びストレージ領域ネットワーク(SAN)のような電子情報ストレージシステム)とコンピュータソフトウェア(すなわち、コンピューティング装置によって特定方式で機能させるインストラクション)の組み合わせを利用して所望のシステム性能を達成するものであってもよい。
また、コンピューティング装置のプロセッサは、MPU(Micro Processing Unit)またはCPU(Central Processing Unit)、キャッシュメモリ(Cache Memory)、データバス(Data Bus)などのハードウェア構成を含むことができる。また、コンピューティング装置は、オペレーティングシステム、特定目的を遂行するアプリケーションのソフトウェア構成をさらに含むこともできる。
しかし、コンピューティング装置が本発明を実施するためのミディアム、プロセッサ及びメモリが統合された形態の統合プロセッサを含む場合を排除するものではない。
一方、最適化装置2000はそれぞれのエッジデバイスに入力されるデータによってエッジデバイスそれぞれに対応するサブ-カーネルサーチングモジュール100を利用してビッグニューラルネットワークモデル(B-NN Model、200)を最適化できるようにするためのもので、ニューラルネットワークモデルを適用するエッジデバイスに搭載することができる。
このように構成された最適化装置2000を利用して本発明の一実施例によるサブ-カーネルサーチングモジュール100を利用してニューラルネットワークモデルを最適化するための方法を説明すれば次のとおりである。以下の説明では、図4ないし図6を参照した説明から容易に理解可能な部分に対しては詳細な説明を省略する。
先ず、最適化装置2000はテストデータを獲得すれば、テストデータをサブ-カーネルサーチングモジュール100に入力し、サブ-カーネルサーチングモジュール100によって、(i)テストデータに対応するテスト用の制約(ここで、テスト用の制約は少なくとも演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)の中の一つに適用された制約を含む)を確認し、(ii)テストデータに対応するテスト用の状態ベクトル(テスト用の状態ベクトルは少なくともテストデータの複雑度、鮮明度の中の一つに対する情報を含む)を生成させ、(iii)与えられたテスト用の制約で前記テスト用の状態ベクトルを持つテストデータに対して目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなるテスト用の特定のサブ-カーネル(特定テスト用のサブ-カーネルはビッグニューラルネットワークモデルの最大キャパシティに対応するテスト用のスーパーカーネルのサブセットであり、テスト用のスーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなっている)のテスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することができる。
次に、最適化装置2000は(i)テスト用の特定のサブ-カーネルのテスト用のアーキテクチャー情報を参照してビッグニューラルネットワークモデル200を最適化し、ビッグニューラルネットワークモデル200からテスト用の特定のサブ-カーネルのテスト用のアーキテクチャー情報を持つテスト用の特定のスモールニューラルネットワークモデル300を生成し、(ii)テスト用の特定のスモールニューラルネットワークモデル300によってテストデータに対する第3インファレンス結果(third inference result)を生成させるプロセスを遂行するか、または遂行するように支援することができる。ここで、サブ-カーネルサーチングモジュール100を学習させる過程で獲得した学習用の特定のサブ-カーネルに対する学習用アーキテクチャー情報とサブ-カーネルサーチングモジュール100をテストする過程で獲得したテスト用の特定のサブ-カーネルに対するテスト用アーキテクチャー情報とは、学習データとテストデータとの難易度の差によって互いに同一でないこともある。結果的に、エッジデバイスの固定されたキャパシティによってビッグニューラルネットワークモデル200のキャパシティはサブ-カーネルサーチングモジュール100の学習及びテスト過程で変わらないこともある一方、学習用スモールニューラルネットワークモデル300とテスト用のスモールニューラルネットワークモデル300とは互いに異なることがある。
ここで、最適化装置2000はサブ-カーネルサーチングモジュール100によって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM、110)を通じてテストデータに対応するテスト用のシーンフィーチャーを生成させ、テスト用のシーンフィーチャーに対応するテスト用の状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器120を通じて与えられたテスト制約でテスト用の状態ベクトルを持つテストデータに対して目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数からなるテスト用の特定のサブ-カーネルのテスト用アーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することができる。
次いで、最適化装置2000はテスト用の特定のサブ-カーネルのテスト用アーキテクチャー情報によってビッグニューラルネットワークモデルのテスト用のスーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整してビッグニューラルネットワークモデルを最適化することでテスト用の特定のサブ-カーネルのテスト用アーキテクチャー情報を持つテスト用の特定のスモールニューラルネットワークモデル300を生成させるプロセスを遂行するか、または遂行するように支援することができる。
具体的に、図8は本発明の一実施例によって入力と出力の例示を通じてサブ-カーネルサーチングモジュール100を利用してオン-デバイスニューラルネットワークモデルを最適化する方法を簡略に示している。
図8を参照すれば、最適化装置2000は与えられたテスト用の特定のサブ-カーネルのテスト用のアーキテクチャー情報を参照してビッグニューラルネットワークモデル(B-NN Model、200)を最適化することでテスト用の特定のサブ-カーネルのテスト用のアーキテクチャー情報を持つテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1、300_2)を生成し、生成されたテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1、300_2)によってテストデータに対する第3インファレンス(third inference)を遂行させることができる。
この時、テスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1、300_2)はビッグニューラルネットワークモデル(B-NN Model、200)のサブセットであるため、テスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1、300_2)の性能はいつもビッグニューラルネットワークモデル(B-NN Model、200)の性能より小さいか同一である。また、テストデータの難易度が増加するほどテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1、300_2)のテスト用の特定のサブ-カーネル(sub-kernel)に対して要求される演算量が大きくなることがある。
一例として、テストデータがイージーサンプル(easy sample)の場合は、ビッグニューラルネットワークモデル(B-NN Model、200)を最適化してウエイトの大きさが小さくて演算回数が少ないテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1)を生成させることで、ビッグニューラルネットワークモデル(B-NN model、200)に比べて少ない演算量、一例として、ビッグニューラルネットワークモデル(B-NN Model、200)に対して12%の演算量でテストデータに対する第3インファレンスを遂行することができる。一方、テストデータがハードサンプル(hard sample)の場合は、ビッグニューラルネットワークモデル(B-NN Model、200)を最適化してテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1)に比べてウエイトの大きさが大きくて演算回数が多いが、ビッグニューラルネットワークモデル(B-NN model、200)に比べてウエイトの大きさが小さくて演算回数が少ないテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_2)を生成することでテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1)に比べて演算量が多いが、ビッグニューラルネットワークモデル(B-NN Model、200)に比べると少ない演算量、一例として、ビッグニューラルネットワークモデル(B-NN Model)に対して88%の演算量でテストデータに対する第3インファレンスを遂行することができる。
すなわち、本発明によってビッグニューラルネットワークモデル(B-NN Model)を最適化したテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1、300_2)は、サンプルの難易度によって最適化された演算量を持つようになり、サーバーなどの助けがなくてもエッジデバイス上でニューラルネットワークモデルの最適化を遂行することができる。
また、最適化装置2000はテスト用の特定のスモールニューラルネットワークモデル(S-NN model、300_1、300_2)によってテストデータをインファレンス(推論)した第3インファレンス結果と、ビッグニューラルネットワークモデル(B-NN Model、200)によってテストデータをインファレンスした第4インファレンス結果(fourth inference result)とを参照して第3インファレンス結果と第4インファレンス結果との差が既設定された基準値を超える場合、テストデータとテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1、300_2)のアーキテクチャー情報とをサーバーに伝送し、サーバーによってテストデータをテスト用の特定のスモールニューラルネットワークモデル(S-NN Model、300_1、300_2)でのハードサンプルとしてタグ付けして学習データベースに追加させることができる。
この時、サブ-カーネルサーチングモジュール100の学習はエッジデバイスに持続的に入力されるデータを通じてエッジデバイス上で持続的に行われることができるし、エッジデバイス上でサブ-カーネルサーチングモジュール100の学習が一定以上行われると、スモールニューラルネットワークモデル(S-NN Model、300)を通じてテスト及びインファレンスを遂行することができる。サブ-カーネルサーチングモジュール100のオーバーヘッド(overhead)によってフレームごとにサブ-カーネルサーチングモジュール100を実行して出力された新しいスモールニューラルネットワークモデル(S-NN Model、300)のアーキテクチャー情報を使うか、または一定フレームごとにサブ-カーネルサーチングモジュール100を実行して当該区間で最終的に出力されたアーキテクチャー情報を使うかを選択することができる。
以上、説明された本発明による実施例は、多様なコンピュータ構成要素を通じて遂行できるプログラム命令語の形態で具現され、コンピュータ読み取り可能な記録媒体に記録することができる。前記コンピュータ読み取り可能な記録媒体は、プログラム命令語、データファイル、データ構造などを単独でまたは組み合わせて含むことができる。前記コンピュータ読み取り可能な記録媒体に記録されるプログラム命令語は、本発明のために特別に設計されて構成されたものであるか、またはコンピュータソフトウェア分野の当業者に公知にされて使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例には、ハードディスク、フレキシブルディスク及び磁気テープのような磁気媒体、CD-ROM、DVDのような光記録媒体、フロプティカルディスク(floptical disk)のような磁気-光媒体(magneto-optical media)、及びROM、RAM、フラッシュメモリなどのようなプログラム命令語を格納して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるもののような機械語コードのみならず、インタープリターなどを使用してコンピュータによって実行されることができる高級言語コードも含まれる。前記ハードウェア装置は、本発明による処理を行うために一つ以上のソフトウェアモジュールとして作動するように構成されることができるし、その逆も同様である。
以上、本発明が具体的な構成要素などのような特定事項と、限定された実施例及び図面によって説明されたが、これは本発明のより全般的な理解を助けるために提供されたものに過ぎず、本発明が前記実施例に限定されるものではなく、本発明が属する技術分野における通常の知識を有する者であれば、このような記載から多様な修正及び変形を図ることができる。
したがって、本発明の思想は前記説明された実施例に限って決められてはならず、後述する特許請求の範囲だけでなく、本特許請求の範囲と均等または等価的に変形された全てのものは本発明の思想の範疇に属するものとする。

Claims (24)

  1. サブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する方法において、
    (a)ニューラルネットワークモデルが搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)を、入力された入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、学習装置が前記学習データをサブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i)前記学習データに対応する演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)に適用された少なくとも一つの制約(constraint)を確認し、(ii)前記学習データに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含む状態ベクトル(state vector)を生成し、(iii)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)で、前記スーパーカーネルより小さいかまたは同じカーネルの大きさと、少ないかまたは同じチャンネルの数からなり、前記制約で前記状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる特定のサブ-カーネルのアーキテクチャー情報(architecture information)を生成させるプロセスを遂行するか、または遂行するように支援する段階と、
    (b)前記学習装置が、(i)前記特定のサブ-カーネルの前記アーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記特定のサブ-カーネルの前記アーキテクチャー情報を持つ特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)を生成し、(ii)前記特定のスモールニューラルネットワークモデルによって前記学習データに対する第2インファレンス結果(second inference result)を生成させるプロセスを遂行するか、または遂行するように支援する段階と、
    (c)前記学習装置が、前記第1インファレンス結果と前記第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、前記第1ロスを利用して前記サブ-カーネルサーチングモジュールを学習させるプロセスを遂行するか、または遂行するように支援する段階と、
    を含む方法。
  2. 前記(a)の段階において、
    前記学習装置は、前記サブ-カーネルサーチングモジュールによって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM)を通じて前記学習データに対応するシーンフィーチャー(scene features)を生成させ、前記シーンフィーチャーに対応する前記状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG)を通じて前記制約で前記状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる前記最小限のカーネルの大きさと前記最小限のチャンネルの数とからなる前記特定のサブ-カーネルの前記アーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項1に記載の方法。
  3. 前記学習装置は、(i)与えられた前記制約で前記第1ロスを通じたバックプロパゲーション(back-propagation)を通じて前記第1ロスを最小化するように前記シーンオーバービューイングモジュールと前記サブ-カーネルネットワーク生成器とを学習させ、(ii)前記状態ベクトルと、これに対応する原本正解(ground truth)とを参照して一つ以上の第2ロスを生成し、前記第2ロスを最小化するように前記シーンオーバービューイングモジュールをさらに学習させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項2に記載の方法。
  4. 前記シーンオーバービューイングモジュールは、コンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成され、前記サブ-カーネルネットワーク生成器はリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成され、
    前記学習装置は前記シーンオーバービューイングモジュールと前記サブ-カーネルネットワーク生成器とをそれぞれ学習させたり同時に学習させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項2に記載の方法。
  5. 前記学習装置は、前記シーンオーバービューイングモジュールの前記コンボリューショナルニューラルネットワークを通じて前記学習データに対して少なくとも一つのコンボリューション(convolution)演算、少なくとも一つのプーリング(pooling)演算、及び少なくとも一つのFC(全結合:Fully-Connected)演算を適用して前記学習データに対応する前記シーンフィーチャーを生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項4に記載の方法。
  6. 前記(b)の段階において、
    前記学習装置は、前記特定のサブ-カーネルの前記アーキテクチャー情報によって前記ビッグニューラルネットワークモデルの前記スーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整して前記ビッグニューラルネットワークモデルを最適化することにより、前記特定のサブ-カーネルの前記アーキテクチャー情報を持つ前記特定のスモールニューラルネットワークモデルを生成するプロセスを遂行するか、または遂行するように支援することを特徴とする請求項1に記載の方法。
  7. 前記学習装置は、前記第1インファレンス結果と前記第2インファレンス結果とを参照し、前記第1インファレンス結果と前記第2インファレンス結果との差が既設定された基準値を超える場合、前記学習データと前記特定のスモールニューラルネットワークモデルの前記アーキテクチャー情報とをサーバーに伝送し、前記サーバーによって前記学習データを前記特定のスモールニューラルネットワークモデルでのハードサンプル(hard sample)としてタグ付け(tag)し、学習データベースに追加させるプロセスを遂行するか、または遂行するように支援する請求項1に記載の方法。
  8. サブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する方法において、
    (a)学習装置によって、(i)ニューラルネットワークモデルが搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)を、入力された入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、前記学習データをサブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i-1)前記学習データに対応する演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)の中の少なくとも一つに適用された学習用制約(constraint)を確認し、(i-2)前記学習データに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含む学習用状態ベクトル(state vector)を生成し、(i-3)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)で、前記スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなり、前記学習用制約で前記学習用状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる学習用特定のサブ-カーネルの学習用アーキテクチャー情報(architecture information)を生成させるプロセス、(ii)(ii-1)前記学習用特定のサブ-カーネルの前記学習用アーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記学習用特定のサブ-カーネルの前記学習用アーキテクチャー情報を持つ学習用特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)を生成し、(ii-2)前記学習用特定のスモールニューラルネットワークモデルによって前記学習データに対する第2インファレンス結果(second inference result)を生成させるプロセス、及び(iii)前記第1インファレンス結果と前記第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、前記第1ロスを利用して前記サブ-カーネルサーチングモジュールを学習させるプロセスが遂行された状態で、最適化装置がテストデータを獲得すれば前記テストデータを前記サブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i)前記テストデータに対応する演算量、パラメーター、レイテンシ、正確度、及びフロップスの中の少なくとも一つに適用されたテスト用の制約(constraint)を確認し、(ii)前記テストデータに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含むテスト用の状態ベクトルを生成し、(iii)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応する前記スーパーカーネルのサブセットで、前記スーパーカーネルより小さいか同じカーネルの大きさと少ないか同じチャンネルの数とからなり、前記テスト用の制約で前記テスト用の状態ベクトルを持つ前記テストデータに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなるテスト用の特定のサブ-カーネルのテスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援する段階と、
    (b)前記最適化装置が、(i)前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を持つテスト用の特定のスモールニューラルネットワークモデルを生成し、(ii)前記テスト用の特定のスモールニューラルネットワークモデルによって前記テストデータに対する第3インファレンス結果(third inference result)を生成させるプロセスを遂行するか、または遂行するように支援する段階と、
    を含む方法。
  9. 前記(a)の段階において、
    前記最適化装置は、前記サブ-カーネルサーチングモジュールによって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM)を通じて前記テストデータに対応するテスト用のシーンフィーチャー(scene features)を生成させ、前記テスト用のシーンフィーチャーに対応する前記テスト用の状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG)を通じて前記テスト用の制約で前記テスト用の状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項8に記載の方法。
  10. 前記シーンオーバービューイングモジュールはコンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成され、前記サブ-カーネルネットワーク生成器はリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成されていることを特徴とする請求項9に記載の方法。
  11. 前記最適化装置は、前記シーンオーバービューイングモジュールの前記コンボリューションニューラルネットワークを通じて前記テストデータに対して少なくとも一つのコンボリューション(convolution)演算、少なくとも一つのプーリング(pooling)演算、及び少なくとも一つのFC(Fully-Connected)演算を適用して前記テストデータに対応する前記テスト用のシーンフィーチャーを生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項10に記載の方法。
  12. 前記(b)の段階において、
    前記最適化装置は、前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報によって前記ビッグニューラルネットワークモデルの前記スーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整して前記ビッグニューラルネットワークモデルを最適化することにより、前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を持つ前記テスト用の特定のスモールニューラルネットワークモデルを生成するプロセスを遂行するか、または遂行するように支援することを特徴とする請求項8に記載の方法。
  13. サブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する学習装置であって、
    インストラクションを格納する少なくとも一つのメモリと、
    前記インストラクションを実行するために構成された少なくとも一つのプロセッサと、を含み、
    前記プロセッサが、(I)ニューラルネットワークモデルが搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)を、入力された入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、前記学習データをサブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i)前記学習データに対応する演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)に適用された少なくとも一つの制約(constraint)を確認し、(ii)前記学習データに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含む状態ベクトル(state vector)を生成し、(iii)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)で、前記スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなり、前記制約で前記状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる特定のサブ-カーネルのアーキテクチャー情報(architecture information)を生成させるプロセスを遂行するか、または遂行するように支援するステップと、(II)(i)前記特定のサブ-カーネルの前記アーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記特定のサブ-カーネルの前記アーキテクチャー情報を持つ特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)を生成し、(ii)前記特定のスモールニューラルネットワークモデルによって前記学習データに対する第2インファレンス結果(second inference result)を生成させるプロセスを遂行するか、または遂行するように支援するステップと、(III)前記第1インファレンス結果と前記第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、前記第1ロスを利用して前記サブ-カーネルサーチングモジュールを学習させるプロセスを遂行するか、または遂行するように支援するステップと、を含む学習装置。
  14. 前記(I)のステップにおいて、
    前記プロセッサは、前記サブ-カーネルサーチングモジュールによって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM)を通じて前記学習データに対応するシーンフィーチャー(scene features)を生成させ、前記シーンフィーチャーに対応する前記状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG)を通じて前記制約で前記状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる前記最小限のカーネルの大きさと前記最小限のチャンネルの数とからなる前記特定のサブ-カーネルの前記アーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項13に記載の学習装置。
  15. 前記プロセッサは、(i)与えられた前記制約で前記第1ロスを通じたバックプロパゲーション(back-propagation)を通じて前記第1ロスを最小化するように前記シーンオーバービューイングモジュールと前記サブ-カーネルネットワーク生成器とを学習させ、(ii)前記状態ベクトルと、これに対応する原本正解(ground truth)を参照して一つ以上の第2ロスを生成し、前記第2ロスを最小化するように前記シーンオーバービューイングモジュールをさらに学習させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項14に記載の学習装置。
  16. 前記シーンオーバービューイングモジュールはコンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成され、前記サブ-カーネルネットワーク生成器はリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成され、
    前記プロセッサは前記シーンオーバービューイングモジュールと前記サブ-カーネルネットワーク生成器とをそれぞれ学習させたり同時に学習させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項14に記載の学習装置。
  17. 前記プロセッサは前記シーンオーバービューイングモジュールの前記コンボリューショナルニューラルネットワークを通じて前記学習データに対して少なくとも一つのコンボリューション(convolution)演算、少なくとも一つのプーリング(pooling)演算、及び少なくとも一つのFC(全結合:Fully-Connected)演算を適用して前記学習データに対応する前記シーンフィーチャーを生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項16に記載の学習装置。
  18. 前記(II)のステップにおいて、
    前記プロセッサは、前記特定のサブ-カーネルの前記アーキテクチャー情報によって前記ビッグニューラルネットワークモデルの前記スーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整して前記ビッグニューラルネットワークモデルを最適化することにより、前記特定のサブ-カーネルの前記アーキテクチャー情報を持つ前記特定のスモールニューラルネットワークモデルを生成するプロセスを遂行するか、または遂行するように支援することを特徴とする請求項13に記載の学習装置。
  19. 前記プロセッサは、前記第1インファレンス結果と前記第2インファレンス結果とを参照し、前記第1インファレンス結果と前記第2インファレンス結果との差が既設定された基準値を超える場合、前記学習データと前記特定のスモールニューラルネットワークモデルの前記アーキテクチャー情報とをサーバーに伝送し、前記サーバーによって前記学習データを前記特定のスモールニューラルネットワークモデルでのハードサンプル(hard sample)としてタグ付け(tag)し、学習データベースに追加させるプロセスを遂行するか、または遂行するように支援する請求項13に記載の学習装置。
  20. サブ-カーネルサーチングモジュール(Sub-Kernel Searching Module、SSM)を利用してオン-デバイスニューラルネットワークモデル(on-device neural network model)を最適化する最適化装置であって、
    インストラクションを格納する少なくとも一つのメモリと、
    前記インストラクションを実行するために構成された少なくとも一つのプロセッサと、を含み、
    (I)学習装置によって、(i)ニューラルネットワークモデルが搭載されたエッジデバイスが許容する最大のコンピューティングパワーを利用して目的とするタスク(task)を遂行することができる最大キャパシティ(capacity)を持つビッグニューラルネットワークモデル(Big Neural Network Model、B-NN Model)を、入力された入力データに対する第1インファレンス結果(first inference result)を生成するように学習させた状態で、学習データが獲得されると、前記学習データをサブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i-1)前記学習データに対応する演算量(computational load)、パラメーター(parameters)、レイテンシ(latency)、正確度(accuracy)、及びフロップス(flops)の中の少なくとも一つに適用された学習用制約(constraint)を確認し、(i-2)前記学習データに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含む学習用状態ベクトル(state vector)を生成し、(i-3)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応するスーパーカーネル(super kernel)のサブセット(subset)で、前記スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなり、前記学習用制約で前記学習用状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなる学習用特定のサブ-カーネルの学習用アーキテクチャー情報(architecture information)を生成させるプロセス、(ii)(ii-1)前記学習用特定のサブ-カーネルの前記学習用アーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記学習用特定のサブ-カーネルの前記学習用アーキテクチャー情報を持つ学習用特定のスモールニューラルネットワークモデル(Small Neural Network Model、S-NN Model)を生成し、(ii-2)前記学習用特定のスモールニューラルネットワークモデルによって前記学習データに対する第2インファレンス結果(second inference result)を生成させるプロセス、及び(iii)前記第1インファレンス結果と前記第2インファレンス結果とを参照して一つ以上の第1ロスを生成し、前記第1ロスを利用して前記サブ-カーネルサーチングモジュールを学習させるプロセスが遂行された状態で、前記プロセッサがテストデータを獲得すれば前記テストデータを前記サブ-カーネルサーチングモジュールに入力し、前記サブ-カーネルサーチングモジュールによって、(i)前記テストデータに対応する演算量、パラメーター、レイテンシ、正確度、及びフロップスの中の少なくとも一つに適用されたテスト用の制約(constraint)を確認し、(ii)前記テストデータに対応する複雑度、鮮明度の中の少なくとも一つに対する情報を含むテスト用の状態ベクトルを生成し、(iii)前記ビッグニューラルネットワークモデルの前記最大キャパシティに対応する前記スーパーカーネルのサブセットで、前記スーパーカーネルより小さいか同じカーネルの大きさと、少ないか同じチャンネルの数とからなり、前記テスト用の制約で前記テスト用の状態ベクトルを持つ前記テストデータに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと最小限のチャンネルの数とからなるテスト用の特定のサブ-カーネルのテスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援するステップと、(II)前記プロセッサが(i)前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を参照して前記ビッグニューラルネットワークモデルを最適化し、前記ビッグニューラルネットワークモデルから前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を持つテスト用の特定のスモールニューラルネットワークモデルを生成し、(ii)前記テスト用の特定のスモールニューラルネットワークモデルによって前記テストデータに対する第3インファレンス結果(third inference result)を生成させるプロセスを遂行するか、または遂行するように支援するステップと、を遂行する最適化装置。
  21. 前記(I)のステップにおいて、
    前記プロセッサは、前記サブ-カーネルサーチングモジュールによって、(i)シーンオーバービューイングモジュール(Scene Overviewing Module、SSM)を通じて前記テストデータに対応するテスト用のシーンフィーチャー(scene features)を生成させ、前記テスト用のシーンフィーチャーに対応する前記テスト用の状態ベクトルを生成させ、(ii)サブ-カーネルネットワーク生成器(Sub-kernel Network Generator、SNG)を通じて前記テスト用の制約で前記テスト用の状態ベクトルを持つ前記学習データに対して前記目的とするタスクを遂行することができる最小限のカーネルの大きさと、最小限のチャンネルの数とからなる前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項20に記載の最適化装置。
  22. 前記シーンオーバービューイングモジュールはコンボリューショナルニューラルネットワーク(Convolutional Neural Network、CNN)で構成され、前記サブ-カーネルネットワーク生成器はリカレントニューラルネットワーク(Recurrent Neural Network、RNN)で構成されていることを特徴とする請求項21に記載の最適化装置。
  23. 前記プロセッサは、前記シーンオーバービューイングモジュールの前記コンボリューションニューラルネットワークを通じて前記テストデータに対して少なくとも一つのコンボリューション(convolution)演算、少なくとも一つのプーリング(pooling)演算、及び少なくとも一つのFC(全結合:Fully-Connected)演算を適用して前記テストデータに対応する前記テスト用のシーンフィーチャーを生成させるプロセスを遂行するか、または遂行するように支援することを特徴とする請求項22に記載の最適化装置。
  24. 前記(II)のステップにおいて、
    前記プロセッサは、前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報によって前記ビッグニューラルネットワークモデルの前記スーパーカーネルのカーネルの高さ、カーネルの幅、及びチャンネルの数の中の少なくとも一つを調整して前記ビッグニューラルネットワークモデルを最適化することにより、前記テスト用の特定のサブ-カーネルの前記テスト用のアーキテクチャー情報を持つ前記テスト用の特定のスモールニューラルネットワークモデルを生成するプロセスを遂行するか、または遂行するように支援することを特徴とする請求項20に記載の最適化装置。
JP2022548235A 2020-05-13 2021-01-21 サブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する方法及び装置 Active JP7425216B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202063024025P 2020-05-13 2020-05-13
US63/024,025 2020-05-13
US17/135,301 2020-12-28
US17/135,301 US10970633B1 (en) 2020-05-13 2020-12-28 Method for optimizing on-device neural network model by using sub-kernel searching module and device using the same
PCT/KR2021/000858 WO2021230463A1 (en) 2020-05-13 2021-01-21 Method for optimizing on-device neural network model by using sub-kernel searching module and device using the same

Publications (2)

Publication Number Publication Date
JP2023514173A true JP2023514173A (ja) 2023-04-05
JP7425216B2 JP7425216B2 (ja) 2024-01-30

Family

ID=75275501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022548235A Active JP7425216B2 (ja) 2020-05-13 2021-01-21 サブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する方法及び装置

Country Status (6)

Country Link
US (1) US10970633B1 (ja)
EP (1) EP3944154A1 (ja)
JP (1) JP7425216B2 (ja)
KR (1) KR20220088497A (ja)
CN (1) CN115298671A (ja)
WO (1) WO2021230463A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112132113A (zh) * 2020-10-20 2020-12-25 北京百度网讯科技有限公司 车辆再识别的方法、装置、训练方法以及电子设备
KR102567024B1 (ko) * 2022-12-26 2023-08-16 한국단자공업 주식회사 임베디드 기기 내 센서데이터의 온-디바이스 학습을 위한 신경망 구조 탐색방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002091211A1 (en) * 2001-05-07 2002-11-14 Biowulf Technologies, Llc Kernels and methods for selecting kernels for use in learning machines
US7599897B2 (en) * 2006-05-05 2009-10-06 Rockwell Automation Technologies, Inc. Training a support vector machine with process constraints
EP2144449A1 (en) * 2008-07-07 2010-01-13 BRITISH TELECOMMUNICATIONS public limited company Video quality measurement
US10318882B2 (en) * 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
JP6889270B2 (ja) 2017-02-23 2021-06-18 グーグル エルエルシーGoogle LLC ニューラルネットワークアーキテクチャの最適化
KR102139740B1 (ko) * 2017-06-09 2020-07-31 한국과학기술원 전자 장치 및 학습 모델 최적화 방법
US11106975B2 (en) * 2017-10-20 2021-08-31 Asapp, Inc. Fast neural network implementations by increasing parallelism of cell computations
CN110598840B (zh) 2018-06-13 2023-04-18 富士通株式会社 知识迁移方法、信息处理设备以及存储介质
US20200021815A1 (en) * 2018-07-10 2020-01-16 Fastvdo Llc Method and apparatus for applying deep learning techniques in video coding, restoration and video quality analysis (vqa)
US20200082247A1 (en) 2018-09-07 2020-03-12 Kneron (Taiwan) Co., Ltd. Automatically architecture searching framework for convolutional neural network in reconfigurable hardware design
CN110889487A (zh) 2018-09-10 2020-03-17 富士通株式会社 神经网络架构搜索装置和方法及计算机可读记录介质
US20200104715A1 (en) * 2018-09-28 2020-04-02 Xilinx, Inc. Training of neural networks by including implementation cost as an objective
US11604960B2 (en) * 2019-03-18 2023-03-14 Microsoft Technology Licensing, Llc Differential bit width neural architecture search
US11630990B2 (en) * 2019-03-19 2023-04-18 Cisco Technology, Inc. Systems and methods for auto machine learning and neural architecture search
CN110334689B (zh) * 2019-07-16 2022-02-15 北京百度网讯科技有限公司 视频分类方法和装置

Also Published As

Publication number Publication date
US10970633B1 (en) 2021-04-06
KR20220088497A (ko) 2022-06-27
CN115298671A (zh) 2022-11-04
WO2021230463A1 (en) 2021-11-18
EP3944154A1 (en) 2022-01-26
JP7425216B2 (ja) 2024-01-30

Similar Documents

Publication Publication Date Title
He et al. Learning filter pruning criteria for deep convolutional neural networks acceleration
US11093826B2 (en) Efficient determination of optimized learning settings of neural networks
US11113574B1 (en) Methods for performing self-supervised learning of deep-learning based detection network by using deep Q-network and devices using the same
JP2023514173A (ja) サブ-カーネルサーチングモジュールを利用してオン-デバイスニューラルネットワークモデルを最適化する方法及び装置
KR20200129639A (ko) 모델 학습 방법 및 장치
JP2020123345A (ja) Ganを用いて仮想世界における仮想データから取得したトレーニングデータを生成して、自律走行用ニューラルネットワークの学習プロセスに必要なアノテーションコストを削減する学習方法や学習装置、それを利用したテスト方法やテスト装置
JP6378150B2 (ja) 最適化装置、最適化方法および最適化プログラム
Cheng et al. A survey on deep neural network pruning-taxonomy, comparison, analysis, and recommendations
CN113313250B (zh) 采用混合精度量化与知识蒸馏的神经网络训练方法及系统
CN114757210A (zh) 翻译模型的训练方法、语句翻译方法、装置、设备、程序
KR20220032861A (ko) 하드웨어에서의 성능을 고려한 뉴럴 아키텍처 서치 방법 빛 장치
Shu et al. Residual stacking of rnns for neural machine translation
JP2020123338A (ja) ディープラーニング基盤装置の学習に使用されるバーチャル世界シミュレータの物理エンジンをキャリブレーションする方法及び装置、そしてそのためのリアル状態ネットワークを学習する方法及びそれを利用した学習装置
US20220383166A1 (en) Optimizing reservoir computers for hardware implementation
KR20230141828A (ko) 적응형 그래디언트 클리핑을 사용하는 신경 네트워크들
KR20220052844A (ko) 뉴럴 네트워크의 제공
KR20210155825A (ko) 셀렉티브 딥 제너레이티브 리플레이 모듈을 사용하여 딥 뉴럴 네트워크 모델에 대한 조정 가능한 연속 학습을 수행하는 방법 및 장치
US20230325671A1 (en) Information processing apparatus, information processing method, and storage medium
Jang et al. Uncertainty-Driven Pessimistic Q-Ensemble for Offline-to-Online Reinforcement Learning
KR102522734B1 (ko) 3차원 의료 영상 분석을 위한 자가학습 기반 전이 학습 방법 및 그 장치
Sung et al. Exploration of on-device end-to-end acoustic modeling with neural networks
CN115169524A (zh) 一种基于大数据智能优化的测试方法
KR20240039776A (ko) 시계열 데이터를 위한 학습가능한 gaf 방법 및 시스템
Neto Traffic light detection with neural network models
KR20210099988A (ko) 뉴럴 네트워크의 메타 학습 방법 및 장치와 뉴럴 네트워크의 클래스 벡터 학습 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220808

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231127

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: 20240116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240118

R150 Certificate of patent or registration of utility model

Ref document number: 7425216

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150