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

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

▶ ナノ−ディメンション テクノロジーズ,リミテッドの特許一覧

特許7535979生徒対教師の不一致を最大化する入力を用いて、教師役ニューラルネットワークを模倣するように生徒役ニューラルネットワークを訓練する方法
<>
  • 特許-生徒対教師の不一致を最大化する入力を用いて、教師役ニューラルネットワークを模倣するように生徒役ニューラルネットワークを訓練する方法 図1
  • 特許-生徒対教師の不一致を最大化する入力を用いて、教師役ニューラルネットワークを模倣するように生徒役ニューラルネットワークを訓練する方法 図2
  • 特許-生徒対教師の不一致を最大化する入力を用いて、教師役ニューラルネットワークを模倣するように生徒役ニューラルネットワークを訓練する方法 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-08
(45)【発行日】2024-08-19
(54)【発明の名称】生徒対教師の不一致を最大化する入力を用いて、教師役ニューラルネットワークを模倣するように生徒役ニューラルネットワークを訓練する方法
(51)【国際特許分類】
   G06N 3/082 20230101AFI20240809BHJP
   G06N 3/086 20230101ALI20240809BHJP
   G06N 3/096 20230101ALI20240809BHJP
   G06N 3/098 20230101ALI20240809BHJP
【FI】
G06N3/082
G06N3/086
G06N3/096
G06N3/098
【請求項の数】 30
【外国語出願】
(21)【出願番号】P 2021104302
(22)【出願日】2021-06-23
(65)【公開番号】P2022016316
(43)【公開日】2022-01-21
【審査請求日】2024-04-01
(31)【優先権主張番号】16/923,913
(32)【優先日】2020-07-08
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】517151372
【氏名又は名称】ナノ ディメンション テクノロジーズ,リミテッド
【住所又は居所原語表記】2 Ilan Ramon St., 74036 Nes Ziona, Israel
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【弁理士】
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【弁理士】
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【弁理士】
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】デイヴィッド エリ
(72)【発明者】
【氏名】ルビン エリ
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許出願公開第2019/0370665(US,A1)
【文献】特開2020-071883(JP,A)
【文献】特開2019-215861(JP,A)
【文献】中国特許出願公開第110998716(CN,A)
【文献】PAPERNOT, Nicolas et al.,Practical Black-Box Attacks against Machine Learning,arXiv,v4,Cornell University,2017年03月19日,[検索日 2024.04.30], インターネット: <URL: https://doi.org/10.48550/arXiv.1602.02697>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
ターゲットニューラルネットワーク又はその元の訓練データセットにアクセスすることなく、前記ターゲットニューラルネットワークを模倣するように新しいニューラルネットワークをコンピュータが訓練する工程であって、前記ターゲットニューラルネットワークは、単一のニューラルネットワークであり、前記訓練することは、
それぞれのターゲットニューラルネットワーク及び新しいニューラルネットワークの1つ以上の層によって出力される対応するデータを生成するために、前記ターゲットニューラルネットワーク及び前記新しいニューラルネットワークを、入力データを用いてプロービングすることと、
前記ターゲットニューラルネットワーク及び前記新しいニューラルネットワークによって出力された対応するデータの間に最大の又は閾値を超える差を生成する入力データを検出することと、
前記最大の又は閾値を超える差を生成する前記入力データ及び前記ターゲットニューラルネットワークによって出力された前記対応するデータを含む入出力ペアを含む発散プローブ訓練データセットを生成することと、
前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の前記対応する出力データにおける前記最大の又は閾値を超える差を生成するために検出された前記発散プローブ訓練データセットを用いて、前記新しいニューラルネットワーク及び前記ターゲットニューラルネットワークによって出力された対応するデータの間の差を最小化するように、前記新しいニューラルネットワークを訓練することと、
閾値未満の差測定値を有する前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の出力差に関連する入出力ペアを、相対的に大きくなった差測定値を有する前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の出力差に関連する新しい入出力ペアで置き換えるために更新された、更新された発散プローブ訓練データセットを用いて、前記新しいニューラルネットワークを反復的に訓練することと
による、工程を含み、訓練された新しいニューラルネットワークは、前記ターゲットニューラルネットワークよりも少ない層数及び小さいファイルサイズを有する、方法。
【請求項2】
前記新しいニューラルネットワーク及びターゲットニューラルネットワークに入力されたときに、それらの間に最大の又は閾値を超える差を有するそれぞれの出力を生じる訓練データを出力するように訓練された追加のニューラルネットワークを用いて、前記発散プローブ訓練データセットをコンピュータが生成する工程を含む請求項1に記載の方法。
【請求項3】
前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の出力差を増加又は最大化する出力を生成するように進化する進化モデルを用いて、前記発散プローブ訓練データセットをコンピュータが生成する工程を含む請求項1に記載の方法。
【請求項4】
ランダムシードプローブを試験し、前記ターゲットニューラルネットワーク及び新しいニューラルネットワークの結果の挙動に基づいて前記発散プローブ訓練データセットを外挿することによって、前記発散プローブ訓練データセットをコンピュータが生成する工程を含む請求項1に記載の方法。
【請求項5】
複数の前記ランダムシードプローブが、入力空間において互いに異なる複数のそれぞれのデータタイプ又は分布を含み、前記方法が、出力空間において前記ターゲットニューラルネットワーク及び前記新しいニューラルネットワークによって出力された対応するデータの間の最大の又は閾値を超える差に関連する前記発散プローブ訓練データセットのためのデータタイプ又は分布をコンピュータが選択する工程を含む請求項4に記載の方法。
【請求項6】
統計又はヒューリスティクスベースの方法を用いて、前記発散プローブ訓練データセットをコンピュータが生成する工程を含む請求項1に記載の方法。
【請求項7】
所定の数の訓練反復ごとに前記発散プローブ訓練データセットをコンピュータが更新する工程を含む請求項1に記載の方法。
【請求項8】
前記新しいネットワーク及びターゲットネットワークの出力差が前記発散プローブ訓練データセットの前のバージョンについて収束したことを検出したときに、前記発散プローブ訓練データセットをコンピュータが更新する工程を含む請求項1に記載の方法。
【請求項9】
前記ターゲットニューラルネットワーク及び新しいニューラルネットワークによって出力される対応するデータの間の前記差が、前記ターゲットニューラルネットワーク及び新しいニューラルネットワークの出力層又は1つ以上の隠れ層の個々又は組み合わせについてコンピュータによって検出される請求項1に記載の方法。
【請求項10】
前記ターゲットニューラルネットワークに存在しない新しい知識を前記新しいニューラルネットワークに組み込むために、新しいデータを前記発散プローブ訓練データセットにコンピュータが追加する工程を含む請求項1に記載の方法。
【請求項11】
前記ターゲットニューラルネットワークに存在するカテゴリ又はクラスを前記新しいニューラルネットワークから排除するために、前記発散プローブ訓練データセットから省略されるデータをコンピュータが定義する工程を含む請求項1に記載の方法。
【請求項12】
入力と出力との間の相関を弱める又は排除するために、それぞれ前記出力又は入力に対する複数のランダムな相関を前記発散プローブ訓練データセットに追加することによって、前記入力又は出力の少なくとも一方にアクセスすることなく、前記入力を前記出力に結びつける前記新しいニューラルネットワークから前記相関をコンピュータが除去する工程を含む請求項1に記載の方法。
【請求項13】
前記発散プローブ訓練データセットを訓練した後、前記ターゲットニューラルネットワークの再訓練を模倣するために、前記発散プローブ訓練データセットを用いて前記新しいニューラルネットワークをコンピュータが再訓練する工程を含む請求項1に記載の方法。
【請求項14】
前記ターゲットニューラルネットワークを模倣するために前記新しいニューラルネットワークをスパース化して、スパースな新しいニューラルネットワークをコンピュータが生成する工程を含む請求項13に記載の方法。
【請求項15】
前記ターゲットニューラルネットワークを模倣するために進化的アルゴリズムを適用することによって前記新しいニューラルネットワークをコンピュータが進化させる工程を含む請求項13に記載の方法。
【請求項16】
前記元の訓練データセットのすべてのコピーが訓練デバイスにおいて削除された後に、前記新しいニューラルネットワークをコンピュータが生成するか又はコンピュータが再訓練する工程を含む請求項1に記載の方法。
【請求項17】
複数のエポックにわたって前記新しいニューラルネットワークを、前記複数のエポックのそれぞれにおいて異なる発散プローブ訓練データセットを用いてコンピュータが訓練する工程を含む請求項1に記載の方法。
【請求項18】
前記新しいニューラルネットワークの構造を、前記ターゲットニューラルネットワークのニューロン数、シナプス数、又は層数よりも少ないニューロン数、シナプス数、又は層数を有するようにコンピュータが設定する工程を含む請求項1に記載の方法。
【請求項19】
前記新しいニューラルネットワークを複数の逐次ステージにおいて層ごとに訓練する工程であって、各ステージが前記新しいニューラルネットワークのそれぞれの逐次層をコンピュータが訓練する工程を含む請求項1に記載の方法。
【請求項20】
前記新しいニューラルネットワークを訓練した後、新しいデータを前記新しいニューラルネットワークに入力し、前記新しいニューラルネットワークによって出力される対応するデータを生成することによって、前記新しいニューラルネットワークをランタイムフェーズでコンピュータが実行する工程を含む請求項1に記載の方法。
【請求項21】
ターゲットニューラルネットワーク又はその元の訓練データセットにアクセスすることなく、前記ターゲットニューラルネットワークを模倣するように新しいニューラルネットワークを訓練することを行うように構成されている1つ以上のプロセッサであって、前記ターゲットニューラルネットワークは、単一のニューラルネットワークであり、前記訓練することは、
それぞれのターゲットニューラルネットワーク及び新しいニューラルネットワークの1つ以上の層によって出力される対応するデータを生成するために、前記ターゲットニューラルネットワーク及び前記新しいニューラルネットワークを、入力データを用いてプロービングすることと、
前記ターゲットニューラルネットワーク及び前記新しいニューラルネットワークによって出力された対応するデータの間に最大の又は閾値を超える差を生成する入力データを検出することと、
前記最大の又は閾値を超える差を生成する前記入力データ及び前記ターゲットニューラルネットワークによって出力された前記対応するデータを含む入出力ペアを含む発散プローブ訓練データセットを生成することと、
前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の前記対応する出力データにおける前記最大の又は閾値を超える差を生成するために検出された前記発散プローブ訓練データセットを用いて、前記新しいニューラルネットワーク及び前記ターゲットニューラルネットワークによって出力された対応するデータの間の差を最小化するように、前記新しいニューラルネットワークを訓練することと、
閾値未満の差測定値を有する前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の出力差に関連する入出力ペアを、相対的に大きくなった差測定値を有する前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の出力差に関連する新しい入出力ペアで置き換えるために更新された、更新された発散プローブ訓練データセットを用いて、前記新しいニューラルネットワークを反復的に訓練することと
による、1つ以上のプロセッサを含み、訓練された新しいニューラルネットワークは、前記ターゲットニューラルネットワークよりも少ない層数及び小さいファイルサイズを有するシステム。
【請求項22】
前記発散プローブ訓練データセットを格納するように構成されている1つ以上のメモリを含む請求項21に記載のシステム。
【請求項23】
前記1つ以上のメモリが、前記発散プローブ訓練データセットのサンプルをオンザフライで格納し、前記サンプルが前記新しいニューラルネットワークを訓練するために使用された後に、前記サンプルをオンザフライで削除するように構成されている一時メモリである請求項22に記載のシステム。
【請求項24】
前記1つ以上のプロセッサが、前記新しいニューラルネットワーク及びターゲットニューラルネットワークに入力されたときに、それらの間に最大の又は閾値を超える差を有するそれぞれの出力を生じる訓練データを出力するように訓練された追加のニューラルネットワークを用いて、前記発散プローブ訓練データセットを生成するように構成されている請求項21に記載のシステム。
【請求項25】
前記1つ以上のプロセッサが、前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の出力差を増加又は最大化する出力を生成するように進化する進化モデルを用いて、前記発散プローブ訓練データセットを生成するように構成されている請求項21に記載のシステム。
【請求項26】
前記1つ以上のプロセッサが、ランダムシードプローブを試験し、前記ターゲットニューラルネットワーク及び新しいニューラルネットワークの結果の挙動に基づいて、前記発散プローブ訓練データセットを外挿することによって、前記発散プローブ訓練データセットを生成するように構成されている請求項21に記載のシステム。
【請求項27】
前記1つ以上のプロセッサが、前記ターゲットニューラルネットワークに存在しない新しい知識を前記新しいニューラルネットワークに組み込むために、又は前記ターゲットニューラルネットワークに存在する既存の知識を前記新しいニューラルネットワークから排除するために、新しいデータを前記発散プローブ訓練データセットに追加するか、又は前記発散プローブ訓練データセットから省略されるデータを定義するように構成されている請求項21に記載のシステム。
【請求項28】
前記1つ以上のプロセッサが、前記新しいニューラルネットワークを訓練した後、新しいデータを前記新しいニューラルネットワークに入力し、前記新しいニューラルネットワークによって出力される対応するデータを生成することによって、前記新しいニューラルネットワークをランタイムフェーズで実行するように構成されている請求項21に記載のシステム。
【請求項29】
命令を含む非一過性のコンピュータ可読媒体であって、前記命令は、コンピューティングデバイス内の1つ以上のプロセッサにおいて実装されたときに、前記1つ以上のプロセッサに、
それぞれのターゲットニューラルネットワーク及び新しいニューラルネットワークの1つ以上の層によって出力される対応するデータを生成するために、前記ターゲットニューラルネットワーク及び前記新しいニューラルネットワークを、入力データを用いてプロービングすることと、
前記ターゲットニューラルネットワーク及び前記新しいニューラルネットワークによって出力された対応するデータの間に最大の又は閾値を超える差を生成する入力データを検出することと、
前記最大の又は閾値を超える差を生成する前記入力データ及び前記ターゲットニューラルネットワークによって出力された前記対応するデータを含む入出力ペアを含む発散プローブ訓練データセットを生成することと、
前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の前記対応する出力データにおける前記最大の又は閾値を超える差を生成するために検出された前記発散プローブ訓練データセットを用いて、前記新しいニューラルネットワーク及び前記ターゲットニューラルネットワークによって出力された対応するデータの間の差を最小化するように、前記新しいニューラルネットワークを訓練することと、
閾値未満の差測定値を有する前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の出力差に関連する入出力ペアを、相対的に大きくなった差測定値を有する前記新しいニューラルネットワークとターゲットニューラルネットワークとの間の出力差に関連する新しい入出力ペアで置き換えるために更新された、更新された発散プローブ訓練データセットを用いて、前記新しいニューラルネットワークを反復的に訓練することと
によって、ターゲットニューラルネットワーク又はその元の訓練データセットにアクセスすることなく、前記ターゲットニューラルネットワークを模倣するように新しいニューラルネットワークを訓練することを行わせ、前記ターゲットニューラルネットワークは、単一のニューラルネットワークであり、訓練された新しいニューラルネットワークは、前記ターゲットニューラルネットワークよりも少ない層数及び小さいファイルサイズを有する、非一過性のコンピュータ可読媒体。
【請求項30】
前記コンピューティングデバイス内の前記1つ以上のプロセッサにおいて実装されたときに、前記1つ以上のプロセッサに、新しいデータを前記新しいニューラルネットワークに入力し、前記新しいニューラルネットワークによって出力される対応するデータを生成することによって、訓練された前記新しいニューラルネットワークをランタイムフェーズで実行することをさらに行わせる命令を含む請求項29に記載の非一過性のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、機械学習による人工知能(AI)の分野に関する。特に、本発明の実施形態は、ニューラルネットワーク(NN)、ロジスティック回帰若しくはベイジアンモデル等の予測モデル又は深層学習モデルを訓練することに関する。
【背景技術】
【0002】
人工ニューラルネットワーク、又は単に「ニューラルネットワーク」は、ニューロンの生物学的ネットワークに類似した、コンピュータモデルである。ニューラルネットワークは、人工知能の下での機械学習の中の手法の一群である。ニューラルネットワークは、通常、人工「シナプス」によって接続された複数の人工「ニューロン」を持つ。NNには、部分的又は完全に接続されたNN、リカレントNN(RNN)、畳み込みNN(CNN)等、様々なニューロンの配置を持つ多くの種類がある。例えば、接続されたNNは、通常、入力層、複数の中間層又は隠れ層、及び出力層を有し、各層は複数(例えば、100~1000個)の人工ニューロンを有する。完全接続のNNでは、層(N)の各ニューロンは、人工「シナプス」によって、前の(N-1)層及び後続の(N+1)層の中のすべてのニューロンに接続されていてもよいが、部分接続のNNでは、隣接する層の中のニューロンのサブセットのみが接続されている。
【0003】
NNは、訓練データセットに基づいて訓練され、各シナプスの接続の強さを示す各シナプスの重みを解くか又は学習する。シナプスの重みは一般に、例えばランダムに初期化される。訓練は、訓練データセットからのサンプル又はサンプルのセットをNNに繰り返し入力し、そのデータセットに適用されたNNの結果を出力し、期待される(例えば、目標の)出力と実際の出力との間の誤差を計算し、誤差を最小化するためにNNの重みを調整することによって行われる。訓練は、誤差が最小化されるか、又は収束するまで、繰り返されてもよい。通常、訓練セットを複数回(例えば、数十回又は数百回)通過させることが行われる(例えば、各サンプルが複数回NNに入力される)。同じデータの訓練データセット全体に対するそれぞれの完全な通過は、1つの「エポック」と呼ばれる。
【0004】
正確なNNの訓練は、通常は、複雑で時間のかかる作業である。典型的な訓練プロセスは、数十億(又は数兆)の計算で構成されており、完了までに数時間、数日、又はさらには数週間かかることもある。そのため、一度生成されると、他のデバイスや関係者が、ゼロから開発するのではなく、正確に訓練されたNNを複製したいと考える場合がある。しかしながら、NNとその訓練データは、データのプライバシー、セキュリティ、あるいは所有権等の理由で秘密にされていることが多い。秘密の訓練データセットへのアクセスがないので、他のデバイスや当事者は、現在、事前に訓練されたNNを複製することができない。
【0005】
従来のNNの別の限界は、訓練データセット全体に基づいて再訓練を行わなければ、NNに新しい情報を追加したり、NNから古い情報を削除したりできないことである。変更されたデータのみに基づいて訓練を行うと、古いニューロンの接続や知識が上書きされてしまう。そのため、どんなに小さなデータであっても、新しいデータをNNに組み込むためには、元の訓練データセットと追加された新しいサンプルを用いて、最初から訓練プロセスが再実行され、これは時間がかかるプロセスである。同様に、修正された訓練データセット全体に基づいてNNを完全に再訓練しないと、望ましくない訓練データをNNから排除することはできない。実際、NNを再訓練する改変は、訓練データセット全体での再訓練を必要とする。従って、元の訓練データセットにアクセスできないデバイス又は当事者によっては、NNを改変又は改善することはできない。
【発明の概要】
【発明が解決しようとする課題】
【0006】
従って、当該技術分野では、秘密の元の訓練データセットにアクセスすることなくNNを模倣及び/又は改変する機構を提供する必要がある。
【課題を解決するための手段】
【0007】
本発明の実施形態は、ターゲットニューラルネットワーク自体(「ブラックボックス」ネットワーク)、又はターゲットニューラルネットワークを生成するために使用された元の訓練データセット(秘密の訓練データ)にアクセスすることなく、事前に訓練されたターゲット(「教師」)ニューラルネットワークを模倣するように、新しい(「生徒」)ニューラルネットワークを訓練するためのデバイス、システム及び方法を提供する。訓練データは、ターゲット「ブラックボックス」ネットワークを、入力データを用いてプロービングし、その対応する出力を記録し、ターゲットネットワークの挙動を学習することによって生成されてもよい。訓練を促進するために、本発明の実施形態は、生徒ネットワークの出力と教師ネットワークの出力との間の発散挙動を最大化する入力を有する発散プローブ訓練データセットを生成してもよい。発散挙動は、同じ入力から生じる、生徒ネットワーク並びに教師ネットワークの出力層及び/又は1つ以上の他の隠れ層の出力間の差に基づいて測定されてもよい。生徒ネットワークと教師ネットワークとの間で最大の又は閾値を超える発散出力挙動を発生させるプローブ入力データは、訓練の必要性が低いか又は全くない共通点ではなく、訓練の必要性が高いネットワーク間の差異を分離する。このような発散プローブ訓練データセットを使用して生徒ネットワークを訓練することは、生徒ネットワークと教師ネットワークとの間の差異(共通点よりも少ない)に訓練を集中させ、これは、より大きなの誤差及び補正(修正)を生成し、これによって訓練を加速させ、ランダム又は均等に分散された訓練データセットを使用して訓練することと比較して、同じ数の訓練反復について精度を向上させる。
【0008】
本発明のいくつかの実施形態によれば、ターゲットニューラルネットワーク又はその元の訓練データセットにアクセスすることなく、そのターゲットニューラルネットワークを模倣するように新しいニューラルネットワークを訓練するためのデバイス、システム及び方法が提供される。ターゲットニューラルネットワーク及び新しい模倣ニューラルネットワークは、それぞれのターゲットニューラルネットワーク及び新しいニューラルネットワークの1つ以上の層によって出力される対応するデータを生成するために、入力データを用いてプロービングされてもよい。ターゲットニューラルネットワーク及び新しいニューラルネットワークによって出力される対応するデータの間に最大の又は閾値を超える差を生成する入力データが検出されてもよい。最大の又は閾値を超える差を生成する入力データ及びターゲットニューラルネットワークによって出力される対応するデータ含む発散プローブ訓練データセットが生成されてもよい。新しいニューラルネットワークは、その新しいニューラルネットワークとターゲットニューラルネットワークとの間の対応する出力データにおける最大の又は閾値を超える差を生成するために検出された発散プローブ訓練データセットを用いて、ターゲットニューラルネットワークと実質的に同じ対応する出力データを生成するように訓練されてもよい。新しいニューラルネットワークは、新しいニューラルネットワークが訓練の間に変化するのに応じて動的に調整された更新された発散プローブ訓練データセットを用いて、反復的に訓練されてもよい。
【図面の簡単な説明】
【0009】
本発明とみなされる主題は、明細書の結論部分で特に指摘され、明確に主張されている。しかしながら、本発明は、その目的、特徴、及び利点とともに、組織及び動作方法の両方について、添付の図面と一緒に読めば、以下の詳細な説明を参照して最もよく理解されるであろう。
【0010】
図1図1は、本発明のいくつかの実施形態に係る、例示的なターゲット「ブラックボックス」ニューラルネットワークと、このターゲットニューラルネットワークを模倣するように訓練された新しい生徒役ニューラルネットワークとの模式図である。
図2図2は、本発明のいくつかの実施形態に係る、ターゲットニューラルネットワークを模倣するように新しい生徒役ニューラルネットワークを訓練するためのシステムの模式図である。
図3図3は、本発明のいくつかの実施形態に係る、ターゲットニューラルネットワークを模倣するように新しい生徒役ニューラルネットワークを訓練するの方法のフローチャートである。
【0011】
図解を簡単かつ明確にするために、図に示された要素は必ずしも縮尺通りに描かれていないことが理解されるであろう。例えば、いくつかの要素の寸法は、明確にするために他の要素に比べて誇張されている場合がある。さらに、適切と思われる場合には、対応する要素又は類似の要素を示すために、複数の図中で参照番号が繰り返されることがある。
【発明を実施するための形態】
【0012】
本発明の実施形態によれば、モデル自体(「ブラックボックス」モデル)にアクセスすることなく、及び/又は、そのモデルを生成するために使用された元の訓練データ(秘密の訓練データ)にアクセスすることなく、事前に訓練されたターゲット(「教師」)モデルを模倣、複製、真似、又は逆行分析(リバースエンジニアリング)するように、新しい(「生徒」)ニューラルネットワークを訓練するためのデバイス、システム及び方法が、今回提供される。これは、ターゲット「ブラックボックス」モデルを、入力データを用いてプロービングし、それに対応する出力を記録し、ターゲットモデルがどのような挙動を示すかを定義するプローブ訓練データセットを生成することによって実現されてもよい。入力されたプローブデータが元の訓練データセットに近ければ近いほど、生徒ネットワークは教師ネットワークをより正確に模倣し、生徒モデルと教師モデルとが収束するまでの訓練時間は短くなる。しかしながら、元の秘密の訓練データにアクセスできない場合、システムは、ランダムな入力で教師ネットワークを推測し、プロービングすることに追いやられ、これは一般に、元の秘密の訓練データセットを用いた訓練と比較して、より正確でない模倣生徒ネットワークを生成し、及び/又はモデルが収束するまでの訓練時間が長くなる。
【0013】
本発明の実施形態によれば、今回、新しい生徒ネットワークとターゲット教師ネットワークの出力の間の差異、発散又は不一致を最大化する入力データを含む発散プローブ訓練データセットを使用することによって、ターゲット教師ネットワークを模倣するように新しい生徒ネットワークを訓練することを加速するデバイス、システム及び方法が提供される。生徒ネットワークは最初は訓練されていないので、生徒ネットワークと教師ネットワークとの間で出力の差が比較的小さいプローブ入力データは、教師ネットワークと訓練されていない生徒ネットワークの間の予測の挙動の共通点を活性化する(例えば、対応するニューロンパターンを活性化する)。最小の差異を生成するこのようなプローブ入力データは、訓練されていないモデルがすでに答え方を知っている「簡単な」質問に似ており、補正効果をほとんど持たない。このような補正の少ない簡単な質問に基づく訓練は比較的遅い。対照的に、生徒ネットワークと教師ネットワークとの間の予測の出力に最大の又は閾値を超える差が生じるプローブ入力データは、教師と訓練されていない生徒との間の予測の挙動の発散(例えば、対応しないニューロンパターンの活性化)を促す。最大の出力差を生成するこのようなプローブ入力データは、教師は知っているが、訓練されていない生徒は知らない「難しい」質問に似ており、それゆえ、訓練の間に最も大きな補正効果と変化をもたらす。このような難しい質問に基づいて訓練を行うと、相対的に大きな誤差と補正が発生し、訓練プロセスが加速される。
【0014】
訓練が進むにつれて、2つの相反する力が現れる。すなわち、生徒ネットワークの挙動が教師ネットワークの挙動に収束するように訓練する訓練力(「収束」力)と、生徒ネットワークの挙動と教師ネットワークの挙動との間の出力差が最大になるようにプローブデータを生成する反対の力(「発散」力)である。この発散力で生徒ネットワークの出力と教師ネットワークの出力との間のギャップを最大化する訓練データ入力を選択することによって、本発明の実施形態は、(共通のニューロンパターン又は既に訓練(学習)済みのニューロンパターンよりも)その間の発散したニューロンパターンを分離して補正するプローブ入力データを生成する。本発明の実施形態は、類似しておらず、それにより補正の必要性が高い出力パターンに焦点を当てることにより(類似しており、訓練の必要性が低い出力パターンにはあまり焦点を当てないことにより)、ランダムに分散した入力プローブデータを用いた生徒と教師の訓練と比較して、訓練時間を短縮する。例えば、教師モデルの複雑さに応じて、本発明の実施形態に係る発散プローブ訓練データセットを用いた訓練は、ランダムなプローブデータを用いた訓練に比べて、例えば、10倍から1000倍まで速くなる(例えば、閾値未満の誤差に収束するための訓練のために)。教師ネットワークが複雑であればあるほど、本発明の実施形態と、同じ結果を得るためのナイーブなランダムプローブアプローチとの間の改善度は大きくなる。
【0015】
生徒ネットワークが、現在の反復の訓練データセットに対する教師ネットワークの挙動を学習すると、その訓練データセットは、もはや、生徒ネットワークと教師ネットワークとの間で、最大の又は閾値を超える出力差ではなく、最小の又は閾値未満の出力差しかもたらさない。従って、生徒ネットワークが訓練されると、生徒ネットワークと教師ネットワークとの間の出力差は、継続的又は反復的に監視(追跡)され、更新されてもよい(例えば、リアルタイムで、定期的に、又はイベントを検出したときに)。訓練データセットは、訓練期間中に、それらの更新された差測定値に基づいて反復的に更新され、各逐次反復の最大の又は閾値を超える差分訓練データを反映するように訓練データセットを動的に適応させてもよい。この発散プローブ訓練データセットは、例えば、定期的に(例えば、事前に定義された数のN反復(順方向予測と逆方向誤差補正のパスの組)ごとに、エポックごとに、等)、又は、訓練目標を満たす等のイベントを検出したときに(例えば、現在の訓練データセットについて、生徒ネットワークと教師ネットワークの出力差が閾値未満の誤差に収束したときに)、等のスケジュールに従って更新されてもよい。訓練データセットは、全体が(例えば、その平均(average)、平均(mean)若しくはその標準偏差誤差に基づいて)、又は個々の入出力ペアについて更新されてもよい(例えば、減少したか若しくは閾値未満の差測定値を有する個々の入出力ペアが削除され、新たに相対的に大きくなった、最大の、若しくは閾値を超える差測定値を有する個々の入出力ペアで置き換えられてもよい)。例示的なプロセスは、反復的に以下を含んでもよい:(1)2つのモデル間の予測差が最大になるか又は閾値を超えるように、現在のN番目の反復訓練データセットを生成すること、(2)2つのモデル間の予測差が最小になるか又は閾値未満になるまで(例えば、収束閾値内になるまで)、N番目の現在の反復訓練データセットを用いて生徒ニューラルネットワークを訓練すること、(3)工程(1)に戻り、Nを増分(増加)させて新しいN+1番目の反復訓練データセットを生成し、生徒ニューラルネットワーク及びターゲットニューラルネットワークが収束するまで繰り返すこと。訓練データセットを最新の発散プローブ訓練データに反復的に更新することで、ネットワークが収束するのに伴い、訓練データの難易度及び補正効果が継続的又は段階的に高まる。従って、生徒ネットワーク及び教師ネットワークがお互いの挙動にどんどん近づいていくと、本発明の実施形態は、高速で効率的なネットワークの収束を維持するために、それらの差異を継続的に分離する。
【0016】
いくつかの実施形態では、ネットワーク挙動の発散は、単一の出力層における差だけでなく、追加的又は代替的に、ネットワークの1つ以上の他の中間層若しくは隠れ層、ニューロン、及び/又はシナプスの任意の組み合わせにおける差によって測定されてもよい。いくつかの実施形態は、任意の個別又は組み合わせの第1の隠れ層1、第2の隠れ層2、...、最終の隠れ層N-1、及び/若しくは出力層Nのうちの1つ以上に対応する生徒モデル及び教師モデルの出力(活性化)の差を測定してもよい。例えば、ニューロン、重み、層等の異なるパターンが、生徒層及び教師層において訓練された接続を有する(例えば、同じ入力に対して同時活性化されるように訓練されている)場合、本発明の実施形態は、発散又は非関連パターンの活性化を検出してもよい。追加的又は代替的に、教師と生徒が同じ構造を有する場合(例えば、元の訓練データセットではなく、教師ネットワークが既知である場合)、接続されたパターンは、両方のネットワークにおける同じ構造(例えば、ニューロン、シナプス、層等)を参照してもよい。
【0017】
発散プローブ訓練データセットは、様々な方法で生成されてもよい。いくつかの実施形態では、訓練データは、ランダムシードプローブを使用して試験し、結果として得られるネットワーク挙動に基づいて発散プローブ訓練データを外挿(補外)することによって生成されてもよい。ランダムサンプルプローブは、生徒/教師の出力差を最大化する入力、タイプ及び/又は分布を学習するために使用することができ、その後、これらの最適なサンプルは、分類、クラスタリング、外挿等のためのシード(種)として、類似のタイプ及び/又は分布の訓練データセットをそのシードから成長させるために使用されてもよい。例えば、入力空間に均等に分布したランダムシードプローブが入力として試験されて、1つ以上の最大の又は閾値を超える発散出力に対応するものが、同様のタイプ又は入力空間分布の(例えば、選択されたシード入力と同様のカテゴリ分類又はクラスタリングを有する)より多くの入力を外挿するためのシードとして選択されてもよい。例えば、同じ(又は小さい、及び/又は閾値未満の変動の)入力データが生徒ネットワークとマスターネットワークとの間の対応する出力において大きな及び/又は閾値を超える変動を引き起こす入力のタイプ又は分布が選択されてもよい。追加的又は代替的に、訓練データは、統計学又はヒューリスティクスベースの方法を用いて生成されてもよい。例えば、いくつかの実施形態は、様々な入力データの分布(例えば、ガウス分布)を使用し、どの分布が最大の発散を引き起こすかを測定してもよい。追加的又は代替的に、訓練データは、追加のニューラルネットワーク、進化モデル等を使用する等、機械学習又は訓練ベースの方法を使用して生成されてもよい。いくつかの実施形態では、追加の(例えば、第3の)ニューラルネットワークが、生徒モデル及び教師モデルの両方に入力として供給される出力を生成し、それらの出力の差を測定するように訓練されてもよい。この追加のニューラルネットワークは、生徒ネットワーク及び教師ネットワークに入力されたときに、対応する生徒ネットワーク及び教師ネットワークの出力の間に最大の又は閾値を超える差を生じさせる値を出力するように訓練される。追加の訓練データジェネレータニューラルネットワークへの入力は、ランダム、同じ又は異なる入力タイプ(画像、音声、テキスト等)、ランダムシードプローブ又は他の方法の出力等であってもよい。第2の生徒ネットワーク及び第3の訓練データジェネレータネットワークが、並行して、同時に、又は時間的に交互に訓練されてもよい。例えば、第3の訓練データジェネレータネットワークは、生徒モデルと教師モデルとの間の差(発散力)を最大化する出力を生成するように訓練されてもよく、生徒モデルは、生徒モデルと教師モデルとの間の差を最小化するように(収束力)、第3の訓練データジェネレータネットワークの出力を連続的又は反復的に入力して訓練される。追加的又は代替的に、発散プローブ訓練データセットは、進化モデルを使用して生成されてもよい。例えば、訓練データジェネレータは、生徒モデルと教師モデルとの間の出力差を最大化する出力を作成するように学習する進化モデル(例えば、遺伝的アルゴリズム、遺伝的プログラミング等)であってもよい。例示的な遺伝的アルゴリズムは、例えば、全体が参照により本明細書に組み込まれる米国特許第10,339,450号明細書に開示されているように、モデルの組み換え、モデルの突然変異等を含む。
【0018】
新しいモデルの挙動の差異を最大化した発散プローブ訓練データセットでターゲットブラックボックスモデルがどのように振る舞うかを学習することにより、その新しいモデルは、そのような挙動をさせた元の訓練データセットに一度もアクセスすることなく、ランダムなプローブデータを使用するよりも速く、ターゲットモデルと実質的に同じ挙動をするように訓練されてもよい。従って、この新しいモデルは、ターゲットモデルの元の訓練データセットの秘密性を犠牲にすることなく、ターゲットモデルを効率的に複製する可能性がある。
【0019】
例えば、ターゲットモデル又は「教師」モデルは、自動運転車両の運転、ドローンのナビゲーション、顔認識、テキスト認識、又は他の任意の深層学習アプリケーションのために事前に訓練されてもよい。本発明の実施形態は、生徒ネットワーク及び教師ネットワークの出力の間に最大の又は閾値を超える差を生成する入力データを検出するために、センサー、画像及び/又は他の入力データで教師モデルをプロービングしてもよい。本発明の実施形態は、それらの最大の又は閾値を超える差のある入力データ及び教師モデルからの対応する出力を含むように発散プローブ訓練データセットを生成してもよい。このプロービングプロセスは、多数(例えば、数千又は数百万)の反復にわたって繰り返されてもよく、その際、各反復において、本発明の実施形態は、新しい発散プローブ訓練データセットを生成してもよく、及び/又はその最新の発散プローブ訓練データセットを使用して生徒モデルを訓練してもよい。発散プローブ訓練データでプロービングされたときに教師モデルがどう振る舞うかに合わせて生徒モデルを訓練することで、生徒モデルと教師モデルとの間の発散挙動に訓練を集中させることによって、生徒モデルが効率的に教師モデルに近づくことになる。訓練は、生徒モデルとターゲットモデルとが収束したとき(例えば、生徒モデルの出力が教師モデルの出力と実質的に一致したとき、例えば、入力の閾値を超える割合(例えば、98%超)に対して同じ予測を得たとき)、又は、順次の反復のための発散プローブ訓練データセットが収束したとき(例えば、発散プローブ訓練データセットの順次の更新により、同じ入力に対する生徒ネットワークと教師ネットワークの出力の間に類似の及び/又は閾値未満の最大差が生じたとき)に完了してもよい。
【0020】
いくつかの実施形態では、ターゲットモデルは、X次元入力空間からY次元出力空間へのデータの変換又はマップとして表されてもよい。1つの例では、画像内の数字を認識するために、入力データは、10000次元の入力空間における100×100ピクセルのサイズの画像であってもよく、出力データは、10次元の出力空間における10桁の数字であってもよい。それゆえ、ターゲットモデルは、10000次元のデータ点から10次元空間のデータ点への変換である(ただし、ターゲット変換は、任意のX次元空間から任意のY次元空間へデータをマッピングしてもよい)。訓練データセットは、その変換を訓練するために使用される入力データと、対応する出力データ(X次元ベクトル又は点、Y次元ベクトル又は点)とのペアを含む。この元の訓練データセットにアクセスできない場合、本発明の実施形態は、ターゲットネットワーク及び生徒ネットワークによって予測された対応するY次元出力データの間に最大の又は閾値を超える差を生成するX次元空間の入力データ点を含むように、発散プローブ訓練データセットを生成してもよい。発散プローブ訓練データセットは、それらの最大の又は閾値を超える差を持つX次元入力データに対応するターゲット変換のY次元出力をも含む。発散プローブ訓練データセットのX次元入力及び対応するY次元出力のペアのセットは、ターゲット変換と同じ方法でデータをマッピングする新しい生徒変換を訓練するために使用されてもよい。発散プローブ訓練データセットは、元の訓練データセットとは異なるX次元空間及びY次元空間における点の分布を有するが、それらの点は同じターゲット変換に従って変換されるので、ターゲットモデル変換と実質的に同じ方法でデータをマッピングするように新しい生徒モデル変換を訓練することになる。
【0021】
ランダムシードプローブアプローチのいくつかの実施形態では、ランダムな初期シード入力データが、生徒ニューラルネットワーク及びターゲットニューラルネットワークをプロービングしてその発散挙動を測定するために使用されてもよく、最も発散的な挙動を引き起こすシード入力データは、類似のカテゴリ、クラスタ等の他の入力プローブデータを外挿するために伝播される。このランダムな初期シード入力データは、完全にランダムなものでも半ランダムなものでもよい。完全にランダムなシード入力データは、完全にランダムに選択され(例えば、入力されたX次元空間の点のランダムな分布)、特定のタイプや特定のデータに設定されなくてもよい。完全にランダムなシードデータは、入力空間を乱暴に横断し、関連する入力データと無関係な入力データとの両方を提供してもよい。ランダムなプローブデータセットが元の訓練データセットに近ければ近いほど、通常は、生徒モデルはターゲットモデルによく一致し、訓練が収束するまでの時間が短くなる。従って、速度、効率及び精度を向上させるために、完全にランダムなシードデータで発散プローブ訓練データセットの生成を開始する代わりに、本発明のいくつかの実施形態は、元の訓練データセットにできるだけ似ている(しかし、元の訓練データセットとは異なる)半ランダムなシード入力データを使用してもよい。
【0022】
部分的にランダム又は半ランダムなシード入力データは、ランダムに選択されてもよいが、ターゲットモデルの種類又は目的等、モデル又は訓練データセットに関する何らかの知識に基づいたサンプル間の優先順位をもって選択される。例えば、ターゲットモデルの目的が画像中の顔を識別することであれば、シード入力データは顔の画像に絞られてもよい。別の実施形態では、半ランダムなシード入力データは、発散プローブ訓練データが補充されてもよい、元の訓練データセットからのデータの一部(例えば、元の訓練データセットの10%の「公開」又は「非秘密」のサブセットであって、「機密」又は「秘密」として指定された残りの90%ではない)を含んでもよい。別の実施形態では、半ランダムなシード入力データは、ラベル付けされていないデータ又はタグ付けされていないデータ(例えば、データセット内にどのような種類の画像があるかについてラベルを介した知識がない画像データセット)を含んでもよい。
【0023】
いくつかの実施形態は、元の訓練データ(利用可能な場合)、又は元の訓練データセットと同じタイプのデータ(例えば、顔の画像)の一部の特性(例えば、色、コントラスト、標準偏差、局所的な相関関係等)を測定するために統計解析を実行することによって、元の訓練データセットに関する情報を学習してもよい。統計解析は、比較的小さなデータのサンプル(例えば、元の訓練データセットのサイズの0.1~10%)に対して行われてもよい。統計解析の結果は、元の訓練データセットの入力空間の非一様な分布と同様の入力空間の非一様な分布であってもよい。この分布は、元の訓練セットとよりよく一致するように、同じ非一様な分布に従ってランダムシード入力データを選択するために使用されてもよい。様々な実施形態において、これらの統計値は、元の訓練データと同じタイプのランダムデータ上で、又は元の訓練データセットの一部(例えば、利用可能な場合は元の訓練データセットの1%)上で、又は元の訓練データセットの実際の部分とそこから合成されたサンプルの一部とのハイブリッドな組み合わせ(例えば、50%の元の訓練サンプル及び50%のランダムに生成されたサンプル)上で実行されてもよい。
【0024】
シード入力データは、元の訓練データとより密接に一致又は収束する(例えば、一様な入力空間分布と比較して、元の訓練データの入力空間分布とより密接に類似した入力空間分布を有する)ように調整されてもよい。1つの実施形態では、訓練データの種類や分布が不明な場合(例えば、画像データ、テキストデータ、音声データのいずれであるかが不明である場合、又は入力空間におけるデータの分布がガウス型であるか一定であるかが不明である場合)、訓練データの種類や分布を判別するために、ターゲットモデルがプロービングされてもよい。理想的には、正しいタイプ又は分布のサンプル(例えば、訓練データセットと同じ又は実質的に類似している)の軽微な調整は、典型的にはモデル出力に小さな変化しかもたらさない(安定モデル)が、誤ったタイプ又は分布のサンプルの軽微な調整は、モデル出力に比較的大きな変化をもたらす(不安定モデル)可能性がある。従って、いくつかの実施形態は、例えば、ガウス分布、一様分布、その他の分布に従って変化させた複数のわずかに異なるサンプルを用いて、及び/又は、複数の異なるデータタイプのそれぞれについて、モデルをプロービングしてもよい。モデルが最も安定している(例えば、入力空間での比較的小さな変化が出力空間での比較的小さな変化を引き起こす)データタイプ及び/又は分布が、シード入力データのデータタイプ及び/又は分布として使用されてもよい。この機構は、例えば、発散プローブ訓練データセットを最終的に外挿するために生徒と教師の出力差を試験する発散行動プローブの前に、ターゲットモデルの初期試験プローブで実行されてもよい。例えば、ランダムなシード入力データを用いたプロービングは、最初の反復であってもよく、その後、シードデータは、動的に調整された発散プローブ訓練データを生成するために、後続の各反復において、発散する生徒-教師出力を最大化又は増加させるように、段階的に調整される。
【0025】
1つの実施形態では、訓練誤差は、新しい生徒モデルを訓練する間に、オンザフライで(その場で)最終出力層において(例えば、訓練データセットの期待値と計算された値との比較に基づいて)計算されてもよい。訓練誤差は、「誤差逆伝播法(バックプロパゲーション)」を含む「最急降下法」最適化等の「一次」誤差(言い換えれば、誤差の一階微分に基づく)、「ヘッセ行列(ヘシアン)フリー最適化」等の「二次」誤差(言い換えれば、二階微分)、高次誤差、又は数学的原理に基づく「コントラスティブダイバージェンス法」等の別の方法として測定されてもよい。いくつかの実施形態では、(例えば、後続のエポックにおける)発散プローブ訓練データセットは、最も近い時期に訓練された生徒モデル(例えば、現在又は過去のエポックで訓練されたもの)に基づいて、生徒ネットワークと教師ネットワークとの間の出力の差を最大化するように、オンザフライで自動的に調整されてもよい。
【0026】
ターゲットニューラルネットワークモデル自体がアクセス可能であるか、又はそのパラメータ(例えば、モデル内の層の数N、各層のニューロンの数、タイプ及び/又は特性等)が既知であるいくつかの実施形態では、複数の層は層ごとに訓練されてもよく、及び/又は訓練誤差は層ごとに計算されてもよい。例えば、N個の層を持ち、各層がX個のニューロン(インデックスiは1~N)を持つターゲットモデルの場合、新しいネットワークが複数の段階に分けて訓練され、各段階が1層ずつ順番に訓練してもよい。第1段階では、新しいネットワークは、ターゲットネットワークの第1層のXニューロンの出力を模倣するように訓練されてもよい。第1層が訓練されると、その値は固定又は凍結され、プロセスは次の後続の層を訓練するように進む。その後、第2段階では、先の第1層を固定したまま、新しいネットワークは、ターゲットネットワークの第2層のXニューロンの出力を模倣するように訓練されてもよい。一般的に、各j番目の段階では、先行して訓練されたj-1個の層が固定され、新しいネットワークの後続のj番目の層の訓練に使用される。このプロセスは、最終の連続したN番目の出力層が訓練されるまで、層ごとに続いてもよい。モデルを層ごとに訓練することで、そのモデル内のすべての層を同時に訓練することに比べて、通常、訓練の精度及び速度が向上する。層ごとのアプローチでは、フルモデル訓練アプローチ(入力が与えられたときに出力を直接模倣しようとし、データが教師モデルのN層内で受けるN個の中間的な変換についての洞察を持たない)では生成されないターゲットネットワークの追加の中間的な変換(例えば、一度に1つの層を模倣する)が組み込まれるため、新しいネットワークの精度は、層ごとのアプローチによって向上する。
【0027】
層ごとのアプローチにおいて、新しいネットワークの訓練の速度が向上する。これは、一度に1つの層を訓練するための累積計算(例えば、層iから層i+1へのN-1個の隣接層変換、i=1、...、N)が、一度にモデル全体を訓練するための計算(例えば、入力空間XからN個の層を越えての出力空間Yへの変換)よりも、著しく単純で時間のかからないものだからである。層ごとの訓練方法は、第1層から第N層(例えば、1、2、...、N層)への訓練という「順」の方向、及び/又は、第N層から第1層(例えば、N、N-1、N-2、...、1層)への訓練という「逆」の方向のいずれで進行してもよい。
【0028】
訓練プロセスは、複数のエポックで繰り返されてもよい。従来の訓練は、同じ訓練データセットを使用して各エポックにわたって繰り返し行われるのに対し、本発明の実施形態によれば、訓練データセットは、生徒モデルが変化するのに伴って各反復及び/又はエポックについて最大の又は閾値を超える差を維持するように経時的に動的に調整されるため、複数の(例えば、2つ以上、最大ですべての)訓練反復及び/又はエポックのそれぞれの間に、異なる発散プローブ訓練データセットが使用されてもよい。異なるプローブデータセットを使用することは、訓練データの多様性を増加させる可能性があり、これは、典型的には、同じ量の訓練時間で新しいモデルがターゲットモデルを模倣する精度を高めるか、又は、より短い訓練時間で同様の精度をもたらす。
【0029】
本発明の実施形態は、最新の発散プローブ訓練データセット又はランダムなプローブデータセットで両方のモデルをプロービングして、生徒モデル及びターゲットモデルによって生成された対応する出力の間の類似性を決定することによって、新しい生徒モデルのターゲットモデルへの収束を試験してもよい。訓練は、そのような類似性の測定値が閾値を超えた後、生徒及びターゲットの対応する出力の間の差の測定値が閾値を下回った後、並びに/又は所定の数の反復及び/若しくはエポックの後に、終了してもよい。いくつかの実施形態では、所定の数の入力/出力訓練ペア、訓練ペアの分布、エポックの数又は多様性は、(例えば、入力試験データでプロービングされたときに)新しいモデルとターゲットモデルとの間の十分な又は閾値を超える一致(又は閾値未満の誤差若しくは距離)をもたらしてもよい。
【0030】
新しいモデルがターゲットモデルと実質的に同じ挙動をするとはいえ、それは異なる構造を有していてもよい。例えば、モデルがNNである場合、そのモデルは、互いに異なるアーキテクチャ(例えば、完全接続、部分接続、RNN、CNN等)、異なるニューロン数、異なる層数、異なる接続タイプ等を有していてもよい(例えば、図1に示すように)。いくつかの実施形態では、これはターゲットモデルの構造を知らないことによる意図しない結果である場合もあるが、他の実施形態では、これはターゲットモデルをより単純な生徒構造に再編成するための意図的な方法であってもよい。例えば、ターゲットニューラルネットワークが比較的複雑な構造(例えば、閾値を超える数のニューロン、層若しくは接続、又は完全接続等の比較的複雑なニューロン接続タイプ)を有する場合、本発明の実施形態は、複雑なターゲットモデルを置き換えるために、同じように挙動する(例えば、閾値未満の数のニューロン、層若しくは接続、又は部分接続等の比較的単純なニューロン接続タイプを有するように設定される)比較的単純な構造を有する新しいモデルを生成してもよい。モデルの構造を単純化すること(例えば、ニューロン、層及び/又は接続の数を減らすこと)は、モデルを格納するために使用されるサイズ及びメモリスペースを削減し、処理速度を向上させる(予測に必要な時間を短縮する)可能性がある。
【0031】
いくつかの実施形態では、既に訓練されたターゲットニューラルネットワークに新しい知識を追加したり、既に訓練されたターゲットニューラルネットワークから既存の知識を除外したりすることが望ましい場合がある。例えば、新しい訓練データが利用可能になったり、モデルが新しいクラスの予測に対応するために拡張されたりすると、訓練データセットに新しいデータを追加することが望ましいことがある。逆に、古いデータが機密性の高いものであったり、時代遅れのものであると判断されたりした場合には、そのデータを訓練データセットから排除し、その知識がネットワークから学習されないようにする必要がある。しかしながら、従来のモデルは、新しいデータだけで訓練したり、古いデータを削除したりすることによって、単純に再訓練することはできない。というのも、そのような訓練は初期の訓練からの正確な接続を無効にし、これにより望ましい先行知識を削除するからである。従来のモデルにおいて新しいデータを組み込んだり、又は古いデータを削除したりするには、従来的には、元の訓練データセットを入手し、元の訓練データセットにデータを追加又は削除し、改変された訓練データセット全体で最初から訓練プロセス全体をやり直すしかない。しかしながら、第三者が別の人のモデルを改変したいときに、その第三者は元の訓練データセットにアクセスできないことがある。
【0032】
本発明のいくつかの実施形態によれば、元の訓練データセットにアクセスすることなく、事前に訓練されたターゲットモデルにおいて新しい訓練データを組み込むか、元の訓練データセットの部分的なサブセットを排除するデバイス、システム及び方法が、今回提供される。これは、アクセスできない元の訓練データセットを改変する代わりに、発散プローブ訓練データセットを改変することによって達成されてもよい。従って、新しい訓練データセットは、発散プローブ訓練データ(例えば、先行知識を維持するためのスタビライザーとして機能する)に、追加されるデータ又は削除されるデータ(例えば、新しい知識を加えたり、古い知識を忘れたりするためのモディファイアとして機能する)をそれぞれ加えたもの、又は差し引いたものを含んでもよい。発散プローブ訓練データセットは、元の訓練データセットを模倣しているため、そこからデータを追加又は削除すると、元の訓練データセット自体に/からデータを追加又は削除した場合と実質的に同じ変化をモデルにもたらす。従って、元の訓練データセットに一度もアクセスすることなく、ターゲットモデルは改変又は改善される可能性がある。
【0033】
本発明のいくつかの実施形態によれば、今回、入力、出力、及び/又はその間の相関関係に関する既存の知識を、その知識にアクセスすることなく、従ってそれらの既存の入力、出力、及び/又は相関関係を直接削除することができなくても、元の訓練データセットから削除又は排除するためのデバイス、システム及び方法が提供される。これは、既存の未知の入力/出力相関を、発散プローブ訓練データセット内のランダムな相関で希釈又は難読化(不明瞭化)し、古いターゲットネットワークの相関が有効でなくなるように訓練された新しいニューラルネットワークに意図的に混乱を生じさせることによって達成されてもよい。本発明のそのような実施形態は、訓練データを直接削除するのではなく(訓練データは、未知であるため、直接削除できない)、そのデータの元の訓練が新しいニューラルネットワークで判読できないほど希釈されるまで、発散プローブ訓練データセットにランダムな入力/出力相関を追加してその訓練を難読化し、偽のランダムな相関でその真の予測相関を弱める(新しいニューラルネットワークを誤導又は混乱させる)。ベースとなる訓練データセットは、上記発散プローブ訓練データセットであってもよいし、そうでない秘密の訓練データセットであってもよい。1つの例では、企業が人々の顔の秘密の記録を削除したいと思っても、その秘密のデータにアクセスできないため、単にその写真を削除することはできない。その代わりに、本発明の実施形態は、人の身元とランダムな顔の写真とを結びつける偽の入力/出力相関関係を作り出す。例えば、顔認識ニューラルネットワークを訓練して、人々の身元を1,000枚のランダムな顔の写真にリンクさせると、真の写真又は身元と写真との相関関係を一度も知ることも得ることもなく、人の身元とその人の真の顔の写真とのリンクが希釈され、効果がなくなる。このように、本発明の実施形態は、そのデータ自体にアクセスしたことがなくても、入力/出力の相関関係を排除するようにニューラルネットワークを訓練する。
【0034】
追加的又は代替的に、入力、出力及び/又はその間の相関関係の既存の知識は、新しいモデルにおいてターゲットモデルからカテゴリ又はクラスを排除することによって、その知識にアクセスすることなく排除されてもよい。従来のモデルは、入力と出力の訓練ペアを削除する。例えば、従来の顔認識モデルは、例えば「Brian」の身元と相関のある顔の画像を削除する。対照的に、本発明のいくつかの実施形態によれば、顔の入力画像へのアクセスはない。従って、本発明の実施形態は、予測のカテゴリ又は分類を削除してもよい(例えば、「Brian」又は「Name」一般を削除する)。
【0035】
同じ原理は、元の訓練データセットに一度もアクセスすることのない、既に訓練されたターゲットモデルの任意の再訓練又は後処理に使用することができる。本発明の実施形態は、ターゲットモデルを再訓練すること(これは、秘密の元のターゲットデータセットを必要とする)の代わりに、(秘密の元の訓練データセットを公開することなく)発散プローブ訓練データセットを使用して、ターゲットモデルを模倣する新しいモデルを再訓練してもよい。そのような再訓練は、例えば、弱いニューロン接続を削除又は剪定(整理、縮小)することによって新しいモデルをスパース化して、新しいモデルのサイズを小さくすること(例えば、参照により全体が本明細書に組み込まれる米国特許第10,366,322号明細書に記載されているように)、又は遺伝的アルゴリズムを使用して新しいモデルを進化させて、新しいモデルの検索空間を増やし、その精度を向上させること(例えば、全体が参照により本明細書に組み込まれる米国特許第10,339,450号明細書に記載されているように)、又は、例えば、メモリの使用量及びサイズを低下させ(例えば、より小さいニューラルネットワークを作成する)、処理速度を向上させ、若しくは新しいニューラルネットワークの精度を向上させる任意の他の再訓練方法を含んでもよい。
【0036】
本明細書に記載されるモデルは、任意のタイプのニューラルネットワーク(例えば、図1に示すような完全接続、部分接続、RNN、CNN等を含む)、ロジスティック回帰、ベイジアンモデル、決定木、ランダムフォレストモデル、進化的アルゴリズム(例えば、遺伝的アルゴリズム、遺伝的プログラミング、若しくは進化戦略)、サポートベクターマシン(SVM)、又は、入力Xが与えられた場合に、出力Yを予測することを学習することができる任意の他のタイプの機械学習モデルを含むがこれらに限定されない、任意の構造を有してもよい。
【0037】
本発明の実施形態は、いくつかの重要な改善を提供する。
【0038】
本発明の実施形態の利点は、新しいネットワークとターゲットネットワークとの間の最大の又は閾値を超える出力差に対応する入力データを含む発散プローブ訓練データセットを生成することにより、新しいネットワーク及びターゲットネットワークの予測の挙動の差に(共通点よりも)訓練を集中することである。従って、発散プローブ訓練データセットは、例えばランダム又は均等に分散された訓練データセットと比較して、各訓練反復において新しいネットワークのためのより大きな誤差及び補正をもたらし、それゆえ、新しいネットワーク及びターゲットネットワークが収束するまでのより速い訓練時間をもたらす。
【0039】
別の利点は、本発明の実施形態が、元の訓練データセットにアクセスすることなくターゲットモデルを模倣及び改変することができるので、元の訓練データセットではなく、ターゲットモデル自体のみしか保存する必要がないことである。従って、ターゲットモデルが生成された後、元の訓練データセットが削除されてもよく、その結果、メモリスペースが大幅に削減される(例えば、訓練データセットを保存するために使用されるギガバイト、テラバイト、又はビデオ分析等のアプリケーションではペタバイトの削減)。本発明の実施形態は、元の訓練データセットを置き換えるためにプローブ訓練データセットをオンザフライで生成することができるため、元の訓練データセットを削除しても重要なものは何も失われず、これによってターゲットモデルを再現又は改変する能力が維持される。追加的又は代替的に、いくつかの実施形態は、プローブ訓練データセットをメモリから削除してもよい(保存しなくてもよい)。いくつかの実施形態では、新しいモデルを訓練する際に、プローブ訓練データセットを保存する必要はない。というのも、そのデータは、ターゲットモデル及び新しいモデルをプロービングすることによって継続的又は反復的に更新され、それゆえ、必要に応じて生成又は再生成することができるからである。実際、発散プローブ訓練データは、新しいネットワークが訓練されるのに伴って時間の経過とともに継続的に更新されるため、古い発散プローブ訓練データは陳腐化し、保存する必要はない。プローブ訓練データセットを保存しないことで、新しいモデルは、最小限のメモリスペースを使用して訓練される可能性がある。例えば、メモリは、単一の反復又はエポックのための単一の最大発散訓練のサンプル又はサンプルセットのみを一時的に格納(保存)してもよいし、又は一度に所定の数未満の反復又はエポックのための所定の数未満の発散訓練サンプル(複数可)又はサンプルセットを(例えば、バッファ又は一時メモリを満たすために)格納してもよい。システムは、例えば、サンプル(複数可)が訓練に使用された後、又は新しい更新された発散訓練サンプル(複数可)がバッファメモリ内の最小差又は最近最も使用されていないサンプル(複数可)を置き換えるためにメモリに追加されたときに、オンザフライ(その場)でサンプル(複数可)を削除してもよい。本発明の実施形態は、現在使用されているプローブ訓練データのみを格納する(訓練データセット全体を記憶しない)ことによって、新しいモデルを訓練することができるので、訓練は、モバイルデバイス、ドローン等(例えば、図2のデバイス214)、比較的小さなメモリスペース(例えば、メガバイト程度の小さいデータを格納する)しか有さないデバイスによって実行することができる。
【0040】
元の訓練データセットを共有又は保存する必要がないことの別の利点は、データセキュリティである。例えば、第1のデバイス(例えば、図2の202)は、第2のデバイス(例えば、図2の214)が、その元の訓練データセットを第2のデバイスに一度も送信、共有、又は公開することなく、そのターゲットモデルを複製することを許可してもよい。いくつかの実施形態では、第1のデバイスは、ターゲットモデルを訓練した後に、元の訓練データセットの唯一のコピーを恒久的に削除する。この恒久的な削除が可能なのは、本発明の実施形態が、発散プローブ訓練データセットを使用することにより、元の訓練データセットなしでモデルを効率的に模倣、改変、及び再訓練する手段を提供するからである。元の訓練データセットを恒久的に削除することで、データの復元や公開が不可能になるため、絶対的なセキュリティが確保される。
【0041】
本発明の実施形態の別の利点は、従来の訓練がすべてのエポックに対して同じ訓練データを使用するのに対し、上記発散プローブ訓練データは、訓練中に生徒モデルが変化するのに伴って変化する最新の発散生徒-教師モデル挙動を分離するために、反復及び/又はエポックごとに継続的又は反復的に更新されることである。訓練データのこの多様性、及びモデルの挙動における最大の不一致をそれらの不一致が時間とともに変化するにつれて分離及び補正する能力は、すべてのエポックで同じデータセットを使用する従来の訓練と比較して、より速い訓練につながり、それによって、新しい生徒モデルを訓練する速度を上昇させる可能性がある。
【0042】
本発明の実施形態の別の利点は、新しいモデルが、ターゲットモデルの構造とは異なる任意の望ましい構造(例えば、ニューラルネットワークアーキテクチャ、ニューラルネットワーク層の数、ニューロンの数、ニューラルネットワーク接続タイプ等)を有するように構築されてもよいことである。新しいモデルの構造は、図1に示すように、ターゲットモデル(既知の場合)の構造よりも単純になるように選択されてもよく、及び/又は、所定の値又はターゲットモデル(既知の場合)のファイルサイズよりも小さいファイルサイズとなるように選択されてもよい。例えば、新しいモデルは、ターゲットモデルよりも少ない層数、少ないニューロン数、又は単純な接続タイプ(例えば、部分的に接続されたもの対完全に接続されたもの)を持つように設計されてもよい。このように、新しいモデルはターゲットモデルとまさに同じように挙動するが、新しいモデルは、ターゲットモデルと比較して、ファイルサイズが小さく、新しいモデルを格納するためにより少ないメモリスペースしか占有せず、モデル構造が単純であるため、新しいモデルを実行するための処理速度が速くなる可能性がある。さらに、本発明の実施形態は、新しいモデルの再訓練をサポートしているため、新しいモデルは、ターゲットモデルを模倣した訓練プロセスの間にスパース化技術を使用して、弱い又は無視できるニューロン接続を排除又は剪定し、モデルサイズを小さくしてもよい。スパース化により、どのようなハードウェアでも直線的なスピードアップが可能になる。例えば、90%スパースのニューラルネットワークは、非スパースのネットワークと比較して10倍のスピードアップになる。追加的又は代替的に、新しいモデルは、進化的方法を使用して、ターゲットモデルをよりよく模倣するように訓練プロセスを最適化してもよい。
【0043】
本発明の実施形態の別の利点は、古い接続をランダムなデータで希釈することによって、既存の知識を、その知識にアクセスすることなく削除してもよい。従来のシステムでは、ニューラルネットワークが禁止されたデータを有する場合、ニューラルネットワーク全体を使用することはできず、訓練データを共有することもできないが、これは両者が禁止されたデータを明らかにするリスクがあるためである。本発明の実施形態によれば、禁止されたデータは、ランダムなデータで希釈して効果がないようにするか、又は禁止データに関連するカテゴリ又はクラスを発散プローブ訓練データセットにおいて排除することにより、発散プローブ訓練データセットから排除されてもよい。このような実施形態により、ユーザは、当該方法でなかったら禁止されていたニューラルネットワーク及び訓練データセットを模倣して、その禁止データがないだけで、新しいニューラルネットワークを訓練することができる。
【0044】
本発明のいくつかの実施形態に係る、例示的な未知又は「ブラックボックス」のターゲットニューラルネットワーク100、及びターゲットニューラルネットワーク100の予測の挙動を模倣又は実質的に複製する新しい生徒役ニューラルネットワーク110を模式的に示す図1を参照する。図1のターゲットニューラルネットワーク100は、完全接続NNとして示されているが、これは単に例示的なNNであり、部分接続NN、RNN、CNN等を含むがこれらに限定されない任意の他のNNの構造又はタイプが、本発明の実施形態に従って等価的に使用されてもよい。
【0045】
ターゲットニューラルネットワーク100は、複数の人工ニューロン102を含む。人工ニューロン102は、複数の層の階層に配置されてもよい。ニューラルネットワーク100は、入力層(ニューロン1~4)、1つ以上の中間層又は隠れ層(ニューロン5~12)、及び出力層(ニューロン13~16)を含んでもよい。各層の各ニューロン102は、人工シナプス接続104によって、隣接する層の一部のニューロン(部分的に接続されている)又はすべてのニューロン(完全に接続されている)に接続されている。入力層のニューロン(1~4)は後続の上位層のニューロンに接続され、中間層のニューロン(5~12)は前後の層の両方のニューロンにそれぞれ接続され、出力層のニューロン(13~16)は前の下位層のニューロンに接続される。ターゲットニューラルネットワーク100は、それぞれの複数のシナプス接続104の強度を表す複数の重みで表現されてもよい。ターゲットニューラルネットワーク100の構造は一例にすぎず、ニューロン、シナプス、層、又は接続タイプの任意の他の配置が使用されてもよい。
【0046】
ローカルデバイス(例えば、図2の214)は、ターゲットニューラルネットワーク100自体、及びターゲットニューラルネットワーク100を訓練するために使用される元の訓練データセットがローカルデバイスからアクセスできないため、このローカルデバイスは、従来の方法を使用してターゲットニューラルネットワーク100を直接コピー又は再訓練することができない。例えば、ターゲットニューラルネットワーク100は、ローカルデバイスから秘密にされ、アクセスできないリモートロケーションに格納されてもよい(例えば、図2の1つ以上のリモートデータベース又はサーバ202に専ら格納されてもよい)。同様に、元の訓練データセットも、ローカルデバイスから秘密にされ、アクセスできない同じ若しくは異なるリモートロケーションに格納されてもよい(例えば、図2の1つ以上のリモートデータベース若しくはサーバ202に専ら格納されてもよい)し、又は元の訓練データセットは、訓練が完了した後に恒久的に削除されてもよい。いくつかの実施形態では、ローカルデバイスがターゲットニューラルネットワーク100にアクセスする唯一の方法は、入力をリモートデバイスに送信し、その対応する出力をリモートデバイスから受信することである。ローカルデバイスは、リモートデバイスに対して、ターゲットニューラルネットワーク100及び新しいニューラルネットワーク110を同じ入力セットでプロービングするように要求してもよい。リモートデバイスは、それらの入力を2つのモデル100及び110を通して実行し、対応するそれぞれの出力をローカルデバイスに返してもよい。ローカルデバイスは、同じ入力のそれぞれについて、ターゲットモデル100と新しいモデル110の対応する出力の間の差を測定してもよい(又は、リモートデバイスから測定値を受け取ってもよい)。ローカルデバイスは、ターゲットモデル100及び新しいモデル110によって出力される対応するデータ間の最大の又は閾値を超える差を生成する入力データを検出してもよい。ローカルデバイスは、最大の又は閾値を超える差に関連する入力と、ターゲットニューラルネットワーク100の対応する出力との対を含む発散プローブ訓練データセットを生成してもよい。次に、ローカルデバイスは、訓練プロセスを加速するために、ターゲットニューラルネットワーク100と新しいニューラルネットワーク110との間の誤差を最大化し、従って、各反復における補正の大きさを最大化にするための発散プローブ訓練データセットを用いて、ターゲットニューラルネットワーク100を模倣するように、新しいニューラルネットワーク110を訓練してもよい。
【0047】
訓練後、新しいニューラルネットワーク110は、理想的には、ターゲットニューラルネットワーク100と同じ正確な出力層の出力ニューロン(13~16)のセットを有してもよい(ただし、実際には、ターゲットニューラルネットワーク100の1つ又は少数の出力ニューロンが、新しいニューラルネットワーク110から欠落することがある)。他方、入力層及び中間層(複数可)は、新しいニューラルネットワーク110とターゲットニューラルネットワーク100との間で同じであってもよいし異なっていてもよい。いくつかの実施形態では、新しいニューラルネットワーク110を生成する目的は、ターゲットニューラルネットワーク100と同じ又は類似の予測の挙動を有するが、より単純なモデル構造(例えば、より小さいファイルサイズ、より少ないニューロン又は層、より単純な接続タイプ等)を有するニューラルネットワークを作成することである。それらの場合、新しいニューラルネットワーク110は、ターゲットニューラルネットワーク100よりも少ないニューロン、シナプス、及び/又は隠れ層若しくは中間層、並びに/又はより単純な接続タイプを有するように設計されてもよい。
【0048】
訓練されていない新しいニューラルネットワーク110を、その元の訓練データにアクセスすることなく、事前に訓練されたターゲットニューラルネットワーク100を模倣するように訓練することによって、本発明の実施形態は、元の訓練データのセキュリティ又はプライバシーを犠牲にすることなく、複数の当事者又はデバイスがニューラルネットワークを共有及び再利用することを可能する可能性がある。このような実施形態は、他の当事者又はデバイスが、元の訓練データにアクセスすることなく、ターゲットニューラルネットワークの再訓練又はセカンドパス訓練を模倣することによって、ある当事者又はデバイスのニューラルネットワークを改善する(例えば、ニューラルネットワークをスパース化又は進化させる)ことも可能にし、それによって、セキュリティ及びデータプライバシーを強化する。このようなデータプライバシーへの利点は、医学的応用等、データの機密性が求められる環境では特に重要である。加えて、このような実施形態は、発散プローブ訓練データセットへの/からのデータの追加又は削除によって、元の訓練データにアクセスすることなく、ニューラルネットワークに新しい訓練データを追加したり、ニューラルネットワークから古い訓練データを削除したりすることをサポートする。さらに、いくつかの実施形態では、モデルが、元の訓練データにアクセスすることなく、予測の新しいカテゴリや分類を追加したり、古いカテゴリや分類を削除したりして、改変されることが可能になる。これにより、残りのデータを上書きすることなく(保存された古いデータに帰属するシナプス接続や重みを維持する)、新しい知識を追加したり、古い知識を削除したりすることができる。アクセスできない元の訓練データのプレースホルダとして発散プローブ訓練データセットを使用することにより、本発明の実施形態は、元の訓練データが削除された後にニューラルネットワークを複製又は再訓練することを可能にし、これにより、プライベートデータを保存しないことによってセキュリティを強化し、メモリストレージを削減する。
【0049】
本発明のいくつかの実施形態に係る、ターゲットモデルを模倣するように新しいモデルを訓練するための例示的なシステムを模式的に示す図2を参照する。システム200は、データ構造を格納及び/又は生成し、図1及び3を参照して説明されるモデルの訓練及び予測を実装してもよい。
【0050】
システム200は、1つ以上のローカルエンドポイントデバイス214と、ネットワーク212又はコンピューティングクラウドを介してローカルデバイスにアクセス可能な1つ以上のリモートサーバ202とを含んでもよい。リモートサーバ202は、ローカルエンドポイントデバイス(複数可)214に対して、クラウドベースの、ネットワーク側又はサーバ側のモデル予測サービスを提供してもよい。リモートサーバ202は、ターゲットニューラルネットワーク(例えば、図1のターゲットニューラルネットワーク100)を訓練、格納及び/又は実行してもよい。ローカルエンドポイントデバイス(複数可)214は、1つ以上のプローブ入力のセットに対してモデル予測を行う要求をリモートサーバ202に送信してもよい。リモートサーバ202は、それらのプローブ入力をターゲットモデルを介して実行して対応する出力を生成し、それらの出力をローカルエンドポイントデバイス(複数可)214に送信してもよい。リモートサーバ202はターゲットモデルの結果を提供する一方で、リモートサーバ202は、ターゲットモデルのデータ自体、又はターゲットモデルを訓練するために使用された元の訓練データセットを、ローカルエンドポイントデバイス(複数可)214に公開又は共有しない。
【0051】
リモートサーバ202は、ターゲットモデルデータ208及び任意にその元の訓練データセット210を格納するためのメモリ206と、ターゲットモデルに基づいて訓練及び/又は予測を行うためのプロセッサ204とを有してもよい。様々な実施形態において、元の訓練データセットは、リモートサーバのメモリ210に格納されてもよいし、外部のデータベース若しくはメモリに格納されてもよいし、又は恒久的に削除されてもよい(格納されなくてもよい)。メモリ206は、例えば、本発明の実施形態に係るデータ208又は210の格納及び検索を可能にするために、コード(例えば、ソフトウェアコード)又はロジックを含むデータも格納してもよい。データ208及び/又は210は、ローカルエンドポイントデバイス(複数可)214及び/又は任意の外部デバイスがアクセスできないようにしてもよい。いくつかの実施形態では、リモートサーバ202は、ターゲットモデル及び/若しくは訓練データセットを格納するための大容量メモリ206と、ターゲットモデルを訓練するための特殊なプロセッサ204(例えば、GPU)とを含む特別なハードウェアを含むか、又はそれらに動作可能に接続されていてもよい。
【0052】
ローカルエンドポイントデバイス(複数可)214は、新しいニューラルネットワーク(例えば、図1の新しいニューラルネットワーク110)を訓練、格納及び/又は実行してもよい。ローカルエンドポイントデバイス(複数可)214はそれぞれ、新しいニューラルネットワークと、ターゲットニューラルネットワークを模倣するように新しいニューラルネットワークを訓練するための発散プローブ訓練データセットとを格納するための1つ以上のメモリ220を含んでもよい。この発散プローブ訓練データセットは、リモートサーバ202から受信したプローブ入力データとその対応するターゲットモデル出力の対を含んでもよい。プローブ入力データのサブセットは、ターゲットモデルによって出力される対応するデータと新しいモデルによって出力される対応するデータとの間に最大の又は閾値を超える差を生成する発散プローブ訓練データセットに含まれるように選択されてもよい。訓練プロセスの間に新しいモデルが変化すると、モデル間に最大の又は閾値を超える差を生じさせるプローブ入力データも変化する。従って、発散プローブ訓練データセットは、最新の発散挙動を反映するようにメモリ220内で動的に更新される。様々な実施形態において、メモリ220は、新しいモデルを訓練するために使用される発散プローブ訓練データセット全体を一度に格納してもよく、又は、現在の計算、反復、エポック、現在の層等で使用される各単一又は複数の訓練サンプルのセットをオンザフライで段階的に格納してもよく、その後、サブセットが(例えば、能動的な削除又は最も近い時期に使用されたサンプルを新しいサンプルで置き換えることによって)削除される。
【0053】
ローカルエンドポイントデバイス(複数可)214は、スマートデバイス、仮想現実デバイス、ドローン、パーソナルコンピュータ、デスクトップコンピュータ、モバイルコンピュータ、ラップトップコンピュータ、及び/若しくはノートブックコンピュータ、又は、携帯電話、パーソナルデジタルアシスタント(PDA)、ビデオゲームコンソール等の他の適切なデバイスを含んでもよく、有線若しくは無線による接続又はモデムを含んでもよい。ローカルエンドポイントデバイス(複数可)214は、ユーザからの入力(例えば、ニューロン、シナプス及び層の数、サイズ、次元及び構成、精度又は訓練閾値等)を受信するための1つ以上の入力デバイス222を含んでもよい。ローカルエンドポイントデバイス(複数可)214は、デバイス(複数可)214又は202によって生成されたデータをユーザに表示するための1つ以上の出力デバイス216(例えば、モニタ若しくは画面)を含んでもよい。様々なアプリケーションにおいて、ローカルエンドポイントデバイス(複数可)214は、画像認識、コンピュータビジョン、仮想現実若しくは拡張現実、音声認識、テキスト理解、無線ネットワークビームフォーミングパターン、又は人工知能及び深層学習(ディープラーニング)の他のアプリケーションのためのシステムの一部である。顔認識のアプリケーションでは、デバイスは、一致が検出されたときに自身又は物理的なドアのロックを解除するようにデバイスをトリガするために、顔認識を効率的に実行するためにターゲットモデルを模倣してもよい。セキュリティのアプリケーションでは、セキュリティカメラシステムは、ターゲットモデルを模倣してセキュリティ違反を効率的に検出し、アラームやその他のセキュリティ対策を鳴らしてもよい。自動運転のアプリケーションでは、車両コンピュータは、ターゲットモデルを模倣して、例えば、検出された物体を回避するために舵を切る等、運転操作を制御してもよい。
【0054】
ローカルエンドポイントデバイス(複数可)214とリモートサーバ202を接続するネットワーク212は、インターネット等の任意のパブリックネットワーク又はプライベートネットワークであってもよい。ネットワーク212へのアクセスは、ワイヤライン、地上ワイヤレス、衛星、又は当該技術分野で周知の他のシステムを介してもよい。
【0055】
ローカルエンドポイントデバイス(複数可)214及びリモートサーバ202は、本発明の実施形態に係る操作を実行するための、それぞれ1つ以上のコントローラ(複数可)又はプロセッサ(複数可)204及び218と、データ及び/又はプロセッサ(複数可)によって実行可能な命令(例えば、本発明の実施形態に係る方法を適用するためのソフトウェア)を格納するための、それぞれ1つ以上のメモリユニット(複数可)206及び220とを含んでもよい。プロセッサ(複数可)204及び218は、例えば、中央処理装置(CPU)、グラフィック処理装置(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、マイクロプロセッサ、コントローラ、チップ、マイクロチップ、集積回路(IC)、又は他の任意の適切な汎用の又は特定用途向けのプロセッサ若しくはコントローラを含んでもよい。メモリユニット(複数可)206及び220は、例えば、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、フラッシュメモリ、揮発性メモリ、不揮発性メモリ、キャッシュメモリ、バッファ、短期メモリユニット、長期メモリユニット、又は他の適切なメモリユニット若しくはストレージユニットを含んでもよい。
【0056】
他のデバイス及び構成が使用されてもよい。例えば、上記の説明では、リモートサーバ202がターゲットニューラルネットワークを管理し、ローカルエンドポイントデバイス(複数可)214が新しいニューラルネットワークを管理することが開示されているが、デバイス202及び/又は214のいずれか又は両方が、例えば、システムアーキテクチャ及びセキュリティ要件に応じて、ターゲットニューラルネットワーク及び/若しくは新しいニューラルネットワークを訓練、格納、プロービング並びに/又はその他の点で管理してもよい。
【0057】
本発明のいくつかの実施形態に係る、ターゲットニューラルネットワーク(例えば、図1の100)を模倣するように新しいニューラルネットワーク(例えば、図1の110)を訓練するための例示的な方法のフローチャートである図3を参照する。図3の操作は、メモリ(例えば、図2の1つ以上のメモリユニット220及び/又は206)に格納されたデータを使用して、プロセッサ(例えば、図2の1つ以上のプロセッサ218及び/又は204)によって実行されてもよい。プロセッサは、ターゲットニューラルネットワーク及び/又はその元の訓練データセットにアクセスしなくてもよい。
【0058】
操作300において、プロセッサ(例えば、図2のローカルデバイス214の218)は、それぞれのターゲットニューラルネットワーク及び新しいニューラルネットワークによって出力される対応するデータを生成するために、事前に訓練されたターゲットニューラルネットワーク及び訓練されていない新しいニューラルネットワークを、同じ入力データのセットでプロービングしてもよい。プロービングは、ローカルにプロービングすること(例えば、ローカルにデータをモデルに入力し、対応する結果を出力すること)、又はリモートにプロービングすること(例えば、プローブ入力データをリモートにプロービングされるリモートデバイスに送信し、その結果を受信すること)を含んでもよい。1つの実施形態では、ターゲットニューラルネットワーク(例えば、専有又は秘密にされているもの)はリモートでプロービングされてもよく、一方、新しいニューラルネットワークはローカルでプロービングされてもよい。ターゲットニューラルネットワークをリモートでプロービングするために、プロセッサは、入力データのセットをリモートデバイス(例えば、図2の202)に送信してもよく、そこで入力データのセットはリモートで格納されたターゲットモデルに入力され、プロセッサは、リモートデバイスから対応する出力結果を受信してもよい。一般的に、ターゲットニューラルネットワーク及び新しいニューラルネットワークのいずれか又は両方が、リモート又はローカルに格納され、プロービングされてもよい。プロービングは、ターゲットニューラルネットワーク及び新しいニューラルネットワークの出力層並びに/又は1つ以上の隠れ層の個々又は組み合わせについて差が検出されるように、ニューラルネットワークの1つ又は複数(サブセット若しくはすべて)の層にデータを通してよい。いくつかの実施形態では、訓練は、層ごとに、又は複数の層のサブセット若しくはすべての層のセットに対して同時に実行されてもよく、その際、複数の逐次ステージのそれぞれが、新しいニューラルネットワークのそれぞれの逐次層(又は複数の層のグループ)を訓練するために使用される。
【0059】
操作302において、プロセッサは、ターゲットモデル及び新しいモデルによって出力される対応するデータの間に最大の又は閾値を超える差を生成する入力データを検出してもよい。この差は、ローカルに(例えば、図2の214で)又はリモートに(例えば、図2の202で)計算されてもよい。
【0060】
操作304において、プロセッサは、最大の又は閾値を超える差を生成する入力データ、及びターゲットニューラルネットワークによって出力された対応するデータを含む発散プローブ訓練データセットを生成してもよい。いくつかの実施形態では、発散プローブ訓練データセットは、訓練データを出力するように訓練された追加の(第3の)ニューラルネットワークを使用して生成されてもよく、この訓練データは、新しいニューラルネットワーク及びターゲットニューラルネットワークに入力されると、それらの間に最大の又は閾値を超える差を有するそれぞれの出力をもたらす。追加的又は代替的に、発散プローブ訓練データセットは、新しい模倣モデルとターゲットモデルの間の出力差を増加又は最大化する出力を生成するようにデータセットを進化させる進化モデルを使用して生成されてもよい。追加的又は代替的に、発散プローブ訓練データセットは、統計又はヒューリスティックベースの方法を用いて生成されてもよい。追加的又は代替的に、発散プローブ訓練データセットは、ランダムなシード入力プローブを試験し、ターゲットニューラルネットワーク及び新しいニューラルネットワークの結果の挙動に基づいて発散プローブ訓練データセットを外挿することによって生成されてもよい。シードデータは、例えば、元の訓練データセット又はそのアクセス可能なサブセットと同じタイプの1つ以上のサンプル入力の統計的特性を測定することによって、ランダム又は半ランダムに生成されてもよく、入力データのセットは、それらの統計的特性に従って半ランダムに選択されてもよい。追加的又は代替的に、複数のランダムシードプローブが、入力空間において互いに異なる複数のそれぞれのデータタイプ又は分布を含んでもよい。プロセッサは、出力空間においてターゲットニューラルネットワーク及び新しいニューラルネットワークによって出力された対応するデータの間の最大の若しくは閾値を超える差に関連する発散プローブ訓練データセットのためのデータタイプ又は分布を選択してもよい。初期試験シードプローブは、操作302の第1の反復の前に、又はその一部として、初期プローブとして実行されてもよい。
【0061】
操作306において、プロセッサは、新しいモデルとターゲットモデルとの間の対応する出力データにおいて最大の又は閾値を超える差を生成するように検出された発散プローブ訓練データセットを使用して、ターゲットニューラルネットワークと実質的に同じ対応する出力データを生成するように、新しいニューラルネットワークを訓練してもよい。
【0062】
操作308において、新しいモデルの訓練が完了した場合、プロセスは終了してもよい。訓練は、プロセッサが、新しいモデル及びターゲットモデルが収束する(例えば、モデル間の出力差(複数可)が十分に小さいか、若しくは収束閾値未満である)、又は順次の訓練反復のために更新された発散プローブ訓練データセットの複数のバージョンが収束する(例えば、それらの関連する最大差測定値の間の差が十分に小さいか、収束閾値未満である)と判定したときに完了してもよい。いくつかの実施形態では、プロセッサは、モデルの対応する出力間の類似性又は誤差を測定するために、発散プローブ訓練データセット又は新しいランダム若しくは半ランダムな入力セットからのサンプルで両方のモデルをプロービングすることによって、新しいモデルとターゲットモデルとの間の類似性の測定値を試験してもよい。閾値未満、又は漸近的に平準化された誤差の測定値が、訓練プロセスを終了させるトリガとなってもよい。
【0063】
新しいモデルの訓練が不完全である場合、当該プロセスは操作300に戻り、経時的に訓練されるにつれて変化する新しいニューラルネットワークの構造に適応するように動的に調整された更新された発散プローブ訓練データセットを使用して、新しいニューラルネットワークの新しい訓練反復を実行してもよい。このプロセスは、所定の数の訓練反復及び/若しくはエポックごとに、並びに/又は前の反復の発散プローブ訓練データセットについて新しい模倣及びターゲットの出力の差が収束したことを検出し、それによって、新しいネットワークが前の反復の発散プローブ訓練データセットのデータを適切に学習したことを示したときに、操作300に戻ってもよい。全体として、このプロセスは、操作308でその訓練が完了するまで、合計反復及び/又はエポックの数だけ反復的に繰り返されてもよく、その際、各反復において、異なる更新された発散プローブ訓練データセットが新しいネットワークを訓練するために使用される。
【0064】
操作308で新しいモデルの訓練が終了した後、ターゲットモデルの再訓練を模倣するために、図3のプロセスを1つ以上の追加の反復で繰り返すことによって、新しいモデルがさらに再訓練されてもよい。再訓練は、ターゲットモデルを模倣するために新しいモデルをスパース化すること、ターゲットモデルを模倣するために進化的アルゴリズムを適用することによって新しいモデルを進化させること、新しいモデルの構造をターゲットモデルの構造よりも単純に設定すること、ニューラルネットワークである新しいモデルのニューロン数、シナプス数、又は層数を、事前に訓練されたターゲットモデルのニューロン数、シナプス数、又は層数よりも少なく設定すること、ニューラルネットワークである新しいモデルのニューロン接続タイプをターゲットモデルのニューロン接続タイプよりも単純に設定すること、又は任意のその他のタイプの再訓練を行うことを含んでもよい。いくつかの実施形態では、新しいニューラルネットワークは、ローカル及び/若しくはリモートの訓練デバイスにおいて元の訓練データセットのすべてのコピーが削除された後に、生成され、初期訓練され、及び/又は再訓練されてもよい。
【0065】
いくつかの実施形態では、初期訓練又は再訓練は、ターゲットモデルに存在しない新しい知識を組み込むために、新しいデータを発散プローブ訓練データセットに追加することを含んでもよい。いくつかの実施形態では、初期訓練又は再訓練は、ターゲットモデルに存在する知識を排除するために、発散プローブ訓練データセットから省略するデータを定義することを含んでもよい。いくつかの実施形態では、初期訓練又は再訓練は、入力と出力との間の相関を弱める又は排除するために、それぞれ出力又は入力に対する複数のランダムな相関を発散プローブ訓練データセットに追加することによって、入力又は出力の少なくとも一方にアクセスすることなく、入力を出力に結びつける新しいニューラルネットワークから相関を除去することを含んでもよい。
【0066】
いくつかの実施形態では、元の訓練データセットは初期訓練又は再訓練に必要ではないため、ローカルデバイスのプロセッサは、元の訓練データセットのすべての(又は一部の)コピーがリモートデバイスで(又はシステム全体のすべての場所から)削除され、例えば、リモートデバイスで占有されるストレージを大幅に削減した後に、新しいモデルを生成するか、又は新しいモデルを再訓練してもよい。いくつかの実施形態では、ローカルデバイスは、オンザフライでの訓練のために操作306で現在使用されているか又は最近使用された発散プローブ訓練データセットのサンプルのサブセットのみを一時メモリに格納し、サンプルが新しいモデルを訓練するために使用された後に、操作306中にオンザフライでそのサンプルを一時メモリから削除してもよい。これは、発散プローブ訓練データセットによって使用されるストレージスペースを大幅に最小化する可能性がある。
【0067】
操作310において、新しいモデルを訓練又は再訓練した後、プロセッサは、新しいデータを新しいモデルに入力し、新しいモデルによって出力される対応するデータを生成することによって、ランタイムフェーズで新しいモデルを実行してもよい。モデルは、例えば、新しいモデルの出力に基づいてドローンをナビゲートすることを含む、様々なアプリケーションのために訓練され実行されてもよい。
【0068】
他の操作又は操作の順序が使用されてもよい。
【0069】
このような実施形態は、従来の機構を用いては現在不可能である、元の訓練データセットにアクセスすることなく、事前に訓練されたターゲットモデルを複製し、そこに知識を追加し、又はそこから知識を削除するデバイス、システム及び方法を提供する。本発明の実施形態のいくつかの実用的な利点は、あるデバイス又は当事者がターゲットモデル(例えば、何十億もの独自の訓練サンプルを使用して訓練されたもの)をホストする場合、別のデバイス又は当事者は、今では、その訓練データにアクセスしたり公開したりすることなく、そのモデルの挙動を「模倣」することができることである。本発明の実施形態は、ランダムにプロービングするのではなく、モデル間で最も発散した挙動を引き起こす入力データを分離した発散プローブ訓練データセットを生成することによって、モデル間の発散したニューロン経路を訓練する。この異種の挙動は最大の誤差をもたらし、そのため、ターゲットモデルをランダムにプロービングする場合と比較してプロセスを迅速に行うために訓練の目標となる。さらに、ターゲットモデルが、(例えば、何千もの)異なるカテゴリのオブジェクトを検出するように訓練されている場合、新しいカテゴリを追加するためには、従来の機構では、モデル全体を最初から再訓練する必要がある。本発明の実施形態によれば、発散プローブ訓練データセットを用いて既存の知識の安定性を維持しつつ、追加されたデータを定義するだけで新しい知識を取り入れることができる。このような実施形態は、既存の知識の微調整にも適用可能である。例えば、昨年、Googleの深層学習モデルは、黒人を「ゴリラ」と認識しました。怒りの声が上がったにもかかわらず、唯一の解決策は、黒人の写真を増やしながら、オブジェクト認識モジュール全体をゼロから訓練することであったが、これには数ヶ月かかる可能性があった。本発明の実施形態によれば、代表性の低いクラスの人々の写真を用いてモデルを後訓練することができ、その結果、問題をすぐに解決することができる。訓練データセットは、もはや元の数十億枚の画像を必要とせず、発散プローブ訓練データセット(古い入力を模倣して安定させるため)と新しいデータ(改善が必要な単一クラスを後訓練するため)を使用することができる。本発明の実施形態による後訓練は、発散プローブ訓練データセットがエポックごとに動的に更新されて、新しいネットワークが訓練される際の変化に適応し、その発散プローブ訓練データセットはモデルの差をターゲットとし、訓練の間のより大きいデータの多様性をもたらすため、従来の再訓練よりも時間がかからない可能性があり、典型的には、エポックごとに同じ訓練サンプルを再利用するよりも早く収束する。
【0070】
「教師」、「ターゲット」、及び「事前に訓練された」ニューラルネットワーク又はモデルという用語は、模倣又は真似されている第1のニューラルネットワークを指してもよく、「生徒」、「新しい」、及び「模倣」ニューラルネットワーク又はモデルという用語は、第1のニューラルネットワークを模倣又は真似している第2のニューラルネットワークを指してもよい。
【0071】
本明細書で使用される場合、新しいモデルはターゲットモデルの挙動を模倣してもよく、又は新しいモデル及びターゲットモデルは、同じ入力を入力することに応答して、両方のモデルが、入力/出力ペアの閾値割合(例えば、過半数若しくは50%、75%、90%、99%、若しくはその間の任意の百分率)よりも大きい場合に、同じ又はほぼ/実質的に同じ出力を生成する場合に収束する。
【0072】
「実質的に」、「約」、又は「類似の」は、本明細書において、10%以下の、任意の閾値の正確な測定値からの偏差を指すことがある。
【0073】
前述の説明では、本発明の様々な態様が説明されている。本発明の完全な理解を提供するために、説明の目的のために、特定の構成及び詳細が示されている。しかしながら、本発明は、本明細書中に提示された特定の詳細がなくても実施されてよいことも、当業者には明らかであろう。さらには、周知の特徴は、本発明を不明瞭にしないために、省略又は簡略化されてもよい。
【0074】
特に明記しない限り、以下の議論から明らかなように、本明細書全体にわたる議論において、「処理」、「計算」、「算出」、「決定」等の用語を利用することは、コンピューティングシステムのレジスタ及び/又はメモリ内の例えば電子的な物理量として表されたデータを、コンピューティングシステムのメモリ、レジスタ、又は他のこのような情報を保存、送信、又は表示するデバイス内の物理量として同様に表された他のデータに操作及び/又は変換するコンピュータ若しくはコンピューティングシステム、又は同様の電子コンピューティングデバイスのアクション及び/又はプロセスを指すことが理解される。
【0075】
上述のフローチャート及びブロック図は、本発明の様々な実施形態に係るシステム及び方法の可能な実装のアーキテクチャ、機能、及び動作を図示する。これに関連して、フローチャート又はブロック図の各ブロックは、コードのモジュール、セグメント、又はコードの一部分を表してもよく、このコードは、指定された論理機能(複数可)を実装するための1つ以上の実行可能な命令を含んでいてもよい。いくつかの代替の実施態様では、ブロックに記載されている機能は、図に記載されている順序で行われなくてもよく、又は異なるモジュールによって行われてもよい。明示的に記載されていない限り、本明細書に記載されている方法の実施形態は、特定の順序又はシーケンスに拘束されない。加えて、説明した方法の実施形態又はその要素のいくつかは、同じ時点で発生し又は実行されてもよい。ブロック図及び/又はフローチャートの説明図の各ブロック、及びブロック図及び/又はフローチャートの説明図のブロックの組み合わせは、指定された機能若しくは行為を実行する特別目的のハードウェアベースのシステム、又は特別目的のハードウェアとコンピュータ命令との組み合わせによって実装することができる。
【0076】
本発明の実施形態は、プロセッサ又はコントローラ(例えば、図2のプロセッサ(複数可)204及び/又は218)によって実行されると本明細書に開示された方法を実施する命令、例えばコンピュータ実行可能な命令を符号化、含める又は格納する、例えばメモリ(例えば、図2のメモリユニット(複数可)206及び/又は220)、ディスクドライブ、又はUSBフラッシュメモリ等のコンピュータ若しくはプロセッサの非一過性の可読媒体、又はコンピュータ若しくはプロセッサの非一過性の記憶媒体等の物品を含んでもよい。
【0077】
上記の説明では、実施形態は、本発明の一例又は実施態様である。「1つの実施形態」、「一実施形態」、又は「いくつかの実施形態」の様々な登場は、必ずしもすべてが同じ実施形態を指すものではない。本発明の様々な特徴は、単一の実施形態の文脈で説明されることがあるが、実施形態の特徴は、別個に又は任意の適切な組み合わせで提供されてもよい。逆に、本発明が、明確にするために別個の実施形態の文脈で本明細書中で説明されることがあるが、本発明は単一の実施形態で実施されてもよい。本明細書における「いくつかの実施形態」、「一実施形態」、「1つの実施形態」、又は「他の実施形態」への言及は、その実施形態に関連して記載された特定の特徴、構造、又は特性が、本発明の、必ずしもすべての実施形態ではないが、少なくとも一部の実施形態に含まれることを意味する。さらに、本明細書に記載された発明の態様は、本発明の実施形態において組み合わせられたり、その他の様相で共存したりしてもよいということが認識されるであろう。
【0078】
特許請求の範囲及び明細書に提示された説明、例、方法及び材料は、限定的なものとして解釈されるものではなく、むしろ例示的なものとしてのみ解釈されるものである。本明細書では、本発明の特定の特徴を図示及び説明してきたが、多くの改変、置換、変更、及び等価物が当業者に思い浮かびうる。それゆえ、添付の特許請求の範囲は、本発明の真の趣旨に沿うようなすべてのそのような改変及び変更を包含することが意図されていることを理解されたい。
【0079】
本発明を限られた数の実施形態に関して説明してきたが、これらは本発明の範囲に対する制限として解釈されるべきではなく、むしろ好ましい実施形態のいくつかを例示するものである。他の可能な変形、改変、及び応用も本発明の範囲内である。本明細書では、異なる実施形態が開示されている。特定の実施形態の特徴は、他の実施形態の特徴と組み合わせられてもよく、従って、特定の実施形態は、複数の実施形態の特徴の組み合わせであってもよい。
図1
図2
図3