(57)【要約】  階層分岐深層畳み込みニューラルネットワーク（ＨＤ−ＣＮＮ）は、既存の畳み込みニューラルネットワーク（ＣＮＮ)技術を改善する。ＨＤ−ＣＮＮにおいては、容易に区別可能なクラスは、高次レイヤ粗いカテゴリＣＮＮ内に分類され、最も難しい分類は、低次レイヤ精密カテゴリでなされる。多項ロジスティック損失及び新規時間的スパーシティペナルティは、ＨＤ−ＣＮＮトレーニングに用いられることができる。多項ロジスティック損失及び時間的スパーシティペナルティの使用は、それぞれ、各分岐コンポーネントが、カテゴリの異なる部分集合を扱うようにさせる。【選択図】図５
2017538195.tif 000002
【特許請求の範囲】
【請求項１】
複数の精密カテゴリを有するカテゴリ化されたデータを含むデータセットにアクセスし、
精密カテゴリの前記数より少ない、粗いカテゴリの数を同定し、
各精密カテゴリについて、関連した粗いカテゴリを決定する、
ように構成された粗いカテゴリ同定モジュールと、
粗いカテゴリ間を区別するために、基礎の畳み込みニューラルネットワーク（ＣＮＮ）をトレーニングし、
前記粗いカテゴリと関連した前記精密カテゴリ間を区別するために、各粗いカテゴリについての精密ＣＮＮをトレーニングする、
ように構成された事前トレーニングモジュールと、
データを分類する要求を受信し、
前記基礎のＣＮＮを用いて、前記データの粗いカテゴリを決定し、
前記決定された粗いカテゴリについての前記精密ＣＮＮを用いて、前記データの精密カテゴリを決定し、
前記要求に応答して、前記データの前記精密カテゴリを送信する、
ように構成された分類モジュールと、
を備えるシステム。
【請求項２】
前記粗いカテゴリ同定モジュールは、
前記データセットをトレーニングセットと値セットとに分割し、
前記トレーニングセットを用いて、第１のＣＮＮモデルをトレーニングし、
前記値セットを用いて、前記第一のＣＮＮの混乱行列を生成する、
ように更に構成され、
各精密カテゴリについて、前記関連する粗いカテゴリを決定することは、前記混乱行列に、アフィニティプロパゲーションアルゴリズムを適用することを含む、請求項１に記載のシステム。
【請求項３】
前記粗いカテゴリ同定モジュールは、
ラプラス演算子固有マップを用いて、前記精密カテゴリについての、低次元特徴表現を得るように、更に構成される、請求項２に記載のシステム。
【請求項４】
前記トレーニングモジュールは、
前記トレーニングセットを用いて、第２のＣＮＮモデルをトレーニングし、
前記第２のＣＮＮから各粗いカテゴリについての前記精密ＣＮＮを生成し、
前記トレーニングセットの部分集合を用いて、各粗いカテゴリについての前記精密ＣＮＮをトレーニングすることであって、前記部分集合は、前記粗いカテゴリに関連しない精密カテゴリを有するデータを排除する、ことを行う、ことを含む動作を用いて、各粗いカテゴリについて、前記精密ＣＮＮをトレーニングする、ように構成される、請求項２に記載のシステム。
【請求項５】
前記事前トレーニングモジュールは、粗いカテゴリ間を区別するための前記ＣＮＮと、前記精密カテゴリ間を区別するために、前記ＣＮＮのそれぞれとを組み合わせ、階層深層ＣＮＮ（ＨＤ−ＣＮＮ）を形成するように更に構成され、
前記システムは、前記ＨＤ−ＣＮＮを精密チューニングするように構成された精密チューニングモジュールを更に含む、請求項１に記載のシステム。
【請求項６】
前記精密チューニングモジュールは、
学習因子によって、前記精密チューニングを開始することと、
前記学習因子を用いて、一連のトレーニングバッチにわたって、繰り返しにより、前記ＨＤ−ＣＮＮをトレーニングすることと、
各繰り返しの後、前記トレーニングバッチについてのトレーニング誤差を閾値と比較することと、
前記比較に基づいて、前記トレーニングバッチについての前記トレーニング誤差が、前記閾値より小さいことを判定することと、
前記トレーニングバッチについての前記トレーニング誤差が前記閾値より小さいことの判定に応答して、前記学習因子を改変することと、を含む動作を用いて、前記ＨＤ−ＣＮＮを精密チューニングするように構成される、請求項５に記載のシステム。
【請求項７】
前記精密チューニングモジュールは、
前記精密カテゴリ間を区別するために、前記ＣＮＮのそれぞれの評価において、時間的スパーシティ要素を適用する、ことを含む動作を用いて、前記ＨＤ−ＣＮＮを精密チューニングするように構成される、請求項５に記載のシステム。
【請求項８】
前記カテゴリ化されたデータを含む前記データセットは、カテゴリ化された画像を含む、請求項１に記載のシステム。
【請求項９】
複数の精密カテゴリを有するカテゴリ化されたデータを含むデータセットにアクセスすることと、
精密カテゴリの前記数より少ない、粗いカテゴリの数を同定することと、
各精密カテゴリについて、関連した粗いカテゴリを決定することと、
粗いカテゴリ間を区別するために、基礎の畳み込みニューラルネットワーク（ＣＮＮ）をトレーニングすることと、
前記粗いカテゴリに関連した前記精密カテゴリ間を区別するために、各粗いカテゴリについての精密ＣＮＮをトレーニングすることと、
データを分類するための要求を受信することと、
前記基礎のＣＮＮを用いて、前記データの粗いカテゴリを決定することと、
前記決定された粗いカテゴリについての前記精密ＣＮＮを用いて、前記データの精密カテゴリを決定することと、
前記要求に応答して、前記データの前記精密カテゴリを送信することと、を含むコンピュータ実装方法。
【請求項１０】
前記データセットを、トレーニングセットと値セットとに分割することと、
前記トレーニングセットを用いて、第１のＣＮＮモデルをトレーニングすることと、
前記値セットを用いて、前記第一のＣＮＮモデルの混乱行列を生成することと、を更に含み、
各精密カテゴリについて、前記関連した粗いカテゴリを決定することは、前記混乱行列に、アフィニティプロパゲーションアルゴリズムを適用することを含む、請求項９に記載の方法。
【請求項１１】
ラプラス演算子固有マップを用いて、前記精密カテゴリについての低次元特徴表現を取得すること、を更に含む、請求項１０に記載の方法。
【請求項１２】
各粗いカテゴリについての前記精密ＣＮＮの前記トレーニングは、
前記トレーニングセットを用いて、第２のＣＮＮモデルをトレーニングすることと、
前記第２のＣＮＮから、各粗いカテゴリについての前記精密ＣＮＮを生成することと、
前記トレーニングセットの部分集合を用いて、各粗いカテゴリについての前記精密ＣＮＮをトレーニングすることであって、前記部分集合は、前記粗いカテゴリに関連しない精密カテゴリを有するデータを排除する、トレーニングすることと、を含む、請求項１０に記載の方法。
【請求項１３】
前記基礎のＣＮＮを前記精密ＣＮＮのそれぞれと組み合わせ階層深層ＣＮＮ（ＨＤ−ＣＮＮ）を形成することと、
前記ＨＤ−ＣＮＮを精密チューニングすることと、を更に含む請求項９に記載の方法。
【請求項１４】
前記ＨＤ−ＣＮＮの前記精密チューニングは、
学習因子によって、前記精密チューニングを開始することと、
前記学習因子を用いて、一連のトレーニングバッチにわたって、繰り返しにより、前記ＨＤ−ＣＮＮをトレーニングすることと、
各繰り返しの後、前記トレーニングバッチについてのトレーニング誤差を閾値と比較することと、
前記比較に基づいて、前記トレーニングバッチについての前記トレーニング誤差が、前記閾値より小さいことを判定することと、
前記トレーニングバッチについての前記トレーニング誤差が、前記閾値より小さいことの判定に応答して、前記学習因子を改変することと、を含む、請求項１３に記載の方法。
【請求項１５】
前記精密チューニングモジュールによる、前記ＨＤ−ＣＮＮの前記精密チューニングは、
前記精密カテゴリ間を区別するために、前記ＣＮＮのそれぞれの評価において、時間的スパーシティ要素を適用する、ことを含む、請求項１３に記載の方法。
【請求項１６】
前記カテゴリ化されたデータを含む前記データセットは、カテゴリ化された画像を含む、請求項９に記載の方法。
【請求項１７】
その上に具現化された命令を有する非一時的マシン可読媒体であって、前記命令は、
複数の精密カテゴリを有するカテゴリ化されたデータを含むデータセットにアクセスすることと、
精密カテゴリの数より少ない、粗いカテゴリの数を同定することと、
各精密カテゴリについて、関連した粗いカテゴリを決定することと、
マシンのプロセッサによって実装される、粗いカテゴリ間を区別するための、基礎の畳み込みニューラルネットワーク（ＣＮＮ）をトレーニングすることと、
前記粗いカテゴリに関連した前記精密カテゴリ間を区別するために、各粗いカテゴリについての精密ＣＮＮをトレーニングすることと、
データを分類するための要求を受信することと、
前記基礎のＣＮＮを用いて、前記データの粗いカテゴリを決定することと、
前記決定された粗いカテゴリについての前記精密ＣＮＮを用いて、前記データの精密カテゴリを決定することと、
前記要求に応答して、前記データの前記精密カテゴリを送信することと、を含む動作を、マシン内のプロセッサによって実行可能である、マシン可読媒体。
【請求項１８】
請求項９〜１６のいずれか１項の方法を実行するために、マシンのプロセッサによって実行可能な命令を担持する、マシン可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
＜優先権主張＞
本出願は、２０１４年１０月２７日出願の、発明の名称“Hierarchical Deep Convolutional Neural Network For Image Classification,”の米国特許出願第６２／０６８，８８３号に対して優先権を主張する、２０１４年１２月２３日出願の、発明の名称“Hierarchical Deep Convolutional Neural Network For Image Classificationの、米国特許出願第１４／５８２，０５９号に対して優先権を主張し、夫々は、ここに、その全体が、参照によって組み込まれる。
【０００２】
＜技術分野＞
本明細書で開示の主題は、一般に、データを分類するための階層深層畳み込みニューラルネットワークの使用に関する。具体的には、本開示は、画像を分類するための階層深層畳み込みニューラルネットワークの生成及び使用に関するシステム及び方法を扱う。
【背景技術】
【０００３】
深層畳み込みニューラルネットワーク（ＣＮＮ）は、Ｎ個のクラスのデータ間を区別するＮウェイクラシファイアとして、トレーニングされる。ＣＮＮクラシファイアは、画像を分類し、対象を検出し、ポーズを予測し、顔を認識し、及び、他の分類タスクを実行するために用いられる。典型的には、ＣＮＮの構造（例えば、レイヤの数、レイヤの種類、レイヤ間の接続性など）は、設計者によって選択され、各レイヤのパラメータは、トレーニングによって決定される。
【０００４】
複数のクラシファイアは、平均することによって、組み合わせて用いられることができる。モデル平均においては、複数の個別のモデルが用いられる。各モデルは、カテゴリの全集合を分類することができ、それぞれは、独立にトレーニングされる。それらの予測の差の主なソースは、異なる初期化、グローバルトレーニングセットの異なる部分集合、などを含む。組み合わされたモデルの出力は、個別のモデルの平均出力である。
【図面の簡単な説明】
【０００５】
幾つかの実施形態は、例示として、限定的でなく、添付の図面において、図示される。
【０００６】
【図１】幾つかの例示的実施形態による、画像分類用の階層深層ＣＮＮを生成し、用いるのに適したネットワーク環境を図示するネットワーク図である。
【図２】幾つかの例示的実施形態による、画像分類に適した階層深層ＣＮＮサーバのコンポーネントを図示するブロック図である。
【図３】幾つかの例示的実施形態による、階層深層ＣＮＮ技術を用いた画像分類に適したデバイスのコンポーネントを図示するブロック図である。
【図４】幾つかの例示的実施形態による、分類された画像を図示するグループ図である。
【図５】幾つかの例示的実施形態による、画像の精密なカテゴリを同定するように構成されたサーバのコンポーネント間の関係を図示するブロック図である。
【図６】幾つかの例示的実施形態による、粗いカテゴリを同定するプロセスを実行するときのサーバの動作を図示するフローチャートである。
【図７】幾つかの例示的実施形態による、画像を分類するために階層深層ＣＮＮを生成するプロセスを実行するときのサーバの動作を図示するフローチャートである。
【図８】幾つかの例示的実施形態による、マシン上にインストールされることができるソフトウェアアーキテクチャの例を図示するブロック図である。
【図９】例示的実施形態による、本明細書で開示する１以上の方法をマシンに実行させるために命令の集合が実行されることができるコンピュータシステムの形態のマシンの図的表現を図示する。
【発明を実施するための形態】
【０００７】
例示的方法とシステムは、画像分類用の階層深層ＣＮＮに向けられる。例は、単に可能な変形例を代表するのみである。明示的に別様に述べられない限り、コンポーネント及び機能は任意であり、組み合わせられたり、分割されたりすることができ、動作は、そのシーケンスを変えることができ、もしくは、組み合わせられ、もしくは、分割されることができる。以下の記述においては、説明の目的上、多くの具体的な詳細が、例示的実施形態の完全な理解を提供するために説明される。しかし、本主題は、これらの具体的な詳細がなくても、実施可能であることは、当業者には明らかであろう。
【０００８】
階層深層ＣＮＮ（ＨＤ−ＣＮＮ）は、粗い精密分類戦略を採用し、モジュール型の設計原理を採用する。任意の与えられたクラスラベルに対して、容易なクラスの集合と、混乱するクラスの集合を規定することが可能である。従って、初期の粗いクラシファイアＣＮＮは，相互に容易に分離可能なクラスを分離することができる。後続して、難しいクラスは、混乱するクラスのみに注力する下流の精密ＣＮＮに渡される。幾つかの例示的実施形態においては、ＨＤ−ＣＮＮは、標準的な深層ＣＮＮモデルよりも分類性能を改善する。ＣＮＮを用いるときのように、ＨＤ−ＣＮＮの構造（例えば、各コンポーネントＣＮＮの構造、精密クラスの数、など）は、設計者によって決定されることができ、各ＣＮＮの各レイヤのパラメータは、トレーニングを介して決定されることができる。
【０００９】
ＨＤ−ＣＮＮを予めトレーニングすることは、はじめからＨＤ−ＣＮＮをトレーニングすることよりも利益を与えることができる。例えば、標準的深層ＣＮＮモデルに比較して、ＨＤ−ＣＮＮは、Ｃ’独立分岐深層レイヤと共に、共有分岐浅層レイヤ由来の更なる自由パラメータを有する。これは、標準的ＣＮＮに比較して、ＨＤ−ＣＮＮ内で、自由パラメータの数を大きく増加させるだろう。従って、同量のトレーニングデータが用いられる場合、ＨＤ−ＣＮＮにおいては、オーバフィッティングがより起こり易い。予めトレーニングすることは、不十分なトレーニングデータの問題を解決する助けとなることができる。
【００１０】
予めトレーニングすることの他の潜在的な利点は、粗いカテゴリの良く選択されたものは、容易に混乱する精密なカテゴリの整合性のある部分集合に集中するために、分岐コンポーネントをトレーニングするために有効であろうことである。例えば、分岐コンポーネント１は、オレンジとりんごを見分けるのに優れており、分岐コンポーネント２は、電車とバスを見分けることにより能力を有する。従って、粗いカテゴリの集合は、どの粗いカテゴリコンポーネントが、分類に関連するかを同定される。
【００１１】
幾つかのトレーニングデータセットは、粗いカテゴリについての情報と精密なカテゴリと粗いカテゴリ間の関係を含む。しかし、多くのトレーニングデータセットは、そうではない。これらのトレーニングデータセットは、単に、データセット内の各アイテムに対する精密なカテゴリを提供するのみで、粗いカテゴリを同定することはしない。従って、精密なカテゴリを粗いカテゴリに分割する手順は、図６を参照して、以下に記述される。
【００１２】
図１は、幾つかの例示的実施形態による、画像分類用の階層深層ＣＮＮを生成し、用いるのに適したネットワーク環境１００を図示するネットワーク図である。ネットワーク環境１００は、ｅ−コマースサーバ１２０及び１４０、ＨＤ−ＣＮＮサーバ１３０、ならびにデバイス１５０Ａ、１５０Ｂ、及び１５０Ｃを含み、すべて、ネットワーク１７０を介して相互に通信可能なように結合される。デバイス１５０Ａ、１５０Ｂ、及び１５０Ｃは、集合的に「デバイス１５０」と呼ばれるか、一般的に「デバイス１５０」と呼ばれることができる。ｅ−コマースサーバ１２０及び１４０ならびにＨＤ−ＣＮＮサーバ１３０は、ネットワークベースのシステム１１０の一部とすることができる。あるいは、デバイス１５０は、直接に、又は、ｅ−コマースサーバ１２０もしくは１４０に接続するために用いられるネットワーク１７０とは異なるローカルネットワークを介して、ＨＤ−ＣＮＮサーバ１３０に接続されることができる。ｅ−コマースサーバ１２０及び１４０、ＨＤ−ＣＮＮサーバ１３０、ならびにデバイス１５０は、それぞれ、図８〜９を参照して以下に記述されるように、全体的に、又は、部分的に、コンピュータシステムに実装されることができる。
【００１３】
ｅ−コマースサーバ１２０及び１４０は、ネットワーク１７０を介して、他のマシン（例えば、デバイス１５０）に電子商取引アプリケーションを提供する。ｅ−コマースサーバ１２０及び１４０は、また、ＨＤ−ＣＮＮサーバ１３０に直接接続され、又は、これと一体化されることができる。幾つかの例示的実施形態においては、あるｅ−コマースサーバ１２０とＨＤ−ＣＮＮサーバ１３０は、ネットワークベースのシステム１１０の一部であるが、他のｅ−コマースサーバ（例えば、ｅ−コマースサーバ１４０）は、ネットワークベースのシステム１１０から分離される。電子商取引アプリケーションは、ユーザが、相互に直接アイテムを売買する、電子商取引アプリケーションプロバイダと売買する、もしくは、その両方を行う方法を提供することができる。
【００１４】
ＨＤ−ＣＮＮサーバ１３０は、画像を分類するためにＨＤ−ＣＮＮを生成し、画像を分類するためにＨＤ−ＣＮＮを用い、又は、その両方を行う。例えば、ＨＤ−ＣＮＮサーバ１３０は、トレーニングセットに基づいて、画像を分類するためにＨＤ−ＣＮＮを生成することができ、又は、既存のＨＤ−ＣＮＮは、ＨＤ−ＣＮＮサーバ１３０にロードされることができる。ＨＤ−ＣＮＮサーバ１３０は、また、画像に対する精密なカテゴリを提供することによって、画像の分類のための要求に対し応答することができる。ＨＤ−ＣＮＮサーバ１３０は、ネットワーク１７０もしくは他のネットワークを介して、他のマシン（例えば、ｅ−コマースサーバ１２０及び１４０もしくはデバイス１５０）に、データを提供することができる。ＨＤ−ＣＮＮサーバ１３０は、ネットワーク１７０又は他のネットワークを介して、他のマシン（例えば、ｅ−コマースサーバ１２０及び１４０もしくはデバイス１５０）からデータを受信することができる。幾つかの例示的実施形態においては、本明細書で記述するＨＤ−ＣＮＮサーバ１３０の機能は、パーソナルコンピュータ、タブレットコンピュータ、又は、スマートフォンなどのユーザデバイス上で実行される。
【００１５】
図１に、同様に示されているのは、ユーザ１６０である。ユーザ１６０は、人間のユーザ（例えば、人間）、マシンユーザ（例えば、デバイス１５０及びＨＤ−ＣＮＮサーバ１３０と相互作用するように、ソフトウェアプログラムによって構成されるコンピュータ）、または、それらの任意の適切な組み合わせ（例えば、マシンによって支援された人間、もしくは人間によって監視されたマシン）とすることができる。ユーザ１６０は、ネットワーク環境１００の一部ではないが、デバイス１５０と関連し、デバイス１５０のユーザとすることができる。例えば、デバイス１５０は、センサ、デスクトップコンピュータ、車載コンピュータ、タブレットコンピュータ、ナビゲーションデバイス、ポータブルメディアデバイス、もしくは、ユーザ１６０に属するスマートフォンなどとすることができる。
【００１６】
幾つかの例示的実施形態においては、ＨＤ−ＣＮＮサーバ１３０は、ユーザが興味のあるアイテムに関するデータを受信する。例えば、デバイス１５０Ａに取り付けられたカメラは、ユーザ１６０が売りたいアイテムの画像を撮ることができ、ＨＤ−ＣＮＮサーバ１３０に、ネットワーク１７０を介して画像を送信することができる。ＨＤ−ＣＮＮサーバ１３０は、画像に基づいて、アイテムを分類する。カテゴリは、ｅ−コマースサーバ１２０もしくは１４０へ、デバイス１５０Ａへ、または、それらの任意の組み合わせへ送られることができる。カテゴリは、販売用アイテムのリストを生成するのを支援するために、ｅ−コマースサーバ１２０又は１４０によって用いられることができる。同様に、画像は、ユーザ１６０に興味のあるアイテムのものとすることができ、カテゴリは、ユーザ１６０に示すために、アイテムのリストを選択するのを支援するために、ｅ−コマースサーバ１２０又は１４０によって用いられることができる。
【００１７】
図１に示されるマシン、データベース、又は、デバイスの任意のものは、そのマシン、データベース、又はデバイスに対して、本明細書で記述する機能を実行するために、ソフトウェアによって、専用コンピュータに改変される（例えば、構成される、又は、プログラムされる）汎用コンピュータ内に実装されることができる。例えば、本明細書で記述される方法の任意の１以上を実装することができるコンピュータシステムが、図８〜９を参照して以下に議論される。本明細書で用いられるように、「データベース」は、データストレージリソースであり、テキストファイル、テーブル、スプレッドシート、リレーショナルデータベース（例えば、オブジェクトリレーショナルデータベース）、トリプルストア、階層データストア、又は、それらの任意の適切な組み合わせとして、構造化されるデータを格納することができる。更に、図１に図示される、マシン、データベース、又はデバイスの任意の２以上は、単一のマシンに組み合わせられることが出来、任意の単一のマシン、データベース、又はデバイスに対して、本明細書で記述する機能は、複数のマシン、データベース、又はデバイス間で、分割されることができる。
【００１８】
ネットワーク１７０は、マシン、データベース、及びデバイス（例えば、ＨＤ−ＣＮＮサーバ１３０及びデバイス１５０）間の通信を可能にする任意のネットワークとすることができる。従って、ネットワーク１７０は、有線ネットワーク、無線ネットワーク（例えば、モバイル、もしくは携帯電話ネットワーク）、又は、それらの任意の適切な組み合わせとすることができる。ネットワーク１７０は、プライベートネットワーク、公衆ネットワーク（例えば、インターネット）、又はそれらの任意の適切な組み合わせを構成する１以上の部分を含むことができる。
【００１９】
図２は、幾つかの例示的実施形態による、ＨＤ−ＣＮＮサーバ１３０のコンポーネントを図示したブロック図である。ＨＤ−ＣＮＮサーバ１３０は、通信モジュール２１０、粗いカテゴリ同定モジュール２２０、事前トレーニングモジュール２３０、精密チューニングモジュール２４０、分類モジュール２５０、及び、ストレージモジュール２６０を含んでいるものとして示されており、すべては、相互に（例えば、バス、共有メモリ、又は、スイッチを介して）通信するように構成されている。ここに記述するモジュールの任意の１以上のものは、ハードウェア（例えば、マシンのプロセッサ）を用いて、実装されることができる。更に、これらのモジュールの任意の２以上は、単一のモジュールに組み合わせられることができ、単一のモジュールに対してここに記述される機能は、複数のモジュールで分割されることができる。更に、様々な例示的実施形態によると、単一のマシン、データベース、又はデバイス内に実装されるものとしてここに記述されるモジュールは、複数のマシン、データベース、又はデバイスに渡って分散されることができる。
【００２０】
通信モジュール２１０は、データを送受信するように構成される。例えば、通信モジュール２１０は、ネットワーク１７０を介して画像データを受信し、受信したデータを分類モジュール２５０に送ることができる。他の例として、分類モジュール２５０は、アイテムのカテゴリを同定することができ、アイテムのカテゴリは、ネットワーク１７０を介して、ｅ−コマースサーバ１２０へ、通信モジュール２１０によって送信されることができる。
【００２１】
粗いカテゴリ同定モジュール２２０は、与えられたデータセットについて、粗いカテゴリを同定するように構成される。粗いカテゴリ同定モジュール２２０は、関連する精密カテゴリを決定し、それらを、粗いカテゴリにグループ化する。例えば、用意されたデータセットは、Ｃ個の精密カテゴリを有することができ、ＨＤ−ＣＮＮ設計者は、望ましい粗いカテゴリの数、Ｃ’を決定することができる。粗いカテゴリ同定モジュール２２０は、Ｃ個の精密カテゴリのＣ’個の粗いカテゴリへのマッピングを同定する。精密なカテゴリを粗いカテゴリにグループ化することは、以下に記述する図６のプロセス６００を用いて実行されることができる。
【００２２】
事前トレーニングモジュール２３０と精密チューニングモジュール２４０は、ＨＤ−ＣＮＮのパラメータを決定するように構成される。事前トレーニングモジュール２３０は、粗いカテゴリＣＮＮと精密カテゴリＣＮＮを事前トレーニングし、精密カテゴリＣＮＮ間のオーバラップを減少する。精密チューニングモジュール２４０は、事前トレーニングが完了した後、ＨＤ−ＣＮＮに更なる調整を提供する。事前トレーニングと精密チューニングは、以下に記述される、図７のプロセス７００を用いて実行されることができる。
【００２３】
分類モジュール２５０は、画像データを受信し、処理するように構成される。画像データは、二次元画像、連続ビデオストリームからのフレーム、三次元画像、奥行き画像、赤外画像、両眼画像、又はそれらの任意の適切な組み合わせとすることができる。例えば、画像は、カメラから受信されることができる。説明のため、カメラは、写真を撮り、それを、分類モジュール２５０に送ることができる。分類モジュール２５０は、ＨＤ−ＣＮＮを用いることによって（例えば、粗いカテゴリＣＮＮを用いて、粗いカテゴリ又は粗いカテゴリの重みを決定し、１以上の精密カテゴリＣＮＮを用いて、精密カテゴリを決定することによって）、画像の精密カテゴリを決定する。ＨＤ−ＣＮＮは、事前トレーニングモジュール２３０、精密チューニングモジュール２４０、又は、その両方を用いて、生成されたものであってもよい。あるいは、ＨＤ−ＣＮＮは、外部ソースから提供されたものであってもよい。
【００２４】
ストレージモジュール２６０は、粗いカテゴリ同定モジュール２２０、事前トレーニングモジュール２３０、精密チューニングモジュール２４０、及び、分類モジュール２５０によって生成され、用いられるデータを格納し、検索するように構成される。例えば、事前トレーニングモジュール２３０によって生成されたＨＤ−ＣＮＮは、精密チューニングモジュール２４０による検索のため、ストレージモジュール２６０によって格納されることができる。分類モジュール２５０によって生成される、画像の分類に関する情報は、また、ストレージモジュール２６０によって格納されることができる。ｅ−コマースサーバ１２０又は１４０は、ストレージモジュール２６０によってストレージから検索され、通信モジュール２１０を用いて、ネットワーク１７０を介して送信されることができる、画像に対して（例えば、画像識別子を提供することによって）カテゴリを要求することができる。
【００２５】
図３は、幾つかの例示的実施形態による、デバイス１５０のコンポーネントを図示するブロック図である。デバイス１５０は、入力モジュール３１０、カメラモジュール３２０、及び通信モジュール３３０を含んでいるものとして示され、すべては、相互に（バス、共有メモリ、又は、スイッチを介して）通信するように構成される。ここに記述されるモジュールの任意の１以上のものは、ハードウェア（例えば、マシンのプロセッサ）を用いて、実装されることができる。更に、これらのモジュールの任意の２以上は、単一のモジュールに組み合わせられることができ、単一のモジュールに対してここに記述される機能は、複数のモジュール間で分割されることができる。更に、様々な例示的実施形態によると、単一のマシン、データベース、又は、デバイス内に実装されるものとして、ここに記述されるモジュールは、複数のマシン、データベース、又は、デバイス間で分散されることができる。
【００２６】
入力モジュール３１０は、ユーザインタフェースを介して、ユーザからの入力を受信するように構成される。例えば、ユーザは、彼等のユーザ名、及びパスワードを入力モジュールに入力し、カメラを構成し、リスト、もしくは、アイテム検索、又は、それらの任意の適切な組み合わせの基礎として使用する画像を選択することができる。
【００２７】
カメラモジュール３２０は、画像データを捕捉するように構成される。例えば、画像は、カメラから受信されることができ、奥行き画像は、赤外カメラから受信されることができ、一組の画像は、両眼カメラから受信されることができる、など、である。
【００２８】
通信モジュール３３０は、入力モジュール３１０又はカメラモジュール３２０によって受信されたデータを、ＨＤ−ＣＮＮサーバ１３０、ｅ−コマースサーバ１２０、又は、ｅ−コマースサーバ１４０へ通信するように構成される。例えば、入力モジュール３１０は、カメラモジュール３２０で撮られた画像の選択、及び、ユーザ（例えば、ユーザ１６０）が売りたいアイテムを画像が写していることの指示を受信することができる。通信モジュール３３０は、画像と指示をｅ−コマースサーバ１２０に送信することができる。ｅ−コマースサーバ１２０は、ＨＤ−ＣＮＮサーバ１３０に、画像の分類を要求するために画像を送信し、カテゴリに基づいて、リストテンプレートを生成し、通信モジュール３３０と入力モジュール３１０を介して、ユーザに、リストテンプレートが提示されるようにすることができる。
【００２９】
図４は、幾つかの例示的実施形態による、カテゴリ化された画像を図示するグループ図である。図４において、２７枚の画像が、りんご（グループ４１０）、オレンジ（グループ４２０）、又は、バス（グループ４３０）を写しているとして、正しく分類されている。グループ４１０〜４３０は、りんご、オレンジ、及び、バスとここでは呼ぶ。調べてみると、りんごのメンバーを、バスのメンバーから区別するのは比較的易しいが、オレンジのメンバーからりんごのメンバーを区別するのはより難しい。りんごとオレンジからの画像は、同様な形状、質感、及び、色を有することがあり、従って、あるものを他のものから正しく区別することはより難しい。対照的に、バスからの画像は、しばしば、りんごにおける画像とは異なる視覚的外観を有し、分類はより易しいと予測されることができる。事実、両カテゴリ、りんごとオレンジ、は、同一の粗いカテゴリに属するとして規定されることができ、一方、バスは、異なる粗いカテゴリに属する。例えば、ＣＩＦＡＲ１００データセット（Learning Multiple Layers of Features from Tiny Images, Krizhevsky(2009)で議論されている）においては、りんごとオレンジは、「フルーツ及び野菜」内のサブカテゴリであり、バスは、「乗り物１」のサブカテゴリである。ＣＩＦＡＲ１００データセットは、１００クラスの自然画像からなる。ＣＩＦＡＲ１００データセットには、５０，０００枚のトレーニング画像と、１０，０００枚のテスト画像がある。
【００３０】
図５は、幾つかの例示的実施形態による、分類モジュール２５０のコンポーネント間の関係を図示するブロック図である。単一の標準深層ＣＮＮは、ＨＤ−ＣＮＮの精密予測コンポーネントの組み立てブロックとして用いられることができる。図５に示されるように、粗いカテゴリＣＮＮ５２０は、粗いカテゴリに渡って確率を予測する。複数の分岐ＣＮＮ５４０〜５５０は、独立に加算される。幾つかの例示的実施形態においては、分岐ＣＮＮ５４０〜５５０は、分岐浅層レイヤ５３０を共有する。粗いカテゴリＣＮＮ５２０と複数の分岐ＣＮＮ５４０〜５５０は、それぞれ、入力画像を受信し、並列にその画像に対して動作する。各分岐ＣＮＮ５４０〜５５０は、入力画像を受信し、精密カテゴリの全集合に渡って確率分布を与えるが、各分岐ＣＮＮ５４０〜５５０の結果は、カテゴリの部分集合についてのみ正しい。分岐ＣＮＮ５４０〜５５０からの複数の全予測は、確率平均レイヤ５６０によって、線形的に組み合わせられ、対応する粗いカテゴリ確率によって重み付けられた、最終精密カテゴリ予測を形成する。
【００３１】
以下の記号が、以下の議論のために用いられる。データセットは、Ｎｔ 個のトレーニングサンプル{ｘｉ , ｙｉ}ｔであって、ｉが、１からＮｔ の範囲であるものと、Ｎｓ個のテストサンプル{ｘｉ， ｙｉ}ｔであって、ｉが１からＮｓであるものとを含む。ｘｉ及び ｙｉ は、それぞれ、画像データと画像ラベルを示す。画像ラベルは、画像の精密カテゴリに対応する。ｋが１からＣの範囲のものである場合、データセット{Ｓｋ}におけるＣ個の予め決められた精密カテゴリが存在する。データセットには、Ｃ’個の粗いカテゴリが存在する。
【００３２】
標準的深層ＣＮＮモデルと同様に、ＨＤ−ＣＮＮは、エンド・ツー・エンドの分類を達成する。標準的深層ＣＮＮモデルは、単純に単一のＣＮＮからなり、ＨＤ−ＣＮＮは、特に、単一の粗いカテゴリコンポーネントＢ（粗いカテゴリＣＮＮ５２０に対応する）、ｊが、１からＣ’の範囲で、複数の分岐精密カテゴリコンポーネント{Ｆｊ}（分岐ＣＮＮ５４０〜５５０に対応する）、及び、単一の確率平均レイヤ（確率平均レイヤ５６０に対応する）の３つの部分を主に含む。単一の粗いカテゴリＣＮＮ５２０は、入力として、生の画像ピクセルデータを受信し、粗いカテゴリに渡って確率分布を出力する。粗いカテゴリ確率は、分岐ＣＮＮ５４０〜５５０によってなされる全予測への重みを割り当てるために、確率平均レイヤ５６０によって用いられる。
【００３３】
図５は、また、分岐ＣＮＮ５４０〜５５０の集合を示し、それぞれは、精密カテゴリの全集合に渡って、予測を行う。幾つかの例示的実施形態においては、分岐ＣＮＮ５４０〜５５０は、浅層レイヤ５３０においてパラメータを共有するが、独立の深層レイヤを有する。浅層レイヤは、元の入力に最も近いＣＮＮのレイヤであり、深層レイヤは、最終出力により近いレイヤである。浅層レイヤにおいてパラメータを共有することは、以下の利点を提供することができる。第１に、浅層レイヤにおいては、各ＣＮＮは、全精密カテゴリを分類するのに有用な、根源的で低レベルの特徴（例えば、ぼんやりした形のもの、角）を抽出することができる。従って、浅層レイヤは、各分岐コンポーネントが、精密カテゴリの異なる集合に集中しているとしても、分岐コンポーネント間で共有されることができる。第２に、浅層レイヤにおいてパラメータを共有することは、ＨＤ−ＣＮＮに於けるパラメータの総数を大きく減少させ、ＨＤ−ＣＮＮモデルのトレーニングを成功させる支援となることができる。各分岐精密カテゴリコンポーネントが他のものから完全に独立してトレーニングされる場合、ＨＤ−ＣＮＮにおける自由パラメータの数は、粗いカテゴリの数に線形に比例するだろう。モデルでのパラメータが異常に多いことは、オーバフィッティングの可能性を高めるだろう。第３に、ＨＤ−ＣＮＮの計算コストとメモリ消費の双方も、また、浅層レイヤを共有することにより減少し、これは、ＨＤ−ＣＮＮを現実の用途に展開するために実用的な重要性のあるものである。
【００３４】
確率平均レイヤ５６０は、粗いカテゴリＣＮＮ５２０予測と共に、すべての分岐ＣＮＮ５４０〜５５０の予測を受信し、以下の式によって示されるように、画像ｉについての最終予測として、重み付け平均、ｐ(ｘｉ)を生成する。
【数１】
2017538195.tif 000003
この式においては、Ｂｉｊ は、粗いカテゴリＣＮＮ５２０によって予測されたとおりに、画像ｉに対する、粗いカテゴリｊの確率である。ｊ番目の分岐コンポーネントＦｊによってなされる画像ｉについての精密カテゴリ予測は、ｐｊ(ｘｉ)である。
【００３５】
粗いカテゴリＣＮＮ５２０と分岐ＣＮＮ５４０〜５５０の双方は、任意のエンド・ツー・エンドの深層ＣＮＮモデルとして実装されることができ、これは、入力として生の画像を取りこみ、出力として、カテゴリに渡り確率予測を返す。
【００３６】
精密カテゴリコンポーネントをトレーニングするための、多項ロジスティック損失関数（ｍｕｌｔｉｎｏｍｉａｌ  ｌｏｇｉｓｔｉｃ  ｌｏｓｓ  ｆｕｎｃｔｉｏｎ ）への時間的スパーシティペナルティ（ｔｅｍｐｏｒａｌ  ｓｐａｒｓｉｔｙ  ｐｅｎａｌｔｙ ）項の使用は、各分岐が精密カテゴリの部分集合に集中することを促進する。この時間的スパーシティペナルティ項を含む改変された損失関数は、以下の式によって示される。
【数２】
2017538195.tif 000004
【００３７】
この式においては、ｎは、トレーニングミニバッチのサイズであり、ｙｉ は、画像ｉのグランド・トルースラベル（ｇｒｏｕｎｄ  ｔｒｕｔｈ  ｌａｂｅｌ ）であり、λは、レギュラリゼーション定数（ｒｅｇｕｌａｒｉｚａｔｉｏｎ  ｃｏｎｓｔａｎｔ  ）である。幾つかの例示的実施形態においては、５の値は、λに用いられる。Ｂｉｊ は、粗いカテゴリＣＮＮ５２０によって予測されるように、画像ｉに対する粗いカテゴリｊの確率である。分岐ｊの目標時間的スパーシティ（ｔａｒｇｅｔ  ｔｅｍｐｏｒａｌ  ｓｐａｒｓｉｔｙ）は、ｔｊとして表現される。
【００３８】
分岐の初期化と共に、時間的スパーシティ項は、各分岐コンポーネントが、精密カテゴリの異なる部分集合を分類することに集中することを保証し、わずかな数の分岐が、粗いカテゴリ確率量の大半を受けないようにすることができる。
【００３９】
図６は、幾つかの例示的実施形態による、粗いカテゴリを同定するプロセス６００を実行する際のＨＤ−ＣＮＮサーバ１３０の動作を図示するフローチャートである。プロセス６００は、動作６１０、６２０、６３０、６４０、及び６５０を含む。例示としてのみであり、限定ではなく、動作６１０〜６５０は、モジュール２１０〜２６０によって実行されるものとして記述される。
【００４０】
動作６１０において、粗いカテゴリ同定モジュール２２０は、トレーニングサンプルの集合を、トレーニング集合と評価集合とに分割する。例えば、ｉが１からＮｔの範囲について、Ｎｔ 個のトレーニングサンプル{ｘｉ , ｙｉ}ｔからなるデータセットは、２つの部分、train_train 及び train_valに分割される。これは、３０％に対する７０％の分布など、train_train と train_valとの間のサンプルの望ましい分布を選択することによってなされることができる。分布が選択されたら、サンプルは、各集合について適切な比率でランダムに選択されることができる。深層ＣＮＮモデルは、標準トレーニング技術を用いて、事前トレーニングモジュール２３０によって、動作６２０のtrain_train に基づいて、トレーニングされる。例えば、バックプロパゲーショントレーニングアルゴリズムは、深層ＣＮＮモデルをトレーニングするための一選択肢である。
【００４１】
動作６３０において、粗いカテゴリ同定モジュール２２０は、 train_val に基づいて、混乱行列をプロットする。混乱行列は、Ｃ×Ｃのサイズである。この行列の列は、予測される精密カテゴリに対応し、この行列の行は、 train_val の実際の精密カテゴリに対応する。例えば、すべての予測が正しい場合、この行列の主対角におけるセルのみがゼロではないだろう。対照的に、すべての予測が間違っている場合、この行列の主対角のセルは、全てゼロであろう。
【００４２】
粗いカテゴリ同定モジュール２２０は、混乱行列の各要素を１から減算し、Ｄの対角要素をゼロにすることにより、距離行列、Ｄ、を生成する。距離行列は、Ｄと、Ｄの転置である、DT、との平均を取ることにより、対称にされる。これらの操作が行われた後、各要素Ｄｉｊは、カテゴリｉがカテゴリｊから区別される容易さを計測する。
【００４３】
動作６４０において、ｉが１からＣの範囲のとき、低次元特徴表現{ｆｉ}が、精密カテゴリについて得られる。例えば、ラプラス演算子固有マップ（Ｌａｐｌａｃｉａｎ  ｅｉｇｅｎｍａｐ）が、この目的のために使用されるだろう。低次元特徴表現は、低次元多様体上の局所近傍情報を保持し、精密カテゴリを粗いカテゴリにクラスタ化するために用いられる。例示的実施形態においては、ｋ個の最近接近傍は、隣接グラフを構成するために用いられる。例えば、３の値が、ｋに対して用いられることができる。隣接グラフの重みは、ヒートカーネル（ｈｅａｔ  ｋｅｒｎｅｌ）を用いて、（例えば、ｔ＝０．９５の幅パラメータで）設定される。幾つかの例示的実施形態において、{ｆｉ}の次元は、３である。
【００４４】
粗いカテゴリ同定モジュール２２０は、（動作６５０において）Ｃ個の精密カテゴリをＣ’個の粗いカテゴリにクラスタ化する。クラスタ化することは、アフィニティ・プロパゲーション（ａｆｆｉｎｉｔｙ  ｐｒｏｐａｇａｔｉｏｎ ）、ｋ−平均クラスタリング（ｋ−ｍｅａｎｓ  ｃｌｕｓｔｅｒｉｎｇ ）、又は、他のクラスタリングアルゴリズムを用いて実行されることができる。アフィニティ・プロパゲーションは、自動的に、粗いカテゴリの数を誘導することができ、他のクラスタリング方法よりも、よりサイズのバランスがとれたクラスタを導くことができる。バランスがとれたクラスタは、各分岐コンポーネントが、同様の数の精密カテゴリを扱い、従って、同様な作業負荷量を有することを保証するのに助けとなる。アフィニティ・プロパゲーションにおける減衰因子λは、結果として生じるクラスタの数に影響を与えうる。幾つかの例示的実施形態においては、λは、０．９８に設定される。クラスタリングの結果は、精密カテゴリｙから粗いカテゴリｙ’への写像Ｐ（ｙ）＝ｙ’である。
【００４５】
例えば、ＣＩＦＡＲ１００データセットの１００個のカテゴリは、データセットの５０，０００枚のトレーニング画像と１０，０００枚のテスト画像に基づいて、深層ＣＮＮモデルをトレーニングすることによって、粗いカテゴリに分割されることができる。粗いカテゴリの数は、入力として（例えば、４つの粗いカテゴリを選択することができる）提供されることができ、プロセス６００は、精密カテゴリを粗いカテゴリに分割するために用いられる。例示的実施形態においては、ＣＩＦＡＲ１００データセットの１００個のカテゴリは、以下の表に示されるように、４つの粗いカテゴリに分割される。
【表１】
2017538195.tif 000005
【００４６】
図７は、幾つかの例示的実施形態による、画像を分類するためのＨＤ−ＣＮＮを生成するプロセス７００を実行する際のＨＤ−ＣＮＮサーバ１３０の動作を図示するフローチャートである。プロセス７００は、動作７１０、７２０、７３０、７４０、７５０、及び７６０を含む。例示としてのみであって、限定ではなく、動作７１０〜７６０は、モジュール２１０〜２６０によって実行されるものとして、記述される。
【００４７】
動作７１０において、事前トレーニングモジュール２３０は、粗いカテゴリの集合について、粗いカテゴリＣＮＮをトレーニングする。例えば、粗いカテゴリの集合は、プロセス６００を用いて、同定されたものであってもよい。トレーニングデータセットの精密なカテゴリは、写像Ｐ（ｙ）＝ｙ’を用いて、粗いカテゴリと置換される。ある例示的実施形態においては、ｉを１〜Ｎｔ の範囲として、データセット{ｘｉ， ｙ’ｉ}は、標準的深層ＣＮＮモデルをトレーニングするために用いられる。トレーニングされたモデルは、ＨＤ−ＣＮＮ（例えば、粗いカテゴリＣＮＮ５２０）の粗いカテゴリコンポーネントとなる。
【００４８】
ある例示的実施形態においては、３つの畳み込みレイヤ、１つの完全に接続されたレイヤ、及び、１つのＳＯＦＴＭＡＸレイヤからなるネットワークが用いられる。各畳み込みレイヤにおいては、６４個のフィルタが存在する。調整された線形ユニット（ＲｅＬＵ）は、アクチベーションユニットとして用いられる。プーリングレイヤと応答正規化レイヤは、また、畳み込みレイヤの間で用いられる。完全な例示的アーキテクチャは、以下の例１テーブルに規定される。他の例示的アーキテクチャは、以下の例２テーブルに規定される。
【００４９】
2017538195.tif 000006
【００５０】
2017538195.tif 000007
【００５１】
上記テーブルにおいては、フィルタは、示されるように、複数の入力（例えば、ピクセル値）を用いる。例えば、５×５フィルタは、５×５グリッドの２５個のピクセルを見て、単一の値を決定する。５×５フィルタは、入力画像の各５×５グリッドを考慮する。したがって、６４個の５×５フィルタを有するレイヤは、各入力ピクセルに対し、６４個の出力を生成し、それらの値の夫々は、その入力ピクセルを中心とする５×５グリッドのピクセルに基づいている。ＭＡＸプールは、ピクセルの集合について、複数の入力を取り込み、単一の出力、それらの入力の最大値を提供する。例えば、３×３ＭＡＸプールレイヤは、各３×３ブロックのピクセルについて一つの値、それらの９個のピクセルの最大値を出力するだろう。平均プールは、ピクセルの集合について、複数の入力を取り込み、単一の出力、それらの入力の平均（例えば、平均）を提供する。正規化レイヤは、前段のレイヤから出力される値を正規化する。ｃｃｃｐレイヤは、ＣＮＮに非線形コンポーネントを提供する。ＳＯＦＴＭＡＸ関数は、多項ロジスティック回帰の非線形偏差を提供する正規化された指数関数である。幾つかの例示的実施形態においては、ＳＯＦＴＭＡＸ関数は、Ｋ次元のベクトル値を取り、Ｋ次元のベクトル値を出力し、出力ベクトルの要素が、合計１となり、０から１の範囲にあるようにする。例えば、以下の式は、入力ベクトルｚから出力ベクトルｙを生成するために用いられることができる：
【数３】
2017538195.tif 000008
【００５２】
事前トレーニングモジュール２３０は、また、動作７２０において、プロトタイプの精密カテゴリコンポーネントをトレーニングする。例えば、ｉを１〜Ｎｔ として、データセット{ｘｉ， ｙｉ}は、標準的深層ＣＮＮモデルをトレーニングするために用いられ、これは、プロトタイプの精密カテゴリコンポーネントとなる。ある例示的実施形態においては、ＣＩＦＡＲ１００データセットは、ＣＮＮをプロトタイプの精密カテゴリコンポーネントとして、トレーニングするために用いられる。
【００５３】
動作７３０において、ループは、Ｃ’個の精密カテゴリコンポーネントのそれぞれを処理するために開始される。したがって、動作７４０と７５０は、各精密カテゴリコンポーネントについて実行される。例えば、４つの粗いカテゴリが同定された場合、ループは、４つの精密カテゴリコンポーネントのそれぞれについて繰り返されるだろう。
【００５４】
事前トレーニング２３０は、動作７４０において、精密カテゴリコンポーネントについて、プロトタイプの精密カテゴリコンポーネントのコピーを作る。したがって、すべての精密カテゴリコンポーネントは、同一状態に初期化される。精密カテゴリコンポーネントは、更に、精密カテゴリコンポーネントの粗いカテゴリに対応するデータセットの一部についてトレーニングを行う。例えば、Ｐ(ｙｉ)を粗いカテゴリとして、データセット{ｘｉ， ｙｉ}の部分集合が用いられることができる。すべての精密カテゴリコンポーネントと粗いカテゴリコンポーネントがトレーニングされると、ＨＤ−ＣＮＮが構成される。
【００５５】
精密カテゴリコンポーネントに対するＣＮＮの浅層レイヤは、固定されたまま維持されることができ、一方、深層レイヤは、トレーニングの間、変化することが許される。例えば、上記した例１の構造を用いると、浅層レイヤ、ｃｏｎｖ１、ｐｏｏｌ１、ｎｏｒｍ１は、各精密カテゴリコンポーネントについて、同一に維持されることができるが、深層レイヤ、ｃｏｎｖ２、ｐｏｏｌ２、ｎｏｒｍ２、ｃｏｎｖ３、ｐｏｏｌ３、ｉｐ１及びｐｒｏｂは、各精密カテゴリコンポーネントのトレーニングの間、改変される。幾つかの例示的実施形態においては、浅層レイヤの構造は、固定されたまま維持されるが、浅層レイヤ内で用いられる値は、変化することが許される。上記した例２の構造について、浅層レイヤ、ｃｏｎｖ１、ｃｃｃｐ１、ｃｃｃｐ２、ｐｏｏｌ１、及び、ｃｏｎｖ２は、各精密カテゴリコンポーネントについて同一に維持されることができるが、深層レイヤｃｃｃｐ３、ｃｃｃｐ４、ｐｏｏｌ２、ｃｏｎｖ３、ｃｃｃｐ５、ｃｃｃｐ６、ｐｏｏｌ３、及びｐｒｏｂは、各精密カテゴリコンポーネントのトレーニングの間、改変される。
【００５６】
動作７６０において、精密チューニングモジュール２４０は、構成されたＨＤ−ＣＮＮを精密チューニングする。精密チューニングは、時間的スパーシティペナルティを有する多項ロジスティック損失関数を用いて実行されることができる。ｊを１〜Ｃ’の範囲として、目標時間的スパーシティ{ｔｊ}は、写像Ｐを用いて、規定されることができる。例えば、以下の式が用いられることができる。ここで、Ｓｋは、精密カテゴリｋからの画像の集合である。
【数４】
2017538195.tif 000009
【００５７】
精密チューニングのバッチサイズは、計算時間、繰り返しごとの学習の望ましい量に基づいて、選択されることができる。例えば、２５０のバッチサイズが用いられることができる。各バッチの後、トレーニング誤差が測定されることができる。トレーニング誤差の改善の速度が閾値より小さくなると、学習速度は、減少されることができる（例えば、１０％だけ、２の倍数で、又は、他の量で）。閾値は、学習速度が減少されたとき、改変されることができる。最小学習速度に達した後（例えば、学習速度が、元の値の５０％より小さい値まで減少されると）、所定の数のバッチが精密チューニングに用いられた後、又は、それらの任意の適切な組み合わせの後、精密チューニングプロセスは停止される。
【００５８】
様々な例示的実施形態によると、本明細書で記述した方法の１以上は、画像分類のためにＨＤ−ＣＮＮを生成することを促進することができる。更に、本明細書で記述した方法の１以上は、標準的深層ＣＮＮに対し、より高い成功率で、画像を分類することを促進することができる。更に、本明細書で記述した方法の１以上は、ユーザのためのＨＤ−ＣＮＮのトレーニングを、以前の方法に比べ、より速く、計算力の使用を少なくして、促進することができる。同様に、本明細書で記述した方法の１以上は、ＣＮＮを同一の解像品質にトレーニングするよりも少ないトレーニング例での解像品質で、ＨＤ−ＣＮＮのトレーニングを促進することができる。
【００５９】
これらの効果を総合的に考慮するとき、本明細書で記述した方法の１以上は、その他の場合、画像分類用のＨＤ−ＣＮＮを生成し、又は、用いるために含まれる、ある労力又はリソースの必要性を不要にすることができる。ユーザによる、興味の対象のアイテムを配列することに費やされる労力は、また、本明細書に記述される１以上の方法によって減少されることができる。例えば、画像から、ユーザの興味の対象となるアイテムのカテゴリを正確に同定することは、アイテムのリストを生成する、又は、購入するアイテムを見つけるためにユーザによって費やされる時間と労力の量を減少することができる。（例えば、ネットワーク環境１００内で）１以上のマシン、データベース、又は、デバイスによって用いられる計算リソースは、同様に減少されることができる。そのような計算リソースの例は、プロセッササイクル、ネットワークトラフィック、メモリ使用率、データストレージ容量、電力消費、及び、冷却能力を含む。
【００６０】
[ソフトウェアアーキテクチャ]
図８は、上記デバイスの任意の１以上にインストールされることができる、ソフトウェア８０２のアーキテクチャを図示するブロック図８００である。図８は、ソフトウェアアーキテクチャの非限定的な例に過ぎず、多くの他のアーキテクチャが、本明細書で記述した機能を促進するために、実装されることができることは理解されるだろう。ソフトウェア８０２は、プロセッサ９１０、メモリ９３０、及び入出力コンポーネント９５０を含む、図９のマシン９００などのハードウェアによって実装されることができる。この例示的アーキテクチャにおいては、ソフトウェア８０２は、各レイヤが特定の機能を提供することができる、レイヤのスタックとして概念化されることができる。例えば、ソフトウェア８０２は、オペレーティングシステム８０４、ライブラリ８０６、フレームワーク８０８、及び、アプリケーション８１０などのレイヤを含む。動作上、幾つかの実装によると、アプリケーション８１０は、ソフトウェアスタックを介して、アプリケーションプログラミングインタフェース（ＡＰＩ）コール８１２を呼び起こし、ＡＰＩコール８１２に応答して、メッセージ８１４を受信する。
【００６１】
様々な実装において、オペレーティングシステム８０４は、ハードウェアリソースを管理し、一般的なサービスを提供する。例えば、オペレーティングシステム８０４は、カーネル８２０、サービス８２２、及び、ドライバ８２４を含む。カーネル８２０は、幾つかの実装においては、ハードウェアと、他のソフトウェアレイヤとの間のアブストラクションレイヤとして機能する。例えば、カーネル８２０は、他の機能の中でも、メモリ管理、プロセッサ管理（例えば、スケジューリング）、コンポーネント管理、ネットワーキング、セキュリティ設定を提供する。サービス８２２は、他のソフトウェアレイヤに対し、他の一般的なサービスを提供することができる。ドライバ８２４は、基礎のハードウェアを制御し、又は、これをインタフェース接続することを請け負うことができる。例えば、ドライバ８２４は、ディスプレイドライバ、カメラドライバ、Ｂｌｕｅｔｏｏｔｈ（登録商標）ドライバ、フラッシュメモリドライバ、シリアル通信ドライバ（例えば、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）ドライバ）、Ｗｉ−Ｆｉ（登録商標）ドライバ、オーディオドライバ、電力管理ドライバ、などを含むことができる。
【００６２】
幾つかの実装においては、ライブラリ８０６は、アプリケーション８１０によって利用されることができる、低レベル共通インフラストラクチャを提供する。ライブラリ８０６は、メモリ割り当て機能、ストリング操作機能、数学機能などの機能を提供することができる、システムライブラリ８３０（例えば、Ｃ個の標準ライブラリ）を含むことができる。更に、ライブラリ８０６は、メディアライブラリ（例えば、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ−４  （ＭＰＥＧ４）、 Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （Ｈ．２６４又はＡＶＣ）、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  Ｌａｙｅｒ−３  （ＭＰ３）、  Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ  （ＡＡＣ）、  Ａｄａｐｔｉｖｅ  Ｍｕｌｔｉ−Ｒａｔｅ  （ＡＭＲ）ａｕｄｉｏ  ｃｏｄｅｃ、 Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＪＰＥＧ又はＪＰＧ）、Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ（ＰＮＧ）などの様々なメディアフォーマットの提示と操作をサポートするライブラリ）、グラフィックスライブラリ（例えば、ディスプレイ上のグラフィックコンテンツ内の二次元（２Ｄ）及び三次元（３Ｄ）にレンダリングするために用いられるＯｐｅｎＧＬ フレームワーク）、データベースライブラリ（例えば、様々なリレーショナルデータベース機能を提供するＳＱＬｉｔｅ ）、ウェブライブラリ（例えば、ウェブブラウジング機能を提供するＷｅｂＫｉｔ ）など、ＡＰＩライブラリ８３２を含むことができる。ライブラリ８０６は、また、多くの他のＡＰＩをアプリケーション８１０に提供するための広範な、様々の他のライブラリ８３４を含むことができる。
【００６３】
フレームワーク８０８は、幾つかの実装により、アプリケーション８１０によって利用されることができる、高レベルの一般的なインフラストラクチャを提供する。例えば、フレームワーク８０８は、様々なグラフィックユーザインタフェース（ＧＵＩ）機能、高レベルリソース管理、高レベル位置サービス、などを提供する。フレームワーク８０８は、アプリケーション８１０によって利用されることができる、他のＡＰＩの広範なスペクトルを提供することができ、アプリケーションの幾つかは、特定のオペレーティングシステム又はプラットフォームに固有とすることができる。
【００６４】
ある例示的実施形態においては、アプリケーション８１０は、ホームアプリケーション８５０、連絡アプリケーション８５２、ブラウザアプリケーション８５４、ブックリーダアプリケーション８５６、位置アプリケーション８５８、メディアアプリケーション８６０、メッセージングアプリケーション８６２、ゲームアプリケーション８６４、及び、第三者アプリケーション８６６などの他のアプリケーションの広範なものを含む。幾つかの実施形態によると、アプリケーション８１０は、プログラム内で規定される機能を実行するプログラムである。様々なプログラミング言語が、様々な方法で構成される１以上のアプリケーション８１０を生成するために用いられることができ、オブジェクト指向プログラミング言語（例えば、オブジェクト指向Ｃ，Ｊａｖａ、もしくは、Ｃ＋＋）又は、手続き型プログラミング言語（例えば、Ｃ又はアセンブリ言語）などである。特定の例においては、第三者アプリケーション８６６（例えば、特定のプラットフォームのベンダとは異なるエンティティによるＡｎｄｒｏｉｄ（商標）又はｉＯＳ（商標）ソフトウェア開発キット（ＳＤＫ）を用いて開発されるアプリケーション）は、ｉＯＳ（商標）、 Ａｎｄｒｏｉｄ（商標）、 Ｗｉｎｄｏｗｓ（登録商標） Ｐｈｏｎｅ又は他のモバイルオペレーティングシステムなどのモバイルオペレーティングシステム上で動作するモバイルソフトウェアとすることができる。この例においては、第三者アプリケーション８６６は、本明細書で記述される機能を促進するために、モバイルオペレーティングシステム８０４によって提供されるＡＰＩコール８１２を呼び起こすことができる。
【００６５】
[例示的マシンアーキテクチャ及びマシン可読媒体]
図９は、マシン可読媒体（例えば、マシン可読記憶媒体）から命令を読み取り、本明細書で議論した方法の任意の１以上を実行することができる、幾つかの例示的実施形態による、マシン９００のコンポーネントを図示するブロック図である。具体的には、図９は、本明細書で議論した方法の任意の１以上をマシン９００に実行させる命令９１６（例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、又は他の実行可能なコード）が実行され得るコンピュータシステムの例示的形態でのマシン９００の図的表現を示す。別の実施形態においては、マシン９００は、スタンドアロンデバイスとして動作し、又は、他のマシンに結合される（例えば、ネットワーク化される）ことができる。ネットワーク化された展開においては、マシン９００は、サーバ−クライアントネットワーク環境において、サーバマシン又はクライアントマシンの機能で、又は、ピア・ツー・ピア（もしくは、分散）ネットワーク環境においては、ピアマシンとして、動作することができる。マシン９００は、これらには限定されないが、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ（ＰＣ）、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス（ＳＴＢ）、パーソナルデジタルアシスタント（ＰＤＡ）、エンターテインメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス（例えば、スマートウォッチ）、スマートホームデバイス（例えば、スマート機器）、他のスマートデバイス、ウェブ装置、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、又は、マシン９００によって行われるべきアクションを指定する、シーケンシャル又は他の方法で、命令９１６を実行することができる任意のマシンを含むことができる。更に、単一のマシン９００のみが図示されているが、語句「マシン」は、また、本明細書で議論した方法の任意の１以上を実行するための命令９１６を個別に、又は、協働して実行するマシン９００の集合を含むと解釈されるべきである。
【００６６】
マシン９００は、バス９０２を介して相互に通信するように構成されることができる、プロセッサ９１０、メモリ９３０、及び、Ｉ／Ｏコンポーネント９５０を含むことができる。ある例示的実施形態においては、プロセッサ９１０（例えば、中央処理装置（ＣＰＵ）、縮小命令セットコンピューティング（ＲＩＳＣ）プロセッサ、複数命令セットコンピューティング（ＣＩＳＣ） プロセッサ、グラフィクス処理ユニット（ＧＰＵ）、デジタル信号プロセッサ  （ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、無線周波数集積回路（ＲＦＩＣ）、他のプロセッサ、又は、それらの任意の適切な組み合わせ）は、例えば、命令９１６を実行することができる、プロセッサ９１２、及び、プロセッサ９１４を含むことができる。語句「プロセッサ」は、同時に命令を実行することができる、２以上の独立なプロセッサ（また、「コア」とも呼ばれる）を含むことができる、マルチコアプロセッサを含むことを意図している。図９は、複数のプロセッサを示しているが、マシン９００は、シングルコアの単一のプロセッサ、複数コア（例えば、マルチコアプロセス）の単一のプロセッサ、シングルコアの複数のプロセッサ、複数のコアの複数のプロセッサ、又は、それらの任意の組み合わせを含むことができる。
【００６７】
メモリ９３０は、バス９０２を介して、プロセッサ９１０にアクセスすることができる、メインメモリ９３２、静的メモリ９３４、及び、ストレージユニット９３６を含むことができる。ストレージユニット９３６は、本明細書で記述される方法又は機能の任意の１以上を具現化する命令９１６が格納される、マシン可読媒体９３８を含むことができる。命令９１６は、また、マシン９００によるその実行の間、メインメモリ９３２内に、静的メモリ９３４内に、少なくとも１つのプロセッサ９１０内に（例えば、プロセッサのキャッシュメモリ内に）、又は、それらの任意の適切な組み合わせに、完全に、又は、少なくとも部分的に常駐することができる。したがって、様々な実装において、メインメモリ９３２、静的メモリ９３４、及び、プロセッサ９１０は、マシン可読媒体９３８として考えられる。
【００６８】
ここに用いられるとおり、語句「メモリ」は、データを一時的に、又は、恒久的に格納することができるマシン可読媒体９３８を示し、これらには限定されないが、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、バッファメモリ、フラッシュメモリ、及び、キャッシュメモリを含むように解釈されることができる。マシン可読媒体９３８は、単一の媒体であると、例示的実施形態に示されているが、語句「マシン可読媒体」は、命令９１６を格納することができる、単一の媒体、又は、複数の媒体（例えば、集中型、もしくは、分散型データベース、又は、関連したキャッシュ及びサーバ）を含むと解釈されるべきである。語句「マシン可読媒体」は、また、マシン９００の１以上のプロセッサ（例えば、プロセッサ９１０）によって実行されるとき、命令が、本明細書で記述された方法の任意の１以上をマシン９００に実行させるように、マシン（例えば、マシン９００）による実行のために、命令（例えば、命令９１６）を格納することができる、任意の媒体、又は、複数の媒体の組み合わせを含むと解釈されなくてはならない。したがって、「マシン可読媒体」は、複数のストレージ装置又はデバイスを含む、「クラウドベース」のストレージシステム又はストレージネットワークと共に、単一のストレージ装置又はデバイスを示す。語句「マシン可読媒体」は、したがって、これらには限定されないが、固体メモリ（例えば、フラッシュメモリ）、光媒体、磁気媒体、他の不揮発性メモリ（例えば、消去可能なプログラマブルリードオンリーメモリ（ＥＰＲＯＭ））又は、それらの任意の適切な組み合わせの形態の１以上のデータリポジトリを含むと解釈されなくてはならない。語句「マシン可読媒体」は、特に、非法的信号自体を排除する。
【００６９】
Ｉ／Ｏコンポーネント９５０は、入力を受信し、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定を捕捉する、など、のために広範な様々なコンポーネントを含む。一般に、Ｉ／Ｏコンポーネント９５０は、図９に示されていない多くの他のコンポーネントを含むことができることは理解されるだろう。Ｉ／Ｏコンポーネント９５０は、以下の議論を簡単化するためのみに、機能に従ってグループ化され、グループ化は、どのような意味でも限定的ではない。様々な例示的実施形態において、Ｉ／Ｏコンポーネント９５０は、出力コンポーネント９５２及び入力コンポーネント９５４を含む。出力コンポーネント９５２は、視覚コンポーネント（例えば、プラズマディスプレイパネル（ＰＤＰ）、発光ダイオード（ＬＥＤ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プロジェクタ又は陰極線管（ＣＲＴ）などのディスプレイ）、音響コンポーネント（例えば、スピーカ）、触覚コンポーネント（例えば、振動モータ）、他の信号生成器などを含む。入力コンポーネント９５４は、英数字入力コンポーネント（例えば、キーボード、英数字入力を受信するように構成されたタッチスクリーン、フォトオプティカルキーボード、又は他の英数字入力コンポーネント）、ポイントベースの入力コンポーネント（例えば、マウス、タッチパッド、トラックボール、ジョイスティック、動きセンサ、又は、他のポインティング装置）、触覚入力コンポーネント（例えば、物理ボタン、タッチの位置と力、もしくは、タッチのジェスチャを提供するタッチスクリーン、又は、他の触覚入力コンポーネント）、音響入力コンポーネント（例えば、マイク）など、を含む。
【００７０】
幾つかの更なる例示的実施形態においては、Ｉ／Ｏコンポーネント９５０は、広範な他のコンポーネント配列の中でも、生体情報コンポーネント９５６、動きコンポーネント９５８、環境コンポーネント９６０、又は、位置コンポーネント９６２を含む。例えば、生体情報コンポーネント９５６は、表現（例えば、手の表現、顔の表現、声の表現、身体ジェスチャ、又は、目の追跡）を検出し、生体信号（たとえば、血圧、心拍数、体温、呼吸、又は、脳波）を測定し、人物を同定する（例えば、音声同定、虹彩同定、顔同定、指紋同定、又は、脳波図ベースの同定）、などを検出するためのコンポーネントを含む。動きコンポーネント９５８は、加速度センサコンポーネント（例えば、加速度計）、重力センサコンポーネント、回転センサコンポーネント（例えば、ジャイロスコープ）などを含む。環境コンポーネント９６０は、例えば、照度センサコンポーネント（例えば、フォトメータ）、温度センサコンポーネント（例えば、環境温度を検出する１以上のサーモメータ）、湿度センサコンポーネント、圧力センサコンポーネント（例えば、バロメータ）、音響センサコンポーネント（例えば、背景ノイズを検出する１以上のマイク）、近接センサコンポーネント（例えば、近傍の物体を検出する赤外センサ）、ガスセンサ（例えば、マシンオルファクション（ｍａｃｈｉｎｅ  ｏｌｆａｃｔｉｏｎ）検出センサ、安全のため危険なガスの濃度を検出する、又は、大気の汚染物質を測定するガス検出センサ）、又は、周囲の物理環境に対応する指示、測定、もしくは、信号を提供することができる他のコンポーネントを含む。位置コンポーネント９６２は、位置センサコンポーネント（例えば、グローバルポジショニングシステム（ＧＰＳ）受信機コンポーネント）、高度センサコンポーネント（例えば、高度測量器、高度が導出できる気圧を検出するバロメータ）、方向センサコンポーネント（例えば、磁力計）などを含む。
【００７１】
通信は、広範な様々の技術を用いて実装されることができる。Ｉ／Ｏコンポーネント９５０は、それぞれ、カップリング９８２及びカップリング９７２を介して、ネットワーク９８０又はデバイス９７０にマシン９００を結合するように動作可能な通信コンポーネント９６４を含むことができる。例えば、通信コンポーネント９６４は、ネットワークインタフェースコンポーネント又は、ネットワーク９８０とのインタフェース接続を行う他の適切なデバイスを含む。更なる例においては、通信コンポーネント９６４は、有線通信コンポーネント、無線通信コンポーネント、携帯電話通信コンポーネント、近接場通信（ＮＦＣ）コンポーネント、Ｂｌｕｅｔｏｏｔｈ（登録商標）コンポーネント（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）ローエネルギー）、Ｗｉ−Ｆｉ（登録商標）コンポーネント、及び、他の手段を介して、通信を提供する他の通信コンポーネントを含む。デバイス９７０は、他のマシン、又は、任意の広範な様々な周辺デバイス（例えば、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）を介して結合する周辺デバイス）とすることができる。
【００７２】
更に、幾つかの実装においては、通信コンポーネント９６４は、識別子を検出し、又は、識別子を検出するように動作可能なコンポーネントを含む。例えば、通信コンポーネント９６４は、無線周波数識別（ＲＦＩＤ）タグリーダコンポーネント、ＮＦＣスマートタグ検出コンポーネント、光リーダコンポーネント（例えば、Ｕｎｉｖｅｒｓａｌ  Ｐｒｏｄｕｃｔ  Ｃｏｄｅ（ＵＰＣ）バーコードなどの１次元バーコード、Ｑｕｉｃｋ  Ｒｅｓｐｏｎｓｅ（ＱＲ）コード、Ａｚｔｅｃコード、データマトリクス、Ｄａｔａｇｌｙｐｈ、 ＭａｘｉＣｏｄｅ、ＰＤＦ４１７、Ｕｌｔｒａ  Ｃｏｄｅ、 Ｕｎｉｆｏｒｍ  Ｃｏｍｍｅｒｃｉａｌ  Ｃｏｄｅ  Ｒｅｄｕｃｅｄ  Ｓｐａｃｅ  Ｓｙｍｂｏｌｏｇｙ  （ＵＣＣ  ＲＳＳ）−２Ｄ  バーコードなどの多次元バーコード、及び他の光コードなどを検出する光センサ）、音響検出コンポーネント（例えば、タグ付けされた音響信号を同定するマイク）、又は、それらの任意の適切な組み合わせ、を含む。更に、様々な情報は、インターネットプロトコル（ＩＰ）の地理的位置による位置、Ｗｉ−Ｆｉ（登録商標）信号三角測量による位置、特定の位置を示し得るＮＦＣビーコン信号を検出することによる位置、などの通信コンポーネント９６４を介して導出されることができる。
【００７３】
[伝送媒体]
様々な例示的実施形態において、ネットワーク９８０の１以上の部分は、アドホックネットワーク、イントラネット、エクストラネット、バーチャル・プライベートネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネット、インターネットの一部、公衆電話交換網（ＰＳＴＮ）の一部、プレイン・オールド・テレフォン・サービス（ＰＯＴＳ）ネットワーク、携帯電話ネットワーク、無線ネットワーク、Ｗｉ−Ｆｉ（登録商標）ネットワーク、他のタイプのネットワーク、又は、２以上のそのようなネットワークの組み合わせ、とすることができる。例えば、ネットワーク９８０又はネットワーク９８０の一部は、無線又は携帯ネットワークを含むことができ、カップリング９８２は、符号分割多重アクセス（ＣＤＭＡ）接続、Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  （ＧＳＭ）接続、又は、他の種類の、携帯もしくは無線カップリングとすることができる。この例においては、カップリング９８２は、Ｓｉｎｇｌｅ  Ｃａｒｒｉｅｒ  Ｒａｄｉｏ  Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ（１ｘＲＴＴ）、Ｅｖｏｌｕｔｉｏｎ−Ｄａｔａ  Ｏｐｔｉｍｉｚｅｄ  （ＥＶＤＯ）技術、Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ（ＧＰＲＳ）技術、Ｅｎｈａｎｃｅｄ  Ｄａｔａ  ｒａｔｅｓ  ｆｏｒ  ＧＳＭ  Ｅｖｏｌｕｔｉｏｎ（ＥＤＧＥ）技術、ｔｈｉｒｄ  Ｇｅｎｅｒａｔｉｏｎ  Ｐａｒｔｎｅｒｓｈｉｐ  Ｐｒｏｊｅｃｔ（３ＧＰＰ）ｉｎｃｌｕｄｉｎｇ  ３Ｇ、 ｆｏｕｒｔｈ  ｇｅｎｅｒａｔｉｏｎ  ｗｉｒｅｌｅｓｓ（４Ｇ）ネットワーク、 Ｕｎｉｖｅｒｓａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｙｓｔｅｍ  （ＵＭＴＳ）、  Ｈｉｇｈ  Ｓｐｅｅｄ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ  （ＨＳＰＡ）、Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ（ＷｉＭＡＸ)、 Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ  （ＬＴＥ）ｓｔａｎｄａｒｄ、様々な標準設定組織によって既定される他のもの、他の長距離プロトコル、又は、他のデータ転送技術など、任意の様々なタイプのデータ転送技術を実装することができる。
【００７４】
例示的実施形態においては、命令９１６は、ネットワークインタフェースデバイス（例えば、通信コンポーネント９６４に含まれるネットワークインタフェースコンポーネント）を介しての、及び、幾つかの既知の転送プロトコル（例えば、Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ（ＨＴＴＰ））の任意の一つを利用した、通信媒体を用いる、ネットワーク９８０に渡って送信され、又は、受信されることができる。同様に、他の例示的実施形態においては、命令９１６は、デバイス９７０へ、カップリング９７２（例えば、ピア・ツー・ピアカップリング）を介しての、伝送媒体を用いて送信又は受信される。語句「伝送媒体」は、マシン９００による実行のために、命令９１６を格納し、符号化し、又は、輸送することができ、デジタル又はアナログ通信信号又はそのようなソフトウェアの通信を促進する他の非定型な媒体を含む、任意の非定型な媒体を含むように解釈されなければならない。
【００７５】
更に、通信媒体、又は、信号搬送マシン可読命令は、マシン可読媒体９３８の一実施形態を含む。
【００７６】
[言語]
この明細書に渡って、複数の例が、単一の例として記述されたコンポーネント、動作、または構造を実装することができる。１以上の方法の個別の動作が、個別の動作として図示され、記述されたが、個別の動作の１以上は、同時に実行されることができ、動作が図示された順番で実行されることは必要ではない。例示的構成において個別コンポーネントとして提示された構造及び機能は、組み合わせられた構造又はコンポーネントとして実装されることができる。同様に、単一のコンポーネントとして提示された構造及び機能は、個別のコンポーネントとして実装されることができる。これら及び他の変形、改変、追加、及び改善は、本明細書の主題の範囲内に入る。
【００７７】
本発明の主題の概要が、特定の例示的実施形態を参照して記述されたが、様々な変形、改変、及び変更が、本開示の実施形態のより広い範囲から逸脱することなく、これらの実施形態になされることができる。本発明の主題のそのような実施形態は、ただ便宜のため、２以上のものが実際に開示されている場合、いかなる単一の開示又は発明の概念にこの出願の範囲を自発的に限定する意図なしに、語句「発明」によって、個別に、又は、集合的に、ここに参照されることができる。
【００７８】
ここに図示された実施形態は、当業者が開示された教示を実施することができるように、十分詳細に記述される。構造的及び論理的代替及び変更が、この開示の範囲を逸脱することなくなされることができるように、他の実施形態が用いられ、導出されることが出来る。したがって、詳細な説明は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、そのような請求項が権利を付与される均等物の全範囲と共に、添付の請求項によってのみ規定される。
【００７９】
本明細書で用いられるように、語句「ｏｒ」は、包含的な意味にも、又は、排他的な意味にも解釈されることができる。更に、複数の例が単一の例として、ここに記述された、リソース、動作、又は、構造に対し提供されることができる。更に、様々なリソース、動作、モジュール、エンジン、及びデータストア間の境界は、いくらかあいまいで、特定の動作が、特定の例示的構成の文脈で例示される。機能の他の割り当ては、考えることができ、本開示の様々な実施形態の範囲内に入ることができる。一般に、例示的構成において、個別のリソースとして提示された構造及び機能は、組み合わせられた構造又はリソースとして実装されることができる。同様に、単一のリソースとして提示される構造及び機能は、個別のリソースとして実装されることができる。これら及び他の変形、改変、追加、及び、改善は、添付の請求項に代表されるように、本開示の実施形態の範囲内に入る。明細書及び図面は、したがって、限定的な意味ではなく、例示的な意味にみなされるべきである。
【００８０】
以下の列挙された例は、本明細書で議論した、方法、マシン可読媒体、及びシステム（例えば、装置）の様々な例示的実施形態を規定する：
【００８１】
例１.複数の精密カテゴリを有するカテゴリ化されたデータを備えるデータセットにアクセスし、
精密カテゴリの数より少ない粗いカテゴリの数を同定し、
各精密カテゴリについて、関連した粗いカテゴリを決定するように構成された粗いカテゴリ同定モジュールと、
粗いカテゴリ間を区別するために、基礎の畳み込みニューラルネットワーク（ＣＮＮ）をトレーニングし、
粗いカテゴリに関連した精密カテゴリ間を区別するために、各粗いカテゴリについて、精密ＣＮＮをトレーニングするように構成された事前トレーニングモジュールと、
データを分類するための要求を受信し、
基礎のＣＮＮを用いて、データの粗いカテゴリを決定し、
決定された粗いカテゴリについての精密ＣＮＮを用いて、データの精密カテゴリを決定し、
要求に応答して、データの精密カテゴリを送信するように構成された分類モジュールと、
を備えるシステム。
【００８２】
例２．粗いカテゴリ同定モジュールは、
データセットを、トレーニングセットと値セットとに分割し、
トレーニングセットを用いて、第１のＣＮＮモデルをトレーニングし、
値セットを用いて、第一のＣＮＮモデルの混乱行列を生成するように、更に構成され、
各精密カテゴリについて、関連した粗いカテゴリを決定することは、混乱行列に、アフィニティプロパゲーションアルゴリズムを適用することを含む、例１に記載のシステム。
【００８３】
例３．粗いカテゴリ同定モジュールは、
ラプラス演算子固有マップを用いて、精密カテゴリについての、低次元特徴表現を取得する、ように更に構成されている、例１又は例２に記載のシステム。
【００８４】
例４．トレーニングモジュールは、
トレーニングセットを用いて、第２のＣＮＮモデルをトレーニングすることと、
第２のＣＮＮから、各粗いカテゴリについての精密ＣＮＮを生成することと、
トレーニングセットの部分集合を用いて、各粗いカテゴリについての精密ＣＮＮをトレーニングすることであって、部分集合は、粗いカテゴリに関連した精密カテゴリを有するデータを排除する、トレーニングをすることと、
を含む動作を用いて、各粗いカテゴリについて、精密なＣＮＮをトレーニングするように構成されている、例１〜３のいずれか適切な１項に記載のシステム。
【００８５】
例５．事前トレーニングモジュールは、階層深層ＣＮＮ（ＨＤ−ＣＮＮ）を形成するために、精密カテゴリ間を区別するために、ＣＮＮのそれぞれを有する粗いカテゴリ間を区別するようにＣＮＮを組み合わせるように更に構成され、
システムは、ＨＤ−ＣＮＮを精密チューニングするように構成された精密チューニングモジュールを更に含む、例１〜４のいずれか適切な１項に記載のシステム。
【００８６】
例６．精密チューニングモジュールは、
学習因子によって、精密チューニングを開始し、
学習因子を用いて、一連のトレーニングバッチにわたり、繰り返しにより、ＨＤ−ＣＮＮをトレーニングし、
各繰り返しの後、トレーニングバッチについてのトレーニング誤差を閾値と比較し、
比較に基づいて、トレーニングバッチについてのトレーニング誤差が、閾値より低いことを判定し、
トレーニングバッチについてのトレーニング誤差が閾値より低いことの判定に応答して、学習因子を改変する、
ことを含む動作を用いて、ＨＤ−ＣＮＮを精密チューニングするように構成される、例５に記載のシステム。
【００８７】
例７．精密チューニングモジュールは、
精密カテゴリ間を区別するために、ＣＮＮのそれぞれを評価する際に、時間的スパーシティ要素を適用する、
ことを含む動作を用いて、ＨＤ−ＣＮＮを精密チューニングするように構成される、例５又は例６に記載のシステム。
【００８８】
例８．カテゴリ化されたデータを含むデータセットは、カテゴリ化された画像を含む、例１〜７のいずれか１項に記載のシステム。
【００８９】
例９．複数の精密カテゴリを有するカテゴリ化されたデータを含むデータセットにアクセスすることと、
精密カテゴリの数より少ない、粗いカテゴリの数を同定することと、
各精密カテゴリについて、関連した粗いカテゴリを決定することと、
粗いカテゴリ間を区別する、マシンのプロセッサによって実装される、基礎の畳み込みニューラルネットワーク（ＣＮＮ）をトレーニングすることと、
粗いカテゴリに関連した精密なカテゴリ間を区別するために、各粗いカテゴリについての精密ＣＮＮをトレーニングすることと、
データを分類するための要求を受信することと、
基礎ＣＮＮを用いて、データの粗いカテゴリを決定することと、
決定された粗いカテゴリのための精密ＣＮＮを用いて、データの精密なカテゴリを決定することと、
要求に応答して、データの精密カテゴリを送信することと、を含む方法。
【００９０】
例１０．データセットをトレーニングセットと値セットとに分割することと、
トレーニングセットを用いて、第１のＣＮＮモデルをトレーニングすることと、
値セットを用いて、第１のＣＮＮモデルの混乱行列を生成することと、を更に含み、
各精密カテゴリについて、関連した粗いカテゴリを決定することは、混乱行列にアフィニティプロパゲーションアルゴリズムを適用することを含む、例９に記載の方法。
【００９１】
例１１．ラプラス演算子固有マップを用いて、精密カテゴリの低次元特徴表現を得ることを更に含む、例９又は例１０に記載の方法。
【００９２】
例１２．各粗いカテゴリについての精密ＣＮＮのトレーニングは、
トレーニングセットを用いて、第２のＣＮＮモデルをトレーニングすることと、
第２のＣＮＮから、各粗いカテゴリについての精密ＣＮＮを生成することと、
トレーニングセットの部分集合を用いて、各粗いカテゴリについての精密ＣＮＮをトレーニングすることであって、部分集合は、粗いカテゴリに関連した精密カテゴリを有するデータを排除する、トレーニングすることと、を含む、例９〜１１のいずれか１項に記載の方法。
【００９３】
例１３．階層深層ＣＮＮ（ＨＤ−ＣＮＮ）を形成するために、精密ＣＮＮのそれぞれによって、基礎ＣＮＮを組み合わせることと、
ＨＤ−ＣＮＮを精密チューニングすることと、を更に含む、例９〜１２のいずれか１項に記載の方法。
【００９４】
例１４．ＨＤ−ＣＮＮの精密チューニングは、
学習因子によって、精密チューニングを開始することと、
学習因子を用いて、一連のトレーニングバッチにわたり、繰り返すことにより、ＨＤ−ＣＮＮをトレーニングすることと、
各繰り返しの後、トレーニングバッチについてのトレーニング誤差を閾値と比較することと、
比較に基づいて、トレーニングバッチについてのトレーニング誤差が閾値より小さいことを判定することと、
トレーニングバッチについてのトレーニング誤差が閾値より小さいという判定に応答して、学習因子を改変する、ことを含む、例９〜１３のいずれか１項に記載の方法。
【００９５】
例１５．精密チューニングモジュールによるＨＤ−ＣＮＮの精密チューニングは、精密カテゴリ間を区別するために、ＣＮＮのそれぞれの評価のときに、時間的スパーシティ要素を適用する、ことを含む、例９〜１４のいずれか１項に記載の方法。
【００９６】
例１６．カテゴリ化されたデータを含むデータセットは、カテゴリ化された画像を含む、請求項９に記載の方法。
【００９７】
例１７．例９〜１６のいずれか１項に記載の方法を実行するマシンのプロセッサによって実行可能な命令を担持するマシン可読媒体。
【図１】
2017538195.tif 000010
【図２】
2017538195.tif 000011
【図３】
2017538195.tif 000012
【図４】
2017538195.tif 000013
【図５】
2017538195.tif 000014
【図６】
2017538195.tif 000015
【図７】
2017538195.tif 000016
【図８】
2017538195.tif 000017
【図９】
2017538195.tif 000018
【国際調査報告】
2017538195.tif 000019