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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7470476蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合
<>
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図1
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図2
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図3
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図4
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図5
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図6
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図7
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図8A
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図8B
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図8C
  • 特許-蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-10
(45)【発行日】2024-04-18
(54)【発明の名称】蒸留を用いたそれぞれのターゲット・クラスを有するモデルの統合
(51)【国際特許分類】
   G06N 3/084 20230101AFI20240411BHJP
   G06N 3/045 20230101ALI20240411BHJP
   G06N 20/00 20190101ALI20240411BHJP
【FI】
G06N3/084
G06N3/045
G06N20/00 130
【請求項の数】 25
(21)【出願番号】P 2022501381
(86)(22)【出願日】2020-02-25
(65)【公表番号】
(43)【公表日】2022-05-09
(86)【国際出願番号】 IB2020051581
(87)【国際公開番号】W WO2020194077
(87)【国際公開日】2020-10-01
【審査請求日】2022-07-25
(31)【優先権主張番号】P 2019054237
(32)【優先日】2019-03-22
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ボンクルビサル、ジャヤコーン
(72)【発明者】
【氏名】ビナヤベキン、フォンタリン
【審査官】田中 幸雄
(56)【参考文献】
【文献】米国特許第8954358(US,B1)
【文献】特開2010-092266(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/084
G06N 20/00
G06N 3/045
(57)【特許請求の範囲】
【請求項1】
統合ソフト・ラベルを生成するためのコンピュータ実装方法であって、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、前記複数の個別の訓練済みモデルが、それぞれ、対応する個別のクラス集合を有し、前記複数の個別の訓練済みモデルの前記対応する個別のクラス集合の和集合により、複数のターゲット・クラスを含む統合クラス集合形成される、前記取得することと、
サンプルごとに、前記複数の個別の訓練済みモデルのうちの前記統合クラス集合の一部である複数のクラスを前記対応する個別のクラス集合として有する一の個別の訓練済みモデルの第1の出力と前記統合クラス集合を有する統合モデルの第2の出力とを接続する関係を少なくとも使用して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる統合ソフト・ラベルを前記複数の予測から推定することと、
前記統合モデルを訓練するために、前記統合ソフト・ラベルを知識蒸留のためのラベルとして出力することと
を含む、コンピュータ実装方法。
【請求項2】
前記コンピュータ実装方法が、
各サンプルを前記統合モデルに供給して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる予測値を前記第2の出力として推論することと、
前記統合ソフト・ラベルと各サンプルの前記予測値との間の損失関数に基づいて、前記統合モデルを更新することと、
更新された前記統合モデルを記憶すること
含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記関係は、前記一の個別の訓練済みモデルの前記第1の出力における各予測値と、前記一の個別の訓練済みモデルの前記個別のクラス集合にわたる予測値を用いて正規化された前記統合モデルの前記第2の出力における対応する予測値との間同等性を示す、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記損失関数が、前記統合クラス集合内の前記複数のターゲット・クラスに対する重み付けによって重み付けされ、あるターゲット・クラスの各重み付けが、前記コレクションを通じて前記あるターゲット・クラスに関する前記統合ソフト・ラベルの統計値に基づく方法で計算される、請求項2に記載のコンピュータ実装方法。
【請求項5】
統合ソフト・ラベルを生成するためのコンピュータ実装方法であって、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、各個別の訓練済みモデルが、複数のターゲット・クラスを含む統合クラス集合を少なくとも部分的に形成するための個別のクラス集合を有する、前記取得することと、
サンプルごとに、各個別の訓練済みモデルの第1の出力と前記統合クラス集合を有する統合モデルの第2の出力とを接続する関係を使用して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる統合ソフト・ラベルを前記複数の予測から推定することと、
前記統合モデルを訓練するために、前記統合ソフト・ラベルを出力することと
を含み、前記統合ソフト・ラベルが、前記統合モデルの前記第2の出力に対応する分布qに関する目的関数を最適化する問題を解くことによって推定され、前記目的関数が、前記複数の予測に対応する複数の参照分布 と、各個別のクラス集合内の複数のターゲット・クラスにわたり分布qを正規化することによってそれぞれ取得される複数の正規化された分布 との間の誤差を測定するコンピュータ実装方法。
【請求項6】
前記分布qが、
前記統合クラス集合内の各ターゲット・クラスlにそれぞれ与えられた一時変数 を用いて凸問題を解くことであって、前記分布qが、前記凸問題内のそれぞれの一時変数 の指数関数の集合によって表される、前記解くこと、および
解かれた一時変数 を前記分布qに変換すること
によって取得される、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記目的関数が交差エントロピ関数であり、前記目的関数を最適化することは、前記交差エントロピ関数を最小化することである、請求項5に記載のコンピュータ実装方法。
【請求項8】
統合ソフト・ラベルを生成するためのコンピュータ実装方法であって、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、各個別の訓練済みモデルが、複数のターゲット・クラスを含む統合クラス集合を少なくとも部分的に形成するための個別のクラス集合を有する、前記取得することと、
サンプルごとに、各個別の訓練済みモデルの第1の出力と前記統合クラス集合を有する統合モデルの第2の出力とを接続する関係を使用して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる統合ソフト・ラベルを前記複数の予測から推定することと、
前記統合モデルを訓練するために、前記統合ソフト・ラベルを出力することと
を含み、前記統合ソフト・ラベルが、少なくとも前記統合モデルの前記第2の出力を変数として表す出力ベクトルuに関する目的関数を最適化する問題を行列因数分解に基づく方法で解くことによって推定され、前記統合ソフト・ラベルが、確率またはロジットの形式で表されるコンピュータ実装方法。
【請求項9】
前記出力ベクトルuが確率の形式で表され、前記目的関数を最適化する前記問題が、前記個別の訓練済みモデルのための正規化係数を表す正規化ベクトルvに関してさらに解かれ、前記目的関数が、前記個別のクラス集合内に欠損しているクラスが存在することを表すマスク行列Mを用いて、欠損しているエントリを伴う確率の形式で前記複数の予測を表す確率行列Pと、前記出力ベクトルuと前記正規化ベクトルvの積との間の誤差を測定する、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記出力ベクトルuがロジットの形式で表され、前記目的関数を最適化する前記問題が、ロジット・スケーリング・ベクトルvおよびロジット・シフト・ベクトルcに関してさらに解かれ、前記目的関数が、前記個別のクラス集合内に欠損しているクラスが存在することを表すマスク行列Mを用いて、欠損しているエントリを伴うロジットの形式で前記複数の予測を表すロジット行列Zと、前記出力ベクトルuと前記ロジット・シフト・ベクトルcによってシフトされた前記ロジット・スケーリング・ベクトルvの積との間の誤差を測定する、請求項8に記載のコンピュータ実装方法。
【請求項11】
前記出力ベクトルuがロジットの形式で表され、前記目的関数を最適化する前記問題が、ロジット・シフト・ベクトルcに関してさらに解かれ、前記目的関数が、前記個別のクラス集合内に欠損しているクラスが存在することを表すマスク行列Mを用いて、欠損しているエントリを伴うロジットの形式で前記複数の予測を表すロジット行列Zと、前記出力ベクトルuと前記ロジット・シフト・ベクトルcによってシフトされた固定スケーリング・ベクトルvの積との間の誤差を測定する、請求項8に記載のコンピュータ実装方法。
【請求項12】
前記統合モデルおよび前記個別の訓練済みモデルのそれぞれが、ニューラル・ネットワーク・ベースの分類モデル、決定木または決定フォレスト・ベースの分類モデル、およびサポート・ベクタ・マシン・ベースの分類モデルからなる群から選択される、請求項1に記載のコンピュータ実装方法。
【請求項13】
前記コンピュータ実装方法が、前記複数の個別の訓練済みモデルのそれぞれについて、前記個別のクラス集合のコンテンツと共に(i)個別の訓練済みモデル自体のコンテンツ、または(ii)各サンプルを前記個別の訓練済みモデルに供給することによって取得されたソフト・ラベル・コレクションを受け取ることを含む、請求項1に記載のコンピュータ実装方法。
【請求項14】
統合モデルを訓練するためのコンピュータ実装方法であって、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、前記複数の個別の訓練済みモデルが、それぞれ、対応する個別のクラス集合を有し、前記複数の個別の訓練済みモデルの前記対応する個別のクラス集合の和集合により、複数のターゲット・クラスを含む統合クラス集合形成される、前記取得することと、
サンプルごとの前記複数の予測、および、前記複数の個別の訓練済みモデルのうちの前記統合クラス集合の一部である複数のクラスを前記対応する個別のクラス集合として有する一の個別の訓練済みモデルの第1の出力と、前記統合クラス集合を有する前記統合モデルの第2の出力とを接続する関係を少なくとも使用して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる統合ソフト・ラベルを得て、前記統合ソフト・ラベルを知識蒸留のためのラベルとして用いて前記統合クラス集合を有する前記統合モデルを更新することと
を含む、コンピュータ実装方法。
【請求項15】
前記コンピュータ実装方法が、
各サンプルを前記統合モデルに供給して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる予測値を前記第2の出力として推論することであって、前記統合モデルが、前記予測値を使用して更新される、前記推論することと、
更新された前記統合モデルを記憶することと
を含む、請求項14に記載のコンピュータ実装方法。
【請求項16】
前記統合モデルがニューラル・ネットワークを含み、前記統合モデルが、前記ニューラル・ネットワーク全体に損失を逆伝播することによって更新され、前記損失が、前記複数の予測に対応する複数の参照分布 と、各個別のクラス集合内の複数のターゲット・クラスにわたり分布qを正規化することによって取得される複数の正規化された分布 との間の誤差を測定し、前記分布qが、前記統合モデルによって推論された前記予測値として取得される、請求項15に記載のコンピュータ実装方法。
【請求項17】
前記統合モデルがニューラル・ネットワークを含み、前記統合モデルが、前記ニューラル・ネットワーク全体に損失を逆伝播することによって更新され、前記損失が、前記統合モデルの前記第2の出力を表す出力ベクトルuおよび他の変数を用いて目的関数を最適化する問題を行列因数分解に基づく方法で解くことによって取得され、前記出力ベクトルuが、前記統合モデルによって推論された前記予測値として取得され、前記問題において固定される、請求項15に記載のコンピュータ実装方法。
【請求項18】
統合ソフト・ラベルを生成するためのコンピュータ・システムであって、
プログラム命令を記憶するメモリと、
前記プログラム命令を実行するために前記メモリと通信する処理回路と
を備え、前記処理回路が、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、前記複数の個別の訓練済みモデルが、それぞれ、対応する個別のクラス集合を有し、前記複数の個別の訓練済みモデルの前記対応する個別のクラス集合の和集合により、複数のターゲット・クラスを含む統合クラス集合形成される、前記取得することと、
サンプルごとに、前記複数の個別の訓練済みモデルのうちの前記統合クラス集合の一部である複数のクラスを前記対応する個別のクラス集合として有する一の個別の訓練済みモデルの第1の出力と前記統合クラス集合を有する統合モデルの第2の出力とを接続する関係を少なくとも使用して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる統合ソフト・ラベルを前記複数の予測から推定することと、
前記統合モデルを訓練するために、前記統合ソフト・ラベルを知識蒸留のためのラベルとして出力することと
を行うように構成される、コンピュータ・システム。
【請求項19】
統合ソフト・ラベルを生成するためのコンピュータ・システムであって、
プログラム命令を記憶するメモリと、
前記プログラム命令を実行するために前記メモリと通信する処理回路と
を備え、前記処理回路が、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、各個別の訓練済みモデルが、複数のターゲット・クラスを含む統合クラス集合を少なくとも部分的に形成するための個別のクラス集合を有する、前記取得することと、
サンプルごとに、各個別の訓練済みモデルの第1の出力と前記統合クラス集合を有する統合モデルの第2の出力とを接続する関係を使用して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる統合ソフト・ラベルを前記複数の予測から推定することと、
前記統合モデルを訓練するために、前記統合ソフト・ラベルを出力することと
を行うように構成され、前記統合ソフト・ラベルが、前記統合モデルの前記第2の出力に対応する分布qに関する目的関数を最適化する問題を解くことによって推定され、前記目的関数が、前記複数の予測に対応する複数の参照分布 と、各個別のクラス集合内の複数のターゲット・クラスにわたり前記分布qを正規化することによってそれぞれ取得される複数の正規化された分布 との間の誤差を測定するコンピュータ・システム。
【請求項20】
統合ソフト・ラベルを生成するためのコンピュータ・システムであって、
プログラム命令を記憶するメモリと、
前記プログラム命令を実行するために前記メモリと通信する処理回路と
を備え、前記処理回路が、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、各個別の訓練済みモデルが、複数のターゲット・クラスを含む統合クラス集合を少なくとも部分的に形成するための個別のクラス集合を有する、前記取得することと、
サンプルごとに、各個別の訓練済みモデルの第1の出力と前記統合クラス集合を有する統合モデルの第2の出力とを接続する関係を使用して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる統合ソフト・ラベルを前記複数の予測から推定することと、
前記統合モデルを訓練するために、前記統合ソフト・ラベルを出力することと
を行うように構成され、前記統合ソフト・ラベルが、少なくとも前記統合モデルの前記第2の出力を変数として表す出力ベクトルuに関する目的関数を最適化する問題を行列因数分解に基づく方法で解くことによって推定され、前記統合ソフト・ラベルが、確率またはロジットの形式で表されるコンピュータ・システム。
【請求項21】
統合モデルを訓練するためのコンピュータ・システムであって、
プログラム命令を記憶するメモリと、
前記プログラム命令を実行するために前記メモリと通信する処理回路と
を備え、前記処理回路が、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、前記複数の個別の訓練済みモデルが、それぞれ、対応する個別のクラス集合を有し、前記複数の個別の訓練済みモデルの前記対応する個別のクラス集合の和集合により、複数のターゲット・クラスを含む統合クラス集合形成される、前記取得することと、
サンプルごとの前記複数の予測、および、前記複数の個別の訓練済みモデルのうちの前記統合クラス集合の一部である複数のクラスを前記対応する個別のクラス集合として有する一の個別の訓練済みモデルの第1の出力と前記統合クラス集合を有する前記統合モデルの第2の出力とを接続する関係を少なくとも使用して、前記統合クラス集合内の前記複数のターゲット・クラスにわたる統合ソフト・ラベルを得て、前記統合ソフト・ラベルを知識蒸留のためのラベルとして前記統合クラス集合を有する前記統合モデルを更新することと
を行うように構成される、コンピュータ・システム。
【請求項22】
統合モデルを訓練するためのコンピュータ・システムであって、
プログラム命令を記憶するメモリと、
前記プログラム命令を実行するために前記メモリと通信する処理回路と
を備え、前記処理回路が、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、各個別の訓練済みモデルが、複数のターゲット・クラスを含む統合クラス集合を少なくとも部分的に形成するための個別のクラス集合を有する、前記取得することと、
サンプルごとの前記複数の予測、および各個別の訓練済みモデルの第1の出力と前記統合クラス集合内の前記複数のターゲット・クラスにわたる前記統合モデルの第2の出力とを接続する関係を使用して、前記統合クラス集合を有する前記統合モデルを更新することと
を行うように構成され、
前記統合モデルがニューラル・ネットワークを含み、前記統合モデルが、前記ニューラル・ネットワーク全体に損失を逆伝播することによって更新され、前記損失が、前記複数の予測に対応する複数の参照分布 と、各個別のクラス集合内の複数のターゲット・クラスにわたり分布qを正規化することによって取得される複数の正規化された分布 との間の誤差を測定し、前記分布qが、前記統合モデルの前記第2の出力として取得されるコンピュータ・システム。
【請求項23】
統合モデルを訓練するためのコンピュータ・システムであって、
プログラム命令を記憶するメモリと、
前記プログラム命令を実行するために前記メモリと通信する処理回路と
を備え、前記処理回路が、
サンプルのコレクションを準備することと、
サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することであって、各個別の訓練済みモデルが、複数のターゲット・クラスを含む統合クラス集合を少なくとも部分的に形成するための個別のクラス集合を有する、前記取得することと、
サンプルごとの前記複数の予測、および各個別の訓練済みモデルの第1の出力と前記統合クラス集合内の前記複数のターゲット・クラスにわたる前記統合モデルの第2の出力とを接続する関係を使用して、前記統合クラス集合を有する前記統合モデルを更新することと
を行うように構成され、前記統合モデルがニューラル・ネットワークを含み、前記統合モデルが、前記ニューラル・ネットワーク全体に損失を逆伝播することによって更新され、前記損失が、前記統合モデルの前記第2の出力を表す出力ベクトルおよび他の変数を用いて目的関数を最適化する問題を行列因数分解に基づく方法で解くことによって取得され、前記出力ベクトルが、前記統合モデルの前記第2の出力として取得され、前記問題において固定されるコンピュータ・システム。
【請求項24】
統合ソフト・ラベルを生成するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、コンピュータに請求項1~13のいずれか1項に記載の方法を実行させる、コンピュータ・プログラム。
【請求項25】
複数のターゲット・クラスを含む統合クラス集合を有する統合モデルを訓練するために使用される統合ソフト・ラベルを生成するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、コンピュータに請求項14~17のいずれか1項に記載の方法を実行させる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、機械学習に関し、より詳細には、それぞれのターゲット・クラスの集合を有するモデルを統合するためのコンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
分類タスクにおける機械学習の成功は、主に、大きいデータセットの可用性によって実現した。より多くの訓練データを有することは、分類タスクの正確度を高めるのに役立つ。技術が普及するにつれて、データ収集は、データが複数のエンティティから提供され、次いで中央ノードで分類器を訓練するために組み合わされるという、より分散された環境へと移行している。
【0003】
しかしながら、多くの場合、エンティティ間のデータの転送は、プライバシーの懸念またはネットワーク・リソースなどのリソースの制約により制限される。また、データの可用性が異なるため、各データ・ソースがすべてのターゲット・クラスの訓練データを十分に収集できない場合がある。これらの制限は、様々なソースからの知識の統合を妨げる。
【0004】
こうした状況は、データを直接共有せずに分類器を学習することを提案する複数の研究につながった。このような研究には、分散最適化、コンセンサス・ベースの訓練、連合学習、知識蒸留(G. E. Hintonら、「Distilling the Knowledge in a Neural Network」, In NIPS(Neural Information Processing Systems)Deep Learning and Representation Learning Workshop、2015)、ディープ・ニューラル・ネットワークのための無データ知識蒸留(R. G. Lopesら、「Data-free knowledge distillation for deep neural networks」, In NIPS workshop on learning with limited labeled data, 2017)などが含まれる。しかしながら、これらの従来の手法は、すべてのモデルのターゲット・クラスが同じであることを前提としている。しかしながら、例えば、データの可用性により、すべてのモデルが同じターゲット・クラスを有するようにできない場合が多い。
【発明の概要】
【発明が解決しようとする課題】
【0005】
したがって、個別の訓練済みモデルが、統合モデルの統合クラス集合とは異なるそれぞれのターゲット・クラスの部分集合を有する場合でも、複数の個別のモデルから統合モデルを訓練することができる技術が必要である。
【課題を解決するための手段】
【0006】
本発明の一実施形態によれば、統合ソフト・ラベルを生成するためのコンピュータ実装方法が提供される。コンピュータ実装方法は、サンプルのコレクションを準備することを含む。コンピュータ実装方法は、サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することも含み、各個別の訓練済みモデルは、複数のターゲット・クラスを含む統合クラス集合を少なくとも部分的に形成するための個別のクラス集合を有する。コンピュータ実装方法は、サンプルごとに、各個別の訓練済みモデルの第1の出力と統合モデルの第2の出力とを接続する関係を使用して、統合クラス集合内のターゲット・クラスに対する統合ソフト・ラベルを複数の予測から推定することをさらに含む。コンピュータ実装方法は、統合クラス集合を有する統合モデルを訓練するために、統合ソフト・ラベルを出力することも含む。
【0007】
本発明の実施形態のコンピュータ実装方法によれば、統合モデルを訓練するために使用される統合ソフト・ラベルは、統合モデルの出力と合致する方法で個別の訓練済みモデルによって生成された予測から推定されるので、個別の訓練済みモデルが統合ターゲット・モデルの統合クラス集合内のターゲット・クラスの異なる部分集合を有する場合でも、個別の訓練済みモデルの知識を統合モデルに転送することが可能である。
【0008】
好ましい実施形態において、コンピュータ実装方法は、各サンプルを統合モデルに供給して、統合クラス集合内のターゲット・クラスに対する予測値を第2の出力として推論することを含む。コンピュータ実装方法は、統合ソフト・ラベルと各サンプルの予測値との間の損失関数に基づいて、統合モデルを更新することも含む。コンピュータ実装方法は、更新された統合モデルを記憶することをさらに含む。これにより、本発明の好ましい実施形態のコンピュータ実装方法により訓練された統合モデルは、特に、個別の訓練済みモデルを訓練するために使用される訓練データを用いて集中型の教師ありの方式で直接訓練されたモデルに匹敵する高いパフォーマンスを示す。
【0009】
別の好ましい実施形態において、ある個別の訓練済みモデルの第1の出力における各予測値と、ある個別の訓練済みモデルの個別のクラス集合によって正規化された統合モデルの第2の出力における対応する予測値との間の関係は、同等性を示す。これにより、個別の訓練済みモデルの予測内の欠損しているターゲット・クラスに対して不適切な教師あり学習(supervision)を提供することが回避され、このような不適切な教師あり学習による統合モデルのパフォーマンスの低下を防止することが可能である。
【0010】
他の好ましい実施形態において、損失関数は、統合クラス集合内のターゲット・クラスに対する重み付けによって重み付けされる。あるターゲット・クラスの各重み付けは、コレクションを通じてあるターゲット・クラスに関する統合ソフト・ラベルの統計値に基づく方法で計算される。これにより、個別の訓練済みモデルの訓練データにおける、特定のクラスを他のクラスよりも優先する可能性があるバイアスが、統合モデルに転送されるのを防止することが可能である。
【0011】
特定の実施形態において、統合ソフト・ラベルは、統合モデルの第2の出力に対応する分布qに関する目的関数を最適化する問題を解くことによって推定される。目的関数は、複数の予測に対応する複数の参照分布pと複数の正規化された分布q との間の誤差を測定し、複数の正規化された分布q のそれぞれは、各個別のクラス集合内のターゲット・クラスに対する分布qを正規化することによって取得される。
【0012】
他の特定の実施形態において、統合ソフト・ラベルは、少なくとも統合モデルの第2の出力qを変数として表す出力ベクトルuに関する目的関数を最適化する問題を行列因数分解に基づく方法で解くことによって推定される。統合ソフト・ラベルは、確率またはロジットの形式で表される。
【0013】
別の好ましい実施形態において、コンピュータ実装方法は、複数の個別の訓練済みモデルのそれぞれについて、個別のクラス集合のコンテンツと共に(i)個別の訓練済みモデル自体のコンテンツ、または(ii)各サンプルを個別の訓練済みモデルに供給することによって取得されたソフト・ラベル・コレクションを受け取ることを含む。これにより、個別の訓練済みモデルを訓練するために使用される訓練データのデータ転送は必要なくなる。個別の訓練済みモデルのコンテンツ、および個別の訓練済みモデルから取得されたソフト・ラベル・コレクションは生データではなく、一般にその訓練データよりもコンパクトである。また、個別の訓練済みモデルのモデル・アーキテクチャに対する制約も少なくなる。したがって、これは、モデル・アーキテクチャ、計算、データの可用性、および機密性の制約のうちの少なくとも1つが存在する状況において好ましい。
【0014】
本発明の他の実施形態によれば、統合モデルを訓練するためのコンピュータ実装方法が提供される。コンピュータ実装方法は、サンプルのコレクションを準備することを含む。コンピュータ実装方法は、サンプルごとに、複数の個別の訓練済みモデルによって生成された複数の予測を取得することも含み、各個別の訓練済みモデルは、複数のターゲット・クラスを含む統合クラス集合を少なくとも部分的に形成するための個別のクラス集合を有する。コンピュータ実装方法は、サンプルごとの複数の予測、および各個別の訓練済みモデルの第1の出力と統合クラス集合内のターゲット・クラスに対する統合モデルの第2の出力とを接続する関係を使用して、統合クラス集合を有する統合モデルを更新することをさらに含む。
【0015】
本発明の他の実施形態のコンピュータ実装方法によれば、統合モデルは、統合モデルの出力と合致する方法で複数の個別の訓練済みモデルによって生成された出力を使用して更新されるので、個別の訓練済みモデルが、統合モデルの統合クラス集合内に異なるターゲット・クラスの部分集合を有する場合でも、個別の訓練済みモデルの知識を統合モデルに転送することが可能である。本発明の他の実施形態のコンピュータ実装方法により訓練された統合モデルは、特に、個別のモデルの訓練データを用いて集中型の教師ありの方式で直接訓練されたモデルに匹敵する高いパフォーマンスを示す。さらに、統合ソフト・ラベルを推定する際の誤差の蓄積が統合モデルの訓練に対して伝播するのを防止することが可能である。
【0016】
特定の実施形態において、コンピュータ実装方法は、各サンプルを統合モデルに供給して、統合クラス集合内のターゲット・クラスに対する予測値を第2の出力として推論することも含み、統合モデルは、予測値を使用して更新される。コンピュータ実装方法は、更新された統合モデルを記憶することをさらに含む。
【0017】
さらなる特定の実施形態において、統合モデルはニューラル・ネットワークを含み、統合モデルは、ニューラル・ネットワーク全体に損失を逆伝播することによって更新され、損失は、複数の予測に対応する複数の参照分布pと、各個別のクラス集合内のターゲット・クラスに対する分布qを正規化することによって取得された複数の正規化された分布q との間の誤差を測定し、分布qは、統合モデルによって推論された予測値として取得される。
【0018】
特定の実施形態において、統合モデルはニューラル・ネットワークを含み、統合モデルは、ニューラル・ネットワーク全体に損失を逆伝播することによって更新され、損失は、統合モデルの第2の出力を表す出力ベクトルuおよび他の変数を用いて目的関数を最適化する問題を行列因数分解に基づく方法で解くことによって取得され、出力ベクトルuは、統合モデルによって推論された予測値として取得され、問題において固定される。
【0019】
本発明の1つまたは複数の態様に関連するコンピュータ・システムおよびコンピュータ・プログラム製品も、本明細書において記載され、特許請求される。
【0020】
本発明の技術を通して、追加の特徴および利点が実現される。本発明の他の実施形態および態様が、本明細書に詳細に記載されており、特許請求される発明の一部と見なされる。
【0021】
本明細書の結論の特許請求の範囲では、本発明とされる主題を具体的に取り上げ、明確に特許請求している。添付図面と併せて行う以下の詳細な説明から、本発明の前述および他の特徴ならびに利点が明らかになる。
【図面の簡単な説明】
【0022】
図1】本発明の例示的な一実施形態による、知識蒸留システムを用いた訓練方式を示す図である。
図2】本発明の例示的な実施形態による、知識蒸留システムおよび知識蒸留システム周辺の関連するコンポーネントのブロック図である。
図3】本発明の例示的な実施形態による、個別の分類器の出力と統合分類器の出力とを接続する確率論的関係を直観的に説明する概略図である。
図4】本発明の例示的な一実施形態による、複数の個別の分類器を用いて統合分類器を訓練するための知識蒸留プロセスを示す流れ図である。
図5】本発明の他の例示的な実施形態による、知識蒸留システムのブロック図である。
図6】本発明のさらに他の例示的な実施形態による、知識蒸留システムのブロック図である。
図7】本発明のさらに他の例示的な実施形態による、個別の分類器を用いて統合分類器を訓練するための知識蒸留プロセスを示す流れ図である。
図8A】ラベルなしの集合のサイズを変化させた感度分析の結果を示す図である。
図8B】温度を変化させた感度分析の結果を示す図である。
図8C】個別の分類器の正確度を変化させた感度分析の結果を示す図である。
図9】本発明の1つまたは複数の実施形態による、コンピュータ・システムの概略図である。
【発明を実施するための形態】
【0023】
次に、本発明について特定の実施形態を使用して説明するが、以下に説明する実施形態は、例としてのみ言及されていると理解され、本発明の範囲を限定することを意図するものではない。
【0024】
本発明による1つまたは複数の実施形態は、ターゲット・クラスの異なる集合(個別のクラス集合と呼ぶ)をそれぞれ有し得る複数の個別の教師モデルから取得されたデータを使用することによって、ターゲット・クラスの集合(統合クラス集合と呼ぶ)を有する生徒統合モデルを訓練するために使用され得る統合ソフト・ラベルを生成するための、コンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品を対象とする。
【0025】
本発明による1つまたは複数の他の実施形態は、それぞれの個別のクラス集合を有する複数の個別の教師モデルから取得されたデータを使用することによって、ターゲット・クラスの統合クラス集合を有する生徒統合モデルを訓練するための、コンピュータ実装方法、コンピュータ・システム、およびコンピュータ・プログラム製品を対象とする。
【0026】
最初に、一連の図1図5を参照して、本発明の例示的な実施形態による、生徒モデルおよび教師モデルがそれぞれのターゲット・クラスを有する分類器であり、個別の教師分類器から取得されたデータを使用して生徒統合分類器のための統合ソフト・ラベルを推定する知識蒸留のフレームワークにおいて、複数の個別の教師モデルを用いて生徒統合モデルを訓練するためのコンピュータ・システムおよび方法について説明する。
【0027】
次いで、一連の図6および図7を参照して、本発明の他の例示的な実施形態による、生徒モデルおよび教師モデルがそれぞれのターゲット・クラスを有する分類器であり、統合ソフト・ラベルを最初に推定する必要なしに、個別の教師分類器から取得されたデータを使用して生徒統合分類器を更新する知識蒸留のフレームワークにおいて、複数の個別の教師モデルを用いて生徒統合モデルを訓練するためのコンピュータ・システムおよび方法について説明する。
【0028】
さらに、図8を参照して、本発明の例示的な実施形態による新規な知識蒸留を用いた画像分類に関する実験的研究について説明する。最後に、図9を参照して、本発明の1つまたは複数の実施形態によるコンピュータ・システムのハードウェア構成について説明する。
【0029】
図1および図2を参照して、本発明の例示的な実施形態による画像分類のための知識蒸留システム130について説明する。
【0030】
図1は、知識蒸留システム130を使用する訓練方式を示す。図1に示すように、中央コンピューティング・システム120および複数のデータ・ソース110-1~110-Nが存在する。
【0031】
図1に、各データ・ソース110のコンポーネントが示されている。各データ・ソース110には、訓練データ・コレクション112、訓練モジュール114、および個別の分類器116が存在する。各データ・ソース110において、個別の分類器116は、訓練データ・コレクション112を使用して訓練モジュール114によって訓練される。一般に、各データ・ソース110は、権利および義務を有するエンティティによって管理され、そのようなエンティティには、いくつかの例を挙げると、個人、会社、企業、教育機関、医療機関が含まれ得る。
【0032】
各訓練データ・コレクション112は、訓練データのコレクションを格納し、各訓練データは、画像と、画像に割り当てられたクラス・ラベルとを含む。訓練データ・コレクション112に格納された訓練データは、データ・ソース110内に保持されるべきプライバシーまたは機密情報あるいはその両方を含んでもよい。訓練データ・コレクション112-1~112-Nに格納される訓練データの多様性および量は、一般に、そのデータの可用性によって互いに異なる。説明する実施形態では、各訓練データは、クラス・ラベルが割り当てられた画像を含むことに留意されたい。しかしながら、異なる分類タスクを伴う他の実施形態では、各訓練データに含まれるデータは、画像に限定されず、他のデータ・タイプ、例えば、音声認識タスクのためのオーディオ記録としてもよい。
【0033】
個別の分類器116は、ニューラル・ネットワーク・ベースの分類モデル(例えば、DNN(ディープ・ニューラル・ネットワーク)、CNN(畳み込みニューラル・ネットワーク)、RNN(再帰型ニューラル・ネットワーク)、およびそれらの変形)、決定木または決定フォレスト・ベースの分類モデル(例えば、ランダム・フォレスト)、最近傍ベースの分類モデル、ならびにサポート・ベクタ・マシン(SVM)ベースの分類モデル(標準的なSVMを、個別の分類器116として機能するように変更することができる)を含むがこれらに限定されない、知られている分類モデルのうちのいずれかとすることができる。また、各個別の分類器116は、単一の分類モデルに限定されない場合があり、複数の分類モデル(例えば、バギング、ブースティング、混合エキスパートなど)のアンサンブルとすることができる。個別の分類器116は、訓練モジュール114によって、画像が各ターゲット・クラスに属する確率を予測するように訓練される。これらの個別の分類器116-1~116-Nは、異なるアーキテクチャを有してもよく、ターゲット・クラスの異なる集合(個別のクラス集合)を分類するように訓練されてもよく、したがって「異種分類器」と呼ばれる。
【0034】
各訓練モジュール114は、訓練される個別の分類器116の対応するアーキテクチャに適した学習アルゴリズムを実装する。各訓練モジュール114は、訓練データ・コレクション112に格納された訓練データを使用することによって、個別の分類器116を訓練するように構成される。
【0035】
図1を参照すると、中央コンピューティング・システム120のコンポーネントも示されている。中央コンピューティング・システム120は、転送コレクション(transfer collection)124と、知識蒸留システム130と、統合分類器126とを含む。中央コンピューティング・システム120において、統合分類器126は、転送コレクション124を使用して知識蒸留システム130によって訓練される。中央コンピューティング・システム120は、データ・ソース110-1~110-Nのエンティティとは異なり得るエンティティによって管理され、したがって、訓練データ・コレクション112-1~112-Nから中央コンピューティング・システム120へのデータ転送は、通常、制限される。
【0036】
本発明の例示的な実施形態による新規な知識蒸留の目的は、プライバシーまたは機密性あるいはその両方の懸念をもたらし得る複数のデータ・ソース110-1~110-Nにわたって分散された訓練データを転送することなく、データ・ソース110-1~110-Nの知識を単一の統合モデルに統合することである。
【0037】
この訓練方式では、複数のデータ・ソース110-1~110-Nにわたって分散された知識をまとめるために、各エンティティに必要とされることは、それらの訓練済みの個別の分類器116-1~116-Nおよびそのクラス名を中央コンピューティング・システム120に転送することだけである。中央コンピューティング・システム120において、知識蒸留システム130は、転送された個別の分類器122-1~122-Nを受け取り、それらを知識蒸留システム130のリソース上で実行する。次いで、知識蒸留システム130は、転送された個別の分類器122-1~122-Nを転送コレクション124と共に活用することによって、統合分類器126を訓練する。
【0038】
データ・ソース110-1~110-Nの知識は、訓練済みの個別の分類器122-1~122-Nに蓄積されるので、単一の統合分類器126がすべての個別の分類器116-1~116-Nのすべてのターゲット・クラスを分類できるように、分散された知識を単一の統合分類器126に統合することが可能である。
【0039】
一般に、個別の分類器116のコンテンツは、訓練データ・コレクション112に格納されている訓練データ全体よりもコンパクトである。したがって、この訓練方式は、帯域幅の制約(例えば、非常に大きいデータセット)などのリソース制限が存在する状況において好ましい。
【0040】
図2は、知識蒸留システム130および知識蒸留システム130周辺の関連するコンポーネントのブロック図である。図2に示すように、知識蒸留システム130は、ソフト・ラベル生成モジュール132と、統合モデル訓練モジュール134とを含む。生徒モデルとして訓練される統合分類器126、および教師モデルとしてすでに訓練された複数の個別の分類器122-1~122-Nが存在する。
【0041】
転送コレクション124は、転送データのコレクションを格納し、各転送データは、画像分類を目標としている場合は画像を含み得る。転送データは、知識を統合分類器126に転送するために使用されるデータである。転送データ(またはサンプル)は、転送コレクション124から抽出され、教師の分類器122および生徒の分類器126のそれぞれに入力として供給される。特定の実施形態において、転送コレクション124に格納された画像は、ハード・ラベルを割り当てられる必要がなく、プライバシーおよび機密情報を含まない場合がある。公開されている画像データセット内または新規な知識蒸留のために収集された他の画像データセット内あるいはその両方の任意の画像を、転送データとして使用してもよい。説明する実施形態では、各転送データが画像を含むことに留意されたい。しかしながら、異なる分類タスクを伴う他の実施形態では、各転送データは、他のデータ・タイプ、例えば、音声認識タスクのためのオーディオ録音を含んでもよい。
【0042】
統合分類器126は、知られているニューラル・ネットワーク・ベースの分類モデル(例えば、DNN、CNN、RNN、およびこれらの変形)、決定木または決定フォレスト・ベースの分類モデル(例えば、ランダム・フォレスト)、最近傍ベースの分類モデル、およびSVMベースの分類モデル(標準的なSVMを、統合分類器126として機能するように変更することができる)のうちのいずれかとすることができる。統合分類器126は、知識蒸留システム130によって、画像が各ターゲット・クラスに属する確率を予測するように訓練される。統合分類器126は、個別の分類器122-1~122-Nとは異なるアーキテクチャを有してもよく、個別の分類器122-1~122-Nのものとは異なるターゲット・クラスの集合(統合クラス集合)を分類するように訓練されてもよい。統合クラス集合は、個別の分類器122-1~122-Nの個別のクラス集合の和集合とすることができ、したがって、個別のクラス集合内のすべての要素を含むことができる。
【0043】
知識蒸留システム130は、転送コレクション124を準備し、転送コレクション124から抽出された各転送データを個別の分類器122-1~122-Nに供給するように構成される。各個別の分類器122は、転送データの画像が各ターゲット・クラスに属する確率を推論し、予測を出力として生成する。予測は、個別のクラス集合内のターゲット・クラスに対する確率またはロジットを含んでもよい。
【0044】
ソフト・ラベル生成モジュール132は、転送データ(またはサンプル)ごとに、個別の分類器122-1~122-Nによって生成された予測を取得するように構成される。複数の個別の分類器122-1~122-Nから取得された複数の予測は、知識蒸留のための統合ソフト・ラベルを生成するための一次データとして使用される。ソフト・ラベル生成モジュール132は、転送データ(またはサンプル)ごとに、本明細書において新たに導出された確率論的関係を使用して、統合クラス集合内のターゲット・クラスに対する統合ソフト・ラベルを予測から推定するようにさらに構成される。確率論的関係は、各個別の分類器122の出力と統合分類器126の出力とを接続するか、または関連付ける。確率論的関係に関するさらなる詳細については、後に説明する。統合ソフト・ラベルを取得した後、ソフト・ラベル生成モジュール132は、統合ソフト・ラベルを統合モデル訓練モジュール134に出力する。統合ソフト・ラベルは、クラスの識別情報がワン・ホット・ハード・ラベルほど決定論的ではないので、「ソフト」ラベルと呼ばれる。
【0045】
統合モデル訓練モジュール134は、統合分類器126の対応するアーキテクチャに適した学習アルゴリズムを実装し、転送データごとに推定された統合ソフト・ラベルを使用することによって、統合分類器126を教師ありの方式で訓練するように構成される。統合分類器126としてニューラル・ネットワーク・ベースのモデルが採用される場合、逆伝播アルゴリズムが使用されてもよい。
【0046】
より具体的には、統合モデル訓練モジュール134は、各転送データ(またはサンプル)を統合分類器126に供給して、転送データの画像が各ターゲット・クラスに属する確率を推論し、出力を取得するように構成される。統合分類器126の出力は、統合クラス集合内のターゲット・クラスに対する確率またはロジットを含んでもよい。統合モデル訓練モジュール134は、統合ソフト・ラベルと、サンプルごとの統合分類器126の出力との間の損失関数に基づいて、統合分類器126(そのパラメータ)を反復してさらに更新するように構成される。訓練プロセスが完了すると、統合モデル訓練モジュール134は、統合分類器126を適切な記憶デバイスに記憶する。
【0047】
以下では、図2をさらに参照して、新規な知識蒸留に関するさらなる詳細について説明する。ここでは、異種分類器を用いた新規な知識蒸留を、次のように定義する。ラベルなし画像の集合を有する転送コレクション124をUとする。N個の個別の分類器122-1~122-Nの集合をC={C,C,...,C}とする。入力画像xは、転送コレクション124(U)から抽出されて、個別の分類器122-1~122-N{C,C,...,C}に入力され、各個別の分類器122(C)は、画像が個別のクラス集合Lに含まれるクラスlに属する確率p(Y=l)を予測するように訓練されている。
【0048】
UおよびCを考慮すると、目標は、入力画像が統合クラス集合Lに含まれるクラスlに属する確率q(Y=l)を推定する統合分類器126(C)を訓練することであり、ここで、
【数1】
である。
【0049】
個別の分類器122(C)が、ターゲット・クラスの異なる集合を分類するように訓練されてもよいこと、すなわち、その場合、iがjでないとき、ある個別のクラス集合Lが他の個別のクラス集合Lと等しくない場合があること、またはある個別のクラス集合|L|内のクラス数が他の個別のクラス集合|L|内のクラス数と等しくない場合さえあること、あるいはその両方であることに留意されたい。
【0050】
一般に、知識蒸留は、ラベルなしデータの集合Uから複数の教師モデルCを単一のモデルCに圧縮するために使用されるアルゴリズムのクラスである。標準的な蒸留は、次式、
【数2】
のように、個別のクラス集合がすべて同じであり(L=L,∀(i,j))、教師モデルCの出力pと生徒モデルCの出力qとの間の交差エントロピを最小化することによって生徒モデルCが訓練され得るという事例に対応する。
【0051】
本質的に、教師モデルCの出力pは、生徒モデルCを訓練する際に、ラベルなしデータの集合Uのためのソフト・ラベルとして使用される。ニューラル・ネットワークの場合、確率は通常、次式、
【数3】
のようにソフトマックス関数を用いて計算され、ここで、zはクラスlのロジット(ソフトマックス前の活性化)であり、Tは調整可能な温度パラメータを示す。Tの高さが適切であるときに式(1)に示す交差エントロピを最小化することは、pのロジットとqのロジットと間のL2誤差を最小化することと同様であり、それによって交差エントロピの最小化をロジットのマッチングに関連付ける。
【0052】
しかしながら、標準的な蒸留の主な問題は、ある個別のクラス集合Lが他の個別のクラス集合Lと等しくない場合があるという、より一般的な事例に対処できないことに起因する。前述の式(1)は、生徒モデルCと教師モデルCがターゲット・クラスの同じ集合を共有するものと仮定している(L=Lj,=L)。
【0053】
しかしながら、異種分類器では、各教師モデルCは、個別のクラス集合L内のクラスを予測するように訓練され、したがって、統合クラス集合L内のターゲット・クラスの集合として定義されるが個別のクラス集合Lの外にある集合L-iに含まれるlに対して、p(Y=l)は未定義である。教師モデルCと生徒モデルCとの間の出力の不一致に対する単純な解決策は、集合L-iに含まれるlに対して、単にp(Y=l)=0を設定することである。しかしながら、このような単純な解決策では誤差が生じる可能性があり、例えば、教師モデルCが猫を分類しない場合に「猫」画像のp(Y=猫)をゼロに設定することがあり、これは不適切な教師あり学習となる。
【0054】
標準的な蒸留の制限を克服するために、各個別の分類器122(C)の出力pと統合分類器126(C)の出力qとを関連付ける確率論的関係を導入する。個別のクラス集合Lは統合クラス集合Lの部分集合であるので、確率p(Y=l)は、YがL-iに含まれ得ない場合、Y=lの確率qと見なされる。これは、次の微分につながる。
【数4】
【0055】
式(6)は、ある個別の分類器122(C)の出力における各予測値p(Y=l)と、ある個別の訓練済みモデル122(C)の個別のクラス集合Lによって正規化された統合分類器126(C)の出力における対応する予測値q(Y=l)との間の同等性を示す。
【0056】
図3は、個別の分類器122(C)の出力と統合分類器126(C)の出力とを接続する確率論的関係の概略図である。図3に示すように、個別の分類器122(C)は、統合分類器126(C)の部分クラスを出力するものと考えることができる。
【0057】
本発明の1つまたは複数の実施形態による新規な知識蒸留では、この確率論的関係に基づいて、交差エントロピ最小化ベースの技術および欠損しているエントリを伴う行列因数分解ベースの技術を含む2つのクラスの技術が提供される。これらの両方の技術により、統合クラス集合L内のすべてのクラスに対して、ラベルなしサンプルxから統合ソフト・ラベルqを推定し、統合ソフト・ラベルqを使用して統合分類器126を訓練することが可能になる。交差エントロピ・ベースの技術および行列因数分解ベースの技術に関するさらなる詳細については、後に説明する。
【0058】
特定の実施形態において、図1に記載の中央コンピューティング・システム120の各モジュール122、126、130、ならびに図2に示す知識蒸留システム130の各サブモジュール132および134は、処理回路(例えば、CPU(中央処理装置)、GPU(グラフィック処理装置)、FPGA(フィールド・プログラマブル・ゲート・アレイ))、メモリなどのハードウェア・コンポーネントと組み合わせて、プログラム命令またはデータ構造あるいはその両方を含むソフトウェア・モジュールとして、電子回路(例えば、ニューロモルフィック・チップ)を含むハードウェア・モジュールとして、またはそれらの組合せとして実装され得るが、これらに限定されない。
【0059】
図1および図2に記載のこれらのモジュール122、126、130、132、および134は、パーソナル・コンピュータおよびサーバ・マシンなどの単一のコンピュータ・システム、またはコンピューティング・デバイスのコンピュータ・クラスタなどの複数のコンピューティング・デバイスにわたって分散されたコンピュータ・システム上に実装されてもよい。転送コレクション124および個別の分類器122-1~122-Nのコンテンツは、中央コンピューティング・システム120がアクセスできる任意の内部または外部の記憶デバイスまたは記憶媒体に記憶されてもよい。
【0060】
また、図1に記載のデータ・ソース110内の各モジュール114、116は、ソフトウェア・モジュールとして、ハードウェア・モジュールとして、またはそれらの組合せとして実装され得るが、これらに限定されない。図1に記載のこれらのモジュール114、116は、単一のコンピュータ・システム、または複数のコンピューティング・デバイスにわたって分散されたコンピュータ・システム上に実装されてもよい。訓練データ・コレクション112は、モジュール114を実装するコンピュータ・システムがアクセスできる任意の内部または外部の記憶デバイスまたは記憶媒体に記憶されてもよい。
【0061】
個別の分類器122は、中央コンピューティング・システム120のローカル上に配置される必要はないことに留意されたい。個別の分類器122がネットワークを介して利用可能であれば十分である。したがって、個別の分類器122を準備することは、個別の分類器122をローカル・コンピュータ・システムのメモリ空間に読み取ることによって個別の分類器122を利用可能にすること、または転送データ(サンプル)を個別の分類器122に供給することができ、かつ転送データ(サンプル)の結果として得られる予測を個別の分類器122から受け取ることができるように、リモート・コンピュータ・システム上で動作する個別の分類器122との接続を確立することを意味する。
【0062】
さらに、1つまたは複数の実施形態では、中央コンピューティング・システム120からの個別の分類器122へのアクセスさえも必要ない。この状況では、転送コレクション124のコンテンツは、各データ・ソース110に与えられ、エンティティは、転送コレクション124内の各サンプルを個別の分類器122に供給することによって取得されたソフト・ラベル・コレクション、およびそのクラス名を転送するように要求される。次いで、知識蒸留システム130は、ソフト・ラベル・コレクションおよびクラス名を受け取る。
【0063】
図4を参照すると、統合分類器126を訓練するための知識蒸留プロセスを示す流れ図が示されている。図4に示すように、プロセスは、知識蒸留プロセスを開始するよう求める要求をオペレータから受信したことに応答して、ステップS100で開始してもよい。この要求において、個別の分類器122-1~122-N{C,C,...,C}の集合、統合分類器126(C)の構成、および転送コレクション124(U)が指定されてもよい。図4に示すプロセスが、中央コンピューティング・システム120内の1つまたは複数の処理ユニットなどの処理回路によって実行されてもよいことに留意されたい。
【0064】
ステップS101において、処理回路は、転送コレクション124(U)、およびすでに訓練された個別の分類器122-1~122-N{C,C,...,C}を準備してもよい。ステップS102において、処理回路は、統合分類器126を初期化してもよい。ステップS101で準備された各個別の分類器122は、対応する個別のクラス集合Lを有し、一方、ステップS102で準備された統合分類器126は、個別のクラス集合Lの和集合である統合クラス集合Lを有する。
【0065】
ステップS103において、処理回路は、転送コレクション124(U)からサンプルxを読み取ってもよい。ステップS104において、処理回路は、サンプルxを各個別の分類器122(C)に供給することによって、複数の予測pを取得してもよい。ステップS105において、処理回路は、前述の確率論的関係を使用して、予測pから、統合クラス集合Lのすべてのターゲット・クラスに対する統合ソフト・ラベルqを推定してもよい。
【0066】
交差エントロピ・ベースの手法
以下では、交差エントロピの最小化に基づいた統合ソフト・ラベルqを推定するための第1の方法について説明する。確率論的関係(6)に基づいて、前述のコスト関数(1)を、次のコスト関数、
【数5】
に一般化することができ、ここで、
【数6】
である。
【0067】
前述の式(1)と式(7)の違いは、確率qの正規化にある。具体的には、各個別の分類器122(C)の交差エントロピは、確率p(Y=l)と、個別のクラス集合Lのターゲット・クラスに対する正規化された確率q (Y=l)との間で計算される。式(7)によれば、欠損しているターゲット・クラスL-iに対して任意に定義されたp(Y=l)の値は、必要ない。
【0068】
統合クラス集合L内のすべてのクラスに対して確率pが存在すると仮定すると、
【数7】
である場合、q=pはコスト関数(7)の大域的最小値である。これは、コスト関数(7)の大域的最小値の形式を確立し、コスト関数(7)を最小化することにより、真の基礎となる確率pが存在する場合にそれが得られることを確立する。
【0069】
確率分布qが与えられると、前述のコスト関数(7)は、それぞれが1つの個別の分類器122(C)の予測に対応する、複数の参照確率分布p(Y=l)と、それぞれが各個別のクラス集合L内のターゲット・クラスに対して与えられた確率分布qを正規化することによって取得される、複数の正規化された分布q (Y=l)との間の誤差を測定する。確率分布qに関する前述のコスト関数(7)を最小化することによって、最適分布qが、統合クラス集合Lのすべてのターゲット・クラスに対する統合ソフト・ラベルとして取得される。説明する実施形態では、コスト関数は目的関数として使用されており、したがって、目的関数を最適化する問題は、コスト関数を最小化することである。
【0070】
前述のコスト関数(7)の最小化を、幾何学的プログラムに変換することができ、次いで、幾何学的プログラムを凸問題に変換して、効率的に解くことができる。要するに、新しい一時変数u(∈R)は、統合クラス集合Lに含まれる各クラスlに与えられ、各一時変数uは、確率q(Y=l)の対数関数で表される(すなわち、u=log q(Y=l))。したがって、特定の実施形態において、前述の式(7)を、次式
【数8】
に変換することができ、この関数は、新しい一時変数{uのスケーリングされたlog-sum-expの合計であるので、一時変数{uにおいて凸である。式(9)を、勾配降下法などの適切な方法を使用して最小化することができる。確率分布qは、凸問題におけるそれぞれの一時変数uの指数関数(すなわち、exp(u))の集合によって表されるので、最適な一時変数{uが取得されると、最適な一時変数{uは、前述のソフトマックス関数(2)によって確率の形式のqに変換される。確率分布q、したがって統合ソフト・ラベルは、この凸問題を解くことによって取得することができる。説明する実施形態では目的関数として交差エントロピ関数が使用されているが、他の実施形態では、カルバック・ライブラ(KL:Kullback-Leibler)ダイバージェンスもまた目的関数として使用することができ、その理由は、KLダイバージェンスと交差エントロピが一般に異なる場合でも、交差エントロピおよびKLダイバージェンスは、最適化されたときに同じ解を提供するという意味で同等であるからである。
【0071】
行列因数分解ベースの手法
以下では、欠損しているエントリを伴う行列因数分解に基づく統合ソフト・ラベルqを推定するための手法の第2のクラスについて説明する。異種分類器を統合する問題を、ソフト・ラベルの不完全な行列を埋める問題と位置付けることが可能である。以下では、行列因数分解を使用して予測{pの集合から統合ソフト・ラベルqを復元する3つの方法について説明する。
【0072】
確率空間での行列因数分解
確率行列P∈[0,1]LxNについて考える。ここで、Pli(行lおよび列iの要素)は、lが個別のクラス集合Lに含まれている場合はp(Y=l)に設定され、そうでない場合はゼロ(0)に設定される。確率行列Pは、欠損しているエントリを伴う確率の形式で予測pを表す。これらの欠損している予測を考慮するために、マスク行列M∈[0,1]LxNが定義され、ここで、Mli(行lおよび列iの要素)は、lが個別のクラス集合Lに含まれている場合はイチ(1)であり、そうでない場合はゼロ(0)である。マスク行列Mは、個別のクラス集合L内に欠損しているクラスが存在することを表す。
【0073】
式(6)におけるpとqとの間の確率論的関係を使用して、確率行列Pを、
【数9】
のように、ベクトルのマスクされた積に因数分解することができ、丸で囲んだ点はアダマール積を表す。ここでは、ベクトルuは、確率の形式で表された分布qを含む出力ベクトルであり、ベクトルv内の各要素は、各個別の訓練済みモデル(C)の正規化係数を含み、したがって、ベクトルvを正規化ベクトルvと呼ぶ。
【0074】
この形式では、確率出力ベクトルuは、次のランク1行列補完問題、
【数10】
を解くことによって推定することができ、ここで、||.||はフロベニウス・ノルムを示し、0および1は、サイズkのゼロのベクトルおよびサイズkのイチのベクトルを示す。
【0075】
ここでは、式(12)は、変数としての出力ベクトルuおよび正規化ベクトルvに関する目的関数を最適化する問題を表し、目的関数は、マスク行列Mを用いて、欠損しているエントリを伴う確率行列Pと、出力ベクトルuと正規化ベクトルvの積との間の誤差を測定する。制約(14)は、正規化ベクトルvが非負ベクトルであることを保証する。制約(13、14)は、出力ベクトルuが確率ベクトルであることを保証する。この定式化は、非負行列因数分解と見なすことができ、この非負行列因数分解は、例えば、出力ベクトルuが各反復において合計が1になるように正規化される、交互最小二乗(ALS:Alternating Least Square)法を使用することによって解くことができる。ゲージ自由度により、ベクトルuにおけるこの正規化は、コスト関数に影響を与えない。
【0076】
ロジット空間での行列因数分解
上記のように、交差エントロピを最小化することと、個別の分類器122(C)のロジットと統合分類器126(C)の間のL2距離との間には関係がある。したがって、低ランク行列因数分解をロジットに適用することができる。この定式化は、実際にはロジット・マッチングの一般化である。z を、個別の分類器122(C)のクラスlの与えられたロジット出力とし、uを、推定されるロジット出力ベクトルとする。ニューラル・ネットワーク以外のアルゴリズムの場合、ロジットは、z =log p(Y=l)を介して確率から取得することができる。ロジット行列Z∈RLxNについて考える。ここで、z (行lおよび列iの要素)は、lが個別のクラス集合Lに含まれている場合はz であり、そうでない場合はゼロ(0)である。ロジット出力ベクトルu∈Rを推定する問題は、次式
【数11】
のように定式化することができ、ここで、ベクトルc∈Rは、ロジットにおけるシフトを処理するので、ロジット・シフト・ベクトルcと呼ばれ、r∈Rは、正則化を制御するハイパ・パラメータである。
【0077】
ロジット値のシフトは確率出力に影響を与えないが、個別の分類器の異なるシフトは、それを行列因数分解としてモデル化するように処理される。ここでは、スケーリング・ベクトルv∈Rを最適化することは、各個別の分類器122(C)からのロジットの温度を最適化することに類似しており、確率に影響を与え得るロジットの符号反転を防ぐために、ロジット・スケーリング・ベクトルvは非負に制約される。
【0078】
式(15)は、変数としてのロジットの形式で表される出力ベクトルu、ロジット・スケーリング・ベクトルv、およびロジット・シフト・ベクトルcに関する目的関数を最適化する問題を表し、目的関数は、マスク行列Mを用いて、欠損しているエントリを伴うロジット行列Zと、出力ベクトルuとロジット・シフト・ベクトルcによってシフトされたロジット・スケーリング・ベクトルvの積との間の誤差を測定する。前述の式(15)で定義される問題は、ベクトルu、ベクトルv、およびベクトルcに対してALSを使用することによって解くことができる。ここでは、出力ベクトルuに対する制約がないため、出力ベクトルuは正規化されない。確率空間内の統合ソフト・ラベルqは、前述のソフトマックス関数(2)を使用して出力ベクトルuから取得されてもよく、uおよびqは、zおよびp(Y=l)と見なされる。uからqを復元することによって、取得されたソフト・ラベルqを使用して、ソフト・ラベルを受け入れる統合分類器を訓練することができる。他の実施形態において、取得された出力ベクトルuを直接使用して、ロジット(例えば、最後のソフトマックス層が除去されたニューラル・ネットワーク)を他のタイプのソフト・ラベルとして出力できる統合分類器を訓練してもよい。出力ベクトルuにおけるロジットは表現における確率qとは異なるが、本明細書に記載の統合ソフト・ラベルには、ロジット空間内の値を含む。
【0079】
固定スケーリング・ベクトルvを用いたロジット空間での行列因数分解
一方、ベクトルvを変数として設定することによって、前述の式(15)がロジットの異なるスケーリングを処理できるようになる。しかしながら、uvにおけるゲージ自由度は、次式
【数12】
のように、uにおける任意のスケーリングにつながる可能性がある。
【0080】
次に、正則化は、ベクトルuとベクトルvのノルムが大きくなりすぎるのを防ぐのに役立つが、転送コレクション124(U)内のすべてのデータに対してうまく機能する単一の正則化ハイパ・パラメータrを設定することは困難である。これらの問題に対処するために、スケーリング・ベクトルvを1に固定する、(15)の別の定式化を提案することができる。スケーリング係数vが固定される場合、ベクトルuのスケールはZによって決定されるので、ベクトルuの正則化は必要ない。さらに、新しい定式化は凸であり、大域最適性に対して解くことができる。固定スケーリング・ベクトルを用いてロジット出力ベクトルu∈Rを推定する問題は、次式
【数13】
のように、定式化することができる。
【0081】
式(17)は、ロジットの形式で表される出力ベクトルuおよびロジット・シフト・ベクトルcに関する目的関数を最適化する問題を表し、目的関数は、マスク行列Mを用いて、欠損しているエントリを伴うロジット行列Zと、出力ベクトルuとロジット・シフト・ベクトルcによってシフトされた固定スケーリング・ベクトルの積との間の誤差を測定する。前述の式(17)によって定義される問題は、ベクトルuおよびベクトルcに対する勾配降下法などの適切な方法で解くことができる。また、確率空間内の統合ソフト・ラベルqは、ソフトマックス関数(2)を使用して、ロジット空間内の出力ベクトルuから取得されてもよい。代替として、取得された出力ベクトルuを直接使用して、ロジットを他のタイプのソフト・ラベルとして出力できる統合分類器を訓練してもよい。
【0082】
図4を再び参照すると、ステップS106において、処理回路は、同じサンプルを現在の統合分類器126に供給して、出力pを推論してもよい。ステップS107において、処理回路は、統合ソフト・ラベルqと現在の統合分類器126の出力pとの間の損失関数に基づいて、現在の統合分類器126を更新してもよい。
【0083】
特定の実施形態において、統合分類器126を訓練するために使用される損失関数は、次の交差エントロピ関数、
【数14】
として表され、ここで、qは、疑似ラベルとして機能するステップS105で推定された統合ソフト・ラベルを表し、pは、パラメータθを有する現在の統合分類器126の統合クラス集合内のクラスに対する出力確率を表す。例示的な実施形態では、個別の分類器122を統合するための転送データとして、ラベルなしデータが使用され、したがって、中央コンピューティング・システム120でデータにラベル付けするための労力は必要ない。しかしながら、転送データに割り当てられたハード・ラベルが利用可能である場合、ハード・ラベルを使用して、訓練プロセス中にソフト・ラベルと交互または同時の方法で統合分類器126のパラメータθを更新してもよい。
【0084】
ステップS108において、処理ユニットは、終了条件が満たされているかどうかを判定してもよい。例えば、所定数のエポックが完了すると、終了条件が満たされていると判定される。処理ユニットが、ステップS108で終了条件がまだ満たされていないと判定した場合、プロセスは、さらなる反復のためにステップS103にループして戻ってもよい。一方、処理ユニットが、ステップS108で終了条件がすでに満たされていると判定した場合、プロセスは、ステップS109に進んでもよい。ステップS109において、処理ユニットは、現在の統合分類器126を記憶してもよく、プロセスは、ステップS110で終了してもよい。訓練の反復は、転送例(例えば、オンライン訓練)ごと、または転送例の所定のセット(例えば、バッチ訓練、ミニバッチ訓練)ごとに実行され得ることに留意されたい。
【0085】
以下では、図5を参照して、本発明の他の例示的な実施形態による知識蒸留システムについて説明する。図5は、本発明の他の例示的な実施形態による知識蒸留システムのブロック図である。図2に示す実施形態と図5に示す実施形態との間の違いは、知識蒸留システム130内にソフト・ラベル・ストア136および均衡化モジュール(balancing module)138が存在することである。
【0086】
上記のように、転送コレクション124(U)から抽出されたサンプルxごとに、統合ソフト・ラベルqが、複数の予測{pから推定され、統合分類器126(C)を訓練するために使用される。しかしながら、場合によっては、転送コレクション124(U)全体から推定されたソフト・ラベルqの集合は、不均衡である可能性がある。すなわち、推定された統合ラベルqは、特定のクラスを他のクラスよりも優先することがあり、クラスの同じ集合に対してバイアスされるように統合分類器126(C)を訓練することにつながる可能性がある。このバイアスを打ち消すために、統合ソフト・ラベルqを使用して統合分類器126(C)を訓練するときに、交差エントロピ損失に重み付けを適用することができ、各クラスlの重みは、転送コレクション124(U)からのすべてのデータに対する確率q(Y=l)の静的変数(static)に基づく方法で計算される。重み付けのための静的変数として、すべてのデータに対する確率q(Y=l)の平均の逆数が使用されてもよい。
【0087】
この例示的な実施形態では、ソフト・ラベル生成モジュール132は、各転送データの統合ソフト・ラベルをソフト・ラベル・ストア136に格納するようにさらに構成される。転送コレクション124(U)内のすべての転送データのソフト・ラベルを取得した後、均衡化モジュール138は、転送コレクション124(U)からのすべてのデータに対する確率q(Y=l)の静的変数を算出し、静的変数を重み付けとして保存するように構成される。統合モデル訓練モジュール134は、統合分類器126を訓練する際に、統合クラス集合内のターゲット・クラスに対する重み付けによって損失関数を重み付けするように構成される。
【0088】
前述の実施形態によれば、統合ソフト・ラベルqが、最初に推定されて、統合分類器126を教師ありの方式で訓練するために使用される。しかしながら、統合分類器126(C)がニューラル・ネットワークである場合、最初にqを推定する必要なしにqの推定の損失がニューラル・ネットワーク全体に直接逆伝播されるという代替の方法がある。
【0089】
以下では、図6および図7を参照して、本発明のさらに他の例示的な実施形態による、最初に統合ソフト・ラベルqを推定する必要なしに、個別の分類器122-1~122-Nから取得されたデータを使用して統合分類器126を更新する知識蒸留について説明する。
【0090】
図6は、本発明のさらに他の例示的な実施形態による、知識蒸留システムのブロック図である。図2に示す実施形態と図6に示す実施形態との間の違いは、図2に示すソフト・ラベル生成モジュール132が省略され、更新モジュール140が統合モデル訓練モジュール134に組み込まれている点である。また、統合分類器126がニューラル・ネットワーク・ベースのモデルであることにも留意されたい。
【0091】
更新モジュール140は、転送データ(またはサンプル)ごとに、個別の分類器122-1~122-Nによって生成された予測pを取得するように構成される。更新モジュール140はまた、各サンプルを統合分類器126に供給して、統合クラス集合内のターゲット・クラスに対する予測値を推論するように構成される。更新モジュール140は、個別の分類器122-1~122-Nの出力と統合クラス集合L内のターゲット・クラスに対する統合分類器126の出力とを接続する前述の確率論的関係を用いて、サンプルごとに、統合分類器126の予測値および個別の分類器122-1~122-Nの予測を使用して、統合分類器126(そのパラメータθ)を更新するようにさらに構成される。訓練プロセスが完了すると、統合モデル訓練モジュール134は、統合分類器126を適切な記憶デバイスに記憶する。
【0092】
図7を参照すると、さらに他の例示的な実施形態による知識蒸留プロセスを示す流れ図が示されている。図7に示すように、プロセスは、知識蒸留プロセスを開始するよう求める要求をオペレータから受信したことに応答して、ステップS200で開始してもよい。図7に示すプロセスは、中央コンピューティング・システム120内の1つまたは複数の処理ユニットなどの処理回路によって実行されてもよい。
【0093】
ステップS201において、処理回路は、転送コレクション124(U)、および個別の分類器122-1~122-N{C,C,...,C}を準備してもよい。ステップS202において、処理回路は、統合分類器126を初期化してもよい。ステップS203において、処理回路は、転送コレクション124(U)からサンプルxを読み取ってもよい。ステップS204において、処理回路は、サンプルxを各個別の分類器122(C)に供給することによって、複数の予測pを取得してもよい。ステップS205において、処理回路は、同じサンプルを現在の統合分類器126に供給して、出力qを推論してもよい。
【0094】
ステップS206において、処理回路は、個別の分類器122-1~122-Nの予測p、およびすべてのターゲット・クラスに対する現在の統合分類器126の出力qからの前述の確率論的関係を用いて損失関数に基づいて、現在の統合分類器126を更新してもよい。
【0095】
交差エントロピ・ベースの手法の場合、式(7)におけるqは、現在の統合分類器126(C)から出力される確率と見なされ、損失は、直接逆伝播され得る。ステップS206において、参照分布pと、各個別のクラス集合内のターゲット・クラスに対する分布qを正規化することによって取得される正規化された分布q との間の誤差を測定する損失関数(7)に基づいて、統合分類器126(C)のニューラル・ネットワーク全体に損失を逆伝播することによって、現在の統合分類器126が更新され、分布qは、ステップ205で統合分類器126によって推論される予測値として取得される。損失関数(7)を使用して、損失関数の勾配を使用する形式で、逆伝播を通じてパラメータθを更新する。
【0096】
行列因数分解手法の場合、出力ベクトルuは、統合分類器126(C)からの確率出力のベクトルまたはロジット出力のベクトルのいずれかと見なされる。出力ベクトルuが取得されると、出力ベクトルuは、各定式化(12)、(15)、または(17)に代入され、出力ベクトルuが固定された状態で他の変数(例えば、vおよびc)に関する問題が解かれ、次いで、出力ベクトルuを介して損失が逆伝播される。統合分類器126は、ニューラル・ネットワーク全体に損失を逆伝播することによって更新され、損失は、統合モデルの出力ベクトルuおよび他の変数(例えば、vおよびc)を有する目的関数を最適化する問題を行列因数分解に基づく方法で解くことによって取得される。出力ベクトルuは、統合分類器126によって推論された予測値として取得され、問題において固定される。例えば、定式化(15)について考える。この場合、統合分類器126(C)から出力ベクトルuを取得した後、定式化(15)における出力ベクトルuの値が固定され、次いで、ロジット・スケーリング・ベクトルvおよびロジット・シフト・ベクトルcに関する、定式化(15)によって表される目的関数が、それらの最適値が得られるまで最適化される。次いで、ベクトルvおよびベクトルcが固定され、出力ベクトルuに対して式(15)の勾配が計算される。次いで、この勾配を使用して、統合分類器126(C)を逆伝播することができる。
【0097】
どちらの手法においても、損失を直接逆伝播することは、qを推定するステップと、推定されたqを使用して統合分類器126(C)を訓練するステップとを単一のステップにマージするのに役立つ。これにより、qを推定する際の誤差の蓄積が統合分類器126(C)の訓練に対して伝播するのを防止する。
【0098】
ステップS207において、処理ユニットは、終了条件が満たされているかどうかを判定してもよい。処理ユニットが、ステップS207で終了条件がまだ満たされていないと判定した場合、プロセスは、さらなる反復のためにステップS203にループして戻ってもよい。一方、処理ユニットが、ステップS207で終了条件がすでに満たされていると判定した場合、プロセスは、ステップS208に進んでもよい。ステップS208において、処理ユニットは、現在の統合分類器126を記憶してもよく、プロセスは、ステップS209で終了してもよい。
【0099】
本発明の1つまたは複数の実施形態によれば、個別の訓練済みモデル(個別の分類器122-1~122-N)がターゲット・クラスの異なる部分集合を有する場合でも、個別の訓練済みモデルの知識を統合モデル(統合分類器126)に転送することが可能である。統合ソフト・ラベルは、統合モデルの出力と合致する方法で個別の訓練済みモデルによって生成された予測から推定される。
【0100】
さらに、統合ソフト・ラベルを使用して訓練された統合モデルは、特に、次の実験セクションで説明するように、個別の訓練済みモデルを訓練するために使用される訓練データを用いて集中型の教師ありの方式で直接訓練されたモデルに匹敵する高いパフォーマンスを示す。アンサンブル法とは対照的に、統合モデルを訓練するために使用される個別の訓練済みモデルは推論には必要なくなるが、一方アンサンブル手法では、すべてのモデルを記憶して実行する必要があるため、複雑なモデルが使用される場合にスケーラビリティの問題が生じることがある。新しいモデルを訓練することにより、アンサンブル法と比較して計算コストを削減することができる。また、確率論的関係を導入することによって、個別の訓練済みモデルの予測において欠損しているターゲット・クラスに対して不適切な教師あり学習を提供することが回避され、このような不適切な教師あり学習による統合モデルのパフォーマンスの低下を防止することが可能である。
【0101】
前述の交差エントロピ手法および行列因数分解手法は、個別の分類器122の予測pから統合ソフト・ラベルqを解くための実用的な解決策を提供する。
【0102】
さらに、新規な知識蒸留を実行するために、個別の訓練済みモデルを訓練するために使用される訓練データのデータ転送は必要ない。個別の訓練済みモデルのコンテンツ、および個別の訓練済みモデルから取得されたソフト・ラベル・コレクションは生データではなく、一般に、その訓練データよりもコンパクトである。また、個別の訓練済みモデルのモデル・アーキテクチャに対する制約も少なくなる。したがって、これは、モデル・アーキテクチャ、計算、データの可用性、および機密性の制約のうちの少なくとも1つが存在する状況において好ましい。
【0103】
計算、データの可用性、および機密性の制約のために、すべてのエンティティに、同じモデル/アーキテクチャを使用させること、すべてのクラスについて十分な訓練データを収集させること、または中央ノードにデータを送信させることが不可能な場合のための、実用的な適用例が存在し得る。
【0104】
前述の実施形態により、新規な知識蒸留について、画像分類のコンテキストで説明してきた。しかしながら、本発明の1つまたは複数の実施形態による新規な知識蒸留によって訓練される分類器は、画像分類器に限定されない。1つまたは他の実施形態では、いくつかの例を挙げると、音声認識、手書き認識、医療画像分析、パターン認識を含む多くの適用例が企図され得る。
【0105】
本発明による1つまたは複数の特定の実施形態に関して得られる利点について説明したが、いくつかの実施形態はこれらの潜在的な利点を有さない場合があり、これらの潜在的な利点は必ずしもすべての実施形態に必要とされるわけではないことを理解されたい。
【0106】
実験的研究
例示的な実施形態による一連の図1図7を参照して説明した知識蒸留システムおよび知識蒸留プロセスを実装するプログラムを、コード化して実行した。
【0107】
ImageNet、LSUN、およびPlaces365のデータセットでの主な実験について説明する。以下では、前述の方法について、次の略語、すなわち、集合L-iに含まれるlに対して単にp(Y=l)=0が設定される標準的な蒸留(比較例1)の単純な拡張に対する略語SD、交差エントロピ・ベースの方法(例1~例3)に対する略語CE-X、確率の行列因数分解(例4~例6)に対する略語MF-P-X、固定されていないロジットvの行列因数分解(例7~例9)および固定されたロジットvの行列因数分解(例10~例12)のそれぞれに対する略語MF-LU-XおよびMF-LF-Xを使用して示す。前述の略語において、接尾辞「X」は、統合ソフト・ラベルqを使用して統合分類器126(C)を訓練する前に最初に統合ソフト・ラベルqが推定される場合(例1、4、7、10)は「E」に、損失関数からの直接逆伝播が実行される場合(例2、5、8、11)は「BP」に、統合分類器126(C)を訓練する前に、統合ソフト・ラベルqが静的変数としての確率q(Y=l)の平均の逆数によって均衡化される場合(例3、6、9、12)は「BS」に置き換えられる。前述の方法に加えて、均衡化されたソフト・ラベルを用いるSD法(比較例2)としてSD-BSが含まれ、すべての個別の分類器122(C)のすべてのラベル付きデータを用いて教師あり方式で直接訓練される方法としてのSPV(比較例3)がベンチマークとして含まれる。MF-LU-X法の場合、ハイパ・パラメータr=0.01を使用した。すべての方法において、温度T=3を使用してソフト・ラベルおよびロジットを平滑化した。
【0108】
最初に、実験プロトコル、データセットの詳細、個別の分類器122(C)および統合分類器126(C)として使用されるアーキテクチャ、ならびに個別の分類器122(C)の構成について説明する。次いで、結果について説明する。
【0109】
実験プロトコル:
データセット:3つのデータセットを使用した。第1のデータセットは、ImageNet(ILSVRC2012)である。このデータセットには、1000個のクラスと共に、1クラス当たり約700~1300枚の訓練画像および約50枚の検証画像、ならびに約10万枚のラベルなしテスト画像が含まれている。この実験では、訓練画像を個別の分類器122-1~122-N(C)の訓練データとして使用し、ラベルなしテスト画像を転送コレクション124(U)として使用し、検証画像を、正確度を評価するためのテスト・セットとして使用した。第2のデータセットはLSUNであり、LSUNには、10個のクラスと共に、1クラス当たり約10万~300万枚の訓練画像(クラスによって異なる)および300枚の検証画像、1万枚のラベルなしテスト画像が含まれている。ここでは、個別の分類器122(C)を訓練するために1クラス当たり1000枚の訓練画像のセットをランダムにサンプリングし、同様に訓練データからランダムにサンプリングした1クラス当たり2万枚の画像の第2のセットを、転送コレクション124(U)として使用し、検証データをテスト・セットとして使用した。第3のデータセットは、Places365である。このデータセットには、365個のクラスと共に、1クラス当たり約3000~5000枚の訓練画像および100枚の検証画像、ならびに32万9000枚のラベルなしテスト画像が含まれている。この実験では、訓練画像を個別の分類器122-1~122-N(C)用の訓練データとして使用し、ラベルなしテスト画像を転送コレクション124(U)として使用し、検証画像を、正確度を評価するためのテスト・セットとして使用した。すべての画像を、中央トリミング、および64×64画素へのスケーリングによって前処理した。
【0110】
個別の分類器の構成:
提案する方法を、(表1に要約されている)個別の分類器の2つの構成の下でテストした。(i)ランダムなクラス:ImageNetデータセットの場合、各試行において、20~50個のクラスをLとしてサンプリングし、10~20個の個別の分類器122(C)を、それぞれ5~15個のクラスを分類するように訓練した。LSUNデータセットの場合、各試行において、5~10個のクラスをLとしてサンプリングし、3~7個の個別の分類器122を、それぞれ2~5個のクラスを分類するように訓練した。この構成を、個別の分類器122(C)がクラスの異なる集合を分類するときのメイン・テストとして使用した。Places365データセットの場合、各試行において、20~50個のクラスをLとしてサンプリングし、10~20個の個別の分類器122(C)を、それぞれ5~15個のクラスを分類するように訓練した。(ii)完全に重複するクラス:ここでは、すべての個別の分類器122(C)をL内のすべてのクラスを分類するように訓練したことを除いて、(i)と同じ構成を使用した。この事例は、提案する方法をすべての分類器CおよびCが同じクラスを共有する共通の構成の下でテストするために使用される。どちらの構成でも、転送コレクション124(U)を、Lよりもはるかに幅広いクラスの集合で構成した。言い換えれば、転送コレクション124(U)内の画像の大部分は、L内のどのクラスにも該当していなかった。
【0111】
【表1】
【0112】
モデル:
ImageNetの事前訓練済みの重みを有する次の4つのアーキテクチャ、すなわちAlexNet、VGG16、ResNet18、およびResNet34のうちの1つから、各個別の分類器122(C)をランダムに選択した。AlexNetおよびVGG16の場合、特徴抽出部の重みを固定し、それらのfc(全結合)層を(BatchNormおよびReLuを用いて)256個の隠れノードを有する2つのfc層に置き換え、fc層をその訓練データで訓練した。同様にResNetモデルでも、上記のように、それらのfc層を256個の隠れノードを有する2つのfc層に置き換えた。さらに、最後の残りのブロックを微調整した。統合分類器126(C)については、VGG16およびResNet34を含む2つのモデルを、上記と同様の設定で使用した。
すべてのデータセットおよび構成について、各個別の分類器122(C)を、1クラス当たり50~200個のサンプルを用いて訓練した。同じ試行において、サンプルを個別の分類器122(C)間で共有しなかった。次いで、転送コレクション124(U)と共にこれらの個別の分類器122(C)を使用して、統合分類器126(C)を訓練した。SGD(Stochastic Gradient Descent:確率的勾配降下法)オプティマイザを用いて、すべてのモデルを20エポックで訓練した(運動量0.9で、最初の10エポックのステップ・サイズを0.1、後半の10エポックのステップ・サイズを0.015とした)。結果の変動を制御するために、各試行において、同じアーキテクチャの統合分類器126(C)を、同じ重みを使用して初期化し、同じバッチ順序を使用して訓練した。すべての方法の統合分類器126(C)を、それぞれの試行のL内のすべてのクラスのテストデータで評価した。データセット、モデル、および個別の分類器構成の組合せごとに、50回の試行を実行した。
【0113】
結果:
評価された正確度の結果を、次の表2および表3にまとめる。
【0114】
【表2】
【0115】
【表3】
表2および表3は、個別の分類器の構成、データセット、および統合分類器モデルの様々な組合せに対する方法の正確度を示す。各列は、各実験設定での各方法の平均正確度を示しており、各設定のSPVを除いた最良の結果を、太字の下線で示している。統計的有意性をテストするために、標準偏差に対するウィルコクソン符号順位検定を選択して、試行間で大きく異なる設定(例えば、モデル・アーキテクチャ、クラス数、およびHCなど)に対応した。各実験で最もパフォーマンスの高い方法と残りの方法との間でテストを実行した。α=0.01でパフォーマンスが最良の方法と統計的に有意に異ならない方法を太字で示している。
【0116】
以下では、各個別の分類器122がクラスの異なる集合を分類するように訓練されたときに、提案する新規な知識蒸留の主なシナリオに対処するランダムなクラスの事例に関する結果について説明する。
【0117】
表2に示すように、提案するすべての方法(例1~12)が、SD(比較例1)よりも大幅に高いパフォーマンスを示した。表2の、接尾辞「E」の付いた、qを推定する方法(例1、4、7、10)、接尾辞「BP」の付いた直接逆伝播法(例2、5、8、11)、ならびに(SD-BSを含む)接尾辞「BS」の付いた均衡化法(例3、6、9、12、および比較例2)におけるすべての方法が、SD(比較例1)を9~15%という大幅な差で上回った。各個別の分類器の未定義クラスの確率を0に設定するだけでは、正確度が大幅に低下する可能性があることが示された。一方、提案する方法(例1~12)は、大幅に優れた結果を達成し、1~4%のギャップでSPV(比較例3)とほぼ同じ正確度に達した。これは、転送コレクション124(U)にターゲット・クラスの一部ではない画像がかなりの割合で含まれている場合でも、正確度をわずかに犠牲にするだけで個別の分類器122(C)からのソフト・ラベルを教師なし訓練に使用できることを示唆している。その場合も、SPVの正確度に達することで統合分類器126(C)の能力に影響を及ぼし得る、例えば個別の分類器122(C)、それらのアーキテクチャの正確度などのいくつかの因子が存在する。
【0118】
様々なアルゴリズムが様々な設定の下で最高のパフォーマンスを示すが、vが固定されたロジットの行列因数分解(例10~12)は常に最高のパフォーマンスを示すか、または最良の方法と統計的な差がないことが分かる。これは、vが固定されたロジットの行列因数分解が、異種分類器を統合する問題を解くための最良の方法であり得ることを示唆している。
【0119】
改善はわずか(1.5%未満)である場合があるが、接尾辞「BS」の付いたラベル均衡化法(例3、6、9、12)は、接尾辞「E」の付いた対応する方法(例1、4、7、10)を一貫して上回った。これらの結果は、均衡化されたソフト・ラベルを使用して統合分類器126(C)を訓練することが良いことを示している。SD-BS(比較例2)は大幅な向上を得たが、依然として他のCE法およびMF法(例1~12)を概ね下回っており、{pとqと間の関係を訓練に組み込むことが重要であると示唆していることに留意されたい。
【0120】
接尾辞「E」および「BS」の付いた方法は、統合分類器126(C)を訓練する前にqを推定することに基づいているが、接尾辞「BP」の付いた方法は、損失関数から直接逆伝播を実行した。交差エントロピ(CE)の損失、およびvが固定されたロジットの行列因数分解(MF-LF)は、それらの変数において凸であり、一方、確率の行列因数分解(MF-P)およびvが固定されていないロジットの行列因数分解(MF-LU)は、非凸である。ここでは、凸損失を伴う方法は、損失を直接逆伝播するよりもqを最初に推定した方が高いパフォーマンスを示したが、非凸損失では逆の結果になるという、小さいながらも興味深い現象が観察される。これは、非凸法の場合にqが推定されるときの誤差の蓄積が、その後、統合分類器126(C)に受け継がれて訓練されるが、非凸「BP」法はこのような局所的な誤差の蓄積を回避できる可能性があることが原因である場合がある。一方、凸法は、大域的に最適なqを推定することができ、したがって、それを使用して統合分類器126(C)を訓練することにより、不良な局所的最適条件を回避することができる。
【0121】
次に、表3を参照して、完全に重複する事例の結果について説明する。すべての方法(例1~12)が、ある程度同等にうまく機能した。すべての方法がSD(比較例1)とほぼ同じ正確度を達成したことが分かる。これは、すべての個別の分類器がすべてのクラスを分類するように訓練されている一般的な事例においても、提案する方法がうまく機能できることを示し、提案する方法が知識蒸留の一般化であることを裏打ちする。
【0122】
ソフト・ラベルを均衡化すると、正確度がわずかに低下する傾向があることに留意されたい。ここでは、ランダムなクラスの事例で正確度が向上したSD-BS(比較例2)でさえも、対応するSD(比較例1)よりパフォーマンスが劣っていた。これは、この事例においては、ソフト・ラベルを均衡化しないことが、より良い選択肢である場合があることを示唆している。
【0123】
LSUNおよびPlaces365のデータセットの場合、すべての方法(例1~12)がSPV(比較例3)よりもパフォーマンスが高いことが分かる。特にVGG16の事例の場合、SPVは、50回の試行のほとんどで一貫して他の方法よりも1~3%だけパフォーマンスが劣っていた。これは、蒸留ベースの方法が、その教師ありの方法よりも上回る可能性があることを示す。
【0124】
感度分析
さらに、個別の分類器122(C)の転送集合のサイズ、温度パラメータT、および正確度の影響について、3セットの感度分析を実行した。統合分類器126(C)としてVGG16を用いて、ImageNetのランダムなクラスの実験と同じ設定を使用した。各テストで50回の試行を実行した。前のセクションから、SDおよびパフォーマンスが高い方法の代表的なセットとして、次の5つの方法、すなわちSD(比較例4)、SD-BS(比較例5)、MF-P-BP(例13)、MF-LF-BS(例14)、およびCE-BS(例15)を評価した。
【0125】
転送集合のサイズ:転送集合U内のラベルなしサンプル数の影響を評価するためのテストを使用した。サンプル数を、10から10まで変化させた。結果を図8Aに示す。予想通り、転送集合のサイズが縮小するにつれて、すべての方法が劣化することが分かる。このテストでは、MF-P-BP(例13)は、正確度が最も速く低下するため、縮小によって最も影響を受ける。それでも、他のすべての方法(例13~15)が、テスト範囲全体でSDよりもパフォーマンスが高く、様々なサイズの転送集合に対するロバスト性を示している。
【0126】
温度:このテストでは、確率{pを平滑化するために使用される温度Tを、qの推定またはCの訓練に使用する前に変化させた。評価される値は、T=1、3、6、および10である。結果を図8Bに示す。Tを高い値および低い値に設定すると、SDおよびSD-BS(比較例4~5)の正確度がそれぞれ大幅に低下することが分かる。一方、他の3つの方法(例13~15)は、Tの値が異なることによる影響が少ない。
【0127】
個別の分類器の正確度:このテストでは、方法のロバスト性を、個別の分類器122(C)の様々な正確度に対して評価した。テスト・プロトコルは次の通りである:各試行において、すべての個別の分類器122(C)の正確度を40~80%に変化させ、pを個別の分類器122(C)から取得して方法の実行に使用した。個別の分類器122(C)の正確度を変化させるために、訓練データから1クラス当たり50個のサンプルを調整用集合として取得し、残りの訓練データから個別の分類器122(C)を完全に訓練し、次いで、調整用集合に対する正確度が所望の値に低下するまで、ガウス雑音を増加させて最後のfc層に注入する。個別の分類器122(C)の初期の正確度が所望の値を下回る場合、単に初期Cを使用した。この評価の結果を図8Cに示す。個別の分類器122(C)の正確度が向上するにつれて、すべての方法(例13~15)の正確度が向上して、パフォーマンスが高まることが分かり、個別の分類器122(C)の正確度がパフォーマンスの注目すべき因子であることを示している。また、MF-P-BP(例13)が、個別の分類器122(C)の正確度が低いことによって最も影響を受け、一方、MF-LF-BS(例14)が最もロバストであることが分かる。
【0128】
感度分析に基づいて、MF-LF-BS(例14)が、個別の分類器122の転送集合内のサンプル数、温度、および正確度に対して最もロバストな方法であることが実証された。この結果は、MF-LF-BSが推奨される方法であるというさらなる証拠を提供する。
【0129】
コンピュータ・ハードウェア・コンポーネント
次に図9を参照すると、中央コンピューティング・システム120、およびデータ・リソース110用の他のコンピューティング・システムのために利用することができる、コンピュータ・システム10の一例の概略図が示されている。図9に示すコンピュータ・システム10は、コンピュータ・システムとして実装されている。コンピュータ・システム10は、好適な処理デバイスの一例に過ぎず、本明細書に記載の本発明の実施形態の使用範囲または機能性に関する制限を示唆することを意図するものではない。それでもなお、コンピュータ・システム10は、上記の機能性のいずれかが実装されること、または上記の機能性のいずれかを実行すること、あるいはその両方が可能である。
【0130】
コンピュータ・システム10は、多数の他の汎用もしくは専用のコンピューティング・システム環境または構成により動作可能である。コンピュータ・システム10での使用に好適であり得るよく知られているコンピューティング・システム、環境、または構成、あるいはその組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、車載デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラマブル家電製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれるが、これらに限定されない。
【0131】
コンピュータ・システム10は、プログラム・モジュールなどのコンピュータ・システム実行可能命令がコンピュータ・システムによって実行される、一般的なコンテキストで説明され得る。一般に、プログラム・モジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などが含まれ得る。
【0132】
図9に示すように、コンピュータ・システム10は、汎用コンピューティング・デバイスの形態で示されている。コンピュータ・システム10のコンポーネントは、プロセッサ(または処理回路)12と、メモリ・バスまたはメモリ・コントローラ、および様々なバス・アーキテクチャのいずれかを使用するプロセッサ・バスまたはローカル・バスを含むバスによってプロセッサ12に結合されたメモリ16とを含み得るが、これらに限定されない。
【0133】
コンピュータ・システム10は、典型的には、様々なコンピュータ・システム可読媒体を含む。このような媒体は、コンピュータ・システム10によってアクセス可能である任意の利用可能な媒体とすることができ、揮発性媒体と不揮発性媒体の両方、取り外し可能媒体と取り外し不能媒体の両方を含む。
【0134】
メモリ16は、ランダム・アクセス・メモリ(RAM)などの揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム10は、他の取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含んでもよい。ほんの一例として、取り外し不能な不揮発性磁気媒体に対する読み取りと書き込みのために、ストレージ・システム18を設けることができる。以下でさらに図示および説明するように、ストレージ・システム18は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含んでもよい。
【0135】
プログラム・モジュールのセット(少なくとも1つ)を有するプログラム/ユーティリティは、限定ではなく例として、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、ストレージ・システム18に記憶されてもよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそれらの何らかの組合せはそれぞれ、ネットワーキング環境の実装を含んでもよい。プログラム・モジュールは、一般に、本明細書に記載の本発明の実施形態の機能または方法論あるいはその両方を実行する。
【0136】
コンピュータ・システム10はまた、キーボード、ポインティング・デバイス、カー・ナビゲーション・システム、オーディオ・システムなどの1つまたは複数の周辺機器24、ディスプレイ26、ユーザがコンピュータ・システム10と対話することを可能にする1つまたは複数のデバイス、またはコンピュータ・システム10が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信してもよい。このような通信は、入出力(I/O)インターフェース22を介して発生することができる。さらに、コンピュータ・システム10は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)あるいはその組合せなどの1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ20は、バスを介してコンピュータ・システム10の他のコンポーネントと通信する。図示されていないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方をコンピュータ・システム10と組み合わせて使用できることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
【0137】
コンピュータ・プログラムの実装
本発明は、コンピュータ・システム、方法、またはコンピュータ・プログラム製品あるいはその組合せとすることができる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含んでもよい。
【0138】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せとすることができるが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック(登録商標)、フロッピ(登録商標)・ディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的に符号化されたデバイス、および上記の任意の好適な組合せが含まれる。本明細書で使用するコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または電線を介して送信される電気信号などの、一過性の信号自体であると解釈されるべきではない。
【0139】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、またはワイヤレス・ネットワークあるいはその組合せを介して外部コンピュータまたは外部記憶デバイスにダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組合せを含んでもよい。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体での記憶のために転送する。
【0140】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラム言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がリモート・コンピュータ上もしくはサーバ上で実行されてもよい。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して接続されてもよい。いくつかの実施形態では、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、例えばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路をパーソナライズすることによって、電子回路がコンピュータ可読プログラム命令を実行してもよい。
【0141】
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図またはブロック図あるいはその両方を参照しながら本明細書で説明されている。流れ図またはブロック図あるいはその両方の各ブロック、および流れ図またはブロック図あるいはその両方のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0142】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであってもよい。また、これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組合せに対して特定の方式で機能するように指示できるものであってもよい。
【0143】
また、コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル装置、または他のデバイスで実行される命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ実施プロセスを作り出すべくコンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【0144】
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、流れ図またはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表すことがある。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、関与する機能に応じて、実質的に同時に実行されてもよく、またはそれらのブロックは、場合によっては逆の順序で実行されてもよい。ブロック図または流れ図あるいはその両方の各ブロック、およびブロック図または流れ図あるいはその両方のブロックの組合せは、指定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令との組合せを遂行する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【0145】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明を限定することを意図するものではない。本明細書で使用される場合、単数形「a」、「an」および「the」は、文脈上特に明記されていない限り、複数形も含むことを意図している。「備える」または「備えている」あるいはその両方の用語は、本明細書で使用される場合、記載された特徴、整数、ステップ、動作、要素、またはコンポーネントあるいはその組合せの存在を示すが、1つまたは複数の他の機能、整数、ステップ、動作、要素、コンポーネント、またはこれらのグループ、あるいはその組合せの存在または追加を除外するものではないことがさらに理解されよう。
【0146】
添付の特許請求の範囲内のすべての手段またはステップおよび機能要素の対応する構造、材料、動作、および均等物がある場合、それらは、具体的に特許請求されるときに、他の特許請求される要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図されている。本発明の1つまたは複数の態様についての説明は、例示および説明の目的で提示されているが、網羅的であること、または開示された形態の本発明に限定されることを意図するものではない。
【0147】
当業者には、説明した実施形態の範囲および思想から逸脱することなく多くの変更形態および変形形態が明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用例、もしくは市場で見られる技術を超える技術的な改良を最もよく説明するように、または本明細書で開示される実施形態を当業者が理解することが可能になるように選択されたものである。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図8C
図9