概要
上述のように、本開示は、画像の真正性を検証するための技術および装置を対象とする。特に、本開示のシステムおよび方法は、画像の真正性を検証するために、1つまたは複数の機械学習モデルを含むかまたはそうでなければそのようなモデルを活用し得る。
本明細書において使用されるとき、語句「画像」は、静止画像、動画像(たとえば、ビデオ)、音声に関連付けられた動画像、テキストと関連付けられた動画像などを含むがこれらに限定されない。本明細書において使用されるとき、語句「ビデオ」は、音声またはテキストなどのその他の種類の情報とも関連付けられている場合がありまたは関連付けられていない場合がある動画像の連続または時系列を意味する。たとえば、ビデオは、音声情報のストリームを含む動画像の時系列を含む場合がある。本明細書において使用されるとき、語句「フェイク画像」は、元の画像として提示されるが、元の画像の操作されたコピーであるか、または元の画像の偽物のコピーである画像を意味する。本明細書において使用されるとき、語句「画像の特徴」は、画像全体の測定値の画像に依存しない行列(image-independent matrix)、顔の表情、ランドマーク、画像内の人物の顔のランドマーク、ランドマーク、キーポイント、ユーザによって提供された特徴、エッジ、コーナー、ブログ、リッジ(ridge)、動き、オプティカルフロー、画像からの生ピクセルなどを含むがこれらに限定されない。
本明細書において使用されるとき、項目のリストのうちの「少なくとも1つ」を指す語句は、単一の構成要素を含むそれらの項目の任意の組合せを指す。例として、「a、b、またはcのうち少なくとも1つ」は、a、b、c、a-b、a-c、b-c、およびa-b-c、ならびに同じ要素の複数による任意の組合せ(たとえば、a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c、およびc-c-c、またはa、b、およびcの任意のその他の順序付け)を包含するように意図される。
図1は、入力画像102から画像の特徴を抽出するように構成された特徴認識エンジン120(たとえば、特徴抽出ニューラルネットワーク122)と、入力画像102から出力画像150を生成するように構成されたメッセージエンコーダ140(たとえば、メッセージ符号化ニューラルネットワーク142)とを使用する例示的なシステム100を示す。図2は、受信画像210から特徴238を抽出するように構成された特徴認識エンジン230(たとえば、特徴抽出ニューラルネットワーク232)、受信画像210から特徴258を含む署名254(隠しメッセージ)を抽出するように構成されたメッセージデコーダ250(たとえば、メッセージ復号ニューラルネットワーク252)、および/または受信画像210の処理に基づいて受信画像210の真正性を検証するように構成された真正性エンジン270(たとえば、操作検出ニューラルネットワーク272)を使用する例示的なシステム200を示す。態様において、システムは、出力画像を生成するように構成された図1のエンコーダシステム110と、受信画像を復号し、受信画像の真正性を判定するように構成された図2のデコーダシステム220との一方または両方を含んでよい。システム100、システム100の構成要素、システム200、またはシステム200の構成要素のうちの少なくとも1つは、たとえば、図3に関連して下で説明されるように、ユーザコンピューティングデバイス、組み込みコンピューティングデバイス、サーバコンピューティングデバイス、モデル処理デバイス、訓練デバイス、仮想コンピューティングデバイス、その他のコンピューティングデバイスもしくはコンピューティングインフラストラクチャ、またはこれらの組合せのうちの1つまたは複数に実装されてよい。
図1に示されるように、システム100において、入力画像102は、処理のための入力としてエンコーダシステム110によって受信される。たとえば、ユーザは、入力画像102として、画像(たとえば、写真)をシステム100に送ってよい。別の例において、ユーザは、撮像デバイス(たとえば、デジタルカメラ、コンピューティングデバイスのカメラ)上で入力画像102をキャプチャする場合があり、エンコーダシステム110は、撮像デバイスの画像パイプラインに実装される。別の例において、入力画像102は、画像リポジトリ104に記憶され、エンコーダシステム110に提供されてよい。画像リポジトリ104は、(たとえば、1つもしくは複数のローカルの有線もしくはワイヤレス接続によって)システム100に含まれていてよく、またはシステム100の遠隔にあり、1つもしくは複数の有線もしくはワイヤレス接続(たとえば、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN)接続)を介してシステム100と通信してよい。画像リポジトリ104は、たとえば、システム100のローカルに記憶されたデータベース、システム100の遠隔のサーバにホストされたデータベース、またはコンピューティングデバイスに実装されたメモリデバイスであってよい。
システム100(たとえば、エンコーダシステム110)は、入力画像102を受信し、入力画像102の1つまたは複数の特徴128を選択し、選択された特徴128に基づいて1つまたは複数の署名144を生成し、署名144を入力画像102に埋め込んで出力画像150を作成する。態様において、出力画像150は、メモリデバイスに記憶されてよい。
システム100(たとえば、エンコーダシステム110)は、特徴認識エンジン120を含む。特徴認識エンジン120は、入力画像102の複数の決定された特徴128を決定するために入力画像102に対して特徴抽出プロセスを実行するように構成される。たとえば、特徴認識エンジン120は、入力画像102から複数の特徴を選択するように構成されてよく、選択された画像の特徴128を処理して、入力画像の決定された特徴を表す値を定義する出力126(たとえば、データ)を生成する。態様において、特徴認識エンジン120は、入力画像102から複数の特徴を選択し、選択された画像の特徴128を処理して、入力画像102の選択された特徴128をそれぞれ表す出力126を生成する。たとえば、入力画像102の特徴128は、測定値の画像に依存しない行列、顔の表情、画像内の人物の顔のランドマーク、ランドマーク、キーポイント、ユーザによって提供された特徴、エッジ、コーナー、ブログ、リッジ、動き、オプティカルフロー、画像からの生ピクセルなどを含む可能性がある。
特徴認識エンジン120は、特徴抽出ニューラルネットワーク122を含み得る。特徴抽出ニューラルネットワーク122は、入力画像102を受信し、入力画像102を処理して、入力画像102の選択された特徴128を表す値を定義する出力126を生成するように構成され得る。態様において、値は、それぞれ、入力画像102の選択された特徴128を表す。たとえば、特徴抽出ニューラルネットワーク122は、入力画像102を受信し、入力画像102またはその一部を処理して、顔の表情、ランドマーク、キーポイント、エッジ、コーナー、ブログ、リッジなどに対応する1つまたは複数の画像の特徴を表す値を定義する出力126を生成することができる。態様において、出力126は、顔の表情、ランドマーク、キーポイント、エッジ、コーナー、ブログ、リッジなどに対応する1つまたは複数の画像の特徴をそれぞれ表す値を定義する。その他の実装において、特徴認識エンジン120は、主成分分析、エッジ検出、ハフ変換、またはその他のアルゴリズムなどの、ニューラルネットワークに頼らないその他の特徴抽出技術およびアルゴリズムの使用を通じて画像の特徴を生成してよい。
特徴認識エンジン120は、ユーザから入力(選択された画像の特徴)を受け取るように構成された1つまたは複数のユーザ入力構成要素によって提供された1つまたは複数のユーザによって提供された特徴124を受信することができる。ユーザによって提供された特徴124は、顔の表情、画像内の人物の顔のランドマーク、画像からの生ピクセルなどを含んでよい。特徴認識エンジン120は、特徴抽出ニューラルネットワーク122およびユーザによって提供された特徴124を含み得る。
また、システム100(たとえば、エンコーダシステム110)は、入力画像102に対してメッセージ埋め込みプロセスを実行する。システム100は、入力画像102から導出された画像の特徴128を指定する出力126をメッセージエンコーダ140に送信する。メッセージエンコーダ140は、メッセージ符号化ニューラルネットワーク142を含んでよい。メッセージ符号化ニューラルネットワーク142は、メッセージを符号化および復号するために利用されるメッセージコーディングニューラルネットワーク(たとえば、メッセージ符号化/復号ニューラルネットワーク)として構成されてよい。図1のメッセージ符号化ニューラルネットワーク142および図2のメッセージ復号ニューラルネットワーク252は、メッセージ符号化/復号ニューラルネットワークである。
メッセージエンコーダ140(たとえば、メッセージ符号化ニューラルネットワーク142)は、システム100から入力画像102から導出された画像の特徴128を指定する出力126を受信し、入力画像102の画像の特徴128を表す(たとえば、出力126を含む)署名144を生成する。メッセージエンコーダ140(たとえば、メッセージ符号化ニューラルネットワーク142)は、出力画像150を生成するために、署名144(メッセージ)をデジタルメッセージ(たとえば、ステガノグラフィック信号(Steganographic signal))として入力画像102に埋め込むことによって入力画像102を処理する。態様において、署名144は、知覚的に不可視の透かしである。
図1に示された特徴認識エンジン120(たとえば、第1の特徴抽出ニューラルネットワーク122、ユーザによって提供された特徴124)と、図2に示された第2の特徴認識エンジン230(たとえば、第2の特徴抽出ニューラルネットワーク232、ユーザによって提供された特徴234)との間で重みが共有されてよい。
図2は、受信画像210を復号し、受信画像210の真正性を検証するように構成されたデコーダシステム220を含むシステム200を示す。受信画像210は、検証される画像である。態様において、受信画像210は、出力画像150のコピーである。態様において、受信画像210は、入力画像102または出力画像150の偽物のコピーである。態様において、受信画像210は、入力画像102または出力画像150の操作されたコピーである。デコーダシステム220は、受信画像210の真正性を判定し、たとえば、受信画像210が出力画像150であるかどうか、または受信画像210が入力画像102の偽物のバージョンであるかどうかを判定する。
システム100は、エンコーダシステム110によって生成された出力画像150を受信画像210としてデコーダシステム220に送信することができる。一部の実装において、受信画像210は、システム200のデコーダシステム220に提供され、たとえば、ユーザが、受信画像210としてシステム200に写真を送る場合がある。別の例において、受信画像210は、図1の画像リポジトリ104などの画像リポジトリによってデコーダシステム220に提供される場合がある。
一例においては、ユーザが、システム100および/またはシステム200を利用して、画像の真正性を検証する。別の例においては、オンラインサービスプロバイダが、システム100および/またはシステム200を利用して、画像の真正性を検証する。別の例においては、第三者が、システム100および/またはシステム200を利用して、画像の真正性を検証する。
システム200は、受信画像210を入力としてデコーダシステム220に提供し、デコーダシステム220は、受信画像210が信頼できるコピー(たとえば、本物のコピー、変更されていないコピー)であるかどうか、または受信画像210が信頼できないコピー、たとえば、出力画像150もしくは入力画像102のフェイク画像もしくは変更されたコピーであるかどうかを判定する。図2に示されたように、システム200(たとえば、デコーダシステム220)は、特徴認識エンジン230と、メッセージデコーダ250と、真正性エンジン270とを含む。
システム200は、受信画像210を特徴認識エンジン230への入力として提供することができる。特徴認識エンジン230は、受信画像210の複数の決定された特徴238を決定するために受信画像210に対して特徴抽出プロセス(特徴認識)を実行するように構成される。たとえば、受信画像210の決定された特徴238は、測定値の画像に依存しない行列、顔の表情、ランドマーク、キーポイント、ユーザによって提供された特徴、エッジ、コーナー、ブログ、リッジ、動き、オプティカルフロー、ピクセルなどを含む可能性がある。
特徴認識エンジン230は、受信画像210から複数の決定された特徴238を選択し、決定された特徴238を処理して、受信画像210の決定された特徴を表す値を定義する出力236(データ)を生成する。態様において、特徴認識エンジン230は、受信画像210から複数の決定された特徴238を選択し、決定された特徴238を処理して、受信画像210の選択された特徴をそれぞれ表す受信画像の決定された特徴を表す値を定義する出力236(データ)を生成する。決定された特徴238の出力236は、システム200によって真正性エンジン270に送信される。
特徴認識エンジン230は、第2の特徴抽出ニューラルネットワーク232を含み得る。特徴抽出ニューラルネットワーク232は、受信画像210に対して特徴抽出プロセスを実行する。特徴抽出ニューラルネットワーク232は、受信画像210を受信し、受信画像210を処理して、受信画像210の決定された特徴238を表す値を定義する出力236(データ)を生成するように構成され得る。たとえば、特徴抽出ニューラルネットワーク232は、受信画像210を受信し、受信画像210を処理して、受信画像210の決定された特徴238をそれぞれ表す値を定義する出力236を生成するように構成され得る。一部の実装において、特徴抽出ニューラルネットワーク232は、図1の特徴抽出ニューラルネットワーク122と同じニューラルネットワークである。一部の実装において、特徴抽出ニューラルネットワーク232は、図1の特徴抽出ニューラルネットワーク122と異なる特徴抽出ニューラルネットワークである。
特徴認識エンジン230は、ユーザから入力(選択された画像の特徴)を受け取るように構成された1つまたは複数のユーザ入力構成要素(たとえば、図3のユーザ入力構成要素322)によって提供された1つまたは複数のユーザによって提供された特徴234を含む入力を受信することができる。ユーザによって提供された特徴234は、たとえば、顔の表情、画像内の人物の顔のランドマーク、画像からの生ピクセルなどを含んでよい。一部の実装において、特徴認識エンジン230は、第2の特徴抽出ニューラルネットワーク232およびユーザによって提供された特徴234を含み得る。
受信画像210は、デコーダシステム220のメッセージデコーダ250への入力として提供され得る。メッセージデコーダ250(たとえば、メッセージ復号ニューラルネットワーク252)は、受信画像210を復号する。たとえば、メッセージデコーダ250は、受信画像210に対してメッセージ抽出プロセスを実行することによって受信画像210を復号する。メッセージ抽出プロセスにおいて、メッセージデコーダ250は、受信画像210を処理して、受信画像210に埋め込まれた署名254を抽出する。署名254は、メッセージエンコーダ(たとえば、図1のメッセージエンコーダ140)によって受信画像210に埋め込まれた復元された特徴258を表す。態様において、システム200は、受信画像210に署名が存在するかどうかを検出する。
メッセージ抽出プロセスは、受信画像210の復元された特徴258を表す値を定義する第2の出力256(データ)の生成を含む。態様において、メッセージ抽出プロセスは、署名254から復元された受信画像210の復元された特徴258をそれぞれ表す値を定義する第2の出力256の生成を含む。復元された特徴258の出力256は、システム200によって真正性エンジン270に送信される。
特徴認識エンジン230からの出力236(第1の出力)およびメッセージデコーダ250の出力256(第2の出力)は、真正性エンジン270に提供され、受信画像210の真正性の予測(たとえば、推定値)を生成するために真正性エンジン270によって利用される。たとえば、デコーダシステム220の真正性エンジン270は、受信画像210が信頼できるコピー(たとえば、本物のコピー、変更されていないコピー)であるかどうか、または受信画像210が信頼できないコピー、たとえば、フェイク画像もしくは変更されたコピーであるかどうかを判定する。
真正性エンジン270は、出力(たとえば、出力236、出力256)を受信する操作検出ニューラルネットワーク272を含み得る。操作検出ニューラルネットワーク272は、少なくとも出力236および出力256を使用して、たとえば、出力236を出力256と比較することによって、受信画像210の真正性の推定値(予測)を生成する。真正性エンジン270によって生成された推定値に基づいて、システム100は、受信画像210が信頼できるコピー(たとえば、本物のコピー、変更されていないコピー)であるかどうか、または受信画像210が信頼できないコピー、たとえば、フェイク画像もしくは変更されたコピーであるかどうかを判定する。
例示的な実施形態
本開示のシステムおよび方法は、1つまたは複数のコンピューティングシステムによって実装されるか、またはそれ以外の方法で実行されることが可能である。コンピューティングシステム300の例示的なコンピューティングシステムは、ユーザコンピューティングデバイス(たとえば、ラップトップ、デスクトップ、タブレット、スマートフォン、ウェアラブルコンピューティングデバイス、カメラなどのモバイルコンピューティングデバイス)、組み込みコンピューティングデバイス(たとえば、乗り物、カメラ、イメージセンサー、産業機械、衛星、ゲームコンソールもしくはコントローラ、または冷蔵庫、サーモスタット、エネルギーメーター、ホームエネルギーマネージャ、スマートホームアシスタントなどの家電製品内に組み込まれたデバイス)、サーバコンピューティングデバイス(たとえば、データベースサーバ、パラメータサーバ、ファイルサーバ、メールサーバ、プリントサーバ、ウェブサーバ、ゲームサーバ、アプリケーションサーバなど)、専用の特殊なモデル処理または訓練デバイス、仮想コンピューティングデバイス、その他のコンピューティングデバイスまたはコンピューティングインフラストラクチャ、あるいはそれらの組合せのうちの1つまたは複数を含む。
たとえば、図3は、本開示の例示的な実施形態による画像の真正性を検証することができる例示的なコンピューティングシステム300のブロック図を示す。コンピューティングシステム300は、ネットワーク380を介して通信可能なように結合されるユーザコンピューティングシステム302、サーバコンピューティングシステム330、または訓練コンピューティングシステム350のうち1つまたは複数を含む。
サーバコンピューティングシステム330は、1つもしくは複数のサーバコンピューティングデバイスを含み得るか、またはそうでなければ1つもしくは複数のサーバコンピューティングデバイスによって実装され得る。サーバコンピューティングシステム330が複数のサーバコンピューティングデバイスを含む場合、そのようなサーバコンピューティングデバイスは、逐次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはこれらの何らかの組合せによって動作し得る。一部の実装において、訓練コンピューティングシステム350は、1つもしくは複数のサーバコンピューティングデバイスを含むか、またはそうでなければ1つもしくは複数のサーバコンピューティングデバイスによって実装される。
ユーザコンピューティングシステム302は、1つまたは複数のプロセッサ312および1つまたは複数のメモリデバイス314を含む。サーバコンピューティングシステム330は、1つまたは複数のプロセッサ332およびメモリデバイス334を含む。訓練コンピューティングシステム350は、1つまたは複数のプロセッサ352およびメモリデバイス354を含む。プロセッサ312、332、352は、任意の好適な処理デバイス(たとえば、中央演算処理装置(CPU)、視覚処理ユニット(VPU: visual processing unit)、グラフィックス処理ユニット(GPU)、テンソル処理ユニット(TPU: tensor processing unit)、ニューラル処理ユニット(NPU)、ニューラル処理エンジン、CPU、VPU、GPU、TPU、NPU、もしくはその他の処理デバイスのコア、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、コプロセッサ、コントローラ、または上述の処理デバイスの組合せ)であることが可能であり、1つのプロセッサまたは動作可能なように接続される複数のプロセッサであることが可能である。プロセッサ312、332、352は、たとえば、イメージセンサー、加速度計などの他のハードウェア構成要素内に組み込まれ得る。
メモリデバイス314、334、354は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびこれらの組合せなどの1つまたは複数の非一時的コンピュータ可読ストレージ媒体を含み得る。メモリデバイス314は、データ316と、ユーザコンピューティングシステム302に動作を実行させるためにプロセッサ312によって実行される命令318とを記憶することができる。メモリデバイス334は、データ336と、サーバコンピューティングシステム330に動作を実行させるためにプロセッサ332によって実行される命令338とを記憶することができる。メモリデバイス354は、データ356と、訓練コンピューティングシステム350に動作を実行させるためにプロセッサ352によって実行される命令358とを記憶することができる。
ユーザコンピューティングシステム302、サーバコンピューティングシステム330、または訓練コンピューティングシステム350のうちの1つまたは複数は、エンコーダシステム(たとえば、図1のエンコーダシステム110)を含み得る。例示的なエンコーダシステムは、特徴認識エンジン(たとえば、図1の特徴認識エンジン120)およびメッセージエンコーダ(たとえば、図1のメッセージエンコーダ140)を含んでよい。一部の実装において、ユーザコンピューティングシステム302、サーバコンピューティングシステム330、または訓練コンピューティングシステム350のうちの1つまたは複数は、デコーダシステム(たとえば、図2のデコーダシステム220)を含み得る。例示的なデコーダシステムは、特徴認識エンジン(たとえば、図2の特徴認識エンジン230)、メッセージデコーダ(たとえば、図2のメッセージデコーダ250)、または真正性エンジン(たとえば、図2の真正性エンジン270)のうちの少なくとも1つを含んでよい。
ユーザコンピューティングシステム302は、1つまたは複数の機械学習モデル320を記憶するかまたは含み得る。たとえば、機械学習モデル320は、ニューラルネットワーク(たとえば、ディープニューラルネットワーク)、または非線形モデルおよび/もしくは線形モデルを含むその他の種類の機械学習モデルなどの様々な機械学習モデルであることが可能であるかまたはそうでなければそのような機械学習モデルを含むことが可能である。ニューラルネットワークは、順伝播型ニューラルネットワーク、再帰型ニューラルネットワーク(recurrent neural network)(たとえば、長期短期記憶(long short-term memory)再帰型ニューラルネットワーク)、畳み込みニューラルネットワーク、またはその他の形態のニューラルネットワークを含み得る。より詳細には、機械学習モデル320は、(図1の特徴抽出ニューラルネットワーク122および/もしくは図2の第2の特徴抽出ニューラルネットワーク232などの)特徴抽出ネットワーク、(図1のメッセージ符号化ニューラルネットワーク142などの)メッセージ符号化ニューラルネットワーク、(図2のメッセージ復号ニューラルネットワーク252などの)メッセージ復号ニューラルネットワーク、または(図2の操作検出ニューラルネットワーク272などの)操作検出ニューラルネットワークのうちの1つまたは複数を含み得る。
追加的にまたは代替的に、1つまたは複数の機械学習モデル340は、クライアント-サーバの関係によりユーザコンピューティングシステム302と通信するサーバコンピューティングシステム330に含まれるかまたはそうでなければ記憶され、実装されることが可能である。たとえば、機械学習モデル340は、ウェブサービス(たとえば、エクストリーム多クラスまたは多ラベル分類(extreme multiclass or multilabel classification)サービス、言語モデリングサービス、距離学習(metric learning)サービス)の一部として、サーバコンピューティングシステム340によって実装され得る。したがって、1つまたは複数のモデル320が、ユーザコンピューティングシステム302に記憶され、実装されることが可能であり、および/または1つもしくは複数のモデル340が、サーバコンピューティングシステム330に記憶され、実装されることが可能である。実装において、機械学習モデル340は、(図1の特徴抽出ニューラルネットワーク122および/もしくは図2の特徴抽出ニューラルネットワーク232などの)特徴抽出ネットワーク、(図1のメッセージ符号化ニューラルネットワーク142などの)メッセージ符号化ニューラルネットワーク、(図2のメッセージ復号ニューラルネットワーク252などの)メッセージ復号ニューラルネットワーク、または(図2の操作検出ニューラルネットワーク272などの)操作検出ニューラルネットワークのうちの1つまたは複数を含み得る。
ユーザコンピューティングシステム302は、ユーザ入力を受け取る1つまたは複数のユーザ入力構成要素322も含み得る。たとえば、ユーザ入力構成要素322は、ユーザ入力オブジェクト(たとえば、指、スタイラス)のタッチを感知可能であるタッチ感知式構成要素(たとえば、タッチ式ディスプレイスクリーン、タッチパッド)であることが可能である。タッチ感知式構成要素は、仮想キーボードを実施するように働き得る。その他の例示的なユーザ入力構成要素は、マイクロフォン、通常のキーボード、またはユーザがユーザ入力を与えることができるその他の手段を含む。
上述のように、サーバコンピューティングシステム330は、1つまたは複数の機械学習モデル340を記憶するかまたはそうでなければ含むことが可能である。たとえば、モデル340は、様々な機械学習モデルであることが可能であるか、またはそうでなければそのような機械学習モデルを含むことが可能である。例示的な機械学習モデルは、ニューラルネットワークまたはその他の多層非線形モデルを含む。ニューラルネットワークの例は、順伝播型ニューラルネットワーク、ディープニューラルネットワーク、再帰型ニューラルネットワーク、および畳み込みニューラルネットワークを含む。
コンピューティングシステム300は、画像リポジトリ104を含んでよい。たとえば、画像リポジトリ104は、1つもしくは複数のローカルの有線もしくはワイヤレス接続によってシステム300に含まれていてよく、またはシステム300の遠隔にあり、1つもしくは複数の有線もしくはワイヤレス接続、たとえば、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN)接続を介してシステム300と通信してよい。画像リポジトリ104は、たとえば、ユーザコンピューティングシステム302のローカルに記憶されたデータベース、またはシステム300の遠隔のサーバ(たとえば、サーバコンピューティングシステム330、訓練コンピューティングシステム350)にホストされたデータベースであってよい。
ユーザコンピューティングシステム302および/またはサーバコンピューティングシステム330は、ネットワーク380を介して通信可能なように結合される訓練コンピューティングシステム350とのインタラクションによってモデル320および/または340を訓練することができる。訓練コンピューティングシステム350は、サーバコンピューティングシステム330と別れていることが可能であり、またはサーバコンピューティングシステム330の一部であることが可能である。
訓練コンピューティングシステム350は、たとえば、機械学習モデル320および/または340ならびに誤差逆伝播法を用いて、決定された特徴と復元された特徴とを比較することに基づいて画像の真正性を検証するなど、様々な訓練または学習技術を使用して、ユーザコンピューティングシステム302および/またはサーバコンピューティングシステム330に記憶された機械学習モデル320および/または340を訓練するモデルトレーナ360を含み得る。一部の実装において、誤差逆伝播法を実行することは、打ち切り型通時的逆伝播(truncated backpropagation through time)を実行することを含み得る。モデルトレーナ360は、訓練されているモデルの汎化能力を高めるためにいくつかの汎化技術(たとえば、重み減衰、ドロップアウト)を実行することができる。
モデルトレーナ360は、訓練データ362の組に基づいて機械学習モデル320および/または340を訓練することができる。訓練データ362は、たとえば、出力データに対応するラベルを割り振られた入力データの例を含み得る。
一部の実装において、ユーザが同意を与えた場合、訓練例は、ユーザコンピューティングシステム302によって提供され得る。したがって、そのような実装において、ユーザコンピューティングシステム302に提供されるモデル320は、ユーザコンピューティングシステム302から受信されたユーザに固有のデータに対して訓練コンピューティングシステム350によって訓練され得る。場合によっては、このプロセスは、モデルのパーソナライズと呼ばれ得る。
モデルトレーナ360は、所望の機能を提供するために利用されるコンピュータ論理を含む。モデルトレーナ360は、ハードウェア、ファームウェア、および/または汎用プロセッサを制御するソフトウェアに実装され得る。たとえば、一部の実装において、モデルトレーナ360は、ストレージデバイスに記憶され、メモリにロードされ、1つまたは複数のプロセッサによって実行されるプログラムファイルを含む。その他の実装において、モデルトレーナ360は、RAM、ハードディスク、または光学式もしくは磁気式媒体などの有形のコンピュータ可読ストレージ媒体に記憶されるコンピュータが実行可能な命令の1つまたは複数の組を含む。
ネットワーク380は、ローカルエリアネットワーク(たとえば、イントラネット)、広域ネットワーク(たとえば、インターネット)、またはこれらの何らかの組合せなどの任意の種類の通信ネットワークであることが可能であり、任意の数の有線またはワイヤレスリンクを含むことが可能である。概して、ネットワーク380を介した通信は、多種多様な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使用して任意の種類の有線および/またはワイヤレス接続を介して運ばれ得る。
図3は、本開示を実施するために使用され得るコンピューティングシステム300の一例を示す。その他のコンピューティングシステムも、使用され得る。たとえば、一部の実装においては、ユーザコンピューティングシステム302が、モデルトレーナ360および訓練データ362を含み得る。そのような実装において、モデル320は、ユーザコンピューティングシステム302のローカルで訓練されかつ使用されることが可能である。一部のそのような実装において、ユーザコンピューティングシステム302は、ユーザに固有のデータに基づいてモデル320をパーソナライズするためにモデルトレーナ360を実装し得る。
訓練
本明細書において説明される枠組みは、たとえば、特徴抽出ニューラルネットワーク、メッセージコーディングニューラルネットワーク(たとえば、メッセージ符号化ニューラルネットワーク、メッセージ復号ニューラルネットワーク、メッセージ符号化/復号ニューラルネットワーク)、および/または操作検出ニューラルネットワークがどのようにして訓練されるかに応じて、多くの方法で訓練され得る。一部の実装においては、ニューラルネットワークのうちの1つまたは複数が、別々に訓練され得る。一部の実装においては、ニューラルネットワークのうちの1つまたは複数が、共訓練(co-train)される。その他の実装においては、ニューラルネットワークのすべてが、一緒に訓練される。
図4は、改善された精度で画像(たとえば、入力画像416)から特徴を抽出するために(図1の第1の特徴抽出ニューラルネットワーク122および/または図2の第2の特徴抽出ニューラルネットワーク232などの)第1の特徴抽出ニューラルネットワーク422を訓練するように構成された例示的なシステム400を示す。態様において、特徴抽出ニューラルネットワーク422は、画像の真正性を検証するように構成されたシステム(たとえば、図1のシステム100、図2のシステム200)において利用される。
特徴抽出ニューラルネットワーク422は、メッセージ符号化ニューラルネットワーク、メッセージ復号ニューラルネットワーク、または操作検出ニューラルネットワークのうちの1つまたは複数とは別に訓練されてよい。たとえば、動作412において、入力画像416が、処理のために、特徴認識エンジン420を含むエンコーダシステム410に提供される。たとえば、ユーザは、入力画像416として、画像(たとえば、写真)をシステム400に送ってよい。別の例においては、特徴認識エンジン420が、特徴抽出ニューラルネットワーク422であり、(図2に関連して説明された)画像リポジトリ104が、入力画像416を特徴認識エンジン420に提供する。実装において、特徴認識エンジン462は、主成分分析、エッジ検出、ハフ変換、またはその他のアルゴリズムなどの、ニューラルネットワークに頼らないその他の特徴抽出技術およびアルゴリズムの使用を通じて決定された特徴418を生成してよい。
特徴認識エンジン420(たとえば、特徴抽出ニューラルネットワーク422)は、入力画像416の特徴を推定(決定)し、(図1の特徴128などの)決定された特徴418の出力を生成するように構成される。態様において、特徴抽出ニューラルネットワーク422は、画像認識によって学習された特徴として認識され得る特質を有する決定された特徴418を推定する。学習された特徴は、フェイク画像の検出に敏感であるべきであり、たとえば、画像が操作された場合または偽物である場合、学習された特徴は、まったく異なるものになる。
任意でまたは追加で、決定された特徴418は、ユーザによって提供された特徴424(たとえば、本明細書において説明されるユーザによって提供された特徴124)などのユーザ入力の使用を通じて入力画像416から抽出され得る。実装において、第2の特徴認識エンジン462は、主成分分析、エッジ検出、ハフ変換、またはその他のアルゴリズムなどの、ニューラルネットワークに頼らないその他の特徴抽出技術およびアルゴリズムの使用を通じて復元された特徴466を生成してよい。
決定された特徴418が推定された後、特徴認識エンジン420は、決定された特徴418の出力430を識別特徴損失計算エンジン470に送信する。決定された特徴418は、識別特徴損失計算エンジン470が特徴抽出ニューラルネットワーク422を訓練するために使用される特徴損失472を計算することを可能にするために識別特徴損失計算エンジン470に提供される。このプロセスは、計算された損失が所定の閾値以下になるまで、またはその他の収束基準が満たされるまで、繰り返されてよい。
また、特徴認識エンジン420は、出力画像450を生成するために、決定された特徴418を有する出力426を、メッセージ符号化ニューラルネットワーク442(たとえば、図1のメッセージ符号化ニューラルネットワーク142)を含むメッセージエンコーダ440に送信することができる。態様においては、1つまたは複数の署名が、決定された特徴428に基づいて生成され、署名は、出力画像450を生成するためにデジタルメッセージ(たとえば、ステガノグラフィック信号)として入力画像416に埋め込まれる。実装において、特徴認識エンジン420は、主成分分析、エッジ検出、ハフ変換、またはその他のアルゴリズムなどの、ニューラルネットワークに頼らないその他の特徴抽出技術およびアルゴリズムの使用を通じて決定された特徴418を生成してよい。
特徴抽出プロセスが、特徴認識エンジン、たとえば、第1の特徴認識エンジン420(たとえば、(図1の第1の特徴抽出ニューラルネットワーク122などの)第1の特徴抽出ニューラルネットワーク422)および/または第2の特徴認識エンジン462(たとえば、(図2の特徴抽出ニューラルネットワーク232などの)第2の特徴抽出ニューラルネットワーク464)によって画像(たとえば、入力画像416、受信画像452)に対して実行される。たとえば、図4に示されるように、デコーダシステム460は、第2の特徴認識エンジン462(たとえば、特徴抽出ニューラルネットワーク464)を含む。第2の特徴認識エンジン462は、(たとえば、図2に関連して上で説明されたように)受信画像452を復号して受信画像452から署名を抽出する。署名は、受信画像452の復元された特徴466を表す。
特徴認識エンジン(たとえば、第2の特徴認識エンジン462)は、復元された特徴466を有する出力468を識別特徴損失計算エンジン470に送信する。復元された特徴466は、識別特徴損失計算エンジン470が特徴抽出ニューラルネットワーク422を訓練するために使用され得る特徴損失472を計算することを可能にするために提供される。
システムは、識別特徴損失計算エンジン470が、識別特徴損失関数を復元された特徴466および決定された特徴418に適用して、特徴抽出ニューラルネットワーク422によって実行された推定によって引き起こされた画像特徴損失472を決定するメッセージコーディングニューラルネットワーク訓練手順を実行してよい。識別特徴損失関数は、(図1の入力画像102の選択された特徴128などの)入力画像416の決定された特徴418を、(図2の受信画像210の復元された特徴258などの)受信画像452の復元された特徴466と比較する。テストされる画像(たとえば、図2の受信画像210)が本物である(たとえば、出力画像450の偽物のコピーではない、出力画像450の操作されたコピーではない)場合、識別特徴損失関数は、小さくなるはずである。しかし、テストされる画像(たとえば、受信画像452)が本物でない(たとえば、出力画像450の偽物のコピーである、出力画像450の操作されたコピーである)場合、識別特徴損失関数は、大きくなるはずである。
識別特徴損失計算エンジン470は、特徴抽出ニューラルネットワーク422の訓練に使用するために、特徴損失472を出力として特徴認識エンジン420に送信する。損失関数は、特徴認識エンジン420によって推定された決定された特徴418と、第2の特徴認識エンジン462によって生成された復元された特徴466との間のずれ(deviation)を決定する。一部の実装において、損失関数は、ずれを、受信画像452がフェイク画像である結果としての受信画像452の復元された特徴466の精度の損失として表す場合がある。
損失が計算された後、特徴損失472は、特徴抽出ニューラルネットワーク422をさらに最適化するために使用される。たとえば、特徴損失472は、特徴抽出ニューラルネットワーク422の層に関するパラメータの最適化を実行するために使用されてよい。
そのような訓練ループが、特徴抽出ニューラルネットワーク422を反復的に最適化するために画像リポジトリ104からの複数の画像に関して繰り返されてよい。パラメータの最適化は、特徴抽出ニューラルネットワーク422が画像に描かれた特徴をより正確に推定することを可能にする。時間の経過とともに、訓練ループの反復による十分な訓練によって、特徴抽出ニューラルネットワーク422は、第2の特徴認識エンジン462によって識別特徴損失計算エンジン470に提供される復元された特徴466が、第1の特徴認識エンジン420によって識別特徴損失計算エンジン470に提供される決定された特徴418に収束するように、損失関数を最小化するように改善されてよい。図4に示されたプロセスは、特徴損失が所定の閾値以下になるまで、またはその他の収束基準が満たされるまで、繰り返されてよい。
図5は、メッセージコーディングニューラルネットワーク(たとえば、メッセージ符号化/復号ニューラルネットワーク)を訓練するように構成された例示的なシステム500を示す。たとえば、メッセージエンコーダ540のメッセージ符号化ニューラルネットワーク(たとえば、図5のメッセージ符号化ニューラルネットワーク542、図1のメッセージ符号化ニューラルネットワーク142)および/またはデコーダシステム560のメッセージデコーダ561のメッセージ復号ニューラルネットワーク(たとえば、図5のメッセージ復号ニューラルネットワーク562、図2のメッセージ復号ニューラルネットワーク252)が、改善された精度で出力画像を符号化するおよび/または受信画像を復号する。態様において、メッセージコーディングニューラルネットワークまたはメッセージ復号ニューラルネットワークのうちの少なくとも一方は、特徴抽出ニューラルネットワークおよび/または操作検出ニューラルネットワークとは別に訓練される。態様において、メッセージコーディングニューラル抽出ニューラルネットワークは、特徴抽出ニューラルネットワークまたは操作検出ニューラルネットワークのうちの1つまたは複数と共訓練される。
動作504において、入力画像502が、処理のために特徴認識エンジン520に提供される。たとえば、図4に関連して上で説明されたように、ユーザが、画像(たとえば、写真)を入力画像502としてシステム500に送る場合がある。実装において、入力画像502は、そのような種類の歪みに対して堅牢であるようにメッセージ符号化ニューラルネットワーク542のうちの少なくとも1つを訓練するために修正される。たとえば、入力画像502は、修正される(たとえば、編集される、サイズ変更される、クロップされる)ことが可能であり、またはフェイク画像であることが可能であり得る。
別の例において、特徴認識エンジン520は、エンコーダシステム510の第1の特徴抽出ニューラルネットワーク522を含む。(たとえば、図4の画像リポジトリ104に関連して説明されたように)画像リポジトリ104は、図4に関連して説明されたように、入力画像502を特徴認識エンジン520に提供する。動作506において、入力画像502が、処理のために画像損失計算エンジン580にも提供される。
特徴認識エンジン520(たとえば、特徴抽出ニューラルネットワーク522)は、入力画像502の特徴を推定(決定)し、決定された特徴528の出力を生成する。態様において、特徴抽出ニューラルネットワーク522は、画像認識によって学習された特徴として認識され得る特質を有する決定された特徴528を推定する。学習された特徴は、フェイク画像の検出に敏感であるべきであり、たとえば、画像が操作された場合または偽物である場合、学習された特徴は、まったく異なるものになる。態様においては、(図1のユーザによって提供された特徴124および/または図2のユーザによって提供された特徴234などの)ユーザによって提供された特徴が、決定された特徴528と一緒に含めるためにユーザによって提供されてよい。
任意でまたは追加で、決定された特徴528は、図4に関連して上で説明されているように、ユーザによって提供された特徴の使用を通じて入力画像502から抽出され得る。実装において、特徴認識エンジン520は、主成分分析、エッジ検出、ハフ変換、またはその他のアルゴリズムなどの、ニューラルネットワークに頼らないその他の特徴抽出技術およびアルゴリズムの使用を通じて決定された特徴528を生成してよい。
決定された特徴528を推定した後、特徴認識エンジン520は、決定された特徴528の出力530(第3の出力)を特徴損失計算エンジン570に送信する。決定された特徴528は、特徴損失計算エンジン570が総損失計算エンジン590に入力として提供される特徴損失572を計算することを可能にするために特徴損失計算エンジン570に提供される。
また、特徴認識エンジン520は、出力画像550を生成するために、決定された特徴528を有する出力526を、メッセージエンコーダ540のメッセージ符号化ニューラルネットワーク542(たとえば、図1のメッセージ符号化ニューラルネットワーク142)に送信する。態様においては、1つまたは複数の署名が、決定された特徴528に基づいて生成され、署名は、出力画像550を生成するためにデジタルメッセージ(たとえば、ステガノグラフィック信号)として出力画像550に埋め込まれる。
動作554において、受信画像552が、処理のために画像損失計算エンジン580に送信される。動作556において、受信画像552が、デコーダシステム560に送信される。態様において、デコーダシステム560は、メッセージデコーダ561を含む。態様において、メッセージデコーダ561は、メッセージ復号ニューラルネットワーク562を含む。図2のメッセージ復号ニューラルネットワーク252などのメッセージ復号ニューラルネットワーク562は、受信画像552を復号して、受信画像552から署名を抽出する。署名は、受信画像552の復元された特徴564を表す。実装において、メッセージ復号ニューラルネットワーク252は、画像を符号化することと復号することとの両方を行うように構成されたメッセージ符号化/復号ニューラルネットワークである。
メッセージ復号ニューラルネットワーク562は、復元された特徴564を含む出力563(第2の出力)を特徴損失計算エンジン570に送信するように構成される。復元された特徴564は、特徴損失計算エンジン570が総損失計算エンジン590に入力として提供される特徴損失572を計算することを可能にするために特徴損失計算エンジン570に提供される。
システム500は、特徴損失572を決定する。実装において、システム500は、損失関数を適用して特徴損失572を決定する特徴損失計算エンジン570を含む。損失関数は、入力画像502の特徴に関連して特徴認識エンジン520によって推定された決定された特徴528と、受信画像552内の特徴に関連してメッセージ復号ニューラルネットワーク562によって抽出された復元された特徴564との間のずれを決定する。一部の実装において、損失関数は、ずれを、受信画像552がフェイク画像である結果としての受信画像552の復元された特徴564の精度の損失として表す場合がある。損失が計算された後、特徴損失572は、出力(第1の損失)として総損失計算エンジン590に送信される。特徴損失572は、特徴抽出ニューラルネットワーク522、メッセージ符号化ニューラルネットワーク542、メッセージ復号ニューラルネットワーク562、またはメッセージコーディングニューラルネットワーク(たとえば、メッセージ符号化/復号ニューラルネットワーク)のうちの1つまたは複数をさらに最適化するために総損失計算エンジン590に提供される。
システム500は、画像損失582を決定する。実装において、システム500は、入力画像502および受信画像552を受信し、損失関数を適用して画像損失582を決定する画像損失計算エンジン580を含む。損失関数は、入力画像502と受信画像552との間のずれを決定する。一部の実装において、損失関数は、フェイク画像または操作された画像の結果としての受信画像552内のずれを表す場合がある。画像損失582が計算された後、画像損失582は、総損失計算エンジン590に送信され、特徴抽出ニューラルネットワーク522、メッセージ符号化ニューラルネットワーク542、またはメッセージ復号ニューラルネットワーク562のうちの1つまたは複数をさらに最適化するために使用され得る。
システム500は、画像損失582および特徴損失572に基づいて総損失592を決定する。態様において、システム500は、損失関数を特徴損失572および画像損失582に適用して総損失592を決定する総損失計算エンジン590を含む。総損失592は、第1の特徴抽出ニューラルネットワーク522またはメッセージ復号ニューラルネットワーク562のうちの少なくとも一方によって実行される推定によって引き起こされる場合がある。損失関数は、特徴損失計算エンジン570によって計算された特徴損失572と、画像損失計算エンジン580によって計算された画像損失582との間のずれを決定する。
最適化される総損失関数は、次の式によって表され得る。
L = Lil(Ii, Io) + Lfl(f, fii) (1)
総損失は、画像損失関数(入力画像、出力画像)+特徴損失関数(特徴、入力画像からの復元された特徴)に等しい。式中、総損失は、Lであり、画像損失関数は、Lilであり、特徴損失関数は、Lflであり、入力画像は、Iiであり、出力画像は、Ioであり、特徴は、fであり、入力画像からの復元された特徴は、fiiである。
総損失が計算された後、計算された総損失592は、特徴抽出ニューラルネットワーク522、メッセージ復号ニューラルネットワーク562、またはメッセージコーディングニューラルネットワーク(たとえば、メッセージ符号化/復号ニューラルネットワーク)のうちの少なくとも1つをさらに最適化するために使用される。たとえば、計算された総損失592は、特徴抽出ニューラルネットワーク522またはメッセージ復号ニューラルネットワーク562のうちの1つまたは複数の層に関するパラメータの最適化を実行するために使用されてよい。図5に示されたプロセスは、計算された総損失が所定の閾値以下になるまで、またはその他の収束基準が満たされるまで、繰り返されてよい。そのような訓練ループは、特徴抽出ニューラルネットワーク522、メッセージ符号化ニューラルネットワーク542、またはメッセージ復号ニューラルネットワーク562のうちの1つまたは複数を反復的に最適化するために、画像リポジトリ104からの複数の画像に関して繰り返されてよい。実装において、パラメータの最適化は、特徴抽出ニューラルネットワーク522が画像に描かれた特徴をより正確に推定することを可能にする。時間の経過とともに、訓練ループの反復による十分な訓練によって、特徴抽出ニューラルネットワーク522は、メッセージ復号ニューラルネットワーク562によって特徴損失計算エンジン570に提供される復元された特徴536が、特徴抽出ニューラルネットワーク522によって特徴損失計算エンジン570に提供される決定された特徴528に収束するように改善されてよい。
実装においては、操作検出ニューラルネットワーク(たとえば、図2に示された操作検出ニューラルネットワーク272)が、メッセージ符号化ニューラルネットワーク(たとえば、図1のメッセージ符号化ニューラルネットワーク142)、メッセージ復号ニューラルネットワーク(たとえば、図2のメッセージ復号ニューラルネットワーク252、図5のメッセージ復号ニューラルネットワーク562)、または特徴抽出ニューラルネットワーク(たとえば、図1の特徴抽出ニューラルネットワーク122、図2の特徴抽出ニューラルネットワーク232、図4の特徴抽出ニューラルネットワーク422、図4の第2の特徴抽出ニューラルネットワーク464、図5の第1の特徴抽出ニューラルネットワーク522)のうちの1つまたは複数とは別に訓練される。
操作検出ニューラルネットワークを訓練するために、特徴抽出ニューラルネットワーク、メッセージ符号化ニューラルネットワーク、特徴抽出ニューラルネットワーク、またはメッセージ復号ニューラルネットワークのうちの少なくとも1つの値が固定され、訓練画像が生成される。訓練画像は、少なくとも1つの画像の操作を含んでよい。態様において、入力画像は、訓練画像であってよい。態様において、受信画像は、訓練画像であってよい。
システムは、操作検出ニューラルネットワークに訓練画像を送信する。操作検出ニューラルネットワークは、訓練画像に適用された画像の操作を判定する。訓練画像に適用された画像の操作を利用して、操作検出ニューラルネットワークは、正常損失(normal loss)関数に基づく正常損失を計算する。実装において、正常損失は、交差エントロピー損失(cross-entropy loss)である。操作検出ニューラルネットワークは、少なくとも計算された正常損失に基づいて訓練される。態様において、適用される損失関数は、分類のための正常損失関数である。
特徴抽出ニューラルネットワークは、改善された精度で画像から特徴を抽出するために、および/または画像内のメッセージを符号化/復号するために、メッセージコーディングニューラルネットワーク(たとえば、メッセージ符号化/復号ニューラルネットワーク、メッセージ符号化ニューラルネットワークまたはメッセージ符号化/復号ニューラルネットワークのうちの1つまたは複数)と共訓練され得る。たとえば、上述の別個の特徴抽出ニューラルネットワークの訓練と、上述の別個のメッセージ符号化/復号ニューラルネットワークの訓練との組合せによる。最適化される総損失関数は、次の式によって表され得る。
L = Lil(Ii, Io) + Lfl(f, fii) + Ldfl(f, fri) (2)
総損失は、画像損失関数(入力画像、出力画像)+特徴損失関数(特徴、入力画像からの復元された特徴)+識別特徴損失関数(特徴、受信画像からの特徴)に等しい。式中、総損失は、Lであり、画像損失関数は、Lilであり、特徴損失関数は、Lflであり、入力画像は、Iiであり、出力画像は、Ioであり、特徴は、fであり、入力画像からの復元された特徴は、fiiであり、識別特徴損失関数は、Ldflであり、受信画像からの特徴は、friである。
入力画像は、出力画像と知覚的に同じである場合があり、入力画像からの復元された特徴は、たとえ何らかの画像の操作(または偽造)があるとしても、入力画像から抽出された(復元された)特徴に可能な限り近くなる。この場合、学習された特徴は、メッセージ符号化ニューラルネットワークが隠すことおよび抽出することがより容易な特徴である可能性がある。また、学習された特徴は、画像の操作(または偽造)に対して敏感である場合があり、結果として、画像が変更される(たとえば、操作される、偽造される)場合、抽出された特徴は、入力画像から抽出された特徴とはまったく異なるものとなる。そのような態様において、操作検出ニューラルネットワークは、上述のように、別に訓練されてよい。
特徴抽出ニューラルネットワークは、改善された精度で、画像から特徴を抽出するため、および/または受信画像が入力画像の偽物のもしくは操作されたバージョンであるかどうかを判定するために、操作検出ニューラルネットワークと共訓練され得る。そのような態様において、メッセージコーディングニューラルネットワーク(たとえば、図1のメッセージ符号化ニューラルネットワーク142および図2のメッセージ復号ニューラルネットワーク252)が、最初に訓練されてよい。メッセージコーディングニューラルネットワークを訓練するために、検出することが望ましい画像の操作(または偽造)が、ランダムな特徴を有するランダムな入力画像に適用される可能性がある。
最適化される総損失関数は、次の式によって表される可能性がある。
L = Lil(Ii, Io) + Lfl(fra, frr) (3)
総損失は、画像損失関数(入力画像、出力画像)+特徴損失関数(ランダムな特徴、復元されたランダムな特徴)に等しい。式中、総損失は、Lであり、画像損失関数は、Lilであり、特徴損失関数は、Lflであり、ランダムな特徴は、Fraであり、復元されたランダムな特徴は、frrである。
入力画像は、出力画像と知覚的に同じであることが可能であり、ランダムな特徴が、入力画像から復元される。それから、メッセージコーディングニューラルネットワークの重みが固定され、特徴抽出ネットワークおよび操作検出ニューラルネットワークを共訓練される。そして、検出されることが望ましい画像の操作またはフェイクが、ランダムに適用されるかまたは適用されないことが可能である。
最適化される総損失関数は、次の式によって表され得る。
L = Ldfl(f, fri) + Lce (4)
総損失は、識別特徴損失関数(特徴、受信画像からの特徴)+交差エントロピー損失(偽物または本物)に等しい。式中、総損失は、Lであり、識別特徴損失関数は、Ldflであり、受信画像からの特徴は、friであり、交差エントロピー損失(偽物または本物)は、Lceである。そのような訓練プロセスを通じて、特徴抽出ニューラルネットワークは、フェイクまたは本物の画像を検出するために最良な特徴を学習する。
メッセージコーディングニューラルネットワーク(たとえば、図1のメッセージ符号化ニューラルネットワーク142および図2のメッセージ復号ニューラルネットワーク252)は、改善された精度で、画像内のメッセージを符号化/復号化するために、および/または受信画像が入力画像の偽物のもしくは操作されたバージョンであるかどうかを判定するために、操作検出ニューラルネットワークと共訓練され得る。そのような態様において、特徴抽出ニューラルネットワークは、上述のように、別に訓練される。特徴抽出ニューラルネットワークが訓練された後、重みが固定される。メッセージコーディングニューラルネットワークおよび操作検出ニューラルネットワークを共訓練するために、検出されることが望ましい画像の操作またはフェイクが、ランダムに適用されるかまたは適用されない。最適化される総損失関数は、次の式によって表され得る。
L = Lil(Ii, Io) + Lfl(f, fii) + Lce (5)
総損失は、画像損失関数(入力画像、出力画像)+特徴損失関数(特徴、入力画像からの復元された特徴)+交差エントロピー損失(偽物または本物)に等しい。式中、総損失は、Lであり、画像損失関数は、Lilであり、特徴損失関数は、Lflであり、入力画像は、Iiであり、出力画像は、Ioであり、特徴は、fであり、入力画像からの復元された特徴は、fiiであり、交差エントロピー損失(偽物または本物)は、Lceである。態様において、入力画像は、出力画像と知覚的に同じであることが可能であり、入力画像からの復元された特徴は、たとえ何らかの画像の操作(または偽造)があるとしても、入力画像から抽出された(復元された)特徴に可能な限り近くなる。
特徴抽出ニューラルネットワークは、改善された精度で画像から特徴を抽出するため、画像内のメッセージを符号化/復号するため、および/または改善された精度で受信画像が入力画像の偽物のもしくは操作されたバージョンであるかどうかを判定するために、メッセージコーディングニューラルネットワーク(たとえば、メッセージ符号化/復号ニューラルネットワーク、メッセージ符号化ニューラルネットワーク、およびメッセージ復号ニューラルネットワーク)、ならびに操作検出ニューラルネットワークとともに共訓練され得る。
検出されることが望ましい操作またはフェイクが、ランダムに適用されるかまたは適用されないことが可能である。最適化される総損失関数は、次の式によって表され得る。
L = Lil(Ii, Io) + Lfl(f, fii) + Ldfl(f, fri) + Lce (6)
総損失は、画像損失関数(入力画像、出力画像)+特徴損失関数(ランダムな特徴、復元されたランダムな特徴)+識別特徴損失関数(特徴、受信画像からの特徴)+交差エントロピー損失(偽物または本物)に等しい。式中、総損失は、Lであり、画像損失関数は、Lilであり、特徴損失関数は、Lflであり、ランダムな特徴は、Fraであり、復元されたランダムな特徴は、frrであり、識別特徴損失関数は、Ldflであり、受信画像からの特徴は、friであり、交差エントロピー損失(偽物または本物)は、Lceである。
受信画像がフェイク画像である場合、識別特徴損失関数は、場合の特徴(case feature)にペナルティを与え、受信画像からの特徴は、近い。受信画像が本物である場合、識別特徴損失関数は、場合の特徴にペナルティを与え、受信画像からの特徴は、遠い。入力画像は、出力画像と知覚的に同じであることが望ましい。メッセージコーディングニューラルネットワークは、画像の操作またはフェイクに対して堅牢であることが望ましい。要求される特徴は、画像の操作またはフェイクに敏感であることが望ましい。
画像の真正性を検証するための説明された技術および装置の特徴および概念は、任意の数の異なる環境、システム、デバイス、および/または様々な構成で実装され得るが、画像の真正性を検証する態様は、以下の例示的なデバイス、システム、および構成の文脈で説明される。
本明細書において検討される技術および/または装置がユーザについての個人情報を収集する可能性があるか、または個人情報を利用する可能性がある場合、ユーザは、プログラムまたは特徴が個人情報、たとえば、ユーザのソーシャルネットワーク、ソーシャルな行動もしくは活動、職業、好み、または現在位置を収集するかどうかを制御する、あるいはシステムおよび/または方法がユーザにより関連性がある動作を実行し得るかどうかおよび/またはどのようにして実行し得るかを制御する機会を与えられてよい。さらに、特定のデータが、個人を特定することができる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で匿名化されてよい。たとえば、ユーザのアイデンティティ(identity)が、個人を特定することができる情報がユーザに関して決定され得ないように匿名化される可能性があるか、または位置情報が取得される場合にユーザの地理的位置が、ユーザの特定の位置が決定され得ないように都市、郵便番号、もしくは州のレベルなどにまで一般化される可能性がある。したがって、ユーザは、情報がユーザについてどのようにして収集されるかおよび使用されるかを制御することができる場合がある。
方法
図6は、検証される画像を生成する例示的な方法600を示す。方法600は、図1に関連して説明された構成要素のうちの1つまたは複数を利用して、図1に関連して上で説明されたようにシステム100によって実行される場合がある。602において、エンコーダシステムが、入力画像を受信する。エンコーダシステムは、604において、入力画像の複数の決定された特徴を決定するために入力画像に対して特徴認識を実行する。606において、エンコーダシステムは、入力画像の決定された特徴を表す値を定義する第3の出力を生成する。608において、エンコーダシステムは、第3の出力をメッセージ符号化ニューラルネットワークに提供する。610において、メッセージ符号化ニューラルネットワークは、入力画像の決定された特徴を表す値を定義する第3の出力から署名を生成する。エンコーダシステムは、612において、第2の署名を入力画像に埋め込んで、出力画像を生成する。態様において、方法600は、画像の真正性を検証することを含む。方法600は、図示されているものよりも追加のもしくは少ない動作を含んで、または異なる順序で実行される場合がある。
方法600の例示的なユースケースにおいては、ユーザコンピューティングデバイスのユーザが、ユーザコンピューティングデバイスのカメラモジュールを利用して入力画像(写真)を撮影する。ユーザコンピューティングデバイスに実装されたエンコーダシステムが、入力画像を受信する。エンコーダシステムは、入力画像の複数の決定された特徴を決定するために入力画像に対して特徴認識を実行する。エンコーダシステムは、入力画像の決定された特徴を表す値を定義する出力を生成する。エンコーダシステムは、ユーザコンピューティングデバイスのメモリデバイスに実装されたメッセージ符号化ニューラルネットワークに出力を提供する。メッセージ符号化ニューラルネットワークは、入力画像の決定された特徴を表す値を定義する出力から署名を生成する。エンコーダシステムは、入力画像に署名を埋め込んで、ユーザコンピューティングデバイスのメモリデバイスに記憶される出力画像を生成する。
方法600の別の例示的なユースケースにおいては、画像が、画像リポジトリに記憶される。サーバコンピューティングデバイスに実装されたエンコーダシステムが、画像リポジトリから入力画像を受信する。たとえば、画像リポジトリは、運用者によって提供されるサービスのユーザによってアップロードされた画像を記憶するためにサーバコンピューティングデバイスの運用者によって利用され得る。エンコーダシステムは、入力画像の複数の決定された特徴を決定するために入力画像に対して特徴認識を実行する。エンコーダシステムは、入力画像の決定された特徴を表す値を定義する出力を生成する。エンコーダシステムは、サーバコンピューティングデバイスのメモリデバイスに実装されたメッセージ符号化ニューラルネットワークに出力を提供する。メッセージ符号化ニューラルネットワークは、入力画像の決定された特徴を表す値を定義する出力から署名を生成する。エンコーダシステムは、入力画像に署名を埋め込んで、サーバコンピューティングデバイスのメモリデバイスに記憶される出力画像を生成する。埋め込まれた署名は、後で画像を検証するために利用され得る。
図7は、画像の真正性を検証する例示的な方法700を示す。方法700は、図2に関連して説明された構成要素のうちの1つまたは複数を利用して、図2に関連して上で説明されたようにシステム200によって実行される場合がある。702において、デコーダシステムが、検証される画像を受信する。704において、デコーダシステムは、受信画像の複数の決定された特徴を決定するために受信画像に対して特徴認識を実行する。デコーダシステムは、706において、受信画像の決定された特徴を表す値を定義する第1の出力を生成する。708において、デコーダシステムは、メッセージ復号ニューラルネットワークを利用して受信画像を復号して、受信画像に埋め込まれた署名を抽出する。埋め込まれた署名は、受信画像の復元された特徴を表す。デコーダシステムは、710において、受信画像の復元された特徴を表す値を定義する第2の出力を生成する。712において、デコーダシステムは、第1の出力および第2の出力を操作検出ニューラルネットワークに提供する。714において、操作検出ニューラルネットワークは、少なくとも第1の出力および第2の出力を利用して、受信画像の真正性の推定値を生成する。態様において、方法700は、画像の真正性を検証することを含む。方法700は、図示されているものよりも追加のもしくは少ない動作を含んで、または異なる順序で実行される場合がある。
方法700の例示的なユースケースにおいては、ユーザコンピューティングデバイスに実装されたデコーダシステムが、ユーザコンピューティングデバイスに実装されたメモリデバイスから検証される画像を受信する。デコーダシステムは、受信画像の複数の決定された特徴を決定するために受信画像に対して特徴認識を実行する。デコーダシステムは、受信画像の決定された特徴を表す値を定義する第1の出力を生成する。デコーダシステムは、ユーザコンピューティングデバイスに実装されたメッセージ復号ニューラルネットワークを利用して受信画像を復号して、受信画像に埋め込まれた署名を抽出する。埋め込まれた署名は、受信画像の復元された特徴を表す。デコーダシステムは、受信画像の復元された特徴を表す値を定義する第2の出力を生成する。デコーダシステムは、第1の出力および第2の出力を、ユーザコンピューティングデバイスに実装された操作検出ニューラルネットワークに提供する。操作検出ニューラルネットワークは、少なくとも第1の出力および第2の出力を利用して、受信画像の真正性の推定値を生成する。
方法700の別の例示的なユースケースにおいては、サーバコンピューティングデバイスに実装されたデコーダシステムが、画像リポジトリから検証される画像を受信する。たとえば、画像リポジトリは、運用者によって提供されるサービスのユーザによってアップロードされた画像を記憶するためにサーバコンピューティングデバイスの運用者によって利用され得る。デコーダシステムは、受信画像の複数の決定された特徴を決定するために受信画像に対して特徴認識を実行する。デコーダシステムは、受信画像の決定された特徴を表す値を定義する第1の出力を生成する。デコーダシステムは、サーバコンピューティングデバイスに実装されたメッセージ復号ニューラルネットワークを利用して受信画像を復号して、受信画像に埋め込まれた署名を抽出する。埋め込まれた署名は、受信画像の復元された特徴を表す。デコーダシステムは、受信画像の復元された特徴を表す値を定義する第2の出力を生成する。デコーダシステムは、第1の出力および第2の出力を、サーバコンピューティングデバイスに実装された操作検出ニューラルネットワークに提供する。操作検出ニューラルネットワークは、少なくとも第1の出力および第2の出力を利用して、受信画像の真正性の推定値を生成する。
機械学習モデル
図8は、本開示の例示的な実装による例示的な機械学習モデル800のブロック図を示す。図8に示されるように、機械学習モデル800は、1つまたは複数の種類の入力データを受信し、それに応じて、1つまたは複数の種類の出力データを提供するように訓練される。このように、図8は、推測を実行する機械学習モデル800を示す。
入力データは、事例または例に関連する1つまたは複数の特徴を含み得る。一部の実装において、事例または例に関連する1つまたは複数の特徴は、特徴ベクトルへと編成され得る。一部の実装において、出力データは、1つまたは複数の予測を含み得る。予測は、推測とも呼ばれ得る。したがって、特定の事例に関連する特徴が与えられると、機械学習モデルは、特徴に基づいてそのような事例の予測を出力することができる。
機械学習モデルは、様々な異なる種類の機械学習モデルのうちの1つもしくは複数であることが可能であり、またはそのような機械学習モデルのうちの1つもしくは複数を含むことが可能である。特に、一部の実装において、機械学習モデルは、分類、回帰、クラスタリング、関連付け、異常検出、推薦生成、および/またはその他のタスクを実行することができる。
機械学習モデルは、入力データに基づいて様々な種類の分類を実行することができる。たとえば、機械学習モデルは、2項分類またはマルチクラス分類を実行することができる。2項分類において、出力データは、2つの異なるクラスのうちの1つへの入力データの分類を含み得る。マルチクラス分類において、出力データは、3つ以上のクラスのうちの1つ(または複数)への入力データの分類を含み得る。分類は、シングルラベルまたはマルチラベルであることが可能である。
機械学習モデルは、入力データが単純に1つまたは複数のクラスまたはカテゴリに分類される離散的カテゴリ分類を実行することができる。
機械学習モデルは、機械学習モデルが、1つまたは複数のクラスの各々に関して、入力データが対応するクラスに分類されるべきであると考えられる程度を記述する数値を提供する分類を実行することができる。場合によっては、機械学習モデルによって提供される数値は、入力のそれぞれのクラスへの分類に関連するそれぞれの信頼性を示す「信頼性スコア」と呼ばれ得る。一部の実装において、信頼性スコアは、離散的カテゴリ予測を行うために1つまたは複数の閾値と比較され得る。一部の実装においては、相対的に最大の信頼性スコアを有する特定の数のクラス(たとえば、1つ)のみが、離散的カテゴリ予測を行うために選択され得る。
機械学習モデルは、確率的分類を提供し得る。たとえば、機械学習モデルは、サンプル入力が与えられると、1組のクラス上の確率分布を予測することが可能であり得る。したがって、サンプル入力が属するべき最も可能性が高いクラスのみを出力するのではなく、機械学習モデルは、各クラスに関して、サンプル入力がそのようなクラスに属する確率を出力することができる。一部の実装において、すべての可能なクラス上の確率分布は、総和が1になり得る。一部の実装においては、ソフトマックス関数またはレイヤが、可能なクラスにそれぞれ関連する実数値の組を、総和が1になる範囲(0, 1)の実数値の組に詰め込むために使用され得る。
確率分布によって与えられる確率が、離散的カテゴリ予測を行うために1つまたは複数の閾値と比較され得る。一部の実装においては、相対的に最大の予測された確率を有する特定の数のクラス(たとえば、1つ)のみが、離散的カテゴリ予測を行うために選択され得る。
機械学習モデルが分類を実行する実装において、機械学習モデルは、教師あり学習技術を使用して訓練され得る。たとえば、機械学習モデルは、1つまたは複数のクラスに属する(または属さない)ものとしてラベル付けされた訓練例を含む訓練データセットで訓練され得る。教師あり訓練技術に関するさらなる詳細が、以下に与えられる。
機械学習モデルは、連続的な数値の形態の出力データを提供するために回帰を実行することができる。連続的な数値は、たとえば、通貨価値、スコア、またはその他の数値表現などの任意の数の異なる指標または数値表現に対応し得る。例として、機械学習モデルは、線形回帰、多項式回帰、または非線形回帰を実行することができる。例として、機械学習モデルは、単回帰または重回帰を実行することができる。上述のように、一部の実装においては、ソフトマックス関数またはレイヤが、2つ以上の可能なクラスにそれぞれ関連する実数値の組を、総和が1になる範囲(0, 1)の実数値の組に詰め込むために使用され得る。
機械学習モデルは、様々な種類のクラスタリングを実行することができる。たとえば、機械学習モデルは、入力データが対応する可能性が最も高い、1つまたは複数の事前に定義されたクラスタを特定することができる。別の例として、機械学習モデルは、入力データ内の1つまたは複数のクラスタを特定することができる。つまり、入力データが複数のオブジェクト、文書、またはその他のエンティティを含む場合、機械学習モデルは、入力データに含まれる複数のエンティティをいくつかのクラスタに分けることができる。機械学習モデルがクラスタリングを実行する一部の実装において、機械学習モデルは、教師なし学習技術を使用して訓練され得る。
機械学習モデルは、異常検出または外れ値(outlier)検出を実行することができる。たとえば、機械学習モデルは、(たとえば、以前の入力データから以前観察された)予想されるパターンまたはその他の特質に適合しない入力データを特定することができる。例として、異常検出は、不正検出またはシステム障害検出のために使用され得る。
機械学習モデルは、1つまたは複数の推薦の形態の出力データを提供することができる。たとえば、機械学習モデルは、推薦システムまたはエンジンに含まれ得る。例として、特定のエンティティに関する以前の結果(たとえば、成功または楽しみの量を示すスコア、ランキング、または評定)を記述する入力データが与えられると、機械学習モデルは、以前の結果に基づいて、所望の結果を有する(たとえば、成功または楽しみを示すスコア、ランキング、または評定を引き出す)と期待される1つまたは複数の追加のエンティティの提案または推薦を出力することができる。一例として、ユーザによって購入されたかまたは高く評価されたいくつかの製品を記述する入力データが与えられると、推薦システムは、ユーザが楽しむかまたは購入したい可能性があるさらなる製品の提案または推薦を出力することができる。
機械学習モデルは、環境内のエージェントとして働くことができる。たとえば、機械学習モデルは、強化学習を使用して訓練されることが可能であり、これは、以下でさらに詳細に検討される。
機械学習モデルは、パラメトリックモデルであることが可能であるが、その他の実装において、機械学習モデルは、ノンパラメトリックモデルであることが可能である。一部の実装において、機械学習モデルは、線形モデルであることが可能であるが、その他の実施態様において、機械学習モデルは、非線形モデルであることが可能である。
上述のように、機械学習モデルは、様々な異なる種類の機械学習モデルのうちの1つもしくは複数であることが可能であり、またはそのような機械学習モデルのうちの1つもしくは複数を含むことが可能である。そのような異なる種類の機械学習モデルの例が、説明のために下に与えられる。下で説明される例示的なモデルのうちの1つまたは複数が、入力データに応じて出力データを提供するために使用され得る(たとえば、組み合わされ得る)。下に与えられる例示的なモデル以外のさらなるモデルも、使用され得る。
機械学習モデルは、たとえば、線形分類モデル、2次分類モデルなどの1つもしくは複数の分類器モデルであるかまたはそのような1つもしくは複数の分類器モデルを含み得る。
機械学習モデルは、たとえば、線形単回帰モデル、線形重回帰モデル、ロジスティック回帰モデル、段階的回帰(stepwise regression)モデル、多変量適応回帰スプライン(multivariate adaptive regression spline)、局所推定散布図平滑化(locally estimated scatterplot smoothing)モデルなどの1つもしくは複数の回帰モデルであるかまたはそのような1つもしくは複数の回帰モデルを含み得る。
機械学習モデルは、たとえば、分類および/または回帰木、ID3(反復二分法3(Iterative Dichotomiser 3))決定木、C4.5決定木、カイ二乗自動相互作用検出(chi-squared automatic interaction detection)決定木、決定株、条件付き決定木などの1つもしくは複数の決定木に基づくモデルであるかまたはそのような1つもしくは複数の決定木に基づくモデルを含み得る。
機械学習モデルは、1つもしくは複数のカーネルマシンであるかまたは1つもしくは複数のカーネルマシンを含み得る。一部の実装において、機械学習モデルは、1つもしくは複数のサポートベクターマシンであるかまたは1つもしくは複数のサポートベクターマシンを含み得る。
機械学習モデルは、たとえば、学習ベクトル量子化モデル、自己組織化マップモデル、局所重み付け学習(locally weighted learning)モデルなどの1つもしくは複数の事例に基づく学習モデルであるかまたはそのような1つもしくは複数の事例に基づく学習モデルを含み得る。
機械学習モデルは、たとえば、k近傍分類モデル、k近傍回帰モデルなどの1つもしくは複数の近傍モデルであるかまたはそのような1つもしくは複数の近傍モデルを含み得る。
機械学習モデルは、たとえば、ナイーブベイズモデル、ガウシアンナイーブベイズモデル、多項ナイーブベイズモデル、平均1依存性推定器(averaged one-dependence estimator)、ベイジアンネットワーク、ベイジアン信念ネットワーク(Bayesian belief network)、隠れマルコフモデルなどの1つもしくは複数のベイズモデルであるかまたはそのような1つもしくは複数のベイズモデルを含み得る。
機械学習モデルは、1つもしくは複数の人工ニューラルネットワーク(単にニューラルネットワークとも呼ばれる)であるかまたは1つもしくは複数の人工ニューラルネットワークを含み得る。ニューラルネットワークは、ニューロンまたはパーセプトロンとも呼ばれ得る接続されたノードのグループを含むことができる。ニューラルネットワークは、1つまたは複数の層へと編成され得る。複数の層を含むニューラルネットワークは、「ディープ」ネットワークと呼ばれ得る。ディープネットワークは、入力層、出力層、および入力層と出力層との間に位置する1つまたは複数の隠れ層を含み得る。ニューラルネットワークのノードは、接続されるかまたは不完全に接続されることが可能である。
機械学習モデルは、1つもしくは複数の順伝播型ニューラルネットワークであるかまたは1つもしくは複数の順伝播型ニューラルネットワークを含み得る。順伝播型ネットワークにおいては、ノード間の接続が、循環を形成しない。たとえば、各接続は、前の層のノードを後の層のノードに接続することができる。
機械学習モデルは、1つもしくは複数の再帰型ニューラルネットワークであるかまたは1つもしくは複数の再帰型ニューラルネットワークを含み得る。場合によっては、再帰型ニューラルネットワークのノードの少なくとも一部が、循環を形成することができる。再帰型ニューラルネットワークは、連続的な性質のある入力データを処理するために特に有用であり得る。特に、場合によっては、再帰型ニューラルネットワークは、再帰的なまたは有向の循環的なノード接続の使用を通じて、入力データシーケンスの前の部分から入力データシーケンスの後の部分に情報を渡すまたは保持することができる。
一例として、連続的な入力データは、時系列データ(たとえば、時間に対するセンサーデータ、または異なる時間に撮影された画像)を含み得る。たとえば、再帰型ニューラルネットワークは、スワイプ方向の検出または予測、手書き文字認識の実行などのために、時間に対するセンサーデータを分析し得る。別の例として、連続的な入力データは、文中の単語(たとえば、自然言語処理、音声検出または処理などのため)、楽曲中の音、ユーザによって行われた連続的な行動(たとえば、連続的なアプリケーションの使用を検出または予測するため)、連続的なオブジェクトの状態などを含み得る。
例示的な再帰型ニューラルネットワークは、長期短期(LSTM)再帰型ニューラルネットワーク、ゲート付き再帰型ユニット(gated recurrent unit)、双方向再帰型ニューラルネットワーク、連続時間再帰型ニューラルネットワーク、ニューラルヒストリーコンプレッサ(neural history compressor)、エコーステートネットワーク(echo state network)、エルマンネットワーク、ジョーダンネットワーク、再帰的ニューラルネットワーク(recursive neural network)、ホップフィールドネットワーク、完全再帰型ネットワーク(fully recurrent network)、シーケンスツーシーケンス(sequence-to-sequence)構成などを含む。
機械学習モデルは、1つもしくは複数の畳み込みニューラルネットワークであるかまたは1つもしくは複数の畳み込みニューラルネットワークを含み得る。場合によっては、畳み込みニューラルネットワークは、学習されたフィルタを使用して入力データに対して畳み込みを実行する1つまたは複数の畳み込み層を含み得る。フィルタは、カーネルとも呼ばれ得る。畳み込みニューラルネットワークは、入力データが静止画像またはビデオなどの画像を含むときなど、視覚の問題のために特に有用であり得る。しかし、畳み込みニューラルネットワークは、自然言語処理にも適用され得る。
機械学習モデルは、たとえば、敵対的生成ネットワークなどの1つもしくは複数の生成ネットワークであるかまたはそのような1つもしくは生成ネットワークを含み得る。生成ネットワークは、新しい画像またはその他のコンテンツなどの新しいデータを生成するために使用され得る。
機械学習モデルは、自己符号化器であるかまたは自己符号化器を含み得る。場合によっては、自己符号化器のねらいは、概して次元の削減を目的として1組のデータに関する表現(たとえば、より低次元の符号化)を学習することである。たとえば、場合によっては、自己符号化器は、入力データを符号化し、それから、符号化から入力データを再構築する出力データを提供しようとし得る。近年、自己符号化器の概念は、データの生成モデルを学習するために広く使用されるようになった。場合によっては、自己符号化器は、入力データを再構築することを超えた追加の損失を含み得る。
機械学習モデルは、たとえば、ディープボルツマンマシン、ディープ信念ネットワーク(deep belief network)、積層自己符号化器などの1つまたは複数のその他の形態の人工ニューラルネットワークであるかまたはそのような人工ニューラルネットワークを含み得る。本明細書に記載のニューラルネットワークのいずれかが、より複雑なネットワークを形成するために組み合わされ(たとえば、積層され)得る。
1つまたは複数のニューラルネットワークは、入力データに基づく埋め込みを提供するために使用され得る。たとえば、埋め込みは、入力データから1つまたは複数の学習された次元に抽象化された知識の表現であり得る。場合によっては、埋め込みは、関連するエンティティを特定するための有用なソースとなり得る。場合によっては、埋め込みは、ネットワークの出力から抽出され得るが、その他の場合に、埋め込みは、(たとえば、ネットワークの最終層に近いが最終層ではない)ネットワークの任意の隠れノードまたは層から抽出され得る。埋め込みは、次のビデオの自動提案、製品の提案、エンティティ、オブジェクト認識などを実行するために有用であり得る。場合によっては、埋め込みは、下流のモデルのための有用な入力である。たとえば、埋め込みは、下流のモデルまたは処理システムのために入力データ(たとえば、検索クエリ)を一般化するために有用であり得る。
機械学習モデルは、たとえば、k平均クラスタリングモデル、k中央値(k-medians)クラスタリングモデル、期待値最大化モデル、階層的クラスタリングモデルなどの1つまたは複数のクラスタリングモデルを含み得る。
機械学習モデルは、たとえば、主成分分析、カーネル主成分分析、グラフベースカーネル主成分分析(graph-based kernel principal component analysis)、主成分回帰、部分最小二乗回帰、サモンマッピング(Sammon mapping)、多次元スケーリング、射影追跡、線形判別分析、混合判別分析、2次判別分析、一般化判別分析(generalized discriminant analysis)、柔軟判別分析(flexible discriminant analysis)、自己符号化などの1つまたは複数の次元削減技術を実行することができる。
機械学習モデルは、マルコフ決定過程、動的計画法、Q関数またはQ学習、価値関数手法、ディープQネットワーク、微分可能ニューラルコンピュータ(differentiable neural computer)、非同期度アドバンテージアクタークリティック(asynchronous advantage actor-critics)、決定論的方策勾配法(deterministic policy gradient)などの1つもしくは複数の強化学習技術を実行するかまたはそのような1つもしくは複数の強化学習技術に従い得る。
機械学習モデルは、自己回帰モデルであることが可能である。場合によっては、自己回帰モデルは、出力データがそのモデル自体の以前の値および確率項(stochastic term)に線形に依存することを指定し得る。場合によっては、自己回帰モデルは、確率差分方程式(stochastic difference equation)の形を取り得る。1つの例示的な自己回帰モデルは、生の音声のための生成モデルであるWaveNetである。
機械学習モデルは、複数のモデルのアンサンブルを含むかまたは複数のモデルのアンサンブルの一部を形成し得る。一例として、「バギング」とも呼ばれ得るブートストラップ集約が、実行され得る。ブートストラップ集約においては、訓練データセットが、(たとえば、無作為復元抽出によって)いくつかのサブセットに分割され、複数のモデルが、いくつかのサブセットでそれぞれ訓練される。推測時には、複数のモデルのそれぞれの出力が、(たとえば、平均、投票、またはその他の技術によって)組み合わされ、アンサンブルの出力として使用され得る。
1つの例示的なモデルアンサンブルは、ランダム決定フォレストとも呼ばれ得るランダムフォレストである。ランダムフォレストは、分類、回帰、およびその他のタスクのためのアンサンブル学習方法である。ランダムフォレストは、訓練時に複数の決定木を生成することによって生成される。場合によっては、推測時に、個々の木のクラスの最頻値(分類)または平均予測値(回帰)であるクラスが、フォレストの出力として使用され得る。ランダム決定フォレストは、決定木がそれらの訓練セットに過剰適合する傾向を修正することができる。
別の例示的なアンサンブル技術は、場合によってはスタック汎化(stacked generalization)と呼ばれ得るスタッキングである。スタッキングは、いくつかのその他の機械学習モデルの予測をブレンドするかまたはその他の方法で組み合わせるようにコンバイナモデルを訓練することを含む。したがって、(たとえば、同じ種類または異なる種類の)複数の機械学習モデルが、訓練データに基づいて訓練され得る。さらに、その他の機械学習モデルからの予測を入力とし、それに応じて、最終的な推測または予測を生成するようにコンバイナモデルが訓練され得る。場合によっては、単層ロジスティック回帰モデルが、コンバイナモデルとして使用され得る。
別の例示的なアンサンブル技術は、ブースティングである。ブースティングは、弱いモデルを反復的に訓練し、それから、最終的な強いモデルへと足すことでアンサンブルを漸進的に構築することを含み得る。たとえば、場合によっては、それぞれの新しいモデルが、以前のモデルが誤って解釈した(たとえば、誤って分類した)訓練例を強調するように訓練され得る。たとえば、そのような誤って解釈された例の各々に関連する重みが、増やされ得る。ブースティングの1つのよくある実装は、適応ブースティングとも呼ばれ得るAdaBoostである。その他の例示的なブースティング技術は、線形計画ブースティング(Linear Programming Boosting)(LPBoost)、TotalBoost、BrownBoost、XGBoost、MadaBoost、LogitBoost、勾配ブースティングなどを含む。
さらに、上述のモデル(たとえば、回帰モデルおよび人工ニューラルネットワーク)のいずれかが、アンサンブルを形成するために組み合わされ得る。例として、アンサンブルは、アンサンブルを形成するモデルの出力を組み合わせるおよび/または重み付けするための最上位レベルの機械学習モデルまたはヒューリスティック関数を含み得る。
(たとえば、アンサンブルを形成する)複数の機械学習モデルは、(たとえば、モデルアンサンブルを通じて、順次、誤差のバックプロパゲーションによって)リンクされ、一緒に訓練され得る。しかし、一部の実装においては、一緒に訓練されたモデルのサブセット(たとえば、1つ)のみが、推測のために使用される。
機械学習モデルは、別のモデルへのその後の入力のために、入力データを前処理するために使用され得る。たとえば、機械学習モデルは、下流での消費のために、次元削減技術および埋め込み(たとえば、行列の分解、主成分分析、特異値分解、Word2vec/GloVe、および/または関連する手法)、クラスタリング、ならびに分類および回帰さえも実行し得る。これらの技術の多くは、上で検討されており、下でさらに検討される。
図8を再び参照すると、上で検討されたように、機械学習モデルは、入力データを受信し、それに応じて、出力データを提供するように訓練されるかまたはそうでなければ構成され得る。入力データは、異なる種類、形態、またはバリエーションの入力データを含み得る。例として、様々な実装において、入力データは、決定された画像の特徴および/またはユーザによって提供された画像の特徴を含み得る。
機械学習モデルは、入力データをその生の形態で受信し、使用し得る。一部の実装においては、生の入力データが、前処理され得る。したがって、生の入力データに加えてまたは生の入力データの代替として、機械学習モデルは、前処理された入力データを受信し、使用し得る。
入力データを前処理することは、生の入力データから1つまたは複数の追加的な特徴を抽出することを含み得る。たとえば、特徴抽出技術が、1つまたは複数の新しい追加的な特徴を生成するために入力データに適用され得る。例示的な特徴抽出技術は、エッジ検出、コーナー検出、ブロッブ検出、リッジ検出、スケール不変特徴変換、動き検出、オプティカルフロー、ハフ変換などを含む。
抽出された特徴は、その他の領域および/または次元への入力データの変換を含むかまたはそのような変換から導出され得る。例として、抽出された特徴は、周波数領域への入力データの変換を含むかまたはそのような変換から導出され得る。たとえば、ウェーブレット変換または高速フーリエ変換が、追加的な特徴を生成するために入力データに対して実行され得る。
抽出された特徴は、入力データまたは入力データの特定の部分もしくは次元から計算された統計を含み得る。例示的な統計は、入力データまたはその一部の最頻値、平均値、最大値、最小値、またはその他の指標を含む。
上述のように、入力データは、連続的な性質を持ち得る。場合によっては、連続的な入力データは、入力データのストリームをサンプリングするかまたはそうでなければセグメント分けすることによって生成され得る。一例として、フレームが、ビデオから抽出され得る。一部の実装において、連続的なデータは、要約(summarization)によって非連続的にされ得る。
別の例示的な前処理技術として、入力データの一部が、入力され得る。たとえば、追加的な合成入力データが、内挿および/または外挿によって生成され得る。
別の例示的な前処理技術として、入力データの一部またはすべてが、スケーリング、標準化、正規化、一般化、および/または正則化され得る。例示的な正則化技術は、リッジ回帰、最小絶対収縮および選択演算子(LASSO: least absolute shrinkage and selection operator)、エラスティックネット(elastic net)、最小角度回帰(least-angle regression)、交差検証、L1正則化、L2正則化などを含む。一例として、入力データの一部またはすべてが、それぞれの個々の特徴値から所与の次元の特徴値全体の平均を引き、それから、標準偏差または別の指標で割ることによって正規化され得る。
別の例示的な前処理技術として、入力データの一部またはすべてが、量子化または離散化され得る。さらに別の例として、入力データに含まれる定性的な特徴または変数が、定量的な特徴または変数に変換され得る。たとえば、ワンホットエンコーディングが、実行され得る。
次元削減技術が、機械学習モデルに入力する前に入力データに適用され得る。たとえば、主成分分析、カーネル主成分分析、グラフベースカーネル主成分分析、主成分回帰、部分最小二乗回帰、サモンマッピング、多次元スケーリング、射影追跡、線形判別分析、混合判別分析、2次判別分析、一般化判別分析、柔軟判別分析、自己符号化などを含む次元削減技術のいくつかの例が、上で与えられている。
訓練中、入力データは、モデルの堅牢性、汎化、またはその他の品質を高めるために、任意の数の方法で意図的に変形され得る。入力データを変形するための例示的な技術は、ノイズの追加、色、濃淡、または色相の変更、拡大、セグメント分け、増幅などを含む。
再び図8を参照すると、入力データの受信に応じて、機械学習モデル800は、出力データを提供することができる。入力データは、異なる種類、形態、またはバリエーションの出力データを含み得る。例として、様々な実装において、出力データは、画像(たとえば、入力画像、出力画像、受信画像)の特徴を表す値、受信画像に埋め込まれた画像の特徴を表す値、および/または画像の真正性の予測(たとえば、推定値)を含み得る。
上述したように、出力データは、様々な種類の分類データ(たとえば、2項分類、マルチクラス分類、シングルラベル、マルチラベル、離散的分類、回帰的分類、確率的分類など)を含み得るか、または様々な種類の回帰データ(たとえば、線形回帰、多項式回帰、非線形回帰、単回帰、重回帰など)を含み得る。その他の場合、出力データは、クラスタリングデータ、異常検出データ、推薦データ、または上で検討されたその他の形態の出力データのいずれかを含み得る。
出力データは、下流のプロセスまたは意思決定に影響を与え得る。一例として、一部の実装において、出力データは、規則に基づくレギュレータによって解釈され、および/または従われる。
態様において、機械学習モデルがコンピューティングシステム(たとえば、ユーザコンピューティングシステム302)に記憶されるとき、ソフトウェア暗号化規則(たとえば、安全なハッシュアルゴリズム)が、モデルの完全性を保護し、第三者がモデルを改ざんすること(たとえば、機械学習モデルの一部を別のモデルによって置き換えること)を防止するために利用され得る。態様においては、改ざんの試みの検出に応じて、警告信号が生成されてよい。
したがって、本開示は、決定された特徴および/または画像に埋め込まれた復元された画像の特徴に基づいて画像の真正性の予測(たとえば、推定値)を生成するための1つまたは複数の機械学習モデルを含むかまたはそうでなければ活用するシステムおよび方法を提供する。上述の異なる種類または形態の入力データのいずれかが、上述の異なる種類または形態の出力データのいずれかを提供するために、上述の異なる種類または形態の機械学習モデルのいずれかと組み合わされ得る。
機械学習モデル800は、コンピューティングシステム(たとえば、図3のコンピューティングシステム300)に記憶され得る、および/またはコンピューティングシステム(たとえば、図3のコンピューティングシステム300)によってローカルで実施され得る。たとえば、機械学習モデル800は、ユーザコンピューティングデバイスもしくは組み込みコンピューティングデバイスに記憶され得る、および/またはユーザコンピューティングデバイスもしくは組み込みコンピューティングデバイスによってローカルで実施され得る。コンピューティングシステムにおける機械学習モデルのローカルの実施によって得られた出力データは、コンピューティングシステム(たとえば、コンピューティングシステムによって実装されるアプリケーション)の性能を向上させるために使用され得る。一例として、図3は、機械学習されたデル320をローカルに記憶し、実施するユーザコンピューティングシステム302(たとえば、モバイルコンピューティングデバイス)のブロック図を示す。
機械学習モデルは、(図3のサーバコンピューティングシステム330などの)サーバコンピューティングシステムに記憶され得る、および/または(図3のサーバコンピューティングシステム330などの)サーバコンピューティングシステムによって実施され得る。場合によっては、サーバコンピューティングデバイスにおける機械学習モデルの実施によって得られた出力データは、その他のサーバタスクを改善するために使用されることが可能であり、またはその他の非ユーザデバイスによってもしくはそのようなその他の非ユーザデバイスのために実行されるサービスを改善するためにその他の非ユーザデバイスによって使用されることが可能である。たとえば、出力データは、ユーザコンピューティングデバイスまたは組み込みコンピューティングデバイスのためにサーバコンピューティングデバイスによって実行されるその他の下流のプロセスを改善することができる。その他の場合、サーバコンピューティングデバイスにおける機械学習モデルの実施によって得られた出力データは、ユーザコンピューティングデバイス、組み込みコンピューティングデバイス、または何らかのその他のクライアントデバイスに送信され、使用され得る。たとえば、サーバコンピューティングデバイスは、サービスとして機械学習を実行すると言われ得る。一例として、図3は、機械学習モデル340を含む例示的なサーバコンピューティングシステム330とネットワーク380を介して通信することができる例示的なユーザコンピューティングシステム302のブロック図を示す。
機械学習モデルの異なるそれぞれの部分は、ユーザコンピューティングデバイス、組み込みコンピューティングデバイス、サーバコンピューティングデバイスなどのいくつかの組合せに記憶され得る、および/またはそのような組合せによって実施され得る。
コンピューティングデバイスは、たとえば、TensorFlow、Caffe/Caffe2、Theano、Torch/PyTorch、MXNet、Cognitive Toolkit(CNTK)などの1つまたは複数の機械学習プラットフォーム、フレームワーク、および/またはライブラリを使用してグラフ処理技術またはその他の機械学習技術を実行することができる。
コンピューティングデバイスは、異なる物理的な場所に分散され、1つまたは複数のネットワークを介して接続され得る。分散型コンピューティングデバイスは、逐次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはそれらの組合せによって動作し得る。一例として、分散型コンピューティングデバイスは、パラメータサーバの使用によって制御または手引きされ得る。
機械学習モデルの複数のインスタンスは、処理スループットを向上させるために並列化され得る。たとえば、機械学習モデルの複数のインスタンスが、単一の処理デバイスもしくはコンピューティングデバイス上で並列化されるか、または複数の処理デバイスもしくはコンピューティングデバイスにまたがって並列化されることが可能である。
本明細書に記載の機械学習モデルは、訓練コンピューティングシステムにおいて訓練され、それから、上述のように、1つまたは複数のコンピューティングデバイスにおける記憶および/または実施のために提供され得る。たとえば、図3に示されたように、モデルトレーナ360が、訓練コンピューティングシステム350に置かれ得る。訓練コンピューティングシステム350は、機械学習モデルを実施する1つもしくは複数のコンピューティングデバイスに含まれることが可能であり、またはそのような1つもしくは複数のコンピューティングデバイスと別れていることが可能である。一例として、図3は、モデルトレーナ360を含む例示的な訓練コンピューティングシステム350と通信する例示的なユーザコンピューティングシステム302のブロック図を示す。
機械学習モデルは、オフライン方式またはオンライン方式で訓練され得る。オフライン訓練(バッチ学習としても知られる)において、モデルは、訓練データの静的な組の全体で訓練される。オンライン学習において、モデルは、新しい訓練データが利用可能になるときに(たとえば、モデルが推測を実行するために使用される間に)継続的に訓練される(または再訓練される)。
モデルトレーナは、(たとえば、集中的に記憶されたデータセットに基づいて)機械学習モデルの集中型の訓練を実行し得る。その他の実装においては、分散型の訓練、連合学習などの非集中型訓練技術が、機械学習モデルを訓練し、更新し、またはパーソナライズするために使用され得る。
本明細書に記載の機械学習モデルは、様々な異なる訓練の種類または技術のうちの1つまたは複数によって訓練され得る。たとえば、一部の実装において、機械学習モデルは、ラベルを有する事例または例を含む訓練データセットで機械学習モデルが訓練される教師あり学習を使用して訓練され得る。ラベルは、専門家によって手動で適用されるか、クラウドソーシングによって生成されるか、またはその他の技術によって(たとえば、物理学に基づくもしくは複雑な数学的なモデルによって)提供され得る。一部の実装において、ユーザが同意を与えた場合、訓練例は、ユーザコンピューティングデバイスによって提供され得る。一部の実装において、このプロセスは、モデルのパーソナライズと呼ばれ得る。
機械学習モデルは、目的関数を最適化することによって訓練され得る。たとえば、一部の実装において、目的関数は、訓練データからモデルによって生成された出力データと、学習データに関連付けられたラベル(たとえば、グラウンドトゥルース(ground-truth)ラベル)とを比較する(たとえば、それらの間の差を決定する)損失関数であるかまたはそのような損失関数を含み得る。たとえば、損失関数は、出力データとラベルと間の差の2乗の合計または平均を評価し得る。別の例として、目的関数は、特定の結果または出力データのコストを記述するコスト関数であるかまたはそのようなコスト関数を含み得る。その他の目的関数は、たとえば、三重項損失(triplet loss)または最大マージン訓練(maximum-margin training)などのマージンに基づく技術を含み得る。
様々な最適化技術のうちの1つまたは複数が、目的関数を最適化するために実行され得る。たとえば、最適化技術は、目的関数を最小化または最大化し得る。例示的な最適化技術は、たとえば、座標降下法、勾配降下法(たとえば、確率的勾配降下法)、劣勾配法などのヘッセ行列に基づく技術および勾配に基づく技術を含む。その他の最適化技術は、ブラックボックス最適化技術およびヒューリスティックスを含む。
誤差の逆伝播が、モデル(たとえば、人工ニューラルネットワークなどの多層モデル)を訓練するために最適化技術(たとえば、勾配に基づく技術)と併せて使用され得る。たとえば、伝播およびモデルパラメータ(たとえば、重み)の更新の反復的なサイクルが、モデルを訓練するために実行され得る。例示的な逆伝播技術は、打ち切り型通時的逆伝播、レーベンバーグ・マーカート逆伝播などを含む。
本明細書に記載の機械学習モデルは、教師なし学習技術を使用して訓練され得る。教師なし学習は、ラベル付けされていないデータから隠れた構造を記述する関数を推測することを含み得る。たとえば、分類またはカテゴリ分けが、データに含まれない場合がある。教師なし学習技術は、クラスタリング、異常検出、潜在変数モデルの学習、またはその他のタスクを実行することができる機械学習モデルを生成するために使用され得る。
本明細書に記載の機械学習モデルは、教師あり学習および教師なし学習の態様を組み合わせる半教師あり技術を使用して訓練され得る。
本明細書に記載の機械学習モデルは、進化的技術または遺伝的アルゴリズムによって訓練されるかまたはそうでなければ生成され得る。
本明細書に記載の機械学習モデルは、強化学習を使用して訓練され得る。強化学習においては、エージェント(たとえば、モデル)が、環境内で行動を行い、そのような行動の結果として生じる報酬を最大化するおよび/またはペナルティを最小化することを学習し得る。強化学習は、正しい入力/出力のペアが提示されず、最適でない行動が明示的に訂正もされないという点で教師あり学習の問題と異なり得る。
1つまたは複数の汎化技法が、機械学習モデルの汎化を向上させるために訓練中に実行され得る。汎化技術は、訓練データへの機械学習モデルの過剰適合を低減するのに役立ち得る。例示的な汎化技術は、ドロップアウト技術、重み減衰技術、バッチ正規化、早期終了、サブセット選択(subset selection)、段階的選択(stepwise selection)などを含む。
本明細書に記載の機械学習モデルは、たとえば、学習率、層の数、各層内のノードの数、ツリー内の葉の数、クラスタの数などのいくつかのハイパーパラメータを含むかまたはそうでなければそのようなハイパーパラメータによって影響を受け得る。ハイパーパラメータは、モデルの性能に影響を与え得る。ハイパーパラメータは、手動で選択されることが可能であり、または、たとえば、グリッド探索(grid search)、ブラックボックス最適化技術(たとえば、ベイズ最適化、ランダム探索(random search)など)、勾配に基づく最適化などの技術の適用によって自動的に選択されることが可能である。自動的なハイパーパラメータの最適化を実行するための例示的な技術および/またはツールは、Hyperopt、Auto-WEKA、Spearmint、Metric Optimization Engine (MOE)などを含む。
様々な技術が、モデルが訓練されるときに学習率を最適化するおよび/または適応させるために使用され得る。学習率の最適化または適応を実行するための例示的な技術および/またはツールは、AdaGrad、Adaptive Moment Estimation(ADAM)、ADADELTA、RMSpropなどを含む。
転移学習技術が、本明細書に記載の機械学習モデルの訓練を開始すべき初期モデルを提供するために使用され得る。
本明細書に記載の機械学習モデルは、コンピューティングデバイス上のコンピュータ可読コードの異なる部分に含まれ得る。一例において、機械学習モデルは、特定のアプリケーションまたはプログラムに含まれ、そのような特定のアプリケーションまたはプログラムによって(たとえば、排他的に)使用され得る。したがって、一例において、コンピューティングデバイスは、いくつかのアプリケーションを含むことができ、そのようなアプリケーションのうちの1つまたは複数が、独自のそれぞれの機械学習ライブラリおよび機械学習モデルを含むことができる。
本明細書に記載の機械学習モデルは、コンピューティングデバイスのオペレーティングシステムに(たとえば、オペレーティングシステムの中央インテリジェンス層(central intelligence layer)に)含まれることが可能であり、オペレーティングシステムとインタラクションする1つまたは複数のアプリケーションによって呼び出されるかまたはそうでなければ使用されることが可能である。一部の実装において、各アプリケーションは、アプリケーションプログラミングインターフェース(API)(たとえば、すべてのアプリケーションにまたがる共通のパブリックAPI)を使用して中央インテリジェンス層(およびそこに記憶されたモデル)と通信し得る。
中央インテリジェンス層は、中央デバイスデータ層(central device data layer)と通信することができる。中央デバイスデータ層は、コンピューティングデバイスのためのデータの集中型のリポジトリであることが可能である。中央デバイスデータ層は、たとえば、1つもしくは複数のセンサー、コンテキストマネージャ、デバイス状態構成要素、および/または追加的な構成要素などのコンピューティングデバイスのいくつかのその他の構成要素と通信することができる。一部の実装において、中央デバイスデータ層は、API(たとえば、プライベートAPI)を使用してそれぞれのデバイスの構成要素と通信することができる。
本明細書において検討されたテクノロジーは、サーバ、データベース、ソフトウェアアプリケーション、およびその他のコンピュータに基づくシステム、ならびに行われる行動、およびそのようなシステムに送信され、そのようなシステムから送信される情報に言及する。コンピュータに基づくシステムの固有の柔軟性が、構成要素の間のタスクおよび機能の非常に多様な可能な構成、組合せ、および分割を可能にする。たとえば、本明細書において検討されたプロセスは、単一のデバイスもしくは構成要素、または組合せで働く複数のデバイスもしくは構成要素を使用して実装され得る。データベースおよびアプリケーションは、単一のシステム上に実装され得るかまたは複数のシステムに分散され得る。分散された構成要素は、逐次的にまたは並列的に動作し得る。
さらに、本明細書に記載の機械学習技術は、容易に交換可能であり、組合せ可能である。特定の例示的な技術が説明されたが、多くのその他の技術が存在し、本開示の態様と併せて使用され得る。
したがって、本対象が様々な特定の例示的な実装に関連して詳細に説明されたが、各例は、本開示の限定ではなく説明の目的で提供されている。当業者は、そのような実装の変更、変形、および均等物を容易に作成することができる。したがって、対象の開示は、当業者に容易に分かるように、本対象に対するそのような修正、変更、および/または追加を包含することを除外しない。たとえば、1つの実装の一部として示されたかまたは説明された特徴が、さらなる実装を生み出すために別の実装とともに使用され得る。
例
以下の節において、いくつかの例が説明される。
例1: 検証される画像(210)をデコーダシステム(220)によって受信するステップと、受信画像(210)の複数の決定された特徴(238)を決定するために受信画像(210)に対して特徴認識を実行するステップと、受信画像(210)の決定された特徴(238)を表す値を定義する第1の出力(236)を生成するステップと、受信画像(210)に埋め込まれた署名(254)を抽出するために、デコーダシステム(220)のメッセージ復号ニューラルネットワーク(252)によって受信画像(210)を復号するステップであって、署名(254)が、受信画像(210)の復元された特徴(258)を表す、ステップと、受信画像(210)の復元された特徴(258)を表す値を定義する第2の出力(256)を生成するステップと、第1の出力(236)および第2の出力(256)を、デコーダシステム(220)の操作検出ニューラルネットワーク(272)に提供するステップと、少なくとも第1の出力(236)および第2の出力(256)を利用して、受信画像(210)の真正性の推定値を操作検出ニューラルネットワーク(272)によって生成するステップとを含む方法。
例2: 受信画像に対して特徴認識を実行するステップが、受信画像の複数の特徴を選択するために、第1の特徴抽出ニューラルネットワークを使用して受信画像を処理すること、または受信画像の複数の特徴を選択するための第1のユーザ入力を受け取ることのうちの少なくとも一方をさらに含む例1の方法。
例3: エンコーダシステムによって入力画像を受信するステップと、入力画像の複数の決定された特徴を決定するために入力画像に対して特徴認識を実行するステップと、入力画像の決定された特徴を表す値を定義する第3の出力を生成するステップとをさらに含む例1または例2の方法。
例4: 受信画像に対して特徴認識を実行するステップが、受信画像の複数の特徴を選択するために第1の特徴抽出ニューラルネットワークを使用して受信画像を処理することを含み、入力画像に対して特徴認識を実行するステップが、入力画像の複数の特徴を選択するために第2の特徴抽出ニューラルネットワークを使用して入力画像を処理することを含み、方法が、第2の出力および第3の出力を識別特徴損失計算エンジンに提供するステップと、識別特徴損失計算エンジンによって、少なくとも第2の出力および第3の出力に基づいて、第1の損失関数に基づく第1の損失を計算するステップと、少なくとも入力画像および受信画像に基づいて、第2の損失関数に基づく第2の損失を計算するステップと、少なくとも第1の損失および第2の損失に基づいて、総損失関数に基づく総損失を計算するステップと、少なくとも計算された総損失に基づいて、第1の特徴抽出ニューラルネットワークまたは第2の特徴抽出ニューラルネットワークのうちの少なくとも一方を、メッセージ復号ニューラルネットワークとともに共訓練するステップとをさらに含む例3の方法。
例5: 第3の出力をメッセージ符号化ニューラルネットワークに提供するステップと、第3の出力から第2の署名を生成するステップと、第2の署名を入力画像に埋め込んで、出力画像を生成するステップとをさらに含む例3または例4の方法。
例6: 入力画像に対して特徴認識を実行するステップが、入力画像の複数の特徴を選択するために、第2の特徴抽出ニューラルネットワークを使用して入力画像を処理すること、または入力画像の複数の特徴を選択するための第2のユーザ入力を受け取ることのうちの少なくとも一方をさらに含む例3の方法。
例7: 少なくとも第2の出力および第3の出力に基づいて、第3の損失関数に基づく第3の損失を計算することと、少なくとも計算された第3の損失に基づいて、第1の特徴抽出ニューラルネットワークまたは第2の特徴抽出ニューラルネットワークのうちの少なくとも一方を訓練することとを含む特徴抽出ニューラルネットワーク訓練手順を実行するステップをさらに含む例4から6のいずれかの方法。
例8: 入力画像を受信するステップが、画像リポジトリから入力画像を受信すること、またはユーザの選択に応じた入力画像を受信することのうちの少なくとも一方を含み、検証される受信画像を受信するステップが、画像リポジトリから受信画像を受信すること、またはユーザの選択に応じた受信画像を受信することのうちの少なくとも一方を含む例3から7のいずれかの方法。
例9: 受信画像に対して特徴認識を実行するステップが、受信画像の複数の特徴を選択するために第1の特徴抽出ニューラルネットワークを使用して受信画像を処理することを含み、入力画像に対して特徴認識を実行するステップが、入力画像の複数の特徴を選択するために第2の特徴抽出ニューラルネットワークを使用して入力画像を処理することを含み、方法が、第1の特徴抽出ニューラルネットワーク、第2の特徴抽出ニューラルネットワーク、メッセージ符号化ニューラルネットワーク、またはメッセージ復号ニューラルネットワークのうちの少なくとも1つの値を固定するステップと、少なくとも1つの画像の操作を含む訓練画像を生成するステップと、操作検出ニューラルネットワークに訓練画像を送信するステップと、訓練画像に適用された画像の操作を判定するステップと、訓練画像に適用された画像の操作を利用して、正常損失関数に基づく正常損失を計算するステップと、少なくとも計算された正常損失に基づいて操作検出ニューラルネットワークを訓練するステップとをさらに含む例3、例5、または例8のいずれかの方法。
例10: 受信画像に対して特徴認識を実行するステップが、受信画像の複数の特徴を選択するために第1の特徴抽出ニューラルネットワークを使用して受信画像を処理することを含み、入力画像に対して特徴認識を実行するステップが、入力画像の複数の特徴を選択するために第2の特徴抽出ニューラルネットワークを使用して入力画像を処理することを含み、方法が、入力画像に基づいて、画像損失関数に基づく画像損失を計算するステップと、入力画像に基づいて、特徴損失関数に基づく特徴損失を計算するステップと、画像損失および特徴損失に基づいて総損失を計算するステップと、少なくとも計算された総損失に基づいて、メッセージ符号化ニューラルネットワークまたはメッセージ復号ニューラルネットワークのうちの少なくとも一方を訓練するステップとをさらに含む例3、例5、または例8のいずれかの方法。
例11: 入力画像に少なくとも1つの画像の操作を適用するステップをさらに含む例3から8または10のいずれかの方法。
例12: 第1の特徴抽出ニューラルネットワーク、第2の特徴抽出ニューラルネットワーク、メッセージ符号化ニューラルネットワーク、またはメッセージ復号ニューラルネットワークのうちの少なくとも1つの値を固定するステップと、少なくとも1つの画像の操作を含む訓練画像を生成するステップと、操作検出ニューラルネットワークに訓練画像を送信するステップと、訓練画像に適用された画像の操作を判定するステップと、訓練画像に適用された画像の操作を利用して、正常損失関数に基づく正常損失を計算するステップと、少なくとも計算された正常損失に基づいて操作検出ニューラルネットワークを訓練するステップとをさらに含む例10の方法。
例13: 少なくとも第2の出力および第3の出力に基づいて、第3の損失関数に基づく第3の損失を計算すること、少なくとも計算された第3の損失に基づいて第1の特徴抽出ニューラルネットワークまたは第2の特徴抽出ニューラルネットワークのうちの少なくとも一方を訓練することを含む特徴抽出ニューラルネットワーク訓練手順を実行するステップと、第1の特徴抽出ニューラルネットワーク、第2の特徴抽出ニューラルネットワーク、メッセージ符号化ニューラルネットワーク、またはメッセージ復号ニューラルネットワークのうちの少なくとも1つの値を固定すること、少なくとも1つの画像の操作を含む訓練画像を生成すること、操作検出ニューラルネットワークに訓練画像を送信すること、訓練画像に適用された画像の操作を判定すること、訓練画像に適用された画像の操作を利用して、正常損失関数に基づく正常損失を計算すること、少なくとも計算された正常損失に基づいて操作検出ニューラルネットワークを訓練することを含む操作検出ニューラルネットワーク訓練手順を実行するステップと、特徴抽出ニューラルネットワークおよび操作検出ニューラルネットワークを共訓練するステップとをさらに含む例5または例8の方法。
例14: 受信画像に対して特徴認識を実行するステップが、第1の特徴抽出ニューラルネットワークを使用して受信画像を処理することを含み、入力画像に対して特徴認識を実行するステップが、第2の特徴抽出ニューラルネットワークを使用して入力画像を処理することを含み、方法が、第3の出力をメッセージ符号化ニューラルネットワークに提供するステップと、第3の出力から第2の署名を生成するステップと、第2の署名を入力画像に埋め込んで、出力画像を生成するステップと、第2の出力および第3の出力を識別特徴損失計算エンジンに提供するステップと、識別特徴損失計算エンジンによって、少なくとも第2の出力および第3の出力に基づいて、第1の損失関数に基づく第1の損失を計算すること、少なくとも入力画像および受信画像に基づいて、第2の損失関数に基づく第2の損失を計算すること、少なくとも第1の損失および第2の損失に基づいて、総損失関数に基づく総損失を計算すること、少なくとも計算された総損失に基づいて、第1の特徴抽出ニューラルネットワーク、第2の特徴抽出ニューラルネットワーク、またはメッセージ復号ニューラルネットワークのうちの少なくとも1つを訓練することを含むメッセージコーディングニューラルネットワーク訓練手順を実行するステップと、第1の特徴抽出ニューラルネットワーク、第2の特徴抽出ニューラルネットワーク、メッセージ符号化ニューラルネットワーク、またはメッセージ復号ニューラルネットワークのうちの少なくとも1つの値を固定すること、少なくとも1つの画像の操作を含む訓練画像を生成すること、操作検出ニューラルネットワークに訓練画像を送信すること、訓練画像に適用された画像の操作を利用して、正常損失関数に基づく正常損失を計算することであって、正常損失が、交差エントロピー損失である、計算すること、および少なくとも計算された正常損失に基づいて操作検出ニューラルネットワークを訓練することを含む操作検出ニューラルネットワーク訓練手順を実行するステップと、メッセージコーディングニューラルネットワークおよび操作検出ニューラルネットワークを共訓練するステップとをさらに含む例3または例8の方法。
例15: 受信画像に対して特徴認識を実行するステップが、第1の特徴抽出ニューラルネットワークを使用して受信画像を処理することを含み、入力画像に対して特徴認識を実行するステップが、第2の特徴抽出ニューラルネットワークを使用して入力画像を処理することを含み、方法が、第3の出力をメッセージ符号化ニューラルネットワークに提供するステップと、第3の出力から第2の署名を生成するステップと、第2の署名を入力画像に埋め込んで、出力画像を生成するステップと、第2の出力および第3の出力を識別特徴損失計算エンジンに提供するステップと、識別特徴損失計算エンジンによって、少なくとも第2の出力および第3の出力に基づいて、第1の損失関数に基づく第1の損失を計算すること、少なくとも入力画像および受信画像に基づいて、第2の損失関数に基づく第2の損失を計算すること、少なくとも第1の損失および第2の損失に基づいて、総損失関数に基づく総損失を計算すること、ならびに少なくとも計算された総損失に基づいて、第1の特徴抽出ニューラルネットワーク、第2の特徴抽出ニューラルネットワーク、またはメッセージ復号ニューラルネットワークのうちの少なくとも1つを訓練することを含むメッセージコーディングニューラルネットワーク訓練手順を実行するステップと、少なくとも第2の出力および第3の出力に基づいて、第3の損失関数に基づく第3の損失を計算すること、少なくとも計算された第3の損失に基づいて第1の特徴抽出ニューラルネットワークまたは第2の特徴抽出ニューラルネットワークのうちの少なくとも一方を訓練することを含む特徴抽出ニューラルネットワーク訓練手順を実行するステップと、第1の特徴抽出ニューラルネットワーク、第2の特徴抽出ニューラルネットワーク、メッセージ符号化ニューラルネットワーク、またはメッセージ復号ニューラルネットワークのうちの少なくとも1つの値を固定すること、少なくとも1つの画像の操作を含む訓練画像を生成すること、操作検出ニューラルネットワークに訓練画像を送信すること、訓練画像に適用された画像の操作を判定すること、訓練画像に適用された画像の操作を利用して、正常損失関数に基づく正常損失を計算すること、および少なくとも計算された正常損失に基づいて操作検出ニューラルネットワークを訓練することを含む操作検出ニューラルネットワーク訓練手順を実行するステップと、特徴抽出ニューラルネットワーク、メッセージコーディングニューラルネットワーク、および操作検出ニューラルネットワークを共訓練するステップとをさらに含む例3または例8の方法。
例16: 第1の特徴抽出ニューラルネットワークおよび第2の特徴抽出ニューラルネットワークが、同じ特徴抽出ニューラルネットワークである例4から15のいずれかの方法。
例17: 正常損失が、交差エントロピー損失である例9、12、または13から15のいずれかの方法。
例18: プロセッサと、プロセッサによる実行に応じて、プロセッサに例1から17のいずれかの方法を実行させる命令を記憶させたコンピュータ可読ストレージ媒体とを含むコンピューティングデバイス。
例19: 1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されるときに1つまたは複数のコンピュータに例1から17のいずれかの方法を構成する動作を実行させる命令を記憶する1つまたは複数のストレージデバイスとを含むシステム。
例20: 1つまたは複数のコンピュータによって実行されるときに1つまたは複数のコンピュータに例1から19のいずれかの方法を構成する動作を実行させる命令を記憶する1つまたは複数の非一時的コンピュータストレージ媒体。
結論
画像の真正性を検証するための技術および装置が特徴および/または方法に固有の言葉で説明されたが、添付の請求項の対象は、説明された特定の特徴または方法に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および方法は、画像の真正性を検証するための技術および装置の例示的な実装として開示されている。
本明細書において使用されるとき、語句「画像」は、静止画像、動画像(たとえば、ビデオ)、音声に関連付けられた動画像、テキストと関連付けられた動画像などを含むがこれらに限定されない。本明細書において使用されるとき、語句「ビデオ」は、音声またはテキストなどのその他の種類の情報とも関連付けられている場合がありまたは関連付けられていない場合がある動画像の連続または時系列を意味する。たとえば、ビデオは、音声情報のストリームを含む動画像の時系列を含む場合がある。本明細書において使用されるとき、語句「フェイク画像」は、元の画像として提示されるが、元の画像の操作されたコピーであるか、または元の画像の偽物のコピーである画像を意味する。本明細書において使用されるとき、語句「画像の特徴」は、画像全体の測定値の画像に依存しない行列(image-independent matrix)、顔の表情、ランドマーク、画像内の人物の顔のランドマーク、ランドマーク、キーポイント、ユーザによって提供された特徴、エッジ、コーナー、ブブロブ(blog)、リッジ(ridge)、動き、オプティカルフロー、画像からの生ピクセルなどを含むがこれらに限定されない。
システム100(たとえば、エンコーダシステム110)は、特徴認識エンジン120を含む。特徴認識エンジン120は、入力画像102の複数の決定された特徴128を決定するために入力画像102に対して特徴抽出プロセスを実行するように構成される。たとえば、特徴認識エンジン120は、入力画像102から複数の特徴を選択するように構成されてよく、選択された画像の特徴128を処理して、入力画像の決定された特徴を表す値を定義する出力126(たとえば、データ)を生成する。態様において、特徴認識エンジン120は、入力画像102から複数の特徴を選択し、選択された画像の特徴128を処理して、入力画像102の選択された特徴128をそれぞれ表す出力126を生成する。たとえば、入力画像102の特徴128は、測定値の画像に依存しない行列、顔の表情、画像内の人物の顔のランドマーク、ランドマーク、キーポイント、ユーザによって提供された特徴、エッジ、コーナー、ブロブ(blog)、リッジ、動き、オプティカルフロー、画像からの生ピクセルなどを含む可能性がある。
特徴認識エンジン120は、特徴抽出ニューラルネットワーク122を含み得る。特徴抽出ニューラルネットワーク122は、入力画像102を受信し、入力画像102を処理して、入力画像102の選択された特徴128を表す値を定義する出力126を生成するように構成され得る。態様において、値は、それぞれ、入力画像102の選択された特徴128を表す。たとえば、特徴抽出ニューラルネットワーク122は、入力画像102を受信し、入力画像102またはその一部を処理して、顔の表情、ランドマーク、キーポイント、エッジ、コーナー、ブロブ(blog)、リッジなどに対応する1つまたは複数の画像の特徴を表す値を定義する出力126を生成することができる。態様において、出力126は、顔の表情、ランドマーク、キーポイント、エッジ、コーナー、ブロブ(blog)、リッジなどに対応する1つまたは複数の画像の特徴をそれぞれ表す値を定義する。その他の実装において、特徴認識エンジン120は、主成分分析、エッジ検出、ハフ変換、またはその他のアルゴリズムなどの、ニューラルネットワークに頼らないその他の特徴抽出技術およびアルゴリズムの使用を通じて画像の特徴を生成してよい。
システム200は、受信画像210を特徴認識エンジン230への入力として提供することができる。特徴認識エンジン230は、受信画像210の複数の決定された特徴238を決定するために受信画像210に対して特徴抽出プロセス(特徴認識)を実行するように構成される。たとえば、受信画像210の決定された特徴238は、測定値の画像に依存しない行列、顔の表情、ランドマーク、キーポイント、ユーザによって提供された特徴、エッジ、コーナー、ブロブ(blog)、リッジ、動き、オプティカルフロー、ピクセルなどを含む可能性がある。
受信画像がフェイク画像である場合、識別特徴損失関数は、場合の特徴(case feature)にペナルティを与え、受信画像からの特徴は、近い。受信画像が本物である場合、識別特徴損失関数は、場合の特徴にペナルティを与え、受信画像からの特徴は、遠い。入力画像は、出力画像と知覚的に同じであることが望ましい。メッセージコーディングニューラルネットワークは、画像の操作またはフェイクに対して堅牢であることが望ましい。抽出される特徴は、画像の操作またはフェイクに敏感であることが望ましい。