JP2021064390A - ニューラルアーキテクチャ検索 - Google Patents

ニューラルアーキテクチャ検索 Download PDF

Info

Publication number
JP2021064390A
JP2021064390A JP2020215172A JP2020215172A JP2021064390A JP 2021064390 A JP2021064390 A JP 2021064390A JP 2020215172 A JP2020215172 A JP 2020215172A JP 2020215172 A JP2020215172 A JP 2020215172A JP 2021064390 A JP2021064390 A JP 2021064390A
Authority
JP
Japan
Prior art keywords
neural network
output
layer
controller
child
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020215172A
Other languages
English (en)
Other versions
JP7210531B2 (ja
Inventor
バレット・ゾフ
Zoph Barret
クォク・ヴィー・レ
V Le Quoc
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2021064390A publication Critical patent/JP2021064390A/ja
Priority to JP2022177577A priority Critical patent/JP2023024993A/ja
Application granted granted Critical
Publication of JP7210531B2 publication Critical patent/JP7210531B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】特定のタスクについて高性能のニューラルネットワークをもたらすニューラルネットワークアーキテクチャを効果的かつ自動的に選択する。【解決手段】コントローラパラメータの現在値を更新する方法であって、コントローラニューラルネットワークを使用して、出力シーケンスのバッチを生成302して、特定のニューラルネットワークタスクを実行する子ニューラルネットワークの夫々のアーキテクチャを定義して、出力シーケンスによって定義されたアーキテクチャを有する子ニューラルネットワークの夫々のインスタンスをトレーニング304して、子ニューラルネットワークのトレーニング済みインスタンスの性能メトリックを決定するために子ニューラルネットワークのインスタンスの性能を評価し、コントローラニューラルネットワークのコントローラパラメータを調整する308ために、子ニューラルネットワークのインスタンスの性能メトリックを使用する。【選択図】図3

Description

本明細書は、ニューラルネットワークアーキテクチャの修正に関する。
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を使用して、受信された入力の出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて、1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の次の層、すなわち次の隠れ層または出力層への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在値に従って受信された入力から出力を生成する。
いくつかのニューラルネットワークは、リカレントニューラルネットワークである。リカレントニューラルネットワークは、入力シーケンスを受信し、その入力シーケンスから出力シーケンスを生成するニューラルネットワークである。特に、リカレントニューラルネットワークは、現在の時間ステップにおける出力を計算する際に、前の時間ステップからのネットワークの内部状態の一部または全部を使用することができる。リカレントニューラルネットワークの一例は、1つまたは複数のLSTMメモリブロックを含むロングショートターム(LSTM)ニューラルネットワークである。各LSTMメモリブロックは、たとえば現在のアクティブ化を生成する際に使用するために、またはLSTMニューラルネットワークの他の構成要素に提供されるように、セルがセルの以前の状態を記憶することを可能にする入力ゲート、忘却ゲート、および出力ゲートを各々含む1つまたは複数のセルを含むことができる。
本明細書は、コントローラニューラルネットワークを使用して、特定のニューラルネットワークタスクを実行するように構成される子ニューラルネットワークのアーキテクチャを、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムがどのように決定できるかを説明する。
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実施することができる。システムは、効果的かつ自動的に、すなわちユーザ介入なしに、特定のタスクについて高性能のニューラルネットワークをもたらすことになるニューラルネットワークアーキテクチャを選択することができる。システムは、特定のタスクに適合する新規のニューラルネットワークアーキテクチャを効果的に決定することができ、結果として得られる子ニューラルネットワークがそのタスクに関して改善された性能を有することを可能にする。システムは、強化学習を介してコントローラニューラルネットワークをトレーニングすることによってアーキテクチャを決定するので、システムは、特定のタスクに適合する子ニューラルネットワークのアーキテクチャを識別するために、大空間の可能なアーキテクチャを効果的に探索することができる。
本明細書に記載の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載されている。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
例示的なニューラルアーキテクチャ検索システムを示す図である。 出力シーケンスを生成するコントローラニューラルネットワークの一例の図である。 スキップ接続を含むアーキテクチャを定義する出力シーケンスを生成するコントローラニューラルネットワークの一例の図である。 リカレントセルのアーキテクチャを定義する出力シーケンスを生成するコントローラニューラルネットワークの一例の図である。 コントローラパラメータの現在値を更新するための例示的なプロセスのフロー図である。
様々な図面における同様の参照番号および名称は、同様の要素を示す。
本明細書は、コントローラニューラルネットワークを使用して、特定のニューラルネットワークタスクを実行するように構成される子ニューラルネットワークのアーキテクチャを決定する、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムを記載する。
子ニューラルネットワークは、任意の種類のデジタルデータ入力を受信し、その入力に基づいて、任意の種類のスコア、分類、または回帰出力を生成するように構成することができる。
たとえば、子ニューラルネットワークへの入力が、画像、または画像から抽出された特徴である場合、所与の画像について子ニューラルネットワークによって生成された出力は、オブジェクトカテゴリのセットの各々についてのスコアでもよく、各スコアは、画像がカテゴリに属するオブジェクトの画像を含む推定尤度を表す。
別の例として、子ニューラルネットワークへの入力がインターネットリソース(たとえばウェブページ)、ドキュメント、またはドキュメントの一部、あるいはインターネットリソース、ドキュメント、またはドキュメントの一部から抽出された特徴である場合、所与のインターネットリソース、ドキュメント、またはドキュメントの一部について、子ニューラルネットワークによって生成された出力は、トピックのセットの各々についてのスコアでもよく、各スコアは、インターネットリソース、ドキュメント、またはドキュメントの一部がトピックに関するものである推定尤度を表す。
別の例として、子ニューラルネットワークへの入力が特定の広告についての印象コンテキストの特徴である場合、子ニューラルネットワークによって生成された出力は、その特定の広告がクリックされる推定尤度を表すスコアでもよい。
別の例として、子ニューラルネットワークへの入力が、あるユーザのためにパーソナライズされた推奨の特徴、たとえばその推奨のコンテキストを特徴付ける特徴、たとえばユーザによってとられた以前のアクションを特徴付ける特徴である場合、子ニューラルネットワークによって生成された出力は、コンテンツアイテムのセットの各々についてのスコアでもよく、各スコアは、ユーザがコンテンツアイテムを勧められることに好意的に応答する推定尤度を表す。
別の例として、子ニューラルネットワークへの入力が1つの言語のテキストのシーケンスである場合、子ニューラルネットワークによって生成された出力は、別の言語のテキストのセットの各々についてのスコアでもよく、各スコアは、他の言語のテキストが他の言語への入力テキストの適切な変換であるという推定尤度を表す。
別の例として、子ニューラルネットワークへの入力が話し言葉を表すシーケンスである場合、子ニューラルネットワークによって生成された出力は、テキストのセットの各々についてのスコアでもよく、各スコアは、テキストが発話の正確な転写である推定尤度を表す。
図1は、例示的なニューラルアーキテクチャ検索システム100を示す。ニューラルアーキテクチャ検索システム100は、以下に説明するシステム、構成要素、および技法を実装することができる1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの一例である。
ニューラルアーキテクチャ検索システム100は、特定のタスクを実行するようにニューラルネットワークをトレーニングするためのトレーニングデータ102と、特定のタスクにおけるニューラルネットワークの性能を評価するための検証セット104とを取得し、トレーニングデータ102および検証セット104を使用して、特定のタスクを実行するように構成される子ニューラルネットワークのアーキテクチャを決定するシステムである。アーキテクチャは、子ニューラルネットワーク内の層の数、層の各々によって実行される動作、および子ニューラルネットワーク内の層間の接続、すなわちどの層が子ニューラルネットワーク内の他のどの層から入力を受信するかを定義する。
一般に、トレーニングデータ102と検証セット104はいずれも、ニューラルネットワーク入力のセットと、各ネットワーク入力について、特定のタスクを実行するために子ニューラルネットワークによって生成されるべきそれぞれのターゲット出力とを含む。たとえば、トレーニングデータ102および検証セット104を生成するために、トレーニングデータのより大きいセットがランダムに区分されてもよい。
システム100は、様々な方法のうちのいずれかでトレーニングデータ102および検証セット104を受信することができる。たとえば、システム100は、たとえばシステム100によって利用可能にされるアプリケーションプログラミングインターフェース(API)を使用して、データ通信ネットワークを介してシステムの遠隔ユーザからアップロードとしてトレーニングデータを受信し、アップロードされたデータをトレーニングデータ102および検証セット104にランダムに分割することができる。別の例として、システム100は、システム100によってすでに維持されているどのデータを、ニューラルネットワークをトレーニングするために使用すべきかを指定するユーザからの入力を受信し、次いで指定されたデータをトレーニングデータ102および検証セット104に分割することができる。
ニューラルアーキテクチャ検索システム100は、コントローラニューラルネットワーク110、トレーニングエンジン120、およびコントローラパラメータ更新エンジン130を含む。
コントローラニューラルネットワーク110は、本明細書では「コントローラパラメータ」と呼ばれるパラメータを有し、コントローラパラメータに従って出力シーケンスを生成するように構成されるニューラルネットワークである。コントローラニューラルネットワーク110によって生成された各出力シーケンスは、子ニューラルネットワークのそれぞれの可能なアーキテクチャを定義する。
特に、各出力シーケンスは、複数の時間ステップの各々におけるそれぞれの出力を含み、出力シーケンスにおける各時間ステップは、子ニューラルネットワークのアーキテクチャの異なるハイパーパラメータに対応する。したがって、各出力シーケンスは、各時間ステップにおいて、対応するハイパーパラメータのそれぞれの値を含む。集合的に、所与の出力シーケンスにおけるハイパーパラメータの値は、子ニューラルネットワークのアーキテクチャを定義する。一般に、ハイパーパラメータは、子ニューラルネットワークのトレーニングの開始前に設定され、子ニューラルネットワークによって実行される動作に影響を与える値である。出力シーケンスおよび可能なハイパーパラメータは、図2A〜図2Cを参照して以下でより詳細に説明される。
一般に、システム100は、コントローラパラメータの値を調整するようにコントローラニューラルネットワーク110をトレーニングすることによって、子ニューラルネットワークのアーキテクチャを決定する。
特に、トレーニング手順の反復中、システム100は、コントローラパラメータの現在値に従って、コントローラニューラルネットワーク110を使用して、シーケンスのバッチ112を生成する。バッチ112内の出力シーケンスごとに、トレーニングエンジン120は、トレーニングデータ102における出力シーケンスによって定義されたアーキテクチャを有する子ニューラルネットワークのインスタンスをトレーニングし、検証セット104におけるトレーニング済みインスタンスの性能を評価する。次いで、コントローラパラメータ更新エンジン130は、タスクにおいてコントローラニューラルネットワーク110によって生成された出力シーケンスによって定義されるアーキテクチャの予想性能を向上させるためにコントローラパラメータの現在値を更新するために、バッチ112内の出力シーケンスの評価の結果を使用する。トレーニング済みインスタンスの性能を評価し、コントローラパラメータの現在値を更新することは、図3を参照して以下でより詳細に説明される。
このようにしてコントローラパラメータの値を繰り返し更新することによって、システム100は、特定のタスクにおいて性能が向上した子ニューラルネットワークをもたらす出力シーケンスを生成するように、すなわちコントローラニューラルネットワーク110によって提案されたアーキテクチャの検証セット104における予想精度を最大にするようにコントローラニューラルネットワーク110をトレーニングすることができる。
コントローラニューラルネットワーク110がトレーニングされると、システム100は、検証セット104において最良に機能したアーキテクチャを子ニューラルネットワークの最終アーキテクチャとして選択することができ、またはコントローラパラメータのトレーニング済みの値に従って新しい出力シーケンスを生成し、新しい出力シーケンスによって定義されたアーキテクチャを子ニューラルネットワークの最終アーキテクチャとして使用することができる。
次いで、ニューラルネットワーク検索システム100は、子ニューラルネットワークのアーキテクチャを指定するアーキテクチャデータ150、すなわち子ニューラルネットワークの一部である層、層間の接続、および層によって実行される動作を指定するデータを出力することができる。たとえば、ニューラルネットワーク検索システム100は、アーキテクチャデータ150をトレーニングデータを提出したユーザに出力することができる。いくつかの場合には、データ150は、アーキテクチャを有していた子ニューラルネットワークのトレーニング済みインスタンスのトレーニングからの子ニューラルネットワークのパラメータのトレーニング済みの値も含む。
いくつかの実装形態では、アーキテクチャデータ150を出力する代わりに、またはそれに加えて、システム100は、たとえば最初から、またはアーキテクチャを有する子ニューラルネットワークのインスタンスのトレーニングの結果として生成されたパラメータ値を微調整するために、決定されたアーキテクチャを有するニューラルネットワークのインスタンスをトレーニングし、次いでトレーニングされたニューラルネットワークを使用して、たとえばシステムによって提供されるAPIを介して、ユーザによって受信された要求を処理する。すなわち、システム100は、処理されるべき入力を受信し、トレーニングされた子ニューラルネットワークを使用して入力を処理し、受信された入力に応答して、トレーニングされたニューラルネットワークによって生成された出力、または生成された出力から導出されたデータを提供することができる。
いくつかの実装形態では、システム100は、分散的な方法でコントローラニューラルネットワークをトレーニングする。すなわち、システム100は、コントローラニューラルネットワークの複数の複製を含む。トレーニングが分散されるこれらの実装形態のいくつかにおいて、各複製は、複製によって出力された出力シーケンスのバッチについての性能メトリックを生成する専用トレーニングエンジンと、性能メトリックを使用してコントローラパラメータに対する更新を決定する専用コントローラパラメータ更新エンジンとを有する。コントローラパラメータ更新エンジンがひとたび更新を決定すると、コントローラパラメータ更新エンジンは、その更新をすべてのコントローラパラメータ更新エンジンにアクセス可能な中央パラメータ更新サーバに送信することができる。中央パラメータ更新サーバは、サーバによって維持されるコントローラパラメータの値を更新し、更新された値をコントローラパラメータ更新エンジンに送信することができる。いくつかの場合には、複数の複製の各々、ならびにそれらの対応するトレーニングエンジンおよびパラメータ更新エンジンは、トレーニングエンジンおよびパラメータ更新エンジンの他の各セットとは非同期に動作することができる。
図2Aは、出力シーケンスを生成するコントローラニューラルネットワーク110の一例の図200である。
特に、図200は、出力シーケンスの生成中、7つの例示的な時間ステップ202〜214の間にコントローラニューラルネットワーク110によって実行される処理を示す。以下でより詳細に説明されるように、7つの時間ステップ202〜214の各々は、ニューラルネットワークアーキテクチャの異なるハイパーパラメータに対応する。
コントローラニューラルネットワーク110は、各時間ステップについて、所与の出力シーケンスにおいて前の時間ステップに対応するハイパーパラメータの値を入力として受信し、リカレントニューラルネットワークの現在の隠れ状態を更新するように入力を処理するように構成される、1つまたは複数のリカレントニューラルネットワーク層、たとえば層220および230を含むリカレントニューラルネットワークである。たとえば、コントローラニューラルネットワーク110内のリカレント層は、長短期記憶(LSTM)層またはゲート型リカレントユニット(GRU)層とすることができる。図2Aの例では、時間ステップ208において、層220および230は、前の時間ステップ206からハイパーパラメータの値を入力として受信し、時間ステップ206から層220および230の隠れ状態を更新して、更新された隠れ状態232を出力として生成する。
コントローラニューラルネットワーク110はまた、出力シーケンスにおける時間ステップごとのそれぞれの出力層、たとえばそれぞれ時間ステップ202〜214の出力層242〜254を含む。出力層の各々は、時間ステップで更新された隠れ状態を含む出力層入力を受信し、時間ステップにおけるハイパーパラメータの可能な値にわたるスコア分布を定義する時間ステップの出力を生成するように構成される。たとえば、各出力層は、まず出力層入力を対応するハイパーパラメータの可能な値の数に適切な寸法に投影し、次いで投影された出力層入力にソフトマックスを適用して、時間ステップでのハイパーパラメータの複数の可能な値の各々についてそれぞれのスコアを生成することができる。たとえば、時間ステップ208の出力層248は、隠れ状態232を含む入力を受信し、ストライド高さハイパーパラメータの複数の可能な値の各々についてそれぞれのスコアを生成するように構成される。
したがって、出力シーケンス内の所与の時間ステップについてのハイパーパラメータ値を生成するために、システム100は、出力シーケンス内の前の時間ステップにおけるハイパーパラメータの値をコントローラニューラルネットワークへの入力として提供し、コントローラニューラルネットワークは、時間ステップでのハイパーパラメータの可能な値にわたるスコア分布を定義する時間ステップの出力を生成する。出力シーケンスにおける最初の時間ステップでは、前の時間ステップがないので、システム100は、代わりに所定のプレースホルダー入力を提供することができる。次いで、システム100は、出力シーケンス内の時間ステップにおけるハイパーパラメータの値を決定するために、スコア分布に従って、可能な値からサンプリングする。所与のハイパーパラメータがとり得る可能な値は、トレーニングの前に固定されており、可能な値の数は、異なるハイパーパラメータごとに異なる可能性がある。
一般に、所与の出力シーケンスによって定義されるアーキテクチャに含まれるべき層の数は、シーケンスを生成する前に固定されている。いくつかの実装形態では、コントローラニューラルネットワークのトレーニング中に生成された出力シーケンスによって定義された各アーキテクチャは同じ数の層を有する。他の実装形態では、システムは、トレーニングが進行するにつれて子ニューラルネットワーク内の層の数を増やすスケジュールを使用する。一例として、システムは、6層から始めて、トレーニング中に、1,600サンプルごとに1つまたは複数の層だけ深さを増すことができる。
図2Aの例では、子ニューラルネットワークは、畳み込みニューラルネットワークであり、ハイパーパラメータは、子ニューラルネットワーク内の各畳み込みニューラルネットワーク層のハイパーパラメータを含む。特に、図2Aでは、時間ステップ202は、子ニューラルネットワークの畳み込み層N-1のハイパーパラメータに対応し、時間ステップ204〜212は、畳み込み層Nのハイパーパラメータに対応し、時間ステップ214は、畳み込み層N+1のハイパーパラメータに対応する。たとえば、畳み込み層は、スタック状に配置されてもよく、層Nが層N-1によって生成された出力を入力として受信し、層N+1への入力として提供される出力を生成する。
図2Aの例では、畳み込み層の場合、層によって実行される動作を定義するハイパーパラメータは、層のフィルタの数、フィルタごとのフィルタ高さ、フィルタごとのフィルタ幅、各フィルタを適用するためのストライド高さ、およびフィルタごとのストライド幅である。他の例では、これらのうちのいくつかを除去することができ、たとえばこれらのハイパーパラメータのうちのいくつかが固定されていると仮定することができ、他のハイパーパラメータ、たとえばアクティブ化関数のタイプ、畳み込みが拡張またはマスクされるかどうかなどを追加することができ、またはその両方とすることができる。
例示的な一実装形態では、フィルタ高さの可能な値は[1、3、5、7]、フィルタ幅の可能な値は[1、3、5、7]、フィルタの数の可能な値は[24、36、48、64]、およびストライド高さと幅の可能な値は[1、2、3]である。
図2Aの例では、子ニューラルネットワーク内の層の構成、すなわちどの層が他のどの層から層を受信するかは固定されている。しかしながら、他の例では、ハイパーパラメータは、子ニューラルネットワーク内の層間の接続を定義するハイパーパラメータを含む。
図2Bは、スキップ接続を含むアーキテクチャを定義する出力シーケンスを生成するコントローラニューラルネットワーク110の一例の図250である。
特に、図2Bの例では、子ニューラルネットワーク内の1つまたは複数の層について、ハイパーパラメータは、どの以前の層がその層へのスキップ接続を有するかを定義するスキップ接続ハイパーパラメータを含む。より具体的には、出力シーケンス内の時間ステップは、たとえば層N-1の時間ステップ252および層Nの時間ステップ254などのハイパーパラメータがスキップ接続ハイパーパラメータである1つまたは複数の層の各々についてのそれぞれのアンカーポイント時間ステップを含む。
所与の層についての所与のアンカーポイント時間ステップの出力層は、子ニューラルネットワーク内の現在の層よりも前の各層に対応するそれぞれのノードを含む。ノードの各々は、対応する以前の層が子ニューラルネットワーク内の現在の層に接続される尤度を表すスコアを生成するためのパラメータのセットに従って、(i)アンカーポイントステップについての更新された隠れ状態、および(ii)対応する以前の層、すなわちノードに対応する以前の層のアンカーポイント時間ステップについての更新された隠れ状態を処理するように構成される。たとえば、以前の層jに対応する層iの出力層内のノードは、以下を満たす、対応する以前の層のスコアを生成することができる。
P(層jは層iへの入力)=sigmoid(vTtanh(Wprev*hj+Wcurr*hi))
ここで、vT、Wprev、およびWcurrは、ノードのパラメータであり、hjは対応する以前の層jについてのアンカーポイント時間ステップの更新された隠れ状態であり、hiは層iについてのアンカーポイント時間ステップの更新された隠れ状態である。
次いで、システム100は、以前の層に対応するノードによって生成されたスコアに従って、yesまたはnoのいずれかをサンプリングすることによって、その層がスキップ接続を有する所与の層に接続されるかどうかを判定する。システムが、複数の層が所与の層に接続されるべきであると決定した場合、すべての複数の層によって生成された出力は、所与の層への入力を生成するために深さ寸法で連結される。ある層が別の層と互換性がない場合、スキップ接続が「コンパイル失敗」を引き起こさないこと、およびネットワークが、いかなる入力または出力も有さないいかなる層も含まないことを確実にするために、(i)層が任意のいかなる入力層にも接続されていない場合、ネットワーク入力がその層への入力として使用され、(ii)最後の層では、システムは、未接続のすべての層出力を取り出し、それらを連結してから、最終的な連結された出力をネットワークの出力層に送信し、(iii)連結されるべき入力が異なるサイズを有する場合、システムは、連結されるべき入力が同じサイズを有するように、小さい層をゼロでパディングする。
いくつかの例では、子ニューラルネットワークは、複数の異なる層タイプを含む。たとえば、子ニューラルネットワークは、他の種類のニューラルネットワーク層、たとえば完全に接続された層、プーリング層、深度連結層、局所コントラスト正規化、バッチ正規化、出力層、たとえばソフトマックス層または他の分類子層などをも含む畳み込みニューラルネットワークとすることができる。
これらの例のいくつかにおいて、これらの他の層の位置およびハイパーパラメータは固定されており、出力シーケンスは、子ニューラルネットワーク内の畳み込みニューラルネットワーク層についてのハイパーパラメータ値のみを含む。たとえば、出力層の位置は、子ニューラルネットワーク内の最後の層として固定されていてもよく、畳み込み層のいくつかまたはすべての後にバッチ正規化層があってもよく、またはその前にバッチ正規化層があってもよい。
これらの例のうちの他の例では、出力シーケンスによって定義されるハイパーパラメータは、層ごとに層のタイプに対応する値を含む。異なるタイプの層は異なるハイパーパラメータを有するので、これらの例では、システムは、所与の層について、どのタイプのニューラルネットワーク層が選択されるかに基づいて、出力シーケンスの生成中に、どのハイパーパラメータがどの時間ステップに動的に対応するかを決定する。つまり、システムが所与の時間ステップでの出力層として使用する出力層は、最後にサンプリングされた層タイプのハイパーパラメータの値によって決まる。
いくつかの例では、子ニューラルネットワークは、リカレントニューラルネットワークである。これらの場合、出力シーケンスは、リカレントセルのアーキテクチャを定義することができ、リカレントセルは、ニューラルネットワークのアーキテクチャを生成するために、子ニューラルネットワーク内で複数回繰り返されることが可能である。上記で説明したように、いくつかの場合には、反復数は、トレーニングを通じて固定され、他の場合には、システムは、トレーニングが進行するにつれて反復数を増加させる。
図2Cは、リカレントセルのアーキテクチャを定義する出力シーケンスを生成するコントローラニューラルネットワーク110の一例の図270である。
特に、図2Cの例では、出力シーケンスは、リカレントセルによって実行される計算を表す計算ステップのツリー内のノードごとのそれぞれの計算ステップを含む。リカレントセルは、2つの入力、前の時間ステップからのセルの出力と現在の時間ステップについての入力、すなわちその時間ステップにおける子ネットワークへの入力、または子ネットワークの別の構成要素によって生成された出力を受信する。リカレントセルは、セル出力を生成するようにこれら2つの入力を処理する。以下で説明するように、いくつかの場合には、リカレントセルはまた、第3の入力であるメモリ状態を受信する。
具体的には、図2Cの例では、出力シーケンスは、ツリーの3つのノード、すなわちツリーインデックス0における1つのリーフノード、ツリーインデックス1における別のリーフノード、およびツリーインデックス2における内部ノードの設定を定義する。
ツリーにおける各ノードは、2つの入力をマージして出力を生成し、ノードごとに、出力シーケンスは、(i)2つの入力を組み合わせるための結合方法を識別するデータ、および(ii)出力を生成するために2つの入力の結合に適用されるべきアクティブ化関数を含む。一般に、セル内のリーフノードは、最初にセルへの2つの入力の各々にそれぞれのパラメータ行列を適用し、一方内部ノードはいかなるパラメータも有さない。上記で説明したように、結合方法は、たとえば[add; element wise multiply]などの可能な結合方法のセットから選択され、アクティブ化関数は、たとえば[identity; tanh; sigmoid; relu]などの可能なアクティブ化関数のセットから選択される。
たとえば、ツリーインデックス0におけるリーフノードでは、システムは、結合関数として"add"を選択し、アクティブ化関数として"tanh"を選択したので、セルのツリーインデックス0におけるリーフノードは、以下の動作を実行して出力a0を生成してもよい。
a0=tanh(W1*xt+W2*ht-1)
ここで、W1およびW2はノードのパラメータ行列、xtは、時間ステップでのセルへの入力、およびht-1は前の時間ステップからのセルの出力である。
ツリーインデックス2におけるノードでは、セルがメモリ状態を有していないとき、図2Cの例は、ノードへの2つの入力、すなわち2つのリーフノードの出力が要素ごとに乗算され、要素ごとのシグモイド関数が要素ごとの乗算の出力に適用されて、内部ノードの出力、すなわちセルの出力を生成することを指定する。
オプションで、セルのアーキテクチャは、前のメモリ状態を入力として受信することをも含んでもよい。このような場合、出力シーケンスはまた、セルのメモリ状態がどのようにセルにインジェクトされるか、すなわち前のメモリ状態がどのように更新されるか、およびツリー内の次のノードに渡される前に、前のメモリ状態を使用して変更される出力をどのノードが有するかを定義する値を含む。
特に、出力シーケンスはまた、ノードについての更新された出力を生成するために、前のメモリ状態がツリー内のノードのうちの1つの出力とどのように組み合わされるかを指定する2つのセルインジェクト値、すなわち結合方法、および結合のためのアクティブ化関数、ならびに(i)メモリ状態を使用して出力が更新されるノードと、(ii)(ノードについてのアクティブ化関数の適用前に)出力が更新されたメモリ状態に設定されるべきノードとを指定する2つのセルインデックス値を含む。
図2Cの例では、第2のセルインデックスのために生成された値が0であり、インジェクションのための結合方法がaddであり、アクティブ化関数がReLUであるので、セルは、前のセル状態、およびツリーインデックス0におけるノードの出力(上記でa0と呼ばれる)を追加し、次いでツリーインデックス0におけるノードの更新された出力を生成するために、その合計にReLUを適用することができる。セルは、次いで更新された出力を、ツリーインデックス2におけるノードへの入力として提供することができる。
最初のセルインデックスのために生成された値は1なので、アクティブ化関数が適用される前に、セルは、更新されたメモリ状態をインデックス1におけるツリーの出力に設定する。
図2Cは、説明を容易にするために、ツリーが2つのリーフノードを含む一例を示すが、実際にはリーフノードの数はもっと大きくてもよく、たとえば4、8、または16であってもよい。
図3は、コントローラパラメータの現在値を更新するための例示的なプロセス300のフロー図である。便宜上、プロセス300は、1つまたは複数の場所にある1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、適切にプログラムされた、ニューラルアーキテクチャ検索システム、たとえば図1のニューラルアーキテクチャ検索システム100は、プロセス300を実行することができる。
システムは、コントローラニューラルネットワークをトレーニングする、すなわちコントローラパラメータの初期値からコントローラパラメータのトレーニング済みの値を決定するために、プロセス300を繰り返し実行することができる。
システムは、コントローラニューラルネットワークを使用して、反復時点におけるコントローラパラメータの現在値に従って、出力シーケンスのバッチを生成する(ステップ302)。バッチ内の各出力シーケンスは、子ニューラルネットワークのそれぞれのアーキテクチャを定義する。特に、上記で説明したように、システムは、出力シーケンス内の各ハイパーパラメータ値を生成するとき、スコア分布からサンプリングするので、バッチ内のシーケンスは、たとえそれらが各々同じコントローラパラメータ値に従って生成されたとしても一般に異なる。バッチは一般に、所定数の出力シーケンス、たとえば8、16、32、または64のシーケンスを含む。
バッチ内の出力シーケンスごとに、システムは、特定のニューラルネットワークタスクを実行するために、出力シーケンスによって定義されたアーキテクチャを有する子ニューラルネットワークのインスタンスをトレーニングする(ステップ304)。すなわち、バッチ内の出力シーケンスごとに、システムは、出力シーケンスによって定義されたアーキテクチャを有するニューラルネットワークをインスタンス化し、受信されたトレーニングデータにおいてインスタンスをトレーニングして、たとえば逆伝播法または通時的誤差逆伝播法(backpropagation-through-time)による確率的勾配降下法などのタスクに適した従来の機械学習トレーニング技法を使用して、特定のニューラルネットワークタスクを実行する。いくつかの実装形態では、システムは、子ニューラルネットワークのトレーニングを並列化してコントローラニューラルネットワークの全体的なトレーニング時間を短縮する。システムは、指定された時間量または指定された回数のトレーニング反復について、それぞれの子ニューラルネットワークをトレーニングすることができる。
バッチ内の出力シーケンスごとに、システムは、特定のニューラルネットワークタスクにおける子ニューラルネットワークの対応するトレーニング済みインスタンスの性能を評価して、特定のニューラルネットワークタスクにおけるトレーニング済みインスタンスの性能メトリックを決定する(ステップ306)。たとえば、性能メトリックは、適切な精度基準によって測定された検証セットにおけるトレーニング済みインスタンスの精度とすることができる。たとえば、精度は、出力がシーケンスであるときは当惑基準であり、またはタスクが分類タスクであるときは分類誤り率とすることができる。別の例として、性能メトリックは、インスタンスのトレーニングの最後の2、5、または10のエポックの各々について、インスタンスの精度の平均または最大値とすることができる。
システムは、コントローラパラメータの現在値を調整するために、トレーニング済みインスタンスの性能メトリックを使用する(ステップ308)。
特に、システムは、強化学習技法を使用して性能メトリックが向上した子ニューラルネットワークをもたらす出力シーケンスを生成するように、コントローラニューラルネットワークをトレーニングすることによって現在値を調整する。より具体的には、システムは、コントローラニューラルネットワークを訓練して、トレーニング済みインスタンスの性能メトリックに基づいて決定された受け取られた報酬を最大にする出力シーケンスを生成する。特に、所与の出力シーケンスについての報酬は、トレーニング済みインスタンスの性能メトリックの関数である。たとえば、報酬は、性能メトリック、性能メトリックの2乗、性能メトリックの3乗、性能メトリックの平方根などのうちの1つとすることができる。
いくつかの場合には、システムは、ポリシー勾配技法を使用して、予想される報酬を最大にするようにコントローラニューラルネットワークをトレーニングする。たとえば、ポリシー勾配技法は、REINFORCE技法または近接ポリシー最適化(PPO: Proximal Policy Optimization)技法とすることができる。たとえば、システムは、
Figure 2021064390
を満たす勾配の推定量を使用して、コントローラパラメータに関して予想される報酬の勾配を推定することができる。
ここで、mはバッチ内のシーケンス数、Tはバッチ内の各シーケンス内の時間ステップ数、atは所与の出力シーケンス内の時間ステップtでの出力、Rkは出力シーケンスkについての報酬、θcはコントローラパラメータ、およびbはベースライン関数、たとえば以前のアーキテクチャ精度の指数移動平均である。
いくつかの実装形態では、システムは、分散的な方法でコントローラニューラルネットワークをトレーニングする。すなわち、システムは、コントローラニューラルネットワークの複数の複製を維持し、トレーニング中に非同期的に複製のパラメータ値を更新する。すなわち、システムは、複製ごとに非同期にステップ302〜306を実行することができ、複製の各々について決定された勾配を使用してコントローラパラメータを更新することができる。
本明細書は、システムおよびコンピュータプログラム構成要素に関して「構成される」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるとは、システムが、動作中システムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実行させる命令を含むことを意味する。
本明細書に記載された主題および機能的動作の実施形態は、デジタル電子回路、有形に実施されたコンピュータソフトウェアまたはファームウェア、本明細書に開示される構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわちデータ処理装置による実行のため、またはデータ処理装置の動作を制御するために有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、またはそれらの1つもしくは複数の組合せとすることができる。代替的に、または追加として、プログラム命令は、人工的に生成された伝搬信号、たとえばデータ処理装置による実行に適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号上で符号化することができる。
「データ処理装置」という用語は、データ処理ハードウェアを指し、たとえばプログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含むデータを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路でもよく、またはそれをさらに含むことができる。装置は、オプションで、ハードウェアに加えて、コンピュータプログラムの実行環境を生成するコード、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれ、またはそのようにも記載される場合があるコンピュータプログラムは、コンパイル型もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境での使用に適した他のユニットとしてを含む、あらゆる形式で展開できる。プログラムは、必ずしも必要ではないが、ファイルシステム内のファイルに対応してもよい。プログラムは、問題のプログラム専用の単一のファイル、またはたとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなどの複数の協調したファイルに、たとえばマークアップ言語ドキュメントに記憶された1つまたは複数のスクリプトなどの他のプログラムまたはデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
本明細書では、「データベース」という用語は、任意のデータの集まりを指すために広く使用されており、データは、任意の特定の方法で構造化する必要はなく、またはまったく構造化する必要はなく、1つまたは複数の場所における記憶デバイスに記憶することができる。したがって、たとえばインデックスデータベースは、複数のデータの集まりを含むことができ、それらの各々は、異なって編成されアクセスされてもよい。
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。一般に、エンジンは、1つまたは複数の場所における1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたは構成要素として実装される。いくつかの場合には、1つまたは複数のコンピュータが特定のエンジンに専用であり、他の場合には、複数のエンジンを同じコンピュータにインストールし、そこで実行することができる。
本明細書に記載されたプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによって機能を実行するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実行することができる。プロセスおよび論理フローは、たとえばFPGAまたはASICなどの専用論理回路によって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサ、もしくはその両方、または他の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実施または実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補うまたは組み込むことができる。一般に、コンピュータは、たとえば磁気、光磁気ディスク、または光ディスクなどのデータを記憶するための1つまたは複数の大容量記憶デバイスをも含み、あるいは1つまたは複数の大容量記憶デバイスからデータを受信する、それにデータを転送する、またはその両方のために動作可能に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえばほんのいくつかの例を挙げれば、携帯電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえばユニバーサルシリアルバス(USB)フラッシュドライブ中に組み込むことができる。
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、一例として、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば内部ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、メディアおよびメモリデバイスを含む。
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえばマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえばユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどの任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、たとえばウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによってなどのユーザによって使用されるデバイスとの間でドキュメントを送受信することによってユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージをパーソナルデバイス、たとえばメッセージングアプリケーションを実行しているスマートフォンに送信し、代わりにユーザから応答メッセージを受信することによってユーザと対話することができる。
機械学習モデルを実装するためのデータ処理装置はまた、たとえば機械学習のトレーニングまたは製作、すなわち推論、作業負荷の共通部分および計算集約的部分を処理するための専用ハードウェアアクセラレータユニットを含むことができる。
機械学習モデルは、機械学習フレームワーク、たとえばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装および展開することができる。
本明細書に記載される主題の実施形態は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはたとえばアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、ユーザが本明細書に記載された主題の実装と対話することができる、グラフィカルユーザインタフェース、ウェブブラウザ、またはアプリを有するたとえばクライアントコンピュータなどのフロントエンド構成要素を含む、または1つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せを含むコンピューティングシステムにおいて実装することができる。システムの構成要素は、たとえば通信ネットワークなどの任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえばインターネットがある。
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは、一般に互いに遠隔であり、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント−サーバ関係を有するコンピュータプログラムのおかげで生じる。いくつかの実施形態では、サーバは、たとえばクライアントとして動作するデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために、データ、たとえばHTMLページをユーザデバイスに送信する。たとえば、ユーザ対話の結果などのユーザデバイスにおいて生成されたデータは、デバイスからサーバにおいて受信することができる。
本明細書は、多くの具体的な実施の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性のある範囲に対する限定ではなく、むしろ特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるものとする。別個の実施形態の文脈において本明細書で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載されている様々な特徴は、複数の実施形態で別々にまたは任意の適切な部分組合せで実装することもできる。さらに、特徴は、いくつかの組合せで作用するものとして上述されており、当初はそのように請求されているものであるが、いくつかの場合には、請求された組合せからの1つまたは複数の特徴を、組合せから切り取ることができ、請求された組合せは、部分組合せ、または部分組合せの変形を対象としてもよい。
同様に、動作が図面に示され、特許請求の範囲に特定の順序で記載されているが、これは、そのような動作が、示された特定の順序で、または順番に実行されること、あるいは望ましい結果を達成するために、図示されたすべての動作が実行されることを必要とするものとして理解されないものとする。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。さらに、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されないものとし、記述されたプログラム構成要素およびシステムが、一般に単一のソフトウェア製品に一緒に組み入れられ、または複数のソフトウェア製品にパッケージ化することができることを理解されたい。
主題の特定の実施形態が記載されている。他の実施形態は、以下の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙されたアクションは、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するために、示された特定の順序または逐次的な順序を必ずしも必要としない。いくつかの場合には、マルチタスキングおよび並列処理が有利であり得る。
100 ニューラルアーキテクチャ検索システム
102 トレーニングデータ
104 検証セット
110 コントローラニューラルネットワーク
112 シーケンスのバッチ
120 トレーニングエンジン
130 コントローラパラメータ更新エンジン
150 アーキテクチャデータ
202〜214 時間ステップ
220 層
230 層
232 隠れ状態
242〜254 出力層
300 プロセス

Claims (22)

  1. 複数のコントローラパラメータを有するコントローラニューラルネットワークを使用して、前記コントローラパラメータの現在値に従って、出力シーケンスのバッチを生成するステップであって、前記バッチ内の各出力シーケンスが、特定のニューラルネットワークタスクを実行するように構成される子ニューラルネットワークのそれぞれのアーキテクチャを定義する、ステップと、
    前記バッチ内の出力シーケンスごとに、
    前記特定のニューラルネットワークタスクを実行するために、前記出力シーケンスによって定義された前記アーキテクチャを有する前記子ニューラルネットワークのそれぞれのインスタンスをトレーニングするステップと、
    前記特定のニューラルネットワークタスクにおける前記子ニューラルネットワークの前記トレーニング済みインスタンスの性能メトリックを決定するために、前記特定のニューラルネットワークタスクにおける前記子ニューラルネットワークの前記トレーニング済みインスタンスの性能を評価するステップと
    を含み、
    前記コントローラニューラルネットワークの前記コントローラパラメータの前記現在値を調整するために、前記子ニューラルネットワークの前記トレーニング済みインスタンスの前記性能メトリックを使用するステップと
    を含む、方法。
  2. 前記コントローラニューラルネットワークの前記コントローラパラメータの前記現在値を調整するために、前記子ニューラルネットワークの前記トレーニング済みインスタンスの前記性能メトリックを使用するステップが、
    強化学習技法を使用して性能メトリックが向上した子ニューラルネットワークをもたらす出力シーケンスを生成するように、前記コントローラニューラルネットワークをトレーニングするステップ
    を含む、請求項1に記載の方法。
  3. 前記強化学習技法がポリシー勾配技法である、請求項2に記載の方法。
  4. 前記強化学習技法がREINFORCE技法である、請求項3に記載の方法。
  5. 各出力シーケンスが、複数の時間ステップの各々における前記子ニューラルネットワークのそれぞれのハイパーパラメータについての値を含む、請求項1〜4のいずれか一項に記載の方法。
  6. 前記コントローラニューラルネットワークが、
    所与の出力シーケンスについて、各時間ステップで、
    前記所与の出力シーケンスにおける前記前の時間ステップでハイパーパラメータの前記値を入力として受信し、かつリカレントニューラルネットワークの現在の隠れ状態を更新するように、前記入力を処理する
    ように構成される1つまたは複数のリカレントニューラルネットワーク層と、
    時間ステップごとのそれぞれの出力層であって、各出力層が、前記所与の出力シーケンスについて、
    前記時間ステップで前記更新された隠れ状態を含む出力層入力を受信し、かつ前記時間ステップで前記ハイパーパラメータの可能な値にわたるスコア分布を定義する前記時間ステップの出力を生成する
    ように構成されるそれぞれの出力層と
    を含むリカレントニューラルネットワークである、請求項5に記載の方法。
  7. 複数のコントローラパラメータを有するコントローラニューラルネットワークを使用して、前記コントローラパラメータの現在値に従って、出力シーケンスのバッチを生成するステップが、前記バッチ内の出力シーケンスごとに、および前記複数の時間ステップの各々について、
    前記時間ステップでの前記ハイパーパラメータの可能な値にわたるスコア分布を定義する前記時間ステップの出力を生成するために前記出力シーケンス内の前記前の時間ステップにおける前記ハイパーパラメータの前記値を、前記コントローラニューラルネットワークへの入力として提供ステップと、
    前記出力シーケンス内の前記時間ステップにおける前記ハイパーパラメータの前記値を決定するために前記スコア分布に従って前記可能な値からサンプリングするステップと
    を含む、請求項6に記載の方法。
  8. 前記子ニューラルネットワークが畳み込みニューラルネットワークであり、前記ハイパーパラメータが、前記子ニューラルネットワーク内の各畳み込みニューラルネットワーク層のハイパーパラメータを含む、請求項5〜7のいずれか一項に記載の方法。
  9. 前記畳み込みニューラルネットワーク層の各々についての前記ハイパーパラメータが、
    フィルタの数、
    フィルタごとのフィルタ高さ、
    フィルタごとのフィルタ幅、
    フィルタごとのストライド高さ、または
    フィルタごとのストライド幅
    のうちの1つまたは複数を含む、請求項8に記載の方法。
  10. 前記子ニューラルネットワークが複数の層タイプを含み、前記ハイパーパラメータが、層ごとに、前記層のタイプに対応する値を含む、請求項5〜9のいずれか一項に記載の方法。
  11. 前記層のうちの1つまたは複数の各々について、前記ハイパーパラメータが、どの以前の層が前記層へのスキップ接続を有するかを定義するスキップ接続ハイパーパラメータを含む、請求項5〜10のいずれか一項に記載の方法。
  12. 前記複数の時間ステップが、前記ハイパーパラメータがスキップ接続ハイパーパラメータである前記1つまたは複数の層の各々について、それぞれのアンカーポイント時間ステップを含み、現在の層の前記アンカーポイント時間ステップについて、前記出力層が、
    前記子ニューラルネットワーク内の前記現在の層よりも前の各層に対応するそれぞれのノードを含み、各ノードが、
    前記対応する以前の層が前記子ニューラルネットワーク内の前記現在の層に接続される尤度を表すスコアを生成するためのパラメータのセットの現在値に従って、前記アンカーポイントステップについての前記更新された隠れ状態、および前記対応する以前の層の前記アンカーポイント時間ステップについての前記更新された隠れ状態を処理する
    ように構成される、
    請求項11に記載の方法。
  13. 前記子ニューラルネットワークがリカレントニューラルネットワークであり、前記出力シーケンスが、前記リカレントニューラルネットワーク内のリカレントセルのアーキテクチャを定義する、請求項1〜7のいずれか一項に記載の方法。
  14. 前記出力シーケンスが、前記リカレントセルによって実行される前記計算を表す計算ステップのツリー内のノードごとのそれぞれの計算ステップを含む、請求項12に記載の方法。
  15. 前記ツリー内の各ノードが、2つの入力をマージして出力を生成し、ノードごとに、前記出力シーケンスが、前記2つの入力を結合するための結合方法と、前記出力を生成するための前記2つの入力の前記結合に適用されるべきアクティブ化関数とを識別するデータを含む、請求項14に記載の方法。
  16. 前記出力シーケンスが、前記セルのメモリ状態が前記セルにどのようにインジェクトされるかを定義する値を含む、請求項14または15に記載の方法。
  17. 前記コントローラパラメータの前記調整された値に従って、前記子ニューラルネットワークの最終アーキテクチャを定義する最終出力シーケンスを生成するステップ
    をさらに含む、請求項1〜16のいずれか一項に記載の方法。
  18. 前記最終アーキテクチャを有する子ニューラルネットワークを使用して受信されたネットワーク入力を処理することによって、前記受信されたネットワーク入力について前記特定のニューラルネットワークタスクを実行するステップ
    をさらに含む、請求項17に記載の方法。
  19. 1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1〜18のいずれか一項に記載の前記それぞれの方法の前記動作を実行させる命令を記憶する1つまたは複数の記憶デバイスとを備える、システム。
  20. 1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1〜18のいずれか一項に記載の前記それぞれの方法の前記動作を実行させる命令を記憶する、1つまたは複数のコンピュータ記憶媒体。
  21. システムであって、
    1つまたは複数のコンピュータによって実施されるコントローラニューラルネットワークであって、前記コントローラニューラルネットワークが、
    特定のニューラルネットワークタスクを実行するように構成される子ニューラルネットワークのアーキテクチャを定義するハイパーパラメータ値の出力シーケンス内の各時間ステップにおいて、
    前記出力シーケンス内の前記前の時間ステップに対応する前記子ニューラルネットワークのハイパーパラメータの値を入力として受信し、
    リカレントニューラルネットワークの現在の隠れ状態を更新するように、前記入力を処理する
    ように構成される1つまたは複数のリカレントニューラルネットワーク層
    を含むリカレントニューラルネットワークであるコントローラニューラルネットワークと、
    前記出力シーケンス内の各時間ステップに対応するそれぞれの出力層であって、各出力層が、
    前記対応する時間ステップにおいて前記更新された隠れ状態を含む出力層入力を受信し、前記対応する時間ステップに対応する前記子ニューラルネットワークのハイパーパラメータの可能な値にわたるスコア分布を定義する前記対応する時間ステップの出力を生成する
    ように構成される、出力層と
    を含む、システム。
  22. 1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項21に記載の前記システムを実装させる命令を記憶する1つまたは複数のコンピュータ記憶媒体。
JP2020215172A 2016-10-28 2020-12-24 ニューラルアーキテクチャ検索 Active JP7210531B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022177577A JP2023024993A (ja) 2016-10-28 2022-11-04 ニューラルアーキテクチャ検索

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662414300P 2016-10-28 2016-10-28
US62/414,300 2016-10-28

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019522868A Division JP6817431B2 (ja) 2016-10-28 2017-10-27 ニューラルアーキテクチャ検索

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022177577A Division JP2023024993A (ja) 2016-10-28 2022-11-04 ニューラルアーキテクチャ検索

Publications (2)

Publication Number Publication Date
JP2021064390A true JP2021064390A (ja) 2021-04-22
JP7210531B2 JP7210531B2 (ja) 2023-01-23

Family

ID=60473590

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2019522868A Active JP6817431B2 (ja) 2016-10-28 2017-10-27 ニューラルアーキテクチャ検索
JP2020215172A Active JP7210531B2 (ja) 2016-10-28 2020-12-24 ニューラルアーキテクチャ検索
JP2022177577A Pending JP2023024993A (ja) 2016-10-28 2022-11-04 ニューラルアーキテクチャ検索

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2019522868A Active JP6817431B2 (ja) 2016-10-28 2017-10-27 ニューラルアーキテクチャ検索

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022177577A Pending JP2023024993A (ja) 2016-10-28 2022-11-04 ニューラルアーキテクチャ検索

Country Status (6)

Country Link
US (3) US11030523B2 (ja)
JP (3) JP6817431B2 (ja)
KR (2) KR102386806B1 (ja)
CN (1) CN108021983A (ja)
DE (2) DE102017125256A1 (ja)
WO (1) WO2018081563A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023009766A1 (en) * 2021-07-28 2023-02-02 Google Llc Evaluating output sequences using an auto-regressive language model neural network

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10565493B2 (en) * 2016-09-22 2020-02-18 Salesforce.Com, Inc. Pointer sentinel mixture architecture
JP6817431B2 (ja) 2016-10-28 2021-01-20 グーグル エルエルシーGoogle LLC ニューラルアーキテクチャ検索
US20180336453A1 (en) * 2017-05-19 2018-11-22 Salesforce.Com, Inc. Domain specific language for generation of recurrent neural network architectures
JP7043596B2 (ja) * 2017-10-27 2022-03-29 グーグル エルエルシー ニューラルアーキテクチャ検索
US11741342B2 (en) * 2018-05-18 2023-08-29 Baidu Usa Llc Resource-efficient neural architects
EP3732631A1 (en) * 2018-05-29 2020-11-04 Google LLC Neural architecture search for dense image prediction tasks
CN111033535B (zh) * 2018-06-05 2024-03-26 北京嘀嘀无限科技发展有限公司 用于乘车订单调度的系统和方法
CN112513886B (zh) * 2018-08-03 2024-03-22 索尼公司 信息处理方法、信息处理装置和信息处理程序
CN110826686A (zh) * 2018-08-07 2020-02-21 艾玛迪斯简易股份公司 有属性序列的机器学习系统和方法
CN109255374A (zh) * 2018-08-27 2019-01-22 中共中央办公厅电子科技学院 一种基于密集卷积网络和多任务网络的美学属性评价方法
CN109189973B (zh) * 2018-08-30 2021-07-30 清华大学 基于策略梯度的大规模图像检索方法及装置
EP3617953A1 (en) * 2018-08-30 2020-03-04 Koninklijke Philips N.V. An adaptable neural network
US11334791B2 (en) * 2018-09-05 2022-05-17 Siemens Healthcare Gmbh Learning to search deep network architectures
CN109065076B (zh) * 2018-09-05 2020-11-27 深圳追一科技有限公司 音频标签的设置方法、装置、设备和存储介质
CN110889487A (zh) * 2018-09-10 2020-03-17 富士通株式会社 神经网络架构搜索装置和方法及计算机可读记录介质
KR102066009B1 (ko) * 2018-09-14 2020-01-14 가천대학교 산학협력단 순환신경망을 사용한 의료영상기기의 영상복원 시스템
US11645509B2 (en) * 2018-09-27 2023-05-09 Salesforce.Com, Inc. Continual neural network learning via explicit structure learning
EP3629246B1 (en) * 2018-09-27 2022-05-18 Swisscom AG Systems and methods for neural architecture search
US20200104715A1 (en) * 2018-09-28 2020-04-02 Xilinx, Inc. Training of neural networks by including implementation cost as an objective
US11604992B2 (en) * 2018-11-02 2023-03-14 Microsoft Technology Licensing, Llc Probabilistic neural network architecture generation
CN111144561B (zh) * 2018-11-05 2023-05-02 杭州海康威视数字技术股份有限公司 一种神经网络模型确定方法及装置
US11775812B2 (en) 2018-11-30 2023-10-03 Samsung Electronics Co., Ltd. Multi-task based lifelong learning
CN109615073B (zh) * 2018-12-03 2021-06-04 郑州云海信息技术有限公司 一种神经网络模型的构建方法、设备以及存储介质
US11556778B2 (en) * 2018-12-07 2023-01-17 Microsoft Technology Licensing, Llc Automated generation of machine learning models
CN111325311B (zh) * 2018-12-14 2024-03-29 深圳云天励飞技术有限公司 用于图像识别的神经网络模型生成方法及相关设备
US11114103B2 (en) * 2018-12-28 2021-09-07 Alibaba Group Holding Limited Systems, methods, and computer-readable storage media for audio signal processing
CN113424199A (zh) * 2019-01-23 2021-09-21 谷歌有限责任公司 用于神经网络的复合模型缩放
US11790212B2 (en) * 2019-03-18 2023-10-17 Microsoft Technology Licensing, Llc Quantization-aware neural architecture search
US20200302270A1 (en) * 2019-03-19 2020-09-24 Cisco Technology, Inc. Budgeted neural network architecture search system and method
US11630990B2 (en) 2019-03-19 2023-04-18 Cisco Technology, Inc. Systems and methods for auto machine learning and neural architecture search
DE102019204136A1 (de) * 2019-03-26 2020-10-01 Robert Bosch Gmbh Verfahren und Vorrichtung für Training und Herstellung eines künstlichen neuronalen Netzes
CN110110861B (zh) * 2019-05-09 2021-11-26 北京市商汤科技开发有限公司 确定模型超参数及模型训练的方法和装置、存储介质
WO2020237687A1 (zh) * 2019-05-31 2020-12-03 深圳市大疆创新科技有限公司 网络结构搜索的方法及装置、计算机存储介质和计算机程序产品
CN110288084A (zh) * 2019-06-06 2019-09-27 北京小米智能科技有限公司 超网络训练方法和装置
DE102019210167A1 (de) * 2019-07-10 2021-01-14 Robert Bosch Gmbh Robusteres Training für künstliche neuronale Netzwerke
CN110490320B (zh) * 2019-07-30 2022-08-23 西北工业大学 基于预测机制和遗传算法融合的深度神经网络结构优化方法
CN110428046B (zh) * 2019-08-28 2023-12-15 腾讯科技(深圳)有限公司 神经网络结构的获取方法及装置、存储介质
CN110598852A (zh) * 2019-08-29 2019-12-20 北京小米移动软件有限公司 子网络采样方法、构建超网络拓扑结构的方法及装置
CN110598629B (zh) * 2019-09-11 2023-06-06 北京百度网讯科技有限公司 超网络的搜索空间构建方法、装置以及电子设备
CN110543944B (zh) * 2019-09-11 2022-08-02 北京百度网讯科技有限公司 神经网络结构搜索方法、装置、电子设备和介质
CN110956262A (zh) * 2019-11-12 2020-04-03 北京小米智能科技有限公司 超网络训练方法及装置、电子设备、存储介质
CN112884118A (zh) * 2019-11-30 2021-06-01 华为技术有限公司 神经网络的搜索方法、装置及设备
CN112990461B (zh) * 2019-12-16 2023-09-19 杭州海康威视数字技术股份有限公司 构建神经网络模型的方法、装置、计算机设备和存储介质
CA3165790A1 (en) * 2020-01-27 2021-08-05 Akkio, Inc. Methods and systems for dynamically generating a plurality of machine learning systems during processing of a user data set
US11521028B2 (en) 2020-04-10 2022-12-06 Toyota Research Institute, Inc. Meta-learning neural architecture search via graph networks on search space lattices
CN111516700A (zh) * 2020-05-11 2020-08-11 安徽大学 一种驾驶员分心细粒度监测方法和系统
TWI831016B (zh) * 2020-06-05 2024-02-01 宏達國際電子股份有限公司 機器學習方法、機器學習系統以及非暫態電腦可讀取媒體
US11436498B2 (en) * 2020-06-09 2022-09-06 Toyota Research Institute, Inc. Neural architecture search system for generating a neural network architecture
CN113837374A (zh) 2020-06-23 2021-12-24 中兴通讯股份有限公司 神经网络的生成方法、设备及计算机可读存储介质
JP6885553B1 (ja) 2020-07-14 2021-06-16 エッジコーティックス ピーティーイー. リミテッド ハードウェアとニューラルアーキテクチャとの共同探索
EP3975060A1 (en) * 2020-09-29 2022-03-30 Samsung Electronics Co., Ltd. Method and apparatus for analysing neural network performance
KR102264571B1 (ko) * 2020-10-30 2021-06-15 주식회사 애자일소다 계층 구조를 갖는 의사결정 에이전트
CN113469078B (zh) * 2021-07-07 2023-07-04 西安电子科技大学 基于自动设计长短时记忆网络的高光谱图像分类方法
KR102610429B1 (ko) * 2021-09-13 2023-12-06 연세대학교 산학협력단 인공신경망과 연산 가속기 구조 통합 탐색 장치 및 방법
KR20230100914A (ko) 2021-12-29 2023-07-06 경희대학교 산학협력단 인공신경망 탐색 방법 및 이를 수행하기 위한 컴퓨팅 장치
KR20230159938A (ko) 2022-05-16 2023-11-23 주식회사 뷰노 생체 신호 분석 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003508835A (ja) * 1999-09-01 2003-03-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 進化アルゴリズムを用いたニューラルネットワークのアーキテクチャの改良方法
US20160224903A1 (en) * 2015-01-29 2016-08-04 Qualcomm Incorporated Hyper-parameter selection for deep convolutional networks
JP2017102906A (ja) * 2015-11-25 2017-06-08 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP6817431B2 (ja) * 2016-10-28 2021-01-20 グーグル エルエルシーGoogle LLC ニューラルアーキテクチャ検索

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102402712B (zh) 2011-08-31 2014-03-05 山东大学 基于神经网络的机器人强化学习初始化方法
US9899672B2 (en) 2016-05-17 2018-02-20 Nanotek Instruments, Inc. Chemical-free production of graphene-encapsulated electrode active material particles for battery applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003508835A (ja) * 1999-09-01 2003-03-04 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 進化アルゴリズムを用いたニューラルネットワークのアーキテクチャの改良方法
US20160224903A1 (en) * 2015-01-29 2016-08-04 Qualcomm Incorporated Hyper-parameter selection for deep convolutional networks
JP2017102906A (ja) * 2015-11-25 2017-06-08 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP6817431B2 (ja) * 2016-10-28 2021-01-20 グーグル エルエルシーGoogle LLC ニューラルアーキテクチャ検索

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANDREAS, J., ET AL.: "Learning to Compose Neural Networks for Question Answering", ARXIV.ORG [ONLINE], JPN6021048944, 7 June 2016 (2016-06-07), ISSN: 0004660702 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023009766A1 (en) * 2021-07-28 2023-02-02 Google Llc Evaluating output sequences using an auto-regressive language model neural network
GB2622755A (en) * 2021-07-28 2024-03-27 Google Llc Evaluating output sequences using an auto-regressive language model neural network

Also Published As

Publication number Publication date
DE202017106532U1 (de) 2018-02-05
KR20190052143A (ko) 2019-05-15
KR20220047688A (ko) 2022-04-18
JP2019533257A (ja) 2019-11-14
KR102532658B1 (ko) 2023-05-15
US20190251439A1 (en) 2019-08-15
WO2018081563A1 (en) 2018-05-03
DE102017125256A1 (de) 2018-05-03
CN108021983A (zh) 2018-05-11
WO2018081563A9 (en) 2019-03-07
JP7210531B2 (ja) 2023-01-23
US20210295163A1 (en) 2021-09-23
JP6817431B2 (ja) 2021-01-20
US20230368024A1 (en) 2023-11-16
US11030523B2 (en) 2021-06-08
JP2023024993A (ja) 2023-02-21
KR102386806B1 (ko) 2022-04-14
US11829874B2 (en) 2023-11-28

Similar Documents

Publication Publication Date Title
JP6817431B2 (ja) ニューラルアーキテクチャ検索
US11651259B2 (en) Neural architecture search for convolutional neural networks
JP7043596B2 (ja) ニューラルアーキテクチャ検索
JP7157154B2 (ja) 性能予測ニューラルネットワークを使用したニューラルアーキテクチャ探索
JP6790286B2 (ja) 強化学習を用いたデバイス配置最適化
JP6889270B2 (ja) ニューラルネットワークアーキテクチャの最適化
JP2020201971A (ja) 畳み込みニューラルネットワークを使用したシーケンスの処理
US10922611B2 (en) Neural network optimizer search
CN111602148A (zh) 正则化神经网络架构搜索
US20220019869A1 (en) Hardware-optimized neural architecture search
CN111406267B (zh) 使用性能预测神经网络的神经架构搜索

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220304

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221104

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20221104

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20221114

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20221121

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230111

R150 Certificate of patent or registration of utility model

Ref document number: 7210531

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150