JP6920263B2 - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP6920263B2
JP6920263B2 JP2018179364A JP2018179364A JP6920263B2 JP 6920263 B2 JP6920263 B2 JP 6920263B2 JP 2018179364 A JP2018179364 A JP 2018179364A JP 2018179364 A JP2018179364 A JP 2018179364A JP 6920263 B2 JP6920263 B2 JP 6920263B2
Authority
JP
Japan
Prior art keywords
weight
layer
watermark
data
embedding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018179364A
Other languages
English (en)
Other versions
JP2020052569A (ja
Inventor
一則 松本
一則 松本
啓一郎 帆足
啓一郎 帆足
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2018179364A priority Critical patent/JP6920263B2/ja
Publication of JP2020052569A publication Critical patent/JP2020052569A/ja
Application granted granted Critical
Publication of JP6920263B2 publication Critical patent/JP6920263B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Description

本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
近年、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある(非特許文献1参照)。
Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. In Proceedings of the 22nd ACM international conference on Multimedia (pp. 675-678). ACM.
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。さらに、一般に学習モデル生成に用いられた学習データを、学習モデル自体から推測することは難しい。
このため、学習モデルを生成した者は、その学習モデルが第三者によって不正に利用されたとしても、不正を立証することが難しい。収集した学習データと、学習データに基づいて生成された学習モデルとはそれぞれ労力をかけて取得した価値あるものであり、不正利用から学習モデルを守ることが望まれている。
本発明はこれらの点に鑑みてなされたものであり、出所を特定することができる学習モデルを提供することを目的とする。
本発明の第1の態様は、情報処理装置である。この装置は、目的タスク学習用の訓練データに基づいて、複数の層を備えるニューラルネットワークの各層の重みを更新する重み更新部と、前記ニューラルネットワークを構成する層の中からM層(Mは2以上の整数)を選択する層選択部と、選択された前記M層それぞれの重みのうち少なくとも一部の重みを成分とするベクトルであるM個の重みベクトルを生成する重みベクトル生成部と、前記M個の重みベクトルそれぞれに埋め込むためのデータであって、透かしラベルに付加情報を付加したM個の埋込データを生成する埋込データ生成部と、前記M個の重みベクトルを線型変換してM個の透かし埋込用ベクトルを生成するベクトル変換部と、前記M個の透かし埋込用ベクトルそれぞれに、前記M個の埋込データのうち1つの埋め込みデータを対応付けてM組の透かし埋込用データセットを生成するデータセット生成部と、を備える。ここで、前記重み更新部は、前記目的タスク学習用に設定されたタスク学習用損失関数に、前記M組の透かし埋込用データセットそれぞれを用いて定められたM個の透かし埋込用損失関数を加算した統合損失関数に基づいて、前記重みを更新する。
前記重み更新部は、前記埋込用データセットに含まれる透かし埋込用ベクトルのもととなる重みベクトルの成分を取り出した層が前記ニューラルネットワークの入力層に近い場合は、前記入力層から遠い場合と比較して、前記埋込用データセットに対応する前記透かし埋込用損失関数に大きな係数を乗じてから加算することにより前記統合損失関数を構成してもよい。
前記埋込データ生成部は、前記透かしラベルの誤りを訂正するための誤り訂正符号を前記付加情報として前記透かしラベルに付加してもよい。
前記埋込データ生成部は、前記重みベクトル生成部が選択した層が前記ニューラルネットワークの入力層に近い層である場合は、遠い層である場合と比較して前記透かしラベルに付加する付加情報のサイズを小さくしてもよい。
前記埋込データ生成部は、所定の文字列を符号化したバイナリデータである透かしラベルに、前記付加情報を付加してもよい。
前記ベクトル変換部は、前記重みベクトルにアダマール行列を乗じて透かし埋込用ベクトルを生成してもよい。
本発明の第2の態様は、情報処理方法である。この方法において、プロセッサが、複数の層を備えるニューラルネットワークを構成する層の中からM層(Mは2以上の整数)を選択するステップと、選択された前記M層それぞれの重みのうち少なくとも一部の重みを成分とするベクトルであるM個の重みベクトルを生成するステップと、前記M個の重みベクトルそれぞれに埋め込むためのデータであって、透かしラベルに付加情報を付加したM個の埋込データを生成するステップと、前記M個の重みベクトルを線型変換してM個の透かし埋込用ベクトルを生成するステップと、前記M個の透かし埋込用ベクトルそれぞれに、前記M個の埋込データのうち1つの埋め込みデータを対応付けてM組の透かし埋込用データセットを生成するステップと、目的タスク学習用に設定されたタスク学習用損失関数に、前記M組の透かし埋込用データセットそれぞれを用いて定められたM個の透かし埋込用損失関数を加算した統合損失関数に基づいて、前記ニューラルネットワークの各層の重みを更新するステップと、を実行する。
本発明の第3の態様は、プログラムである。このプログラムは、コンピュータに、複数の層を備えるニューラルネットワークを構成する層の中からM層(Mは2以上の整数)を選択する機能と、選択された前記M層それぞれの重みのうち少なくとも一部の重みを成分とするベクトルであるM個の重みベクトルを生成する機能と、前記M個の重みベクトルそれぞれに埋め込むためのデータであって、透かしラベルに付加情報を付加したM個の埋込データを生成する機能と、前記M個の重みベクトルを線型変換してM個の透かし埋込用ベクトルを生成する機能と、前記M個の透かし埋込用ベクトルそれぞれに、前記M個の埋込データのうち1つの埋め込みデータを対応付けてM組の透かし埋込用データセットを生成する機能と、目的タスク学習用に設定されたタスク学習用損失関数に、前記M組の透かし埋込用データセットそれぞれを用いて定められたM個の透かし埋込用損失関数を加算した統合損失関数に基づいて、前記ニューラルネットワークの各層の重みを更新する機能と、を実現させる。
このプログラムを提供するため、あるいはプログラムの一部をアップデートするために、このプログラムを記録したコンピュータ読み取り可能な記録媒体が提供されてもよく、また、このプログラムが通信回線で伝送されてもよい。
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によれば、出所を特定することができる学習モデルを提供することができる。
畳み込みニューラルネットワークの一般的な機能構成を模式的に示す図である。 入力データと特徴マップとの畳み込みの関係を説明するための図である。 重みフィルタを用いた特徴マップの生成を説明するための図である。 N個の重みフィルタとN段の特徴マップとの関係を説明するための図である。 実施の形態に係る情報処理装置が実行する学習処理の概要を説明するための模式図である。 実施の形態に係る情報処理装置の機能構成を模式的に示す図である。 学習過程における重みの変動の一例を模式的に示す図である。 実施の形態に係る情報処理装置が実行する情報処理の流れを説明するためのフローチャートである。
<畳み込みニューラルネットワーク>
実施の形態に係る情報処理装置は、ニューラルネットワークのうち、特に畳み込みニューラルネットワーク(Convolutional Neural Network;CNN)のモデルパラメータに透かし情報を埋め込むための装置である。そこで、実施の形態に係る情報処理装置の前提技術として、まず畳み込みニューラルネットワークについて簡単に説明する。
図1は、畳み込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ(又はグラフ構造)で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。
図1において、順伝播型ニューラルネットワークとして、入力層(input layer)と、隠れ層(hidden layer)と、出力層(output layer)との3つの層から構成され、入力層から出力層へ向けて一方向に伝播する。隠れ層は、グラフ状に複数の層から構成することができる。各層は、複数のユニット(ニューロン)を持つ。各層において、前方層のユニットから後方層のユニットへつなぐ関数のパラメータを、「重み(weight)」と称す。本明細書における学習とは、この関数のパラメータとして、適切な「重み」を算出することである。
図1は、畳み込みニューラルネットワークを図示している。畳み込みニューラルネットワークは、入力層と、畳み込み層(convolutional layer)と、プーリング層(pooling layer)と、全結合層(full-connected layer)と、出力層とから構成される。畳み込みニューラルネットワークは、前方層における特定のユニットのみが、後方層のユニットへ結合されている。すなわち、畳み込みニューラルネットワークにおいては、前方層における全てのユニットが後方層のユニットへ結合されているものではない。なお、図1において、第1層L1が入力層であり、第2層L2は畳み込み層である。同様に、第m層Lmが出力層となっている。
本実施の形態に係るニューラルネットワークにおける学習は、訓練データに対する出力層からの出力値と訓練データのラベルとの誤差を用いて、各層の重みを最適に更新することを意味する。その誤差を算出するために、「損失関数」(loss function)が定義される。誤差は、「誤差逆伝播法」によって出力層側から入力層側へ向けて次々に伝播し、各層の重みを少しずつ更新していく。最終的に、誤差が小さくなるように、各層の重みを適切な値に調整する収束計算を実行する。具体的には、ニューラルネットワークにおける学習(すなわち、新規のモデルパラメータの生成段階)で、誤差を逆伝播させた勾配によって、モデルパラメータを更新する。
図2は、入力データと特徴マップとの畳み込みの関係を説明するための図である。図2における処理は、畳み込み層及び全結合層によって実行される。図2に示す例では、入力データに対して1個の重みフィルタをかけることにより、特徴マップを生成している。図2において、入力データ、重みフィルタ、及び特徴マップのサイズはそれぞれ以下のとおりである。
入力データ :32×32×3個の要素
重みフィルタ:5×5×3個の要素 (モデルパラメータ)
特徴マップ :28×28個の要素
重みフィルタはN個(Nは1以上の整数。)分用意され、これがモデルパラメータとなる。すなわち、「重み」とは、N個の重みフィルタを意味する。ただし、ここでは、バイアス項は考慮しないものとする。
図3は、重みフィルタを用いた特徴マップの生成を説明するための図である。
図3に示す例では、5×5×3個の要素からなる1個の重みフィルタを入力データにかけ、その各要素の積の和を特徴マップの1個の要素の値とする。そして、入力データに対して同じ重みフィルタを移動させることにより、1枚の特徴マップを生成する。ここで、重みフィルタを移動させる要素の数(移動量)を「ストライド(stride)」と称す。入力データの周囲の縁(ふち)には、要素0を埋めたゼロパディング(zero-padding)の領域を設ける。これによって、入力データの縁の要素にも、同数の重みフィルタをあてることができる。
図4は、N個の重みフィルタとN段の特徴マップとの関係を説明するための図である。図4に示す例では、重みフィルタの数はN個である。図2及び図3は、1個の重みフィルタによって生成された1枚の特徴マップが生成される場合の例が示されている。これに対し、図4に示す例は、N個の重みフィルタによってN段の特徴マップが生成される場合の例が示されている。ニューラルネットワークの学習では、ある層における特徴マップが、次の層における入力データとなる。ニューラルネットワークの学習を実行することにより、損失関数に基づく誤差が出力層側から入力層側へ向けて次々に伝播し、既知の誤差逆伝播法によって各層の重みが更新される。
<実施の形態の概要>
以上を前提として、実施の形態の概要を述べる。
実施の形態に係る情報処理装置は、ニューラルネットワークを用いて目的タスクを達成するための学習モデルを生成すると同時に、その学習モデルに対して電子的な透かしを埋め込むための装置である。
実施の形態に係る情報処理装置は、CPUやGPU等のプロセッサ、DRAM(Dynamic Random Access Memory)等の作業メモリ、及びHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置によって構成される。実施の形態に係る情報処理装置は、PC(Personal Computer)やワークステーション、サーバ等の単一の装置であってもよいし、クラウドサーバのように複数の装置から構成されてもよい。
図5は、実施の形態に係る情報処理装置が実行する学習処理の概要を説明するための模式図である。実施の形態に係る情報処理装置は、従来のニューラルネットワークと同様に、目的タスク学習用データD及び目的タスク用ラベルT1を含む訓練データに基づいて、複数の層Lを備える第1ニューラルネットワークN1の各層Lの重みを更新する。例えば、「猫検出」、「山検出」、「自動車検出」のように複数の目的タスクが存在する場合、各目的タスク用の目的タスク学習用データDと、各目的タスク学習用データDそれぞれに異なる目的タスク用ラベルT1を割り当てたデータセットが、訓練データとなる。
また、実施の形態に係る情報処理装置は、第1ニューラルネットワークN1を構成する層Lの中から選択した層Lから構成される第2ニューラルネットワークN2も備える。実施の形態に係る情報処理装置は、透かし検出用の透かしラベルT2に基づいて第2ニューラルネットワークN2における層Lの重みを更新する。
なお、図5は、第1ニューラルネットワークN1における第2層L2と第3層L3とが、それぞれ第2ニューラルネットワークN2における重みの更新対象として選択された場合の例を示している。以下、本明細書において、第1ニューラルネットワークN1と第2ニューラルネットワークN2とを区別しない場合には、単にニューラルネットワークNと記載する。
詳細は後述するが、実施の形態に係る情報処理装置は、第1ニューラルネットワークN1から選択したM層(Mは2以上の整数)の層Lに基づいて重みベクトルWを生成する。実施の形態に係る情報処理装置は、生成した重みベクトルWを線形変換して得られたベクトルを、各第2ニューラルネットワークN2の出力である第2出力O2とする。
すなわち、実施の形態に係る情報処理装置において、選択された各層の重みを要素とする重みベクトルWそれぞれに行列を乗じることで得られる透かし埋込用ベクトルが、第2ニューラルネットワークN2の出力である第2出力O2となる。なお、実施の形態に係る情報処理装置では、第2出力O2をシグモイド関数等による二値化処理によって二値化する。すなわち、第2出力O2はバイナリデータとなる。
この意味で、本明細書において、重みベクトルWに行列を乗じることで得られる透かし埋込用ベクトルを透かし埋込用ベクトルO2と記載することもある。実施の形態に係る情報処理装置は、透かし埋込用ベクトルO2と、透かしラベルT2との第2誤差E2に基づいて、重みベクトルWを更新する。
実施の形態に係る情報処理装置は、透かしラベルT2に付加情報を付加することによって埋込データを生成する。実施の形態に係る情報処理装置は、重みベクトルWに行列を乗じることで得られる透かし埋込用ベクトルO2が埋込データとなるように、重みベクトルWを更新する。
ここで、実施の形態に係る情報処理装置が透かしラベルT2に付加する付加情報は、透かしラベルT2を冗長化するための情報である。具体例としては、実施の形態に係る情報処理装置が透かしラベルT2に付加する付加情報は、透かしラベルT2の誤りを訂正するための情報である誤り訂正符号である。
これにより、例えば攻撃者が実施の形態に係る情報処理装置が生成した学習モデルをファインチューニングすることによって透かしラベルT2のスクランブルを試みたとしても、情報処理装置は、付加情報を用いて透かしラベルT2を再現できる蓋然性を高めることができる。結果として、学習モデルの管理者は、出所が不明な学習モデルが、管理者自身が管理する学習モデルと同じ出所の学習モデルであるか否かを検証することができる。
<実施の形態に係る情報処理装置の機能構成>
以下、実施の形態に係る情報処理装置についてより詳細に説明する。
図6は、実施の形態に係る情報処理装置1の機能構成を模式的に示す図である。情報処理装置1は、記憶部10と制御部20とを備える。図6において、矢印は主なデータの流れを示しており、図6に示していないデータの流れがあってもよい。図6において、各機能ブロックはハードウェア(装置)単位の構成ではなく、機能単位の構成を示している。そのため、図6に示す機能ブロックは単一の装置内に実装されてもよく、あるいは複数の装置内に分かれて実装されてもよい。機能ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてもよい。
制御部20は、訓練データ取得部21、重み更新部22、層選択部23、重みベクトル生成部24、埋込データ生成部25、データセット生成部26、ベクトル変換部27、及び変動記録部28を備える。
記憶部10は、情報処理装置1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)や情報処理装置1の作業領域となるRAM(Random Access Memory)、OS(Operating System)やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDDやSSD等の大容量記憶装置である。
制御部20は、情報処理装置1のCPUやGPU等のプロセッサであり、記憶部10に記憶されたプログラムを実行することによって訓練データ取得部21、重み更新部22、層選択部23、重みベクトル生成部24、埋込データ生成部25、データセット生成部26、ベクトル変換部27、及び変動記録部28として機能する。
なお、図6は、情報処理装置1が単一の装置で構成されている場合の例を示している。しかしながら、情報処理装置1は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部20を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
訓練データ取得部21は、目的タスク学習用の訓練データと透かしラベルT2とを取得する。訓練データ取得部21が取得する訓練データには、目的タスク学習用データD及び目的タスク用ラベルT1が含まれる。重み更新部22は、訓練データ取得部21が取得した訓練データに基づいて、複数の層を備えるニューラルネットワークNの各層の重みを更新する。上述したように、ニューラルネットワークNは、目的タスク学習用のニューラルネットワークである第1ニューラルネットワークN1と、透かしラベル埋込用のニューラルネットワークである第2ニューラルネットワークN2とを含んでいる。
層選択部23は、第1ニューラルネットワークN1を構成する層の中からM層(Mは2以上の整数)を選択する。図5に示す例では、層選択部23は、第2層L2と第3層L3との2層を選択しているので、M=2である。
重みベクトル生成部24は、第1ニューラルネットワークN1を構成する層の中から層選択部23が選択した層の重みのうち少なくとも一部の重みを成分とするベクトルであるM個の重みベクトルWを生成する。ベクトル変換部27は、重みベクトル生成部24が生成したM個の重みベクトルWに行列を乗じてM個の透かし埋込用ベクトルに変換する。重みベクトル生成部24が用いる行列は、例えば、行及び列の長さが重みベクトルWの長さと等しい正則行列であればよく、一例としてはアダマール行列である。
アダマール行列の各行は互いに直交している。このため、重みベクトル生成部24が透かし埋込用ベクトルの生成にアダマール行列を用いると、例えば異なる透かしラベルを同一の透かしラベルT2に埋め込んでも、透かしラベル同士が埋め込みの際に互いに影響を及ぼすことを抑制できる。
埋込データ生成部25は、重みベクトル生成部24が生成したM個の重みベクトルWに埋め込むためのデータであって、透かしラベルT2に付加情報を付加したM個の埋込データを生成する。データセット生成部26は、M個の透かし埋込用ベクトルそれぞれに、M個の埋込データのうち1つの埋め込みデータを対応付けてM組の透かし埋込用データセットを生成する。
重み更新部22は、目的タスク学習用に設定されたタスク学習用損失関数に、M組の透かし埋込用データセットそれぞれを用いて定められたM個の透かし埋込用損失関数を加算した統合損失関数に基づいて、ニューラルネットワークNの重みを更新する。
ここで、タスク学習用損失関数をE(w)、透かし埋込用データセットの透かし埋込用損失関数をE(w)とする。iは正の整数であり、第1ニューラルネットワークN1の入力層に近いほど小さな数字であるとする。このとき、統合損失関数E(w)は、以下の式(1)で表される。
E(w)=E(w)+λ(w)+λ(w)+・・・ (1)
ここで、λ(i=1,2,・・・)は、各透かし埋込用損失関数の重み係数である。
なお、重み更新部22は、例えば既知のクロスエントロピーを用いて透かし埋込用損失関数を構成すればよい。
透かし埋め込みのためにニューラルネットワークNの重みを更新する場合、層が異なれば勾配も異なる。したがって、各層L毎に透かし埋込用損失関数を設定する方が最適化の観点で好ましいと考えられる。実施の形態に係る情報処理装置1は、各層L毎に異なる透かし埋込用損失関数を採用するため、透かしを複数の層Lに埋め込んでも、本来の目的タスクの判定精度の劣化をより少なくすることが期待できる。
ここで、埋込データ生成部25が重みベクトルWに乗じる行列は、情報処理装置1が生成する学習モデルの出所を特定するために利用する秘密鍵としての役割を果たす行列である。このため、情報処理装置1が学習する際に用いた行列は、学習モデルの管理者等の一部の者のみが管理し第三者には秘匿される。また、情報処理装置1を構成する重みのうち、重みベクトル生成部24がどの重みを用いて重みベクトルWを構成したかも秘匿される。
したがって、透かしラベルT2の改変ないし除去を試みる攻撃者は、まず、情報処理装置1を構成する重みのうちどの重みを用いて重みベクトルWが構成されているかを見極める必要がある。また、仮に、攻撃者が透かし埋込用ベクトルO2を見出したとしても、学習に用いた行列又はその逆行列を知らなければ、透かし埋込用ベクトルO2から透かしラベルT2を算出することは難しい。
このように、情報処理装置1が生成した学習モデルは出所を特定することができる。また、透かしラベルT2には透かしラベルT2の冗長性を高めるための付加情報が付加されているため出所を示す情報の堅牢性を担保することができる。
上述したように、埋込データ生成部25が透かしラベルT2に付加する付加情報は、透かしラベルT2を冗長化するための情報である。具体的には、埋込データ生成部25は、透かしラベルT2の誤りを訂正するための誤り訂正符号を付加情報として透かしラベルT2に付加する。埋込データ生成部25はまた、透かしラベルT2の誤りを訂正するための誤り訂正符号に替えて、あるいはこれに加えて、誤り検出符号を付加情報として透かしラベルT2に付加してもよい。
埋込データ生成部25は、誤り訂正符号としてはハミング符号やリードソロモン符号を用いることができる。また、埋込データ生成部25は、誤り検出符号としてはCRC(Cyclic Redundancy Check)等のチェックサムや、その他既知のハッシュ関数を用いることができる。
このように、埋込データ生成部25が透かしラベルT2に付加情報を付加することにより、透かしラベルT2に対する攻撃者からの攻撃耐性を高めることができ、結果として情報処理装置1が生成する学習モデルの出所を示す情報の堅牢性を高めることができる。
以上、情報処理装置1が、第1ニューラルネットワークN1を構成する層Lの重みの一部を用いて作成した重みベクトルWに透かしラベルT2を埋め込むことにより、学習モデルに出所を特定可能な情報を埋め込むことについて説明した。次に、学習モデルに埋め込まれた透かしラベルT2について、第三者からの改変ないし除去の攻撃に対する耐性を高めるための重みの選択について説明する。
実施の形態に係る情報処理装置1が利用する畳み込みニューラルネットワークの層の数は、数10層から100層のオーダーである。一般に、このような多層のニューラルネットワークにおいては、入力層に近い層は、出力層に近い層と比較して、攻撃者による改変のリスクが低いと考えられる。既成の学習モデルの改良ないし改変を目的として行われるファインチューニングは、一般に出力層に近い層について行われる。再学習を開始する層を入力層に近い層とするほど、それは学習をはじめからやり直すことに近づいてしまうからである。
そこで、埋込データ生成部25は、重みベクトル生成部24が選択した重みベクトルWがニューラルネットワークNの入力層に近い層である場合は、遠い層である場合と比較して透かしラベルT2に付加する付加情報のサイズを小さくする。これによって、攻撃に対する透かしラベルT2の堅牢性は低下する可能性があるが、重みベクトルWがニューラルネットワークNの入力層に近い層の重みから構成されていることによって、堅牢性は高まる。また、透かしラベルT2に付加する付加情報のサイズが小さいほど、一般に学習の収束は早まる。これにより、学習に係る時間と、透かしラベルT2の堅牢性とのバランスを取ることができる。
また、重み更新部22は、埋込用データセットに含まれる透かし埋込用ベクトルのもととなる重みベクトルの成分を取り出した層Lが第1ニューラルネットワークN1の入力層に近い場合は、入力層から遠い場合と比較して、埋込用データセットに対応する透かし埋込用損失関数E(w)に大きな係数λを乗じてから加算することにより、統合損失関数E(w)を構成してもよい。これにより、入力層に近い層Lの重みの方が、入力層から遠い層Lの重みよりも更新の際に重要視されることになる。これにより、堅牢性が高い重みに埋め込む付加情報を重要視することができる。
実施の形態に係る情報処理装置1が利用する畳み込みニューラルネットワークの層の数は、数10層から100層のオーダーである。一般に、このような多層のニューラルネットワークを構成する重みは冗長性があり、必ずしも全ての重みが均等に学習に寄与しているわけではない。学習における貢献度が大きい重みは、貢献度が小さい重みと比較して、学習過程における変動が大きいと考えられる。言い換えると、学習における貢献度が大きい重みは、貢献度が小さい重みよりも、活性化していると考えられる。
また、仮に学習に関する貢献度が同程度の重みであっても、その重みが担う情報の質によって、学習過程における変動のしかたが変化すると考えられる。例えば、目的タスクが猫画像検出である場合、情報処理装置1は、多数の猫画像を訓練データとしてニューラルネットワークNに学習させる。このとき、多数の猫画像に共通する成分(例えば、画像の低周波成分)を担う重みは、ひとたび学習が安定すると変動しにくくなると考えられる。これに対し、多くの猫のバリエーションを吸収するための重みは、猫間の違いに敏感に反応するため、ファインチューニングによって大きく変動すると考えられる。
ここで、透かしラベルT2を埋め込むための重みベクトルWを構成する重みを、学習過程における変動が少ない重みとすることにより、透かしラベルT2の攻撃者からの攻撃の耐性を高めることができる。なぜなら、攻撃者は学習モデルを再学習することによって透かしラベルT2のスクランブルを試みても、透かしラベルT2を埋め込んだ重みベクトルWを構成する重みは、学習過程における変動が小さいため、スクランブルの度合いも小さくなるからである。
そのため、情報処理装置1は、目的タスク学習用の訓練データに基づいてあらかじめニューラルネットワークNの各層の重みを更新することによって各層Lの重みの変動を記録する変動記録部28を備える。
図7は、学習過程における重みの変動の一例を模式的に示す図であり、変動記録部28が記録した重みの変動の一例を示す図である。図7では、重みW1、重みW2、重みW3、及び重みW4の4つの重みの変動を図示している。図7において、横軸は学習の反復回数を示し、縦軸は重みの値を示している。
図7において、重みW1及び重みW4は、重みW2及び重みW3と比較して、学習過程における変動が大きい。また、重みW3は、重みW2よりも学習過程における変動が小さい。図7に示す例では、学習過程における重みの変動の大きさの順に並べると、W1≒W4>W2>W3となる。したがって、重みベクトルWを構成する重みとして採用する場合、攻撃耐性の高さの順序は、W3>W2>W1≒W4となる。
重みベクトル生成部24は、学習過程における変動の小さい重みを、変動の大きい重みよりも優先して重みベクトルWの成分として選択する。これにより、万が一攻撃者がファインチューニングによって透かしラベルT2のスクランブルを試みても、重みベクトルWは学習による変動が小さい重みが採用されているため、スクランブルの影響を抑えることができる。
以上、透かしラベルT2に付加情報を付加することにより、透かしラベルT2の攻撃耐性を高めることについて説明した。これに替えて、あるいはこれに加えて、透かしラベルT2自体に冗長性を持たせてもよい。
上述したように、透かしラベルT2はバイナリデータである。ここで、情報処理装置1は、学習モデルの管理者を特定するための文字列(例えば管理者の名前や識別番号等)を符号化したバイナリデータを、透かしラベルT2として採用する。一般に、文字列自体が冗長性を持っている。例えば、未知の学習データから取り出した透かしラベルT2を文字列に戻したとき、それが「pineuppme」という文字列であったとする。この場合、透かしラベルT2が意味のある文字列であることを仮定すれば「pineapple」であった蓋然性が高い。このように、透かしラベルT2自体に冗長性を持たせることにより、透かしラベルT2の攻撃耐性をさらに高めることができる。
<情報処理装置1が実行する情報処理の処理フロー>
図8は、実施の形態に係る情報処理装置1が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置1が起動したときに開始する。
訓練データ取得部21は、目的タスク学習用データD及び目的タスク用ラベルT1を含む目的タスク学習用の訓練データと透かしラベルT2とを取得する(S2)。層選択部23は、第1ニューラルネットワークN1を構成する層の中からM層(Mは2以上の整数)を選択する(S4)。重みベクトル生成部24は、層選択部23が選択したM個の層Lの重みのうち少なくとも一部の重みを成分とするベクトルであるM個の重みベクトルWを生成する(S6)。
埋込データ生成部25は、M個の重みベクトルそれぞれに埋め込むためのデータであって、透かしラベルT2に付加情報を付加したM個の埋込データを生成する(S8)。ベクトル変換部27は、M個の重みベクトルWそれぞれに行列を乗じることによってM個の透かし埋込用ベクトルを生成する(S10)。
データセット生成部26は、M個の透かし埋込用ベクトルそれぞれに、M個の埋込データのうち1つの埋め込みデータを対応付けてM組の透かし埋込用データセットを生成する(S12)。重み更新部22は、目的タスク学習用に設定されたタスク学習用損失関数に、M組の透かし埋込用データセットそれぞれを用いて定められたM個の透かし埋込用損失関数を加算した統合損失関数に基づいて、ニューラルネットワークNの各層Lの重みを更新する(S14)。
<実施の形態に係る情報処理装置1が奏する効果>
以上説明したように、実施の形態に係る情報処理装置1によれば、出所を特定することができる学習モデルを提供することができる。特に、実施の形態に係る情報処理装置1は、透かしラベルT2に透かしラベルT2を冗長化するための付加情報を埋め込むため、攻撃者による透かしラベルT2のスクランブル攻撃に対する耐性を高めることができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。特に、装置の分散・統合の具体的な実施の形態は以上に図示するものに限られず、その全部又は一部について、種々の付加等に応じて、又は、機能負荷に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
例えば、埋込データ生成部25は、透かし埋込用ベクトルO2を構成する各ビットと、第1ニューラルネットワークN1を構成する層Lの重みとの相関を導出し、透かし埋込用ベクトルO2のうち、層Lの重みとの相関の低いビットに、付加情報を埋め込んでもよい。これは、例えば、情報処理装置1はまず適当に生成した学習データを学習させ、学習モデルを生成する。情報処理装置1は、学習によって変化した透かしラベルT2における埋め込みビットを記録しておき、これを実現可能な範囲で十分な回数繰り返して相関を求めればよい。透かし埋込用ベクトルO2のうち、層Lの重みとの相関の低いビットに、付加情報を埋め込むことにより、透かしラベルT2の攻撃耐性をより高めることができる。
1・・・情報処理装置
10・・・記憶部
20・・・制御部
21・・・訓練データ取得部
22・・・重み更新部
23・・・層選択部
24・・・重みベクトル生成部
25・・・埋込データ生成部
26・・・データセット生成部
27・・・ベクトル変換部
28・・・変動記録部

Claims (8)

  1. 目的タスク学習用の訓練データに基づいて、複数の層を備えるニューラルネットワークの各層の重みを更新する重み更新部と、
    前記ニューラルネットワークを構成する層の中からM層(Mは2以上の整数)を選択する層選択部と、
    選択された前記M層それぞれの重みのうち少なくとも一部の重みを成分とするベクトルであるM個の重みベクトルを生成する重みベクトル生成部と、
    前記M個の重みベクトルそれぞれに埋め込むためのデータであって、透かしラベルに付加情報を付加したM個の埋込データを生成する埋込データ生成部と、
    前記M個の重みベクトルを線型変換してM個の透かし埋込用ベクトルを生成するベクトル変換部と、
    前記M個の透かし埋込用ベクトルそれぞれに、前記M個の埋込データのうち1つの埋め込みデータを対応付けてM組の透かし埋込用データセットを生成するデータセット生成部と、
    を備え、
    前記重み更新部は、前記目的タスク学習用に設定されたタスク学習用損失関数に、前記M組の透かし埋込用データセットそれぞれを用いて定められたM個の透かし埋込用損失関数を加算した統合損失関数に基づいて、前記重みを更新する、
    情報処理装置。
  2. 前記重み更新部は、前記埋込用データセットに含まれる透かし埋込用ベクトルのもととなる重みベクトルの成分を取り出した層が前記ニューラルネットワークの入力層に近い場合は、前記入力層から遠い場合と比較して、前記埋込用データセットに対応する前記透かし埋込用損失関数に大きな係数を乗じてから加算することにより前記統合損失関数を構成する、
    請求項1に記載の情報処理装置。
  3. 前記埋込データ生成部は、前記透かしラベルの誤りを訂正するための誤り訂正符号を前記付加情報として前記透かしラベルに付加する、
    請求項1又は2に記載の情報処理装置。
  4. 前記埋込データ生成部は、前記重みベクトル生成部が選択した層が前記ニューラルネットワークの入力層に近い層である場合は、遠い層である場合と比較して前記透かしラベルに付加する付加情報のサイズを小さくする、
    請求項1から3のいずれか一項に記載の情報処理装置。
  5. 前記埋込データ生成部は、所定の文字列を符号化したバイナリデータである透かしラベルに、前記付加情報を付加する、
    請求項1から4のいずれか一項に記載の情報処理装置。
  6. 前記ベクトル変換部は、前記重みベクトルにアダマール行列を乗じて透かし埋込用ベクトルを生成する、
    請求項1から5のいずれか一項に記載の情報処理装置。
  7. プロセッサが、
    複数の層を備えるニューラルネットワークを構成する層の中からM層(Mは2以上の整数)を選択するステップと、
    選択された前記M層それぞれの重みのうち少なくとも一部の重みを成分とするベクトルであるM個の重みベクトルを生成するステップと、
    前記M個の重みベクトルそれぞれに埋め込むためのデータであって、透かしラベルに付加情報を付加したM個の埋込データを生成するステップと、
    前記M個の重みベクトルを線型変換してM個の透かし埋込用ベクトルを生成するステップと、
    前記M個の透かし埋込用ベクトルそれぞれに、前記M個の埋込データのうち1つの埋め込みデータを対応付けてM組の透かし埋込用データセットを生成するステップと、
    目的タスク学習用に設定されたタスク学習用損失関数に、前記M組の透かし埋込用データセットそれぞれを用いて定められたM個の透かし埋込用損失関数を加算した統合損失関数に基づいて、前記ニューラルネットワークの各層の重みを更新するステップと、
    を実行する、
    情報処理方法。
  8. コンピュータに、
    複数の層を備えるニューラルネットワークを構成する層の中からM層(Mは2以上の整数)を選択する機能と、
    選択された前記M層それぞれの重みのうち少なくとも一部の重みを成分とするベクトルであるM個の重みベクトルを生成する機能と、
    前記M個の重みベクトルそれぞれに埋め込むためのデータであって、透かしラベルに付加情報を付加したM個の埋込データを生成する機能と、
    前記M個の重みベクトルを線型変換してM個の透かし埋込用ベクトルを生成する機能と、
    前記M個の透かし埋込用ベクトルそれぞれに、前記M個の埋込データのうち1つの埋め込みデータを対応付けてM組の透かし埋込用データセットを生成する機能と、
    目的タスク学習用に設定されたタスク学習用損失関数に、前記M組の透かし埋込用データセットそれぞれを用いて定められたM個の透かし埋込用損失関数を加算した統合損失関数に基づいて、前記ニューラルネットワークの各層の重みを更新する機能と、
    を実現させる、
    プログラム。
JP2018179364A 2018-09-25 2018-09-25 情報処理装置、情報処理方法、及びプログラム Active JP6920263B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018179364A JP6920263B2 (ja) 2018-09-25 2018-09-25 情報処理装置、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018179364A JP6920263B2 (ja) 2018-09-25 2018-09-25 情報処理装置、情報処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2020052569A JP2020052569A (ja) 2020-04-02
JP6920263B2 true JP6920263B2 (ja) 2021-08-18

Family

ID=69997142

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018179364A Active JP6920263B2 (ja) 2018-09-25 2018-09-25 情報処理装置、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6920263B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016043734A1 (en) * 2014-09-17 2016-03-24 Hewlett Packard Enterprise Development Lp Neural network verification
JP6727340B2 (ja) * 2017-01-12 2020-07-22 Kddi株式会社 情報処理装置、方法及びコンピュータ可読記憶媒体

Also Published As

Publication number Publication date
JP2020052569A (ja) 2020-04-02

Similar Documents

Publication Publication Date Title
JP6778670B2 (ja) 情報処理装置、情報処理方法、及びプログラム
WO2018180263A1 (ja) 情報処理装置、情報処理方法、及びコンピュータ可読記憶媒体
JP6823523B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP6741636B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US11200497B1 (en) System and method for knowledge-preserving neural network pruning
CN114207632A (zh) 用于量子计算设备的流水线硬件解码器
JP6908553B2 (ja) 情報処理装置、情報処理方法、及びプログラム
KR101922964B1 (ko) 이미지 왜곡 검출을 이용한 이미지 복원 장치 및 방법
US20220301288A1 (en) Control method and information processing apparatus
Huai et al. Zerobn: Learning compact neural networks for latency-critical edge systems
CN116883545A (zh) 基于扩散模型的图片数据集扩充方法、介质及设备
US11095672B2 (en) Method for evaluating domain name and server using the same
US20230040564A1 (en) Learning Causal Relationships
KR20220097329A (ko) 딥러닝 네트워크의 동적 양자화 정밀도 가변 알고리즘 및 방법
JP6920263B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN117111854A (zh) 一种基于分布式加密存储的数据存储方法、装置及介质
JP6953376B2 (ja) ニューラルネットワーク、情報付加装置、学習方法、情報付加方法、およびプログラム
US11961003B2 (en) Training a student neural network to mimic a mentor neural network with inputs that maximize student-to-mentor disagreement
JP6926045B2 (ja) ニューラルネットワーク、学習装置、学習方法、およびプログラム
CN114510592A (zh) 图像分类方法、装置、电子设备及存储介质
JP6832307B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20220172108A1 (en) Iterative machine learning and relearning
JP7339219B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP7405148B2 (ja) 情報処理装置、学習方法、及び、プログラム
JP2013080094A (ja) データ撹乱・再構築システム、データ再構築装置、データ再構築方法、データ再構築プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210630

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210726

R150 Certificate of patent or registration of utility model

Ref document number: 6920263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150