IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7528277データ密度の勾配の推定による条件付き出力生成
<>
  • 特許-データ密度の勾配の推定による条件付き出力生成 図1
  • 特許-データ密度の勾配の推定による条件付き出力生成 図2
  • 特許-データ密度の勾配の推定による条件付き出力生成 図3
  • 特許-データ密度の勾配の推定による条件付き出力生成 図4
  • 特許-データ密度の勾配の推定による条件付き出力生成 図5
  • 特許-データ密度の勾配の推定による条件付き出力生成 図6
  • 特許-データ密度の勾配の推定による条件付き出力生成 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-26
(45)【発行日】2024-08-05
(54)【発明の名称】データ密度の勾配の推定による条件付き出力生成
(51)【国際特許分類】
   G06N 3/0475 20230101AFI20240729BHJP
   G10L 13/02 20130101ALI20240729BHJP
   G10L 25/30 20130101ALI20240729BHJP
   G06V 10/82 20220101ALI20240729BHJP
   G06T 7/00 20170101ALI20240729BHJP
【FI】
G06N3/0475
G10L13/02
G10L25/30
G06V10/82
G06T7/00 350C
【請求項の数】 22
(21)【出願番号】P 2022580973
(86)(22)【出願日】2021-09-02
(65)【公表番号】
(43)【公表日】2023-09-27
(86)【国際出願番号】 US2021048931
(87)【国際公開番号】W WO2022051548
(87)【国際公開日】2022-03-10
【審査請求日】2023-02-24
(31)【優先権主張番号】63/073,867
(32)【優先日】2020-09-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ナンシン・チェン
(72)【発明者】
【氏名】ビュンハ・チュン
(72)【発明者】
【氏名】ウィリアム・チャン
(72)【発明者】
【氏名】ロン・ジェイ・ウェイス
(72)【発明者】
【氏名】モハマド・ノルージー
(72)【発明者】
【氏名】ユ・ジャン
(72)【発明者】
【氏名】ヨンフイ・ウ
【審査官】大倉 崚吾
(56)【参考文献】
【文献】HO, Jonathan et al.,"Denoising Diffusion Probabilistic Models",arXiv [online],2020年06月,[2023年12月18日検索],インターネット<URL:https://arxiv.org/abs/2006.11239v1>,2006.11239v1
【文献】PRENGER, Ryan et al.,"WaveGlow: A Flow-based Generative Network for Speech Synthesis",arXiv [online],2018年10月,[2023年12月18日検索],インターネット<URL:https://arxiv.org/abs/1811.00002v1>,1811.00002v1
【文献】SONG, Yang et al.,"Generative Modeling by Estimating Gradients of the Data Distribution",arXiv [online],2019年10月,[2023年12月18日検索],インターネット<URL:https://arxiv.org/abs/1907.05600v2>,1907.05600v2
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-99/00
G10L 13/00
G10L 25/30
G06V 10/82
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実行される、
ネットワーク入力を条件とする複数の出力を含む最終的なネットワーク出力を生成する方法であって、
前記ネットワーク入力を取得するステップと、
現在のネットワーク出力を初期化するステップであって、前記現在のネットワーク出力は複数の値を含み、前記初期化することは、対応するノイズ分布から前記現在のネットワーク出力に関する複数の初期値の各々をサンプリングすることを含む、ステップと、
所定回数の反復について、複数の反復の各々において前記現在のネットワーク出力を更新することによって前記最終的なネットワーク出力を生成するステップとを含み、各反復が、それぞれのノイズレベルに対応し、前記更新することが、各反復において、
(i)前記現在のネットワーク出力(ii)前記ネットワーク入力、および(iii)前記反復および前記複数の反復の中の前記反復の後の任意の反復に対応する前記ノイズレベルから生成された前記反復に関する集約ノイズレベルを含む前記反復のためのモデル入力を処理することであって、前記処理することはノイズ出力を生成するために前記モデル入力を処理するように構成されるノイズ推定ニューラルネットワークを使用し、前記ノイズ出力が、前記現在のネットワーク出力内の各値に関するそれぞれのノイズの推定値を含む、処理すること、ならびに
前記現在のネットワーク出力内の各値に関するそれぞれの前記ノイズの推定値および前記反復に関する前記ノイズレベルを使用して前記現在のネットワーク出力の値を更新することであって、前記更新することは、
少なくとも前記値についての前記ノイズの推定値および前記反復に対応する前記ノイズレベルから、前記現在のネットワーク出力の値に関する更新を生成することと、
前記現在のネットワーク出力の前記値から前記更新を減算することと、を含む、方法。
【請求項2】
前記ネットワーク入力が、音声セグメントのスペクトログラムであり、前記最終的なネットワーク出力が、前記音声セグメントに関する波形である請求項1に記載の方法。
【請求項3】
前記音声セグメントが、スピーチセグメントである請求項2に記載の方法。
【請求項4】
前記スペクトログラムが、テキストトゥスピーチモデルによって、テキストセグメントまたは前記テキストセグメントの言語的特徴から生成された請求項3に記載の方法。
【請求項5】
前記スペクトログラムが、メルスペクトログラムまたは対数メルスペクトログラムである請求項2から4のいずれか一項に記載の方法。
【請求項6】
前記ネットワーク入力が、生成される画像オブジェクトのクラスを指定するオブジェクトのクラスであり、前記ネットワーク出力が、オブジェクトの前記クラスの生成された画像であるか、または
前記ネットワーク入力が、一連のテキストであり、前記ネットワーク出力が、前記テキストを反映する画像であるか、または
前記ネットワーク入力が、画像であり、前記ネットワーク出力が、前記画像を特徴付ける入力画像の数値的な埋め込みであるか、または
前記ネットワーク入力が、画像であり、前記ネットワーク出力が、入力画像内の特定の種類のオブジェクトが描かれている位置を特定するか、または
前記ネットワーク入力が、画像であり、前記ネットワーク入力が、入力画像の複数のピクセルの各々を1組のカテゴリからのカテゴリに割り振るセグメンテーション出力であるかのいずれかである請求項1に記載の方法。
【請求項7】
前記ノイズの推定値および前記反復に関する前記ノイズレベルを使用して前記現在のネットワーク出力を更新することが
最初の更新されたネットワーク出力を生成するために、前記現在のネットワーク出力から前記更新を減算することを含む請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記現在のネットワーク出力を更新することが、
修正された最初の更新されたネットワーク出力を生成するために、前記反復に関する前記ノイズレベルに基づいて前記最初の更新されたネットワーク出力を修正することをさらに含む請求項7に記載の方法。
【請求項9】
最後の反復に関して、前記修正された最初の更新されたネットワーク出力が、前記最後の反復の後の更新されたネットワーク出力であり、前記最後の反復の前の各反復に関して、前記最後の反復の後の前記更新されたネットワーク出力が、前記修正された最初の更新されたネットワーク出力にノイズを加えることによって生成される請求項8に記載の方法。
【請求項10】
各反復における前記モデル入力が、各反復に関して異なる反復固有のデータを含む請求項1から9のいずれか一項に記載の方法。
【請求項11】
各反復のための前記モデル入力が、前記反復に対応する前記ノイズレベルを含む請求項10に記載の方法。
【請求項12】
前記ノイズ推定ニューラルネットワークが、
複数のノイズ生成ニューラルネットワーク層を含み、前記ネットワーク入力を前記ノイズ出力にマッピングするために前記ネットワーク入力を処理するように構成されたノイズ生成ニューラルネットワークと、
前記現在のネットワーク出力の代替的な表現を生成するために前記現在のネットワーク出力を処理するように構成された複数のネットワーク出力処理ニューラルネットワーク層を含むネットワーク出力処理ニューラルネットワークとを含み、
前記ノイズ生成ニューラルネットワーク層のうちの少なくとも1つが、(i)前記ノイズ生成ニューラルネットワーク層のうちの別の1つの出力、(ii)対応するネットワーク出力処理ニューラルネットワーク層の出力、および(iii)前記反復に関する前記反復固有のデータから導出される入力を受け取る請求項10または11に記載の方法。
【請求項13】
前記最終的なネットワーク出力が、前記ネットワーク入力よりも高い次元を有し、前記代替的な表現が、前記ネットワーク入力と同じ次元を有する請求項12に記載の方法。
【請求項14】
前記ノイズ推定ニューラルネットワークが、少なくとも1つのノイズ生成ニューラルネットワーク層の各々に対応するそれぞれの特徴毎線形変換(FiLM)モジュールを含み、所与のノイズ生成ニューラルネットワーク層に対応する前記FiLMモジュールが、前記ノイズ生成ニューラルネットワーク層への前記入力を生成するために、(i)前記ノイズ生成ニューラルネットワーク層のうちの前記別の1つの前記出力、(ii)前記対応するネットワーク出力処理ニューラルネットワーク層の前記出力、および(iii)前記反復に関する前記反復固有のデータを処理するように構成される請求項12または13に記載の方法。
【請求項15】
前記所与のノイズ生成ニューラルネットワーク層に対応する前記FiLMモジュールが、
(ii)前記対応するネットワーク出力処理ニューラルネットワーク層の前記出力、および(iii)前記反復に関する前記反復固有のデータからスケールベクトルおよびバイアスベクトルを生成し、
(i)前記ノイズ生成ニューラルネットワーク層のうちの前記別の1つの前記出力にアフィン変換を適用することによって、前記所与のノイズ生成ニューラルネットワーク層への前記入力を生成するように構成される請求項14に記載の方法。
【請求項16】
前記ノイズ生成ニューラルネットワーク層のうちの前記少なくとも1つが、活性化関数層を含み、前記活性化関数層が、前記活性化関数層への入力に非線形活性化関数を適用する請求項12から15のいずれか一項に記載の方法。
【請求項17】
前記活性化関数層に対応する前記ノイズ生成ニューラルネットワーク層のうちの前記別の1つが、残差接続層または畳み込み層である請求項16に記載の方法。
【請求項18】
請求項10から17のいずれか一項に記載のノイズ推定ニューラルネットワークを訓練する方法であって、
訓練ネットワーク入力および対応する訓練ネットワーク出力を取得する動作と、
前記複数の反復のすべてに関する前記反復固有のデータを含む組から反復固有のデータを選択する動作と、
前記訓練ネットワーク出力内の各値に関するそれぞれのノイズ値を含むノイズのある出力をサンプリングする動作と、
前記ノイズのある出力および前記対応する訓練ネットワーク出力から、修正された訓練ネットワーク出力を生成する動作と、
訓練ノイズ出力を生成するために、前記ノイズ推定ニューラルネットワークを使用して、(i)前記修正された訓練ネットワーク出力、(ii)前記訓練ネットワーク入力、および(iii)前記反復固有のデータを含むモデル入力を処理する動作と、
サンプリングされたノイズのある出力と前記訓練ノイズ出力との間の誤差を測定する目的関数の勾配から、前記ノイズ推定ニューラルネットワークのネットワークパラメータへの更新を決定する動作とを繰り返し実行するステップを含む、方法。
【請求項19】
前記目的関数が、前記サンプリングされたノイズのある出力と前記訓練ノイズ出力との間の距離を測定する請求項18に記載の方法。
【請求項20】
前記距離が、L1距離である請求項19に記載の方法。
【請求項21】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から20のいずれか一項に記載の方法を実行させるように動作可能である命令を記憶する1つまたは複数のストレージデバイスとを含むシステム。
【請求項22】
1つまたは複数のコンピュータによって実行されるときに前記1つまたは複数のコンピュータに請求項1から20のいずれか一項に記載の方法を実行させる命令が符号化されたコンピュータストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年9月2日に出願した米国特許出願第63/073,867号の優先権を主張するものであり、この出願の開示は、参照により本明細書に組み込まれる。
【0002】
本明細書は、機械学習モデルを使用してネットワーク入力を条件とする出力を生成することに関する。
【背景技術】
【0003】
機械学習モデルは、入力を受け取り、受け取られた入力に基づいて出力、たとえば、予測される出力を生成する。一部の機械学習モデルは、パラメトリックモデルであり、受け取られた入力およびモデルのパラメータの値に基づいて出力を生成する。
【0004】
一部の機械学習モデルは、受け取られた入力に関する出力を生成するためにモデルの複数の層を使用する深層モデル(deep model)である。たとえば、深層ニューラルネットワークは、出力を生成するために受け取られた入力に非線形変換をそれぞれ適用する出力層および1つまたは複数の隠れ層を含む深層機械学習モデルである。
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、ネットワーク入力を条件とするネットワーク出力を生成する、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムを説明する。
【0006】
第1の態様によれば、ネットワーク入力を条件とする複数の出力を含む最終的なネットワーク出力を生成する方法であって、ネットワーク入力を取得するステップと、現在のネットワーク出力を初期化するステップと、複数の反復の各々において現在のネットワーク出力を更新することによって最終的なネットワーク出力を生成するステップとを含み、各反復が、それぞれのノイズレベルに対応し、更新することが、各反復において、ノイズ出力を生成するためにモデル入力を処理するように構成されるノイズ推定ニューラルネットワークを使用して、(i)現在のネットワーク出力および(ii)ネットワーク入力を含む反復のためのモデル入力を処理することであって、ノイズ出力が、現在のネットワーク出力内の各値に関するそれぞれのノイズの推定値を含む、処理すること、ならびにノイズの推定値および反復に関するノイズレベルを使用して現在のネットワーク出力を更新することを含む、方法が提供される。
【0007】
一部の実装において、ネットワーク入力は、音声セグメントのスペクトログラムであり、最終的なネットワーク出力は、音声セグメントに関する波形である。
【0008】
一部の実装において、音声セグメントは、スピーチセグメントである。
【0009】
一部の実装において、スペクトログラムは、テキストトゥスピーチモデルによって、テキストセグメントまたはテキストセグメントの言語的特徴から生成された。
【0010】
一部の実装において、スペクトログラムは、メルスペクトログラムまたは対数メルスペクトログラムである。
【0011】
一部の実装において、ノイズの推定値および反復に関するノイズレベルを使用して現在のネットワーク出力を更新することは、少なくともノイズの推定値および反復に対応するノイズレベルから反復のための更新を生成することと、最初の更新されたネットワーク出力を生成するために、現在のネットワーク出力から更新を減算することとを含む。
【0012】
一部の実装において、現在のネットワーク出力を更新することは、修正された最初の更新されたネットワーク出力を生成するために、反復に関するノイズレベルに基づいて最初の更新されたネットワーク出力を修正することをさらに含む。
【0013】
一部の実装において、最後の反復に関して、修正された最初の更新されたネットワーク出力は、最後の反復の後の更新されたネットワーク出力であり、最後の反復の前の各反復に関して、最後の反復の後の更新されたネットワーク出力は、修正された最初の更新されたネットワーク出力にノイズを加えることによって生成される。
【0014】
一部の実装において、現在のネットワーク出力を初期化するステップは、対応するノイズ分布(noise distribution)から現在のネットワーク出力に関する複数の初期値の各々をサンプリングすることを含む。
【0015】
一部の実装において、各反復におけるモデル入力は、各反復に関して異なる反復固有のデータを含む。
【0016】
一部の実装において、各反復のためのモデル入力は、反復に対応するノイズレベルを含む。
【0017】
一部の実装において、各反復のためのモデル入力は、反復および複数の反復の中の当該反復の後の任意の反復に対応するノイズレベルから生成された反復に関する集約ノイズレベル(aggregate noise level)を含む。
【0018】
一部の実装において、ノイズ推定ニューラルネットワークは、複数のノイズ生成ニューラルネットワーク層を含み、ネットワーク入力をノイズ出力にマッピングするためにネットワーク入力を処理するように構成されたノイズ生成ニューラルネットワークと、現在のネットワーク出力の代替的な表現を生成するために現在のネットワーク出力を処理するように構成された複数のネットワーク出力処理ニューラルネットワーク層を含むネットワーク出力処理ニューラルネットワークとを含み、ノイズ生成ニューラルネットワーク層のうちの少なくとも1つは、(i)ノイズ生成ニューラルネットワーク層のうちの別の1つの出力、(ii)対応するネットワーク出力処理ニューラルネットワーク層の出力、および(iii)反復に関する反復固有のデータから導出される入力を受け取る。
【0019】
一部の実装において、最終的なネットワーク出力は、ネットワーク入力よりも高い次元(dimensionality)を有し、代替的な表現は、ネットワーク入力と同じ次元を有する。
【0020】
一部の実装において、ノイズ推定ニューラルネットワークは、少なくとも1つのノイズ生成ニューラルネットワーク層の各々に対応するそれぞれの特徴毎線形変換(FiLM: Feature-wise Linear Modulation)モジュールを含み、所与のノイズ生成ニューラルネットワーク層に対応するFiLMモジュールは、ノイズ生成ニューラルネットワーク層への入力を生成するために、(i)ノイズ生成ニューラルネットワーク層のうちの別の1つの出力、(ii)対応するネットワーク出力処理ニューラルネットワーク層の出力、および(iii)反復に関する反復固有のデータを処理するように構成される。
【0021】
一部の実装において、所与のノイズ生成ニューラルネットワーク層に対応するFiLMモジュールは、(ii)対応するネットワーク出力処理ニューラルネットワーク層の出力、および(iii)反復に関する反復固有のデータからスケールベクトル(scale vector)およびバイアスベクトル(bias vector)を生成し、(i)ノイズ生成ニューラルネットワーク層のうちの別の1つの出力にアフィン変換を適用することによって、所与のノイズ生成ニューラルネットワーク層への入力を生成するように構成される。
【0022】
一部の実装において、ノイズ生成ニューラルネットワーク層のうちの少なくとも1つは、活性化関数層を含み、活性化関数層は、活性化関数層への入力に非線形活性化関数を適用する。
【0023】
一部の実装において、活性化関数層に対応するノイズ生成ニューラルネットワーク層のうちの別の1つは、残差接続(residual connection)層または畳み込み層である。
【0024】
一部の実装においては、ノイズ推定ニューラルネットワークを訓練する方法が、訓練ネットワーク入力および対応する訓練ネットワーク出力を取得する動作と、複数の反復のすべてに関する反復固有のデータを含む組から反復固有のデータを選択する動作と、訓練ネットワーク出力内の各値に関するそれぞれのノイズ値を含むノイズのある出力(noisy output)をサンプリングする動作と、ノイズのある出力および対応する訓練ネットワーク出力から、修正された訓練ネットワーク出力を生成する動作と、訓練ノイズ出力を生成するために、ノイズ推定ニューラルネットワークを使用して、(i)修正された訓練ネットワーク出力、(ii)訓練ネットワーク入力、および(iii)反復固有のデータを含むモデル入力を処理する動作と、サンプリングされたノイズのある出力と訓練ノイズ出力との間の誤差を測定する目的関数の勾配から、ノイズ推定ニューラルネットワークのネットワークパラメータへの更新を決定する動作とを繰り返し実行するステップを含む。
【0025】
一部の実装において、目的関数は、サンプリングされたノイズのある出力と訓練ノイズ出力との間の距離を測定する。
【0026】
一部の実装において、距離は、L1距離である。
【0027】
本明細書に記載の主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装されることが可能である。
【0028】
説明される技術は、ネットワーク入力を条件とする非自己回帰的な方法でネットワーク出力を生成する。概して、自己回帰モデルは、高品質なネットワーク出力を生成することが示されているが、多数の反復を必要とし、大きなレイテンシならびにリソース、たとえば、メモリおよび処理能力の消費につながる。これは、自己回帰モデルがネットワーク出力内のそれぞれの所与の出力を1つずつ生成し、それぞれが、ネットワーク出力内の所与の出力に先立つ出力のすべてを条件としているからである。
【0029】
一方、説明される技術は、最初のネットワーク出力、たとえば、ノイズ分布からサンプリングされた値を含むノイズのある出力から開始し、ネットワーク入力を条件とする勾配ベースのサンプラによってネットワーク出力を反復的に改良する、すなわち、反復的なノイズ除去プロセスが、使用されてよい。結果として、手法は、自己回帰的でなく、推論中に一定の数の生成ステップしか必要としない。たとえば、スペクトログラムを条件とする音声合成に関して、説明された技術は、大幅に削減されたレイテンシで、ずっと少ない計算リソースを使用しながら、最新の自己回帰モデルによって生成された音声サンプルに匹敵するかまたはそれを上回りさえする高忠実度の音声サンプルを、非常に少ない反復、たとえば、6回以下の反復で生成することができる。さらに、説明される技術は、既存の非自己回帰モデルによって生成されるサンプルよりも高品質な(たとえば、より忠実度の高い)サンプルを生成することができる。
【0030】
本明細書の主題の1つまたは複数の実施形態の詳細が、添付の図面および以下の説明に記載されている。主題のその他の特徴、態様、および利点は、説明、図面、および請求項から明らかになるであろう。
【図面の簡単な説明】
【0031】
図1】例示的な条件付き出力生成システムのブロック図である。
図2】ネットワーク入力を条件とする出力を生成するための例示的なプロセスの流れ図である。
図3】例示的なノイズ推定ニューラルネットワークのブロック図である。
図4】例示的なネットワーク出力処理ニューラルネットワークブロックのブロック図である。
図5】例示的な特徴毎線形変換(FiLM)モジュールのブロック図である。
図6】例示的なノイズ生成ニューラルネットワークブロックのブロック図である。
図7】ノイズ推定ニューラルネットワークを訓練するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0032】
様々な図面における同様の参照番号および参照指示は、同様の要素を示す。
【0033】
図1は、例示的な条件付き出力生成システム100を示す。条件付き出力生成システム100は、以下で説明されるシステム、コンポーネント、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【0034】
条件付き出力生成システム100は、ネットワーク入力102を条件とする最終的なネットワーク出力104を生成する。
【0035】
本明細書における条件付き出力生成システム100は、広く適用可能であり、1つの特定の実装に限定されない。しかし、例示を目的として、少数の例示的な実装が下で説明される。
【0036】
たとえば、システムは、音声のスペクトログラム、たとえば、メルスペクトログラム、または周波数が異なるスケールにあるスペクトログラムを条件とする音声の波形を生成するように構成され得る。この特定の例として、スペクトログラムは、スピーチセグメントのスペクトログラムであることが可能であり、波形は、スピーチセグメントの波形であることが可能である。たとえば、スペクトログラムは、テキストまたはテキストの言語的特徴を、話されているテキストの発話のスペクトログラムに変換するテキストトゥスピーチ機械学習モデルの出力であることが可能である。
【0037】
別の例として、システムは、ネットワーク出力を生成するためにネットワーク入力に対して画像処理タスクを実行するように構成され得る。たとえば、ネットワーク入力は、生成される画像オブジェクトのクラスを指定する(たとえば、ワンホットベクトルによって表される)オブジェクトのクラスである可能性があり、ネットワーク出力は、オブジェクトのクラスの(たとえば、画像内の各ピクセルの強度値または1組のRGB値によって表される)生成された画像であり得る。
【0038】
別の特定の例として、タスクは、条件付きの画像生成であることが可能であり、ネットワーク入力は、一連のテキストであることが可能であり、ネットワーク出力は、テキストを反映する画像であることが可能である。たとえば、一連のテキストは、画像内のシーンを説明する文または一連の形容詞を含み得る。
【0039】
別の特定の例において、タスクは、画像の埋め込み(embedding)の生成であることが可能であり、ネットワーク入力は、画像であることが可能であり、ネットワーク出力は、画像を特徴付ける入力画像の数値的な埋め込みであることが可能である。
【0040】
さらに別の特定の例として、タスクは、オブジェクトの検出であることが可能であり、ネットワーク入力は、画像であることが可能であり、ネットワーク出力は、特定の種類のオブジェクトが描かれている入力画像内の位置を特定することが可能であり、たとえば、オブジェクトの描写を含む入力画像内のバウンディングボックスを指定することが可能である。
【0041】
さらに別の特定の例として、タスクは、画像のセグメンテーションであることが可能であり、ネットワーク入力は、画像であることが可能であり、ネットワーク出力は、入力画像の複数のピクセルの各々を1組のカテゴリからのカテゴリに割り振る、たとえば、ピクセルがカテゴリに属する尤度(likelihood)を表すカテゴリの各々に関するそれぞれのスコアを各ピクセルに割り振るセグメンテーション出力であることが可能である。
【0042】
より広く、タスクは、ネットワーク入力を条件とする連続データを出力する任意のタスクであることが可能である。
【0043】
ネットワーク入力102を条件とする最終的なネットワーク出力104を生成するために、条件付き出力生成システム100は、ネットワーク入力102を取得し、現在のネットワーク出力114を初期化する。たとえば、システム100は、現在のネットワーク出力内の各値を対応するノイズ分布(たとえば、Iが単位行列であるN(0, I)のようなガウス分布)からサンプリングすることによって、現在のネットワーク出力114を初期化することができる(すなわち、現在のネットワーク出力114の第1のインスタンスを生成することができる)。すなわち、最初の現在のネットワーク出力114は、最終的なネットワーク出力104と同じ数の値を含むが、各値は、対応するノイズ分布からサンプリングされる。
【0044】
それから、システム100は、複数回の反復の各々で現在のネットワーク出力114を更新することによって、最終的なネットワーク出力104を生成する。言い換えると、最終的なネットワーク出力104は、複数回の反復のうちの最後の反復の後の現在のネットワーク出力114である。
【0045】
場合によっては、反復の回数が決まっている。
【0046】
その他の場合、システム100または別のシステムは、最終的なネットワーク出力の生成のレイテンシの要件に基づいて反復の回数を調整することができる。すなわち、システム100は、最終的なネットワーク出力104がレイテンシの要件を満たすように生成されるように反復の回数を選択することができる。
【0047】
さらにその他の場合、システム100または別のシステムは、最終的なネットワーク出力104の生成の計算リソース消費の要件に基づいて反復の回数を調整することができ、すなわち、最終的なネットワーク出力が要件を満たすように生成されるように反復の回数を選択することができる。たとえば、要件は、最終的なネットワーク出力の生成の一部として実行される浮動小数点演算の最大数(FLOPS)であることが可能である。
【0048】
各反復において、システムは、ノイズ推定ニューラルネットワーク300を使用して、(i)現在のネットワーク出力114、(ii)ネットワーク入力102、および任意で(iii)反復のための反復固有のデータを含む反復のためのモデル入力を処理する。反復固有のデータは、概して、ノイズレベル106から導出される(たとえば、各ノイズレベルが特定の反復に対応する場合)。システムは、更新の各反復のためのスケールとしてノイズレベル106を使用して現在のネットワーク出力を更新することができる。すなわち、ノイズレベル106の各ノイズレベルが、特定の反復に対応することが可能であり、反復に関するそれぞれのノイズレベルは、反復における現在のネットワーク出力114に対する更新のスケールを導くことができる。
【0049】
ノイズ推定ニューラルネットワーク300は、パラメータ(「ネットワークパラメータ」)を有し、現在のネットワーク出力114内の各値に関するそれぞれのノイズの推定値を含むノイズ出力110を生成するためにネットワークパラメータの現在の値に従ってモデル入力を処理するように構成されるニューラルネットワークである。ノイズ推定ニューラルネットワークの詳細は、下で図3に関連してさらに詳細に検討される。
【0050】
概して、現在のネットワーク出力内の所与の値に関するノイズの推定値は、所与の値を生成するために、ネットワーク入力に関する実際のネットワーク出力内の対応する実際の値に加えられたノイズの推定値である。すなわち、ノイズの推定値は、現在の反復に対応するノイズレベルが与えられたとして、実際の値が、知られている場合に、現在のネットワーク出力内の所与の値を生成するためにどのように修正される必要があるかを定義する。言い換えると、所定の値は、現在の反復に関するノイズレベルに従って実際の値にノイズの推定値を適用することによって生成される可能性がある。
【0051】
このノイズの推定値は、データ密度の勾配の推定値と解釈されることが可能であり、したがって、生成プロセスは、データ密度の推定によってネットワーク出力を反復的に生成する処理とみなされ得る。
【0052】
そして、システム100は、更新エンジン112を使用して、ノイズの推定値の方向に現在のネットワーク出力114を更新する。
【0053】
特に、更新エンジン112は、ノイズの推定値および反復に関する対応するノイズレベルを使用して、現在のネットワーク出力114を更新する。すなわち、更新エンジン112は、図2に関連してさらに詳細に検討されるように、反復におけるノイズ出力110の対応するノイズの推定値および対応するノイズレベルを使用して現在のネットワーク出力114の各値を更新する。
【0054】
最後の反復の後、条件付き出力生成システム100は、更新されたネットワーク出力114を最終的なネットワーク出力104として出力する。たとえば、最終的なネットワーク出力104が音声波形を表す実装において、システムは、スピーカを使用して音声を再生することができ、または再生などのために音声を送信することができる。別の例では、最終的なネットワーク出力104が画像を表す実装において、システムは、ユーザディスプレイ上で画像を示すことができ、または表示などのために画像を送信することができる。一部の実装において、システム100は、最終的なネットワーク出力104をデータストアに保存することができ、または記憶されるように最終的なネットワーク出力104を送信することができる。
【0055】
システム100がノイズ推定ニューラルネットワーク300を使用して最終的なネットワーク出力を生成する前に、システム100または別のシステムは、訓練データでノイズ推定ニューラルネットワーク300を訓練する。訓練は、図7を参照して下で説明される。
【0056】
図2は、ネットワーク入力を条件とする出力を生成するための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラミングされた条件付き出力生成システム、たとえば、図1の条件付き出力生成システム100が、プロセス200を実行し得る。
【0057】
システムは、最終的なネットワーク出力の条件となるネットワーク入力を取得する(202)。たとえば、音声波形であるネットワーク出力に関して、ネットワーク入力は、スペクトログラム、メルスペクトログラム、または音声波形によって反映されたテキストの本文の言語的特徴であることが可能である。
【0058】
システムは、現在のネットワーク出力を初期化する(204)。複数の値を含む最終的なネットワーク出力に関して、システムは、最終的なネットワーク出力と同じ数の値を有する最初の現在のネットワーク出力内の各値を、ノイズ分布からサンプリングすることができる。たとえば、システムは、yN~N(0, I)によって表されるノイズ分布(たとえば、ガウスノイズ分布)を使用して現在のネットワーク出力を初期化することができ、Iは、単位行列であり、yNのNは、反復の意図された回数を表す。システムは、反復Nから反復1まで降順にN回の反復で最初の現在のネットワーク出力を更新することができる。
【0059】
そのとき、システムは、複数回の反復の各々において、現在のネットワーク出力を更新する。概して、各反復における現在のネットワーク出力は、追加のノイズをともなう最終的なネットワーク出力と解釈され得る。すなわち、現在のネットワーク出力は、最終的なネットワーク出力のノイズのあるバージョンである。たとえば、Nが反復の回数を表す最初の現在のネットワーク出力yNに関して、システムは、反復に対応するノイズの推定値を削除することによって、反復Nから1までの各々において現在のネットワーク出力を更新することができる。すなわち、システムは、ノイズの推定値を決定し、推定値に従って現在のネットワーク出力を更新することにより、各反復において現在のネットワーク出力を改良することができる。システムは、最終的なネットワーク出力y0を出力するまで、反復に降順を使用し得る。
【0060】
複数回の反復の各々において、システムは、ノイズ推定ニューラルネットワークを使用して、(1)現在のネットワーク出力、(2)ネットワーク入力、および任意で(3)反復に関する反復固有のデータを含むモデル入力を処理することによって反復のためのノイズ出力を生成する(206)。反復に固有のデータは、概して、反復に関するノイズレベルから導出され、各ノイズレベルは、特定の反復に対応する。ノイズ出力は、現在のネットワーク出力内の各値に関するノイズの推定値を含み得る。たとえば、現在のネットワーク出力内の特定の値に関するそれぞれのノイズの推定値は、特定の値を生成するために、ネットワーク入力に関する実際のネットワーク出力内の対応する実際の値に加えられたノイズの推定値を表し得る。すなわち、特定の値に関するノイズの推定値は、実際の値が、知られている場合に、特定の値を生成するために、対応するノイズレベルが与えられたとしてどのように修正される必要があるかを表す。
【0061】
複数回の反復の各々において、システムは、現在の反復のためのノイズ出力と、現在の反復に対応するノイズレベルとを使用して、現在の反復の時点で現在のネットワーク出力を更新する(208)。システムは、ノイズ出力内の対応するノイズの推定値と、現在の反復に関するノイズレベルとを使用して、現在のネットワーク出力内の各値を更新することができる。システムは、ノイズの推定値および反復に関するノイズレベルから反復のための更新を生成し、それから、最初の更新されたネットワーク出力を生成するために現在のネットワーク出力から更新を減算することができる。そして、システムは、反復に関するノイズレベルに基づいて最初の更新されたネットワーク出力を修正して、修正された最初の更新されたネットワーク出力を、
【0062】
【数1】
【0063】
のように生成することができ、nは、反復をインデックス付けし、ynは、反復nにおける現在のネットワーク出力を表し、yn-1は、修正された最初の更新されたネットワーク出力を表し、xは、ネットワーク入力を表し、αnは、反復nに関するノイズレベルを表し、
【0064】
【数2】
【0065】
は、反復nに関する集約ノイズレベル(たとえば、これは、現在の反復および現在の反復の後の任意の反復におけるノイズレベルから生成される)を表し、
【0066】
【数3】
【0067】
は、パラメータθを用いてノイズ推定ニューラルネットワークによって生成されたノイズ出力を表す。ノイズレベルαnおよび集約ノイズレベル
【0068】
【数4】
【0069】
は、ノイズスケジュール(noise schedule)
【0070】
【数5】
【0071】
(たとえば、最小値から最大値まで線形に変動する線形ノイズスケジュール、フィボナッチベースのスケジュール(Fibonacci-based schedule)、またはデータ駆動型もしくはヒューリスティックな方法から生成されたカスタムスケジュール)から決定され得る。ノイズレベルαn = 1-βnおよび集約ノイズレベル
【0072】
【数6】
【0073】
は、一様分布(uniform distribution)から、
【0074】
【数7】
【0075】
のようにサンプリングされることが可能であり、nは、反復をインデックス付けし、
【0076】
【数8】
【0077】
である。式(2)のように
【0078】
【数9】
【0079】
をサンプリングすることは、システムがノイズの異なるスケールに基づいて更新を生成することを可能にする。各反復nに関するノイズレベルαnおよび集約ノイズレベル
【0080】
【数10】
【0081】
は、予め決定され、モデル入力の一部としてシステムによって取得され得る。
【0082】
最後の反復に関して、修正された最初の更新されたネットワーク出力は、最後の反復の後の更新されたネットワーク出力であり、最後の反復の前の各反復に関して、最後の反復の後の更新されたネットワーク出力は、修正された最初の更新されたネットワーク出力にノイズを加えることによって生成される。すなわち、反復が最後の反復でない場合(すなわち、n > 1である場合)、システムは、修正された最初の更新されたネットワーク出力を、
yn-1 = yn-1nz (3)
のようにさらに更新し、nは、反復をインデックス付けし、σnは、ノイズスケジュール
【0083】
【数11】
【0084】
または別の方法から決定される(たとえば、ノイズスケジュールの関数として、もしくは経験的な実験を使用するハイパーパラメータのチューニングによって決定される)ことが可能であり、z~N(0, I)である。σnは、多峰性分布(multi-modal distribution)をモデリングすることを可能にするために含まれる。
【0085】
システムは、終了基準が満たされたか否かを判定する(210)。たとえば、終了基準は、(たとえば、最低性能指標(minimum performance metric)、最大レイテンシ要件、またはFLOPSの最大数などの最大計算リソース要件を満たすように決定された)特定の回数の反復を実行したことを含み得る。特定の回数の反復が実行されていない場合、システムは、ステップ(206)から再び開始し、現在のネットワーク出力に対して別の更新を実行することができる。
【0086】
終了基準が満たされたとシステムが判定する場合、システムは、最後の反復の後の更新されたネットワーク出力である最終的なネットワーク出力を出力する(212)。
【0087】
プロセス200は、ネットワーク入力を条件とする非自己回帰的な方法でネットワーク出力を生成するために使用され得る。概して、自己回帰モデルは、高品質なネットワーク出力を生成することが示されているが、多数の反復を必要とし、大きなレイテンシならびにリソース、たとえば、メモリおよび処理能力の消費につながる。これは、自己回帰モデルがネットワーク出力内のそれぞれの所与の出力を1つずつ生成し、それぞれが、ネットワーク出力内の所与の出力に先立つ出力のすべてを条件としているからである。一方、プロセス200は、最初のネットワーク出力、たとえば、ノイズ分布からサンプリングされた値を含むノイズのある出力から開始し、ネットワーク入力を条件とする勾配ベースのサンプラによってネットワーク出力を反復的に改良する。結果として、手法は、自己回帰的でなく、推論中に一定の数の生成ステップしか必要としない。たとえば、スペクトログラムを条件とする音声合成に関して、説明された技術は、大幅に削減されたレイテンシで、ずっと少ない計算リソースを使用しながら、最新の自己回帰モデルによって生成された音声サンプルに匹敵するかまたはそれを上回りさえする高忠実度の音声サンプルを、非常に少ない反復、たとえば、6回以下の反復で生成することができる。
【0088】
図3は、ノイズ推定ネットワーク300の例示的なアーキテクチャを示す。
【0089】
例示的なノイズ推定ネットワーク300は、畳み込みニューラルネットワーク層、ノイズ生成ニューラルネットワークブロック、特徴毎線形変換(FiLM)モジュールニューラルネットワークブロック、およびネットワーク出力処理ニューラルネットワークブロックなどの複数の種類のニューラルネットワーク層およびニューラルネットワークブロックを含む(たとえば、各ニューラルネットワークブロックが複数のニューラルネットワーク層を含む)。
【0090】
ノイズ推定ネットワーク300は、ノイズ出力110を生成するために、(1)現在のネットワーク出力114、(2)ネットワーク入力102、および(3)現在の反復に対応する集約ノイズレベル306を含む反復固有のデータを含むモデル入力を処理する。ネットワーク出力114は、ネットワーク入力102よりも高い次元を有し、ノイズ出力110は、現在のネットワーク出力114と同じ次元を有する。たとえば、24kHzの音声波形を表す現在のネットワーク出力に関して、ネットワーク入力は、(たとえば、推論中に別のシステムによって予測された)音声波形に対応する80Hzのメルスペクトログラム信号を含み得る。
【0091】
ノイズ推定ネットワーク300は、現在のネットワーク出力114のそれぞれの代替的な表現を生成するために現在のネットワーク出力114を処理するための複数のネットワーク出力処理ブロックを含む。
【0092】
ノイズ推定ネットワーク300は、現在のネットワーク出力の代替的な表現を生成するために現在のネットワーク出力114を処理するためのネットワーク出力処理ブロック400も含み、代替的な表現は、現在のネットワーク出力よりも小さい次元を有する。
【0093】
ノイズ推定ネットワーク300は、前の代替的な表現よりもさらに小さい次元を有する別の代替的な表現を生成するために前のネットワーク出力処理ブロックによって生成された代替的な表現を処理するための追加のネットワーク出力処理ブロック(たとえば、ネットワーク出力処理ブロック318、316、314、および312)をさらに含む(たとえば、ネットワーク318は、ブロック400の出力よりも小さい次元を有する代替的な表現を生成するためにブロック400からの代替的な表現を処理し、ブロック316は、ブロック318の出力よりも小さい次元を有する代替的な表現を生成するためにブロック318からの代替的な表現を処理するなど)。最後のネットワーク出力処理ブロック(たとえば、312)から生成された現在のネットワーク出力の代替的な表現は、ネットワーク入力102と同じ次元を有する。
【0094】
たとえば、24kHzの音声波形を含む現在のネットワーク出力および80Hzのメルスペクトログラムを含むネットワーク入力に関して、ネットワーク出力処理ブロックのブロックは、最後の層312によって生成される代替的な表現が80Hzになる(すなわち、メルスペクトログラムに一致するように300分の1に小さくされる)まで、(たとえば、それぞれ、ネットワーク出力処理ブロック400、318、316、314、および312によって)次元を2分の1、2分の1、3分の1、5分の1、および5分の1に「ダウンサンプリングする」(すなわち、次元を小さくする)ことができる。例示的なネットワーク出力処理ブロックのアーキテクチャは、図4に関連してさらに詳細に検討される。
【0095】
ノイズ推定ブロック300は、ノイズ生成ニューラルネットワークブロックのための入力を生成するために、現在の反復に対応する反復固有のデータ(たとえば、集約ノイズレベル306)と、ネットワーク出力処理ニューラルネットワークブロックからの代替的な表現とを処理するための複数のFiLMモジュールニューラルネットワークブロックを含む。各FiLMモジュールは、それぞれのノイズ生成ブロックのための入力を生成するために、集約ノイズレベル306と、それぞれのネットワーク出力処理ブロックからの代替的な表現とを処理する(たとえば、FiLMモジュール500は、ノイズ生成ブロック600のための入力を生成するためにネットワーク出力処理ブロック400からの代替的な表現を処理し、FILMモジュール328は、ノイズ生成ブロック338のための入力を生成するためにネットワーク出力処理ブロック318からの代替的な表現を処理するなど)。特に、各FiLMモジュールは、図5を参照してさらに詳細に検討されるように、それぞれのノイズ生成ブロックへの入力として(たとえば、それぞれのノイズ生成ブロック内のアフィン変換ニューラルネットワーク層への入力として)、スケールベクトルおよびバイアスベクトルを生成する。
【0096】
ノイズ推定ネットワーク300は、ノイズ出力110を生成するためにネットワーク入力102とFiLMモジュールからの出力とを処理するための複数のノイズ生成ニューラルネットワークブロックを含む。ノイズ推定ネットワーク300は、第1のノイズ生成ブロック332への入力を生成するためにネットワーク入力102を処理するための畳み込み層302と、ノイズ出力110を生成するために最後のノイズ生成ブロック600からの出力を処理するための畳み込み層304とを含み得る。各ノイズ生成ブロックは、ネットワーク入力102よりも高い次元を有する出力を生成する。特に、1つ目の後の各ノイズ生成ブロックは、前のノイズ生成ブロックからの出力よりも高い次元を有する出力を生成する。最後のノイズ生成ブロックは、現在のネットワーク出力114と同じ次元の出力を生成する。
【0097】
ノイズ推定ネットワーク300は、ノイズ生成ブロック334への入力を生成するために、畳み込み層302(すなわち、ネットワーク入力102を処理する畳み込み層)からの出力と、FILMモジュール332からの出力とを処理するためのノイズ生成ブロック332を含む。ノイズ推定ネットワーク300は、ノイズ生成ブロック336、338、および600をさらに含む。ノイズ生成ブロック334、336、338、および600は、次のニューラルネットワークブロックのための入力を生成するために、それぞれの前のノイズ生成ブロックからの出力(たとえば、ブロック334はブロック332からの出力を処理し、ブロック336はブロック334からの出力を処理するなど)と、それぞれのFiLMモジュールからの出力(たとえば、ノイズ生成ブロック334はFILMモジュール324からの出力を処理し、ノイズ生成ブロック336はFILMモジュール326からの出力を処理するなど)とをそれぞれ処理する。ノイズ生成ブロック600は、ノイズ出力110を生成するために入力を処理する畳み込み層304のための入力を生成する。例示的なノイズ生成ブロック(たとえば、ノイズ生成ブロック600)のアーキテクチャは、図6に関連してさらに詳細に検討される。
【0098】
最後よりも前の各ノイズ生成ブロックは、現在のネットワーク出力の対応する代替的な表現と同じ次元を有する出力を生成することができる(たとえば、ノイズ生成ブロック332は、ネットワーク出力処理ブロック314によって生成された代替的な表現と等しい次元を有する出力を生成し、ノイズ生成ブロック334は、ネットワーク出力処理ブロック316からの出力と等しい次元を有する出力を生成するなど)。
【0099】
たとえば、24kHzの音声波形を含む現在のネットワーク出力および80Hzのメルスペクトログラムを含むネットワーク入力に関して、ノイズ生成ブロックは、最後のノイズ生成ブロック(たとえば、ノイズ生成ブロック600)の出力が24kHzになる(すなわち、現在のネットワーク出力114に一致するように300倍に大きくされる)まで、(たとえば、それぞれ、ノイズ生成ブロック332、334、336、338、および600によって)次元を5、5、3、2、および2倍に「アップサンプリングする」(すなわち、次元を大きくする)ことができる。
【0100】
図4は、ネットワーク出力処理ブロック400の例示的なアーキテクチャを示す。
【0101】
ネットワーク出力処理ブロック400は、現在のネットワーク出力114の代替的な表現402を生成するために現在のネットワーク出力114を処理する。代替的な表現は、現在のネットワーク出力よりも小さい次元を有する。ネットワーク出力処理ブロック400は、1つまたは複数のニューラルネットワーク層を含む。1つまたは複数のニューラルネットワーク層は、(たとえば、入力の次元を「ダウンサンプリングする」または小さくするための)ダウンサンプリング層、非線形活性化関数を有する活性化層(たとえば、Leaky ReLU活性化関数を有する全結合層)、畳み込み層、および残差接続層を含む複数の種類のニューラルネットワーク層を含み得る。
【0102】
たとえば、ダウンサンプル層は、入力の次元を小さくする(「ダウンサンプリングする」)ために必要なストライドを用いる畳み込み層であることが可能である。特定の例においては、ストライドXが、入力の次元をX分の1に小さくするために使用されることが可能である(たとえば、ストライド2が、入力の次元を2分の1に小さくするために使用されることが可能であり、ストライド5が、入力の次元を5分の1に小さくするために使用されることが可能であるなど)。
【0103】
残差接続層420の左の分岐は、畳み込み層402およびダウンサンプル層404を含む。畳み込み層402は、ダウンサンプル層404への入力を生成するために現在のネットワーク出力114を処理する。ダウンサンプル層404は、残差接続層420への入力を生成するために畳み込み層402からの出力を処理する。ダウンサンプル層404の出力は、現在のネットワーク出力114と比較して、小さくされた次元を有する。たとえば、畳み込み層402は、ストライド1のサイズ1x1のフィルタを(すなわち、次元を維持するために)含むことができ、ダウンサンプル層404は、入力の次元を2分の1にダウンサンプリングするためにストライド2のサイズ2x1のフィルタを含むことができる。
【0104】
残差接続層420の右の分岐は、ダウンサンプル層406と、活性化層の後に畳み込み層が続く3つの後続のブロック(たとえば、活性化層408、畳み込み層410、活性化層412、畳み込み層414、活性化層416、および畳み込み層418)とを含む。ダウンサンプル層406は、活性化層および畳み込み層の後続の3つのブロックのための入力を生成するために現在のネットワーク出力114を処理する。ダウンサンプル層406の出力は、現在のネットワーク入力114と比較してより小さい次元を有する。後続の3つのブロックは、残差接続層420への入力を生成するためにダウンサンプリング層406からの出力を処理する。たとえば、ダウンサンプル層406は、(たとえば、ダウンサンプル層404と厳密に一致するように)入力の次元を2分の1に小さくするためにストライド2のサイズ2x1のフィルタを含み得る。活性化層(たとえば、408、412、および416)は、Leaky ReLU活性化関数を有する全結合層であることが可能である。畳み込み層(たとえば、410、414、および418)は、ストライド1のサイズ3x1のフィルタを(すなわち、次元を維持するため)含み得る。
【0105】
残差接続層420は、左の分岐からの出力と右の分岐からの出力とを組み合わせて、代替的な表現402を生成する。たとえば、残差接続層420は、代替的な表現402を生成するために左の分岐からの出力と右の分岐からの出力とを加算(たとえば、要素毎に加算)することができる。
【0106】
図5は、例示的な特徴毎線形変換(FiLM)モジュール500を示す。
【0107】
FiLMモジュール500は、スケールベクトル512およびバイアスベクトル516を生成するために、現在のネットワーク出力の代替的な表現402と、現在の反復に対応する集約ノイズレベル306とを処理する。スケールベクトル512およびバイアスベクトル516は、それぞれのノイズ生成ブロック(たとえば、図3のノイズ推定ネットワーク300のノイズ生成ブロック600)内の特定の層(たとえば、アフィン変換層)への入力として処理され得る。FiLMモジュール500は、位置符号化(positional encoding)関数および1つまたは複数のニューラルネットワーク層を含む。1つまたは複数のニューラルネットワーク層は、残差接続層、畳み込み層、および非線形活性化関数を有する活性化層(たとえば、Leaky ReLU活性化関数を有する全結合層)を含む複数の種類のニューラルネットワーク層を含み得る。
【0108】
残差接続層508の左の分岐は、位置符号化関数502を含む。位置符号化関数502は、ノイズレベルの位置符号化を生成するために集約ノイズレベル306を処理する。たとえば、集約ノイズレベル306は、トランスフォーマモデルの前処理と同様に、偶数次元インデックスのための正弦関数と、奇数次元インデックスのための余弦関数との組合せである位置符号化関数502を乗算され得る。
【0109】
残差接続層508の右の分岐は、畳み込み層504および活性化層506を含む。畳み込み層504は、活性化層506への入力を生成するために代替的な表現402を処理する。活性化層506は、残差接続層508への入力を生成するために畳み込み層504からの出力を処理する。たとえば、畳み込み層504は、(次元を維持するために)ストライド1のサイズ3x1のフィルタを含むことができ、活性化層506は、Leaky ReLU活性化関数を有する全結合層であることができる。
【0110】
残差接続層508は、左の分岐からの出力(たとえば、位置符号化関数502からの出力)と、右の分岐からの出力(たとえば、活性化層506からの出力)とを組み合わせて、畳み込み層510と畳み込み層514との両方への入力を生成することができる。たとえば、残差接続層508は、2つの畳み込み層(たとえば、510および514)への入力を生成するために左の分岐からの出力と右の分岐からの出力とを加算(たとえば、要素毎に加算)することができる。
【0111】
畳み込み層510は、スケールベクトル512を生成するために残差接続層508からの出力を処理する。たとえば、畳み込み層510は、(次元を維持するために)ストライド1のサイズ3x1のフィルタを含み得る。
【0112】
畳み込み層514は、バイアスベクトル516を生成するために残差接続層508からの出力を処理する。たとえば、畳み込み層514は、(次元を維持するために)ストライド1のサイズ3x1のフィルタを含み得る。
【0113】
図6は、例示的なノイズ生成ネットワーク600を示す。ノイズ生成ネットワーク600は、以下で説明されるシステム、コンポーネント、および技術が実装される、1つまたは複数の場所の1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの例である。
【0114】
ノイズ生成ブロック600は、ノイズ推定ニューラルネットワーク、たとえば、図3のノイズ推定ネットワーク300において使用されるノイズ生成ブロックの例示的なニューラルネットワークアーキテクチャである。
【0115】
ノイズ生成ブロック600は、出力310を生成するために入力602とFiLMモジュール500からの出力とを処理する。入力602は、(たとえば、図3のノイズ生成ブロック338、336、334、332、および畳み込み層302からの)1つまたは複数の前のニューラルネットワーク層によって処理されたネットワーク入力であることが可能である。出力310は、ノイズ出力110を生成するために出力310を処理する後続の畳み込み層(たとえば、図3の畳み込み層304)への入力であることが可能である。ノイズ生成ブロック600は、1つまたは複数のニューラルネットワーク層を含む。1つまたは複数のニューラルネットワーク層は、非線形活性化関数を有する活性化層(たとえば、Leaky ReLU活性化関数を有する全結合層)、アップサンプル層(たとえば、これは入力の次元を「アップサンプリングする」または大きくする)、畳み込み層、アフィン変換層、および残差接続層を含む複数の種類のニューラルネットワーク層を含み得る。
【0116】
たとえば、アップサンプル層は、入力の次元を「アップサンプリングする」(すなわち、大きくする)ニューラルネットワーク層であることが可能である。つまり、アップサンプル層は、層への入力よりも高い次元を有する出力を生成する。特定の例において、アップサンプル層は、入力と比較して出力の次元をX倍に大きくするために、入力内の各値のX個のコピーを有する出力を生成することができる(たとえば、入力(2,7,-4)に関して、(2,2,7,7,-4,-4)のように各値の2つのコピー、または(2,2,2,2,2,7,7,7,7,7,-4,-4,-4,-4,-4)のように各値の5つのコピーなどを有する出力を生成することができる)。概して、アップサンプル層は、出力内のそれぞれの追加のスポットを、入力内の最も近い値で埋めることができる。
【0117】
残差接続層618の左の分岐は、アップサンプル層602および畳み込み層604を含む。アップサンプル層602は、畳み込み層604への入力を生成するために入力602を処理する。畳み込み層への入力は、入力602よりも高い次元を有する。畳み込み層604は、残差接続層618への入力を生成するためにアップサンプル層602からの出力を処理する。たとえば、アップサンプル層は、入力602内の各値の2つのコピーを有する出力を生成することによって、入力の次元を2倍に大きくすることができる。畳み込み層604は、(たとえば、次元を維持するために)次元3x1およびストライド1のフィルタを含み得る。
【0118】
残差接続層618の右の分岐は、活性化層606(たとえば、Leaky ReLU活性化関数を有する全結合層)、アップサンプル層608、(たとえば、3x1のフィルタサイズおよびストライド1を有する)畳み込み層610、アフィン変換層612、活性化層614(たとえば、Leaky ReLU活性化関数を有する全結合層)、ならびに(たとえば、3x1のフィルタサイズおよびストライド1を有する)畳み込み層616をこの順に含む。
【0119】
活性化層606は、アップサンプル層608への入力を生成するために入力602を処理する。アップサンプル層は、入力602よりも(たとえば、アップサンプル層602に一致するように2倍)高い次元を有する畳み込み層610への入力を生成するために活性化層606からの出力の次元を大きくする。畳み込み層610は、(たとえば、次元を維持するために次元3x1およびストライド1のフィルタを用いて)アフィン変換層612への入力を生成するためにアップサンプル層608からの出力を処理する。活性化層614および畳み込み層616は、(たとえば、ネットワーク614に関してはLeaky ReLU関数、およびネットワーク616に関しては次元3x1およびストライド1のフィルタを用いて)残差接続層618への入力を生成するためにアフィン変換層612からの出力をさらに処理する。
【0120】
たとえば、アフィン変換関数は、出力を生成するために、先行するニューラルネットワーク層(たとえば、ノイズ生成ブロック600の畳み込み層610)からの出力と、FiLMモジュールからの出力とを処理することができる。たとえば、FiLMモジュールは、スケールベクトルおよびバイアスベクトルを生成することができる。アフィン変換層は、FiLMモジュールからのスケールベクトルを使用して前のニューラルネットワーク層からの出力を(たとえば、アダマール積、または要素毎の乗算を使用して)スケーリングした結果にバイアスベクトルを加算することができる。
【0121】
アフィン変換層612は、活性化層614への入力を生成するために、畳み込み層610からの出力と、FiLMモジュール500からの出力とを処理することができる。たとえば、FiLMモジュール500からのスケールベクトルを用いて畳み込み層610からの出力をスケーリングした結果に、FiLMモジュール500からのバイアスベクトルを加算することによる。
【0122】
残差接続層618は、左の分岐からの出力(たとえば、畳み込み層604からの出力)と、右の分岐からの出力(たとえば、畳み込み層616からの出力)とを組み合わせて出力を生成する。たとえば、残差接続層618は、出力を生成するために左の分岐からの出力と右の分岐からの出力とを合計することができる。
【0123】
残差接続層632の左の分岐は、残差接続層618からの出力を含む。左の分岐は、残差接続層618からの出力の恒等関数(identity function)と解釈され得る。
【0124】
残差接続層632の右の分岐は、残差接続層618からの出力を処理し、残差接続層632への入力を生成するために、アフィン変換層、活性化層、および畳み込み層の順の2つの連続したブロックを含む。特に、第1のブロックは、アフィン変換層620、活性化層622、および畳み込み層624を含む。第2のブロックは、アフィン変換層626、活性化層628、および畳み込み層630を含む。
【0125】
たとえば、各ブロックに関して、それぞれのアフィン変換層は、それぞれの出力を生成するために、FiLMモジュール500からの出力と、それぞれの前のニューラルネットワーク層からの出力とを処理することができる(たとえば、アフィン変換層620は残差接続層618からの出力を処理することができ、アフィン変換層626は畳み込み層624からの出力を処理することができる)。各アフィン変換層は、FiLMモジュール500からのスケールベクトルを用いて前のニューラルネットワーク層からの出力をスケーリングし、スケーリングの結果をFiLMモジュール500からのバイアスベクトルと合計することによって、それぞれの出力を生成することができる。各活性化層(たとえば、620および628)は、Leaky ReLU活性化関数を有するそれぞれの全結合層であることが可能である。各畳み込み層は、(たとえば、次元を維持するために)次元3x1およびストライド1のそれぞれフィルタを含み得る。
【0126】
残差接続層632は、左の分岐からの出力(たとえば、残差接続層618からの出力の恒等関数(identity))と、右の分岐からの出力(たとえば、畳み込み層630からの出力)とを組み合わせて出力310を生成する。たとえば、残差接続層632は、出力310を生成するために左の分岐からの出力と右の分岐からの出力とを合計することができる。出力310は、ノイズ出力110を生成する畳み込み層(たとえば、図3の畳み込み層304)への入力であることができる。
【0127】
ノイズ発生ブロック600は、複数のチャネルを含み得る。図3の各ノイズ生成ブロック(たとえば、600、338、336、334、および332)は、それぞれの数のチャネルを含み得る。たとえば、ノイズ生成ブロック600、338、336、334、および332は、それぞれ、128、128、256、512、および512チャネルを含み得る。
【0128】
図7は、ノイズ推定ニューラルネットワークを訓練するための例示的なプロセスの流れ図である。便宜上、プロセス700は、1つまたは複数の場所に置かれた1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。
【0129】
システムは、複数回の訓練の反復の各々でプロセス700を実行して、ノイズ推定ニューラルネットワークのパラメータの値を繰り返し更新することができる。
【0130】
システムは、訓練ネットワーク入力-訓練ネットワーク出力のペアのバッチ(batch)を取得する(702)。たとえば、システムは、データストアから訓練ペアをランダムにサンプリングすることができる。たとえば、各訓練ネットワーク出力は、音声波形であることが可能であり、各ネットワーク入力は、対応する音声波形から計算されたグラウンドトゥルース(ground-truth)メルスペクトログラムであることが可能である。
【0131】
バッチ内の各訓練ペアに関して、システムは、反復のすべてに関する反復固有のデータを含む組から反復固有のデータを選択する(704)。たとえば、システムは、1から最後の反復までの整数を含む離散一様分布から特定の反復をサンプリングし、それから、分布からサンプリングされた特定の反復に基づいて反復固有のデータを選択することができる。反復固有のデータは、ノイズレベル、(たとえば、式(2)で決定される)集約ノイズレベル、または反復回数自体を含み得る。したがって、システムは、離散的なインデックスをノイズ推定ニューラルネットワークの条件とすることができ、またはノイズレベルを示す連続的なスカラをノイズ推定ニューラルネットワークの条件とすることができる。ノイズレベルを示す連続的なスカラを条件とすることは、ノイズ推定ニューラルネットワークが訓練されると、推論時に、最終的なネットワーク出力を生成するときに、異なる数の改善ステップ(すなわち、反復)が使用され得るので、有利になり得る。
【0132】
バッチ内の各訓練ペアに関して、システムは、訓練ネットワーク出力内の各値に関するそれぞれのノイズ値を含むノイズのある出力をサンプリングする(706)。たとえば、システムは、ノイズ分布からノイズのある出力をサンプリングすることができる。特定の例において、ノイズ分布は、ガウスノイズ分布(たとえば、Iが次元n x nの単位行列であり、nが訓練ネットワーク出力内の数の値であるN(0, I)など)であることが可能である。
【0133】
バッチ内の各訓練ペアに関して、システムは、ノイズのある出力および対応する訓練ネットワーク出力から修正された訓練ネットワーク出力を生成する(708)。システムは、ノイズのある出力と対応する訓練ネットワーク出力とを組み合わせて、修正された訓練ネットワーク出力を生成することができる。たとえば、システムは、修正された訓練ネットワーク出力を、
【0134】
【数12】
【0135】
のように生成することができ、y'は、修正された訓練ネットワーク出力を表し、y0は、対応する訓練ネットワーク出力を表し、εは、ノイズのある出力を表し、
【0136】
【数13】
【0137】
は、反復固有のデータ(たとえば、集約ノイズレベル)を表す。
【0138】
バッチ内の各訓練ペアに関して、システムは、ネットワークパラメータの現在の値に従ってノイズ推定ニューラルネットワークを使用して、(1)修正された訓練ネットワーク出力、(2)訓練ネットワーク入力、および(3)反復固有のデータを含むモデル入力を処理することによって訓練ノイズ出力を生成する(710)。ノイズ推定ニューラルネットワークは、図2のプロセスにおいて説明されたように、訓練ノイズ出力を生成するためにモデル入力を処理することができる。たとえば、反復固有の基準は、集約ノイズレベル
【0139】
【数14】
【0140】
を含み得る。
【0141】
システムは、訓練バッチに関して目的関数の勾配からノイズ推定ネットワークのネットワークパラメータに対する更新を決定する(712)。システムは、各訓練ペアについて、ノイズ推定ネットワークのニューラルネットワークパラメータに関して目的関数の勾配を決定し、次に、モーメンタム(momentum)付き確率的勾配降下法またはADAMなどの様々な適切な最適化方法のいずれかを使用して、勾配(たとえば、勾配の平均などの勾配の線形結合)を用いてニューラルネットワークパラメータの現在値を更新することができる。
【0142】
目的関数は、各訓練ペアに関して、ノイズのある出力とノイズ推定ネットワークによって生成された訓練ノイズ出力との間の誤差を測定することができる。たとえば、特定の訓練ペアに関して、目的関数は、
【0143】
【数15】
【0144】
のような、ノイズのある出力と訓練ノイズ出力との間のL1距離を測定する損失項を含むことができ、L(ε,εθ)は、損失関数を表し、εは、ノイズのある出力を表し、
【0145】
【数16】
【0146】
は、パラメータθを用いてノイズ推定ニューラルネットワークによって生成された訓練ノイズ出力を表し、y'は、修正された訓練ネットワーク出力を表し、xは、訓練ネットワークの入力を表し、
【0147】
【数17】
【0148】
は、反復固有のデータ(たとえば、集約ノイズレベル)を表す。
【0149】
システムは、複数のバッチ(たとえば、訓練ネットワーク入力-訓練ネットワーク出力のペアの複数のバッチ)に関してステップ(702)~(712)を繰り返し実行することができる。
【0150】
本明細書は、用語「構成される」をシステムおよびコンピュータプログラムのコンポーネントに関連して使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されることは、システムが、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをそのシステム上にインストール済みであることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されるときに装置に動作またはアクションを実行させる命令を含むことを意味する。
【0151】
本明細書に記載の主題の実施形態および機能的動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、有形で具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装されることが可能である。本明細書に記載の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために有形の非一時的ストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装されることが可能である。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能である。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成される伝播信号、たとえば、機械によって生成される電気的信号、光学的信号、または電磁的信号上に符号化され得る。
【0152】
用語「データ処理装置」は、データ処理ハードウェアを指し、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であることも可能であり、またはそのような専用論理回路をさらに含むことも可能である。任意で、装置は、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。
【0153】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるまたは記載される場合もあるコンピュータプログラムは、コンパイラ型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述されることが可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内での使用に適したその他のユニットとしての形態を含む任意の形態で配置されることが可能である。プログラムは、ファイルシステム内のファイルに対応する可能性があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部、たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプトに、問題にしているプログラムに専用の単一のファイルに、または複数の組織されたファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルに記憶され得る。コンピュータプログラムは、1台のコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、データ通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように配置されることが可能である。
【0154】
本明細書において、用語「エンジン」は、1つまたは複数の特定の機能を実行するようにプログラミングされるソフトウェアに基づくシステム、サブシステム、またはプロセスを指すために広く使用される。概して、エンジンは、1つまたは複数の場所の1つまたは複数のコンピュータにインストールされた1つまたは複数のソフトウェアモジュールまたはコンポーネントとして実装される。場合によっては、1つまたは複数のコンピュータが、特定のエンジンに専用であり、その他の場合、複数のエンジンが、同じ1台のコンピュータまたは複数のコンピュータにインストールされ、実行されていることが可能である。
【0155】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なコンピュータが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGAもしくはASICによって、または専用の論理回路と1つもしくは複数のプログラミングされたコンピュータとの組合せによって実行されることが可能である。
【0156】
コンピュータプログラムの実行に好適なコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはそれら両方、または任意のその他の種類の中央演算処理装置に基づくことが可能である。概して、中央演算処理装置は、読み出し専用メモリ、またはランダムアクセスメモリ、またはそれら両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令を遂行または実行するための中央演算処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央演算処理装置およびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれることが可能である。また、概して、コンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはそれらの大容量ストレージデバイスからデータを受信するか、もしくはそれらの大容量ストレージデバイスにデータを転送するか、もしくはその両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込まれることが可能である。
【0157】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。
【0158】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実施形態は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータ上に実装されることが可能である。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、スピーチ、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのデバイスのウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。また、コンピュータは、メッセージングアプリケーションを実行しているパーソナルデバイス、たとえば、スマートフォンにテキストメッセージまたはその他の形態のメッセージを送信し、返報としてユーザから応答メッセージを受信することによってユーザとインタラクションすることができる。
【0159】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習の訓練または生成、つまり、推論の作業負荷のよくある計算量の多い部分を処理するための専用ハードウェアアクセラレータユニットも含むことが可能である。
【0160】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装され、配置されることが可能である。
【0161】
本明細書に記載の主題の実施形態は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の主題の実装とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムに実装されることが可能である。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえば、インターネットを含む。
【0162】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実施形態において、サーバは、たとえば、クライアントとして働くデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的でユーザデバイスにデータ、たとえば、HTMLページを送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザインタラクションの結果が、サーバにおいてデバイスから受信されることが可能である。
【0163】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定ともみなされるべきでなく、むしろ、特定の発明の特定の実施形態に特有である可能性がある特徴の説明とみなされるべきである。別々の実施形態の文脈で本明細書において説明されている特定の特徴が、単一の実施形態に組み合わせて実装されることも可能である。反対に、単一の実施形態の文脈で説明されている様々な特徴が、複数の実施形態に別々にまたは任意の好適な部分的組合せで実装されることも可能である。さらに、特徴は、特定の組合せで動作するものとして上で説明されている可能性があり、最初にそのように主張されてさえいる可能性があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする可能性がある。
【0164】
同様に、動作が特定の順序で図面に示され、請求項に記載されているが、これは、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または所望の結果を達成するために示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分割は、すべての実施形態においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0165】
主題の特定の実施形態が説明された。その他の実施形態は、添付の請求項の範囲内にある。たとえば、請求項に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。一例として、添付の図に示されたプロセスは、所望の結果を達成するために、必ずしも、示された特定の順序または逐次的順序を必要としない。場合によっては、マルチタスクおよび並列処理が有利である可能性がある。
【符号の説明】
【0166】
100 条件付き出力生成システム
102 ネットワーク入力
104 最終的なネットワーク出力
106 ノイズレベル
110 ノイズ出力
112 更新エンジン
114 現在のネットワーク出力
200 プロセス
300 ノイズ推定ニューラルネットワーク、ノイズ推定ネットワーク
302 畳み込み層
304 畳み込み層
306 集約ノイズレベル
310 出力
312 ネットワーク出力処理ブロック
314 ネットワーク出力処理ブロック
316 ネットワーク出力処理ブロック
318 ネットワーク出力処理ブロック
322 FILMモジュール
324 FILMモジュール
326 FILMモジュール
328 FILMモジュール
332 ノイズ生成ブロック
334 ノイズ生成ブロック
336 ノイズ生成ブロック
338 ノイズ生成ブロック
400 ネットワーク出力処理ブロック
402 代替的な表現、畳み込み層
404 ダウンサンプル層
406 ダウンサンプル層
408 活性化層
410 畳み込み層
412 活性化層
414 畳み込み層
416 活性化層
418 畳み込み層
420 残差接続層
500 FiLMモジュール
502 位置符号化関数
504 畳み込み層
506 活性化層
508 残差接続層
510 畳み込み層
512 スケールベクトル
514 畳み込み層
516 バイアスベクトル
600 ノイズ生成ブロック
602 入力、アップサンプル層
604 畳み込み層
606 活性化層
608 アップサンプル層
610 畳み込み層
612 アフィン変換層
614 活性化層
616 畳み込み層
618 残差接続層
620 アフィン変換層
622 活性化層
624 畳み込み層
626 アフィン変換層
628 活性化層
630 畳み込み層
632 残差接続層
700 プロセス
図1
図2
図3
図4
図5
図6
図7