以下は、添付の図面を参照して、本願の実施形態において提供されるニューラル・ネットワークの適応的探索方法および装置について詳細に説明する。
図1は、ニューラル・ネットワークのための適応的探索システムを示す。ニューラル・ネットワークの適応的探索システムは、データ処理装置および端末装置を含む。データ処理装置および端末装置は、有線ネットワークまたは無線ネットワークを介して接続されてもよい。装置間の接続の仕方は、本願のこの実施形態において特に限定されない。
端末装置はクライアント装置であり、開発者によって操作される端末装置であってもよく、関連するヒューマン‐マシン対話インターフェースを提供し、それによりユーザーは、ニューラル・ネットワークの適応的探索プロセスにおいて必要とされる関連パラメータ、たとえば探索条件セットを入力する。たとえば、探索条件セットは、ターゲット・ハードウェア・プラットフォーム情報(たとえば、ターゲット・ハードウェア・プラットフォームの製造業者、属性、モデル、および実行されるべきターゲット・タスクのタイプ)、ソース・ニューラル・ネットワークのネットワーク構造情報、および一つまたは複数の評価メトリック(たとえば、精度閾値、時間オーバーヘッド閾値、および記憶スペース閾値)を含んでいてもよい。たとえば、端末装置は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、またはノートブック・コンピュータのような端末装置であってもよい。端末装置の特定の形態は、本願のこの実施形態において特に限定されない。
ハードウェア・プラットフォームは、たとえば、グラフィックス処理ユニット(graphics processing unit、GPU)、ホスト中央処理ユニット(central processing unit、CPU)、画像信号プロセッサ(image signal processor、ISP)、ニューラル・ネットワーク処理ユニット(neural network processing unit、NPU)、デジタル信号プロセッサ(digital signal processor、DSP)等のうちの一つまたは複数を含むことができる。実行中または担持されるニューラル・ネットワークによって実現されうるアプリケーションは、画像分類(image classification)、オブジェクト認識(object recognition)、アクション認識(action recognition)、姿勢推定(pose estimation)、およびニューラルスタイル転送(neural style transfer)などのコンピュータビジョン・アプリケーションを含むがこれらに限定されず、または自然言語処理(natural language processing、NLP)などのアプリケーションであってもよい。
あるシナリオでは、端末装置内のニューラル・ネットワーク(すなわち、ソース・ニューラル・ネットワーク)を最適化する必要がある場合、端末装置は、最適化されたニューラル・ネットワーク(すなわち、ターゲット・ニューラル・ネットワーク)を得るために、ソース・ニューラル・ネットワークのネットワーク構造情報、ソース・ニューラル・ネットワークが担持される特定のハードウェア・プラットフォーム(すなわち、ターゲット・ハードウェア・プラットフォーム)に関する情報などを、処理のためのデータ処理装置に入力することができる。すなわち、ソース・ニューラル・ネットワークとターゲット・ニューラル・ネットワークは、異なる時間領域で同じハードウェア・プラットフォーム上で動作するニューラル・ネットワークである。
別のシナリオでは、端末装置内のソース・ニューラル・ネットワークのハードウェア・プラットフォームが、別のハードウェア・プラットフォーム(たとえば、異なる属性を有するハードウェア・プラットフォーム(たとえば、GPU、CPU、NPU、またはDSP)、同じ属性であるが異なるモデルを有するハードウェア・プラットフォーム、または同じ属性であるが異なる製造者を有するハードウェア・プラットフォームを含む)に置き換えられる場合、ソース・ニューラル・ネットワークのネットワーク構造情報および置き換え後のハードウェア・プラットフォーム(すなわち、ターゲット・ハードウェア・プラットフォーム)に関する情報が、適応的探索を通じて得られるニューラル・ネットワークを得るために処理のためにデータ処理装置に入力されうる。交換後のハードウェア・プラットフォーム(すなわち、ターゲット・ハードウェア・プラットフォーム)の設計は、ソース・ハードウェア・プラットフォームの設計とは異なる可能性があるため、ソース・ニューラル・ネットワークの実行効果が影響を受ける。あるいは、交換後のハードウェア・プラットフォーム内のいくつかの設計は、ソース・ニューラル・ネットワークに完全には適用されないことがあり、結果として、ネットワーク性能が低下し、ハードウェア・プラットフォームの設計の無駄が生じる。
いくつかの他の例において、ニューラル・ネットワークの適応的探索システムは、ユーザー装置をさらに含みうることができることが理解されうる。ターゲット・ニューラル・ネットワークが、タスクを実行するために、ユーザー装置内の対応するターゲット・ハードウェア・プラットフォーム上で動作するまたは担持されるよう、ターゲット・ニューラル・ネットワークの得られたネットワーク構造情報をターゲット・ハードウェア・プラットフォームを含むユーザー装置に送信するかどうかを端末装置がさらに決定してもよい。たとえば、ユーザー装置は、携帯電話(mobile phone)、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、ノートブック・コンピュータ、ウルトラ・モバイル・パーソナル・コンピュータ(ultra-mobile personal computer、UMPC)、ネットブック、パーソナルデジタルアシスタント(personal digital assistant、PDA)、拡張現実(augmented reality、AR)/仮想現実(virtual reality、VR)装置、または人工知能(artificial intelligence、AI)端末のような端末装置であってもよい。ユーザー装置の特定の形態は、本開示のこの実施形態では特に限定されない。
データ処理装置は、ニューラル・ネットワーク探索機能を有する装置またはサーバー、たとえばクラウドサーバーまたはネットワークサーバーであってもよい。データ処理装置は、対話インターフェースを通じて、端末装置によって送信された探索条件セットを受領し、該探索条件セットは、ターゲット・ハードウェア・プラットフォーム情報、ソース・ニューラル・ネットワークのネットワーク構造情報、前記一つまたは複数の評価メトリック等を含む;次いで、データ処理装置は、メモリに記憶された知識ベースに基づき、プロセッサを用いてスーパーネットワークを構築し、トレーニングし、ターゲット・ニューラル・ネットワークを探索し、探索結果、すなわちターゲット・ニューラル・ネットワークを対応する端末装置に送信する。データ処理装置内のメモリは、一般的な名称であってもよく、ローカル記憶装置と、履歴データを記憶するデータベースとを含む。データベースは、データ処理装置上に位置してもよく、または別のクラウドサーバー上に位置してもよい。
データ処理装置はサーバーであってもよく、または複数のサーバーを含むサーバークラスターであってもよく、またはクラウドコンピューティングサービスセンターであってもよいことに留意されたい。
たとえば、図1のデータ処理装置が、本願の実施形態におけるニューラル・ネットワークの適応的探索方法を実行することができる。
図2は、本願のある実施形態によるシステムアーキテクチャーの一例を示す。
図2のシステムアーキテクチャーに示されるように、入力/出力(input/output、I/O)インターフェース211がデータ処理装置210のために構成され、外部装置とデータを交換するように構成される。ユーザーは、端末装置220を使用して、I/Oインターフェース211にデータを入力してもよい。入力データは、本願の実施形態においては探索条件セットを含んでいてもよい。たとえば、探索条件セットは、ターゲット・ハードウェア・プラットフォーム情報(たとえば、製造業者、属性、モデル、およびターゲット・ハードウェア・プラットフォームの実行されるべきターゲット・タスクのタイプ)、ソース・ニューラル・ネットワークのネットワーク構造情報、および一つまたは複数の評価メトリック(たとえば、精度閾値、時間オーバーヘッド閾値、および記憶スペース閾値)を含んでいてもよい。
データ収集装置240は、トレーニング・データを収集するように構成される。たとえば、本願のこの実施形態におけるトレーニング・データは、ニューラル・ネットワークをトレーニングするためのトレーニング・データセットであってもよい。トレーニング・データを収集した後、データ収集装置240は、トレーニング・データをデータベース230に記憶する。データベース230は、さらに、データ収集装置240によって収集された知識ベース231を記憶する。知識ベース231は、ソース・ニューラル・ネットワークに基づくスーパーネットワークを構築するために使用されてもよい。知識ベース231は、ニューラル・ネットワーク内の演算子および/または演算子セットとハードウェア・プラットフォームとの間の整合に関する情報を含んでいてもよい。たとえば、知識ベース231は、第1演算子セットと第3演算子セットとの間の、異なるハードウェア・プラットフォームに基づく対応を含む。第3演算子セットは、第1演算子セットおよび/または一つまたは複数の派生第2演算子セットを含む。各派生第2演算子セットは、その派生第2演算子セットに対応する第1演算子セットと同じ機能を有する。換言すれば、第1演算子セットは、派生第2演算子セットと置き換えられてもよい。この場合、知識ベース231を使用してソース・ニューラル・ネットワークがスーパーネットワークに拡張されると、ソース・ニューラル・ネットワークに含まれる各第1演算子セットは、その第1演算子セットに対応する第3演算子セットで置き換えられる。以下の表1に示されるように、知識ベース231の例が提供される。
第1演算子セットは、一つまたは複数の演算子を含んでいてもよいことがわかる。各第1演算子セットは、一つまたは複数の派生第2演算子セットに対応しうる。前記一つまたは複数の派生第2演算子セットおよび/または第1演算子セットが、第1演算子セットに対応する第3演算子セットを構成する。
たとえば、表1において、ソース・ニューラル・ネットワークに含まれる第1演算子セットは、3×3畳み込み演算子である。知識ベース231に基づいて、モデルがAであるGPU(ターゲット・ハードウェア・プラットフォーム)では、1×1畳み込み演算子および5×5畳み込み演算子の両方が、3×3畳み込み演算子と同じまたは類似の機能を有することがわかる。この場合、派生第2演算子セットは、1×1畳み込み演算子および5×5畳み込み演算子を含む。スーパーネットワークにおける対応する第3演算子セットは、第1演算子セット(3×3畳み込み演算子)および派生第2演算子セット(1×1畳み込み演算子および5×5畳み込み演算子)を含む。
別の例として、表1において、ソース・ニューラル・ネットワークに含まれる第1演算子セットは、ストライド(stride)=1の場合の7×7畳み込み演算子+プーリング層演算子を含む。知識ベース231に基づいて、モデルがBであるCPU(ターゲット・ハードウェア・プラットフォーム)では、ストライド=2の場合の7×7畳み込み演算子は、ストライド=1の場合の7×7畳み込み演算子+プーリング層演算子と同じまたは類似の機能を有することがわかる。この場合、派生第2演算子セットは、ストライド=2のときに7×7畳み込み演算子を含む。さらに、派生第2演算子セットの評価結果は、第1演算子セットの評価結果よりも良好であり、第1演算子セットは、派生第2演算子セットと置き換えられてもよい。スーパーネットワークにおける対応する第3演算子セットは、派生第2演算子セット(7×7畳み込み演算子)を含む。
別の例として、表1において、ソース・ニューラル・ネットワークに含まれる第1演算子セットは、7×7畳み込み演算子を含む。知識ベース231に基づいて、モデルがCであるNPU(ターゲット・ハードウェア・プラットフォーム)では、3つの3×3畳み込み演算子が、1つの7×7畳み込み演算子と同じまたは類似の機能を有する可能性があることがわかる。この場合、派生第2演算子セットは、3×3畳み込み演算子+3×3畳み込み演算子+3×3畳み込み演算子を含み、派生第2演算子セットの結果は、第1演算子セットの結果よりも良好である。スーパーネットワークにおける対応する第3演算子セットは、派生第2演算子セット(3×3畳み込み演算子+3×3畳み込み演算子+3×3畳み込み演算子)を含む。
表1における演算子間の「+」は、隣接するレベルの演算子セットが組み合わされること、すなわち、垂直に分布した演算子セットが組み合わされることを示すために使用されることに留意されたい。
知識ベース231が確立されると、第1演算子セットと派生第2演算子セットとの間の対応は、異なるハードウェア・プラットフォーム上で実際に実行される演算子セットのデータ、または、専門家の事前知識に基づいて予測される、演算子セットの実行状態に基づいて決定されうることに留意されたい。むろん、知識ベースは、代替的に、異なるハードウェア・プラットフォームのアップグレード状態に基づいて更新されてもよい。知識ベース231を確立するための方法は、本願のこの実施形態において特に限定されない。
実際のアプリケーションでは、データベース230内に維持されたトレーニング・データは、全部がデータ収集装置240によって収集されるわけではなく、または別の装置から受領および取得されてもよいことに留意されたい。たとえば、端末装置220によって送信され、知識ベース231を拡張するために使用される情報が受領される。
構築モジュール212は、スーパーネットワーク201を構築するように構成される。具体的には、構築モジュール212は、探索条件セット内のソース・ニューラル・ネットワークのネットワーク構造情報に基づいて、データベース230から得られた知識ベース231を使用して、ソース・ニューラル・ネットワークから拡張されたスーパーネットワーク201を構築する。
トレーニング・モジュール213は、スーパーネットワーク201をトレーニングして、トレーニングされたスーパーネットワーク202を得るように構成される。具体的には、構築モジュール212によって送信されたスーパーネットワーク201が受領され、該スーパーネットワーク201は、データベース230から得られたトレーニング・データセットに基づいてトレーニングされる。トレーニングされたスーパーネットワーク202は、ニューラル・ネットワーク探索プロセスを実行するために探索モジュール215に送られる。
評価結果取得モジュール214は、一つまたは複数の評価メトリックに基づいて、ターゲット・ハードウェア・プラットフォーム上の第1演算子セットおよび/または派生第2演算子セットの評価結果を取得し、ターゲット・ハードウェア・プラットフォーム上の、探索モジュール215によって発見された候補サブネットの評価結果を得るように構成される。
探索モジュール215は、ターゲット・ニューラル・ネットワーク203を探索するように構成される。具体的には、トレーニング・モジュール213によって送信されたトレーニングされたスーパーネットワーク202が受領され、トレーニングされたスーパーネットワーク202は、評価結果取得モジュール214により得られたニューラル・ネットワーク評価結果に基づき、ターゲット・ニューラル・ネットワーク203を求めて探索される。さらに、ターゲット・ニューラル・ネットワーク203は、I/Oインターフェース211を通じて端末装置220に出力される。
さらに、図2は、本願のこの実施形態によるシステムアーキテクチャーの概略図に過ぎないことに留意されたい。図に示した装置、コンポーネント、モジュール等の位置関係は、いかなる限定も構成しない。たとえば、図2において、データベース230は、データ処理装置210に対する外部メモリであり、別の場合には、データベース230は、代替的に、データ処理装置210内に配置されてもよい。
本願の実施形態は、ニューラル・ネットワークの大規模な適用に関するので、理解を容易にするために、以下は、本願の実施形態において使用されうるニューラル・ネットワークに関連する用語および概念を説明する。
(1)ニューラル・ネットワーク
ニューラル・ネットワークは、ニューロンを含んでいてもよい。ニューロンは、入力としてx
sおよび1の切片を使用する操作ユニットであってもよい。該操作ユニットの出力は以下のようなものでありうる:
s=1,2,…,またはnであり、nは1より大きい自然数であり、W
sはx
sの重みを示し、bはニューロンのバイアスを示し、fはニューロンの活性化関数(activation function)を示す。活性化関数は、ニューロンにおける入力信号を出力信号に変換するために、ニューラル・ネットワークに非線形特性を導入するために使用される。活性化関数の出力信号は、次の畳み込み層への入力として使用されてもよく、活性化関数は、シグモイド関数であってもよい。ニューラル・ネットワークは、複数の単一ニューロンを一緒に接続することによって構成されるネットワークである。具体的には、ニューロンの出力は別のニューロンへの入力であってもよい。各ニューロンへの入力は、前の層の局所的な受容野(receptive field)に接続されて、局所的な受容野の特徴を抽出してもよい。局所的な受容野は、いくつかのニューロンを含む領域でありうる。
(2)深層ニューラル・ネットワーク
深層ニューラル・ネットワーク(deep neural network、DNN)は、多層ニューラル・ネットワークとも呼ばれ、複数の隠れ層を有するニューラル・ネットワークとして理解することができる。DNNは異なる層の位置に基づいて分割される。DNN内のニューラル・ネットワークは、入力層、隠れ層、出力層の3つのタイプに分類される。一般に、最初の層が入力層であり、最後の層が出力層であり、中間の層が隠れ層である。層は完全に接続される。具体的には、i番目の層の任意のニューロンは、必ず(i+1)番目の層の任意のニューロンに接続される。
DNNは複雑に思えるが、各層の作業は実際には複雑ではない。それは、次の線形関係式で簡単に表すことができる。
ここで、ベクトルx〔→付きのx〕は入力ベクトルを表し、ベクトルyは出力ベクトルを表し、ベクトルbはバイアス・ベクトルを表し、Wは重み行列(係数とも呼ばれる)を表し、α()は活性化関数を表す。各層では、出力ベクトル(ベクトルy)を得るために、そのような単純な操作のみが入力ベクトル(ベクトルx)に対して実行される。DNN層が多量に存在するため、係数およびバイアス・ベクトル(ベクトルb)も多量に存在する。これらのパラメータは、DNNでは以下のように定義される:係数Wが例として使用される。3層DNNでは、第2層の第4ニューロンから第3層の第2ニューロンへの線形係数はW
24
3と定義されるとする。上付き添え字3は、その係数が位置する層の順序番号を示し、下付き添え字は、出力についての第3層のインデックス2および入力についての第2層のインデックス4に対応する。
結論として、第(L-1)層の第kニューロンから第L層の第jニューロンへの係数はWjk
Lとして定義される。
なお、入力層にはパラメータWがない。深層ニューラル・ネットワークでは、より多くの隠れ層があれば、ネットワークは、現実の世界における複雑なケースをよりよく記述することができる。理論的には、より多くのパラメータを有するモデルは、より高い複雑さとより大きな「容量」を有する。これは、モデルがより複雑な学習タスクを完了できることを示している。深層ニューラル・ネットワークのトレーニングは、重み行列を学習するプロセスであり、トレーニングの最終目的は、トレーニングされた深層ニューラル・ネットワークのすべての層の重み行列(多数の層のベクトルによって形成される重み行列W)を得ることである。
(3)損失関数
深層ニューラル・ネットワークのトレーニングのプロセスでは、深層ニューラル・ネットワークの出力が実際に予測されると期待される値に可能な限り近いことが期待されるので、現在のネットワークの予測された値と実際に期待されるターゲット値とが比較されてもよく、両者の間の差に基づいてニューラル・ネットワークの各層の重みベクトルが更新される(むろん、通例は最初の更新の前に初期化プロセスがある、具体的には、深層ニューラル・ネットワーク内の各層についてパラメータが事前構成される)。たとえば、ネットワークの予測値がより高い場合、重みベクトルは、より低い予測値を得るために調整される。重みベクトルは、深層ニューラル・ネットワークが、実際に予期されるターゲット値または実際に予期されるターゲット値に非常に近い値を予測できるようになるまで、連続的に調整される。よって、「比較により予測値とターゲット値との間の差をどのように得るか」があらかじめ定義される必要がある。これは損失関数(loss function)または目的関数(objective function)である。損失関数と目的関数は、予測値とターゲット値との間の差を測定する重要な式である。損失関数を例に用いる。損失関数の出力値(損失)が大きいほど、差が大きいことを示す。よって、深層ニューラル・ネットワークのトレーニングは、可能な限り損失を低減するプロセスとなる。
(4)逆伝搬アルゴリズム
トレーニング・プロセスにおいて、ニューラル・ネットワークは、ニューラル・ネットワーク・モデルの再構成誤差損失がますます小さくなっていくように、誤差逆伝搬(back propagation、BP)アルゴリズムを使用することにより、初期ニューラル・ネットワーク・モデルのパラメータ値を補正することができる。具体的には、入力信号は、出力中に誤差損失が発生するまで順方向転送され、初期ニューラル・ネットワーク・モデルのパラメータは、逆伝搬誤差損失情報に基づいて更新され、誤差損失が低減される。逆伝搬アルゴリズムは、主に誤差損失に依存する逆伝搬運動であり、最適なニューラル・ネットワーク・モデルのパラメータ、たとえば重み行列を得ることを目的とする。
本願の実施形態において提供される技術的解決策において、演算子および/または演算子セットの一部は、畳み込みニューラル・ネットワーク・モデルの特定の構造に基づいて、かつソース・ニューラル・ネットワークの隠れ層に含まれる諸層における演算子および/または演算子セットの機能および評価結果と組み合わせて、保持または置換されて、ターゲット・ハードウェア・プラットフォームにより適合するターゲット・ニューラル・ネットワークを得ることができる。
図3は、本願のある実施形態によるチップのハードウェア構造を示す。チップは、ニューラル・ネットワーク処理ユニット(neural network processing unit、NPU)300を含む。チップは、図2に示されるデータ処理装置210内に配置されてもよく、図2の構築モジュール212の作業の全部もしくは一部を完了する(たとえば、スーパーネットワーク201を構築する)ように構成され、または、トレーニング・モジュール213の作業の全部もしくは一部を完了する(たとえば、スーパーネットワーク201をトレーニングする)ように構成されてもよく、または探索モジュール215の作業の全部もしくは一部を完了する(たとえば、ターゲット・ニューラル・ネットワーク203を探索する)ように構成されてもよく、または評価結果取得モジュール214の作業の全部もしくは一部を完了する(たとえば、前記一つまたは複数の評価メトリックに基づいて、探索されたニューラル・ネットワークを評価する)ように構成されてもよい。
ニューラル・ネットワーク処理ユニットNPU 300は、コプロセッサのはたらきをし、ホスト中央処理ユニット(central processing unit、CPU)(ホストCPU)上に配置されてもよい。ホストCPUはタスクを割り当てる。NPU 300のコア部分は、動作回路303であり、コントローラ304は、動作回路303を制御して、メモリ(重みメモリまたは入力メモリ)内のデータを抽出し、演算を実行する。
いくつかの実装では、動作回路303は、複数の処理ユニット(プロセス・エンジン、PE)を内部的に含む。いくつかの実装では、動作回路303は、二次元シストリックアレイである。あるいはまた、動作回路303は、一次元シストリックアレイまたは乗算および加算のような数学的演算を実行できる別の電子回路であってもよい。いくつかの実装では、動作回路303は、汎用マトリクスプロセッサである。
たとえば、入力行列A、重み行列B、出力行列Cがあるとする。動作回路303は、重みメモリ302から、行列Bに対応するデータを取り出し、動作回路303の各PE内に該データをバッファする。動作回路303は、アキュムレータ(accumulator)308に、入力メモリ301から取り出された行列Aと行列Bのデータに対して行列演算を行うことにより得られる行列結果または最終行列結果の一部を格納する。
ベクトル計算ユニット307は、動作回路303の出力に対して、ベクトル乗算、ベクトル加算、指数演算、対数演算、または値比較などのさらなる処理を実行することができる。たとえば、ベクトル計算ユニット307は、ニューラル・ネットワークの非畳み込み/非FC層において、プーリング(pooling)、バッチ正規化(batch normalization)、またはローカル応答正規化(local response normalization)などのネットワーク計算を実行するように構成されてもよい。
いくつかの実装では、ベクトル計算ユニット307は、処理された出力ベクトルを統一メモリ306に記憶することができる。たとえば、ベクトル計算ユニット307は、非線形関数を動作回路303の出力に適用してもよい。たとえば、非線形関数は、累積された値のベクトルに適用され、活性化値を生成する。
いくつかの実装では、ベクトル計算ユニット307は、正規化された値、組み合わされた値、またはその両方を生成する。
いくつかの実装では、処理された出力ベクトルは、動作回路303への活性化入力として使用されることができ、たとえば、処理された出力ベクトルは、ニューラル・ネットワークの後続の層で使用されることができる。
統一メモリ306は、入力データおよび出力データを記憶するように構成される。重みデータについては、記憶ユニット・アクセス・コントローラ(direct memory access controller[直接メモリ・アクセス・コントローラ]、DMAC)305は、外部メモリ内の入力データを入力メモリ301および/または統一メモリ306に転送し、外部メモリ内の重みデータを重みメモリ302に記憶し、統一メモリ306内のデータを外部メモリに記憶する。
バス・インターフェース・ユニット(bus interface unit、BIU)310は、バスを通じて、ホストCPU、DMAC、および命令フェッチ・バッファ309の間の対話を実装するように構成される。
コントローラ304に接続された命令フェッチ・バッファ(instruction fetch buffer)309は、コントローラ304によって使用される命令を記憶するように構成される。コントローラ304は、命令フェッチ・バッファ309内にバッファされた命令を呼び出し、動作アクセラレータの作業プロセスを制御するように構成される。
一般に、統一メモリ306、入力メモリ301、重みメモリ302、および命令フェッチ・バッファ309はそれぞれ、オンチップ(On-Chip)メモリである。前記外部メモリはNPUの外部のメモリである。外部メモリは、二重データレート同期ダイナミックランダムアクセスメモリ(double data rate synchronous dynamic random access memory、DDR SDRAM)、高帯域幅メモリ(high bandwidth memory、HBM)、または他の読み取り可能で書き込み可能なメモリであってもよい。
現在、従来技術におけるニューラル・ネットワーク探索方法では、ソース・ニューラル・ネットワークを圧縮し、ターゲット・ニューラル・ネットワークのネットワーク構造情報を得るために、ニューラル・ネットワーク・モデルは一般に、毎秒浮動小数点演算(floating-point operations per second、FLOPS)に基づいて探索される。FLOPSは、通例、ハードウェア・プラットフォームの実行効率を推定するために使用される。しかしながら、異なるハードウェア・プラットフォームは、異なる演算子について異なる実装および最適化を有する。よって、FLOPSは実際の時間オーバーヘッド(すなわち、時間消費)を常に反映することはできない。
たとえば、演算子Aと演算子Bは、同じ機能を実装できるものとする。言い換えると、ニューラル・ネットワークは、演算子Aを用いて演算を実行してもよく、あるいは演算子Bを用いて演算を実行してもよい。演算子Aは1×1畳み込みアルゴリズムであり、1000万回の乗算を含み、演算子Bは3×3畳み込みアルゴリズムであり、1500万回の乗算を含むとする。演算子AのFLOPSは、演算子BのFLOPSよりも小さく、演算子Aによって消費される時間は、一般に、演算子Bによって消費される時間よりも短いと推定される。
実際の応用では、次の場合が存在しうる:演算子Aまたは演算子Bがハードウェア・プラットフォーム1上で動作するとき、演算子Aは実際に2μsを消費し、演算子Bは実際に3μsを消費する。この場合、ニューラル・ネットワークがハードウェア・プラットフォーム1上に配備される場合、主に時間消費を考慮するならば、演算子Aを使用することが好ましい。演算子Aまたは演算子Bがハードウェア・プラットフォーム2上で動作する場合、ハードウェア・プラットフォーム2は演算子Bに対して特定の最適化を行うため、演算子Bが消費する実際の時間は1.5μsであるが、演算子Aが消費する実際の時間はなお2μsである。この場合、ニューラル・ネットワークがハードウェア・プラットフォーム2上に配備される場合、主に時間消費を考慮するならば、演算子Bを使用することが好ましい。
よって、ニューラル・ネットワーク・モデルをFLOPSに基づいて探索する場合、ターゲット・ハードウェア・プラットフォーム上のターゲット・ニューラル・ネットワークの得られた評価結果(たとえば、時間オーバーヘッドの評価結果)は、ターゲット・ハードウェア・プラットフォーム上のソース・ニューラル・ネットワークの評価結果よりも必ずしも良好ではない。
これに鑑み、本願のある実施形態は、ニューラル・ネットワークのための適応的探索方法を提供する。ニューラル・ネットワークの適応的探索が、ソース・ニューラル・ネットワークから拡張されたスーパーネットワーク上で、ターゲット・ハードウェア・プラットフォームの評価メトリックに基づいて実行されうる。それにより、ターゲット・ハードウェア・プラットフォームに適応するターゲット・ニューラル・ネットワークが高い探索柔軟性を前提として見出されることができ、ターゲット・ハードウェア・プラットフォーム上で実行される見出されたターゲット・ニューラル・ネットワークの評価結果は、ターゲット・ハードウェア・プラットフォーム上で実行されるソース・ニューラル・ネットワークの評価結果よりもよい。
以下は、添付の図面を参照しながら、本願のこの実施形態におけるニューラル・ネットワークの適応的探索方法を詳細に説明する。本願のこの実施形態におけるニューラル・ネットワークの適応的探索方法は、図1のデータ処理装置または図2のデータ処理装置210のような装置によって実行されてもよい。
図4は、本願のある実施形態による、ニューラル・ネットワークの適応的探索方法の概略フローチャートである。この方法は、S101~S103を含んでいてもよい。
S101:探索条件セットを受領する。
上述したように、端末装置のハードウェア・プラットフォーム上で動作する(または担持される)ニューラル・ネットワーク(すなわち、ソース・ニューラル・ネットワーク)が最適化される必要がある、またはニューラル・ネットワーク(すなわち、ソース・ニューラル・ネットワーク)が動作する(または担持される)、端末装置のハードウェア・プラットフォームが別のハードウェア・プラットフォームで置き換えられる場合、ソース・ニューラル・ネットワークのネットワーク構造が、ターゲット・ハードウェア・プラットフォームに基づいて最適化される必要がある。一般に、ソース・ニューラル・ネットワークをスーパーネットワークに拡張するために、まず、ソース・ニューラル・ネットワークのネットワーク構造情報に基づいて、水平拡張および/または垂直拡張が実行される。次いで、一つまたは複数の評価メトリックに基づいて、ターゲット・ハードウェア・プラットフォームに適したニューラル・ネットワークが、スーパーネットワークから、ターゲット・ニューラル・ネットワークとして探索される。ターゲット・ニューラル・ネットワークは、ターゲット・ハードウェア・プラットフォーム上で実行されてもよいし、または担持されてもよい。さらに、ターゲット・ハードウェア・プラットフォーム上でのターゲット・ニューラル・ネットワークの評価結果は、ターゲット・ハードウェア・プラットフォーム上で実行されるソース・ニューラル・ネットワークの評価結果よりも良好である。
まず、ユーザーは、探索条件セットを入力する必要があり、探索条件セットは、ターゲット・ハードウェア・プラットフォーム情報、ソース・ニューラル・ネットワークのネットワーク構造情報、および前記一つまたは複数の評価メトリックを含む。
たとえば、ターゲット・ハードウェア・プラットフォーム情報は、ターゲット・ハードウェア・プラットフォームの属性、ターゲット・ハードウェア・プラットフォームのモデル、ターゲット・ハードウェア・プラットフォームの製造者、およびターゲット・ハードウェア・プラットフォームの実行されるべきタスクなどの情報を含んでいてもよい。このようにして、ターゲット・ハードウェア・プラットフォーム情報に基づいて、現在のターゲット・ハードウェア・プラットフォームにより適したターゲット・ニューラル・ネットワークを見つけることができる。同じ属性であるが異なる製造者を有するハードウェア・プラットフォーム、同じ製造者であるが異なる属性を有するハードウェア・プラットフォーム計、または同じ属性であるが異なるモデルを有するハードウェア・プラットフォームのハードウェア設計は異なる可能性があり、同じ演算子または同じ演算子セットを実行することの利点および欠点も異なる可能性がある。よって、異なるハードウェア・プラットフォームが、探索プロセスにおいて考慮される必要がある。さらに、ターゲット・ハードウェア・プラットフォーム上で実行されるターゲット・ニューラル・ネットワークに対応するタスクが異なる場合、異なる評価メトリックが考慮されてもよい。よって、探索プロセスにおいて、ハードウェア・プラットフォーム上で実行されるターゲット・ニューラル・ネットワークに対応するタスクも考慮される必要がある。たとえば、画像検出(detection)タスクは、画像内のオブジェクトを検出し、ボックス内の該オブジェクトの位置を選択することである。画像セグメンテーション(segmentation)タスクは、検出タスクに基づいてバウンディングボックスを洗練し、精密な境界を用いて、認識されたオブジェクトと画像をセグメンテーションすることである。画像セグメンテーション・タスクの精度評価メトリックは、画像検出タスクの精度評価メトリックよりも高いことが明らかである。
端末装置のハードウェア・プラットフォーム上のニューラル・ネットワークが最適化されるシナリオにおいては、ハードウェア・プラットフォームがターゲット・ハードウェア・プラットフォームであることが理解されうる。端末装置のハードウェア・プラットフォームが交換されるシナリオでは、交換後のハードウェア・プラットフォームがターゲット・ハードウェア・プラットフォームとなる。
ソース・ニューラル・ネットワークのネットワーク構造情報は、ソース・ニューラル・ネットワークを表現するために使用される。たとえば、ソース・ニューラル・ネットワークのネットワーク構造情報は、ソース・ニューラル・ネットワークに含まれる第1演算子セットを含んでいてもよい。各第1演算子セットは、一つまたは複数の演算子を含むことができる。本願のこの実施形態におけるソース・ニューラル・ネットワークは、畳み込みニューラル・ネットワーク(convolutional neural network、CNN)、リカレントニューラル・ネットワーク(recurrent neural network、RNN)、パーセプトロン(perceptron)、フィードフォワードニューラル・ネットワーク(feedforward neural network、FNN)、深層信頼ネットワーク(deep belief network、DBN)、生成的敵対ネットワーク(generative adversarial network、GAN)などであり得る。
ソース・ニューラル・ネットワークのネットワーク構造情報が、ソース・ニューラル・ネットワークが畳み込みニューラル・ネットワークである例を用いて記述される。
図5の(a)は、畳み込みニューラル・ネットワークのネットワーク構造の概略図である。一般に、畳み込みニューラル・ネットワークは、入力層、隠れ層、および出力層を含む。畳み込みニューラル・ネットワークの隠れ層は、一つまたは複数の畳み込み層(convolutional layer)、一つまたは複数のプーリング層(pooling layer)、および一つまたは複数の全結合層(fully-connected layer)を含む。一般に、前記一つまたは複数の畳み込み層の後に、1つのプーリング層が続く。図5の(a)に示されるように、たとえば、1つの畳み込み層は、一つまたは複数の畳み込み演算子を含んでいてもよい。1つの畳み込み演算子は、1つの第1演算子セットに対応してもよく、または複数の畳み込み演算子が1つの第1演算子セットに対応してもよい。1つのプーリング層は、一つまたは複数のプーリング演算子を含んでいてもよく、一つまたは複数の第1演算子セットに対応してもよい。1つの全結合層は、一つまたは複数の全結合層演算子を含んでいてもよく、一つまたは複数の第1演算子セットに対応しうる。
別の例として、図5の(b)に示されるように、1つの畳み込み層および1つのプーリング層に含まれる複数の演算子は、1つの第1演算子セットを構成しうる。たとえば、ソース・ニューラル・ネットワークの各層が第1演算子セットに対応し、1つの演算子セットが1つの第1演算子セットを含む場合、ソース・ニューラル・ネットワークのネットワーク構造は、入力層、隠れ層、および出力層を含む、図6の(a)に示されるネットワーク構造として表されてもよい。隠れ層の各レベルは、単一の第1演算子を含む1つの第1演算子セットに対応する。別の例では、ソース・ニューラル・ネットワーク内の複数のレベルが1つの第1演算子セットに対応する場合、ソース・ニューラル・ネットワークのネットワーク構造は、入力層、隠れ層、および出力層を含む、図6の(b)に示されるネットワーク構造として表されてもよい。隠れ層は、2つのブロック構造(複数の演算子の組み合わせ)を含む。各ブロック構造は、1つの畳み込み層の3つの畳み込み演算子と1つのプーリング層の総和演算子を含む。
評価メトリックは、ニューラル・ネットワーク・モデルを探索するプロセスにおいて、ターゲット・ニューラル・ネットワークが有する必要があるネットワーク性能に対する要件を含んでいてもよい。前記一つまたは複数の評価メトリックは、ニューラル・ネットワーク・モデルの精度評価メトリック、ニューラル・ネットワーク・モデルの時間オーバーヘッド評価メトリック、ニューラル・ネットワーク・モデルの記憶スペース評価メトリック、ニューラル・ネットワーク・モデルの電力消費評価メトリック、ニューラル・ネットワーク・モデルのテンソル計算ユニットの利用率評価メトリック、およびニューラル・ネットワーク・モデルのメモリ読み出し/書き込み速度評価メトリックのうちの一つまたは複数を含む。
ニューラル・ネットワーク・モデルの精度評価メトリックは、ターゲット・ニューラル・ネットワークの精度が精度閾値以上であることを含んでいる。ニューラル・ネットワーク・モデルの時間オーバーヘッド評価メトリックは、ターゲット・ニューラル・ネットワークの時間オーバーヘッドが時間オーバーヘッド閾値を超えないことを含む。ニューラル・ネットワーク・モデルの記憶スペース評価メトリックは、ターゲット・ニューラル・ネットワークによって占有される記憶スペースが記憶スペース閾値を超えないことを含む。ニューラル・ネットワーク・モデルの電力消費評価メトリックは、ターゲット・ニューラル・ネットワークの電力消費が電力消費閾値を超えないことを含む。ニューラル・ネットワーク・モデルのテンソル計算ユニットの利用率評価メトリックは、ター下とニューラル・ネットワークのテンソル計算ユニットの利用率がテンソル計算ユニットの利用率閾値以上であることを含む。ニューラル・ネットワーク・モデルのメモリ読み出し/書き込み速度評価メトリックは、ターゲット・ニューラル・ネットワークのメモリ読み出し/書き込み速度がメモリ読み出し/書き込み速度閾値以上であることを含む。
前記一つまたは複数の評価メトリックは、異なるユーザー要件、異なる適用シナリオ、または異なるタスクなどの要因に基づいて設定されてもよいことに留意されたい。
たとえば、見出されたターゲット・ニューラル・ネットワークの精度が、ソース・ニューラル・ネットワークの精度を下回らないこと、またはソース・ニューラル・ネットワークの精度のある区間を下回らないこと(たとえば、ソース・ニューラル・ネットワークの精度の99%を下回らないこと)を保証するために、精度閾値が設定されてもよい。
別の例では、見出されるターゲット・ニューラル・ネットワークの処理速度を増加させるために、時間オーバーヘッド閾値がターゲット・ニューラル・ネットワークの時間オーバーヘッド閾値未満に設定されてもよい。一般に、ターゲット・ニューラル・ネットワークのより小さな時間オーバーヘッドは、ターゲット・ニューラル・ネットワークのより速い処理速度を示す。たとえば、時間オーバーヘッド閾値は、ソース・ニューラル・ネットワークの時間オーバーヘッドのある区間内(たとえば、ソース・ニューラル・ネットワークの時間オーバーヘッドの80%以内)に設定されてもよい。
たとえば、にぎわいのある道路セクションのモニターにおける画像処理モジュールによって単位時間当たりに収集される監視画像は、大量の情報を含み、大量の操作が実行される必要がある。この場合、画像処理モジュール上で担持されるニューラル・ネットワークは、画像をより迅速に処理するために、より低い時間オーバーヘッドを有する必要がある。このようにして、見出されるターゲット・ニューラル・ネットワークが大量の監視画像をより迅速に処理することができるよう、小さな時間オーバーヘッド閾値が設定される必要がある。別の例では、人口の少ない郊外地域におけるモニターにおける画像処理モジュールによって単位時間当たりに収集される監視画像は、少量の情報を含み、少量の操作が実行される。この場合、画像処理モジュール上で担持されるニューラル・ネットワークは、より高い時間オーバーヘッドを有することが許容され、時間オーバーヘッド閾値は、より高いように設定されうる。
別の例では、見出されるターゲット・ニューラル・ネットワークが過度に大きな記憶スペースを占有し、ターゲット・ハードウェア・プラットフォームに記憶されることができないケースを避けるために、ターゲット・ハードウェア・プラットフォームの記憶スペース・サイズに基づいて記憶スペース閾値が設定されてもよい。あるいはまた、ターゲット・ニューラル・ネットワークがターゲット・ハードウェア・プラットフォーム上で動作するときに生じる電力消費を低減し、ターゲット・ハードウェア・プラットフォームを動作させるための全体的な電力消費要件を満たすために、ターゲット・ハードウェア・プラットフォームの電力消費要件に基づいて電力消費閾値が設定されてもよい。代替的に、テンソル計算ユニットの利用率閾値とメモリ読み出し/書き込み速度閾値が、見出されるターゲット・ニューラル・ネットワークとターゲット・ハードウェア・プラットフォームとの間の整合の度合いを測定するために使用される。ターゲット・ハードウェア・プラットフォーム上の見出されるターゲット・ニューラル・ネットワークのテンソル計算ユニットのより高い利用率は、見出されるターゲット・ニューラル・ネットワークとターゲット・ハードウェア・プラットフォームとの間のより高い度合いの整合と、より速い全体的な処理速度とを示す。たとえば、画像処理中に、ターゲット・ハードウェア・プラットフォーム上の見出されるターゲット・ニューラル・ネットワークのテンソル計算ユニットのより高い利用率は、より高速な画像処理速度を示す。
別の例では、代替的に、2つ以上の評価メトリックが同時に設定されてもよい。たとえば、精度閾値と時間オーバーヘッド閾値が同時に設定されてもよい。たとえば、いくつかのシナリオでは、大量の画像の認識結果を短時間で得る必要があるが、画像認識精度に対する要求は高くない。この場合、見出されるターゲット・ニューラル・ネットワークの認識速度がソース・ニューラル・ネットワークの認識速度よりも速くなるように、小さな精度閾値および小さな時間オーバーヘッド閾値が設定されてもよい。
S102:トレーニング・データセットに基づいて、トレーニングされるべきスーパーネットワーク上でトレーニング・プロセスを実行し、トレーニングされたスーパーネットワークが得られる。ここで、トレーニングされるべきスーパーネットワークは、ソース・ニューラル・ネットワークのネットワーク構造を拡張することによって得られる。
たとえば、トレーニングされるべきスーパーネットワークは、ソース・ニューラル・ネットワークのネットワーク構造、知識ベースにおける拡張規則、およびターゲット・ハードウェア・プラットフォーム情報に基づいて、水平拡張モードおよび/または垂直拡張モードで構築される。知識ベースにおける拡張規則は、異なるハードウェア・プラットフォームに基づくソース・ニューラル・ネットワークにおける第1演算子セットと派生第2演算子セットとの間に異なる対応があることを含む。第1演算子セットおよび対応する派生第2演算子セットは、同じまたは類似の機能を有することが理解されうる。
具体的には、知識ベースにおける拡張規則に基づいて、ソース・ニューラル・ネットワークに含まれる各第1演算子セットに対応し、ターゲット・ハードウェア・プラットフォーム上で動作する(または担持される)派生第2演算子セットが見出される。たとえば、スーパーネットワークが知識ベースに基づいて拡張される場合、ソース・ニューラル・ネットワーク内の第1演算子セットの一部を保持するか、ソース・ニューラル・ネットワーク内の第1演算子セットの一部を第2演算子セットで置き換えるか、または第1演算子セットの一部に対応するレベルをスキップする(skip)するかを決定することができる。
たとえば、ソース・ニューラル・ネットワークは、3つの隣接したレベルを含み、各レベルは、3×3畳み込み演算子を含む1つの第1演算子セットを含むとする。換言すれば、該3つのレベルは、3×3畳み込み演算子+3×3畳み込み演算子+3×3畳み込み演算子として表されうる。ターゲット・ハードウェア・プラットフォーム上で、5×5畳み込み演算子が3×3畳み込み演算子と同じまたは類似の機能を実装できる場合、3つの隣接するレベルの3×3畳み込み演算子の一部が5×5畳み込み演算子で置き換えられ、3×3畳み込み演算子の一部がスキップで置き換えられてもよい。このようにして、3つのレベルの全体的な時間オーバーヘッドが低減され、交換後の演算子セットが、ソース・ニューラル・ネットワークにおける対応する第1演算子セットと同じタスクを完了できることも保証される。たとえば、派生第2演算子セットは、スキップ+3×3畳み込み演算子+5×5畳み込み演算子であってもよい。換言すれば、知識ベースにおいて、3×3畳み込み演算子は、ターゲット・ハードウェア・プラットフォームに基づく5×5畳み込み演算子に対応しうる。この場合、ソース・ニューラル・ネットワークのスーパーネットワークが構築される場合、ソース・ニューラル・ネットワークにおける3×3畳み込み演算子が5×5畳み込み演算子で置き換えられてもよい。
別の例では、ソース・ニューラル・ネットワークは、第1演算子セット(A+B+C)を含み、ここで、A、B、およびCは異なる演算子である。従来技術から、3つの演算子セット(A1+B1+C1)、(A2+B2+C2)、(A3+B3+C3)はすべて(A+B+C)と同じまたは類似した機能をもつことがわかる。しかしながら、専門家の事前知識に基づいて、ターゲット・ハードウェア・プラットフォーム上での(A3+B3+C3)の実装効果は劣ることがわかった。よって、知識ベースが確立されると、第1演算子セット(A+B+C)と第2演算子セット(A3+B3+C3)の間の対応は、ターゲット・ハードウェア・プラットフォーム上で確立されない。よって、ソース・ニューラル・ネットワークのスーパーネットワークが構築されるとき、第1演算子セット(A+B+C)は、知識ベースに基づいて第2演算子セット(A1+B1+C1)および第2演算子セット(A2+B2+C2)に置き換えられてもよい。
知識ベースにおける拡張規則は、水平拡張および/または垂直拡張を含むことに注意する必要がある。水平拡張は、第1演算子セットのレベルは、対応する派生第2演算子セットのレベルと同じであるが、第1演算子セットは、複数の派生第2演算子セットに対応すると理解されうる。たとえば、図7の(a)に示されるように、7×7畳み込み演算子を含む第1演算子セットは、現在レベルでの2つの派生第2演算子セットに対応してもよく、ここが、該2つの派生第2演算子セットは、それぞれ3×3畳み込み演算子と5×5畳み込み演算子を含む。この場合、対応するレベルの配置態様は、図7の(b)に示される。垂直拡張は、スーパーネットワークが構築されるとき、ソース・ニューラル・ネットワーク内のレベルの一部に対して実行される垂直拡張として理解されてもよい。たとえば、ソース・ニューラル・ネットワークにおける4つの隣接するレベルに含まれる第1演算子セットは、3×3畳み込み演算子(64チャネル)+3×3畳み込み演算子(64チャネル)+3×3畳み込み演算子(128チャネル)+3×3畳み込み演算子(128チャネル)である。同じ畳み込みカーネル・サイズだが、異なるチャネル数をもつ演算子セットは直接置き換えることができないため、ソース・ニューラル・ネットワークは、スーパーネットワークを構築するために、全体的な時間オーバーヘッドを低減するよう、垂直に拡張されてもよい。たとえば、前述の4つの隣接するレベルにおける演算子セットは、6つの隣接するレベルにおける演算子セットに垂直に拡張され、たとえば、3×3畳み込み演算子(64チャネル)+3×3畳み込み演算子(64チャネル)+3×3畳み込み演算子(128チャネル)+3×3畳み込み演算子(128チャネル)+3×3畳み込み演算子(128チャネル)に垂直に拡張される。この場合、対応する派生第2演算子セットは、3×3畳み込み演算子(64チャネル)+3×3畳み込み演算子(64チャネル)+3×3畳み込み演算子(64チャネル)+3×3畳み込み演算子(128チャネル)+スキップ+スキップを含んでいてもよい。
以下は、従来技術における拡張方法と本発明の実施形態において提供される方法との違いを説明するために、ソース・ニューラル・ネットワークをスーパーネットワークに拡張する2つの例を与える。
例1:ソース・ニューラル・ネットワークは、小さな粒度で演算子(たとえば、畳み込み演算子、プーリング演算子、および活性化関数)を含むチェーン・ニューラル・ネットワークである。換言すれば、ソース・ニューラル・ネットワークに含まれる第1演算子セットは、1つの第1演算子のみを含む。
図7の(a)は、ソース・ニューラル・ネットワークの構造の一例を示す。ソース・ニューラル・ネットワークの構造情報は、複数の第1演算子セットを含み、第1演算子セットは、それぞれ、7×7畳み込み演算子、プーリング層演算子、3×3畳み込み演算子、PReLU活性化関数などである。
図7の(b)は、従来技術を用いて構築されたスーパーネットワークを示す。第1演算子セットと同一または類似の機能を有するすべての第2演算子セットは、第1演算子セットの位置に対応する第3演算子セットに追加されることがわかる。たとえば、ソース・ニューラル・ネットワークにおける7×7畳み込み演算子は、3×3畳み込み演算子、7×7畳み込み演算子、および5×5畳み込み演算子で置き換えられる。ソース・ニューラル・ネットワークにおける3×3畳み込み演算子は、1×1畳み込み演算子、3×3畳み込み演算子、および5×5畳み込み演算子で置き換えられる。ソース・ニューラル・ネットワークにおけるPReLU活性化関数は、PReLU活性化層およびReLU活性化層で置き換えられる。このように、スーパーネットワークに基づいてニューラル・ネットワークが探索されるとき、ニューラル・ネットワークの探索空間サイズは3×3×2=18となる。
図7の(c)は、本願の実施形態において提供される方法を使用して構築されたスーパーネットワークを示し、具体的には、ターゲット・ハードウェア・プラットフォームに適用可能な演算子セットは、知識ベースに基づいて決定される。たとえば、ソース・ニューラル・ネットワークにおける7×7畳み込み演算子に対応する3×3畳み込み演算子および5×5畳み込み演算子が、知識ベースにおいて、ターゲット・ハードウェア・プラットフォームに対して貧弱な実行効果を有すると判断される場合、7×7畳み込み演算子に対応する第3演算子セットは、7×7畳み込み演算子のみを含む。別の例として、ソース・ニューラル・ネットワークにおけるPReLU活性化関数が、知識ベースにおいて、ターゲット・ハードウェア・プラットフォームに対して貧弱な実行効果を有すると判定された場合、PReLU活性化関数に対応する第3演算子セットは、ReLU活性化層のみを含む。この場合、ソース・ニューラル・ネットワークに基づいてスーパーネットワークが構築されるとき、図7の(c)に示されるスーパーネットワークが構築される。スーパーネットワークに基づいてニューラル・ネットワークを探索する場合、ニューラル・ネットワークの探索空間サイズは1×3×1=3となる。
本願のこの実施形態では、ターゲット・ハードウェア・プラットフォームに適さない派生演算子セットは、知識ベースを使用することによって除外されうることがわかる。これにより、スーパーネットワークのスケールを縮小し、スーパーネットワークのトレーニング・プロセスを加速することを助ける。さらに、スーパーネットワークのスケールが縮小され、ターゲット・ニューラル・ネットワークの探索範囲が小さいため、探索プロセスをさらに短縮することができ、ターゲット・ニューラル・ネットワークを見出すのがより速くできる。
例2:ソース・ニューラル・ネットワークは、大きな粒度でブロック構造を含むチェーン・ニューラル・ネットワークである。換言すれば、第1演算子セットは、一つまたは複数のブロック構造を含み、各ブロック構造は、複数の演算子を含む。
図8の(a)は、ソース・ニューラル・ネットワークの構造の例を示す。ソース・ニューラル・ネットワークは、複数の第1演算子セットを含む。各第1演算子セットは、1×1畳み込み演算子、3×3畳み込み演算子、1×1畳み込み演算子、およびジョイント演算のための総和演算子を含むブロック構造であり、ブロック構造1として表記される。
図8の(b)は、本願の実施形態において提供される方法を用いて構築されたスーパーネットワークを示す。たとえば、知識ベースに基づいて、ソース・ニューラル・ネットワークのブロック構造1は、ブロック構造2(たとえば、1×1畳み込み演算子、5×5畳み込み演算子、1×1畳み込み演算子、ジョイント演算のための総和演算子を含むブロック構造)およびブロック構造3(たとえば、1×1畳み込み演算子、7×7畳み込み演算子、1×1畳み込み演算子、ジョイント演算のための総和演算子を含むブロック構造)と同じまたは類似した機能を有し、ターゲット・ハードウェアプラットフォームに適用可能であると判断される。この場合、ソース・ニューラル・ネットワークに基づいてスーパーネットワークが構築されるとき、ブロック構造1はブロック構造2およびブロック構造3で置き換えられてもよく、またはブロック構造1は保持されてもよく、換言すれば、図8の(b)に示すスーパーネットワークが構築される。
図9は、ソース・ニューラル・ネットワークおよびターゲット・ハードウェア・プラットフォームに基づいて拡張されたスーパーネットワークの一例を示す図である。拡張されたスーパーネットワークは、ソース・ニューラル・ネットワークと同じ機能を実現することができる。しかしながら、この場合、内部パラメータが調整されないため、精度が低いことがあり、ユーザー要求を満たすことができない。よって、拡張されたスーパーネットワークは、トレーニングされるべきスーパーネットワークである。さらに、トレーニングされるべきスーパーネットワークは、トレーニングされたスーパーネットワークを得るために、トレーニング・データセットを使用することによってトレーニングされてもよい。このように、トレーニングされたスーパーネットワークの精度は精度閾に近く、トレーニングされたスーパーネットワークは、その後、ターゲット・ニューラル・ネットワークを探索するための基礎として使用される。
いくつかの例では、トレーニング・データセットが得られた場合、トレーニング・データセットのデータ読み取り態様、たとえば、配置態様およびトレーニング・データセットに含まれる画像の読み取り方法がさらに得られる必要がある。他のいくつかの例では、スーパーネットワークをトレーニングするプロセスにおいて必要とされる、指定されたハイパーパラメータ値、たとえば、トレーニング・プロセスにおいてスーパーネットワークをトレーニングするための、事前設定された逐次反復的なトレーニング回数、トレーニング継続時間、またはターゲット精度閾値をさらに得る必要がある。さらに他のいくつかの例では、トレーニングされたスーパーネットワーク内のターゲット・ニューラル・ネットワークを探索するプロセスにおいて必要とされる指定されたハイパーパラメータ値、たとえば、必要とされる逐次反復回数、または探索プロセスにおいて得られる必要のあるサブネット数をさらに得る必要がある。
以下は、本願の実施形態において提供されるスーパーネットワークをトレーニングするための2つの方法を詳細に説明する。
方法1:加重平均方法を用いてスーパーネットワークがトレーニングされる。
いくつかの例では、図9に示される拡張されたスーパーネットワークは、4つの第3演算子セット、すなわち第3演算子セット1ないし第3演算子セット4を含む。言い換えると、1つの破線ボックスに含まれるすべての演算子セットは、1つの第3演算子セットを構成する。第3演算子セット1は、1つの第1演算子セット1と2つの第2演算子セット(第2演算子セット1と第2演算子セット2)を含む。第1演算子セット1、第2演算子セット1、および第2演算子セット2についての重みがそれぞれ設定され、3つの演算子セットの重みの和は1である。いくつかの例では、第1演算子セット1、第2演算子セット1、および第2演算子セット2の重みは、同じであるように、たとえば、約0.33に設定されてもよい。類推により、別の第3演算子セットにおける第1演算子セットおよび/または第2演算子セットの重みが設定される。
次いで、トレーニング・データセットは拡張されたスーパーネットワークに入力されて、該スーパーネットワークをトレーニングする。たとえば、トレーニング・データセットは第3演算子セット1に入力され、第3演算子セット1に含まれるすべての演算子セットはトレーニング・データセットの計算に参加し、第3演算子セット1に含まれるすべての演算子セットの計算結果に対して重み付け平均が実行された後に、第3演算子セット1によって出力される特徴マップが得られる。計算後に第3演算子セット1によって出力される特徴マップは、第3演算子セット2に入力され、第3演算子セット2に含まれるすべての演算子セットに対して重み付け平均計算が継続して実行される。類推により、最後の第3演算子セットの計算結果が得られた後、最終的な特徴マップが出力される。
次いで、最終的な特徴マップが損失関数に入力され、再び、拡張されたスーパーネットワークに対して逐次反復的なトレーニングが実行される。逐次反復的なトレーニング・プロセスでは、拡張されたスーパーネットワークの内部パラメータが調整される。
最後に、スーパーネットワークをトレーニングするための逐次反復的なトレーニング回数、トレーニング継続時間、またはターゲット精度閾値が要件を満たした後、トレーニングが停止される。この場合、スーパーネットワークは、トレーニングされたスーパーネットワークであり、トレーニングされたスーパーネットワークにおいてターゲット・ニューラル・ネットワークを探索するプロセスが実行されてもよい。
方法2:スーパーネットワークは、ワンホット・サンプリング方法を用いてトレーニングされる。
いくつかの例では、トレーニングされるべきサブネットを構成するために、ワンホット・サンプリング方法を使用することによって、拡張されたスーパーネットワークにおける各第3演算子セットから、第1演算子セットまたは派生第2演算子セットが得られる。トレーニング・データセットは、トレーニングされるべきサブネットに入力され、該サブネットをトレーニングする。
たとえば、図9に示される拡張されたスーパーネットワークは、4つの第3演算子セット、すなわち第3演算子セット1ないし第3演算子セット4を含む。言い換えると、1つの破線ボックスに含まれるすべての演算子セットは、1つの第3演算子セットを構成する。第3演算子セット1は、1つの第1演算子セット1と2つの第2演算子セット(第2演算子セット1と第2演算子セット2)を含む。第3演算子セット2は、1つの第1演算子セット2と2つの第2演算子セット(第2演算子セット3と第2演算子セット4)を含む。たとえば、ワンホット・サンプリング方法は、第1演算子セット1を第3演算子セット1から抽出し、第2演算子セット3を第3演算子セット2から抽出するために使用される。トレーニング・データセットは、計算のために第3演算子セット1における第1演算子セット1に入力され、特徴マップが、計算のために第3演算子セット2における第2演算子セット3に出力される。類推により、最後の第3演算子セットの計算結果が得られた後、最終的な特徴マップが出力され、損失関数に入力される。さらに、逐次反復的なトレーニングはサブネット上で実行され、逐次反復的なトレーニング・プロセスでは、トレーニングされるべきサブネットの内部パラメータが調整される。
前述の方法によれば、ワンホット・サンプリング方法を使ってサンプリングが実行されるたびに、1つのトレーニングされるべきサブネットが、トレーニングのために得られてもよく、トレーニングされるべきサブネットの内部パラメータが調整されてもよい。
最後に、スーパーネットワークをトレーニングするための、事前設定された逐次反復的なトレーニング回数、トレーニング継続時間、またはターゲット精度閾値が要件を満たした後、トレーニングが停止される。この場合、スーパーネットワークは、トレーニングされたスーパーネットワークであり、ターゲット・ニューラル・ネットワークを探索するプロセスは、トレーニングされたスーパーネットワーク内で実行されてもよい。
なお、拡張されたスーパーネットワークは、トレーニングされたスーパーネットワークを得るために、上記の方法のいずれかを用いることによりトレーニングされうることに留意されたい。あるいはまた、拡張されたスーパーネットワークは、まず、方法1を使用してトレーニングされうる。次いで、方法2を用いて、拡張されたスーパーネットワークが保持されて、トレーニングされたスーパーネットワークを得る。
S103:前記一つまたは複数の評価メトリックに基づいて、トレーニングされたスーパーネットワーク上でサブネット探索プロセスを実行し、ターゲット・ニューラル・ネットワークのネットワーク構造情報を得る。ターゲット・ニューラル・ネットワークのネットワーク構造情報は、ターゲット・ニューラル・ネットワークを表現するために使用される。
いくつかの実施形態では、トレーニングされたスーパーネットワークが得られた後、前記一つまたは複数の評価メトリックに基づいて、ターゲット・ハードウェア・プラットフォーム上のトレーニングされたスーパーネットワークにおける第3演算子セット内の第1演算子セットおよび/または派生第2演算子セットの評価結果が、さらに得られる必要がある。1つの第1演算子セットまたは1つの派生第2演算子セットが、トレーニングされたスーパーネットワーク内の各第3演算子セットから抽出されて、評価されるべき候補サブネットを構成する。複数回の抽出を通じて、複数の評価されるべき候補サブネットが得られる。次いで、一つまたは複数のターゲット・ニューラル・ネットワークが、ターゲット・ハードウェア・プラットフォーム上の評価されるべき候補サブネットに含まれる第1演算子セットおよび/または派生第2演算子セットの、前記一つまたは複数の評価メトリックに基づく評価結果に基づいて決定される。ターゲット・ハードウェア・プラットフォーム上で前記一つまたは複数のターゲット・ニューラル・ネットワークが動作する場合、前記一つまたは複数の評価メトリックに基づく全体的な評価結果は、ソース・ニューラル・ネットワークがターゲット・ハードウェア・プラットフォーム上で動作するときに得られる全体的な評価結果よりもよい。
言い換えると、トレーニングされたスーパーネットワークが得られた後、ターゲット・ハードウェア・プラットフォーム、M個のニューラル・ネットワークのネットワーク構造、N個の評価メトリック、およびP個の評価結果の間の対応に関する情報が得られる。M、N、およびPはすべて正の整数であり、P=M×Nである。M個のニューラル・ネットワークはトレーニングされたスーパーネットワークから抽出されたサブネット、すなわち評価されるべき候補サブネットである。M個のニューラル・ネットワークのネットワーク構造がトレーニングされたスーパーネットワークのネットワーク構造に含まれていることは明らかである。このようにして、トレーニングされたスーパーネットワーク内の第3演算子セットにおける第1演算子セットおよび/または派生第2演算子セットに対応する評価結果(それぞれ、N個の評価メトリックに対応する評価結果)は、前述の対応を使用することによって決定されてもよく、評価されるべき候補サブネットの評価結果は、評価されるべき候補サブネットに含まれる第1演算子セットおよび/または派生第2演算子セットの評価結果を追加することによって得られてもよい。1つの候補サブネットがN個の評価メトリックに基づくN個の評価結果に対応し、M個の候補サブネットがN個の評価メトリックに基づくM×N個の評価結果、すなわちP個の評価結果に対応することは明らかである。次いで、一つまたは複数の候補サブネットがP個の評価結果に基づいてターゲット・ニューラル・ネットワークとして決定される。
たとえば、N個の評価メトリックがニューラル・ネットワーク・モデルの時間オーバーヘッド評価メトリックを含む場合(すなわち、N=1)、ニューラル・ネットワーク・モデルの時間オーバーヘッド評価メトリックは、ターゲット・ニューラル・ネットワークの時間オーバーヘッドが時間オーバーヘッド閾値より大きくないことを含む。
対応して、トレーニングされたスーパーネットワークに含まれるM個の候補サブネット上で、ニューラル・ネットワーク・モデルの時間オーバーヘッド評価メトリックに基づいてサブネット評価が実行される。まず、ターゲット・ハードウェア・プラットフォーム上のM個の候補サブネットに含まれる、実行中の第1演算子セットおよび/または派生第2演算子セットの時間オーバーヘッド、すなわち、時間オーバーヘッド・メトリックに基づく評価結果が得られる。次いで、ターゲット・ハードウェア・プラットフォーム上のM個の候補サブネット内の各候補サブネットを実行する時間オーバーヘッド、すなわち、時間オーバーヘッド・メトリックに基づく各候補サブネットの評価結果が、その候補サブネットのネットワーク構造に基づいて決定される。時間オーバーヘッド評価メトリックと、ターゲット・ハードウェア・プラットフォーム上でM個の候補サブネットを実行するための時間オーバーヘッドとに基づいて、M個の候補サブネットから、一つまたは複数の候補サブネットが、ターゲット・ニューラル・ネットワークとして決定される。ターゲット・ニューラル・ネットワークの時間オーバーヘッドは、時間オーバーヘッド閾値より大きくない。
ターゲット・ハードウェア・プラットフォーム上で各候補サブネットを実行するための時間オーバーヘッドは、ターゲット・ハードウェア・プラットフォーム上で、候補サブネットに含まれる第1演算子セットおよび/または派生第2演算子の組み合わせを実行するための時間オーバーヘッドの合計である。
別の例として、N個の評価メトリックが、ニューラル・ネットワーク・モデルの精度評価メトリックおよび時間オーバーヘッド評価メトリックを含む場合(すなわち、N=2)、ニューラル・ネットワーク・モデルの精度評価メトリックは、ターゲット・ニューラル・ネットワークの精度が精度閾値を下回らないことを含む。ニューラル・ネットワーク・モデルの時間オーバーヘッド評価メトリックは、ターゲット・ニューラル・ネットワークの時間オーバーヘッドが時間オーバーヘッド閾値より大きくないことを含む。
対応して、トレーニングされたスーパーネットワークに含まれるM個の候補サブネット上で、ニューラル・ネットワーク・モデルの精度評価メトリックと時間オーバーヘッド評価メトリックに基づいて、サブネット評価が実行される。まず、ターゲット・ハードウェア・プラットフォーム上で、M個の候補サブネットに含まれる第1演算子セットおよび/または派生第2演算子セットを実行することの精度および時間オーバーヘッド、すなわち、精度評価メトリックに基づく制度評価結果および時間オーバーヘッド・メトリックに基づく時間オーバーヘッド評価結果が得られる。次いで、ターゲット・ハードウェア・プラットフォーム上のM個の候補サブネット内の各候補サブネットを実行することの精度および時間オーバーヘッド、すなわち、精度評価メトリックに基づく各候補サブネットの精度評価結果と、時間オーバーヘッド・メトリックに基づく各候補サブネットの時間オーバーヘッド評価結果が、候補サブネットのネットワーク構造に基づいて決定される。精度評価メトリックと、時間オーバーヘッド評価メトリックと、ターゲット・ハードウェア・プラットフォーム上でM個の候補サブネットを実行する精度と、ターゲット・ハードウェア・プラットフォーム上でM個の候補サブネットを実行する時間オーバーヘッドとに基づいて、M個の候補サブネットから、一つまたは複数の候補サブネットが、ターゲット・ニューラル・ネットワークとして決定される。ターゲット・ニューラル・ネットワークの精度は精度閾値以上であり、時間オーバーヘッドは時間オーバーヘッド閾値以下である。
前述の説明では、前記一つまたは複数の評価メトリックに基づいて、ターゲット・ハードウェア・プラットフォーム上で各第1演算子セットまたは各派生第2演算子セットの評価結果を得るために、実際の測定方法または予測方法が使用されてもよい。
この実施形態のいくつかの例において、トレーニングされたスーパーネットワークは、ターゲット・ニューラル・ネットワークが配備される必要がある端末装置に送られてもよく、トレーニングされたスーパーネットワークは、端末装置のターゲット・ハードウェア・プラットフォーム上で動作し、ターゲット・ハードウェア・プラットフォーム上での各第1演算子セットおよび/または各派生第2演算子セットの評価結果を得る、すなわち、実際に測定された評価結果を得る。
たとえば、実際の測定中に、任意の1つの第1演算子セットまたは任意の1つの第2演算子セットが、トレーニングされたスーパーネットワーク内の各第3演算子セットから選択され、サブネットを構成してもよい。複数回の抽出を通して、トレーニングされたスーパーネットワークから複数のサブネットが抽出される。複数のサブネットは、ターゲット・ハードウェア・プラットフォーム上で別々に動作し、ターゲット・ハードウェア・プラットフォーム上での複数のサブネットの評価結果を得る。ターゲット・ハードウェア・プラットフォーム上の複数のサブネットおよび該複数のサブネットに含まれる第1演算子セットおよび/または第2演算子セットの評価結果に基づいて、ターゲット・ハードウェア・プラットフォーム上の第1演算子セットおよび第2演算子セットの評価結果が計算を通じて得られる。
この実施形態のいくつかの他の例では、トレーニングされたスーパーネットワーク内の第3演算子セット内の第1演算子セットおよび/または派生第2演算子セットは、評価結果予測モデルに入力されて(予測モデルは、データ処理装置上に配備されてもよく、または別の装置上に配備されてもよい)、第1演算子セットおよび/または派生第2演算子セットの評価結果を直接得てもよく、すなわち、予測された評価結果を得てもよい。予測モデルは、ターゲット・ハードウェア・プラットフォーム上での大量の演算子および/または演算子セットの評価結果に基づいて、トレーニングを通して確立されうる。予測モデルのトレーニング・プロセスについては、従来技術を参照されたい。本願のこの実施形態においては、詳細は記載されていない。
代替的に、前述のステップS102でトレーニングされるべきスーパーネットワークが得られた後、前記一つまたは複数の評価メトリックに基づいて、ターゲット・ハードウェア・プラットフォーム上での第1演算子セットおよび/または派生第2演算子セットの評価結果を得る前述のステップが実行されてもよいことに留意されたい。このようにして、スーパーネットワークがトレーニングされた後、ターゲット・ニューラル・ネットワークのネットワーク構造情報は、前記一つまたは複数の評価メトリックに基づく、ターゲット・ハードウェア・プラットフォーム上の第1演算子セットおよび/または派生第2演算子のセットの評価結果を直接使用することによって決定されうる。これは、ターゲット・ニューラル・ネットワークを探索するプロセスを加速するのに役立つ。換言すれば、前記一つまたは複数の評価メトリックに基づいてターゲット・ハードウェア・プラットフォーム上での第1演算子セットおよび/または派生第2演算子セットの評価結果を得る機会は、本願のこの実施形態において限定されない。
以下は、前記一つまたは複数の評価メトリックに基づいて、トレーニングされたスーパーネットワーク上でサブネット探索を実行するプロセスについて詳細に説明する。
図10は、本願のある実施形態による、ニューラル・ネットワークに対するさらに別の適応的探索方法の概略フローチャートである。この方法は:ソース・ニューラル・ネットワークのネットワーク構造情報、ターゲット・ハードウェア・プラットフォーム情報、一つまたは複数の評価メトリックなどを含む探索条件セットを受領することを含む。スーパーネットワークが構築され、ソース・ニューラル・ネットワークのネットワーク構造情報と知識ベースとに基づいてトレーニングされる。関連する内容については、前述の関連するステップの説明を参照されたい。詳細は、ここでは再度説明しない。
いくつかの実施形態では、トレーニングされたスーパーネットワーク上でサブネット探索を実行するプロセスにおいて、知識ベースは、ターゲット・ニューラル・ネットワークの探索範囲を狭めるために使用されてもよい。たとえば、まず、知識ベースに基づいて、候補サブネットの一部のネットワーク構造が、ターゲット・ハードウェア・プラットフォームに対して比較的良好な実装効果を有すると判別され、次いで、それらの候補サブネットが、前記一つまたは複数の評価メトリックに基づく評価のために選択され、それにより、候補サブネットの評価結果を得るための不必要な時間を節約する。
いくつかの他の実施形態では、前記一つまたは複数の評価メトリックに基づいて、トレーニングされたスーパーネットワーク上でサブネット探索を実行するプロセスにおいて、スーパーネットワークの全体的な構造または部分構造が、前記一つまたは複数の評価メトリックに基づいて評価されて評価結果が得られてもよく、前記評価結果に基づいて、トレーニングされたスーパーネットワークから一つまたは複数のサブネットが探索されて、該一つまたは複数のサブネットをターゲット・ニューラル・ネットワークとして決定してもよい。あるいはまた、評価結果を得るために、まずスーパーネットワークからいくつかのサブネットが抽出されてもよく、抽出されたいくつかのサブネットが前記一つまたは複数の評価メトリックに基づいて評価される。得られた評価結果に基づいて、前記いくつかのサブネットのうちの一つまたは複数がターゲット・ニューラル・ネットワークとして決定される。あるいはまた、まずスーパーネットワークからいくつかのサブネットが抽出され、抽出されたいくつかのサブネットが前記一つまたは複数の評価メトリックに基づいて評価され、評価結果が得られ、次いで、評価結果に基づいて、トレーニングされたスーパーネットワークから新しいサブネットが抽出される。新たに抽出されたサブネットは、評価結果を得るために、前記一つまたは複数の評価メトリックに基づいて評価される。次いで、この場合の評価結果に基づいて、再取得したサブネットのうちの一つまたは複数が、ターゲット・ニューラル・ネットワークのネットワーク構造として決定される。換言すれば、前記一つまたは複数の評価メトリックに基づいて、トレーニングされたスーパーネットワークからサブネットを抽出する方法は、本願のこの実施形態に限定されない。
以下は、本願のある実施形態による、トレーニングされたスーパーネットワークにおいてサブネット探索プロセスを実行するための2つの方法を詳細に説明する。
方法1:サブネット探索プロセスは、ディファレンシャブル法を用いて実行される。
いくつかの例では、重み付け平均法を用いてトレーニングされたスーパーネットワークが得られ、サブネット探索プロセスは、ディファレンシャブル法を用いて、トレーニングされたスーパーネットワークにおいて実行される。
たとえば、N個の評価メトリックを入力するとき、ユーザーはN個の評価メトリックの間の一つまたは複数のプロポーション関係も入力する。N個の評価メトリックの間のプロポーション関係は、N個の評価メトリックの間の相対的重要度を反映していることが理解されうる。ターゲット・ハードウェア・プラットフォーム上の見出されたターゲット・ニューラル・ネットワークの評価効果は、より高い比率をもつ評価メトリックに基づいたほうがよいことが明らかである。たとえば、高精度を必要とするターゲット・ハードウェア・プラットフォームに適用可能なターゲット・ニューラル・ネットワークが探索される場合、精度メトリック比率を増加させてもよい。たとえば、評価メトリックが精度メトリックと時間オーバーヘッド・メトリックを含む場合、精度メトリックに対応する比率は、時間オーバーヘッド・メトリックに対応する比率より大きい。たとえば、時間オーバーヘッド・メトリックに対する精度メトリックの比率は6:4である。
データ処理装置が、ユーザーによって入力される、N個の評価メトリックの間のr個のプロポーション関係を受領する場合、データ処理装置は、各プロポーション関係について1回の事前探索を実行する。ここで、rは正の整数である。
1つの事前探索プロセスにおいて、重みは、トレーニングされたスーパーネットワーク内の第3演算子セット内の第1演算子セットおよび/または派生第2演算子セットの評価結果について、それぞれ設定される。さらに、トレーニングされたスーパーネットワークは、N個の評価メトリックとN個の評価メトリックの間のプロポーション関係とに基づいて再トレーニングされる。トレーニング・プロセスでは、第1演算子セットおよび派生第2演算子セットの評価結果に対応する重みが調整される。評価されるべき候補サブネットおよび該評価されるべき候補サブネットの評価結果は、第1演算子セットおよび派生第2演算子セットの評価結果に対応する調整された重みに基づいて決定される。
一つまたは複数の評価されるべき候補サブネットの評価結果(単数または複数)は、r個の事前探索プロセスに基づいて決定され、前記一つまたは複数の評価されるべき候補サブネットの評価結果(単数または複数)に基づいて、一つまたは複数のターゲット・ニューラル・ネットワークが決定される。一例では、複数の評価されるべき候補サブネットの評価結果は、降順にソートされてもよく、最初にソートされた一つまたは複数の候補サブネットが、ターゲット・ニューラル・ネットワークとして得られる。
たとえば、N個の評価メトリックは、精度評価メトリックと時間オーバーヘッド評価メトリックを含むとする(すなわち、N=2)。対応して、N個の評価メトリックの間のプロポーション関係は、精度評価メトリックと時間オーバーヘッド評価メトリックとの間のプロポーション関係を含む。たとえば、ユーザーは、精度評価メトリックと時間オーバーヘッド評価メトリックとの間の第1の比率および第2の比率を入力する。
図11(a)は、トレーニングされたスーパーネットワークを示す。対応する重みは、スーパーネットワークにおける各第3演算子セットにおける第1演算子セットおよび/または一つまたは複数の派生第2演算子セットについて設定される。1つの第3演算子セットにおける第1演算子セットおよび/または一つまたは複数の派生第2演算子セットの重みの合計は1である。たとえば、図11(a)に示されるスーパーネットワークは、4つの第3演算子セットを含んでおり、言い換えると、1つの破線ボックスに含まれるすべての演算子セットは、それぞれ第3演算子セット1ないし第3演算子セット4である1つの第3演算子セットを構成する。第3演算子セット1は、1つの第1演算子セット1と2つの第2演算子セット(第2演算子セット1と第2演算子セット2)を含む。第1演算子セット1、第2演算子セット1、および第2演算子セット2についてそれぞれ重みが設定され、3つの演算子セットの重みの合計は1である。いくつかの例では、第1演算子セット1、第2演算子セット1、および第2演算子セット2の重みは、同じであるように、たとえば、約0.33に設定されてもよい。類推により、他の第3演算子セットにおける第1演算子セットおよび/または第2演算子セットの重みが設定される。
トレーニング・プロセスでは、トレーニング・データセットが、トレーニングのために、トレーニングされたスーパーネットワークに入力される。たとえば、トレーニング・データセットは、第3演算子セット1に入力され、第3演算子セット1における第1演算子セットおよび/または派生第2演算子セットは、第3演算子セット1によって出力される特徴マップを得るために、トレーニング・データセットに対して計算を実行する。さらに、N個の評価メトリックに基づく、第3演算子セット1の評価結果がさらに計算される必要がある。評価メトリック(たとえば、時間オーバーヘッド)に基づく、第3演算子セット1の評価結果=前記評価メトリックに基づく、第1演算子セット1の評価結果×W1+前記評価メトリックに基づく、第2演算子セット1の評価結果×W2+前記評価メトリックに基づく、第2演算子セット2の評価結果×W3 である。計算後に第3演算子セット1によって出力される特徴マップ出力と、N個の評価メトリックに基づく、第3演算子セット1の評価結果が、第3演算子セット2に入力され、計算を続行する。同様に、N個の評価メトリックに基づく、第3演算子セット2の評価結果=N個の評価メトリックに基づく、第1演算子セット2の評価結果×W4+N個の評価メトリックに基づく、第2演算子セット3の評価結果×W5+N個の評価メトリックに基づく、第2演算子セット4の評価結果×W6 である。類推により、最後の第3演算子セットの計算結果が得られた後、最終的な特徴マップとN個の評価メトリックに基づく累積評価結果(すなわち、スーパーネットワークの全体的な評価結果)が出力される。
次いで、最終的な特徴マップとN個の評価メトリックに基づく累積評価結果を損失関数に入力され、トレーニングされたスーパーネットワークに対して逐次反復的なトレーニングが再び実行される。逐次反復的なトレーニング・プロセスにおいて、各第3セットの一つまたは複数の第1演算子セットおよび/または派生第2演算子セットの評価結果(単数または複数)に対応する重み(単数または複数)は、N個の評価メトリックに基づく累積評価結果に基づいて、逆伝搬プロセスにおいて調整される。トレーニングは、再トレーニングされたスーパーネットワークを得るために、損失関数の結果がもはや変化しなくなるか、または事前設定された逐次反復トレーニング回数に達するまで停止される。最大重みを有する第1演算子セットまたは派生第2演算子セットが、ニューラル・ネットワーク内の各第3演算子から選択され、候補サブネットを構成する。
たとえば、図11(b)は、前述の方法を用いて逐次反復的なトレーニングが実行され、プロポーション関係1に基づいてトレーニングを停止するための条件を満たす、トレーニングされたスーパーネットワークを示す。この場合のスーパーネットワークについては、最大重みをもつ第1演算子セットまたは派生第2演算子セットが、候補サブネットを構成する各第3演算子セットから抽出される。たとえば、図11(b)では、矢印によって接続された実線ボックス内の、選択された、複数の第2演算子セットおよび第1演算子セットが、1つの候補サブネットを構成し、該候補サブネットは、評価されるべき候補サブネット1として示される。同様に、図11(c)は、前述の方法を用いて逐次反復的なトレーニングが行われ、プロポーション関係2に基づいてトレーニングを停止する条件を満たす、トレーニングされたスーパーネットワークを示す。図11(c)では、矢印によって接続された実線ボックス内の、選択された複数の第2演算子セットおよび第1演算子セットが1つの候補サブネットを構成し、該候補サブネットは、評価されるべき候補サブネット2として示されている。
評価されるべき候補サブネット1および評価されるべき候補サブネット2から、より良好な評価結果をもつニューラル・ネットワークが、見出されたターゲット・ニューラル・ネットワークとして選択される。
方法2:進化法を用いてターゲット・ニューラル・ネットワーク探索プロセスが実行される。
いくつかの例では、ワンホット・サンプリング法を用いてトレーニングされたスーパーネットワークが得られ、進化法を用いて、トレーニングされたスーパーネットワークにおいてサブネット探索プロセスが実行される。あるいはまた、まず重み付け平均法を用いてトレーニングされ、次にワンホット・サンプリング法を用いてトレーニングされたスーパーネットワークが得られ、進化法を用いて、トレーニングされたスーパーネットワークにおいてサブネット探索プロセスが実行される。
たとえば、一つまたは複数の評価されるべき候補サブネットは、事前設定規則に基づいて、トレーニングされたスーパーネットワークから抽出され、N個の評価メトリックに基づく、評価されるべき候補サブネットのそれぞれの評価結果は、評価されるべき候補サブネットのそれぞれのネットワーク構造と、第3演算子セット内の第1演算子セットおよび/または第2演算子セットの評価結果とに基づいて決定される。評価されるべき候補サブネットは、最初のK個の評価結果に対応するK個の第1のターゲット候補サブネットを得るために、N個の評価メトリックに基づいて得られた評価結果の降順にソートされる。事前設定規則は、ランダムに抽出されてもよく、または好ましくは、より小さなFLOPSを有する第1演算子セットまたは第2演算子セットを選択してもよい。これは、本願のこの実施形態において限定されない。
たとえば、図12(a)は、トレーニングされたスーパーネットワークを示しており、たとえば、4つの第3演算子セットを含み、言い換えると、1つの破線ボックスに含まれるすべての演算子セットは、それぞれ第3演算子セット1ないし第3演算子セット4である1つの第3演算子セットを構成する。第3演算子セット1は、第1演算子セット1、第2演算子セット1、および第2演算子セット2を含む。まず、1つの第1演算子セットまたは1つの派生第2演算子セットが、各第3演算子セットからランダムに抽出され、ターゲット候補サブネットを構成する。複数回の抽出を通じて、複数のターゲット候補サブネットが得られる。たとえば、図12(b)に示されるように、実線ボックスを使用して選択され、矢印によって接続される、複数の第2演算子セットおよび1つの第1演算子セットを含むニューラル・ネットワークが、抽出された評価されるべき候補サブネットである。別の例として、図12(c)に示されるように、実線ボックスを使用して選択され、矢印によって接続される、複数の第2演算子セットおよび1つの第1演算子セットとを含むネットワークが、もう一つの抽出された評価されるべきサブネットである。
次いで、第nラウンドの混成および/または変成の後に得られるS個の第2のターゲット候補サブネットが、トレーニングされたスーパーネットワークおよびK個の第1のターゲット候補サブネットに基づいて得られる。ここで、nは事前設定されたスクリーニング回数であり、n≧1であり、KおよびSは正の整数であり、S>Kである。
たとえば、図12(b)において、矢印によって接続された第2演算子セットおよび第1演算子セットを含むニューラル・ネットワークは、第1のターゲット候補サブネットであり、第1のターゲット候補サブネット1として示される。図12(c)において、矢印によって接続された第2演算子セットおよび第1演算子セットを含むニューラル・ネットワークは、別の第1のターゲット候補サブネットであり、第1のターゲット候補サブネット2として示されている。さらに、第1のターゲット候補サブネット1と第1のターゲット候補サブネット2は、K個の最初のターゲット候補サブネットにおいて最初にソートされた2つの第1のターゲット候補サブネットである。このように、混成は、第1のターゲット候補サブネット1および第1のターゲット候補サブネット2に対して行われる。たとえば、第1のターゲット候補サブネット1における第3演算子セット1における第2演算子セット1は、第1のターゲット候補サブネット2における第3演算子セット1における第1演算子セット1で置き換えられて、第2のターゲット候補サブネット(第1演算子セット1、第2演算子セット4、第2演算子セット6、および第1演算子セット3を含む)が得られる。
上記の変成は、第2のターゲット候補サブネットを得るために、K個の第1のターゲット候補サブネットにおける第3演算子セットに含まれる第1演算子セットまたは第2演算子セットを、トレーニングされたスーパーネットワークにおける対応する第3演算子セットにおける任意の第1演算子セットまたは第2演算子セットで置き換えることを意味する。
たとえば、図12(b)において、矢印によって接続された第2演算子セットおよび第1演算子セットを含むニューラル・ネットワークは、第1のターゲット候補サブネットであり、第1のターゲット候補サブネット1として示される。さらに、第1のターゲット候補サブネット1は、K個の第1のターゲット候補サブネットにおいて最初にソートする第1のターゲット候補サブネットである。このように、第1のターゲット候補サブネット1は、図12(a)に示されるトレーニングされたスーパーネットワークに基づいて変成される。たとえば、第1のターゲット候補サブネット1における第3演算子セット1における第2演算子セット1は、トレーニングされたスーパーネットワークにおける第3演算子セット1に含まれる第2演算子セット2で置き換えられ、第2のターゲット候補サブネット(第2演算子セット2、第2演算子セット4、第2演算子セット6および第1演算子セット3を含む)を得る。
K個の第1のターゲット候補サブネットは、S個の第2のターゲット候補サブネットを得るために混成されてもよいことが理解されうる。あるいはまた、K個の第1のターゲット候補サブネットは、S個の第2のターゲット候補サブネットを得るために変成されてもよい。あるいはまた、K個の第1のターゲット候補サブネットは、S個の第2のターゲット候補サブネットを得るために混成および変成される。混成または変成の量的比率は、本願のこの実施形態において特に限定されない。
次いで、S個の第2のターゲット候補サブネットの評価結果が得られ、第2のターゲット候補サブネットのネットワーク構造と、N個の評価メトリックに基づく、第3演算子セットにおける第1演算子セットおよび/または第2演算子セットの評価結果とに基づいて降順にソートされて、最初のK個の評価結果に対応するK個の第2のターゲット候補サブネットが得られる。
最後に、逐次反復的なトレーニングの(n+1)ラウンドの後、具体的には、混成および/または変成のnラウンドの後、K×(n+1)個のターゲットサブネットが得られる。K×(n+1)個のターゲット候補サブネットは、前記一つまたは複数の評価メトリックに基づいて再度ソートされて、一つまたは複数のターゲット・ニューラル・ネットワークのネットワーク構造情報が得られてもよい。
たとえば、S=10およびK=5である場合、10個の第1のターゲット候補サブネットがトレーニングされたスーパーネットワークから初めて選択され、混成および/または変成の各ラウンドの後に10個のターゲット候補サブネットが得られ、5つの最適なターゲット候補サブネットが、各スクリーニング・トレーニングにおいて保持される。混成および/または変成の後、前ラウンドのスクリーニングにおいて選択されたターゲット候補サブネットが消失しうる。よって、トレーニング・プロセスにおいて、消失するターゲット候補サブネットは、最適なネットワーク性能を有するニューラル・ネットワークでありうる。よって、最後に、各回に得られた評価結果が最初にソートされるすべてのターゲット候補サブネットが再度ソートされ、一つまたは複数のより良いターゲット候補サブネットがターゲット・ニューラル・ネットワークとして選択される。n=2、具体的には、逐次反復的なトレーニングが3回実行され、2ラウンドの混成および/または変成が実行されるとすると、最終的に、ターゲット・ニューラル・ネットワークのネットワーク構造情報は、5×(2+1)=15個のターゲット候補サブネットにおいて決定される。
これに鑑み、本願のこの実施形態で提供されるニューラル・ネットワークのための適応的探索方法に従う。ターゲット・ハードウェア・プラットフォームの評価基準に基づいて、ニューラル・ネットワークの適応的探索が、ソース・ニューラル・ネットワークから拡張されたスーパーネットワーク上で実行され、それにより、ターゲット・ハードウェア・プラットフォームに適応するターゲット・ニューラル・ネットワークが高い探索柔軟性を前提として見出され、ターゲット・ハードウェア・プラットフォーム上で実行される見出されるターゲット・ニューラル・ニューラル・ネットワークの評価結果が、ターゲット・ハードウェア・プラットフォーム上で実行されるソース・ニューラル・ネットワークの評価結果よりもよくなる。
いくつかの実施形態では、ステップS103の後、図13に示されるように、ニューラル・ネットワークを求める適応的探索方法は、S201およびS202をさらに含んでいてもよい。
S201:ターゲット・ニューラル・ネットワークのネットワーク構造情報に基づいてターゲット・ニューラル・ネットワークを構築する。
たとえば、上述したように、ターゲット・ニューラル・ネットワークを表すために使用されるターゲット・ニューラル・ネットワークのネットワーク構造情報、たとえば、含まれる第1演算子セットおよび/または派生第2演算子セット、第1演算子セットおよび/または派生第2演算子セットの配列態様、およびターゲット・ニューラル・ネットワークの層の数に関する情報が得られる。ターゲット・ニューラル・ネットワークは、ターゲット・ニューラル・ネットワークのネットワーク構造情報に基づいて構築される。
S202:トレーニングされたターゲット・ニューラル・ネットワークを得るために、第2のトレーニング・データセットに基づいてターゲット・ニューラル・ネットワーク上でトレーニング・プロセスを実行する。
第2のトレーニング・データセットは、ステップS102でスーパーネットワークをトレーニングするために使用されるトレーニング・データセットと同じであっても、異なるものであってもよい。
いくつかの実施形態では、構築されたターゲット・ニューラル・ネットワークは、トレーニングされたスーパーネットワークに基づいて見出されるニューラル・ネットワークであり、ソース・ニューラル・ネットワークと同じ機能を実装することができる。さらに、ターゲット・ハードウェア・プラットフォーム上の評価結果は、ターゲット・ハードウェア・プラットフォーム上のソース・ニューラル・ネットワークの評価結果よりも良好である。しかしながら、この場合、ターゲット・ニューラル・ネットワークの内部パラメータが最適状態に調整されていないため、ターゲット・ニューラル・ネットワークの実際の適用プロセスにおいて問題が発生する可能性がある。よって、ターゲット・ニューラル・ネットワークは、第2のトレーニング・データセットを使用することによってトレーニングされる必要があり、ターゲット・タスクを実行するために実際に適用されうるトレーニングされたターゲット・ニューラル・ネットワークを得るために、ターゲット・ニューラル・ネットワーク内のパラメータ情報を調整する必要がある。
たとえば、プリセット条件が評価メトリックに基づいて設定されてもよく、ターゲット・ニューラル・ネットワークは、第2のトレーニング・データセットを使用することによって逐次反復的にトレーニングされ、ターゲット・ニューラル・ネットワークの内部パラメータは、逐次反復的トレーニング・プロセスにおいて調整される。事前設定されたトレーニング回数に達したとき、または損失関数が減少しないときに得られるニューラル・ネットワークが、実際にターゲット・ハードウェア・プラットフォームに適用できる、トレーニングされたターゲット・ニューラル・ネットワークとして使用される。
たとえば、トレーニングされたターゲット・ニューラル・ネットワークは、ターゲット・ハードウェア・プラットフォーム上で、コンピュータビジョン(computer vision、CV)フィールド内のターゲット・タスク、たとえば、ターゲット検出タスクおよび画像分類タスクを実行することができる。具体的には、ターゲット検出タスクは、たとえば、顔検出、車両窓顔検出、人体/顔検出、画像モード検出、オブジェクト分類、およびナンバープレート検出を含むことができる。画像分類タスクは、たとえば、交通信号認識、車両モデル認識、および特殊車両モデル認識を含んでいてもよい。
このようにして、ターゲット・ハードウェア・プラットフォーム上でターゲット・タスクを実際に実行できるターゲット・ニューラル・ネットワークを得ることができる。
本願のある実施形態は、少なくとも1つのサーバーおよび少なくとも1つの端末装置を含む通信システムを提供する。
前記少なくとも1つのサーバーは、図4におけるステップS101~ステップS103を実行し、図13におけるステップS201およびステップS202を実行し、および/または本明細書に記載される技術の別のプロセスのために使用される。前記少なくとも1つの端末装置は、前記少なくとも1つのサーバーに探索条件セットを送信し、ここで、この探索条件セットは、ターゲット・ハードウェア・プラットフォーム情報、ソース・ニューラル・ネットワークのネットワーク構造情報、および一つまたは複数の評価メトリックを含み、ソース・ニューラル・ネットワークのネットワーク構造情報は、ソース・ニューラル・ネットワークを表すために使用される。前記少なくとも1つの端末装置は、前記少なくとも1つのサーバーによって送信されたトレーニングされたターゲット・ニューラル・ネットワークを受信する。
任意的に、前記少なくとも1つの端末装置は、トレーニングされたターゲット・ニューラル・ネットワークをターゲット・ハードウェア・プラットフォームを含むユーザー装置に送るかどうかを決定するようにさらに構成される。ユーザー装置はターゲット・ニューラル・ネットワークのために使用され、ユーザー装置は、携帯電話(mobile phone)、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、ノートブック・コンピュータ、ウルトラモバイルパーソナルコンピュータ(ultra-mobile personal computer、UMPC)、ネットブック、パーソナルデジタルアシスタント(personal digital assistant、PDA)、拡張現実(augmented reality、AR)/仮想現実(virtual reality、VR)装置、または人工知能(artificial intelligence、AI)端末などの端末装置であってもよい。ユーザー装置の特定の形態は、本開示のこの実施形態では特に限定されない。
図14は、前述の実施形態におけるニューラル・ネットワークのための適応的探索装置の可能な構造の概略図である。この装置は、受領ユニット1401、構築ユニット1402、トレーニング・ユニット1403、および探索ユニット1404を含む。
受領ユニット1401は、図4におけるステップS101を実行するよう本装置をサポートするように構成され、および/または本明細書に記載される技術の別のプロセスのために使用される。
構築ユニット1402は、図4におけるステップS102、図13におけるステップS201、および図2における構築モジュール212によって実行されるステップを実行するよう本装置をサポートするように構成され、および/または、本明細書に記載される技術の別のプロセスのために使用される。
トレーニング・ユニット1403は、図4におけるステップS102、図13におけるステップS202、および図2におけるトレーニング・モジュール213によって実行されるステップを実行するよう本装置をサポートするように構成され、および/または、本明細書に記載される技術の別のプロセスのために使用される。
探索ユニット1404は、図4におけるステップS103および図2における探索モジュール215によって実行されるステップを実行するよう本装置をサポートするように構成され、および/または、本明細書に記載される技術の別のプロセスのために使用される。
前述の方法実施形態におけるステップのすべての関連する内容は、対応する機能ユニットの機能説明において引用されうる。詳細は、ここでは再度説明しない。
図15は、本願のある実施形態による装置のハードウェア構造の概略図である。本装置は、少なくとも1つのプロセッサ1501、通信線1502、メモリ1503、および少なくとも1つの通信インターフェース1504を含む。あるいはまた、メモリ1503は、プロセッサ1501に含まれてもよい。
プロセッサ1501は、汎用の中央処理装置(central processing unit、CPU)、マイクロプロセッサ、特定用途向け集積回路(application-specific integrated circuit、ASIC)、または本願の解決策のプログラム実行を制御するように構成された一つまたは複数の集積回路であってもよい。
通信線1502は、前述の構成要素間で情報を転送するための経路を含んでいてもよい。
通信インターフェース1504は、他の装置と通信するように構成される。本願の実施形態では、通信インターフェースは、モジュール、回路、バス、インターフェース、トランシーバ、または通信機能を実施することができ、他の装置と通信するように構成される他の装置であってもよい。任意的に、通信インターフェースがトランシーバである場合、トランシーバは独立して配置された送信器であってもよく、送信器は別の装置に情報を送信するように構成されてもよい。あるいはまた、トランシーバは、独立して配置された受信器であってもよく、他の装置から情報を受信するように構成される。あるいはまた、トランシーバは、情報を送信および受信する機能を統合するコンポーネントであってもよい。トランシーバの特定の実装は、本願の実施形態において限定されない。
メモリ1503は、静的な情報および命令を記憶することができる読み出し専用メモリ(read-only memory、ROM)または情報および命令を記憶することができるランダムアクセスメモリ(random access memory、RAM)または他のタイプの動的記憶装置であってもよく、または電気的に消去可能なプログラマブル読み出し専用メモリ(electrically erasable programmable read-only memory、EEPROM)、コンパクトディスク読み出し専用メモリ(compact disc read-only memory、CD-ROM)または他のコンパクトディスク記憶、光ディスク記憶装置(コンパクトディスク、レーザーディスク、光ディスク、デジタル汎用ディスク、ブルーレイディスク等を含む)、磁気ディスク記憶媒体または他の磁気記憶装置、または命令またはデータ構造の形で、期待されるプログラムコードを担持または記憶するために使用されることができ、コンピュータによってアクセスすることができる他の媒体であってもよいが、これらに限定されない。メモリは独立して存在してもよく、通信線202を通じてプロセッサに接続される。あるいはまた、メモリは、プロセッサと一体化されてもよい。
メモリ1503は、本願の解決策を実装するためのコンピュータ実行可能命令を記憶するように構成され、プロセッサ1501は実行を制御する。プロセッサ1501は、メモリ1503に記憶されたコンピュータ実行可能命令を実行し、本願の以下の実施形態で提供されるニューラル・ネットワークのための適応的探索方法を実施するように構成される。
任意的に、本願の実施形態におけるコンピュータ実行可能命令は、アプリケーション・プログラム・コード、命令、コンピュータ・プログラム、または別の名前とも呼ばれうる。これは、本願の実施形態において特に限定されない。
具体的な実装の際、ある実施形態では、プロセッサ1501は、一つまたは複数のCPU、たとえば、図15のCPU 0およびCPU 1を含んでいてもよい。
具体的な実装の際、ある実施形態では、本装置は、複数のプロセッサ、たとえば、図15のプロセッサ1501およびプロセッサ1505を含んでいてもよい。各プロセッサは、シングルコア(single-core)プロセッサまたはマルチコア(multi-CPU)プロセッサであってもよい。ここで、プロセッサは、データ(たとえば、コンピュータ・プログラム命令)を処理するように構成された一つまたは複数のデバイス、回路、および/または処理コアであってもよい。
なお、上記装置は、汎用デバイスであっても、専用デバイスであってもよい。装置のタイプは、本願のこの実施形態では限定されない。本願のこの実施形態において示される構造は、装置に対する特定の限定を構成しない。本願のいくつかの他の実施形態において、装置は、図に示されたものよりも多くのまたは少ない構成要素を含んでいてもよく、あるいは、いくつかの構成要素が組み合わされてもよく、あるいは、いくつかの構成要素が分割されてもよく、あるいは、異なる構成要素が使用されてもよい。図に示される構成要素は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの組み合わせによって実現することができる。
本願のある実施形態は、コンピュータ読み取り可能な記憶媒体をさらに提供する。コンピュータ読み取り可能な記憶媒体は、コンピュータ命令を記憶する。コンピュータ命令がサーバー上で実行されると、サーバーは、関連する方法ステップを実行して、前述の諸実施形態においてニューラル・ネットワークのための適応的探索方法を実施することが可能にされる。
本願のある実施形態は、さらに、コンピュータ・プログラム・プロダクトを提供する。コンピュータ・プログラム・プロダクトがコンピュータ上で実行されると、コンピュータは、前述の実施形態においてニューラル・ネットワークのための適応的探索方法を実施するために、前述の関連するステップを実行することが可能にされる。
さらに、本願のある実施形態は、装置をさらに提供する。本装置は、具体的には、コンポーネントまたはモジュールであってよく、本装置は、互いに接続されたプロセッサおよびメモリを含んでいてもよい。メモリは、コンピュータ実行可能命令を格納するように構成される。装置が動作するとき、プロセッサは、メモリに記憶されたコンピュータ実行可能命令を実行してもよく、それにより装置は前述の方法実施形態におけるニューラル・ネットワークの適応的探索方法を実行する。
本願の実施形態において提供される装置、コンピュータ読み取り可能な記憶媒体、コンピュータ・プログラム・プロダクト、またはチップは、上記で提供される対応する方法を実行するように構成される。よって、本装置、コンピュータ読み取り可能記憶媒体、コンピュータ・プログラム・プロダクト、またはチップによって達成できる有益な効果については、上述の対応する方法における有益な効果を参照されたい。詳細は、ここでは再度説明しない。
実装についての前述の説明は、簡便な説明のために、前述の機能モジュールへの分割が例解のための例として使用されることを、当業者が明確に理解することを許容する。実際の適用の際、前述の機能は、異なる機能モジュールに割り当てられ、要件に基づいて実装されうる。すなわち、装置の内部構造は、異なる機能モジュールに分割され、上述の機能の全部または一部を実装する。前述のシステム、装置、およびユニットの詳細な動作プロセスについては、前述の方法実施形態における対応するプロセスを参照されたい。詳細は、ここでは再度説明しない。
本願において提供されるいくつかの実施形態において、開示された方法は、他の態様で実装されうることが理解されるべきである。たとえば、モジュールまたはユニットへの分割は、単に論理的な機能分割であり、実際の実装の際には他の分割であってもよい。たとえば、複数のユニットまたはコンポーネントは、別のシステムに組み合わされ、または統合されてもよく、あるいはいくつかの特徴が無視され、または実行されなくてもよい。さらに、表示または議論された相互結合または直接結合または通信接続は、いくつかのインターフェースを通じて実装されてもよい。モジュールまたはユニットの間の間接的結合または通信接続は、電子的、機械的、または他の形で実装されうる。
別個の部品として記載されるユニットは、物理的に別個であってもなくてもよく、ユニットとして表示される部品は、物理的なユニットであってもなくてもよく、1つの位置に位置していてもよく、または複数のネットワーク・ユニット上に分散されていてもよい。ユニットの一部または全ては、実施形態における解決策の目的を達成するために、実際の要件に基づいて選択されてもよい。
さらに、本願の実施形態における機能ユニットは、1つの処理ユニットに統合されてもよく、または各ユニットは、物理的に単独で存在してもよく、または2つ以上のユニットが1つのユニットに統合されてもよい。統合されたユニットは、ハードウェアの形で実装されてもよく、またはソフトウェア機能ユニットの形で実装されてもよい。
統合されたユニットがソフトウェア機能ユニットの形で実装され、独立した製品として販売または使用される場合、統合ユニットは、コンピュータ読み取り可能な記憶媒体に記憶されうる。そのような理解に基づいて、本願の技術的解決策は本質的に、または従来技術に寄与する部分は、または技術的解決策の全部もしくは一部は、ソフトウェア製品の形で実装されてもよい。コンピュータソフトウェア製品は、記憶媒体に記憶され、コンピュータ装置(これは、パーソナルコンピュータ、サーバー、ネットワーク装置等であってもよい)に、本願の実施形態における方法の全部または一部のステップを実行するように命令するためのいくつかの命令を含む。前述の記憶媒体は、プログラム命令を記憶することができる任意の媒体、たとえば、フラッシュメモリ、リムーバブルハードディスク、リードオンリーメモリ、ランダムアクセスメモリ、磁気ディスク、または光ディスクを含む。
前述の説明は、単に本願の具体的な実装であり、本願の保護範囲を限定することを意図するものではない。本願に開示された技術的範囲内の変成または置換は、本願の保護範囲にはいる。したがって、本願の保護範囲は、特許請求の範囲の保護範囲に従うものとする。