(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-09
(45)【発行日】2024-08-20
(54)【発明の名称】バッチ正規化レイヤ
(51)【国際特許分類】
G06N 3/04 20230101AFI20240813BHJP
G06N 3/08 20230101ALI20240813BHJP
【FI】
G06N3/04
G06N3/08
【外国語出願】
(21)【出願番号】P 2022183459
(22)【出願日】2022-11-16
(62)【分割の表示】P 2021137180の分割
【原出願日】2016-01-28
【審査請求日】2022-12-15
(32)【優先日】2015-01-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】セルゲイ・ヨッフェ
(72)【発明者】
【氏名】コリーナ・コルテス
【審査官】多賀 実
(56)【参考文献】
【文献】特開2013-069132(JP,A)
【文献】米国特許出願公開第2003/0236662(US,A1)
【文献】Caglar Gulcehre et al.,"Knowledge Matters: Importance of Prior Information for Optimization",arXiv.org [online],arXiv:1301.4083v6,米国,Cornell University,2013年07月,pp.1-37,[2022年10月7日 検索], インターネット:<URL: https://arxiv.org/abs/1301.4083v6>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
システムであって、
1つまたは複数のコンピュータと、
1つまたは複数のコンピュータにより実行されたときに前記1つまたは複数のコンピュータに動作を実行させる命令を記録した1つまたは複数の記憶デバイスと
を備え、前記動作が、
ニューラル・ネットワーク入力を受信する動作と、
ニューラル・ネットワークシステムを用いて前記ニューラル・ネットワーク入力を処理することにより、前記ニューラル・ネットワーク入力に対するニューラル・ネットワーク出力を生成する動作と
を含み、
前記ニューラル・ネットワークシステムが、ニューラル・ネットワーク・レイヤのシーケンスを含み、前記シーケンスが、前記ニューラル・ネットワークシステムの前記ニューラル・ネットワーク・レイヤのシーケンスにおける第1のニューラル・ネットワーク・レイヤおよび第2のニューラル・ネットワーク・レイヤの間に第3のレイヤを含み、
前記ニューラル・ネットワークシステムは、前記シーケンスにおける前記レイヤの各々を通じて前記ニューラル・ネットワーク入力を処理することにより、前記ニューラル・ネットワーク入力から前記ニューラル・ネットワーク出力を生成し、
前記第3のレイヤが、
前記第1のニューラル・ネットワーク・レイヤによって、前記ニューラル・ネットワーク入力に対して生成された第1のレイヤ出力を受信することであって、前記第1のレイヤ出力が、複数の成分を含む、受信することと、
前記第1のレイヤ出力の各成分を正規化して、複数の正規化された成分を含む正規化された出力を生成することと、
前記第3のレイヤに対する正規化パラメータのセットに従って、前記正規化された出力の各正規化された成分を変換することによって、前記正規化された出力の変換されたバージョンを生成することと、
前記正規化された出力の前記変換されたバージョンを前記第2のニューラル・ネットワーク・レイヤに入力として提供すること
を行うように構成される、システム。
【請求項2】
前記第3のレイヤに対する正規化パラメータのセットに従って、前記正規化された出力の各正規化された成分を変換することによって、前記正規化された出力の変換されたバージョンを生成することが、前記複数の正規化された成分の各正規化された成分に対して、
前記正規化された成分に、対応する第1のパラメータを乗じることにより、積を生成することと、
前記積に第2のパラメータを加えて、前記正規化された成分の変換されたバージョンを生成することと
を含む、請求項1に記載のシステム。
【請求項3】
前記第1のレイヤ出力の各成分を正規化して、複数の正規化された成分を含む正規化された出力を生成することが、前記第1のレイヤ出力の各成分に対して、
前記成分からそれぞれの平均値を引き、差を生成することと、
前記差をそれぞれの標準偏差で割り、正規化された成分を生成することと
を含む、請求項1に記載のシステム。
【請求項4】
前記それぞれの標準偏差が、数的に安定な標準偏差である、請求項3に記載のシステム。
【請求項5】
前記第1のニューラル・ネットワーク・レイヤが、前記第1のニューラル・ネットワーク・レイヤに対するパラメータのセットの現在の値に従って第1のレイヤ入力を修正することによって、前記第1のレイヤ出力を生成する、請求項1に記載のシステム。
【請求項6】
前記第2のニューラル・ネットワーク・レイヤが、
前記正規化された出力の前記変換されたバージョンに対して非線形演算を適用することにより、第2のレイヤ出力を生成する、請求項5に記載のシステム。
【請求項7】
前記第1のニューラル・ネットワーク・レイヤが、
パラメータのセットの現在の値に従って第1のレイヤ入力を修正して、修正された第1のレイヤ入力を生成し、
非線形演算を前記修正された第1のレイヤ入力に適用する
ことにより前記第1のレイヤ出力を生成する、請求項1に記載のシステム。
【請求項8】
1つまたは複数のコンピュータにより実行される方法であって、
ニューラル・ネットワーク入力を受信するステップと、
ニューラル・ネットワークシステムを用いて前記ニューラル・ネットワーク入力を処理することにより、前記ニューラル・ネットワーク入力に対するニューラル・ネットワーク出力を生成するステップと
を含み、
前記ニューラル・ネットワークシステムが、ニューラル・ネットワーク・レイヤのシーケンスを含み、前記シーケンスが、前記ニューラル・ネットワークシステムの前記ニューラル・ネットワーク・レイヤのシーケンスにおける第1のニューラル・ネットワーク・レイヤおよび第2のニューラル・ネットワーク・レイヤの間に第3のレイヤを含み、
前記ニューラル・ネットワークシステムは、前記シーケンスにおける前記レイヤの各々を通じて前記ニューラル・ネットワーク入力を処理することにより、前記ニューラル・ネットワーク入力から前記ニューラル・ネットワーク出力を生成し、
前記第3のレイヤが、
前記第1のニューラル・ネットワーク・レイヤによって、前記ニューラル・ネットワーク入力に対して生成された第1のレイヤ出力を受信することであって、前記第1のレイヤ出力が、複数の成分を含む、受信することと、
前記第1のレイヤ出力の各成分を正規化して、複数の正規化された成分を含む正規化された出力を生成することと、
前記第3のレイヤに対する正規化パラメータのセットに従って、前記正規化された出力の各正規化された成分を変換することによって、前記正規化された出力の変換されたバージョンを生成することと、
前記正規化された出力の前記変換されたバージョンを前記第2のニューラル・ネットワーク・レイヤに入力として提供すること
を行うように構成される、方法。
【請求項9】
前記第3のレイヤに対する正規化パラメータのセットに従って、前記正規化された出力の各正規化された成分を変換することによって、前記正規化された出力の変換されたバージョンを生成することが、前記複数の正規化された成分の各正規化された成分に対して、
前記正規化された成分に、対応する第1のパラメータを乗じることにより、積を生成することと、
前記積に第2のパラメータを加えて、前記正規化された成分の変換されたバージョンを生成することと
を含む、請求項8に記載の方法。
【請求項10】
前記第1のレイヤ出力の各成分を正規化して、複数の正規化された成分を含む正規化された出力を生成することが、前記第1のレイヤ出力の各成分に対して、
前記成分からそれぞれの平均値を引き、差を生成することと、
前記差をそれぞれの標準偏差で割り、正規化された成分を生成することと
を含む、請求項8に記載の方法。
【請求項11】
前記それぞれの標準偏差が、数的に安定な標準偏差である、請求項10に記載の方法。
【請求項12】
前記第1のニューラル・ネットワーク・レイヤが、前記第1のニューラル・ネットワーク・レイヤに対するパラメータのセットの現在の値に従って第1のレイヤ入力を修正することによって、前記第1のレイヤ出力を生成する、請求項8に記載の方法。
【請求項13】
前記第2のニューラル・ネットワーク・レイヤが、前記正規化された出力の前記変換されたバージョンに対して非線形演算を適用することにより、第2のレイヤ出力を生成する、請求項12に記載の方法。
【請求項14】
前記第1のニューラル・ネットワーク・レイヤが、
パラメータのセットの現在の値に従って第1のレイヤ入力を修正して、修正された第1のレイヤ入力を生成し、
非線形演算を前記修正された第1のレイヤ入力に適用する
ことにより、前記第1のレイヤ出力を生成する、請求項8に記載の方法。
【請求項15】
1つまたは複数のコンピュータにより実行されたときに前記1つまたは複数のコンピュータに動作を実行させる命令を記録した1つまたは複数の非一時的コンピュータ可読記憶媒体であって、
前記動作が、
ニューラル・ネットワーク入力を受信する動作と、
ニューラル・ネットワークシステムを用いて前記ニューラル・ネットワーク入力を処理することにより、前記ニューラル・ネットワーク入力に対するニューラル・ネットワーク出力を生成する動作と
を含み、
前記ニューラル・ネットワークシステムが、ニューラル・ネットワーク・レイヤのシーケンスを含み、前記シーケンスが、前記ニューラル・ネットワークシステムの前記ニューラル・ネットワーク・レイヤのシーケンスにおける第1のニューラル・ネットワーク・レイヤおよび第2のニューラル・ネットワーク・レイヤの間に第3のレイヤを含み、
前記ニューラル・ネットワークシステムは、前記シーケンスにおける前記レイヤの各々を通じて前記ニューラル・ネットワーク入力を処理することにより、前記ニューラル・ネットワーク入力から前記ニューラル・ネットワーク出力を生成し、
前記第3のレイヤが、
前記第1のニューラル・ネットワーク・レイヤによって、前記ニューラル・ネットワーク入力に対して生成された第1のレイヤ出力を受信することであって、前記第1のレイヤ出力が、複数の成分を含む、受信することと、
前記第1のレイヤ出力の各成分を正規化して、複数の正規化された成分を含む正規化された出力を生成することと、
前記第3のレイヤに対する正規化パラメータのセットに従って、前記正規化された出力の各正規化された成分を変換することによって、前記正規化された出力の変換されたバージョンを生成することと、
前記正規化された出力の前記変換されたバージョンを前記第2のニューラル・ネットワーク・レイヤに入力として提供すること
を行うように構成される、コンピュータ可読記憶媒体。
【請求項16】
前記第3のレイヤに対する正規化パラメータのセットに従って、前記正規化された出力の各正規化された成分を変換することによって、前記正規化された出力の変換されたバージョンを生成することが、前記複数の正規化された成分の各正規化された成分に対して、
前記正規化された成分に、対応する第1のパラメータを乗じることにより、積を生成することと、
前記積に第2のパラメータを加えて、前記正規化された成分の変換されたバージョンを生成することと
を含む、請求項15に記載のコンピュータ可読記憶媒体。
【請求項17】
前記第1のレイヤ出力の各成分を正規化して、複数の正規化された成分を含む正規化された出力を生成することが、前記第1のレイヤ出力の各成分に対して、
前記成分からそれぞれの平均値を引き、差を生成することと、
前記差をそれぞれの標準偏差で割り、正規化された成分を生成することと
を含む、請求項15に記載のコンピュータ可読記憶媒体。
【請求項18】
前記それぞれの標準偏差が、数的に安定な標準偏差である、請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
前記第1のニューラル・ネットワーク・レイヤが、前記第1のニューラル・ネットワーク・レイヤに対するパラメータのセットの現在の値に従って第1のレイヤ入力を修正することによって、前記第1のレイヤ出力を生成する、請求項15に記載のコンピュータ可読記憶媒体。
【請求項20】
前記第2のニューラル・ネットワーク・レイヤが、前記正規化された出力の前記変換されたバージョンに対して非線形演算を適用することにより、第2のレイヤ出力を生成する、請求項19に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、出力を生成するためのニューラル・ネットワークのレイヤを通じて入力を処理することに関する。
【背景技術】
【0002】
ニューラル・ネットワークは、非線形ユニットの1つまたは複数のレイヤを用いて受信された入力に対する出力を予測する機械学習モデルである。幾つかのニューラル・ネットワークは、出力レイヤに加えて1つまたは複数の隠れたレイヤを含む。各隠れたレイヤの出力が、当該ネットワーク内の次のレイヤへ、即ち、次の隠れたレイヤまたは出力レイヤの入力として使用される。当該ネットワークの各レイヤは、各組のパラメータの現在の値に従って受信された入力から出力を生成する。
【発明の概要】
【課題を解決するための手段】
【0003】
一般に、本明細書で説明する主題の1つの進歩的な態様を、第1のニューラル・ネットワーク・レイヤと第2のニューラル・ネットワーク・レイヤの間のバッチ正規化レイヤを備えた1つまたは複数のコンピュータにより実装されるニューラル・ネットワーク・システムであって、当該第1のニューラル・ネットワーク・レイヤは複数の成分を有する第1のレイヤ出力を生成し、当該バッチ正規化レイヤは、トレーニング例のバッチでの当該ニューラル・ネットワーク・システムのトレーニング中に、当該バッチ内のトレーニング例ごとにそれぞれの第1のレイヤ出力を受信し、当該第1のレイヤ出力からの当該バッチに対する複数の正規化統計値を計算し、当該正規化統計値を用いて各第1のレイヤ出力の各成分を正規化して、当該バッチ内のトレーニング例ごとにそれぞれの正規化されたレイヤ出力を生成し、当該正規化されたレイヤ出力からの当該トレーニング例の各々に対するそれぞれのバッチ正規化レイヤ出力を生成し、バッチ正規化レイヤ出力を入力として当該第2のニューラル・ネットワーク・レイヤに提供するように構成される、ニューラル・ネットワーク・システムで具体化することができる。
【0004】
1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実施するように構成されているとは、当該システムが、動作中に当該動作またはアクションを当該システムに実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしていることを意味する。1つまたは複数のコンピュータ・プログラムが特定の動作またはアクションを実施するように構成されているとは、当該1つまたは複数のプログラムが、データ処理装置により実行されたとき、当該装置に当該動作またはアクションを実施させる命令を含むことを意味する。
【0005】
本明細書で説明する主題の特定の実施形態を実装して、以下の利点の1つまたは複数を実現することができる。1つまたは複数のバッチ正規化レイヤを含むニューラル・ネットワーク・システムは、任意のバッチ正規化レイヤを含まない理想的なニューラル・ネットワークよりも迅速にトレーニングされることができる。例えば、1つまたは複数のバッチ正規化レイヤを当該ニューラル・ネットワーク・システムに含めることによって、トレーニング中に所与のレイヤの入力の配分が変化することにより生ずる問題を軽減することができる。これにより、より高い学習速度をトレーニング中に効果的に使用でき、どのようにパラメータが当該トレーニングプロセスで初期化されるかの影響を軽減することができる。さらに、トレーニング中に、バッチ正規化レイヤは正規化器として動作でき、トレーニング中に使用すべき他の正規化技術、例えば、ドロップアウトの必要性を削減することができる。トレーニングされると、或る正規化レイヤを含むニューラル・ネットワーク・システムは、理想的なニューラル・ネットワーク・システムにより生成されたニューラル・ネットワーク出力より正確でないとしても、それと同等に正確であるニューラル・ネットワーク出力を生成することができる。
【0006】
本明細書の主題の1つまたは複数の実施形態の詳細を添付図面および下記の説明で説明する。当該主題の他の特徴、態様、および利点は当該説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0007】
【
図1】例示的なニューラル・ネットワーク・システムを示す図である。
【
図2】当該ニューラル・ネットワーク・システムのトレーニング中にバッチ正規化レイヤを用いて入力を処理するための例示的なプロセスの流れ図である。
【
図3】当該ニューラル・ネットワーク・システムがトレーニングされた後にバッチ正規化を用いて入力を処理するための例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0008】
様々な図面における同じ参照番号および指定は同じ要素を示す。
【0009】
本明細書は、バッチ正規化レイヤを含む1つまたは複数の位置における1つまたは複数のコンピュータ上のコンピュータ・プログラムとして実装されるニューラル・ネットワーク・システムを説明する。
【0010】
図1は例示的なニューラル・ネットワーク・システム100を示す。ニューラル・ネットワーク・システム100は、後述のシステム、コンポーネント、および技術を実装できる1つまたは複数の位置における1つまたは複数のコンピュータ上のコンピュータ・プログラムとして実装されるシステムの1例である。
【0011】
ニューラル・ネットワーク・システム100は、最下位のレイヤから最上位のレイヤへ順番に配置された複数のニューラル・ネットワーク・レイヤを含む。ニューラル・ネットワーク・システムは、当該シーケンス内のレイヤの各々を通じてニューラル・ネットワークの入力を処理することにより、ニューラル・ネットワークの出力をニューラル・ネットワークの入力から生成する。
【0012】
ニューラル・ネットワーク・システム100を、任意の種類のデジタルデータ入力を受信し、当該入力に基づいて任意の種類のスコアまたは分類の出力を生成するように構成することができる。
【0013】
例えば、ニューラル・ネットワーク・システム100への入力が画像から抽出されている画像または特徴である場合、所与の画像に対してニューラル・ネットワーク・システム100により生成された出力が1組のオブジェクト・カテゴリの各々に対するスコアであってもよく、各スコアは、当該画像が当該カテゴリに属するオブジェクトの画像を含む推定された尤度を表す。
【0014】
別の例として、ニューラル・ネットワーク・システム100への入力がインターネットリソース(例えば、ウェブ・ページ)、ドキュメント、インターネットリソースから抽出されたドキュメントまたは特徴の一部、ドキュメント、またはドキュメントの部分である場合、所与のインターネットリソース、ドキュメント、またはドキュメントの部分に対するニューラル・ネットワーク・システム100により生成された出力は1組のトピックの各々に対するスコアであってもよい。各スコアは、インターネットリソース、ドキュメント、またはドキュメント部分が当該トピックに関するという推定された尤度を表す。
【0015】
別の例として、ニューラル・ネットワーク・システム100への入力が特定の広告に対する印象文脈の特徴である場合、ニューラル・ネットワーク・システム100により生成された出力は、当該特定の広告がクリックされるであろうという推定された尤度を表すスコアであってもよい。
【0016】
別の例として、ニューラル・ネットワーク・システム100への入力が、ユーザに対してパーソナライズされた推薦の特徴、例えば、当該推薦に対する文脈を特徴づける特徴、例えば、ユーザがとった過去のアクションを特徴づける特徴である場合、ニューラル・ネットワーク・システム100により生成された出力は1組のコンテンツ・アイテムの各々に対するスコアであってもよい。各スコアは、当該コンテンツ・アイテムが推薦されることに対してユーザが好んで応答するであろうという推定された尤度を表す。
【0017】
別の例として、ニューラル・ネットワーク・システム100への入力が或る言語でのテキストである場合、ニューラル・ネットワーク・システム100により生成された出力は別の言語での1組のテキストの各々に対するスコアであってもよい。各スコアは、当該他の言語でのテキストが当該入力テキストの当該他の言語への正確な変換であるという推定された尤度を表す。
【0018】
別の例として、ニューラル・ネットワーク・システム100への入力が発話、発話のシーケンス、またはこれら2つのうち1つから導出された特徴である場合、ニューラル・ネットワーク・システム100により生成された出力は1組のテキストの各々に対するスコアであってもよい。各スコアは、テキストが発声または発声のシーケンスに対する正確なトランスクリプトであるという推定された尤度を表す。
【0019】
別の例として、ニューラル・ネットワーク・システム100は、自動入力システムの一部またはテキスト処理システムの一部であることができる。
【0020】
別の例として、ニューラル・ネットワーク・システム100は、強化学習システムの一部であることができ、エージェントが環境と対話することにより実施されるアクションを選択するために使用される出力を生成することができる。
【0021】
特に、ニューラル・ネットワークのレイヤの各々は、入力を受信して出力を当該入力から生成するように構成され、当該ニューラル・ネットワーク・レイヤは、ニューラル・ネットワーク・システム100により受信されたニューラル・ネットワーク入力を集合的に処理して、受信されたニューラル・ネットワーク入力ごとにそれぞれのニューラル・ネットワーク出力を生成する。当該シーケンス内のニューラル・ネットワーク・レイヤの一部または全部は当該ニューラル・ネットワーク・レイヤに対する1組のパラメータの現在の値に従って出力を入力から生成する。例えば、幾つかのレイヤは、出力を当該受信された入力から生成することの一部として、当該受信された入力に現在のパラメータ値の行列を乗じてもよい。
【0022】
ニューラル・ネットワーク・システム100はまた、ニューラル・ネットワーク・レイヤのシーケンス内のニューラル・ネットワーク・レイヤA104とニューラル・ネットワーク・レイヤB112との間にバッチ正規化レイヤ108を含む。バッチ正規化レイヤ108は、ニューラル・ネットワーク・システム100のトレーニング中にニューラル・ネットワーク・レイヤA104から受信された入力に或る1組の動作を実施し、ニューラル・ネットワーク・システム100がトレーニングされた後にニューラル・ネットワーク・レイヤA104から受信された入力に別の1組の動作を実施するように構成される。
【0023】
特に、ニューラル・ネットワーク・システム100は、当該ニューラル・ネットワーク・レイヤのパラメータのトレーニングされた値を決定するために、トレーニング例の複数のバッチ上でトレーニングされることができる。トレーニング例のバッチは1組の複数のトレーニング例である。例えば、トレーニング中に、ニューラル・ネットワーク・システム100は、トレーニング例のバッチ102を処理し、バッチ102内のトレーニング例ごとにそれぞれのニューラル・ネットワーク出力を生成することができる。当該ニューラル・ネットワーク出力を次いで、当該シーケンス内のニューラル・ネットワークのパラメータレイヤの値を、例えば、従来の勾配降下および誤差逆伝播ニューラル・ネットワークトレーニング技術を通じて調節するために使用することができる。
【0024】
トレーニング例の所与のバッチ上のニューラル・ネットワーク・システム100のトレーニングの間に、バッチ正規化レイヤ108は、当該バッチ内のトレーニング例に対してニューラル・ネットワーク・レイヤA104により生成されたレイヤA出力106を受信し、レイヤA出力106を処理して、当該バッチ内のトレーニング例ごとにそれぞれのバッチ正規化レイヤ出力110を生成し、次いでバッチ正規化レイヤ出力110を入力としてニューラル・ネットワーク・レイヤB112に提供するように構成される。レイヤA出力106は、当該バッチ内のトレーニング例ごとにニューラル・ネットワーク・レイヤA104により生成されたそれぞれの出力を含む。同様に、バッチ正規化レイヤ出力110は、当該バッチ内のトレーニング例ごとにバッチ正規化レイヤ108により生成されたそれぞれの出力を含む。
【0025】
一般に、バッチ正規化レイヤ108は、当該バッチに対する1組の正規化統計値をレイヤA出力106から計算し、レイヤA出力106を正規化して、当該バッチ内のトレーニング例ごとにそれぞれの正規化された出力を生成し、場合によっては、当該出力を入力としてニューラル・ネットワーク・レイヤB112に提供する前に当該正規化された出力の各々を変換する。
【0026】
バッチ正規化レイヤ108により計算された正規化統計値およびバッチ正規化レイヤ108がトレーニング中にレイヤA出力106を正規化する方式は、レイヤA出力106を生成するニューラル・ネットワーク・レイヤA104の性質に依存する。
【0027】
幾つかの場合、ニューラル・ネットワーク・レイヤA104は、次元によりインデックス化された複数の成分を含む出力を生成するレイヤである。例えば、ニューラル・ネットワーク・レイヤA104は完全に接続されたニューラル・ネットワーク・レイヤであってもよい。幾つかの他のケースでは、しかし、ニューラル・ネットワーク・レイヤA104は、特徴インデックスおよび空間的位置インデックスの両方によりそれぞれインデックス化された複数の成分を含む出力を生成する、畳みこみレイヤまたは他の種類のニューラル・ネットワーク・レイヤである。これらの2つのケースの各々において、ニューラル・ネットワーク・システム100のトレーニング中にバッチ正規化レイヤ出力を生成することを、
図2を参照して以下でより詳細に説明する。
【0028】
ニューラル・ネットワーク・システム100がトレーニングされると、ニューラル・ネットワーク・システム100は、処理のための新たなニューラル・ネットワーク入力を受信し、ニューラル・ネットワーク・レイヤを通じてニューラル・ネットワーク入力を処理して、ニューラル・ネットワーク・システム100の成分のパラメータのトレーニングされた値に従って当該入力に対する新たなニューラル・ネットワーク出力を生成してもよい。当該新たなニューラル・ネットワーク入力の処理中にバッチ正規化レイヤ108により実施される動作はまた、ニューラル・ネットワーク・レイヤA104の性質に依存する。ニューラル・ネットワーク・システム100がトレーニングされた後の新たなニューラル・ネットワーク入力の処理を、
図3を参照して以下でより詳細に説明する。
【0029】
バッチ正規化レイヤ108が、ニューラル・ネットワーク・レイヤのシーケンス内の様々な位置で含まれてもよく、幾つかの実装では、複数のバッチ正規化レイヤは当該シーケンスに含まれてもよい。
【0030】
図1の例では、幾つかの実装では、ニューラル・ネットワーク・レイヤA104は、第1のニューラル・ネットワーク・レイヤに対する1組のパラメータの現在の値に従って当該レイヤへの入力を修正することによって、例えば、当該レイヤへの入力に当該現在のパラメータ値の行列を乗ずることによって、出力を生成する。これらの実装では、ニューラル・ネットワーク・レイヤB112は出力をバッチ正規化レイヤ108から受信し、非線形動作、即ち、非線形起動機能をバッチ正規化レイヤ出力に適用することによって出力を生成してもよい。したがって、これらの実装では、バッチ正規化レイヤ108は従来のニューラル・ネットワーク・レイヤ内部に挿入され、従来のニューラル・ネットワーク・レイヤの動作はニューラル・ネットワーク・レイヤA104とニューラル・ネットワーク・レイヤB112の間で分割される。
【0031】
幾つかの他の実装では、ニューラル・ネットワーク・レイヤA104は、1組のパラメータの現在の値に従ってレイヤ入力を修正して修正された第1のレイヤ入力を生成し、次いで出力をバッチ正規化レイヤ108に提供する前に非線形動作を当該修正された第1のレイヤ入力に適用することによって、出力を生成する。したがって、これらの実装では、バッチ正規化レイヤ108は当該シーケンス内の従来のニューラル・ネットワーク・レイヤの後に挿入される。
【0032】
図2は、トレーニング例のバッチに対するニューラル・ネットワークのトレーニング中にバッチ正規化レイヤ出力を生成するための例示的なプロセス200の流れ図である。便宜上、プロセス200を、1つまたは複数の位置に配置された1つまたは複数のコンピュータのシステムにより実施されるとして説明する。例えば、適切にプログラムされた、ニューラル・ネットワーク・システムに含まれたバッチ正規化レイヤ、例えば、
図1のニューラル・ネットワーク・システム100に含まれるバッチ正規化レイヤ108はプロセス200を実施することができる。
【0033】
バッチ正規化レイヤは、トレーニング例のバッチに対するより低いレイヤ出力を受信する(ステップ202)。このより低いレイヤ出力は、ニューラル・ネットワーク・レイヤのシーケンス内のバッチ正規化レイヤの下のレイヤによりバッチ内のトレーニング例ごとに生成されたそれぞれの出力を含む。
【0034】
バッチ正規化レイヤは、バッチ内のトレーニング例ごとにそれぞれの正規化された出力を生成する(ステップ204)。即ち、バッチ正規化レイヤは、それぞれの正規化された出力を各受信されたより低いレイヤ出力から生成する。
【0035】
幾つかの場合、バッチ正規化レイヤの下のレイヤは、次元によりインデックス化された複数の成分を含む出力を生成するレイヤである。
【0036】
これらのケースでは、バッチ正規化レイヤは、次元ごとに、当該次元に対応するより低いレイヤ出力の成分の平均および標準偏差を計算する。バッチ正規化レイヤは次いで、当該平均および標準偏差を用いて当該より低いレベル出力の各々の各成分を正規化して、バッチ内のトレーニング例の各々に対するそれぞれの正規化された出力を生成する。特に、所与の出力の所与の成分に対して、バッチ正規化レイヤは、当該成分に対応する次元に対して計算された平均および標準偏差を用いて当該成分を正規化する。例えば、幾つかの実装では、バッチβからのi番目のより低いレイヤ出力のk番目の次元に対応する成分
【0037】
【0038】
に対して、正規化された出力
【0039】
【0040】
は
【0041】
【0042】
を満たす。μBは、バッチβ内のより低いレイヤ出力のk番目の次元に対応する成分の平均であり、σBは、バッチβ内のより低いレイヤ出力のk番目の次元に対応する成分の標準偏差である。幾つかの実装では、当該標準偏差は
【0043】
【0044】
に等しい数的に安定な標準偏差であり、εは定数値であり、
【0045】
【0046】
は、バッチβ内のより低いレイヤ出力のk番目の次元に対応する成分の分散である。
【0047】
幾つかの他のケースでは、しかし、バッチ正規化レイヤの下のニューラル・ネットワーク・レイヤは、特徴インデックスおよび空間的位置インデックスの両方によりそれぞれインデックス化された複数の成分を含む出力を生成する、畳みこみレイヤまたは他の種類のニューラル・ネットワーク・レイヤである。
【0048】
これらのケースの幾つかでは、バッチ正規化レイヤは、可能な特徴インデックスおよび空間的位置インデックスの組合せごとに、特徴インデックスおよび空間的位置インデックスを有するより低いレイヤ出力の成分の平均および分散を計算する。バッチ正規化レイヤは次いで、特徴インデックスごとに、当該特徴インデックスおよび当該特徴インデックスを含む空間的位置インデックスの組合せに対する平均の算術平均を計算する。バッチ正規化レイヤはまた、特徴インデックスごとに、当該特徴インデックスおよび当該特徴インデックスを含む空間的位置インデックスの組合せに対する分散の算術平均を計算する。したがって、当該算術平均を計算した後に、バッチ正規化レイヤは、当該空間的位置の全てにわたる特徴ごとの平均統計と、当該空間的位置の全てにわたる特徴ごとの分散統計とを計算する。
【0049】
バッチ正規化レイヤは次いで、平均値および算術平均分散を用いてより低いレベルの出力の各々の各成分を正規化して、バッチ内のトレーニング例の各々に対するそれぞれの正規化された出力を生成する。特に、所与の出力の所与の成分に対して、バッチ正規化レイヤは当該成分に対応する特徴インデックスに対する平均値および算術平均分散を用いて、例えば、バッチ正規化レイヤの下のレイヤが次元によりインデックス化された出力を生成するときに上述したのと同一の方式で、当該成分を正規化する。
【0050】
これらのケースのその他では、バッチ正規化レイヤは、特徴インデックスごとに、当該特徴インデックスに対応する、即ち、当該特徴インデックスを有する、より低いレイヤ出力の成分の平均および分散を計算する。
【0051】
バッチ正規化レイヤは次いで、特徴インデックスに対する平均および分散を用いてより低いレベル出力の各々の各成分を正規化して、バッチ内のトレーニング例の各々に対するそれぞれの正規化された出力を生成する。特に、所与の出力の所与の成分に対して、バッチ正規化レイヤは、当該成分に対応する特徴インデックスに対する平均および分散を用いて、例えば、バッチ正規化レイヤの下のレイヤが次元によりインデックス化された出力を生成するときに上述したのと同一の方式で、当該成分を正規化する。
【0052】
場合によっては、バッチ正規化レイヤは各正規化された出力の各成分を変換する(ステップ206)。
【0053】
バッチ正規化レイヤの下のレイヤが、次元によりインデックス化された複数の成分を含む出力を生成するレイヤであるケースでは、バッチ正規化レイヤは、次元ごとに、当該次元に対する1組のパラメータの現在の値に従って当該次元内の各正規化された出力の成分を変換する。即ち、バッチ正規化レイヤは、次元ごとにそれぞれの1組のパラメータを維持し、これらのパラメータを用いて、当該次元内の正規化された出力の成分に変換を適用する。当該1組のパラメータの値は、ニューラル・ネットワーク・システムのトレーニングの一部として調節される。例えば、幾つかの実装では、正規化された出力
【0054】
【0055】
から生成された変換された正規化された出力
【0056】
【0057】
は
【0058】
【0059】
を満たす。
【0060】
【0061】
は、k番目の次元に対するパラメータである。
【0062】
バッチ正規化レイヤの下のレイヤが畳みこみレイヤであるケースでは、バッチ正規化レイヤは、正規化された出力の各々の成分ごとに、当該成分に対応する特徴インデックスに対する1組のパラメータの現在の値に従って当該成分を変換する。即ち、バッチ正規化レイヤは、特徴インデックスごとにそれぞれの1組のパラメータを維持し、これらのパラメータを使用して、例えば、バッチ正規化レイヤの下のレイヤを次元によりインデックス化された出力を生成するときに上述したのと同一の方式で、当該特徴インデックスを有する正規化された出力の成分に変換を適用する。当該1組のパラメータの値はニューラル・ネットワーク・システムのトレーニングの一部として調整される。
【0063】
バッチ正規化レイヤは、正規化された出力または変換された正規化された出力を入力としてシーケンス内のバッチ正規化レイヤの上のレイヤに提供する(ステップ208)。
【0064】
ニューラル・ネットワークがバッチ内のトレーニング例に対するニューラル・ネットワーク出力を生成した後、正規化された統計値が、当該ニューラル・ネットワークのパラメータの値を調節する一部として、即ち、誤差逆伝播トレーニング技術を実施する一部として、誤差逆伝播される。
【0065】
図3は、ニューラル・ネットワークがトレーニングされた後に新たなニューラル・ネットワーク入力に対するバッチ正規化レイヤ出力を生成するための例示的なプロセス300の流れ図である。便宜上、プロセス300を、1つまたは複数の位置に位置する1つまたは複数のコンピュータのシステムにより実施されるとして説明する。例えば、適切にプログラムされた、ニューラル・ネットワーク・システムに含まれるバッチ正規化レイヤ、例えば、
図1のニューラル・ネットワーク・システム100に含まれるバッチ正規化レイヤ108はプロセス300を実施することができる。
【0066】
バッチ正規化レイヤは、新たなニューラル・ネットワーク入力に対するより低いレイヤ出力を受信する(ステップ302)。当該より低いレイヤ出力は、ニューラル・ネットワーク・レイヤのシーケンス内のバッチ正規化レイヤの下のレイヤにより当該新たなニューラル・ネットワーク入力に対して生成された出力である。
【0067】
バッチ正規化レイヤは、当該新たなニューラル・ネットワーク入力に対する正規化された出力を生成する(ステップ304)。
【0068】
バッチ正規化レイヤの下のレイヤにより生成された出力が次元によりインデックス化される場合、バッチ正規化レイヤは、当該次元の各々に対して予め計算された平均および標準偏差を用いて当該より低いレイヤ出力の各成分を正規化して、正規化された出力を生成する。幾つかの場合、所与の次元に対する平均および標準偏差は、ニューラル・ネットワーク・システムのトレーニング中にバッチ正規化レイヤの下のレイヤにより生成された出力の全ての次元内の成分から計算される。
【0069】
幾つかの他のケースでは、しかし、所与の次元に対する平均および標準偏差は、トレーニング後にバッチ正規化レイヤの下のレイヤにより生成されたより低いレイヤ出力の次元内の成分から、例えば、指定の期間の直近の時間ウィンドウ内に生成されたより低いレイヤ出力から、またはバッチ正規化レイヤの下のレイヤにより直近に生成された指定数のより低いレイヤ出力から、計算される。
【0070】
特に、幾つかの場合ネットワーク入力の配分、および、したがって、より低いレイヤ出力の配分は、例えば、新たなニューラル・ネットワーク入力がトレーニング例と異なる種類の入力である場合に、トレーニング中に使用されるトレーニング例とニューラル・ネットワーク・システムがトレーニングされた後に使用される新たなニューラル・ネットワーク入力との間で変化してもよい。例えば、ニューラル・ネットワーク・システムはユーザ画像上でトレーニングされていてもよく、ビデオ・フレームを処理するために使用されてもよい。ユーザ画像およびビデオ・フレームは、撮像されたクラス、画像のプロパティ、構成等の点で異なる配分を有する可能性がある。したがって、トレーニングからの統計値を用いてより低いレイヤ入力を正規化することでは、新たな入力に対して生成されているより低いレイヤ出力の統計値を正確に取得できないかもしれない。したがって、これらのケースでは、バッチ正規化レイヤは、トレーニング後にバッチ正規化レイヤの下のレイヤにより生成されたより低いレイヤ出力から計算された正規化統計値を使用することができる。
【0071】
バッチ正規化レイヤの下のレイヤにより生成された出力が特徴インデックスおよび空間的位置インデックスによりインデックス化される場合、バッチ正規化レイヤは、当該特徴インデックスの各々に対して予め計算された平均値および平均分散を用いてより低いレイヤ出力の各成分を正規化して、正規化された出力を生成する。幾つかの場合、上述のように、所与の特徴インデックスに対する平均値および平均分散は、トレーニング中に使用されたトレーニング例の全部に対するバッチ正規化レイヤの下のレイヤにより生成された出力から計算される。幾つかの他のケースでは、上述のように、所与の特徴インデックスに対する平均および標準偏差は、トレーニング後にバッチ正規化レイヤの下のレイヤにより生成されたより低いレイヤ出力から計算される。
【0072】
場合によっては、バッチ正規化レイヤが正規化された出力の各成分を変換する(ステップ306)。
【0073】
バッチ正規化レイヤの下のレイヤにより生成された出力が次元によりインデックス化される場合、バッチ正規化レイヤは、次元ごとに、当該次元に対する1組のパラメータのトレーニングされた値に従って、当該次元内の正規化された出力の成分を変換する。バッチ正規化レイヤの下のレイヤにより生成された出力が特徴インデックスおよび空間的位置インデックスによりインデックス化される場合、バッチ正規化レイヤは、当該成分に対応する特徴インデックスに対する1組のパラメータのトレーニングされた値に従って、正規化された出力の各成分を変換する。バッチ正規化レイヤは、正規化された出力または変換された正規化された出力を、シーケンス内のバッチ正規化レイヤ上のレイヤへの入力として提供する(ステップ308)。
【0074】
本明細書で説明した主題の実施形態および当該機能的動作を、デジタル電子回路で、有形に組み込まれたコンピュータソフトウェアまたはファームウェアで、本明細書で開示された構造およびそれらの構造的な均等物を含むコンピュータハードウェアで、またはそれらの1つまたは複数の組合せで実装することができる。本明細書で説明する主題の実施形態を、1つまたは複数のコンピュータ・プログラム、即ち、データ処理装置による実行のためのまたはデータ処理装置の動作を制御するための有形の非一時的プログラムキャリアで符号化されたコンピュータ・プログラム命令の1つまたは複数のモジュールとして実装することができる。あるいはまたはさらに、当該プログラム命令を、人工的に生成された伝播信号、例えば、データ処理装置による実行のために適切な受信器装置に送信するための情報を符号化するために生成された機械生成された電気、光、または電磁気信号上で符号羽化することができる。当該コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアル・アクセス・メモリデバイス、またはそれらの1つまたは複数の組合せであることができる。
【0075】
「データ処理装置」という用語は、例によりプログラム可能プロセッサ、コンピュータ、または複数のプロセッサまたはコンピュータを含む、データを処理するための全ての種類の装置、デバイス、および機械を包含する。当該装置は特殊目的ロジック回路、例えば、FPGA(フィールドプログラム可能ゲート・アレイ)またはASIC(特定用途向け集積回路)を含むことができる。当該装置は、また、ハードウェアに加えて、問題のコンピュータ・プログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティング・システム、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。
【0076】
コンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと称するかまたはそれらとして説明してもよい)を、コンパイル型言語またはインタプリタ言語、または宣言型または手続き型言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロン・プログラムとしてまたはモジュール、成分として、サブルーチン、またはコンピューティング環境での使用に適した他のユニットとしてを含めて、任意の形態で展開することができる。コンピュータ・プログラムがファイルシステム内のファイルに対応してもよいがその必要はない。プログラムを、他のプログラムまたはデータを保持するファイル部分、例えば、マークアップ言語ドキュメントに、問題のプログラムに専用の単一のファイルに、または複数の協調されたファイル、例えば、1つまたは複数のモジュール、サブプログラム、またはコード部分を格納するファイルに格納された1つまたは複数のスクリプトに格納することができる。コンピュータ・プログラムを、1か所に配置されるかまたは複数のサイトにわたって分散し通信ネットワークにより相互接続された1つのコンピュータ上または複数のコンピュータ上で実行されるように展開することができる。
【0077】
本明細書で説明したプロセスおよびロジックフローを、1つまたは複数のコンピュータ・プログラムを実行する1つまたは複数のプログラム可能コンピュータを実施して、入力データで動作し出力を生成することによって機能を実施することができる。当該プロセスおよびロジックフローをまた、FPGA(フィールドプログラム可能ゲート・アレイ)またはASIC(特定用途向け集積回路)により実施でき、装置はまた、特殊目的ロジック回路、例えば、FPGA(フィールドプログラム可能ゲート・アレイ)またはASIC(特定用途向け集積回路)として実装されることができる。
【0078】
コンピュータ・プログラムの実行に適したコンピュータは、汎用目的または特殊目的のマイクロプロセッサまたはその両方、または任意の他の種類の中央演算装置を含み、例えば、それらに基づくことができる。一般に、中央演算装置は読取り専用メモリまたはランダム・アクセス・メモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実施または実行するための中央演算装置および命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶デバイス、例えば、磁気、磁気光ディスク、または光ディスクを含むか、または、それらからデータを受信するかもしくはそれらにデータを送信するかもしくはその両方を行うために動作可能に接続される。しかし、コンピュータはかかるデバイスを有する必要はない。さらに、コンピュータを、別のデバイス、例えば、ほんの少し例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレイヤ、ゲーム・コンソール、全地球測位システム(GPS)受信器、またはポータブル記憶デバイス、例えば、ユニバーサル・シリアル・バス(USB)フラッシュドライブに組み込むことができる。
【0079】
コンピュータ・プログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、例により半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内部ハード・ディスクまたは取外し可能ディスク、磁気光ディスク、およびCDROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体およびメモリデバイスを含む。当該プロセッサおよび当該メモリを、特殊目的ロジック回路により補完または特殊目的ロジック回路に組み込むことができる。
【0080】
ユーザとの対話を提供するために、本明細書で説明する主題の実施形態を、情報をユーザに表示するためのディスプレイデバイス、例えば、CRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)モニタと、ユーザが入力を当該コンピュータに提供できるキーボードおよびポインティング・デバイス、例えば、マウスまたはトラックボールとを有するコンピュータ上で実装することができる。他種のデバイスを、ユーザとの対話を提供するために使用することができる。例えば、ユーザに提供されるフィードバックは任意の形態のセンサ・フィードバック、例えば、視覚フィードバック、可聴フィードバック、または触覚フィードバックであることができ、ユーザからの入力を音響、会話、または触覚入力を含む任意の形態で受信することができる。さらに、コンピュータは、ユーザにより使用されるデバイスにドキュメントを送受信することによって、例えば、当該ウェブ・ブラウザから受信した要求に応答してウェブ・ページをユーザのクライアントデバイス上のウェブ・ブラウザに送信することによって、ユーザと対話することができる。
【0081】
本明細書で説明する主題の実施形態を、例えば、データサーバとしてのバック・エンド成分を含むコンピューティング・システムで、またはミドルウェア成分、例えば、アプリケーションサーバを含むコンピューティング・システムで、またはフロント・エンド成分、例えば、ユーザが本明細書で説明する主題の実装と対話できるグラフィカルユーザインタフェースまたはウェブ・ブラウザを有するクライアントコンピュータ、または1つまたは複数のかかるバック・エンド、ミドルウェア、またはフロント・エンド成分の任意の組合せを含むコンピューティング・システムで実装することができる。当該システムの当該成分を、任意の形態または媒体のデジタルデータ通信、例えば、通信ネットワークにより相互接続することができる。通信ネットワークの例はローカル領域ネットワーク(「LAN」)および広域ネットワーク(「WAN」)、例えば、インターネットを含む。
【0082】
当該コンピューティング・システムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、一般に通信ネットワークを通じて対話する。クライアントおよびサーバの関係は、当該それぞれのコンピュータ上で実行され互いに対するクライアント-サーバ関係を有するコンピュータ・プログラムにより生ずる。
【0083】
本明細書は多くの特定の実装詳細を含むが、これらを任意の本発明の範囲またはクレームされうるものの範囲に対する限定と解釈すべきではなく、特定の発明の特定の実施形態に固有でありうる特徴の説明として解釈すべきである。別々の実施形態の文脈において本明細書で説明した特定の特徴をまた、単一の実施形態における組合せで実装することができる。反対に、単一の実施形態の文脈で説明された様々な特徴をまた、複数の実施形態で別々にまたは任意の適切な副次的組合せで実装することができる。さらに、特徴は特定の組合せで動作するとして上述されており、最初はそのようにクレームされているかもしれないが、クレームされた組合せからの1つまたは複数の特徴は、幾つかの場合は当該組合せから実施でき、当該クレームされた組合せは副次的組合せまたは副次的組合せの変形に関してもよい。
【0084】
同様に、動作は図面において特定の順序で示されているが、これを、所望の結果を達成するために、かかる動作が示した特定の順序でまたは逐次的順序で実施されること、または、全ての図示された動作が実施されることを要求するものとして理解すべきではない。特定の状況では、マルチタスキングおよび並列処理は有利でありうる。さらに、上述の実施形態における様々なシステムモジュールおよび成分の分離は全ての実施形態においてかかる分離を要求するものとして理解されるべきではなく、当該説明したプログラム成分およびシステムを一般に単一のソフトウェア製品に統合するかまたは複数のソフトウェア製品にパッケージ化できることは理解されるべきである。
【0085】
特定の当該主題の実施形態を説明した。他の実施形態は添付の特許請求の範囲内にある。例えば、特許請求の範囲に記載した動作を、異なる順序で実施して依然として所望の結果を実現することができる。1例として、添付図面に示したプロセスは、所望の結果を達成するために必ずしも示した特定の順序、または逐次的順序を必要としない。特定の実装では、マルチタスキングおよび並列処理は有利であるかもしれない。
【符号の説明】
【0086】
100 ニューラル・ネットワーク・システム
102 トレーニング例のバッチ
104 ニューラル・ネットワーク・レイヤA
106 レイヤA出力
108 バッチ正規化レイヤ
110 バッチ正規化レイヤ出力
112 ニューラル・ネットワーク・レイヤB
114 ニューラル・ネットワーク出力