(57)【要約】  ニューラルネットワークシステムは、入力画像を受け取り、入力画像の分類出力を生成するように構成されている。このニューラルネットワークシステムは、分離可能な畳み込みサブネットワークを含み、この分離可能な畳み込みサブネットワークは、順々にスタック状に配置された複数の分離可能な畳み込みニューラルネットワーク層を含み、各分離可能な畳み込みニューラルネットワーク層は、分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込みと点方向の畳み込みの両方を別々に適用して、層出力を生成するように構成されている。
2019535084.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実装されたニューラルネットワークシステムであって、入力画像を受け取り、前記入力画像のネットワーク出力を生成するように構成され、
分離可能な畳み込みサブネットワークを含み、前記分離可能な畳み込みサブネットワークが、順々にスタック状に配置された複数の分離可能な畳み込みニューラルネットワーク層を含み、各分離可能な畳み込みニューラルネットワーク層が、
前記分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込みと点方向の畳み込みの両方を別々に適用して、層出力を生成するように構成されている、
ニューラルネットワークシステム。
【請求項２】
前記分離可能な畳み込みサブネットワークによって生成された分離可能な畳み込み出力を受け取り、前記分離可能な畳み込み出力を処理して、前記入力画像の前記ネットワーク出力を生成するように構成された出力サブネットワーク
をさらに含む、請求項1に記載のニューラルネットワークシステム。
【請求項３】
前記入力画像を受け取り、前記入力画像を処理して、初期出力を生成するように構成された入力サブネットワーク
をさらに含む、請求項1または2に記載のニューラルネットワークシステム。
【請求項４】
前記入力サブネットワークが、1つまたは複数の畳み込みニューラルネットワーク層を含む、請求項3に記載のニューラルネットワークシステム。
【請求項５】
前記分離可能な畳み込みサブネットワークが、1つまたは複数の開始モジュールを含み、前記開始モジュールが、前記初期出力を受け取り、前記初期出力をまとめて処理して、開始出力を生成するように構成されている、請求項3または4に記載のニューラルネットワークシステム。
【請求項６】
各開始モジュールが、
前記開始モジュールのモジュール入力を処理して、第1のパススルー出力を生成するように構成された個別の第1のパススルー畳み込み層と、
分離可能な畳み込みニューラルネットワーク層の個別の第1のスタックであって、前記第1のスタックにおける前記層が、前記モジュール入力をまとめて処理して、第1のスタック出力を生成するように構成されている、個別の第1のスタックと、
前記第1のスタック出力に関して最大プーリングを行って、最大プーリング済み出力を生成するように構成された個別の最大プーリング層と、
前記第1のパススルー出力および前記最大プーリング済み出力を連結して、前記開始モジュールの開始モジュール出力を生成するように構成された個別の第1の連結層と
を含む、請求項5に記載のニューラルネットワークシステム。
【請求項７】
前記分離可能な畳み込みサブネットワークが、3つの開始モジュールを含む、請求項5または6に記載のニューラルネットワークシステム。
【請求項８】
前記第1のパススルー畳み込み層が、1×1畳み込み層である、請求項6または7に記載のニューラルネットワークシステム。
【請求項９】
前記第1のスタックにおける前記分離可能な畳み込みニューラルネットワーク層が、整流化線形ユニット活性化層によって分離される、請求項6〜8のいずれか一項に記載のニューラルネットワークシステム。
【請求項１０】
前記第1のスタックにおける前記分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く、請求項6〜9のいずれか一項に記載のニューラルネットワークシステム。
【請求項１１】
前記分離可能な畳み込みサブネットワークが、1つまたは複数の中間モジュールを含み、前記中間モジュールが、前記開始出力を受け取り、前記開始出力をまとめて処理して、中間出力を生成するように構成されている、請求項5〜10のいずれか一項に記載のニューラルネットワークシステム。
【請求項１２】
各中間モジュールが、
前記中間モジュールのモジュール入力を処理して、第2のパススルー出力を生成するように構成された個別の第2のパススルー畳み込み層と、
分離可能な畳み込みニューラルネットワーク層の個別の第2のスタックであって、前記第2のスタックにおける前記層が、前記モジュール入力をまとめて処理して、第2のスタック出力を生成するように構成されている、個別の第2のスタックと、
前記第2のパススルー出力および前記第2のスタック出力を連結して、前記中間モジュールの中間モジュール出力を生成するように構成されている、個別の第2の連結層と
を含む、請求項11に記載のニューラルネットワークシステム。
【請求項１３】
前記分離可能な畳み込みサブネットワークが、8つの中間モジュールを含む、請求項11または12に記載のニューラルネットワークシステム。
【請求項１４】
前記第2のパススルー畳み込み層が、1×1畳み込み層である、請求項12にまたは13に記載のニューラルネットワークシステム。
【請求項１５】
前記第2のスタックにおける各分離可能な畳み込みニューラルネットワーク層の前に、整流化線形ユニット活性化層が先行する、請求項12〜14のいずれか一項に記載のニューラルネットワークシステム。
【請求項１６】
前記第2のスタックにおける前記分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く、請求項12〜15のいずれか一項に記載のニューラルネットワークシステム。
【請求項１７】
前記分離可能な畳み込みサブネットワークが、最終モジュールを含み、前記最終モジュールが、前記中間出力を受け取り、前記中間出力を処理して、前記分離可能な畳み込みサブネットワークの分離可能な畳み込み出力を生成するように構成されている、請求項11〜16のいずれか一項に記載のニューラルネットワークシステム。
【請求項１８】
前記最終モジュールが、
前記中間出力を処理して第3のパススルー出力を生成するように構成された第3のパススルー畳み込み層と、
分離可能な畳み込みニューラルネットワーク層の第3のスタックであって、前記第3のスタックにおける前記層が、前記中間出力をまとめて処理して、第3のスタック出力を生成するように構成されている、第3のスタックと、
前記第3のスタック出力に関して最大プーリングを行って、第3の最大プーリング済み出力を生成するように構成された第3の最大プーリング層と、
前記第3のパススルー出力および前記第3のプーリング済み出力を連結して、連結済み出力を生成するように構成された第3の連結層と
を含む、請求項17に記載のニューラルネットワークシステム。
【請求項１９】
前記第3のパススルー畳み込み層が、1×1畳み込み層である、請求項18に記載のニューラルネットワークシステム。
【請求項２０】
前記第3のスタックにおける各分離可能な畳み込みニューラルネットワーク層の前に、整流化線形ユニット活性化層が先行する、請求項18または19に記載のニューラルネットワークシステム。
【請求項２１】
前記第3のスタックにおける前記分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く、請求項18〜20のいずれか一項に記載のニューラルネットワークシステム。
【請求項２２】
前記最終モジュールが、
分離可能な畳み込みニューラルネットワーク層の第4のスタックであって、前記第4のスタックにおける前記層が、前記連結済み出力をまとめて処理して、第4のスタック出力を生成するように構成されている、第4のスタックと、
前記第4のスタック出力に関して平均プーリングを行って、前記分離可能な畳み込み出力を生成するように構成された平均プーリング層と
をさらに含む、請求項18に記載のニューラルネットワークシステム。
【請求項２３】
前記第4のスタックにおける各分離可能な畳み込みニューラルネットワーク層の後に、整流化線形ユニット活性化層が続く、請求項18〜20のいずれか一項に記載のニューラルネットワークシステム。
【請求項２４】
前記第4のスタックにおける前記分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く、請求項22または23に記載のニューラルネットワークシステム。
【請求項２５】
命令により符号化された1つまたは複数の記憶媒体であって、前記命令が、1つまたは複数のコンピュータによって実装されると、前記1つまたは複数のコンピュータに、請求項1〜24のいずれか一項に記載の個別のニューラルネットワークシステムを実装させる、1つまたは複数の記憶媒体。
【請求項２６】
入力画像を受け取るステップと、
請求項1〜24のいずれか一項に記載の個別のニューラルネットワークシステムを使用して前記入力画像を処理して、前記入力画像のネットワーク出力を生成するステップとを含む、方法。
【請求項２７】
前記ネットワーク出力、または前記ネットワーク出力から導出された出力をユーザに提示するように提供するステップ
をさらに含む、請求項26に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2016年10月6日に出願された、米国特許仮出願第62/405,181号の優先権を主張するものである。この先行出願の開示は、本出願の開示の一部と見なされ、参照によって本出願の開示に組み込まれている。
【０００２】
本明細書は、ディープニューラルネットワーク、たとえば畳み込みニューラルネットワークを使用して画像を処理することに関する。
【背景技術】
【０００３】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を用いて、受け取った入力の出力を予測する機械学習モデルである。いくつかのニューラルネットワークは、出力層に加えて、1つまたは複数の隠れ層を含む。各隠れ層の出力は、ネットワーク内の別の層、たとえば、次の隠れ層または出力層への入力として使用される。ネットワークの各層は、個別のパラメータセットの現在の値に従って、受け取った入力から出力を生成する。
【０００４】
畳み込みニューラルネットワークは、一般に、畳み込みニューラルネットワーク層を含み、いくつかの場合には、全結合ニューラルネットワーク層および他の種類のニューラルネットワーク層を含む。畳み込みニューラルネットワーク層は、結合性が疎らであり、畳み込み層における各ノードは、次の最低ニューラルネットワーク層におけるノードのサブセットのみから入力を受け取る。いくつかの畳み込みニューラルネットワーク層は、層の中の他のノードと重みを共有するノードを有する。しかしながら、全結合層におけるノードは、次の最低ニューラルネットワーク層における各ノードから入力を受け取る。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】第32回機械学習に関する国際会議の議事録、頁448〜456、2015におけるS. IoffeおよびC. Szegedy、「Batch normalization: Accelerating deep network training by reducing internal covariate shift」
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本明細書は、1つまたは複数の場所における1つまたは複数のコンピュータにおいてコンピュータプログラムとして実装されたニューラルネットワークシステムについて説明する。
【課題を解決するための手段】
【０００７】
概して、1つの革新的態様は、1つまたは複数のコンピュータによって実装されたニューラルネットワークシステムにおいて具現化され得る。このニューラルネットワークシステムは、入力画像を受け取り、入力画像の分類出力(Classification Output)を生成するように構成されている。ニューラルネットワークシステムは、分離可能な畳み込みサブネットワークを含み、この分離可能な畳み込みサブネットワークは、順々にスタック状に配置された複数の分離可能な畳み込みニューラルネットワーク層を含み、各分離可能な畳み込みニューラルネットワーク層は、分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込み(Depthwise Convolution)と点方向の畳み込み(Pointwise Convolution)の両方を別々に適用して、層出力を生成するように構成されている。ニューラルネットワークシステムは、出力サブネットワークをさらに含むことができ、この出力サブネットワークは、分離可能な畳み込みサブネットワークによって生成された分離可能な畳み込み出力を受け取り、この分離可能な畳み込み出力を処理して、入力画像の分類出力を生成するように構成されている。ニューラルネットワークシステムは、入力サブネットワークをさらに含むことができ、この入力サブネットワークは、入力画像を受け取り、この入力画像を処理して、初期出力を生成するように構成されている。入力サブネットワークは、1つまたは複数の畳み込みニューラルネットワーク層を含むことができる。
【０００８】
分離可能な畳み込みサブネットワークは、1つまたは複数の開始モジュール(Entry Module)を含むことができ、開始モジュールは、初期出力を受け取り、この初期出力をまとめて処理して、開始出力を生成するように構成されている。各開始モジュールは、開始モジュールのモジュール入力を処理して、第1のパススルー出力を生成するように構成されている個別の第1のパススルー畳み込み層と、分離可能な畳み込みニューラルネットワーク層の個別の第1のスタックであって、第1のスタックにおける層が、モジュール入力をまとめて処理して、第1のスタック出力を生成するように構成されている、個別の第1のスタックと、第1のスタック出力に関して最大プーリング(Max Pooling)を行って、最大プーリング済み出力を生成するように構成されている個別の最大プーリング層と、第1のパススルー出力および最大プーリング済み出力を連結して、開始モジュールの開始モジュール出力を生成するように構成されている個別の第1の連結層とを含むことができる。分離可能な畳み込みサブネットワークは、3つの開始モジュールを含むことができる。第1のパススルー畳み込み層は、1×1畳み込み層とすることができる。第1のスタックにおける分離可能な畳み込みニューラルネットワーク層は、整流化線形ユニット(Rectified Linear Unit)活性化層によって分離され得る。第1のスタックにおける分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層(Batch Normalization Layer)が続いてもよい。
【０００９】
分離可能な畳み込みサブネットワークは、1つまたは複数の中間モジュール(Middle Module)を含むことができ、中間モジュールは、開始出力を受け取り、この開始出力をまとめて処理して、中間出力を生成するように構成されている。各中間モジュールは、中間モジュールのモジュール入力を処理して、第2のパススルー出力を生成するように構成されている個別の第2のパススルー畳み込み層と、分離可能な畳み込みニューラルネットワーク層の個別の第2のスタックであって、第2のスタックにおける層が、モジュール入力をまとめて処理して、第2のスタック出力を生成するように構成されている、個別の第2のスタックと、第2のパススルー出力および第2のスタック出力を連結して、中間モジュールの中間モジュール出力を生成するように構成されている個別の第2の連結層とを含むことができる。分離可能な畳み込みサブネットワークは、8つの中間モジュールを含むことができる。第2のパススルー畳み込み層は、1×1畳み込み層とすることができる。第2のスタックにおける各分離可能な畳み込みニューラルネットワーク層の前に、整流化線形ユニット活性化層が先行してもよい。第2のスタックにおける分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続いてもよい。
【００１０】
分離可能な畳み込みサブネットワークは、最終モジュール(exit module)を含むことができ、最終モジュールは、中間出力を受け取り、この中間出力を処理して、分離可能な畳み込みサブネットワークの分離可能な畳み込み出力を生成するように構成されている。最終モジュールは、中間出力を処理して、第3のパススルー出力を生成するように構成されている第3のパススルー畳み込み層と、分離可能な畳み込みニューラルネットワーク層の第3のスタックであって、第3のスタックにおける層が、中間出力をまとめて処理して、第3のスタック出力を生成するように構成されている、第3のスタックと、第3のスタック出力に関して最大プーリングを行って、第3の最大プーリング済み出力を生成するように構成されている第3の最大プーリング層と、第3のパススルー出力および第3のプーリング済み出力を連結して、連結済み出力を生成するように構成されている第3の連結層とを含むことができる。第3のパススルー畳み込み層は、1×1畳み込み層とすることができる。第3のスタックにおける各分離可能な畳み込みニューラルネットワーク層の前に、整流化線形ユニット活性化層が先行してもよい。第3のスタックにおける分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続いてもよい。最終モジュールは、分離可能な畳み込みニューラルネットワーク層の第4のスタックであって、第4のスタックにおける層が、連結済み出力をまとめて処理して、第4のスタック出力を生成するように構成されている、第4のスタックと、第4のスタック出力に関して平均プーリング(Average Pooling)を行って、分離可能な畳み込み出力を生成するように構成されている平均プーリング層とをさらに含むことができる。第4のスタックにおける各分離可能な畳み込みニューラルネットワーク層の後に、整流化線形ユニット活性化層が続いてもよい。第4のスタックにおける分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続いてもよい。
【００１１】
別の革新的態様は、命令により符号化された1つまたは複数の記憶媒体において具現化され得、この命令は、1つまたは複数のコンピュータによって実装されると、1つまたは複数のコンピュータに、上述のニューラルネットワークシステムを実装させる。
【００１２】
別の革新的態様は、入力画像を受け取るステップと、上述のニューラルネットワークシステムを使用してこの入力画像を処理して、入力画像の分類出力を生成するステップとを含む方法において具現化され得る。この方法は、分類出力、または分類出力から導出された出力をユーザに提示するように提供するステップをさらに含むことができる。
【００１３】
本明細書に説明する主題の具体的な実施形態は、次の利点のうちの1つまたは複数を実現するように実装され得る。本明細書に説明する画像処理ニューラルネットワークシステムは、多様な画像処理タスク、たとえば、画像分類もしくは物体認識を行う際に最先端技術に匹敵する、またはそれを上回る働きをする成果を達成することができる。加えて、本明細書に説明する画像処理ニューラルネットワークシステムは、本明細書に説明する画像処理ニューラルネットワークシステムよりもはるかに多くのパラメータを有し、そのためはるかに多くのコンピューティング資源、すなわちメモリおよび処理時間を、パラメータ値を記憶し入力画像を処理するのに必要とする従来のニューラルネットワークに相当する、またはそれよりも優れている成果を達成することができる。つまり、この画像処理ニューラルネットワークシステムは、従来のニューラルネットワークよりも、コンピュータフットプリントが小さく、すなわち、使用されるメモリが少なく、要求される処理時間が短くても、これらの成果を達成することができる。概して、これらの利点は、画像処理ニューラルネットワークにおいて順々に複数の分離可能な畳み込み層を積層する結果、すなわち、従来の畳み込み層を積層すること、または積層された従来の畳み込み層が後に続くニューラルネットワークの入力層としてたった1つの分離可能な畳み込み層を有することとは対照的に実現される。
【００１４】
本明細書の主題の1つまたは複数の実施形態の詳細について、付属の図面および以下の説明に記載する。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１５】
【図１】ニューラルネットワークシステムの一例のブロック図である。
【図２】開始モジュールの一例示的アーキテクチャのブロック図である。
【図３】中間モジュールの一例示的アーキテクチャのブロック図である。
【図４】最終モジュールの一例示的アーキテクチャのブロック図である。
【図５】入力画像の分類出力を生成するための一例示的方法の流れ図である。
【発明を実施するための形態】
【００１６】
様々な図面における同様の参照数字および名称は、同様の要素を示す。
【００１７】
図1は、ニューラルネットワークシステム100の一例を示している。ニューラルネットワークシステム100は、1つまたは複数の場所における1つまたは複数のコンピュータにおいてコンピュータプログラムとして実装されたシステムの一例であり、ここで、後述のシステム、コンポーネント、および技法が実装され得る。
【００１８】
ニューラルネットワークシステム100は、入力画像102を受け取る。次いで、ニューラルネットワークシステム100は、分離可能な畳み込みサブネットワーク150を使用して入力画像102を処理して、入力画像の出力を生成する。
【００１９】
ニューラルネットワークシステム100は、入力画像102に基づいて、任意の種類のスコア、回帰、または分類の出力を生成するように構成され得、すなわち、任意の種類の画像処理タスクを行うように構成され得る。システム100によって生成されたスコアまたは分類の出力は、ニューラルネットワークシステム100が確認するように構成済みであるタスクに依存する。システム100は、サブネットワーク150の出力層において、またはサブネットワーク150の1つまたは複数の隠れ層のうちの任意の適切な隠れ層において、1つまたは複数のスコアもしくは分類の出力を生成するように構成され得る。たとえば、画像の分類または認識のタスクの場合、所与の画像についてニューラルネットワークシステム100によって生成された出力は、1組の物体カテゴリのそれぞれについてのスコアとすることができ、各スコアは、画像がカテゴリに属する物体の画像を含んでいる尤度を表す。別の例としては、物体検出タスクの場合、ニューラルネットワークシステム100によって生成された出力は、入力画像における対象の物体の場所、サイズ、またはその両方を特定することができる。さらなる別の例では、ニューラルネットワークシステム100によって生成された出力は、ネットワークの隠れ層のうちの1つの出力とすることができ、入力画像の数値表現、すなわち数値埋込みとして使用するために提供され得る。
【００２０】
概して、分離可能な畳み込みサブネットワーク150は、順々にスタック状に配置された複数の分離可能な畳み込みニューラルネットワーク層を含む。
【００２１】
分離可能な畳み込みニューラルネットワーク層は、深さ方向の畳み込み、すなわち、入力のあらゆるチャンネルを介して独立して行われる空間的畳み込みを含み、この後に、点方向の畳み込み、すなわち、1×1ウィンドウによる通常の畳み込みが続き、深さ方向の畳み込みによってコンピュータ計算されたチャンネルが新規チャンネル空間上に投影される。各分離可能な畳み込みニューラルネットワーク層は、分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込みと点方向の畳み込みの両方を別々に適用するように構成されている。たとえば、分離可能な畳み込み層は、まず、受け取った入力に関してチャンネル方向の空間的畳み込み、すなわち、深さ方向の畳み込みを行って、中間の出力を生成し、次いで、中間の出力に関して1×1畳み込み、すなわち、点方向の畳み込みを行って、層出力を生成することができる。別の例として、分離可能な畳み込み層は、まず、受け取った入力に関して1×1畳み込みを行って、中間の出力を生成し、次いで、中間の出力に関してチャンネル方向の空間的畳み込みを行って、層出力を生成する場合もある。
【００２２】
具体的には、分離可能な畳み込みサブネットワーク150は、1つまたは複数の開始モジュール106、これに続く1つまたは複数の中間モジュール108、これに続く1つの最終モジュール110を含むモジュール配列を含む。いくつかの実装形態では、分離可能な畳み込みサブネットワーク150は、3つの開始モジュールを含む。いくつかの実装形態では、サブネットワーク150は、8つの中間モジュールを含むことができる。各モジュールは、順々にスタック状に配置された複数の分離可能な畳み込みニューラルネットワーク層を含む。各モジュールは、モジュール入力を処理して、モジュール入力のモジュール出力を生成するように構成されている。各モジュールは、次いで、このモジュール出力を、次のモジュールへの入力として、または現在のモジュールに続くモジュールが存在しない場合、すなわち、モジュールがこの配列における最後のモジュールである場合には、分離可能な畳み込みサブネットワーク150の分離可能な畳み込み出力、たとえば分離可能な畳み込み出力122として提供する。開始モジュール、中間モジュール、および最終モジュールの例示的なアーキテクチャについては、図2〜図4を参照して詳細に後述する。
【００２３】
様々な実装形態では、ニューラルネットワークシステム100は、入力サブネットワーク、たとえば入力サブネットワーク104を含み、この入力サブネットワーク104は、入力画像102を受け取り、入力画像102を処理して、初期出力116を生成するように構成されている。入力サブネットワーク104は、1つまたは複数の畳み込みニューラルネットワーク層を含む。
【００２４】
1つまたは複数の開始モジュール106は、初期出力116を受け取り、初期出力116をまとめて処理して、開始出力118を生成するように構成されている。
【００２５】
1つまたは複数の中間モジュール108は、開始出力118を受け取り、開始出力118をまとめて処理して、中間出力120を生成するように構成されている。
【００２６】
最終モジュール110は、中間出力120を受け取り、中間出力120をまとめて処理して、分離可能な畳み込みサブネットワーク150の分離可能な畳み込み出力122を生成するように構成されている。
【００２７】
様々な実装形態では、ニューラルネットワークシステム100は、出力サブネットワーク、たとえば出力サブネットワーク112を含み、この出力サブネットワーク112は、分離可能な畳み込み出力122を入力として受け取るように構成されている。出力サブネットワーク112は、分離可能な畳み込み出力122を処理して、入力画像102の分類出力114を生成するように構成されている。
【００２８】
出力サブネットワーク112のアーキテクチャは、ニューラルネットワークシステム100が行うように構成されているタスクに特有である。たとえば、システム100が画像分類タスクを行っているとき、出力サブネットワーク112は、ソフトマックス層、オプションで、ソフトマックス層に先行する1つまたは複数の全結合層を含み、これらの層は、分離可能な畳み込み出力122をまとめて処理して、入力画像102の分類出力114を生成する。
【００２９】
図2は、開始モジュール200の一例示的アーキテクチャを示している。
【００３０】
開始モジュール200は、開始入力202を受け取るように構成されている。いくつかの場合では、開始入力202は、入力画像である。他のいくつかの場合では、開始入力202は、入力画像から入力サブネットワークによって生成された初期出力(たとえば、図1の初期出力116)である。他のいくつかの場合では、開始入力202は、前の開始モジュールによって生成されたモジュール出力である。
【００３１】
開始モジュール200は、第1のパススルー畳み込み層216を含み、この第1のパススルー畳み込み層216は、開始入力202を処理して、第1のパススルー出力218を生成するように構成されている。第1のパススルー畳み込み層216は、1×1畳み込み層である。
【００３２】
開始モジュール200は、分離可能な畳み込みニューラルネットワーク層(たとえば、分離可能な畳み込み層204および分離可能な畳み込み層208)の第1のスタック220をさらに含む。第1のスタック層220における分離可能な畳み込みニューラルネットワーク層は、開始入力202をまとめて処理して、第1のスタック出力222を生成するように構成されている。具体的には、第1のスタック220における各分離可能な畳み込みニューラルネットワーク層は、分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込みと点方向の畳み込みの両方を別々に適用して、層出力を生成するように構成されている。各分離可能な畳み込み層は、次いで、この層出力を、次の分離可能な畳み込み層への入力として、または現在の層に続く層が存在しない場合には、第1のスタック出力222として提供する。
【００３３】
いくつかの実装形態では、第1のスタック220における分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の前に、整流化線形ユニット(ReLU:rectified linear unit)活性化層が先行する。たとえば、分離可能な畳み込み層208の前に、ReLU活性化層206が先行する。ReLU活性化層は、ReLU活性化関数を前の分離可能な畳み込み層の出力に適用して、ReLU出力を生成するように構成され、このReLU出力は、ReLU活性化層に続く次の分離可能な畳み込み層への入力として提供される。
【００３４】
いくつかの実装形態では、第1のスタック220における分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化を行うバッチ正規化層が続く。バッチ正規化層は、モデルアーキテクチャの一部を正規化すること、および訓練データの各訓練最小バッチの正規化を行うことによって、学習速度をより高め、ロバストな初期化を可能にする。バッチ正規化については、第32回機械学習に関する国際会議の議事録、頁448〜456、2015におけるS. IoffeおよびC. Szegedy、「Batch normalization: Accelerating deep network training by reducing internal covariate shift」に詳細に記載されている。
【００３５】
開始モジュール200は、最大プーリング層210を含み、この最大プーリング層210は、第1のスタック出力222に関して最大プーリングを行って、最大プーリング済み出力224を生成するように構成されている。
【００３６】
開始モジュール200は、連結層212をさらに含み、この連結層212は、第1のパススルー出力218および最大プーリング済み出力224を連結して、開始モジュール200の開始出力214を生成するように構成されている。たとえば、連結層212は、深さ寸法に沿って第1のパススルー畳み込み層216および最大プーリング層210によって生成されたテンソルを連結して、開始モジュール200の単一のテンソル、すなわち、開始出力214を生成するように構成されている。
【００３７】
開始モジュール出力214は、次いで、別の開始モジュールまたは中間モジュールとすることができる次のモジュールへの入力として提供される。
【００３８】
図3は、中間モジュール、たとえば中間モジュール300の一例示的アーキテクチャを示している。概して、中間モジュールは、開始モジュールよりも多い分離可能な畳み込みニューラルネットワーク層を有し、開始モジュールとは異なって最大プーリング層を含んでいない。
【００３９】
中間モジュール300は、中間入力302を受け取るように構成されている。いくつかの場合では、中間入力302は、1つまたは複数の前の開始モジュールによって生成された開始出力、たとえば図1の開始モジュール106によって生成された開始出力118である。他のいくつかの場合では、中間入力302は、前の中間モジュールによって生成されたモジュール出力である。
【００４０】
中間モジュール300は、第2のパススルー畳み込み層322を含み、この第2のパススルー畳み込み層322は、中間入力302を処理して、第2のパススルー出力324を生成するように構成されている。第2のパススルー畳み込み層322は、1×1畳み込み層である。
【００４１】
中間モジュール300は、分離可能な畳み込みニューラルネットワーク層(たとえば、分離可能な畳み込み層306、310、および314)の第2のスタック320をさらに含む。第2のスタック320における分離可能な畳み込みニューラルネットワーク層は、中間入力302をまとめて処理して、第2のスタック出力326を生成するように構成されている。具体的には、第2のスタック320における各分離可能な畳み込みニューラルネットワーク層は、分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込みと点方向の畳み込みの両方を別々に適用して、層出力を生成するように構成されている。各分離可能な畳み込み層は、次いで、この層出力を、次の分離可能な畳み込み層への入力として、または現在の層に続く層が存在しない場合には、第2のスタック出力326として提供する。
【００４２】
いくつかの実装形態では、第2のスタック320における分離可能な畳み込みニューラルネットワーク層のそれぞれの前に、ReLU活性化層が先行する。たとえば、分離可能な畳み込み層306の前に、ReLU活性化層304が先行し、分離可能な畳み込み層310の前に、ReLU活性化層308が先行し、分離可能な畳み込み層314の前に、ReLU活性化層312が先行する。
【００４３】
第1のReLU活性化層(たとえば、層304)は、ReLU活性化関数を中間入力302に適用して、中間の出力を生成するように構成され、この中間の出力は、続く分離可能な畳み込み層(たとえば、分離可能な畳み込み層306)への入力として提供される。後続のReLU活性化層(たとえば、ReLU活性化層308および312)のそれぞれは、前の分離可能な畳み込み層の出力にReLU活性化関数を適用して、中間の出力を生成するように構成され、この中間の出力は、次の分離可能な畳み込み層への入力として提供される。
【００４４】
いくつかの実装形態では、第2のスタック320における分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く。
【００４５】
中間モジュール300は、連結層316をさらに含み、この連結層316は、第2のパススルー出力324およびスタック出力326を連結して、中間モジュール300の中間モジュール出力318を生成するように構成されている。
【００４６】
中間出力318は、別の中間モジュールまたは最終モジュールとすることができる次のモジュールへの入力として提供される。
【００４７】
図4は、最終モジュール400の一例のブロック図である。
【００４８】
最終モジュール400は、最終入力402を受け取るように構成されている。最終入力402は、1つまたは複数の前の中間モジュールによって生成されたモジュール出力、たとえば、図1の中間モジュール108によって生成された中間出力120である。
【００４９】
最終モジュール400は、第3のパススルー畳み込み層432を含み、この第3のパススルー畳み込み層432は、最終入力402を処理して、第3のパススルー出力434を生成するように構成されている。第3のパススルー畳み込み層432は、1×1畳み込み層である。
【００５０】
最終モジュール400は、分離可能な畳み込みニューラルネットワーク層(たとえば、分離可能な畳み込み層406および410)の第3のスタック420をさらに含む。第3のスタック420における分離可能な畳み込みニューラルネットワーク層は、最終入力402をまとめて処理して、第3のスタック出力436を生成するように構成されている。具体的には、第3のスタック420における各分離可能な畳み込みニューラルネットワーク層は、分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込みと点方向の畳み込みの両方を別々に適用して、層出力を生成するように構成されている。各分離可能な畳み込み層は、次いで、この層出力を、次の分離可能な畳み込み層への入力として、または現在の層に続く層が存在しない場合には、第3のスタック出力436として提供する。
【００５１】
いくつかの実装形態では、第3のスタック出力420における分離可能な畳み込みニューラルネットワーク層のそれぞれの前に、ReLU活性化層が先行する。たとえば、分離可能な畳み込み層406の前に、ReLU活性化層404が先行し、分離可能な畳み込み層410の前に、ReLU活性化層408が先行する。
【００５２】
第1のReLU活性化層(たとえば、層404)は、最終入力402にReLU活性化関数を適用して、中間の出力を生成するように構成され、この中間の出力は、続く分離可能な畳み込み層(たとえば、分離可能な畳み込み層406)への入力として提供される。後続のReLU活性化層(たとえば、ReLU活性化層408)のそれぞれは、前の分離可能な畳み込み層の出力にReLU活性化関数を適用して、中間の出力を生成するように構成され、この中間の出力は、次の分離可能な畳み込み層への入力として提供される。
【００５３】
いくつかの実装形態では、第3のスタック420における分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く。
【００５４】
最終モジュール400は、最大プーリング層412を含み、この最大プーリング層412は、第3のスタック出力436に関して最大プーリングを行って、最大プーリング済み出力438を生成するように構成されている。
【００５５】
最終モジュール400は、連結層414をさらに含み、この連結層414は、第3のパススルー出力434および最大プーリング済み出力438を連結して、連結済み出力440を生成するように構成されている。たとえば、連結層414は、深さ寸法に沿って第1のパススルー畳み込み層432および最大プーリング層412によって生成されたテンソルを連結して、単一のテンソル、すなわち、連結済み出力440を生成するように構成されている。
【００５６】
最終モジュール400は、分離可能な畳み込みニューラルネットワーク層(たとえば、分離可能な畳み込みニューラルネットワーク層416および422)の第4のスタック430をさらに含む。第4のスタックにおける層は、連結済み出力440をまとめて処理して、第4のスタック出力442を生成するように構成されている。具体的には、第4のスタック420における各分離可能な畳み込みニューラルネットワーク層は、分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込みと点方向の畳み込みの両方を別々に適用して、層出力を生成するように構成されている。各分離可能な畳み込み層は、次いで、この層出力を、次の層への入力として提供する。
【００５７】
いくつかの実装形態では、第4のスタック430における分離可能な畳み込みニューラルネットワーク層のそれぞれの後に、ReLU活性化層が続く。たとえば、分離可能な畳み込み層416の後に、ReLU活性化層418が続き、分離可能な畳み込み層422の後に、ReLU活性化層424が続く。各ReLU活性化層は、先行の分離可能な畳み込み層の出力にReLU活性化関数を適用して、中間の出力を生成するように構成され、この中間の出力は、次の分離可能な畳み込み層への入力として、または現在のReLU活性化層に続く分離可能な畳み込み層が存在しない場合には、第4のスタック出力442として提供される。
【００５８】
最終モジュール400は、平均プーリング層426をさらに含み、この平均プーリング層426は、第4のスタック出力442に関して平均プーリングを行って、最終出力428を生成するように構成されている。最終出力428は、分離可能な畳み込みサブネットワークの分離可能な畳み込み出力、たとえば、図1の分離可能な畳み込みサブネットワーク150の分離可能な畳み込み出力122である。
【００５９】
図5は、入力画像の分類出力を生成するための一例示的方法500の流れ図である。便宜上、方法500について、1つまたは複数の場所に置かれている1つまたは複数のコンピュータのシステムによって行われるように説明することになる。たとえば、本明細書により適切にプログラミングされたニューラルネットワークシステム、たとえば、図1のニューラルネットワークシステム100は、方法500を行うことができる。
【００６０】
システムは、入力画像を受け取る(ステップ502)。
【００６１】
システムは、分離可能な畳み込みサブネットワーク、たとえば、図1の分離可能な畳み込みサブネットワーク150を含むニューラルネットワークシステムを使用して入力画像を処理して、入力画像のネットワーク出力を生成する(ステップ504)。いくつかの実装形態では、システムは、まず、入力サブネットワークを使用して入力画像を処理して、初期出力を生成し、この初期出力は、分離可能な畳み込みサブネットワークへの入力として送られる。
【００６２】
分離可能な畳み込みサブネットワークは、1つまたは複数の開始モジュール、これに続く1つまたは複数の中間モジュール、これに続く1つの最終モジュールを含むモジュール配列を含む。この配列における各モジュールは、順々にスタック状に配置された複数の分離可能な畳み込みニューラルネットワーク層を含む。システムは、配列におけるモジュールのそれぞれを介して、入力画像、または入力画像から導出されたデータ(たとえば、入力サブネットワークによって生成された初期出力)を処理して、分離可能な畳み込みサブネットワークの分離可能な畳み込み出力を生成する。
【００６３】
いくつかの実装形態では、システムは、出力サブネットワークを使用してこの分離可能な畳み込み出力を処理して、入力画像のネットワーク出力を生成する。いくつかの実装形態では、出力サブネットワークは、ソフトマックス層、オプションで、ソフトマックス層に先行する1つまたは複数の全結合層を含み、これらの層は、分離可能な畳み込み出力をまとめて処理して、入力画像のネットワーク出力を生成する。他のいくつかの実装形態では、出力サブネットワークは、ロジスティック回帰層、オプションで、ロジスティック回帰層に先行する1つまたは複数の全結合ニューラルネットワーク層を含み、これらの層は、分離可能な畳み込み出力をまとめて処理して、入力画像のネットワーク出力を生成する。
【００６４】
概して、システムによって生成されたネットワーク出力は、システムが行うように構成されている画像処理タスクに基づいて、任意の種類のスコア、回帰、または分類の出力とすることができる。たとえば、システムが、画像の分類または認識のタスクを行うように構成されている場合、出力層によって生成されたネットワーク出力は、所定の物体カテゴリセットのそれぞれの個別のスコアを含むことができ、所与の物体カテゴリのスコアは、入力画像が物体カテゴリに属する物体の画像を含んでいる尤度を表す。別の例としては、物体検出タスクの場合、システムによって生成された出力は、入力画像における対象の物体の場所、サイズ、またはその両方を特定することができる。さらなる別の例としては、システムによって生成された出力は、ネットワークの隠れ層のうちの1つの出力とすることができ、入力画像の数値表現、すなわち数値埋込みとして使用するために提供され得る。
【００６５】
システムは、次いで、ネットワーク出力、またはネットワーク出力から導出されたデータをユーザに提示するように提供する(ステップ506)。いくつかの実装形態では、ネットワーク出力から導出された出力は、たとえば、1つまたは複数の最高スコアの物体カテゴリを特定するデータとすることができる。システムは、ネットワーク出力、または導出された出力をユーザのユーザデバイスのユーザインターフェースに表示するように提供することができる。いくつかの実装形態では、ネットワーク出力、もしくはネットワーク出力から導出されたデータをユーザに提示するように提供する代わりに、またはそれに加えて、システムは、ネットワーク出力、またはネットワーク出力から導出されたデータを入力画像に関連付けて記憶する。
【００６６】
システムは、従来の教師ありの学習技法、たとえば、バックプロパゲーションによる確率的勾配降下法を用いて、ラベル付きの訓練データに関して、分離可能な畳み込みサブネットワーク、また含まれている場合には、入力サブネットワークおよび出力サブネットワークを訓練することができる。つまり、システムは、教師ありの学習技法を用いて、サブネットワークの初期値からサブネットワークのパラメータの訓練値を確定するために、ラベル付きの訓練データに関して、分離可能な畳み込みサブネットワーク、また含まれている場合には、入力サブネットワークおよび出力サブネットワークを訓練することができる。
【００６７】
本明細書は、システムおよびコンピュータプログラムコンポーネントに関連して「構成された(configured)」という用語を使用する。特定の動作または行為の手段を行うように構成されることになる1つまたは複数のコンピュータのシステムの場合、システムは、その上にソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしており、これらは、動作に際して、システムに動作または行為を行わせる。特定の動作もしくは行為の手段を行うように構成されることになる1つまたは複数のコンピュータプログラムの場合、1つまたは複数のプログラムは、命令を含み、この命令は、データ処理装置によって実行されると、装置に動作または行為を行わせる。
【００６８】
本明細書に説明の主題および機能的動作の実施形態は、本明細書に開示の構造、およびそれらの構造的均等物を含んだ、デジタル電子回路機構で、有形に具現化されたコンピュータソフトウェアもしくはファームウェアで、コンピュータハードウェアで、あるいはそれらのうちの1つまたは複数の組合せで実装され得る。本明細書に説明の主題の実施形態は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置によって実行される、またはその動作をコントロールするための有形の非一時的記憶媒体において符号化されるコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらのうちの1つまたは複数の組合せとすることができる。代替として、または追加として、プログラム命令は、人為的に生成された伝搬信号、たとえば、データ処理装置によって実行されるのに適切な受信用装置に送信する情報を符号化するために生成される機械生成された電気、光学、または電磁信号において符号化され得る。
【００６９】
「データ処理装置(Data Processing Apparatus)」という用語は、データ処理ハードウェアを示し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置はまた、専用の論理回路機構、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、もしくはASIC(特定用途向け集積回路)であっても、またはこれをさらに含んでもよい。装置は、オプションで、ハードウェアに加えて、コンピュータプログラムの実行環境を創出するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、あるいはそれらのうちの1つまたは複数の組合せを構成するコードを含むことができる。
【００７０】
プログラム、ソフトウェア、ソフトウェアアプリケーション、app、モジュール、ソフトウェアモジュール、スクリプト、もしくはコードとも呼ぶことがある、または説明することがあるコンピュータプログラムは、コンパイルもしくは解釈された言語、または宣言型もしくは手続き型言語を含む任意の形態のプログラミング言語で記述され得、それは、スタンドアロンプログラムとして、もしくはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境での使用に適している他のユニットとして含む、任意の形態で展開することができる。プログラムは、必ずしもそうである必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、マークアップ言語文書に記憶されている他のプログラムまたはデータ、たとえば1つまたは複数のスクリプトを保持するファイルの一部分に、問題になっているプログラムに専用の単一のファイルに、または複数の座標ファイル、たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部分を記憶するファイルに記憶され得る。コンピュータプログラムは、1つのサイトに置かれている、または複数のサイトにわたって分散されている、データ通信ネットワークによって相互接続されている、1つのコンピュータまたは複数のコンピュータにおいて、実行されるように展開され得る。
【００７１】
本明細書で説明される方法および論理フローは、入力データに関して操作して出力を生成することによって機能を行うように1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって行うことができる。方法および論理フローはまた、専用の論理回路機構、たとえばFPGAもしくはASICによって、あるいは専用の論理回路機構と1つまたは複数のプログラムされたコンピュータとの組合せによって行うことができる。
【００７２】
コンピュータプログラムの実行に適しているコンピュータは、汎用もしくは専用のマイクロプロセッサまたはその両方、あるいは他の任意の種類の中央処理ユニットに基づくことができる。概して、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受け取ることになる。コンピュータの必須要素は、命令を行う、または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、専用の論理回路機構によって補完可能、またはその中に組込み可能である。概して、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば磁気、光磁気ディスク、もしくは光ディスクも含み、またはそれらに動作可能に結合されて、それらからデータを受信する、もしくはそれらにデータを転送する、またはその両方を行うことになる。しかしながら、コンピュータは、そのようなデバイスを必ずしも有する必要はない。その上、コンピュータは、別のデバイス、たとえばモバイル電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオもしくはビデオプレイヤ、ゲームコンソール、全地球測位システム(GPS)受信機、または携帯型記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブの中に埋め込むことができるが、これらはほんの一例にすぎない。
【００７３】
コンピュータプログラムの命令およびデータを記憶するのに適しているコンピュータ可読媒体は、例として半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば内蔵ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD-ROMおよびDVD-ROMディスクを含めるすべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。
【００７４】
ユーザとの対話を実現するために、本明細書に記載の主題の実施形態は、ユーザに情報を表示するための表示デバイス、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえばマウスまたはトラックボールを有するコンピュータにおいて実装され得る。他の種類のデバイスを使用して、同様にユーザとの対話を実現することもでき、たとえば、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚の入力を含める任意の形態で受け取ることができる。加えて、コンピュータは、ユーザが使用しているデバイスとの間で文書を送受信することによって、たとえば、ウェブブラウザから受信した要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、テキストメッセージまたは他の形態のメッセージを個人用デバイス、たとえば、メッセージングアプリケーションを実行しているスマートフォンに送信し、その代わりにユーザから応答メッセージを受け取ることによってユーザと対話することもできる。
【００７５】
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習の訓練または成果の共通の計算集約型の部分、すなわち推論、作業負荷を処理するための専用ハードウェアアクセラレータユニットも含むことができる。
【００７６】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装され、展開され得る。
【００７７】
本明細書に説明の主題の実施形態は、バックエンドコンポーネント、たとえばデータサーバを含む、またはミドルウェアコンポーネント、たとえばアプリケーションサーバを含む、またはフロントエンドコンポーネント、たとえばクライアントコンピュータを含む、コンピューティングシステムにおいて実装可能であり、このクライアントコンピュータは、グラフィカルユーザインタフェース、ウェブブラウザ、またはappを有し、これらを通じて、ユーザは、本明細書に説明の主題の実装形態、あるいはそのような1つまたは複数のバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せと対話することができる。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(LAN)および広域ネットワーク(WAN)、たとえばInternetが含まれる。
【００７８】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは、一般に互いに離れており、通常は通信ネットワークを介して対話する。クライアントとサーバの関係は、コンピュータプログラムが、個別のコンピュータにおいて動作し、互いにクライアント/サーバの関係を有することによって生じる。いくつかの実施形態では、サーバは、データ、たとえば、HTMLページをユーザデバイスに送信し、その目的は、たとえば、データをクライアントとして機能するデバイスに表示し、デバイスと対話するユーザからユーザ入力を受け取ることである。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果は、デバイスから送られてサーバで受け取ることができる。
【００７９】
本明細書は多くの具体的な実装詳細を含んでいるが、これらは、いかなる発明の範囲または主張され得ることの範囲における限定として解釈すべきではなく、むしろ特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈すべきである。別々の実施形態の文脈で本明細書に説明されているある種の特徴はまた、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で説明されている様々な特徴はまた、別々にまたは任意の適切な部分的組合せで複数の実施形態で実装することができる。その上、特徴については、ある種の組合せで機能すると上述し、さらに最初はそのように主張することもできるが、いくつかの場合には、主張した組合せからの1つまたは複数の特徴がこの組合せから削除されてもよく、主張した組合せは、部分的組合せ、または部分的組合せの変形形態を対象としてもよい。
【００８０】
同様に、動作は特定の順序で図面に描かれ、特許請求の範囲に列挙されているが、このことは、そのような動作が、示された特定の順序でまたは順番で行われること、または例示したすべての動作が行われることが望ましい結果を達成するのに必要であると理解すべきではない。ある種の状況では、マルチタスキングおよび並列処理が有利である場合もある。その上、上述の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離を必要としていると理解すべきではなく、概して、説明したプログラムコンポーネントおよびシステムが、単一のソフトウェア製品に一緒に集積化されても、または複数のソフトウェア製品の中にパッケージ化されていてもよいことを理解すべきである。
【００８１】
主題の具体的な実施形態について説明してきた。他の実施形態は、添付の特許請求の範囲内にある。たとえば、特許請求の範囲に列挙された行為は、異なる順序で実行してもよく、なおも望ましい結果を達成することができる。1つの例として、付属の図面に示された方法は、望ましい結果を達成するために、示された特定の順序または順番を必ずしも必要とはなしない。いくつかの場合では、マルチタスキングおよび並列処理が有利である場合もある。
【符号の説明】
【００８２】
100  ニューラルネットワークシステム
102  入力画像
104  入力サブネットワーク
106  開始モジュール
108  中間モジュール
110  最終モジュール
112  出力サブネットワーク
114  分類出力
116  初期出力
118  開始出力
120  中間出力
122  分離可能な畳み込み出力
150  分離可能な畳み込みサブネットワーク
200  開始モジュール
202  開始入力
204  分離可能な畳み込み層
206  ReLU活性化層
208  分離可能な畳み込み層
210  最大プーリング層
212  連結層
214  開始出力
216  第1のパススルー畳み込み層
218  第1のパススルー出力
220  第1のスタック
222  第1のスタック出力
224  最大プーリング済み出力
300  中間モジュール
302  中間入力
304  ReLU活性化層
306  分離可能な畳み込み層
308  ReLU活性化層
310  分離可能な畳み込み層
312  ReLU活性化層
314  分離可能な畳み込み層
316  連結層
318  中間モジュール出力
320  第2のスタック
322  第2のパススルー畳み込み層
324  第2のパススルー出力
326  第2のスタック出力
400  最終モジュール
402  最終入力
404  ReLU活性化層
406  分離可能な畳み込み層
408  ReLU活性化層
410  分離可能な畳み込み層
412  最大プーリング層
414  連結層
416  分離可能な畳み込みニューラルネットワーク層
418  ReLU活性化層
420  第3のスタック
422  分離可能な畳み込みニューラルネットワーク層
424  ReLU活性化層
426  平均プーリング層
428  最終出力
430  第4のスタック
432  第3のパススルー畳み込み層
434  第3のパススルー出力
436  第3のスタック出力
438  最大プーリング済み出力
440  連結済み出力
442  第4のスタック出力
500  方法
【図１】
2019535084.tif 000003
【図２】
2019535084.tif 000004
【図３】
2019535084.tif 000005
【図４】
2019535084.tif 000006
【図５】
2019535084.tif 000007
【手続補正書】
【提出日】令和1年6月3日(2019.6.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のコンピュータによって実装されたニューラルネットワークシステムであって、入力画像を受け取り、前記入力画像のネットワーク出力を生成するように構成され、
分離可能な畳み込みサブネットワークを含み、前記分離可能な畳み込みサブネットワークが、順々にスタック状に配置された複数の分離可能な畳み込みニューラルネットワーク層を含み、各分離可能な畳み込みニューラルネットワーク層が、
前記分離可能な畳み込みニューラルネットワーク層への入力の処理中、深さ方向の畳み込みと点方向の畳み込みの両方を別々に適用して、層出力を生成するように構成され、
前記深さ方向の畳み込みが、前記入力の各チャネルに独立に適用され、前記点方向の畳み込みが、1×1畳み込みを含む、ニューラルネットワークシステム。
【請求項２】
前記分離可能な畳み込みサブネットワークによって生成された分離可能な畳み込み出力を受け取り、前記分離可能な畳み込み出力を処理して、前記入力画像の前記ネットワーク出力を生成するように構成された出力サブネットワーク
をさらに含む、請求項1に記載のニューラルネットワークシステム。
【請求項３】
前記入力画像を受け取り、前記入力画像を処理して、初期出力を生成するように構成された入力サブネットワーク
をさらに含む、請求項1または2に記載のニューラルネットワークシステム。
【請求項４】
前記入力サブネットワークが、1つまたは複数の畳み込みニューラルネットワーク層を含む、請求項3に記載のニューラルネットワークシステム。
【請求項５】
前記分離可能な畳み込みサブネットワークが、1つまたは複数の開始モジュールを含み、前記開始モジュールが、前記初期出力を受け取り、前記初期出力をまとめて処理して、開始出力を生成するように構成されている、請求項3または4に記載のニューラルネットワークシステム。
【請求項６】
各開始モジュールが、
前記開始モジュールのモジュール入力を処理して、第1のパススルー出力を生成するように構成された個別の第1のパススルー畳み込み層と、
分離可能な畳み込みニューラルネットワーク層の個別の第1のスタックであって、前記第1のスタックにおける前記層が、前記モジュール入力をまとめて処理して、第1のスタック出力を生成するように構成されている、個別の第1のスタックと、
前記第1のスタック出力に関して最大プーリングを行って、最大プーリング済み出力を生成するように構成された個別の最大プーリング層と、
前記第1のパススルー出力および前記最大プーリング済み出力を連結して、前記開始モジュールの開始モジュール出力を生成するように構成された個別の第1の連結層と
を含む、請求項5に記載のニューラルネットワークシステム。
【請求項７】
前記分離可能な畳み込みサブネットワークが、3つの開始モジュールを含む、請求項5または6に記載のニューラルネットワークシステム。
【請求項８】
前記第1のパススルー畳み込み層が、1×1畳み込み層である、請求項6に記載のニューラルネットワークシステム。
【請求項９】
前記第1のスタックにおける前記分離可能な畳み込みニューラルネットワーク層が、整流化線形ユニット活性化層によって分離される、請求項6または8に記載のニューラルネットワークシステム。
【請求項１０】
前記第1のスタックにおける前記分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く、請求項6、8、および9のいずれか一項に記載のニューラルネットワークシステム。
【請求項１１】
前記分離可能な畳み込みサブネットワークが、1つまたは複数の中間モジュールを含み、前記中間モジュールが、前記開始出力を受け取り、前記開始出力をまとめて処理して、中間出力を生成するように構成されている、請求項5から10のいずれか一項に記載のニューラルネットワークシステム。
【請求項１２】
各中間モジュールが、
前記中間モジュールのモジュール入力を処理して、第2のパススルー出力を生成するように構成された個別の第2のパススルー畳み込み層と、
分離可能な畳み込みニューラルネットワーク層の個別の第2のスタックであって、前記第2のスタックにおける前記層が、前記モジュール入力をまとめて処理して、第2のスタック出力を生成するように構成されている、個別の第2のスタックと、
前記第2のパススルー出力および前記第2のスタック出力を連結して、前記中間モジュールの中間モジュール出力を生成するように構成されている、個別の第2の連結層と
を含む、請求項11に記載のニューラルネットワークシステム。
【請求項１３】
前記分離可能な畳み込みサブネットワークが、8つの中間モジュールを含む、請求項11または12に記載のニューラルネットワークシステム。
【請求項１４】
前記第2のパススルー畳み込み層が、1×1畳み込み層である、請求項12にまたは13に記載のニューラルネットワークシステム。
【請求項１５】
前記第2のスタックにおける各分離可能な畳み込みニューラルネットワーク層の前に、整流化線形ユニット活性化層が先行する、請求項12に記載のニューラルネットワークシステム。
【請求項１６】
前記第2のスタックにおける前記分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く、請求項12または15に記載のニューラルネットワークシステム。
【請求項１７】
前記分離可能な畳み込みサブネットワークが、最終モジュールを含み、前記最終モジュールが、前記中間出力を受け取り、前記中間出力を処理して、前記分離可能な畳み込みサブネットワークの分離可能な畳み込み出力を生成するように構成されている、請求項11から16のいずれか一項に記載のニューラルネットワークシステム。
【請求項１８】
前記最終モジュールが、
前記中間出力を処理して第3のパススルー出力を生成するように構成された第3のパススルー畳み込み層と、
分離可能な畳み込みニューラルネットワーク層の第3のスタックであって、前記第3のスタックにおける前記層が、前記中間出力をまとめて処理して、第3のスタック出力を生成するように構成されている、第3のスタックと、
前記第3のスタック出力に関して最大プーリングを行って、第3の最大プーリング済み出力を生成するように構成された第3の最大プーリング層と、
前記第3のパススルー出力および前記第3の最大プーリング済み出力を連結して、連結済み出力を生成するように構成された第3の連結層と
を含む、請求項17に記載のニューラルネットワークシステム。
【請求項１９】
前記第3のパススルー畳み込み層が、1×1畳み込み層である、請求項18に記載のニューラルネットワークシステム。
【請求項２０】
前記第3のスタックにおける各分離可能な畳み込みニューラルネットワーク層の前に、整流化線形ユニット活性化層が先行する、請求項18または19に記載のニューラルネットワークシステム。
【請求項２１】
前記第3のスタックにおける前記分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く、請求項18から20のいずれか一項に記載のニューラルネットワークシステム。
【請求項２２】
前記最終モジュールが、
分離可能な畳み込みニューラルネットワーク層の第4のスタックであって、前記第4のスタックにおける前記層が、前記連結済み出力をまとめて処理して、第4のスタック出力を生成するように構成されている、第4のスタックと、
前記第4のスタック出力に関して平均プーリングを行って、前記分離可能な畳み込み出力を生成するように構成された平均プーリング層と
をさらに含む、請求項18に記載のニューラルネットワークシステム。
【請求項２３】
前記第4のスタックにおける各分離可能な畳み込みニューラルネットワーク層の後に、整流化線形ユニット活性化層が続く、請求項22に記載のニューラルネットワークシステム。
【請求項２４】
前記第4のスタックにおける前記分離可能な畳み込みニューラルネットワーク層のうちの1つまたは複数の後に、バッチ正規化層が続く、請求項22または23に記載のニューラルネットワークシステム。
【請求項２５】
命令により符号化された1つまたは複数の記憶媒体であって、前記命令が、1つまたは複数のコンピュータによって実装されると、前記1つまたは複数のコンピュータに、請求項1から24のいずれか一項に記載の個別のニューラルネットワークシステムを実装させる、1つまたは複数の記憶媒体。
【請求項２６】
1つまたは複数のコンピュータにより実行される方法であって、
入力画像を受け取るステップと、
請求項1から24のいずれか一項に記載の個別のニューラルネットワークシステムを使用して前記入力画像を処理して、前記入力画像のネットワーク出力を生成するステップとを含む、方法。
【請求項２７】
前記ネットワーク出力、または前記ネットワーク出力から導出された出力をユーザに提示するように提供するステップ
をさらに含む、請求項26に記載の方法。
【国際調査報告】
2019535084.tif 000008
2019535084.tif 000009
2019535084.tif 000010