(57)【要約】  ニューラルネットワークを使用して画像を生成するためコンピュータ記憶媒体上に符号化されるコンピュータプログラムを含む、方法、システム、および装置。方法の1つは、出力画像中の各ピクセルについて、複数の色チャネルの各々についての離散的な可能な色値の組にわたってそれぞれのスコア分布を生成することを含め、出力画像から取られるピクセルのシーケンスからピクセル毎に出力画像を生成するステップを含む。
2019504433.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実装されるニューラルネットワークシステムであって、前記ニューラルネットワークシステムが、ニューラルネットワーク入力を受け取り、前記ニューラルネットワーク入力から出力画像を生成するように構成され、前記出力画像が2次元マップに配置される複数のピクセルを含み、各ピクセルが複数の色チャネルの各々についてそれぞれの色値を有しており、
前記ニューラルネットワーク入力を受け取り、前記ニューラルネットワーク入力の代替表現を生成するために前記ニューラルネットワーク入力を処理するように構成される1つまたは複数の初期ニューラルネットワーク層と、
1つまたは複数の出力層であって、前記出力画像中の各ピクセルについて、前記複数の色チャネルの各々についての離散的な可能な色値の組にわたってそれぞれのスコア分布を生成することを含め、前記代替表現を受け取り、前記出力画像から取られるピクセルのシーケンスからピクセル毎に前記出力画像を生成するように構成される、出力層と
を備える、ニューラルネットワークシステム。
【請求項２】
前記複数の色チャネルが順序づけられ、前記1つまたは複数の出力層が前記複数の色チャネルの各々に対応するそれぞれの出力層を含み、前記出力層の各々が、前記出力画像の各ピクセルについて、
(i)前記シーケンス中の前記ピクセルの前のピクセルについてのピクセルについての色値、および(ii)色チャネルの前記順序における前記出力層に対応する前記色チャネルの前の任意の色チャネルについての前記ピクセルについての色値を条件とした、前記出力層に対応する前記色チャネルについての離散的な可能な色値の組にわたって前記それぞれのスコア分布を生成するように構成される、請求項1に記載のニューラルネットワークシステム。
【請求項３】
各ピクセルについて、前記出力層の各々が、(i)前記シーケンス中の前記ピクセルの前のピクセルについてのピクセルについての色値、および(ii)色チャネルの前記順序における前記出力層に対応する前記色チャネルの前の任意の色チャネルについての前記ピクセルについての色値に基づいた、前記色チャネルに対応する代替表現の部分ならびにコンテキスト情報を受け取るように構成される、請求項2に記載のニューラルネットワークシステム。
【請求項４】
前記色チャネルに対応する前記代替表現の前記部分が前記シーケンス中の前記ピクセルの前のピクセル、ならびに色チャネルの前記順序における前記出力層に対応する前記色チャネルの前の色チャネルについての前記ピクセルについての色チャネルデータにのみ基づいて生成されるように、前記ニューラルネットワークシステムが、前記1つまたは複数の初期ニューラルネットワーク層中のニューラルネットワーク層の出力にマスクを適用するように構成される、請求項3に記載のニューラルネットワークシステム。
【請求項５】
前記出力層の各々がsoftmax層である、請求項1から4のいずれか一項に記載のニューラルネットワークシステム。
【請求項６】
前記ニューラルネットワーク入力が画像であり、
前記1つまたは複数の初期ニューラルネットワーク層が、行長-短期記憶(LSTM)層を含み、前記行LSTM層が、
入力画像を上から下に行毎に処理して一度にすべての行についての特徴を計算するように構成される、請求項1から5のいずれか一項に記載のニューラルネットワークシステム。
【請求項７】
前記行LSTM層が、1次元畳み込みを使用して前記特徴を計算する、請求項6に記載のニューラルネットワークシステム。
【請求項８】
前記行LSTM層が、
前記入力画像全体について前記行LSTM層の入力対状況成分を計算し、
前記入力画像全体について前記入力対状況成分を計算した後、前記入力画像を上から下に行毎に処理して一度にすべての行についての特徴を計算することに、前記入力対状況成分を使用するように構成される、請求項6または7に記載のニューラルネットワークシステム。
【請求項９】
前記ニューラルネットワーク入力が画像であり、
前記1つまたは複数の初期ニューラルネットワーク層が、対角双方向LSTM(BiLSTM)層を含み、前記対角BiLSTM層が、
第1の方向に沿った対角様式および第2の方向に沿った対角様式で入力画像マップをスキャンし、前記入力画像マップの特徴を生成するように構成される、請求項1から6のいずれか一項に記載のニューラルネットワークシステム。
【請求項１０】
前記対角BiLSTM層が、
対角に沿った畳み込みを容易に適用することを可能にする空間へと前記入力画像マップをスキューし、
前記第1の方向および前記第2の方向の各々について、
前記スキューした入力画像マップに対して1x1畳み込みを適用することによって、前記方向について前記対角BiLSTM層の入力対状況成分を計算し、
前記スキューした入力画像マップに対して列方向畳み込みを適用することによって、前記方向について前記対角BiLSTM層の状況対状況再帰成分を計算するように構成される、請求項9に記載のニューラルネットワークシステム。
【請求項１１】
前記列方向畳み込みが、2x1のサイズのカーネルを有する、請求項10に記載のニューラルネットワークシステム。
【請求項１２】
前記初期ニューラルネットワーク層が複数のLSTM層を含み、前記複数のLSTM層が、前記複数のLSTM層における1つのLSTM層から別のLSTM層への残差接続で構成される、請求項1から11のいずれか一項に記載のニューラルネットワークシステム。
【請求項１３】
前記入力が画像であり、
前記1つまたは複数の初期ニューラルネットワーク層が1つまたは複数の畳み込みニューラルネットワーク層を含む、請求項1から12のいずれか一項に記載のニューラルネットワークシステム。
【請求項１４】
前記ニューラルネットワーク入力が入力画像であり、前記出力画像が前記入力画像の再構築バージョンである、請求項1から13のいずれか一項に記載のニューラルネットワークシステム。
【請求項１５】
前記ニューラルネットワーク入力が入力画像であり、前記ニューラルネットワークシステムが、前記入力画像の無損失圧縮のため前記入力画像を算術的に符号化するのに使用するために、前記スコア分布の少なくとも一部を記憶するように構成される、請求項1から14のいずれか一項に記載のニューラルネットワークシステム。
【請求項１６】
ピクセルの前記シーケンス中の前記ピクセルが、前記出力画像から行毎に取られる、請求項1から15のいずれか一項に記載のニューラルネットワークシステム。
【請求項１７】
1つまたは複数のコンピュータにより実行されると、前記1つまたは複数のコンピュータに、請求項1から16のいずれか一項に記載のそれぞれのニューラルネットワークシステムを実装する演算を実施させる命令で符号化された、1つまたは複数のコンピュータ記録媒体。
【請求項１８】
ニューラルネットワーク入力を受け取るステップと、
ニューラルネットワーク入力画像を、請求項1から16のいずれか一項に記載のニューラルネットワークシステムを使用して処理し、前記ニューラルネットワーク入力から出力画像を生成するステップと
を含む、方法。
【請求項１９】
ニューラルネットワーク入力から出力画像を生成するコンピュータ実装される方法であって、前記出力画像が2次元マップに配置される複数のピクセルを含み、各ピクセルが複数の色チャネルの各々についてそれぞれの色値を有しており、
ニューラルネットワークシステムの1つまたは複数の初期ネットワーク層でニューラルネットワーク入力を受け取り、前記ニューラルネットワーク入力の代替表現を生成するために前記ニューラルネットワーク入力を処理するステップと、
前記出力画像中の各ピクセルについて、前記複数の色チャネルの各々についての離散的な可能な色値の組にわたってそれぞれのスコア分布を生成することを含め、前記ニューラルネットワーク入力の1つまたは複数の出力層で前記代替表現を受け取り、前記出力画像から取られるピクセルのシーケンスからピクセル毎に前記出力画像を生成するステップと
を含む、方法。
【請求項２０】
請求項19に記載の方法を実行するように構成される1つまたは複数のコンピュータを備えるシステム。
【請求項２１】
1つまたは複数のコンピュータ、および
少なくとも1つのプロセッサによって実行されると、
ニューラルネットワークシステムの1つまたは複数の初期ネットワーク層でニューラルネットワーク入力を受け取り、前記ニューラルネットワーク入力の代替表現を生成するために前記ニューラルネットワーク入力を処理し、
出力画像中の各ピクセルについて、複数の色チャネルの各々についての離散的な可能な色値の組にわたってそれぞれのスコア分布を生成することを含め、前記ニューラルネットワーク入力の1つまたは複数の出力層で前記代替表現を受け取り、前記出力画像から取られるピクセルのシーケンスからピクセル毎に前記出力画像を生成し、それによって、2次元マップに配置される複数のピクセルを含む出力画像を生成することであって、各ピクセルが複数の色チャネルの各々についてそれぞれの色値を有する、ことを
装置に行わせるコンピュータプログラムコードを含む少なくとも1つのメモリ
を備える、システム。
【請求項２２】
出力画像を生成する方法であって、前記出力画像が2次元マップに配置される複数のピクセルを含み、各ピクセルが複数の色チャネルの各々についてそれぞれの色値を有しており、
前記出力画像から取られるピクセルのシーケンスからピクセル毎に前記出力画像を生成するステップを含み、
前記生成するステップは、前記出力画像中の各ピクセルの各色チャネルについて、
代替表現を生成するため、1つまたは複数の初期ニューラルネットワーク層を使用して現在の出力画像を処理するステップであって、前記現在の出力画像が、(i)前記シーケンス中の前記ピクセルの前のピクセルの色チャネルについての色値、および(ii)前記色チャネルの順序における前記色チャネルの前の任意の色チャネルについての前記ピクセルについての色値だけを含む、ステップと、
前記色チャネルについての離散的な可能な色値の組にわたってスコア分布を生成するために、出力層を使用して前記代替表現を処理するステップと
を含む、を含む、方法。
【請求項２３】
請求項22に記載の方法を実行するように構成される1つまたは複数のコンピュータを備えるシステム。
【請求項２４】
1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項22に記載の方法を実行させる命令で符号化された1つまたは複数のコンピュータ記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2016年1月25日に出願された、米国仮特許出願第62/286,915号への優先権を主張する。以前の出願の開示は、その全体が、本出願の部分と考えられ、本出願の開示に参照により組み込まれる。
【０００２】
本出願は、ニューラルネットワークを使用した画像生成に関する。
【背景技術】
【０００３】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を採用し、受け取った入力についての出力を予測する、機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて、1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク中の次の層、すなわち、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、それぞれのパラメータの組の現在の値にしたがって、受け取った入力から出力を生成する。
【０００４】
いくつかのニューラルネットワークは、再帰型ニューラルネットワークである。再帰型ニューラルネットワークは、入力シーケンスを受け取り、入力シーケンスから出力シーケンスを生成するニューラルネットワークである。特に、再帰型ニューラルネットワークは、現在の時間ステップにおける出力の計算において、以前の時間ステップからの、ネットワークの内部状況の一部または全部を使用することができる。
【０００５】
再帰型ニューラルネットワークの例は、長-短期記憶(LSTM: Long Short-Term Memory)ニューラルネットワークであり、これは1つまたは複数のLSTMメモリブロックを含む。各LSTMメモリブロックは1つまたは複数のセルを含むことができ、各々のセルが、たとえば、現在のアクティベーションを生成するのに使用するためセルについての以前の状況をセルが記憶することを可能にするか、またはLSTMニューラルネットワークの他の構成要素にセルが提供されることを可能にする、入力ゲート、忘却ゲート、および出力ゲートを含む。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】http://www.jmlr.org/papers/volume15/vandenoord14a/vandenoord14a.pdfで入手可能な、Aaron van den Oord、およびBenjamin Schrauwen、「The Student-t Mixture as a Natural Image Patch Prior with Application to Image Compression」
【発明の概要】
【課題を解決するための手段】
【０００７】
本出願は、1つまたは複数の場所の1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムが、どのようにして、ニューラルネットワーク入力から出力画像を生成することができるのかを記載する。
【０００８】
1つまたは複数のコンピュータのシステムにとって、特定の動作または行為を実施するように構成されるということは、動作において、システムに動作または行為を実施させる、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムがインストールしたことを意味する。1つまたは複数のコンピュータプログラムにとって、特定の動作または行為を実施するように構成されるということは、データ処理装置によって実行されると、装置に動作または行為を実施させる命令を1つまたは複数のプログラムが含むことを意味する。
【０００９】
本明細書に記載される主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することができる。本明細書に記載されるようなニューラルネットワークシステムは、ニューラルネットワーク入力から、より正確に画像を生成することができる。特に、出力画像中のピクセルについての色値を、連続値ではなく離散値としてモデル化することによって、ニューラルネットワークのトレーニングを改善することができる。すなわち、ニューラルネットワークをより迅速にトレーニングすることができ、トレーニングされたニューラルネットワークにより生成される出力画像の品質を向上させることができる。ピクセル毎、色値毎に、すなわち、所与のピクセルについての所与の色チャネルについての色値が、所与のピクセル内の以前のピクセルと任意の以前の色チャネルについての両方の色値を条件とするように出力画像を生成することによって、生成される出力画像の品質を改善することができる。本明細書に記載されるニューラルネットワークシステムを使用するこの方式で画像を生成することによって、既存のモデルに必要であった独立仮定を導入することなく、完全に一般的なピクセル間依存性をニューラルネットワークが捕捉することができる。
【００１０】
本明細書に記載される主題の1つまたは複数の実施形態の詳細は、添付図面および下の説明に記載される。本主題の他の特徴、態様、および利点は、説明、図面、および請求項から明らかとなるであろう。
【図面の簡単な説明】
【００１１】
【図１】例示的なニューラルネットワークシステムを示す図である。
【図２】ニューラルネットワーク入力から出力画像を生成するための例示的なプロセスの流れ図である。
【図３】出力画像中の所与のピクセルについての、所与の色チャネルについての色値を生成するための、例示的なプロセスの流れ図である。
【発明を実施するための形態】
【００１２】
様々な図面における同様の参照番号および記号は、同様の要素を示す。
【００１３】
図1は、例示的なニューラルネットワークシステム100を示す。ニューラルネットワークシステム100は、下に記載されるシステム、構成要素、および技法を実装することができる、1つまたは複数の場所における1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムの例である。
【００１４】
ニューラルネットワークシステム100は、ニューラルネットワーク入力を受け取り、ニューラルネットワーク入力から出力画像を生成する。たとえば、ニューラルネットワークシステム100は、ニューラルネットワーク入力102を受け取り、ニューラルネットワーク102から出力画像152を生成することができる。
【００１５】
いくつかの実装形態では、ニューラルネットワークシステム100は、システムがトレーニングを受けた画像と同様の特徴を有する、画像の無損失圧縮または新しい画像の生成のために使用することができる。
【００１６】
特に、無損失圧縮では、ニューラルネットワーク入力は画像であってよく、ニューラルネットワークシステム100は、入力画像の再構築である出力画像を生成することができる。
【００１７】
ニューラルネットワークシステム100は、ここで、画像の算術符号化で使用するため、以下で記載するように、ニューラルネットワークシステム100の出力層により生成されるスコア分布の少なくとも一部を記憶することができる。算術符号化および復号化のための機械学習モデルにより生成されるスコア分布を使用するための例示的な技法は、http://www.jmlr.org/papers/volume15/vandenoord14a/vandenoord14a.pdfで入手可能な、Aaron van den Oord、およびBenjamin Schrauwen、「The Student-t Mixture as a Natural Image Patch Prior with Application to Image Compression」に記載される。
【００１８】
画像生成では、トレーニング期間に、ニューラルネットワーク入力が画像であってよく、ニューラルネットワークシステム100は、入力画像の再構築である出力画像を生成することができる。
【００１９】
トレーニング後、ニューラルネットワークシステム100は、入力を条件とすることなく、ピクセル毎に出力画像を生成することができる。
【００２０】
特に、所与の入力について、ニューラルネットワークシステム100は、2次元マップ中に配置される所定の数のピクセルを含み、各ピクセルが複数の色チャネルの各々についてそれぞれの色値を有する、出力画像を生成する。たとえば、ニューラルネットワークシステム100は、赤色チャネル、緑色チャネル、および青色チャネルを含む画像を生成することができる。異なる例として、ニューラルネットワークシステム100は、シアン色チャネル、マゼンタ色チャネル、イエロー色チャネル、およびブラック色チャネルを含む画像を生成することができる。複数の色チャネルは、たとえば、赤、緑、そして青、または、青、赤、そして緑といった、所定の順序にしたがって配置される。
【００２１】
一般的に、ニューラルネットワークシステム100は、出力画像から取られるピクセルのシーケンスに、ピクセル毎に、出力画像中の色値を生成する。すなわち、ニューラルネットワークシステム100は、出力画像中のピクセルをシーケンスへと順序づけ、次いで、シーケンスにしたがう順序で、1つずつ出力画像中の各ピクセルについての色値を生成する。
【００２２】
たとえば、シーケンスは、出力画像の左上の角で始まり、出力画像にわたって行毎に進み、シーケンス中の最後のピクセルは、出力画像の右下の角のピクセルであってよい。この例では、ニューラルネットワークシステム100は、左上の角のピクセルについての色値を最初に生成し、次いで、画像の上の行中の次のピクセルへと進む。
【００２３】
特に、出力画像中の所与のピクセルの所与の色チャネルについて、ニューラルネットワークシステム100は、(i)シーケンス中のピクセルの前のピクセルについての色値、および(ii)色チャネルの順序における色チャネルの前の任意の色チャネルについての、ピクセルについての色値を条件とした、所与のピクセルの色チャネルについての色値を生成する。トレーニング期間、または画像圧縮では、出力画像がニューラルネットワーク入力、すなわち入力画像の再構築であるために、これらの色値は、出力画像からではなく、入力画像中の対応するピクセルからとることができる。
【００２４】
特に、ニューラルネットワークシステム100は、1つまたは複数の初期ニューラルネットワーク層110および1つまたは複数の出力層120を含む。
【００２５】
出力画像中の所与のピクセルの所与の色チャネルについての所与の色値が生成された後、初期ニューラルネットワーク層110は、現在の出力画像の代替表現を生成するために、現在の出力画像、すなわち、出力画像について既に生成された色値を含む出力画像を処理するように構成される。
【００２６】
たとえば、初期ニューラルネットワーク層110は、現在の出力画像140の代替表現142を生成するため、現在の出力画像140を処理することができる。
【００２７】
図1に示されるように、現在の出力画像140の影付き部分は、ニューラルネットワークシステム100によって色値が既に生成されたピクセルを表し、一方、現在の出力画像140の影付きでない部分は、色値がまだ生成されていないピクセルを表す。
【００２８】
1つまたは複数の出力層120は、代替表現を受け取り、画像中の次の色チャネルについての離散的な可能な色値の組にわたってスコア分布を生成する。たとえば、離散的な可能な色値の組は、ゼロから255までのゼロと255を含む整数の組であってよく、スコア分布は、組中の整数の各々についてのそれぞれのスコアを含む。スコア分布中のスコアは、各々の可能なピクセル値について、尤度、たとえば実施するようにシステムが構成されるタスクについてピクセル値が所与の色チャネルの値となるべきである確率を表すことができる。
【００２９】
上で言及された所与の色チャネルが色チャネルの所定の順序中の最後の色チャネルである場合、出力層120は、所与のピクセル後の、シーケンス中の次のピクセル中の第1の色チャネルについて、スコア分布を生成する。図1の例では、出力層120は、出力画像140中の次のピクセル142の第1の色チャネルについて、スコア分布146を生成する。
【００３０】
上で言及された所与の色チャネルが所定の順序中の最後の色チャネルでない場合、出力層120は、所与のピクセルについての色チャネルの順序中の所与の色チャネルの後の次の色チャネルについて、スコア分布を生成する。たとえば、色チャネルの順序が赤、緑、そして青であり、生成された最後の色値が所与のピクセルの緑色チャネルについてであった場合、出力層120により生成されるスコア分布は、所与のピクセルの青色チャネルについてのスコア分布である。
【００３１】
いくつかの実施形態では、ニューラルネットワークシステム100は、色チャネルのすべてについてのスコア分布を生成する、たとえば単一のsoftmax層といった、単一の出力層を含む。
【００３２】
いくつかの他の実施形態では、ニューラルネットワークシステム100は、色チャネルの各々に対応する、たとえばそれぞれのsoftmax層といった、それぞれの出力層を含み、各出力層は、対応する色チャネルについてのスコア分布を生成する。
【００３３】
いくつかの実施形態では、下でより詳細に記載されるように、代替表現は、出力画像中の各ピクセルの各色チャネルについての特徴を含むフィーチャマップである。これらの実装形態では、所与のピクセルの所与のチャネルについての色値を生成するとき、出力層は、代替表現の対応する部分を使用する。すなわち、所与のピクセルの所与の色チャネルの特徴を含む代替表現の部分を使用する。
【００３４】
ニューラルネットワークシステム100は、次いで、生成されたスコア分布から、現在の色チャネル、すなわち、所与のピクセル後のシーケンス中の次のピクセルにおける第1の色チャネル、または所与のピクセルについての色チャネルの順序における所与の色チャネル後の次の色チャネルについての値を選択する。たとえば、ニューラルネットワークシステム100は、スコア分布にしたがって色値をサンプリングすること、またはスコア分布にしたがって最も高いスコアの色値を選択することができる。
【００３５】
初期ニューラルネットワーク層110は、層110が、現在の出力画像を条件とした、すなわち、ニューラルネットワークシステム100により生成されていない出力画像中の任意の色値を条件としない、代替表現を生成することを可能にする様々な方法のいずれかで構成することができる。
【００３６】
いくつかの実装形態では、初期ニューラルネットワーク層110は、初期ニューラルネットワーク層110への入力の空間解像度を各々が保持する複数の畳み込みニューラルネットワーク層からなる、完全な畳み込みニューラルネットワークである。すなわち、初期ニューラルネットワーク層110への入力の空間解像度と畳み込みニューラルネットワーク層の各々の出力は、同じ空間解像度を有する、すなわち、出力画像と同じ数のピクセルを有する一方、畳み込みニューラルネットワーク層により各ピクセルについて生成される特徴の数は変わることができる。
【００３７】
しかし、処理の全体にわたって、ネットワーク中のあらゆる層における、各入力位置について、すなわち各ピクセルでの特徴は、複数の部分へと分割され、各々が色チャネルの1つに対応する。
【００３８】
こうして、初期ニューラルネットワーク層110により生成される代替表現は、所与のピクセルについての色チャネル値の各々についてのそれぞれの部分を含み、所与の色チャネルについてのスコア分布を生成するとき、出力層120は、所与の色チャネルに対応する部分を処理するように構成される。
【００３９】
畳み込みニューラルネットワークが既に生成された出力値だけを条件とすることを確実にするために、所与のピクセルについての所与の色チャネルに対応する代替表現の部分が、(i)シーケンス中のピクセルの前にある出力画像中のピクセル、および(ii)色チャネルの順序における所与の色チャネルの前の色チャネルについてのピクセルについての色チャネルデータにだけ基づいて生成されるようにマスクされる畳み込みを適用するように各畳み込みニューラルネットワーク層が構成される。
【００４０】
第1の畳み込み層、すなわち、入力として現在の出力画像を受け取る層では、シーケンス中の所与のピクセルの前にある現在の出力画像中の隣接するピクセル、および既に生成された現在の出力画像中の対応するピクセルの色に対し、第1の畳み込み層の出力フィーチャマップ中の所与のピクセルへの接続をマスクが制限する。
【００４１】
さらなる畳み込み層では、シーケンス中の所与のピクセルの前にあるさらなる畳み込み層に対する入力フィーチャマップ中の隣接するピクセル、既に生成された入力フィーチャマップ中の対応するピクセルの色に対応する特徴、および入力フィーチャマップ中の対応するピクセルの所与の色に対応する特徴に対し、さらなる畳み込み層の出力フィーチャマップ中の所与のピクセルにおける接続をマスクが制限する。
【００４２】
ニューラルネットワークシステム100は、様々な方法のいずれかでこのマスキングを実装することができる。たとえば、各畳み込み層は、対応する重みがなくされたカーネルを有することができる。
【００４３】
いくつかの他の実装形態では、初期ニューラルネットワーク層110は、次々に積み重ねられて配置される複数のLSTM層を含む。畳み込みニューラルネットワーク層と同様に、LSTM層は、入力の空間次元を保持し、ネットワーク中のあらゆる層における各入力位置について各LSTM層によって生成された特徴は複数の部分へと分割され、各々が色チャネルの1つに対応する。
【００４４】
これらのLSTM層の各々は、すなわち、先行するLSTM層の隠れた状況または現在の出力画像といった、LSTM層に対する入力フィーチャマップへの畳み込みを適用して、入力対状況成分(Input-to-State Component)を生成し、層の先行する隠れた状況に畳み込みを適用して、状況対状況成分(State-to-State Recurrent Component)を生成する。LSTM層は、次いで、入力対状況成分および状況対状況成分からLSTM層についてのゲートの値を生成し、ゲート値および先行するセル状況から層についての更新した隠れた状況および更新したセル状況を生成する。
【００４５】
これらの実装形態のいくつかでは、LSTM層は、入力フィーチャマップを上から下に行毎に処理して一度にすべての行についての特徴を計算する、行LSTM層である。
【００４６】
すなわち、入力フィーチャマップの各行について、行LSTM層は、入力フィーチャマップ全体について行LSTM層の入力対状況成分を、たとえば1次元畳み込みを使用して計算するように構成され、入力フィーチャマップ全体について入力対状況成分を計算した後、入力フィーチャマップを上から下に行毎に処理して一度にすべての行についての特徴を計算することに、入力対状況成分を使用する。
【００４７】
行LSTM層が、まだ生成されていない色値の出力を条件としないことを確実にするために、入力対状況成分を生成するため行LSTM層によって使用される畳み込みは、畳み込みニューラルネットワーク層について上で記載したようにマスクされる。
【００４８】
これらの実装形態の他のものでは、LSTM層は、対角双方向LSTM(BiLSTM)層(Diagonal Bidirectional LSTM Layer)である。
【００４９】
一般的に、双方向LSTM層は、一方の方向についての出力マップおよび他方の方向についての出力マップを生成し、2つの出力マップを組み合わせて、層についての最終的な出力マップを生成するように構成される。すなわち、双方向LSTM層は、2つの方向の各々について、状況対状況成分および入力対状況成分を計算し、次いで、各方向についての状況対状況成分および入力対状況成分からその方向についての出力マップを生成する。
【００５０】
特に、各対角BiLSTM層は、第1の方向に沿った対角様式(Diagonal Fashion)および第2の方向に沿った対角様式で入力フィーチャマップをスキャンし、層の出力フィーチャマップを生成するように構成される。
【００５１】
より詳細には、各対角BiLSTM層は、たとえば、入力フィーチャマップ中の各行を先行する行に対して1つの位置だけオフセットさせることによって、対角に沿って畳み込みを容易に適用することを可能にする空間へと入力フィーチャマップをスキューするように構成される。
【００５２】
2つの方向の各々について、対角BiLSTM層は、次いで、スキューした入力フィーチャマップに対して1x1畳み込みを適用することによって、本方向の対角BiLSTM層についての入力対状況成分を計算し、スキューした入力フィーチャマップに対して列方向畳み込みを適用することによって、本方向の対角BiLSTM層についての状況対状況成分を計算するように構成される。いくつかの実装形態では、列方向畳み込みは、2x1のサイズのカーネルを有する。
【００５３】
対角BiLSTM層は、上に記載したような方向について状況対状況成分および入力対状況成分から、たとえば、左スキューした出力フィーチャマップおよび右スキューした出力フィーチャマップといった、各方向についてのスキューした出力フィーチャマップを生成し、オフセット位置を除去することによって、各スキューした出力フィーチャマップを入力フィーチャマップの空間次元に合致するように戻してスキューするようにさらに構成される。対角BiLSTM層は、次いで、右出力マップを1行だけ下にシフトし、シフトした右出力マップを左出力マップに加えて、層についての最終的な出力マップを生成する。
【００５４】
行LSTM層の場合と同様に、状況対状況成分を生成するために対角BiLSTM層に適用される畳み込みは、上で記載したようにマスクすることもできる。
【００５５】
いくつかの実装形態では、初期ニューラルネットワーク層110は、入力として現在の出力画像を受け取り、シーケンス中の所与のピクセルの前にある現在の出力画像中の隣接するピクセル、および既に生成され、1つもしくは複数の行LSTM層または1つもしくは複数の対角BiLSTM層がその後に続く現在の出力画像中の対応するピクセルにおける色に対して、第1の畳み込み層の出力フィーチャマップ中の所与のピクセルにおける接続をマスクが制限する、第1の畳み込み層を含む。
【００５６】
いくつかの実装形態では、初期ニューラルネットワーク層110は、層間のスキップ接続、層間の残差接続(Residual Connection)、またはその両方を含む。
【００５７】
図2は、ニューラルネットワーク入力から出力画像を生成するための例示的なプロセス200の流れ図である。便宜上、プロセス200は、1つまたは複数の位置に置かれた1つまたは複数のコンピュータのシステムによって実施されると記載することとする。たとえば、図1のニューラルネットワークシステム100といった、適切にプログラムされたニューラルネットワークシステムは、プロセス200を実施することができる。
【００５８】
プロセス200をニューラルネットワークのトレーニング期間に実施して、出力画像を生成することができる。たとえば、プロセス200は、トレーニングプロセスのフォワードパスであってよい。プロセス200は、ニューラルネットワーク入力、すなわち入力画像を圧縮することの部分として実施することもできる。
【００５９】
システムがニューラルネットワーク入力を受け取る(ステップ202)。上で記載したように、ニューラルネットワーク入力は入力画像であってよい。
【００６０】
システムは、出力画像から取られるピクセルのシーケンスに、ニューラルネットワーク入力からピクセル毎に出力画像を生成する(ステップ204)。すなわち、システムは、シーケンスにしたがう順序で、出力画像中の各ピクセルについて1つずつ色値を生成し、その結果、シーケンス中のより早いピクセルについての色値はシーケンス中のより遅い色値の前に生成される。各ピクセル内で、システムは、色チャネルの所定の順序にしたがって、ピクセルの色チャネルについての色値を1つずつ生成する。特に、システムは、(i)シーケンス中のピクセルの前のピクセルについてのピクセルについての色値、および(ii)色チャネルの順序における色チャネルの前の任意の色チャネルについてのピクセルについての色値を条件とした、各ピクセルについての各色値を生成する。トレーニング期間、または画像圧縮では、出力画像がニューラルネットワーク入力、すなわち入力画像の再構築であるために、これらの色値は、出力画像からではなく、入力画像中の対応するピクセルからとることができる。
【００６１】
図3は、出力画像中の所与のピクセルの所与の色チャネルについての色値を生成するための、例示的なプロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の位置に置かれた1つまたは複数のコンピュータのシステムによって実施されると記載することとする。たとえば、図1のニューラルネットワークシステム100といった、適切にプログラムされたニューラルネットワークシステムは、プロセス300を実施することができる。
【００６２】
システムは、初期ニューラルネットワーク層を通して、現在の出力画像を処理し、代替表現を生成する(ステップ302)。現在の出力画像は、シーケンス中の所与のピクセルの前のピクセルについての色チャネルの各々についての色値、および所与のピクセルについての順序における所与の色チャネルの前の任意の色チャネルについての色値を含む画像である。上で記載したように、初期ニューラルネットワーク層は、マスクされる畳み込みを適用するように構成され、その結果、代替表現は、既に生成された色値を条件とし、まだ生成されていない何らかの色値を条件としない。
【００６３】
代替表現は、所与のピクセルの色チャネルの各々に対応するそれぞれの部分を含む。
【００６４】
システムは、所与の色チャネルに対応する、たとえばsoftmax層といった出力層を使用して、所与の色チャネルに対応する代替表現の部分を処理し、所与の色チャネルについての可能な色値にわたってスコア分布を生成する(ステップ304)。上で記載したように、いくつかの実装形態では、単一の出力層が、色チャネルのすべてに対応する一方、他の実装形態では、各色チャネルが異なって対応する出力層を有する。
【００６５】
システムは、たとえば、最も高いスコアの色チャネルを選択すること、またはスコア分布からサンプリングすることによって、スコア分布を使用して所与のピクセルの所与の色チャネルについての色値を選択する(ステップ306)。
【００６６】
システムは、出力画像中の各ピクセルの各色チャネルについてプロセス300を繰り返して、出力画像中の各ピクセルについての色値を生成することができる。
【００６７】
システムは、所望の出力、すなわち入力のためシステムによって生成されなければならない出力画像が知られていないニューラルネットワーク入力について、プロセス200および300を実施することができる。
【００６８】
システムは、初期ニューラルネットワーク層、および出力層がパラメータを有する場合には出力層をトレーニングするため、すなわち初期ニューラルネットワーク層および任意選択で出力層のパラメータのためのトレーニングした値を決定するために、トレーニングデータの組、すなわち、システムによって生成されなければならない出力画像が知られている入力の組で、ニューラルネットワーク入力上でプロセス200および300を実施することもできる。プロセス200および300は、たとえば確率的勾配降下ならびに逆伝播技法といった、初期ニューラルネットワーク層をトレーニングするための、従来型の機械学習トレーニング技法の部分として、トレーニングデータの組から選択される入力に繰り返して実施することができる。
【００６９】
トレーニング期間には、生成されなければならない出力画像が前もって知られているために、所与のトレーニングするニューラルネットワーク入力を処理するのに必要な時間の量および計算リソースを減少させるため、したがって、トレーニングに必要な時間を減らすこと、トレーニングしたニューラルネットワークの性能を改善すること、またはその両方のため、初期ニューラルネットワーク層によって実施される計算を加速することができる。
【００７０】
たとえば、初期ニューラルネットワーク層が完全な畳み込みニューラルネットワークであるとき、初期ニューラルネットワーク層が代替表現を生成するのに必要な処理は、すべての出力画像が計算の最初から入手可能であるために、逐次ではなく並列に行うことができる。すなわち、上で記載したように、システムは、既に生成された出力画像ピクセルの色値の代わりに、入力画像についての色値を使用することができる。畳み込みがマスクされるために、システムは、入力画像に基づいてすべての代替表現を並列で生成することができる。
【００７１】
本明細書に記載される主題および機能的な動作の実施形態は、本明細書に開示される構造およびそれらの構造的な等価物を含む、デジタル電子回路、有形に具現化されたコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらのうちの1つまたは複数の組合せで実装することができる。
【００７２】
本明細書に記載される主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置が実行するための、またはデータ処理装置の動作を制御するための、有形で非一時的プログラム担体上に符号化されるコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替または追加として、プログラム命令は、データ処理装置が実行するため好適な受信装置に送信するために情報を符号化するために生成される、たとえば機械生成した電子、光、または電磁信号といった人工的に生成した伝播信号上で符号化することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであってよい。
【００７３】
「データ処理装置」という用語は、例として、プログラム可能プロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための、すべての種類の装置、デバイス、および機械を包含する。装置は、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)、またはASIC(特定用途向け集積回路)といった、専用論理回路を含むことができる。装置は、ハードウェアに加えて、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードといった、対象となるコンピュータプログラムのための実行環境を作るコードを含むこともできる。
【００７４】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、もしくはコードと呼ぶまたは記載することもある)は、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語など、プログラミング言語の任意の形式で書くことができ、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境で使用するのに好適な他のユニットとしてなど、任意の形式で展開することができる。コンピュータプログラムは、ファイルシステム中のファイルに対応してよいが、対応する必要はない。プログラムは、たとえばマークアップ言語文書中に記憶される1つもしくは複数のスクリプトといった他のプログラムもしくはデータを保持するファイルの一部、対象となるプログラム専用の単一のファイル、またはたとえば1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルといった、複数の調整したファイルの中に記憶することができる。コンピュータプログラムは、1つのコンピュータ、または1つの場所に配置される、もしくは複数の場所にわたって分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開することができる。
【００７５】
本明細書に記載されるプロセスおよび論理の流れは、入力データに演算することおよび出力を生成することによって機能を実施するために、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実施することができる。プロセスおよび論理の流れを、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)、またはASIC(特定用途向け集積回路)といった、専用論理回路によって実施することもでき、また装置を、たとえば、FPGA、またはASICといった、専用論理回路として実装することもできる。
【００７６】
コンピュータプログラムの実行のために好適なコンピュータは、例として、汎用もしくは専用マイクロプロセッサまたは両方に基づくことができ、または任意の他の種類の中央処理装置を含む。一般的に、中央処理装置は、読取り専用メモリまたはランダムアクセスメモリまたは両方から、命令およびデータを受け取る。コンピュータの本質的な要素は、命令を実施または実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般的に、コンピュータは、たとえば、磁気、光磁気ディスク、もしくは光ディスクといったデータを記憶するための1つもしくは複数の大容量記憶デバイスも含み、または、1つもしくは複数の大容量記憶デバイスからデータを受け取るもしくはデータを転送するもしくは両方をするように動作可能に結合されることになる。しかし、コンピュータがそのようなデバイスを有する必要はない。さらに、コンピュータは、いくつかの例を挙げれば、たとえば、モバイル電話、携帯情報端末(PDA)、モバイル音声もしくは動画プレイヤ、ゲームコンソール、全地球測位システム(GPS)受信器、または、たとえばユニバーサルシリアルバス(USB)フラッシュドライブといった携帯型記憶デバイスといった別のデバイスに組み込むことができる。
【００７７】
コンピュータプログラム命令およびデータを記憶するために好適なコンピュータ可読媒体は、例として、たとえばEPROM、EEPROM、およびフラッシュメモリデバイスといった半導体メモリデバイス、たとえば内蔵ハードディスクまたはリムーバブルディスクといった磁気ディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクを含む、不揮発性メモリ、媒体、およびメモリデバイスのすべての形式を含む。プロセッサおよびメモリは、専用論理回路によって補うこと、または専用論理回路に組み込むことができる。
【００７８】
ユーザとの相互作用を実現するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといった表示デバイス、ならびに、ユーザがコンピュータに入力を提供できる、キーボードおよびたとえばマウスまたはトラックボールといったポインティングデバイスを有するコンピュータ上に実装することができる。同様にユーザとの相互作用を実現するために、他の種類のデバイスを使用することができる。たとえば、ユーザに提供されるフィードバックは、たとえば、視覚的フィードバック、音響フィードバック、または触覚フィードバックといった任意の形式の感覚フィードバックであってよい。またユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受け取ることができる。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信すること、およびデバイスから文書を受け取ること、たとえば、ウェブブラウザから受け取った要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
【００７９】
本明細書に記載される主題の実施形態は、たとえば、データサーバとしてバックエンド構成要素を含む、またはたとえば、アプリケーションサーバといったミドルウェア構成要素を含む、またはたとえば、グラフィカルユーザインターフェースを有するクライアントコンピュータもしくは本明細書に記載される主題の実装形態とユーザが相互作用できるウェブブラウザといったフロントエンド構成要素、または1つまたは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せを含む、コンピューティングシステムに実装することができる。システムの構成要素は、たとえば通信ネットワークといった、デジタルデータ通信の任意の形式または媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびたとえばインターネットといったワイドエリアネットワーク(「WAN」)を含む。
【００８０】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に、互いに離れており、典型的には、通信ネットワークを通して相互作用する。クライアントとサーバの関係は、それぞれのコンピュータ上で走り、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【００８１】
本明細書は多くの特定の実装上の詳細を含有するが、これらを、任意の発明または特許請求できるものの範囲の制限と考えるべきではなく、むしろ、特定の発明の特定の実施形態に固有であってよい特徴の記載と考えるべきである。別個の実施形態の文脈で本明細書に記載される特定の特徴は、単一の実施形態に組み合わせて実装することもできる。逆に、単一の実施形態の文脈で記載される様々な特徴を、複数の実施形態で別個に、または任意の好適な下位の組合せで実装することもできる。さらに、特徴は、特定の組合せで働くと上で記載され、そのように最初に特許請求されさえする場合があるが、特許請求される組合せからの1つまたは複数の特徴は、いくつかの場合では、組合せから削除することができ、特許請求される組合せは、下位の組合せまたは下位の組合せの変形形態を対象とすることができる。
【００８２】
同様に、動作は、特定の順序で図に描かれているが、このことを、望ましい結果を得るために、そのような動作が示される特定の順序で、もしくは一連の順序で実施されること、またはすべての説明した動作を実施することを必要とすると理解するべきでない。特定の事態では、マルチタスクおよび並列処理が有利な場合がある。さらに、上に記載される実施形態中の様々なシステムモジュールおよび構成要素の分割は、すべての実施形態においてそのような分割を必要とすると理解するべきでなく、記載されるプログラム構成要素およびシステムが、一般的に、単一のソフトウェア製品に一体化され得るか、または複数のソフトウェア製品へとパッケージ化され得ると理解するべきである。
【００８３】
本主題の特定の実施形態を記載してきた。他の実施形態は、以下の請求項の範囲内である。たとえば、請求項中で言及される行為を異なる順序で実施して、依然として望ましい結果を達成することができる。一例として、添付図面中に描かれるプロセスは、望ましい結果を達成するために、示される特定の順序または一連の順序を必ずしも必要としない。特定の実装形態では、マルチタスクおよび並列処理が有利な場合がある。
【符号の説明】
【００８４】
100  ニューラルネットワークシステム
102  ニューラルネットワーク入力
110  初期ニューラルネットワーク層
120  出力層
140  現在の出力画像
142  代替表現、ピクセル
144  代替表現
146  スコア分布
152  出力画像
200  プロセス
300  プロセス
【図１】
2019504433.tif 000003
【図２】
2019504433.tif 000004
【図３】
2019504433.tif 000005
【国際調査報告】
2019504433.tif 000006
2019504433.tif 000007