(58)【調査した分野】(Int.Cl.,DB名)
前記ネットワークブロック生成モジュールは、具体的には、サンプリングして得られたネットワーク層を分析し、少なくとも1種類の前記ネットワーク層のタイプ、少なくとも1タイプの前記ネットワーク層の数、および少なくとも1種類の前記ネットワーク層の連結順序を得て、そして得られた前記ネットワーク層を前記少なくとも1種類のネットワーク層に対応する連結順序に従って、前記少なくとも1種類のネットワーク層の間の連結関係によって連結して1種類のネットワークブロックを得るために用いられることを特徴とする請求項12に記載の装置。
前記正確度が予め設定された条件を満たすことに応答して、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとするための、
または、
前記正確度が予め設定された条件を満たさず、かつニューラルネットワーク構造に対する前記サンプリングが予め設定された回数に達したことに応答して、現在のサンプリングニューラルネットワークを目標ニューラルネットワークとするための目標ネットワーク判定ユニットをさらに含むことを特徴とする請求項11に記載の装置。
【発明を実施するための形態】
【0014】
ここで、図面を参照しながら本願の様々な例示的実施例を詳細に説明する。なお、特に断らない限り、これらの実施例において記述した部材およびステップの相対的配置、数式および数値は本願の範囲を限定するものではないことに注意すべきである。
【0015】
同時に、説明の便宜上、図面に示した各部分の寸法は実際の比例関係に従って描いたものではないことを理解すべきである。
【0016】
以下の少なくとも1つの例示的実施例に対する説明は実際に説明的なものに過ぎず、本願およびその適用または使用へのなんらの制限にもならない。
【0017】
関連分野の当業者に既知の技術、方法および機器については、詳細に説明しないが、場合によって、前記技術、方法および機器は明細書の一部と見なすべきである。
【0018】
なお、類似する符号および英文字は以下の図面において類似項目を表し、従って、ある一項が1つの図面において定義されれば、以降の図面においてそれをさらに説明する必要がないことに注意すべきである。
【0019】
本願の実施例はコンピュータシステム/サーバに適用可能であり、それは他の様々な共通または専用計算システム環境または構成と共に動作可能である。コンピュータシステム/サーバとの併用に適する公知の計算システム、環境および/または構成の例は、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、ファットクライアント、手持ちまたはラップトップデバイス、マイクロプロセッサに基づくシステム、セットトップボックス、プログラマブル消費者用電子機器、ネットワークパソコン、小型コンピュータシステム、大型コンピュータシステムおよび上記任意のシステムを含む分散型クラウドコンピューティング技術環境などを含むが、これらに限定されない。
【0020】
コンピュータシステム/サーバはコンピュータシステムにより実行されるコンピュータシステム実行可能命令(例えばプログラムモジュール)の一般的な言語環境において説明できる。通常、プログラムモジュールは、特定のタスクを実行するかまたは特定の抽象データ型を実現するルーチン、プログラム、目標プログラム、コンポーネント、ロジック、データ構造などを含むことができる。コンピュータシステム/サーバは、タスクが通信ネットワークにわたって連結された遠隔処理機器により実行される分散型クラウドコンピューティング環境において実施できる。分散型クラウドコンピューティング環境において、プログラムモジュールは記憶機器を含むローカルまたは遠隔計算システムの記憶媒体に存在してもよい。
【0021】
図1は本願のニューラルネットワーク構造の生成方法の一実施例のフローチャートである。
図1に示すように、該実施例の方法は以下を含む。
【0022】
ステップ101において、ニューラルネットワーク構造をサンプリングし、少なくとも1つのネットワーク層が含まれるネットワークブロックを生成する。
【0023】
ここで、ニューラルネットワーク構造はネットワーク層、ネットワーク層に対応するネットワークパラメータ、ネットワーク層の間の設定された連結方式などを含み、ただし、ネットワーク層は従来技術における一部または全ての種類のネットワーク層を含んでもよく、本願はネットワークブロックを構成するネットワーク層のタイプおよび数を限定せず、本願で言及されたネットワーク層とは、ニューラルネットワーク構築用の、ある機能を独立して実現可能なユニット、例えば畳み込み層、プーリング層、全連結層などをいう。
【0024】
任意選択的な一例では、該ステップ101はプロセッサによってメモリに記憶された対応の命令を呼び出して実行してもよく、プロセッサにより運用されるサンプリングユニット51によって実行してもよい。
【0025】
ステップ102において、ネットワークブロックに基づいてサンプリングニューラルネットワークを構築する。
【0026】
ここで、ニューラルネットワークは少なくとも1つのネットワークブロックを含み、ネットワークブロックは1つのネットワーク下部構造とされ、本願では、訓練されるサンプリングニューラルネットワークはK個のネットワークブロックからなるように予め設定されてもよく、このK個のネットワークブロックの構造は同じであってもなくてもよく、Kは1以上の整数である。Kの値は実際の応用において訓練効率および精度を考慮した上で決定される。
【0027】
任意選択的な一例では、該ステップ102はプロセッサによってメモリに記憶された対応の命令を呼び出して実行してもよく、プロセッサにより運用されるネットワーク構築ユニット52によって実行してもよい。
【0028】
ステップ103において、サンプルデータに基づいてサンプリングニューラルネットワークを訓練し、サンプリングニューラルネットワークに対応する正確度を得る。
【0029】
任意選択的な一例では、該ステップ103はプロセッサによってメモリに記憶された対応の命令を呼び出して実行してもよく、プロセッサにより運用される訓練ユニット53によって実行してもよい。
【0030】
ステップ104において、正確度が予め設定された条件を満たさないことに応答して、正確度に応じて新たなネットワークブロックを、それが構築するサンプリングニューラルネットワークが予め設定された条件を満たすようになるまで再度生成し、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとする。
【0031】
訓練によって正確度が予め設定された条件を満たす目標ニューラルネットワークが得られ、該目標ニューラルネットワークにおけるパラメータは訓練を経て該サンプルデータに対して好適なパラメータとなり、従って、出力される目標ニューラルネットワークはその構造もパラメータも該サンプルデータに適用可能であり、それは特定のタスクについて構造およびパラメータを自動的に好適に設定できる目標ニューラルネットワークである。
【0032】
任意選択的な一例では、該ステップ104はプロセッサによってメモリに記憶された対応の命令を呼び出して実行してもよく、プロセッサにより運用されるネットワーク出力ユニット54によって実行してもよい。
【0033】
本願の上記実施例が提供するネットワーク訓練方法に基づき、ニューラルネットワーク構造をサンプリングし、ネットワークブロックを生成し、ネットワークブロックに基づいてサンプリングニューラルネットワークを構築し、サンプリングによってサンプリングニューラルネットワークを構築することでネットワーク構造を手動で設定することを回避し、サンプルデータに基づいてサンプリングニューラルネットワークを訓練し、サンプリングニューラルネットワークに対応する正確度を得て、訓練によってサンプリングニューラルネットワークにおけるパラメータを現在の構造に好適であるようにし、該サンプリングニューラルネットワークの好適な正確度を得ることができ、そして正確度が予め設定された条件を満たさないことに応答して、正確度に応じて新たなネットワークブロックを、それが構築するサンプリングニューラルネットワークが予め設定された条件を満たすようになるまで再度生成し、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとし、このサンプルデータに基づいて強化学習によって生成されるサンプリングニューラルネットワークは、サンプルデータに対応するタスクおよび/またはデータに対して所望の正確度に達することが可能であり、ネットワーク構造設計のコストおよび時間を削減する。
【0034】
本願のニューラルネットワーク構造の生成方法の別の実施例では、上記実施例のもとに、ステップ101は、
1つの確率ベクトルに基づいてニューラルネットワーク構造をサンプリングし、少なくとも1種類のネットワーク層、少なくとも1種類のネットワーク層に対応するネットワークパラメータおよび少なくとも1種類のネットワーク層の間の連結方式を得て、少なくとも1種類のネットワーク層を積み上げて1種類のネットワークブロックを構成することを含む。
【0035】
本実施例では、ネットワーク層データベースに少なくとも1種類のネットワーク層が含まれるため、ネットワーク層のタイプや数に対応する確率ベクトルによってサンプリングすれば、少なくとも1種類のネットワーク層をサンプリングでき、ネットワーク層には対応するネットワークパラメータが存在しており、サンプリング中にネットワーク層に対応するネットワークパラメータが同時に取得され、ネットワーク層それぞれは、予め設定された連結方式を有し、任意選択的に、ネットワーク層を取得すると共に、ネットワーク層の間の連結方式を取得してもよく、ここで、確率ベクトル内の確率値それぞれは1種類のネットワーク層に対応しており、ある1種類のネットワーク層に対応する確率値が0である場合、サンプリングして構成されたネットワークブロックには該種類のネットワーク層が含まれないようになり、また確率ベクトル内の確率値によって、サンプリングして得られた各種類のネットワーク層の数を決定でき、1種類毎にネットワーク層を1つサンプリングすることに限定されない。
【0036】
本願のニューラルネットワーク構造の生成方法の上記各実施例の任意選択的な一例では、ネットワーク層は、
畳み込み層(Convolution)、最大プーリング層(Max Pooling)、平均プーリング層(Average Pooling)、アイデンティティ層(Identity)、特徴重畳層(Elemental Add)および連結層(concat)などの任意の1つまたは複数を含む。
【0037】
本実施例において挙げられた以上のネットワーク層は当業者の理解および実施を助けるためのものであり、本願を限定するものではなく、畳み込みは2つの変数をある範囲内で乗算した後に和を求めた結果を実現し、畳み込み層は複数の畳み込みユニットからなってもよく、畳み込みユニットのパラメータは逆伝播アルゴリズムによって最適化して得られ、畳み込み演算の目的は入力される様々な特徴を抽出することであり、1層目の畳み込み層は、エッジ、ラインおよび角などのような低レベルの特徴しか抽出できないことがあるが、より多層のネットワークは低レベルの特徴から反復してより複雑な特徴を抽出可能である。最大プーリング層(Max pooling)は主に、認識結果を損なうことなく、近傍内の特徴点について最大を取ることでダウンサンプリング(downsampling)を実現するという機能を発揮し、平均プーリング層(Average Pooling)は主に、認識結果を損なうことなく、近傍内の特徴点を平均することでダウンサンプリング(downsampling)を実現するという機能を発揮し、アイデンティティ層(Identity)は主に、異なるネットワーク層の間の連結を助けるよう、その出力がその入力に相当し、特徴重畳層(Elemental Add)は受信した異なるネットワーク層の特徴を重ね合わせ、連結層(concat)は主に、受信した異なるネットワーク層の特徴を連結するという機能を発揮する。
図2は本願の実施例においてネットワーク層に基づいて構築されたネットワークブロックの構成模式図である。図中、アイデンティティ層(Identity)、畳み込み層(Convolution)、特徴重畳層(Elemental Add)、最大プーリング層(Max Pooling)、平均プーリング層(Average Pooling)および連結層(concat)が含まれている。
図3は本願の実施例においてネットワーク層に基づいて構築された別のネットワークブロックの構成模式図である。図中、アイデンティティ層(Identity)、畳み込み層(Convolution)、特徴重畳層(Elemental Add)、平均プーリング層(Average Pooling)および連結層(concat)が含まれている。
図2および
図3に示すネットワークブロックの構造から、ネットワークブロックを構成するものは一部または全てのタイプのネットワーク層を含んでもよく、かつ各種類のネットワーク層の数は一定ではないことがわかる。
【0038】
本願のニューラルネットワーク構造の生成方法の上記各実施例の任意選択的な一例では、少なくとも1種類のネットワーク層を積み上げて1種類のネットワークブロックを得るステップは、
サンプリングして得られたネットワーク層を分析し、少なくとも1種類のネットワーク層のタイプ、少なくとも1タイプのネットワーク層の数、および少なくとも1種類のネットワーク層の連結順序を得ることと、
得られたネットワーク層を少なくとも1種類のネットワーク層に対応する連結順序に従って、少なくとも1種類のネットワーク層の間の連結関係によって連結して1種類のネットワークブロックを得ることと、を含む。
【0039】
本実施例ではネットワークブロックを構築するために、まずそれに含まれる要素(ネットワーク層)を決定すべきであり、ネットワーク層の決定はそのタイプおよび数の決定を含み、ネットワーク層のタイプおよび数が知られた後にネットワーク層の連結順序および連結関係を決定する必要があり、任意選択的に、各ネットワーク層についてその上のネットワーク層を設定し、1つのネットワーク層の上のネットワーク層を決定してから、得られたネットワーク層を重ね合わせ、1つのネットワークブロックを構成するようにしてもよく、同じタイプおよび数の1群のネットワーク層は、重ね合わせ方式によって複数のネットワークブロックを構成できる。
【0040】
本願のニューラルネットワーク構造の生成方法のさらに別の実施例では、上記各実施例のもとに、ステップ104は、
サンプリングニューラルネットワークに対応する正確度に応じてニューラルネットワーク構造をサンプリングする確率ベクトルを調整し、調整後の確率ベクトルによってニューラルネットワーク構造をサンプリングし、1種類の新たなネットワークブロックを生成することを含む。
【0041】
本実施例では、任意選択的に、強化学習という方式でネットワークブロックの構造を調整し、ニューラルネットワークの正確度が設定値に達していない場合、このニューラルネットワーク構造は十分に良好ではなく、返される報酬(reward)が少なく、このとき、改めてサンプリングして新たなネットワークブロックを構成し、さらに新たなネットワークブロックでニューラルネットワークを、正確度が標準に達するニューラルネットワークを得るまで、構築する。
【0042】
正確度に応じてニューラルネットワークが標準に達したかどうかを判定し、該ニューラルネットワークの正確度が設定値に達していない場合、このニューラルネットワークの構造は現在のサンプルデータに適さず、このとき、ニューラルネットワークにおけるパラメータは比較的十分に訓練されていたので、ネットワーク構造を調整する必要があるが、ネットワーク構造において調整可能なのは主にネットワークブロックであるため、ネットワークブロックの構造を調整する必要があり、ネットワークブロックの構造はネットワークブロック内のネットワーク層の数またはネットワークブロック内のネットワーク層の連結関係を調整することで調整してもよく、サンプリング対象のネットワーク層について毎回、異なる連結関係によって既に少なくとも1種類のネットワークブロック(少なくとも1種類のネットワークブロック同士は、ネットワーク層のタイプおよび数が同じであるが、ネットワーク層の位置およびネットワーク層の間の連結関係が異なる)が構築されていたので、サンプリングの確率ベクトルを変更することで、ネットワークブロックを構成するネットワーク層の数を変更し、それによってネットワークブロック構造の変更を実現する。
【0043】
本願のニューラルネットワーク構造の生成方法のさらに別の実施例では、上記各実施例のもとに、サンプルデータに基づいてサンプリングニューラルネットワークを訓練するステップ103は、
サンプリングニューラルネットワークを利用してサンプルデータを処理し、処理結果を得ることと、
損失関数を利用し、監督情報でラベル付けされたサンプルデータにラベル付けした監督情報と処理結果との間の誤差値を計算することと、
サンプリングニューラルネットワークが収束条件を満たすようになるまで、誤差値に基づいて前サンプリングニューラルネットワークを訓練することと、を含む。
【0044】
ここで、サンプルデータは監督情報でラベル付けされ、該監督情報はサンプルデータが既知の、該サンプリングニューラルネットワークに対応する処理すべき目標結果であり、訓練して得られたニューラルネットワークの機能はその内容によって決定される。
【0045】
本実施例では、構築されるニューラルネットワークの構造が特定のタスクデータに適応するように保証し、該ニューラルネットワークが該タスクデータを正確に処理可能であるかどうかを識別するために、該タスクデータの対応するサンプルデータでニューラルネットワークを訓練する必要があり、ニューラルネットワークの訓練プロセスは従来技術における一般的な逆勾配アルゴリズムによって実現してもよく、ニューラルネットワークにおけるパラメータが好適になることを訓練の結果とし、このとき、得られた監督情報と処理結果との間の誤差値によって該ニューラルネットワークの正確度を特定でき、正確度と誤差値は反比例し、誤差値が大きければ大きくなるほど、正確度が小さくなり、該サンプルデータに対する該ニューラルネットワークの処理効果が悪くなり、誤差値が小さければ小さくなるほど、正確度が大きくなり、該サンプルデータに対する該ニューラルネットワークの処理効果が高くなる。
【0046】
本願のニューラルネットワーク構造の生成方法の上記各実施例の任意選択的な一例では、サンプリングニューラルネットワークが収束条件を満たすようになるまで、誤差値に基づいてサンプリングニューラルネットワークを訓練することは、
損失関数の収束速度が設定値以上であることに応答して、得られた誤差値に応じて、逆勾配アルゴリズムによってサンプリングニューラルネットワークにおけるパラメータを調整し、調整後のサンプリングニューラルネットワークを得ることと、調整後のニューラルネットワークに対応する損失関数の収束速度が設定値よりも小さくなるまで調整し続けることと、を含む。
【0047】
本実施例では、ニューラルネットワークが該サンプルデータの処理に適用可能であるかどうかを特定できないため、収束条件は誤差値の大小を設定することで実現できず(ニューラルネットワークを何回訓練しても誤差値が要求を満たさないことがある)、ニューラルネットワークにおけるパラメータを好適にするために、損失関数の収束速度に基づいて評価する必要があり、損失関数の収束速度が設定値以下に低下した場合、反復を継続しても誤差値への影響が小さく、このとき、訓練を終了し、対応の誤差値を出力し、該サンプルデータに対する該ニューラルネットワークの正確度をさらに計算してよい。
【0048】
本願のニューラルネットワーク構造の生成方法の上記各実施例の任意選択的な一例では、サンプリングニューラルネットワークが収束条件を満たすようになるまで、誤差値に基づいてサンプリングニューラルネットワークを訓練することは、
損失関数による誤差値計算回数が設定値よりも小さいことに応答して、得られた誤差値に応じて、逆勾配アルゴリズムによってサンプリングニューラルネットワークにおけるパラメータを調整し、調整後のサンプリングニューラルネットワークを得て、かつ損失関数による誤差値計算回数に1を加えることと、調整後のニューラルネットワークに対応する損失関数による誤差値計算回数が設定値以上になるまで調整し続けることと、を含む。
【0049】
本実施例では、ニューラルネットワークを高速に訓練するために、1つの設定値を設定して反復の回数を制御し、反復訓練の回数が該設定値に達した時に、直ちに訓練を停止し、それによってニューラルネットワーク構造の生成速度を向上させる。
【0050】
本願のニューラルネットワーク構造の生成方法の上記各実施例の任意選択的な一例では、ステップ103はさらに、
訓練が完了したサンプリングニューラルネットワークの誤差値にしたがってサンプリングニューラルネットワークの予測正確度を計算して得ることと、
予測正確度に基づき、サンプリングニューラルネットワークに対応するネットワーク計算複雑度およびネットワーク密度を予め設定された比率で差し引き、サンプリングニューラルネットワークに対応する正確度を得ることと、を含む。
【0051】
上記実施例は設定回数に反復した時に訓練を終了することを提案したが、このとき、訓練を終了すると、得られる正確度は必然的に該サンプリングニューラルネットワークの好適な正確度ではないため、正確度の問題について、本実施例により修正し、任意選択的に式(1)を用いて修正を実現してもよい。
【0055】
は予測正確度であり、FLOPsは秒毎の浮動小数点演算回数(秒毎のピーク速度とも呼ばれる)で、1秒あたり実行される浮動小数点演算の回数(Floating−point operations per second、FLOPs)の略称であり、特に浮動小数点演算が大量使用されている科学計算分野において、コンピュータのパフォーマンスを推定するために用いられ、FLOPsはニューラルネットワークのネットワーク計算複雑度とされる場合、その理論的推定式は式(2)であってもよいが、それに限定されない。
【0058】
はこの層のサンプリングニューラルネットワークの入力チャネル数であり、
【0059】
はこの層のサンプリングニューラルネットワークの出力チャネル数であり、
【0060】
は畳み込みカーネルのサイズ(kernel size)であり、
【0061】
はこの層の出力の特徴マップ(feature map)のサイズである。Densityはグラフ(数学分野における)の辺数をグラフの点数で除算したネットワーク密度であり、グラフの複雑度を測定するために用いられる。式(1)の修正によって、得られた正確度を該サンプリングニューラルネットワークの該サンプルデータに対応する正確度とすることができ、同時に、修正された正確度を使用すれば、サンプリングニューラルネットワークの正確度を予め設定された条件に高速に収束させ、ネットワークの訓練速度を向上させることができる。
【0062】
本願のニューラルネットワーク構造の生成方法のさらに別の実施例では、上記各実施例のもとに、
ステップ101は、ニューラルネットワーク構造をサンプリングし、N種類のネットワークブロックを生成することを含んでもよい。ここで、Nはゼロよりも大きい整数である。
【0063】
例示的に、サンプリングプロセスは1つのエージェント(agent)を利用して実現してもよく、N種類のネットワークブロックはネットワークコントローラーに送信される。
【0064】
任意選択的な一例では、該ステップ101はプロセッサによってメモリに記憶された対応の命令を呼び出して実行してもよく、プロセッサにより運用されるサンプリングユニット51によって実行してもよい。
【0065】
ステップ102は、それぞれN種類のネットワークブロックに基づいてN個のサンプリングニューラルネットワークを構築することを含んでもよい。
【0066】
例示的に、サンプリングニューラルネットワークの構築プロセスはネットワーク構造コントローラー(Network structure controller)で実現してもよく、ネットワークコントローラーはN個のサンプリングニューラルネットワークをN個の訓練ノード(環境変数、env)にそれぞれ配信する。ここで、envは外部命令、プログラムファイルを表し、全ての環境変数およびそれに割り当てられた値をリストアップしている。
【0067】
任意選択的な一例では、該ステップ102はプロセッサによってメモリに記憶された対応の命令を呼び出して実行してもよく、プロセッサにより運用されるネットワーク構築ユニット52によって実行してもよい。
【0068】
ステップ103は、サンプルデータに基づいてN個のサンプリングニューラルネットワークをそれぞれ訓練し、N個のサンプリングニューラルネットワークに対応するN個の正確度を得ることを含んでもよい。
【0069】
例示的に、同じまたは類似のサンプルデータを受信する(同一訓練対象のサンプルデータ集合からの抽出に基づく)N個の訓練ノード(環境変数、env)でN個のサンプリングニューラルネットワークをそれぞれ訓練する。
【0070】
任意選択的な一例では、該ステップ103はプロセッサによってメモリに記憶された対応の命令を呼び出して実行してもよく、プロセッサにより運用される訓練ユニット53によって実行してもよい。
【0071】
ステップ104は、N個の正確度のうち予め設定された条件を満す正確度が存在しないことに応答して、新たなネットワークブロックによってそれぞれ構築されたN個のサンプリングニューラルネットワークのうち予め設定された条件を満たすニューラルネットワークが存在するようになるまで、それぞれN個の正確度に応じてN種類の新たなネットワークブロックを再度生成し、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとすることを含んでもよい。
【0072】
例示的に、N個の訓練ノードに基づいて得られたN個の正確度をネットワークコントローラーによってエージェント(agent)に伝送し、エージェントは正確度に基づいて該サンプリングニューラルネットワークが目標ニューラルネットワークであるかどうかを判断し、該サンプリングニューラルネットワークが目標ニューラルネットワークではない場合、サンプリング確率を修正し、新たなネットワークブロックを得て、新たなサンプリングニューラルネットワークを再度構成する。
【0073】
任意選択的な一例では、該ステップ104はプロセッサによってメモリに記憶された対応の命令を呼び出して実行してもよく、プロセッサにより運用されるネットワーク出力ユニット54によって実行してもよい。
【0074】
本実施例では、
図4は本願の方法によって構築された分散システムの構成模式図である。
図4に示すように、エージェント(agent)、ネットワーク構造コントローラー(Network structure controller)および少なくとも1つの訓練ノード(環境変数、即ちenvであって、図中の環境1、環境2…環境Nに対応するものであり、つまり、図中の環境それぞれは1つの訓練ノードを表す)を含む分散システムを構築することで複数の異なるニューラルネットワークの同時訓練を実現し、さらにニューラルネットワーク構造の生成速度を向上させ、訓練時間を節約し、ニューラルネットワークの訓練効率を向上させる。
【0075】
ニューラルネットワークに対応する正確度によってニューラルネットワークの優劣を評価し、正確度が設定条件に達した場合、該ニューラルネットワークは要求に適合すると認められ、サンプルデータに対応するタスクデータを処理し、良好な結果を得ることができ、当然ながら、正確度が高ければ高くなるほど、タスクデータに対するニューラルネットワークの処理結果は正確である。予め設定された条件は、X回循環した後、N個の「サンプリングニューラルネットワーク」のうち正確度が高いY個のサンプリングニューラルネットワークを、出力される目標ニューラルネットワークとするようにしてもよく、ここで、X、NおよびYはそれぞれ1以上の整数である。
【0076】
本願のニューラルネットワーク構造の生成方法の上記各実施例の任意選択的な一例では、ステップ103の後に、さらに、
正確度が予め設定された条件を満たすことに応答して、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとすること、
または、
正確度が予め設定された条件を満たさず、かつニューラルネットワーク構造に対するサンプリングが予め設定された回数に達したことに応答して、現在のサンプリングニューラルネットワークを目標ニューラルネットワークとすることを含む。
【0077】
本実施例では、ネットワークブロックからなるサンプリングニューラルネットワークが予め設定された条件を満たす場合、そのまま該サンプリングニューラルネットワークを目標ニューラルネットワークとすること、またはサンプリングが予め設定された回数に達した時に、得られたサンプリングニューラルネットワークを目標ニューラルネットワークとすることを初めて提案し、それによってニューラルネットワーク構造の生成速度を向上させる。
【0078】
当業者であれば、上記方法の実施例を実現する全てまたは一部のステップはプログラムによって関連ハードウェアに命令を出すことにより完了できることを理解でき、前記プログラムは、ROM、RAM、磁気ディスクまたは光ディスクなどのプログラムコードを記憶可能である様々な媒体を含むコンピュータ可読記憶媒体に記憶可能であり、該プログラムは実行される時に、上記方法の実施例を含むステップを実行する。
【0079】
図5は本願のニューラルネットワーク構造の生成装置の実施例の構成模式図である。該実施例の装置は本願の上記各方法の実施例を実現するために用いることができる。
図5に示すように、該実施例の装置は、
ニューラルネットワーク構造をサンプリングし、少なくとも1つのネットワーク層が含まれるネットワークブロックを生成するためのサンプリングユニット51と、
ネットワークブロックに基づいてサンプリングニューラルネットワークを構築するためのネットワーク構築ユニット52と、
サンプルデータに基づいてサンプリングニューラルネットワークを訓練し、サンプリングニューラルネットワークに対応する正確度を得るための訓練ユニット53と、
正確度が予め設定された条件を満たさないことに応答して、正確度に応じて新たなネットワークブロックを、それが構築するサンプリングニューラルネットワークが予め設定された条件を満たすようになるまで再度生成し、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとするためのネットワーク出力ユニット54と、を含む。
【0080】
本願の上記実施例が提供するニューラルネットワーク構造の生成装置に基づき、ニューラルネットワーク構造をサンプリングし、ネットワークブロックを生成し、ネットワークブロックに基づいてサンプリングニューラルネットワークを構築し、サンプリングによってサンプリングニューラルネットワークを構築することでネットワーク構造を手動で設定することを回避し、サンプルデータに基づいてサンプリングニューラルネットワークを訓練し、サンプリングニューラルネットワークに対応する正確度を得て、訓練によってサンプリングニューラルネットワークにおけるパラメータを現在の構造に好適であるようにし、該サンプリングニューラルネットワークに対応する好適な正確度を得ることができ、そして正確度が予め設定された条件を満たさないことに応答して、正確度に応じて新たなネットワークブロックを、それが構築するサンプリングニューラルネットワークが予め設定された条件を満たすようになるまで再度生成し、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとし、このサンプルデータに基づいて強化学習によって生成されるサンプリングニューラルネットワークは、サンプルデータに対応するタスクおよび/またはデータに対して所望の正確度に達することが可能であり、ネットワーク構造設計のコストおよび時間を削減する。
【0081】
本願のニューラルネットワーク構造の生成装置の別の実施例では、上記実施例のもとに、サンプリングユニット51は、
1つの確率ベクトルに基づいてニューラルネットワーク構造をサンプリングし、少なくとも1種類のネットワーク層、少なくとも1種類のネットワーク層に対応するネットワークパラメータおよび少なくとも1種類のネットワーク層の間の連結方式を得るための確率サンプリングモジュールと、
少なくとも1種類のネットワーク層を積み上げて1種類のネットワークブロックを構成するためのネットワークブロック生成モジュールと、を含む。
【0082】
本実施例では、ネットワーク層データベースに少なくとも1種類のネットワーク層が含まれるため、ネットワーク層のタイプや数に対応する確率ベクトルによってサンプリングすれば、少なくとも1種類のネットワーク層をサンプリングでき、ネットワーク層には対応するネットワークパラメータが存在しており、サンプリング中にネットワーク層に対応するネットワークパラメータが同時に取得され、ネットワーク層それぞれは、予め設定された連結方式を有し、任意選択的に、ネットワーク層を取得すると共に、ネットワーク層の間の連結方式を取得してもよく、ここで、確率ベクトル内の確率値それぞれは1種類のネットワーク層に対応しており、ある1種類のネットワーク層に対応する確率値が0である場合、サンプリングして構成されたネットワークブロックには該種類のネットワーク層が含まれないようになり、また確率ベクトル内の確率値によって、サンプリングして得られた各種類のネットワーク層の数を決定でき、1種類毎にネットワーク層を1つサンプリングすることに限定されない。
【0083】
本願のニューラルネットワーク構造の生成装置の上記各実施例の任意選択的な一例では、ネットワーク層は、
畳み込み層、最大プーリング層、平均プーリング層、アイデンティティ層、特徴重畳層および連結層などの任意の1つまたは複数を含む。
【0084】
本願のニューラルネットワーク構造の生成装置の上記各実施例の任意選択的な一例では、ネットワークブロック生成モジュールは、サンプリングして得られたネットワーク層を分析し、少なくとも1種類のネットワーク層のタイプ、少なくとも1タイプのネットワーク層の数、および少なくとも1種類のネットワーク層の連結順序を得て、そして得られたネットワーク層を少なくとも1種類のネットワーク層に対応する連結順序に従って、少なくとも1種類のネットワーク層の間の連結関係によって連結して1種類のネットワークブロックを得るために用いられてもよい。
【0085】
本願のニューラルネットワーク構造の生成装置の別の実施例では、上記各実施例のもとに、ネットワーク出力ユニット54は、サンプリングニューラルネットワークに対応する正確度に応じてニューラルネットワーク構造をサンプリングする確率ベクトルを調整し、調整後の確率ベクトルによってニューラルネットワーク構造をサンプリングし、1種類の新たなネットワークブロックを生成するために用いられてもよい。
【0086】
本実施例では、任意選択的に、強化学習という方式でネットワークブロックの構造を調整し、ニューラルネットワークの正確度が設定値に達していない場合、このニューラルネットワーク構造は十分に良好ではなく、返される報酬(reward)が少なく、このとき、改めてサンプリングして新たなネットワークブロックを構成し、さらに新たなネットワークブロックでニューラルネットワークを、正確度が標準に達するニューラルネットワークを得るまで、構築する。
【0087】
本願のニューラルネットワーク構造の生成装置のさらに別の実施例では、上記各実施例のもとに、訓練ユニット53は、
サンプリングニューラルネットワークを利用してサンプルデータを処理し、処理結果を得るためのネットワーク処理モジュールと、
損失関数を利用し、監督情報でラベル付けされたサンプルデータにラベル付けした監督情報と処理結果との間の誤差値を計算するための誤差計算モジュールと、
サンプリングニューラルネットワークが収束条件を満たすようになるまで、誤差値に基づいてサンプリングニューラルネットワークを訓練するためのネットワーク訓練モジュールと、を含む。
【0088】
ここで、サンプルデータは監督情報でラベル付けされ、該監督情報はサンプルデータが既知の、該サンプリングニューラルネットワークに対応する処理すべき目標結果であり、訓練して得られたニューラルネットワークの機能はその内容によって決定される。
【0089】
本実施例では、構築されるニューラルネットワークの構造が特定のタスクデータに適応するように保証し、該ニューラルネットワークが該タスクデータを正確に処理可能であるかどうかを識別するために、該タスクデータの対応するサンプルデータでニューラルネットワークを訓練する必要があり、ニューラルネットワークの訓練プロセスは従来技術における一般的な逆勾配アルゴリズムによって実現してもよく、ニューラルネットワークにおけるパラメータが好適になることを訓練の結果とし、このとき、得られた監督情報と処理結果との間の誤差値によって該ニューラルネットワークの正確度を特定でき、正確度と誤差値は反比例し、誤差値が大きければ大きくなるほど、正確度が小さくなり、該サンプルデータに対する該ニューラルネットワークの処理効果が悪くなり、誤差値が小さければ小さくなるほど、正確度が大きくなり、該サンプルデータに対する該ニューラルネットワークの処理効果が高くなる。
【0090】
本願のニューラルネットワーク構造の生成装置の上記各実施例の任意選択的な一例では、ネットワーク訓練モジュールは、
損失関数の収束速度が設定値以上であることに応答して、得られた誤差値に応じて、逆勾配アルゴリズムによってサンプリングニューラルネットワークにおけるパラメータを調整し、調整後のサンプリングニューラルネットワークを得て、そして調整後のニューラルネットワークに対応する損失関数の収束速度が設定値よりも小さくなるまで調整し続けるために用いられてもよい。
【0091】
本願のニューラルネットワーク構造の生成装置の上記各実施例の任意選択的な一例では、ネットワーク訓練モジュールは、
損失関数による誤差値計算回数が設定値よりも小さいことに応じて、得られた誤差値に応じて、逆勾配アルゴリズムによってサンプリングニューラルネットワークにおけるパラメータを調整し、調整後のサンプリングニューラルネットワークを得て、かつ損失関数による誤差値計算回数に1を加え、そして調整後のニューラルネットワークの対応する損失関数による誤差値計算回数が設定値以上になるまで行うために用いられてもよい。
【0092】
本願のニューラルネットワーク構造の生成装置の上記各実施例の任意選択的な一例では、訓練ユニット53はさらに、
訓練が完了したサンプリングニューラルネットワークの誤差値にしたがってサンプリングニューラルネットワークの予測正確度を計算して得るための正確度予測モジュールと、
予測正確度に基づき、前記サンプリングニューラルネットワークに対応するネットワーク計算複雑度およびネットワーク密度を予め設定された比率で差し引き、サンプリングニューラルネットワークに対応する正確度を得るための正確度調整モジュールと、を含んでもよい。
【0093】
本願のニューラルネットワーク構造の生成装置のさらに別の実施例では、上記各実施例のもとに、
サンプリングユニット51は、ニューラルネットワーク構造をサンプリングし、N種類のネットワークブロックを生成するために用いられてもよく、
ネットワーク構築ユニット52は、それぞれN種類のネットワークブロックに基づいてN個のサンプリングニューラルネットワークを構築するために用いられてもよく、
訓練ユニット53は、サンプルデータに基づいてN個のサンプリングニューラルネットワークをそれぞれ訓練し、N個のサンプリングニューラルネットワークに対応するN個の正確度を得るために用いられてもよく、
ネットワーク出力ユニット54は、N個の正確度のうち予め設定された条件を満たす正確度が存在しないことに応答して、新たなネットワークブロックによってそれぞれ構築されたN個のサンプリングニューラルネットワークのうち予め設定された条件を満たすニューラルネットワークが存在するようになるまで、それぞれN個の正確度に応じてN種類の新たなネットワークブロックを再度生成し、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとするために用いられてもよく、
ここで、Nはゼロよりも大きい整数である。
【0094】
本実施例では、エージェント(agent)、ネットワーク構造コントローラー(Network structure controller)および少なくとも1つの訓練ノード(環境変数、env)を含む分散システムを構築することで複数の異なるニューラルネットワークの同時訓練を実現し、さらにニューラルネットワーク構造の生成速度を向上させ、訓練時間を節約し、ニューラルネットワークの訓練効率を向上させる。
【0095】
本願のニューラルネットワーク構造の生成装置の上記各実施例の任意選択的な一例では、さらに、
正確度が予め設定された条件を満たすことに応答して、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとするための、
または、正確度が予め設定された条件を満たさず、かつニューラルネットワーク構造に対するサンプリングが予め設定された回数に達したことに応答して、現在のサンプリングニューラルネットワークを目標ニューラルネットワークとするための目標ネットワーク判定ユニットを含む。
【0096】
本願の実施例の一態様によれば、本願のニューラルネットワーク構造の生成装置の各実施例のいずれかを含むプロセッサを含む電子機器が提供される。
【0097】
本願の実施例の一態様によれば、実行可能命令を記憶するためのメモリと、
メモリと通信して実行可能命令を実行することで本願のニューラルネットワーク構造の生成方法の各実施例のいずれかにおける動作を完了するためのプロセッサと、を含む電子機器が提供される。
【0098】
本願の実施例の一態様によれば、コンピュータ可読命令を記憶するためのコンピュータ記憶媒体であって、前記命令は実行される時に本願のニューラルネットワーク構造の生成方法の各実施例のいずれかにおける動作を実行するコンピュータ記憶媒体が提供される。
【0099】
本願の実施例はさらに電子機器を提供し、例えば移動端末、パーソナルコンピュータ(PC)、タブレット、サーバなどであってもよい。以下に
図6を参照すると、本願の実施例の端末機器またはサーバの実現に適する電子機器600の構成模式図が示される。
図6に示すように、コンピュータシステム600は一つ以上のプロセッサ、通信部などを含み、前記一つ以上のプロセッサは例えば、一つ以上の中央処理装置(CPU)601、および/または一つ以上の画像処理装置(GPU)613などであり、プロセッサは読み取り専用メモリ(ROM)602に記憶されている実行可能命令または記憶部分608からランダムアクセスメモリ(RAM)603にロードされた実行可能命令に従って様々な適当の動作および処理を実行できる。通信部612はネットワークカードを含むことができるが、これに限定されず、前記ネットワークカードはIB(Infiniband)ネットワークカードを含むことができるが、これに限定されず、プロセッサは読み取り専用メモリ602および/またはランダムアクセスメモリ603と通信して実行可能命令を実行し、バス604を介して通信部612と連結し、通信部612によって他の目標機器と通信し、それにより本願の実施例が提供するいずれか一項の方法の対応する動作、例えば、ニューラルネットワーク構造をサンプリングし、少なくとも1つのネットワーク層が含まれるネットワークブロックを生成することと、ネットワークブロックに基づいてサンプリングニューラルネットワークを構築することと、サンプルデータに基づいてサンプリングニューラルネットワークを訓練し、サンプリングニューラルネットワークに対応する正確度を得ることと、正確度が予め設定された条件を満たさないことに応答して、正確度に応じて新たなネットワークブロックを、それが構築するサンプリングニューラルネットワークが予め設定された条件を満たすようになるまで再度生成し、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとすることと、を完了することができる。
【0100】
また、RAM603には、装置の動作に必要な種々のプログラムおよびデータを記憶することができる。CPU601、ROM602およびRAM603はバス604を介して互いに連結される。RAM603が存在する場合、ROM602は任意選択的なモジュールとなる。RAM603は実行可能命令を記憶するか、または動作時にROM602へ実行可能命令を書き込み、実行可能命令によってプロセッサ601は上記通信方法の対応する動作を実行する。入力/出力(I/O)インタフェース605もバス604に連結される。通信部612は統合設置してもよく、また複数のサブモジュール(例えば複数のIBネットワークカード)を有するように設置してもよく、かつバスリンクに存在する。
【0101】
キーボード、マウスなどを含む入力部分606、陰極線管(CRT)、液晶ディスプレイ(LCD)などおよびスピーカーなどを含む出力部分607、ハードディスクなどを含む記憶部分608、およびLANカード、モデムのネットワークインタフェースカードなどを含む通信部分609といった部品は、I/Oインタフェース605に連結される。通信部分609はインタネットのようなネットワークによって通信処理を実行する。ドライバ610も必要に応じてI/Oインタフェース605に連結される。取り外し可能な媒体611、例えば磁気ディスク、光ディスク、磁気光ディスク、半導体メモリなどは、必要に応じてドライバ610に取り付けられ、それによってそこから読み出されたコンピュータプログラムが必要に応じて記憶部分608にインストールされる。
【0102】
なお、
図6に示すアーキテクチャは任意選択的な一実施形態に過ぎず、任意選択的な実践では、実際の必要に応じて上記
図6の部品数およびタイプを選択、減少、増加または交換することができ、異なる機能部品の設置上でも、分離設置または統合設置などの実施形態を採用でき、例えばGPUとCPUは分離設置するかまたはGPUをCPUに統合するようにしてもよく、通信部は分離設置するか、またCPUやGPUに統合設置することなども可能であることを説明する必要がある。これらの置換可能な実施形態はいずれも本願が開示した保護範囲に属する。
【0103】
特に、本願の実施例によれば、フローチャートを参照しながら上述したプロセスはコンピュータソフトウェアプログラムとして実現可能である。例えば、本願の実施例はコンピュータプログラム製品を含み、それは機械可読媒体に有形に具現化された、フローチャートに示す方法を実行するためのプログラムコードを含むコンピュータプログラムを含み、プログラムコードは本願の実施例が提供する方法のステップを対応して実行する対応の命令、例えば、ニューラルネットワーク構造をサンプリングし、少なくとも1つのネットワーク層が含まれるネットワークブロックを生成することと、ネットワークブロックに基づいてサンプリングニューラルネットワークを構築することと、サンプルデータに基づいてサンプリングニューラルネットワークを訓練し、サンプリングニューラルネットワークに対応する正確度を得ることと、正確度が予め設定された条件を満たさないことに応答して、正確度に応じて新たなネットワークブロックを、それが構築するサンプリングニューラルネットワークが予め設定された条件を満たすようになるまで再度生成し、予め設定された条件を満たすサンプリングニューラルネットワークを目標ニューラルネットワークとすることと、を含んでもよい。このような実施例では、該コンピュータプログラムは通信部分609によってネットワークからダウンロードおよびインストールされ、および/または取り外し可能な媒体611からインストールされ得る。該コンピュータプログラムは中央処理装置(CPU)601により実行される時、本願の方法で限定された上記機能を実行する。
【0104】
本明細書における様々な実施例は漸進的に説明され、各実施例は他の実施例との相違点に集中して説明したが、各実施例間の同一または類似の部分については相互に参照すればよい。システム実施例については、それは基本的に方法実施例に対応するので、説明は比較的簡単であり、関連部分は方法実施例の説明の一部を参照すればよい。
【0105】
本願の方法および装置は、様々な形態で実現され得る。例えば、ソフトウェア、ハードウェア、ファームウェアまたはソフトウェア、ハードウェア、ファームウェアの任意の組み合わせによって本願の方法および装置を実現することができる。前記方法のステップのための上記順序は説明することのみを目的とし、本願の方法のステップは、特に断らない限り、以上で具体的に説明した順序に限定されない。また、いくつかの実施例では、本願は記録媒体に記憶されたプログラムとしてもよく、これらのプログラムは本願の方法を実現するための機械可読命令を含む。従って、本願は本願の方法を実行するためのプログラムが記憶された記録媒体も含む。
【0106】
本願の説明は、例示および説明のために提示されたものであり、網羅的なものでありもしくは開示された形式に本願を限定するというわけでない。当業者にとっては多くの修正および変形を加えることができるのは明らかであろう。実施例は本願の原理および実際の適用をより明瞭に説明するため、かつ当業者が本願を理解して特定用途に適した様々な修正を加えた様々な実施例を設計可能にするように選択され説明されたものである。