(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-13
(45)【発行日】2024-05-21
(54)【発明の名称】ニューラルネットワークの生成方法、機器及びコンピュータ可読記憶媒体
(51)【国際特許分類】
G06N 3/0985 20230101AFI20240514BHJP
G06N 3/096 20230101ALI20240514BHJP
G06N 3/045 20230101ALI20240514BHJP
G06N 3/082 20230101ALI20240514BHJP
【FI】
G06N3/0985
G06N3/096
G06N3/045
G06N3/082
(21)【出願番号】P 2022580186
(86)(22)【出願日】2021-06-22
(86)【国際出願番号】 CN2021101545
(87)【国際公開番号】W WO2021259262
(87)【国際公開日】2021-12-30
【審査請求日】2022-12-29
(31)【優先権主張番号】202010581487.2
(32)【優先日】2020-06-23
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】511151662
【氏名又は名称】中興通訊股▲ふん▼有限公司
【氏名又は名称原語表記】ZTE CORPORATION
【住所又は居所原語表記】ZTE Plaza,Keji Road South,Hi-Tech Industrial Park,Nanshan Shenzhen,Guangdong 518057 China
(74)【代理人】
【識別番号】100112656
【氏名又は名称】宮田 英毅
(74)【代理人】
【識別番号】100089118
【氏名又は名称】酒井 宏明
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】裘 瑞涛
(72)【発明者】
【氏名】楊 ▲璽▼坤
(72)【発明者】
【氏名】駱 慶開
(72)【発明者】
【氏名】韓 炳涛
(72)【発明者】
【氏名】王 永成
(72)【発明者】
【氏名】屠 要峰
【審査官】円子 英紀
(56)【参考文献】
【文献】米国特許出願公開第2018/0268292(US,A1)
【文献】特開2020-087288(JP,A)
【文献】特開2020-071862(JP,A)
【文献】特表2019-533257(JP,A)
【文献】特表2019-535084(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
システムアーキテクチャプラットフォームによって実行されるニューラルネットワークの生成方法であって、
最適マイクロユニットを取得し、前記最適マイクロユニットに基づいて第1ネットワークを構築するステップと、
既定の訓練データセットを用いて前記第1ネットワークを訓練して、第2ネットワークを得るステップと、
マイクロユニットの数が前記第1ネットワークの最適マイクロユニットの数より少ない第3ネットワークを構築し、前記第2ネットワークを用いて前記第3ネットワークの各マイクロユニットを訓練するステップと、
前記第3ネットワーク内の訓練後の前記マイクロユニットに基づいて、ニューラルネットワークモデルを得るステップと、
を含むニューラルネットワークの生成方法。
【請求項2】
前記最適マイクロユニットに基づいて第1ネットワークを構築する前記ステップは、
事前定義のサイズに従って、前記最適マイクロユニットをN回スタックして前記第1ネットワークを生成し、ここで、Nは2の整数乗であるステップを含む
請求項1に記載のニューラルネットワークの生成方法。
【請求項3】
第3ネットワークを構築する前記ステップは、
マイクロユニットの数はN/MでN/M>1を満たす第3ネットワークを構築し、ここで、Mは2の整数乗であるステップと、
すべての前記第3ネットワークを初期化するステップと、
を含む請求項2に記載のニューラルネットワークの生成方法。
【請求項4】
前記第3ネットワーク内の訓練後の前記マイクロユニットに基づいて、ニューラルネットワークモデルを得る前記ステップは、
訓練済みの前記マイクロユニットを結合させて、マイクロユニット数の異なる前記ニューラルネットワークモデルを得るステップであって、前記ニューラルネットワークモデルの数の範囲は2~N個であるステップを含む
請求項3に記載のニューラルネットワークの生成方法。
【請求項5】
前記第2ネットワークを用いて前記第3ネットワークの各マイクロユニットを訓練する前記ステップは、
前記第2ネットワークを前記訓練データセットと組み合わせて用いて、前記第2ネットワークの局所入出力の方式により前記第3ネットワークの各マイクロユニットを訓練するステップを含む
請求項1から4の何れか一項に記載のニューラルネットワークの生成方法。
【請求項6】
各前記ニューラルネットワークモデルをテストまたは評価し、既定条件を満たすニューラルネットワークモデルをターゲットニューラルネットワークとして選択するステップをさらに含む
請求項1に記載のニューラルネットワークの生成方法。
【請求項7】
各前記ニューラルネットワークモデルをテストまたは評価し、既定条件を満たすニューラルネットワークモデルをターゲットニューラルネットワークとして選択する前記ステップは、
既定のテストデータセットを用いて各前記ニューラルネットワークモデルをテストし、各前記ニューラルネットワークモデルのテスト正解率を取得するステップと、
各前記ニューラルネットワークモデルを用いて同じタスクをそれぞれ実行し、各前記ニューラルネットワークモデルの時間遅延を取得するステップと、
ターゲットニューラルネットワークモデルの時間遅延が既定値より低く、且つテスト正解率が最適値であれば、前記ターゲットニューラルネットワークモデルを前記ターゲットニューラルネットワークとして決定するステップと、
を含む請求項6に記載のニューラルネットワークの生成方法。
【請求項8】
最適マイクロユニットを取得する前記ステップは、
ニューラルネットワークアーキテクチャ探索NASアルゴリズムに従って、既定の探索空間を用いて前記最適マイクロユニットのネットワーク構造を得るステップを含む
請求項1に記載のニューラルネットワークの生成方法。
【請求項9】
メモリと、プロセッサと、メモリに記憶されて且つプロセッサ上で実行できるコンピュータプログラムとを含む機器であって、
前記プロセッサにより前記コンピュータプログラムが実行された場合、請求項1から8の何れか一項に記載のニューラルネットワークの生成方法を実現する
機器。
【請求項10】
コンピュータ実行可能な指令を記憶しているコンピュータ可読記憶媒体であって、
前記コンピュータ実行可能な指令は、請求項1から8の何れか一項に記載のニューラルネットワークの生成方法を実行するように構成された
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は出願番号が202010581487.2で、出願日が2020年06月23日である中国特許出願に基づいて提出され、その中国特許出願の優先権を主張し、その中国特許出願の全ての内容を参考として本願に援用する。
【0002】
本願は、コンピュータ技術の分野に関し、特に、ニューラルネットワークの生成方法、機器及びコンピュータ可読記憶媒体に関する。
【背景技術】
【0003】
近年では、深層学習技術はより強い計算能力のサポートにより大きく発展し、コンピュータ視覚、音声認識、自然言語処理など多くの分野で大きな成功を収めている。研究者は、深層学習モデルを構成する複数の要素のうち、人工ニューラルネットワークの構造の違いがモデルの最終的な性能に莫大な影響を与えることを発見した。通常、特定の問題に対して適切なニューラルネットワークを設計するには、経験が豊富なアルゴリズムエンジニアが膨大な時間と労力を費やしてモデルの調整と検証を繰り返す必要があり、調整の効率が悪く、効果の保証が難しい。そのため、目標問題に合わせてニューラルネットワーク構造を自動的に決定できるニューラルネットワークアーキテクチャ探索技術は、深層学習分野における近年の研究の焦点となっている。
【0004】
しかしながら、従来のニューラルネットワーク探索技術では、実際の応用時に、具体的な配置の問題が存在し、すなわち、特定の問題を解決するニューラルネットワークは、最終的には、計算能力が大きく異なるさまざまな端末、例えば、各種モデルの携帯電話、タブレットコンピュータ、ノートパソコン、デスクトップなどに配置する必要がある。そのため、様々な推論端末に向けて、サイズの揃ったニューラルネットワークモデルのグループを提供する必要があるが、このようなモデルグループの生成に要する計算能力のコストも莫大なものである。従来、ニューラルネットワークモデルグループの生成スキームとして、大まかに次のようなスキームが挙げられる。(1)マイクロユニットネットワークを構築して、1つずつ訓練する。(2)大量の第3ネットワークを含むハイパーネットワークを定義し、訓練する。二つのスキームのいずれも、計算能力を大量に消費する必要があることが明らかである。そのため、効率的なニューラルネットワークモデル構築方法を提案することは、実際の応用へのニューラルネットワーク探索の配置段階にとって重大な意義を持っている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願は、関連する技術問題の1つを少なくともある程度解決することを目的とする。このために、本願は、ニューラルネットワークの生成方法、機器及びコンピュータ可読記憶媒体を提案する。
【課題を解決するための手段】
【0006】
第1態様において、本願の実施形態により提供されるニューラルネットワークの生成方法は、最適マイクロユニットを取得し、前記最適マイクロユニットに基づいて第1ネットワークを構築するステップと、既定の訓練データセットを用いて前記第1ネットワークを訓練して、第2ネットワークを得るステップと、マイクロユニットの数が前記第1ネットワークの最適マイクロユニットの数より少ない第3ネットワークを構築し、前記第2ネットワークを用いて前記第3ネットワークの各マイクロユニットを訓練するステップと、前記第3ネットワーク内の訓練後の前記マイクロユニットに基づいて、ニューラルネットワークモデルを得るステップと、を含む。
【0007】
第2態様において、本願の実施形態により提供される機器は、メモリ、プロセッサ及びメモリに記憶されて且つプロセッサ上で実行できるコンピュータプログラムを含み、前記プロセッサにより前記コンピュータプログラムを実行した場合、上記の第1態様の実施形態に記載のニューラルネットワークの生成方法を実現する。
【0008】
第3態様において、本願の実施形態により提供されるコンピュータ可読記憶媒体にはコンピュータ実行可能な指令が記憶されており、前記コンピュータ実行可能な指令は、上記の第1態様の実施形態に記載のニューラルネットワークの生成方法を実行するように構成されている。
【0009】
本願の他の特徴及び利点は、後の明細書において説明され、明細書から部分的に明らかになるか、または本願を実施することによって理解されるだろう。本願の目的及び他の利点は、明細書、特許請求の範囲及び図面において特別に指摘される構成によって達成し、得ることができる。添付図面は、本願の技術案の更なる理解を提供するものであり、明細書の一部を構成し、本願の実施形態と共に本願の技術案を解釈するために使用され、本願の技術案に対する制限を構成するものではない。
【図面の簡単な説明】
【0010】
【
図1】本願の一実施形態により提供されるシステムアーキテクチャプラットフォームの模式図である。
【
図2】本願の一実施形態により提供されるニューラルネットワークの生成方法のフローチャートである。
【
図3】本願の別の実施形態により提供されるニューラルネットワークの生成方法のフローチャートである。
【
図4】本願の別の実施形態により提供されるニューラルネットワークの生成方法のフローチャートである。
【
図5】本願の別の実施形態により提供されるニューラルネットワークの生成方法のフローチャートである。
【
図6】本願の別の実施形態により提供されるニューラルネットワークの生成方法のフローチャートである。
【
図7】本願の別の実施形態により提供されるニューラルネットワークの生成方法のフローチャートである。
【
図8】本願の別の実施形態により提供されるニューラルネットワークの生成方法のフローチャートである。
【発明を実施するための形態】
【0011】
本願の目的、技術案及び利点をより明らかにするために、以下では、添付図面及び実施形態を組み合わせて本願をさらに詳しく説明する。ここで説明する具体的な実施形態は本願を解釈するためだけに使われるものであって、本願を限定するために使われるものではない。
【0012】
なお、装置の模式図には機能モジュール分割が示され、フローチャートには論理的順序が示されているが、場合によっては、装置内のモジュール分割またはフローチャート内の順序とは異なるように、図示又は説明されたステップを実行してもよい。明細書、特許請求の範囲または上記図面における用語「第1」、「第2」等は類似の対象を区別するためのものであり、必ずしも特定の順序又は前後の順番を記述するためのものではない。
【0013】
従来のニューラルネットワークアーキテクチャ探索(Neural Architecture Search,NAS)においてアーキテクチャ探索ポリシーについての研究は、マクロ探索とマイクロ探索との2種類に大きく分けることができる。マクロ探索とは、探索アルゴリズムがニューラルネットワークを1つのまとまりと見なし、探索ポリシーでは選択的に特定の一層または複数の層を指定して代替的操作(層のタイプまたはパラメータの変更、新しい層の挿入)を実行する方法である。この方法の欠点は、探索空間が膨大すぎて、複雑度の高い問題について、適切なニューラルネットワークアーキテクチャを探し出すのにどれくらいの時間が必要かを判断するのは非常に困難である。そのため、現在注目度の低い研究である。マイクロ探索は人が設計するニューラルネットワークの優れた事例(例えばResNet、InceptionNetなど)からの経験を参考して、探索空間を一組のマイクロユニットのスタックと見なして、探索ポリシーとして、相対的に限られた探索空間内で最適なネットワークマイクロアーキテクチャを探し出すだけでよい。具体的な応用時には、異なる数のマイクロユニットをスタックし、複雑度の異なる問題に適合することができる。マイクロ探索NASアルゴリズムは、その大きさが合理的な探索空間と柔軟な利用方式から、現在注目度の非常に高い研究となっている。
【0014】
しかしながら、従来のマイクロ探索NASアルゴリズムでは、実際の応用時には、具体的な配置問題が存在する。すなわち、特定の問題を解決するニューラルネットワークは、最終的には、計算能力が大きく異なるさまざまな端末(例えば、各種モデルの携帯電話、タブレットコンピュータ、ノートパソコン、デスクトップなど)に配置する必要がある。そのため、NASアルゴリズムの場合、様々な推論端末に向けて、サイズの揃ったニューラルネットワークモデルのグループを提供する必要があるが、このようなモデルグループの生成に要する計算能力のコストも莫大なものであり、大量な計算能力を大量に消費する必要がある。
【0015】
上記の状況に基づいて、本願の実施形態はニューラルネットワークの生成方法、機器及びコンピュータ可読記憶媒体を提供し、最適マイクロユニットを取得し、該最適マイクロユニットを用いて第1ネットワークを構築することで、第1ネットワークが十分に強力な性能を有するようになり、実際の応用需要を満たすことができる。既定の訓練データセットを用いて第1ネットワークを訓練して、第2ネットワークを得て、マイクロユニットの数が第2ネットワークのマイクロユニットの数より少ない第3ネットワークを構築し、第2ネットワークを用いてすべての第3ネットワークの各マイクロユニットを訓練して、訓練を経た第3ネットワークのマイクロユニットに基づいて構築すると、ニューラルネットワークモデルを得ることができる。こうして、すべての第3ネットワークのマイクロユニット機能が第2ネットワークの機能に対応し、従来のマイクロユニットを一つずつ訓練する方法に比べて、訓練数を減らすことができ、計算能力の需要を効果的に下げることができるため、ニューラルネットワークモデルの生成コストを下げることができるとともに、すべての第3ネットワークのマイクロユニットは並行して訓練することができるため、ニューラルネットワークモデルの構築効率を効果的に高めることができる。
【0016】
以下では、図面に関連して、本願の技術案を明確且つ完全に説明する。以下で説明される実施形態は本願のすべての実施形態ではなく、本願の一部の実施形態に過ぎないことは明らかである。
【0017】
図1に示すように、
図1は本願の一実施形態により提供される、ニューラルネットワークの生成方法を実行するためのシステムアーキテクチャプラットフォーム100の模式図である。
【0018】
図1に示す実施形態において、該システムアーキテクチャプラットフォーム100はメモリ120とプロセッサ110とを含み、メモリ120とプロセッサ110は、バスまたはその他の方法で接続されてもよく、
図1にはバスで接続されている例が示されている。
【0019】
メモリ120は、非一時的なコンピュータ可読記憶媒体として、非一時的なソフトウェアプログラムと、非一時的なコンピュータ実行可能なプログラムとを記憶するために使用することができる。さらに、メモリ120は、高速ランダムアクセスメモリを含むことができ、また非一時的なメモリ、例えば少なくとも1つの磁気ディスクメモリ装置、フラッシュメモリ装置、または他の非一時的なソリッドステートメモリ装置を含むことができる。いくつかの実施形態において、メモリ120は、プロセッサに対して遠隔地に配置されたメモリを含んでもよく、これらの遠隔メモリ120は、ネットワークを介して該システムアーキテクチャプラットフォーム100に接続することができる。上記のネットワークの実例は、インターネット、社内イントラネット、ローカルエリアネットワーク、移動通信ネットワーク、及びこれらの組み合わせを含むが、これらに限定されない。
【0020】
本願の実施形態に記載されたシステムアーキテクチャプラットフォーム100および応用シナリオは、本願の実施形態により提供される技術案に対する限定を構成するものではなく、本願の実施形態の技術案をより明確に説明するためのものである。システムアーキテクチャプラットフォーム100が進化し、新たな応用シナリオが現れたときに、本願の実施形態により提供される技術案が類似の技術課題に対しても同様に適用できることは、当業者にとって明らかである。
【0021】
図1に示すシステムアーキテクチャプラットフォーム100は本願の実施形態に対する限定を構成せず、図示より多い或いは少ない部品を含んでもよく、或いは一部の部品を組み合わせたり、異なる部品配置としたりしてもよいことは、当業者であれば理解できるであろう。
【0022】
図1に示すシステムアーキテクチャプラットフォーム100において、プロセッサ110は、メモリ120に記憶されているデータ処理プログラムを呼び出して、ニューラルネットワークの生成方法を実行することができる。
【0023】
上述したシステムアーキテクチャプラットフォーム100に基づいて、本願のニューラルネットワークの生成方法の各実施形態を以下に提案する。
【0024】
図2を参照し、
図2は本願の一実施形態により提供される、ニューラルネットワークの生成方法のフローチャートであり、該ニューラルネットワークの生成方法はステップS100、ステップS200、ステップS300及びステップS400を含むが、これらに限定されない。
【0025】
ステップS100において、最適マイクロユニットを取得し、最適マイクロユニットに基づいて第1ネットワークを構築する。
【0026】
一実施形態において、ニューラルネットワークアーキテクチャは大量のマイクロユニットから構成され、ニューラルネットワーク探索は一般的にまず探索空間を定義する。このような探索空間はニューラルネットワークアーキテクチャを定義する基本的な構築モジュールを含む。探索空間が大きいほど、探索アルゴリズムが実行すべき反復回数が多くなり、使用されるグラフィックスプロセッサ(Graphics Processing Unit、GPU)の計算能力も高く求められることが理解できる。最適化されたアルゴリズムを利用して最適なマイクロユニットネットワーク構造を自動的に探索することが可能になり、例えば、初期のアルゴリズムは進化的探索であり、良い検証指標が達成されるように、適応度に基づいて絶えず訓練され、突然変異する。また、強化学習に基づく探索アルゴリズムは、知的エージェントにネットワークアーキテクチャの最適構成を発見させ、このような知的エージェントは通常、再帰型ニューラルネットワークにより実現され、より高い報酬を得られるニューラルアーキテクチャを探し出すことを目標とする。本実施形態において、マイクロ探索NASアルゴリズムを用いて、探索空間から最適マイクロユニットを探索する。
【0027】
一実施形態において、得られた最適マイクロユニットに基づいて第1ネットワークを構築し、該第1ネットワークは、最適マイクロユニットを利用して構成される高性能を持つユニットネットワークであると認識してもよく、該ユニットネットワークのサイズは、第1ネットワークが実際の応用処理を満足できる十分に強い性能を有するように、実際の需要に応じてサイズをカスタマイズすることができる。例えば、最適マイクロユニットは、スタック方式で構築されて第1ネットワークを形成し、セルネットワークの迅速な構築を容易にする。スタックされる最適マイクロユニットの数が多いほど、第1ネットワークのサイズが大きくなり、性能も強くなることが理解されるであろう。逆に、スタックされる最適マイクロユニットの数が少ないほど、第1ネットワークのサイズが小さくなる。こうして、実際の応用時の需要に応じて第1ネットワークを構築することで、複雑度の異なる問題に適合することができる。
【0028】
なお、ステップS100を実行する前に、ユーザは、実際の状況に応じてマイクロユニットネットワーク構造の探索空間を構築し、該探索空間を初期化してから、該探索空間に基づいて最適マイクロユニットを取得し、すなわち、限られた探索空間内で最適マイクロユニットを探し出すことができる。探索空間の合理的なサイズは、計算能力の要求を低くすることおよび処理効率を向上させることに有利である。
【0029】
ステップS200において、既定の訓練データセットを用いて第1ネットワークを訓練して、第2ネットワークを得る。
【0030】
一実施形態において、既定の訓練データセットを用いて第1ネットワークを訓練し、訓練データセットは、マイクロユニットを訓練するためのデータ集合と理解してもよい。ステップS100において、最適マイクロユニットを用いて構築された第1ネットワークは、パラメータが定義されていないネットワークモデルであり、第1ネットワークに相応の演算能力を持たせるために、対応する訓練データを用いて、該ネットワークモデルのパラメータに対応して訓練することで、訓練を経た第1ネットワークである第2ネットワークを得る。
【0031】
深層学習を例として、訓練データセットを用いて深層学習モデルを訓練し、学習モデルが特定の性能指標を満たすようにし、訓練データが増えるにつれて、深層学習モデルの正解率が向上する。これによりわかるように、十分な訓練データリソースさえあれば、モデルを訓練する際のスケールアップによる正解率向上が期待できる。
【0032】
既定の訓練データセットは、異なるモデル対象に応じて異なるタイプの訓練データセットを選択すること、および異なるモデルの性能要件に応じて異なる訓練データ量を選択することとして理解してもよい。例えば、訓練の対象が画像認識モデルである場合、既定の訓練データセットとして大量の画像を選択することができる。また例えば、訓練の対象が音声認識モデルである場合、既定の訓練データセットとして大量の音声データを選択することができる。
【0033】
ステップS300において、マイクロユニットの数が第1ネットワークの最適マイクロユニットの数より少ない第3ネットワークを構築し、第2ネットワークを用いて第3ネットワークの各マイクロユニットを訓練する。
【0034】
一実施形態において、第3ネットワークは、パラメータが定義されていないネットワークモデルであり、構築される第3ネットワークのマイクロユニット数は、第1ネットワークの最適マイクロユニットの数より少ない。当然のことながら、マイクロユニット数の異なる複数の第3ネットワークを構築することが可能で、得られる第3ネットワークのマイクロユニットの数は、第1ネットワーク内の最適マイクロユニットの数より少ない。コンピュータによる演算を容易にするために、第3ネットワークのマイクロユニット数と第1ネットワークの最適マイクロユニット数との関係を倍数、累乗関係等に設定することができる。例えば、第1ネットワークの最適マイクロユニット数を20、40、120個などとしてもよく、第3ネットワークのマイクロユニット数を2、4、10個などとしてもよく、マイクロユニット数がそれぞれ2、4、10個などである第3ネットワークを構築することができる。
【0035】
第3ネットワークの構築が完了した後、第2ネットワークを用いてすべての第3ネットワークを訓練し、具体的には、第2ネットワークにより、第3ネットワーク内の各マイクロユニットをそれぞれ訓練する。また、各第3ネットワークのマイクロユニット数は、いずれも第2ネットワークのマイクロユニット数より少なく、マイクロユニットの数の多いネットワークモデルに比べて、マイクロユニット数の少ないネットワークモデルを訓練する方が、訓練スピードがもっと速い。また、第3ネットワークのマイクロユニットは並行して訓練することが可能で、すなわち同時に複数のマイクロユニットを訓練することが可能であるため、訓練効率がもっと高く、計算能力の要求を大幅に下げることができる。訓練を経た第3ネットワークは、第2ネットワークと同じ機能を有するようになる。例えば、第2ネットワークのマイクロユニット数が32個であり、第3ネットワークのマイクロユニット数が4個である場合、該第3ネットワークの4個のマイクロユニットは、それぞれ訓練された後、第2ネットワークの32個のマイクロユニットと同じ性能を有することができる。
【0036】
実施形態において、第2ネットワークを教師ネットワークとして定義し、第3ネットワークを学生ネットワークとして定義してもよく、教師ネットワークによりすべての学生ネットワークのマイクロユニットを訓練することができるとともに、すべての学生ネットワークのマイクロユニットは並行して訓練することができるため、訓練時間を削減し、訓練効率を向上させることができる。
【0037】
ステップS400において、第3ネットワーク内の訓練後のマイクロユニットに基づいて、ニューラルネットワークモデルを得る。
一実施形態において、上記のステップS300に従って、すべての第3ネットワークの各マイクロユニットを訓練する。訓練後、異なる第3ネットワークのマイクロユニットを並べて異なるニューラルネットワークモデルを得る。例えば、第3ネットワークのマイクロユニットは数が4個で、すべて訓練済みであり、該第3ネットワークの4個の訓練済みのマイクロユニットを並べてマイクロユニット数が4の1つのニューラルネットワークモデルを得る。異なる第3ネットワークの訓練済みマイクロユニットを組み合わせて1つのニューラルネットワークモジュールを得ることもできる。例えば、一つの第3ネットワーク内の訓練済みの2つのマイクロユニットと、もう一つの第3ネットワーク内の訓練済みの1つのマイクロユニットとを組み合わせて、マイクロユニット数が3個のニューラルネットワークモデルを得る。このように、ステップS400が完了すると、複数のニューラルネットワークモデルが得られるため、実際の応用時に適切なニューラルネットワークモデルを選択して異なる端末に配置して、計算能力の消費を効果的に削減することができる。
【0038】
本実施形態は、上述したステップS100、ステップS200、ステップS300及びステップS400のニューラルネットワークの生成方法により、実際の応用需要に応じて計算能力の異なる端末に適したニューラルネットワークモデルを得るため、従来のニューラルネットワーク訓練方法に比べて、訓練回数を効果的に削減し、計算能力の要求を低減することで、ニューラルネットワークモデルの生成コストを下げることができる。
【0039】
一実施形態において、ステップS100において、最適マイクロユニットに基づいて第1ネットワークを構築する流れは、以下のステップを含むことができるが、これらに限定されない。
【0040】
ステップS110において、事前定義のサイズに従って、最適マイクロユニットをN回スタックして第1ネットワークを生成し、ここで、Nは2の整数乗である。
【0041】
ここで、事前定義のサイズは、構築される第1ネットワークの、実際の応用需要に応じて設定されるマイクロユニット数として捉えてもよく、最適マイクロユニットはスタック方式で組み合わせられ、最適マイクロユニットのスタックされる数が多いほど、第1ネットワークのサイズが大きくなり、性能が高くなる。実施形態において、最適マイクロユニットをN回スタックすることで、第1ネットワークを生成する。Nは適合性が十分に強いネットワークを構成するために必要なマイクロユニット数であり、Nは32、64、128など、2の整数乗に設定される。例えば、画像認識のタスクを処理する必要があり、実際の推計によると32個のマイクロユニットを持つネットワークモデルを構築して初めてマッチングできるとすると、第1ネットワークの最適マイクロユニット数Nは32個、あるいは32個より大きい数としてもよく、例えばNの取る値を64個とすることで、十分に強い性能を有するネットワークモデルを得ることが可能で、複雑度の異なる問題に適合することができる。
【0042】
一実施形態において、具体的には、トポロジの原理に従って最適マイクロユニットをスタックしてもよい。トポロジ構造の構築原理は、物体の形状や大きさを考慮することなく、物体間の位置関係のみを考慮することである。トポロジでは、最適マイクロユニットをその大きさ、形状に関係のない点として捉えることができる。該トポロジは、ネットワークマクロトポロジまたはシーケンシャルトポロジとすることが可能で、トポロジに応じて最適マイクロユニット数を設定し、すべての最適マイクロユニットを接続して第1ネットワークを構成する。
【0043】
一実施形態において、ステップS100における最適マイクロユニットを取得する流れは、以下のステップを含むが、これらに限定されるものではない。
【0044】
ステップS120において、NASアルゴリズムに従って、既定の探索空間を用いて最適マイクロユニットのネットワーク構造を得る。
【0045】
実施形態において、NASアルゴリズムには、特定の問題のために最適なニューラルネットワークアーキテクチャを自動的に見つけるという特徴がある。NASアルゴリズムを用いれば、最適マイクロユニットを迅速に得ることができる。NASアルゴリズムは、探索空間と呼ばれる候補ニューラルネットワーク構造の集合を与え、探索ポリシーを用いて該探索空間から最適なネットワーク構造を探し出すものであり、ここではNASアルゴリズムの具体的な原理については説明を省略する。
【0046】
図3を参照し、一実施形態において、ステップS300における第3ネットワークを構築する流れは、以下のステップを含むことができるが、これらに限定されない。
【0047】
ステップS310において、マイクロユニットの数がN/MでN/M>1を満たす第3ネットワークを構築し、ここで、Mは2の整数乗である。
【0048】
ステップS320において、すべての第3ネットワークを初期化する。
【0049】
ここで、第3ネットワークを学生ネットワークとして定義し、第3ネットワークのマイクロユニット数を、第1ネットワークの最適マイクロユニット数Nに応じて決定し、Nの取る値は2の整数乗であり、第3ネットワークのマイクロユニット数はN/MでN/M>1を満たし、Mは2の整数乗である。なお、N、Mの取る値の範囲はいずれも2の整数乗であり、N/M>1はNの取る値がMより大きいことを示し、N/M>1の条件を満たすことを前提に、マイクロユニット数の異なる複数の第3ネットワークを構築することが可能で、すなわち、マイクロユニット数がN/2、N/4、N/8...2の学生ネットワークを構築することができる。例えば、第1ネットワークの最適マイクロユニットの数Nが32の場合、Mの値を2、4、8、16とすることができるため、マイクロユニット数が32/2=16、32/4=8、32/8=4、32/16=2を含む合計4つの学生ネットワークを構築する必要があることが分かる。そして、すべての学生ネットワークを初期化し、各学生ネットワークのモデルのパラメータにデフォルト値を与えることで、マイクロユニット数の異なる学生ネットワークを構築して得ることができる。
【0050】
なお、学生ネットワークのマイクロユニット数nと第1ネットワークの最適マイクロユニット数Nとが対数関係にあり、すなわち、n=logNであるため、教師ネットワークを用いてすべての学生ネットワークのマイクロユニットを訓練する場合、訓練数はN個のネットワーク構造からlogN個のネットワーク構造に減少し、訓練に必要な時間を効果的に下げることができ、訓練スピードは更に速くなる。また、第3ネットワークのマイクロユニットは並行して訓練することが可能で、すなわち同時に複数のマイクロユニットを訓練することが可能であるため、従来のマイクロユニットネットワークを1つずつ訓練するモードに比べて、訓練効率がより高く、計算能力の要求を大幅に下げることができる。
【0051】
一実施形態において、ステップS400における第3ネットワーク内の訓練後のマイクロユニットに基づいて、ニューラルネットワークモデルを得るステップは、以下のステップを含むことができるが、これらに限定されない。
【0052】
ステップS410において、訓練済みのマイクロユニットを結合させて、マイクロユニット数の異なるニューラルネットワークモデルを得て、ニューラルネットワークモデルの数の範囲は2~N個である。
【0053】
教師ネットワークを用いて学生ネットワークの各マイクロユニットを訓練し、訓練済みのマイクロユニットを並べて組み合わせるが、具体的には、並べて組み合わせる方式は訓練されるマイクロユニットの数に応じて決定される。例えば、学生ネットワークのマイクロユニット数が4個で、すべて訓練済みであり、該学生ネットワークの4個の訓練済みのマイクロユニットを並べてマイクロユニット数が4の1つのニューラルネットワークモデルを得る。また例えば、一つの学生ネットワーク内の訓練済みの2つのマイクロユニットと、もう一つの学生ネットワーク内の訓練済みの1つのマイクロユニットとを組み合わせて、マイクロユニット数が3のニューラルネットワークモデルを得る。すべての学生ネットワークのマイクロユニットを組み合わせることにより、すべてのサイズを有するニューラルネットワークモデルセットを得ることができる。該すべてのサイズを有するニューラルネットワークモデルセットは、マイクロユニット数の異なるすべてのニューラルネットワークの集合として捉えることができる。
【0054】
訓練を経たすべての学生ネットワークのマイクロユニットの機能は教師ネットワークのある局所写像に対応しているので、組み合わせにより得られるネットワークは、いずれも直接端末に配置するまたはわずかな微調整をしてから端末に配置することができる。
【0055】
なお、最適なマイクロユニットがN回スタックされて構成された第1ネットワークを例に、第1ネットワークを訓練した後に、マイクロユニット数Nの教師ネットワークを得るとともに、マイクロユニット数N/2、N/4、N/8...2の学生ネットワークを構築することができる。教師ネットワークを用いてすべての学生ネットワークを訓練し、訓練済みのマイクロユニットを組み合わせて、2~N個のニューラルネットワークモデルを得る。たとえば、Nが32の場合、マイクロユニット数がそれぞれ2、4、8、16の学生ネットワークを構築し、4つの学生ネットワークを得る。教師ネットワークは32個のマイクロユニットを有し、教師ネットワークにより、2つのマイクロユニットを有する学生ネットワークを訓練し、2つのマイクロユニットを有するニューラルネットワークモデルを得るが、該2つのマイクロユニットを有するニューラルネットワークモデルの機能はすべて教師ネットワークに対応する。教師ネットワークにより学生ネットワークを訓練することにより、教師ネットワークのマイクロユニットの機能が学生ネットワークのマイクロユニットにマッピングされることが分かる。また、教師ネットワークにより、4つのマイクロユニットを有する学生ネットワークを訓練し、4つのマイクロユニットを有するニューラルネットワークモデルを得る。このように、学生ネットワークのマイクロユニットを組み合わせることで、異なるニューラルネットワークモデルを得ることができる。
【0056】
一実施形態において、第2ネットワークを用いて第3ネットワークの各マイクロユニットを訓練するステップは、以下のステップを含むことができるが、これらに限定されない。
【0057】
ステップS330において、第2ネットワークを訓練データセットと組み合わせて用いて、第2ネットワークの局所入出力の方式により第3ネットワークの各マイクロユニットを訓練する。
【0058】
訓練時、訓練データセットに合わせて教師ネットワークを用いて、各学生ネットワークの各マイクロユニットをそれぞれ訓練し、該訓練データセットは教師ネットワークを訓練するための訓練データである。具体的には、教師ネットワークの局所入出力の訓練方式により、各学生ネットワークの各マイクロユニットを訓練する。
【0059】
【0060】
【0061】
【0062】
【0063】
【0064】
一実施形態において、ステップS410において、訓練済みのマイクロユニットを組み合わせて、2~N個のニューラルネットワークモデルを得る。すなわち、訓練済みのマイクロユニットを並べて組み合わせることにより、すべてのサイズを有するニューラルネットワークモデルセットを得ることができる。例えば、上述したステップS330の例において、次のようなすべてのサイズを有するニューラルネットワークモデルを得ることができる。
【0065】
【0066】
ここで、マイクロユニット数が5、6、7の組み合わせ方は以上に示したモデルに限らず、ここでは繰り返し列挙しない。
【0067】
図4を参照し、一実施形態において、ニューラルネットワークの生成方法の流れは、以下のステップをさらに含むが、これに限定されない。
【0068】
ステップS500において、各ニューラルネットワークモデルをテストまたは評価し、既定条件を満たすニューラルネットワークモデルをターゲットニューラルネットワークとして選択する。
【0069】
実施形態のステップS100、ステップS200、ステップS300およびステップS400が完了すると、すべてのサイズを有するニューラルネットワークモデルが得られる。ニューラルネットワークは、最終的には、計算能力が大きく異なるさまざまな端末に配置する必要があるため、ニューラルネットワークモデルの性能要件や配置対象端末への推論時間遅延要求などの制約条件に基づいて、すべての組み合せネットワークの中から適切なニューラルネットワークモデルを選択し、そして適切なニューラルネットワークモデルをターゲットニューラルネットワークとして、端末に配置する。
【0070】
具体的には、各ニューラルネットワークモデルをテストまたは評価する方式により、既定条件を満たすニューラルネットワークモデルをターゲットニューラルネットワークとして絞り込む。ここで、改良されたニューラルネットワークモデルを得るために、テスト方法は、テストデータセットを用いてすべてのニューラルネットワークモデルをテストすることができる。評価方法としては、ニューラルネットワークモデルの1秒あたりの浮動小数点演算回数(FLOPs)をオフラインで評価してもよく、例えばFLOPsが400M以下のニューラルネットワークモデルをターゲットニューラルネットワークとして選択する。
【0071】
図5を参照し、一実施形態において、各ニューラルネットワークモデルをテストまたは評価し、既定条件を満たすニューラルネットワークモデルをターゲットニューラルネットワークとして選択するステップは、以下のステップを含む。
【0072】
ステップS510において、既定のテストデータセットを用いて各ニューラルネットワークモデルをテストし、各ニューラルネットワークモデルのテスト正解率を取得する。
【0073】
ステップS520において、各ニューラルネットワークモデルを用いて同じタスクをそれぞれ実行し、各ニューラルネットワークモデルの時間遅延を取得する。
【0074】
ステップS530において、ターゲットニューラルネットワークモデルの時間遅延が既定値より低く、且つテスト正解率が最適値であれば、ターゲットニューラルネットワークモデルをターゲットニューラルネットワークとして決定する。
【0075】
ここで、ステップS510において、既定のテストデータセットは、ニューラルネットワークモデルをテストするためのデータ集合であると理解してもよく、異なる端末性能要件に応じて、相応のテストデータが選択される。各ニューラルネットワークモデルをテストすることで、各ニューラルネットワークモデルのテスト正解率を得ることが可能である。テスト正解率が高いほど、性能指標が高いため、テスト正解率の高いニューラルネットワークモデルが優先的に選択されることが分かる。
【0076】
ステップS520は、ターゲット端末上で実行され、各ニューラルネットワークモデルを用いて同じタスクをそれぞれ実行し、各ニューラルネットワークモデルの時間遅延を取得する。このステップは、端末上での各ニューラルネットワークモデルの時間遅延指標をテストするために用いられるが、一般的には、送信時間遅延と伝播時間遅延が主に考慮される指標であり、より高い時間遅延は、より大きいデータ処理の時間間隔とより低いタスク実行効率を示すため、タスク実行時の時間遅延の低いニューラルネットワークモデルを優先的に選択する。
【0077】
このように、時間遅延とテスト正解率との2つの指標に基づいて各ニューラルネットワークモデルをテストし、テストされたニューラルネットワークモデルの時間遅延が既定値より低く、且つテスト正解率が最適値であれば、該ニューラルネットワークモデルをターゲットニューラルネットワークとして決定し、実施形態において、時間遅延の制限条件を500ms以下であるように設定してもよいが、400ms以下または他の既定値としてもよい。テストセットの正解率は95%以上達するようにすることが可能で、実施形態においては96.3%に達するように選択される。
【0078】
上述した各実施形態におけるニューラルネットワークの生成方法の具体的なステップの流れをより明確に説明するために、以下に3つの実施形態を用いて説明する。
【0079】
実施形態1:
図6に示すように、NASアルゴリズムの探索空間がマイクロユニット空間であり、マイクロユニットが単入力単出力構造であり、マクロユニットトポロジがシーケンシャル構造であるように定義し、複数のマイクロユニットにより構成されたネットワークモデルは、画像分類問題を解決するために利用され、マルチチャンネル画像データを入力として、画像内容の実際の分類を出力する。ニューラルネットワークの生成方法は以下のようなステップを含む。
【0080】
ステップS610において、マイクロユニットネットワーク構造の探索空間を初期化し、マイクロ探索NASアルゴリズムを適用して、最適マイクロユニットを取得する。
【0081】
【0082】
【0083】
ステップS640において、学生ネットワークを構築し、ユニット数4と2の学生ネットワークの各マイクロユニットを、訓練データセットに合わせて教師ネットワークを用いてそれぞれ訓練する。
【0084】
ステップS650において、すべての学生ネットワークのマイクロユニットを訓練した後、並べて組み合わせることで、すべてのサイズを有するニューラルネットワークモデルセットを得る。
【0085】
教師ネットワークにより学生ネットワークを訓練する具体的なステップの流れは、実施形態のステップS330の流れを参照し、ここでは説明を省略する。該実施形態において、最適マイクロユニットは単入力単出力構造である。
【0086】
実施形態2:
図7に示すように、NASアルゴリズムの探索空間がマイクロユニット空間であり、マイクロユニットが二重入力単出力構造であるように定義し、複数のマイクロユニットにより構成されたネットワークモデルは、画像分類問題を解決するために利用され、マルチチャンネル画像データを入力として、画像内容の実際の分類を出力する。ニューラルネットワークの生成方法は以下のようなステップを含む。
【0087】
ステップS710において、マイクロユニットネットワーク構造の探索空間を初期化し、マイクロ探索NASアルゴリズムを適用して、最適マイクロユニットを取得する。
【0088】
【0089】
【0090】
ステップS740において、学生ネットワークを構築し、ユニット数4と2の学生ネットワークの各マイクロユニットを、訓練データセットに合わせて教師ネットワークを用いてそれぞれ訓練する。
【0091】
ステップS750において、すべての学生ネットワークのマイクロユニットを訓練した後、並べて組み合わせることで、すべてのサイズを有するニューラルネットワークモデルセットを得る。
【0092】
【0093】
【0094】
【0095】
【0096】
ステップS750において、3つのマイクロユニットネットワークを組み合わせる例として、以下の2つの組み合わせ方がある。
【0097】
【0098】
【0099】
該実施形態において、最適マイクロユニットは二重入力単出力構造である。
【0100】
実施形態3:
図8に示すように、すべてのサイズを有するニューラルネットワークモデルを取得した後、端末を配置する制限条件は、オンライン推論の時間遅延が500msを超えてはならないことであり、ニューラルネットワークモデルのテスト流れは、以下のステップを含む。
【0101】
ステップS810において、テストデータセット上でマイクロユニット数の異なるすべてのニューラルネットワークモデルの予測正解率を評価する。
【0102】
ステップS820において、ターゲット端末にマイクロユニット数の異なるすべてのニューラルネットワークモデルを適用して同じ推論タスクをそれぞれ実行し、端末が推論タスクを実行する際の時間遅延指標を記録する。
【0103】
ステップS830において、予測正解率と時間遅延指標とに基づいて、予め設定された推論時間遅延制限条件の下で、推論正解率の最も高いモデルを選択して端末に配置する。
【0104】
該実施形態において、端末では5つ以上のマイクロユニットからなる分類ネットワークを実行し、推論時間遅延はいずれも500msより大きく、制約条件を満たしていないため、4つ以下のマイクロユニットからなるネットワーク上で性能の最も良いニューラルネットワークモデルを選択することができる。たとえば、条件を満たすモデルのうち正解率の最も良いネットワークの場合、テストセットの正解率が96.3%に達することができるため、該端末に配置する際に、該ニューラルネットワークモデルを優先的に選択すべきである。
【0105】
また、本願の一実施形態はさらに、機器を提供し、該機器は、メモリ、プロセッサ及びメモリに記憶されて且つプロセッサ上で実行できるコンピュータプログラムを含む。プロセッサ及びメモリは、バスまたは他の方法によって接続されてもよい。
【0106】
メモリは、非一時的なコンピュータ可読記憶媒体として、非一時的なソフトウェアプログラムと、非一時的なコンピュータ実行可能なプログラムとを記憶するために使用することができる。さらに、メモリは、高速ランダムアクセスメモリを含むことができ、また非一時的なメモリ、例えば少なくとも1つの磁気ディスクメモリ装置、フラッシュメモリ装置、または他の非一時的なソリッドステートメモリ装置を含むことができる。いくつかの実施形態において、メモリは、プロセッサに対して遠隔地に配置されたメモリを含んでもよく、これらの遠隔メモリは、ネットワークを介してこのプロセッサに接続することができる。上記のネットワークの実例は、インターネット、社内イントラネット、ローカルエリアネットワーク、移動通信ネットワーク、及びこれらの組み合わせを含むが、これらに限定されない。
【0107】
なお、本実施形態の端末は、
図1に示す実施形態におけるシステムアーキテクチャプラットフォーム100を含むことができ、本実施形態における端末と
図1に示す実施形態におけるシステムアーキテクチャプラットフォーム100とは同一の発明構想に属するため、これらの実施形態は同一の実現原理及び技術的効果を有し、ここでは詳しく説明しない。
【0108】
上述した実施形態のニューラルネットワークの生成方法を実現するために必要な非一時的なソフトウェアプログラムおよび指令はメモリに記憶されており、プロセッサにより実行された場合、上述した実施形態におけるニューラルネットワークの生成方法、例えば、上述した
図2における方法ステップS100からS400、
図3における方法ステップS310からS320、
図4における方法ステップS500、
図5における方法ステップS510からS530、
図6における方法ステップS610からS650、
図7における方法ステップS710からS750、
図8における方法ステップS810からS830を、実行する。
【0109】
以上に説明された装置実施形態は、単に例示的なものであり、分離された部品として説明されたユニットは、物理的に分離されていてもよく、そうでなくてもよく、すなわち、一箇所にあってもよく、または複数のネットワークユニットに分散されていてもよい。本実施形態の態様の目的を達成するために、これらのモジュールの一部または全部を実際の必要に応じて選択することが可能である。
【0110】
また、本願の一実施形態は、コンピュータ可読記憶媒体をさらに提供し、該コンピュータ可読記憶媒体にはコンピュータ実行可能な指令が記憶されており、該コンピュータ実行可能な指令は、プロセッサまたはコントローラ、例えば、上述した端末実施形態におけるプロセッサによって実行されることで、上述した実施形態におけるニューラルネットワークの生成方法、例えば、上述した
図2における方法ステップS100からS400、
図3における方法ステップS310からS320、
図4における方法ステップS500、
図5における方法ステップS510からS530、
図6における方法ステップS610からS650、
図7における方法ステップS710からS750、
図8における方法ステップS810からS830を、上記プロセッサに実行させることができる。
【0111】
本願の実施形態によれば、最適マイクロユニットを取得し、該最適マイクロユニットを用いて第1ネットワークを構築することで、第1ネットワークが十分に強力な性能を有するようになり、実際の応用需要を満たすことができる。既定の訓練データセットを用いて第1ネットワークを訓練して、第2ネットワークを得る。マイクロユニット数が第1ネットワークの最適マイクロユニット数より少ない第3ネットワークを構築し、第2ネットワークを用いてすべての第3ネットワークの各マイクロユニットを訓練する。訓練を経た第3ネットワークのマイクロユニットに基づいて構築すると、ニューラルネットワークモデルを得ることができる。こうして、すべての第3ネットワークのマイクロユニット機能が第2ネットワークの機能に対応し、従来のマイクロユニットを一つずつ訓練する方法に比べて、訓練数を減らすことができ、計算能力の需要を効果的に下げることができるため、ニューラルネットワークモデルの生成コストを下げることができるとともに、すべての第3ネットワークのマイクロユニットは並行して訓練することができるため、ニューラルネットワークモデルの構築効率を効果的に高めることができる。
【0112】
当業者であれば、上記で開示された方法のすべてまたはいくつかのステップ、システムは、ソフトウェア、ファームウェア、ハードウェア、及びそれらの適切な組み合わせとして実施できることを理解できるであろう。いくつかの物理的組立体またはすべての物理的組立体は、中央処理装置、デジタルシグナルプロセッサまたはマイクロプロセッサのようなプロセッサによって実行されるソフトウェアとして、あるいはハードウェアとして、あるいは特定用途向け集積回路のような集積回路として実施することができる。そういったソフトウェアは、コンピュータ可読媒体上に分散することができ、コンピュータ可読媒体はコンピュータ記憶媒体(または非一時的な媒体)及び通信媒体(または一時的な媒体)を含むことができる。コンピュータ記憶媒体という用語は、情報(コンピュータ可読指令、データ構造、プログラムモジュール又は他のデータ)を記憶するための任意の方法または技術において実現される、揮発性及び不揮発性、取り外し可能及び取り外し不可能な媒体を含むことは、当業者にとって周知のことである。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)または他の光ディスク記憶装置、磁気カートリッジ、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報を記憶するために使用することができ、コンピュータによってアクセスすることができる任意の他の媒体を含むが、これらに限定されない。さらに、通信媒体は通常、コンピュータ可読指令、データ構造、プログラムモジュール、または搬送波または他の伝送メカニズムのような変調データ信号中の他のデータを含み、任意の情報伝送媒体を含むことができることは、当業者にとって周知のことである。
【0113】
以上では、本願のいくつかの実施形態について具体的に説明したが、本願は上記実施形態に限定されるものではない。当業者であれば、本願の範囲に反することなく、本願の特許請求の範囲に限定された範囲内に含まれる様々な均等的変形又は置換を行うこともできる。