(57)【要約】      （修正有）【課題】学習モデルの出所を確認することができる技術を提供する。【解決手段】情報処理装置１のモデル取得部３０は、複数の層から構成されるニューラルネットワークの学習モデルを取得する。層選択部３１は、ニューラルネットワークを構成する層の中から異なる２つの層を選択する。出力値設定部３２は、２つの層のうちニューラルネットワークの出力層に近い方の層である後段層に出力させる出力値を設定する。入力値算出部３４は、出力値設定部３２が設定した出力値を後段層が出力するために、２つの層のうちニューラルネットワークの入力層に近い方の層である前段層に入力する入力値を算出する。透かし情報出力部３５は、前段層、後段層、入力値、及び出力値を関連づけて、学習モデルの透かし情報として出力する。【選択図】図３
2020098391.tif 000002
【特許請求の範囲】
【請求項１】
複数の層から構成されるニューラルネットワークの学習モデルを取得するモデル取得部と、
前記ニューラルネットワークを構成する層の中から異なる２つの層を選択する層選択部と、
前記２つの層のうち前記ニューラルネットワークの出力層に近い方の層である後段層に出力させる出力値を設定する出力値設定部と、
前記出力値設定部が設定した出力値を前記後段層が出力するために、前記２つの層のうち前記ニューラルネットワークの入力層に近い方の層である前段層に入力する入力値を算出する入力値算出部と、
前記前段層、前記後段層、前記入力値、及び前記出力値を関連づけて、前記学習モデルの透かし情報として出力する透かし情報出力部と、
を備える情報処理装置。
【請求項２】
前記後段層に含まれるユニットの中から、１又は複数のユニットを選択するユニット選択部をさらに備え、
前記出力値設定部は、前記ユニット選択部が選択したユニットに出力させる出力値を設定し、
前記透かし情報出力部は、前記ユニット選択部が選択したユニットを示す情報を前記透かし情報に含めて出力する、
請求項１に記載の情報処理装置。
【請求項３】
前記ユニット選択部は、前記後段層に隣接する層に含まれるユニットのうち、前記出力値を出力する前記後段層のユニットとの間に設定された重みが小さいユニットを、前記重みが大きいユニットよりも優先して選択し、
前記入力値算出部は、前記後段層のユニットが設定された前記出力値を出力するように、前記ユニット選択部が選択した前記後段層に隣接する層に含まれるユニットの出力値を算出する、
請求項２に記載の情報処理装置。
【請求項４】
前記ユニット選択部は、前記後段層に隣接する層に含まれるユニットのうち、前記出力値を出力する前記後段層のユニットとの間に設定された重みの大きさを示す指標が所定の閾値を超えるユニットを選択する、
請求項２又は３に記載の情報処理装置。
【請求項５】
前記ユニット選択部は、
前記後段層に含まれるユニットの中から、１又は複数のユニットから構成される第１ユニット群を選択する第１ユニット選択部と、
前記第１ユニット群に含まれるユニットとは異なるユニットであって、当該ユニットに対応する前記前段層におけるユニットが、前記第１ユニット群を構成するユニットに対応する前記前段層におけるユニットと異なる第２ユニット群を選択する第２ユニット選択部と、
を備え、
前記出力値設定部は、前記ユニット選択部が選択した前記第１ユニット群と前記第２ユニット群とのそれぞれに出力させる出力値を設定する、
請求項２から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記モデル取得部は畳込みニューラルネットワークの学習モデルを取得し、
前記入力値算出部は、前記後段層から前記前段層に至るまで、前記学習モデルに含まれる畳込みフィルタを用いて各層の出力値の逆畳込みを演算することにより、前記入力値を算出する、
請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記透かし情報を取得して当該透かし情報に含まれる前記前段層、前記後段層、前記入力値、及び前記出力値を抽出する透かし情報取得部と、
透かし検出対象のニューラルネットワークの学習モデルである検出対象モデルを取得する対象モデル取得部と、
前記検出対象モデルにおける前記前段層に前記入力値を入力して、前記検出対象モデルにおける前記後段層が出力した出力値を取得する出力値取得部と、
前記透かし情報から抽出した出力値と、前記出力値取得部が取得した出力値とを比較する比較部と、
前記比較部の比較結果に基づいて、前記検出対象モデルが透かし情報を埋め込んだ学習モデルに起因する学習モデルであるか否かを判定する判定部と、
をさらに備える請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
プロセッサが、
複数の層から構成されるニューラルネットワークの学習モデルを取得するステップと、
前記ニューラルネットワークを構成する層の中から異なる２つの層を選択するステップと、
前記２つの層のうち前記ニューラルネットワークの出力層に近い方の層である後段層に出力させる出力値を設定するステップと、
設定した前記出力値を前記後段層が出力するために、前記２つの層のうち前記ニューラルネットワークの入力層に近い方の層である前段層に入力する入力値を算出するステップと、
前記前段層、前記後段層、前記入力値、及び前記出力値を関連づけて、前記学習モデルの透かし情報として出力するステップと、
を実行する透かし生成方法。
【請求項９】
コンピュータに、
複数の層から構成されるニューラルネットワークの学習モデルを取得する機能と、
前記ニューラルネットワークを構成する層の中から異なる２つの層を選択する機能と、
前記２つの層のうち前記ニューラルネットワークの出力層に近い方の層である後段層に出力させる出力値を設定する機能と、
設定した前記出力値を前記後段層が出力するために、前記２つの層のうち前記ニューラルネットワークの入力層に近い方の層である前段層に入力する入力値を算出する機能と、
前記前段層、前記後段層、前記入力値、及び前記出力値を関連づけて、前記学習モデルの透かし情報として出力する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、透かし生成方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）及びＧＰＵ（Graphics Processing Unit）の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】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.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。さらに、一般に学習モデル生成に用いられた学習データを、学習モデル自体から推測することは難しい。
【０００５】
このため、学習モデルを生成した者は、その学習モデルが第三者によって不正に利用されたとしても、不正を立証することが難しい。収集した学習データと、学習データに基づいて生成された学習モデルとはそれぞれ労力をかけて取得した価値あるものであり、不正利用から学習モデルを守ることが望まれている。
【０００６】
本発明はこれらの点に鑑みてなされたものであり、学習モデルの出所を確認することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、情報処理装置である。この装置は、複数の層から構成されるニューラルネットワークの学習モデルを取得するモデル取得部と、前記ニューラルネットワークを構成する層の中から異なる２つの層を選択する層選択部と、前記２つの層のうち前記ニューラルネットワークの出力層に近い方の層である後段層に出力させる出力値を設定する出力値設定部と、前記出力値設定部が設定した出力値を前記後段層が出力するために、前記２つの層のうち前記ニューラルネットワークの入力層に近い方の層である前段層に入力する入力値を算出する入力値算出部と、前記前段層、前記後段層、前記入力値、及び前記出力値を関連づけて、前記学習モデルの透かし情報として出力する透かし情報出力部と、を備える。
【０００８】
前記情報処理装置は、前記後段層に含まれるユニットの中から、１又は複数のユニットを選択するユニット選択部をさらに備えてもよく、前記出力値設定部は、前記ユニット選択部が選択したユニットに出力させる出力値を設定してもよく、前記透かし情報出力部は、前記ユニット選択部が選択したユニットを示す情報を前記透かし情報に含めて出力してもよい。
【０００９】
前記ユニット選択部は、前記後段層に隣接する層に含まれるユニットのうち、前記出力値を出力する前記後段層のユニットとの間に設定された重みが小さいユニットを、前記重みが大きいユニットよりも優先して選択してもよく、前記入力値算出部は、前記後段層のユニットが設定された前記出力値を出力するように、前記ユニット選択部が選択した前記後段層に隣接する層に含まれるユニットの出力値を算出してもよい。
【００１０】
前記ユニット選択部は、前記後段層に隣接する層に含まれるユニットのうち、前記出力値を出力する前記後段層のユニットとの間に設定された重みの大きさを示す指標が所定の閾値を超えるユニットを選択してもよい。
【００１１】
前記ユニット選択部は、前記後段層に含まれるユニットの中から、１又は複数のユニットから構成される第１ユニット群を選択する第１ユニット選択部と、前記第１ユニット群に含まれるユニットとは異なるユニットであって、当該ユニットに対応する前記前段層におけるユニットが、前記第１ユニット群を構成するユニットに対応する前記前段層におけるユニットと異なる第２ユニット群を選択する第２ユニット選択部と、を備えてもよく、前記出力値設定部は、前記ユニット選択部が選択した前記第１ユニット群と前記第２ユニット群とのそれぞれに出力させる出力値を設定してもよい。
【００１２】
前記モデル取得部は畳込みニューラルネットワークの学習モデルを取得してもよく、前記入力値算出部は、前記後段層から前記前段層に至るまで、前記学習モデルに含まれる畳込みフィルタを用いて各層の出力値の逆畳込みを演算することにより、前記入力値を算出してもよい。
【００１３】
前記情報処理装置は、前記透かし情報を取得して当該透かし情報に含まれる前記前段層、前記後段層、前記入力値、及び前記出力値を抽出する透かし情報取得部と、透かし検出対象のニューラルネットワークの学習モデルである検出対象モデルを取得する対象モデル取得部と、前記検出対象モデルにおける前記前段層に前記入力値を入力して、前記検出対象モデルにおける前記後段層が出力した出力値を取得する出力値取得部と、前記透かし情報から抽出した出力値と、前記出力値取得部が取得した出力値とを比較する比較部と、前記比較部の比較結果に基づいて、前記検出対象モデルが透かし情報を埋め込んだ学習モデルに起因する学習モデルであるか否かを判定する判定部と、をさらに備えてもよい。
【００１４】
本発明の第２の態様は、透かし生成方法である。この方法において、プロセッサが、複数の層から構成されるニューラルネットワークの学習モデルを取得するステップと、前記ニューラルネットワークを構成する層の中から異なる２つの層を選択するステップと、前記２つの層のうち前記ニューラルネットワークの出力層に近い方の層である後段層に出力させる出力値を設定するステップと、設定した前記出力値を前記後段層が出力するために、前記２つの層のうち前記ニューラルネットワークの入力層に近い方の層である前段層に入力する入力値を算出するステップと、前記前段層、前記後段層、前記入力値、及び前記出力値を関連づけて、前記学習モデルの透かし情報として出力するステップと、を実行する。
【００１５】
本発明の第３の態様は、プログラムである。このプログラムは、コンピュータに、複数の層から構成されるニューラルネットワークの学習モデルを取得する機能と、前記ニューラルネットワークを構成する層の中から異なる２つの層を選択する機能と、前記２つの層のうち前記ニューラルネットワークの出力層に近い方の層である後段層に出力させる出力値を設定する機能と、設定した前記出力値を前記後段層が出力するために、前記２つの層のうち前記ニューラルネットワークの入力層に近い方の層である前段層に入力する入力値を算出する機能と、前記前段層、前記後段層、前記入力値、及び前記出力値を関連づけて、前記学習モデルの透かし情報として出力する機能と、を実現させる。
【発明の効果】
【００１６】
本発明によれば、学習モデルの出所を確認することができる。
【図面の簡単な説明】
【００１７】
【図１】畳込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
【図２】実施の形態の概要を説明するための図である。
【図３】実施の形態に係る情報処理装置の機能構成を模式的に示す図である。
【図４】後段層のユニットと隣接する第一中間層のユニットとの間の結合関係を模式的に示す図である。
【図５】実施の形態に係るユニット選択部の内部構成を模式的に示す図である。
【図６】実施の形態に係る透かし検出部の内部構成を模式的に示す図である。
【図７】実施の形態に係る情報処理装置が実行する情報処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１８】
＜畳込みニューラルネットワーク＞
実施の形態に係る情報処理装置は、ニューラルネットワークのうち、特に画像認識処理に用いられることが多い畳込みニューラルネットワーク（Convolutional Neural Network；ＣＮＮ）の学習モデルを主な処理対象とする。そこで、実施の形態に係る情報処理装置の前提技術として、まず畳込みニューラルネットワークについて簡単に説明する。
【００１９】
図１は、畳込みニューラルネットワークの一般的な機能構成を模式的に示す図である。現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ（又はグラフ構造）で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。
【００２０】
図１は、入力画像Ｉに含まれる被写体の種類を出力するように学習された学習モデルを示している。図１に示す例では、入力層Ｌｉに入力された入力画像Ｉは、第一畳込み層Ｃ１、第二畳込み層Ｃ２の順に処理され、プーリング層Ｐ、第一全結合層Ｆ１、第二全結合層Ｆ２、及び出力層Ｌｏに至るように構成されている。出力層は、入力画像Ｉに含まれる被写体の種類を示す識別ラベルＢを出力する。
【００２１】
例えば、図１に示す学習モデルが、犬や猫、猿等の複数の動物を認識するための学習モデルである場合、あらかじめ識別対象の動物を特定するための識別ラベルＢが割り当てられている。この学習モデルの入力層Ｌｉに入力画像Ｉが入力されると、出力層Ｌｏは、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す識別ラベルＢを出力する。なお、識別ラベルＢは、複数の認識対象それぞれに一意に割り当てられたビット列である。
【００２２】
ニューラルネットワークにおいては、前段層の出力がその前段層に隣接する後段層の入力となる。畳込みニューラルネットワークにおける各畳込み層は、前段層から入力された信号に対してフィルタを適用し、フィルタの出力がその層の出力となる。
【００２３】
＜実施の形態の概要＞
図２は、実施の形態の概要を説明するための図である。以下、図２を参照して、実施の形態に係る情報処理装置の概要を述べる。
【００２４】
実施の形態に係る情報処理装置は、複数の層から構成されるニューラルネットワークの学習モデルに、電子的な透かしを埋め込むための装置である。ここで、実施の形態に係る情報処理装置は、すでに存在する学習モデルに事後的に透かしを埋め込むことができる。したがって、実施の形態に係る情報処理装置は、透かしを埋め込むための特別な機械学習をする必要がなく、透かし埋め込みによって学習モデルのモデルパラメータが変更されることもない。
【００２５】
実施の形態に係る情報処理装置は、透かし埋め込みの対象とするニューラルネットワークを構成する層の中から、異なる２つの層を選択する。以下説明の便宜上、異なる２つの層のうち、透かし埋め込みの対象とするニューラルネットワークの出力層に近い方の層を「後段層」、入力層に近い方の層を「前段層」と記載する。図２に示す例では、第一全結合層Ｆ１が後段層Ｌｒであり、第二畳込み層Ｃ２が前段層Ｌｆであるが、これに限定されない。後段層は、出力層Ｌｏ、全結合層Ｆ、正規化層（不図示）、プーリング層Ｐ、及び畳込み層Ｃのうちのいずれかの層であってもよい。また、前段層は、全結合層Ｆ、正規化層、プーリング層Ｐ、畳込み層Ｃ及び入力層Ｌｉのうちのいずれかの層であってもよい。
【００２６】
また、実施の形態に係る情報処理装置は、後段層Ｌｒに出力させる画像、すなわち透かし埋め込みの対象とするニューラルネットワークに埋め込むべき透かし画像Ｗを受け付ける。実施の形態に係る情報処理装置は、学習モデルのパラメータを用いて、後段層Ｌｒから前段層Ｌｆに至るまでの層（図２に示す例では、第一中間層Ｍ１、第二中間層Ｍ２、第三中間層Ｍ３、及び第四中間層Ｍ４）を透かし画像Ｗを逆伝搬させる。これにより、実施の形態に係る情報処理装置は、後段層Ｌｒが透かし画像Ｗを出力するために前段層Ｌｆに入力すべき画像（以下、「透かし検出用データＤ」と記載する。）を算出することができる。
【００２７】
実施の形態に係る情報処理装置は、前段層Ｌｆ、後段層Ｌｒ、透かし検出用データＤ、及び透かし画像Ｗを関連付けて透かし情報として出力する。この透かし情報を用いることで、実施の形態に係る情報処理装置は、透かし検出の対象とするニューラルネットワークの学習モデルが、透かし埋め込みの対象とするニューラルネットワークに起因するニューラルネットワークの学習モデルであるか否かを判定すること、すなわちニューラルネットワークの学習モデルの出所を確認することができる。
【００２８】
＜実施の形態に係る情報処理装置１の機能構成＞
図３は、実施の形態に係る情報処理装置１の機能構成を模式的に示す図である。情報処理装置１は、記憶部２と制御部３とを備える。図３において、矢印は主なデータの流れを示しており、図３に示していないデータの流れがあってもよい。図３において、各機能ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図３に示す機能ブロックは単一の装置内に実装されてもよく、あるいは複数の装置内に分かれて実装されてもよい。機能ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてもよい。
【００２９】
記憶部２は、情報処理装置１を実現するコンピュータのＢＩＯＳ（Basic Input Output System）等を格納するＲＯＭ（Read Only Memory）や情報処理装置１の作業領域となるＲＡＭ（Random Access Memory）、ＯＳ（Operating System）やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の大容量記憶装置である。
【００３０】
制御部３は、情報処理装置１のＣＰＵやＧＰＵ等のプロセッサであり、記憶部２に記憶されたプログラムを実行することによってモデル取得部３０、層選択部３１、出力値設定部３２、ユニット選択部３３、入力値算出部３４、透かし情報出力部３５、及び透かし検出部３６として機能する。
【００３１】
なお、図３は、情報処理装置１が単一の装置で構成されている場合の例を示している。しかしながら、情報処理装置１は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部３を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
【００３２】
モデル取得部３０は、透かし埋め込みの対象となるニューラルネットワークの学習モデルを取得する。モデル取得部３０が取得するニューラルネットワークの学習モデルは、例えば畳込みニューラルネットワークの学習モデルである。ニューラルネットワークは複数の層から構成されており、また、各層は複数のユニットを備えている。
【００３３】
層選択部３１は、モデル取得部３０が取得した透かし埋め込みの対象となるニューラルネットワークを構成する層の中から異なる２つの層を選択する。出力値設定部３２は、層選択部３１が選択した２つの層のうちニューラルネットワークの出力層Ｌｏに近い方の層である後段層Ｌｒに出力させる出力値である透かし画像Ｗを設定する。
【００３４】
出力値設定部３２は、後段層Ｌｒに出力させる出力値である透かし画像Ｗを、例えば情報処理装置１のユーザから受け付けてもよい。あるいは、出力値設定部３２は、乱数を発生させて生成したランダムパターンを透かし画像Ｗとして設定してもよい。
【００３５】
ここで、出力値設定部３２は、後段層Ｌｒを構成する複数のユニットのうちの一部のユニットに出力値である透かし画像Ｗを出力させるように設定してもよい。これを実現するために、ユニット選択部３３は、後段層Ｌｒに含まれるユニットの中から、１又は複数のユニットを選択する。出力値設定部３２は、ユニット選択部３３が選択したユニットに出力させる出力値を設定する。これにより、情報処理装置１は、透かし画像Ｗを出力するための後段層Ｌｒのユニットを限定することができる。このユニットを特定するため情報も透かし情報の一部となるので、第三者が透かしを推定することの困難性を高めることができる。なお、ユニット選択部３３によるユニット選択処理の詳細は後述する。
【００３６】
入力値算出部３４は、出力値設定部３２が設定した出力値を後段層Ｌｒが出力するために、層選択部３１が選択した層のうち入力層Ｌｉに近い方の層である前段層Ｌｆに入力する入力値を算出する。入力値算出部３４が算出する入力値が、上述した透かし検出用データＤとなる。
【００３７】
透かし情報出力部３５は、前段層Ｌｆ、後段層Ｌｒ、前段層Ｌｆに入力する入力値である透かし検出用データＤ、及び後段層Ｌｒが出力する出力値である透かし画像Ｗを関連づけて、透かし埋め込み対象の学習モデルの透かし情報として出力する。なお、透かし情報出力部３５は、ユニット選択部３３によって透かし画像Ｗを出力するユニットが選択されている場合には、ユニット選択部３３が選択したユニットを示す情報も透かし情報に含めて出力する。
【００３８】
これにより、実施の形態に係る情報処理装置１は、透かし埋め込みの対象となるニューラルネットワークの学習モデルの出所を確認することができるようになる。また、情報処理装置１は、特別な学習処理をしなくても学習モデルに透かし画像Ｗを埋め込むことができるので、すでに生成された学習モデルに対して事後的に透かし画像Ｗを埋め込むことができる。
【００３９】
［ユニット選択処理］
続いて、ユニット選択部３３によるユニット選択処理を説明する。
【００４０】
後段層に含まれるユニットの中からユニット選択部３３が選択すべきユニットは基本的に任意のユニットでよい。一方で、透かし情報の秘匿性を高めるため、後段層に含まれるユニットのうち活性化する頻度が少ないユニット、又は、同時に活性化することが少ないユニットの組み合わせを選択することが好ましい。
【００４１】
図４（ａ）−（ｂ）は、後段層Ｌｒのユニットと隣接する第一中間層Ｍ１のユニットとの間の結合関係を模式的に示す図である。図４に示す例では、後段層Ｌｒは８つの後段ユニットＶ（第一後段ユニットＶ１、第二後段ユニットＶ２、第三後段ユニットＶ３、第四後段ユニットＶ４、第五後段ユニットＶ５、第六後段ユニットＶ６、第七後段ユニットＶ７、及び第八後段ユニットＶ８）を備えている。また、第一中間層Ｍ１は８つの中間ユニットＵ（第一中間ユニットＵ１、第二中間ユニットＵ２、第三中間ユニットＵ３、第四中間ユニットＵ４、第五中間ユニットＵ５、第六中間ユニットＵ６、第七中間ユニットＵ７、及び第八中間ユニットＵ８）を備えている。
【００４２】
図４において、後段ユニットＶと中間ユニットＵとを結ぶ線の太さは、畳込みフィルタの重みの大きさを示している。図４に示すように、第一中間層Ｍ１と後段層Ｌｒとが全結合で結ばれている場合、後段ユニットＶｉ（ｉ＝１，・・・，８）の入力は、中間ユニットＵｊ（ｊ＝１，・・・，８）と、中間ユニットＵｊと後段ユニットＶｉとを結ぶフィルタの重みｗｉｊを用いて、以下の式（１）で表される。
【００４３】
【数１】
2020098391.tif 000003
【００４４】
ここで、透かし埋め込みの対象となる学習モデルは既知であり、固定されている。このため、フィルタの重みｗｉｊは既知で固定されている。また、後段ユニットＶｉは透かし画像Ｗの画素値に対応するため、既知で固定されている。したがって、入力値算出部３４は、フィルタの重みｗｉｊと後段ユニットＶｉとが固定されていることを条件として、式（１）を満たすような中間ユニットＵｊの値を求めることになる。一般に、フィルタの重みｗｉｊと後段ユニットＶｉとが固定されていることを条件としても、式（１）を満たすような中間ユニットＵｊの値は複数存在する。
【００４５】
図４（ａ）に示す例において、第五後段ユニットＶ５は、透かし画像Ｗを出力するユニットとしてユニット選択部３３に選択されており、その他のユニットは透かし画像Ｗを出力するユニットとして選択されていないものとする。図４（ａ）の例は、第三中間ユニットＵ３と第五後段ユニットＶ５とを結ぶフィルタの重みｗ５３、第五中間ユニットＵ５と第五後段ユニットＶ５とを結ぶフィルタの重みｗ５５、及び第六中間ユニットＵ６と第五後段ユニットＶ５を結ぶフィルタの重みｗ５６は、他の重みよりも大きいことを示している。
【００４６】
これは、第三中間ユニットＵ３、第五中間ユニットＵ５、及び第六中間ユニットＵ６は、透かし埋め込みの対象となる学習モデルの学習時に活性化したユニットであることを示している。つまり、第三中間ユニットＵ３、第五中間ユニットＵ５、及び第六中間ユニットＵ６は、透かし埋め込みの対象となる学習モデルの認識精度の寄与が大きいことを示唆している。これらのユニットは、悪意のある第三者がファインチューニングによって故意に重みを変更することを試みたとき、その値も変わりやすい。
【００４７】
そこで、ユニット選択部３３は、後段層Ｌｒに隣接する第一中間層Ｍ１に含まれる中間ユニットＵのうち、出力値設定部３２が設定した出力値を出力する後段層Ｌｒのユニットである第五後段ユニットＶ５との間に設定された重みｗｉｊが小さいユニットを、重みｗｉｊが大きいユニットよりも優先して選択する。具体的には、ユニット選択部３３は、第一中間ユニットＵ１、第二中間ユニットＵ２、第四中間ユニットＵ４、第七中間ユニットＵ７、及び第八中間ユニットＵ８を選択する。
【００４８】
入力値算出部３４は、第五後段ユニットＶ５が式（１）にしたがって出力値設定部３２に設定された出力値を出力するように、ユニット選択部３３が選択した中間ユニットＵ（第一中間ユニットＵ１、第二中間ユニットＵ２、第四中間ユニットＵ４、第七中間ユニットＵ７、及び第八中間ユニットＵ８）の出力値を算出する。ユニット選択部３３及び入力値算出部３４は、以上の処理を前段層Ｌｆに至るまで繰り返すことにより、最終的に前段層に入力すべき入力値及びユニットを決定することができる。
【００４９】
ここで、式（１）から明らかなように、後段ユニットＶと中間ユニットＵとの間の重みｗｉｊが小さいときは中間ユニットＵの出力値は大きくなる。極端な例では、後段ユニットＶと中間ユニットＵとの間の重みｗｉｊが０のときは、入力値算出部３４は、中間ユニットＵの出力値は発散してしまうため算出することができない。
【００５０】
そこで、ユニット選択部３３は、後段層Ｌｒに隣接する第一中間層Ｍ１に含まれる中間ユニットＵのうち、出力値設定部３２が設定した出力値を出力する後段層Ｌｒのユニットである第五後段ユニットＶ５との間に設定された重みｗｉｊの大きさを示す指標が所定の閾値を超えるユニットを選択する。
【００５１】
ここで「重みｗｉｊの大きさを示す指標」は、重みｗｉｊの大きさに相関があればどのような値でもよく、例えば、ユニット選択部３３が選択した中間ユニットＵと出力値設定部３２が設定した出力値を出力する第五後段ユニットＶ５との間の重みｗｉｊの絶対値の和又は絶対値の平均値、あるいは２乗和又は２乗平均である。「所定の閾値」は、ユニット選択部３３が中間ユニットＵを選択するか否かを決定するために参照する「選択可否決定用閾値」である。所定の閾値の具体期な値は、学習モデルのパラメータの大きさや後段層Ｌｒと前段層Ｌｆとの間の層の数等を勘案して実験により定めればよい。
【００５２】
ユニット選択部３３が重みｗｉｊの大きさを示す指標に基づいて第一中間ユニットを選択することにより、入力値算出部３４は、出力値設定部３２が設定した出力値を後段層Ｌｒが出力するために、前段層Ｌｆに入力すべき入力値が発散することを抑制できる。
【００５３】
以上は、後段層Ｌｒの出力が１つの透かし画像Ｗを構成することを前提とした。しかしながら、出力値設定部３２は、後段層Ｌｒのそれぞれ異なるユニット群が、それぞれ異なる透かし画像Ｗを出力するように出力値を設定してもよい。以下この場合について説明する。
【００５４】
図５は、実施の形態に係るユニット選択部３３の内部構成を模式的に示す図である。図５に示すように、ユニット選択部３３は、第１ユニット選択部３３０と第２ユニット選択部３３１とを備える。
【００５５】
第１ユニット選択部３３０は、後段層Ｌｒに含まれる後段ユニットＶの中から、１又は複数の後段ユニットＶから構成される第１ユニット群を選択する。第１ユニット選択部３３０は、上述した「重みｗｉｊの大きさを示す指標」に基づいて、第１ユニット群が透かし画像Ｗを出力するために、後段層Ｌｒから前段層Ｌｆに至るまでの経路を算出する。結果として、第１ユニット選択部３３０は、第１ユニット群に対応する前段層Ｌｆにおけるユニットを特定する。
【００５６】
第２ユニット選択部３３１は、第１ユニット群に含まれるユニットとは異なるユニットであって、そのユニットに対応する前段層Ｌｆにおけるユニットが、第１ユニット群を構成するユニットに対応する前段層Ｌｆにおけるユニットと異なる第２ユニット群を選択する。すなわち、第２ユニット選択部３３１は、第１ユニット群に対応する前段層Ｌｆにおけるユニットと、第２ユニット群に対応する前段層Ｌｆにおけるユニットとが重複しないように、第２ユニット群から前段層Ｌｆに至るまでの経路を設定し、第２ユニット群を選択する。
【００５７】
出力値設定部３２は、ユニット選択部３３が選択した第１ユニット群と第２ユニット群とのそれぞれに出力させる出力値を設定する。これにより、情報処理装置１は、後段層Ｌｒから異なる２つの透かし画像Ｗを出力させることができる。
【００５８】
［逆畳込み］
上述したように、実施の形態に係る情報処理装置１が透かし埋め込みの対象とするニューラルネットワークの学習モデルは、畳込みニューラルネットワークの学習モデルを含んでいる。そのため、畳込みニューラルネットワークの学習モデルに透かし画像Ｗを埋め込む場合、入力値算出部３４は、後段層Ｌｒから前段層Ｌｆに至るまで、学習モデルに含まれる畳込みフィルタを用いて各層の出力値の逆畳込みを演算することにより、入力値を算出すればよい。
【００５９】
［透かし検出処理］
以上、情報処理装置１が透かし埋め込みの対象とするニューラルネットワークの学習モデルに透かし画像Ｗを埋め込む場合について説明した。情報処理装置１は、透かし検出対象とする未知の学習モデルに、透かし画像Ｗが埋め込まれているか否かを検出することにより、未知の学習モデルが、透かし埋め込みの対象としたニューラルネットワークの学習モデルに起因するか否かを検出することができる。以下、この透かし検出処理について説明する。
【００６０】
図６は、実施の形態に係る透かし検出部３６の内部構成を模式的に示す図である。透かし検出部３６は、透かし情報取得部３６０、対象モデル取得部３６１、出力値取得部３６２、比較部３６３、及び判定部３６４を含む。
【００６１】
透かし情報取得部３６０は、透かし情報を取得してその透かし情報に含まれる前段層Ｌｆ、後段層Ｌｒ、入力値、及び出力値を抽出する。透かし情報取得部３６０は、例えば書き換えができないセキュアなサーバから透かし情報を読み出して取得する。
【００６２】
対象モデル取得部３６１は、透かし検出対象のニューラルネットワークの学習モデルである検出対象モデルを取得する。出力値取得部３６２は、検出対象モデルにおける前段層Ｌｆに入力値を入力して、検出対象モデルにおける後段層Ｌｒが出力した出力値を取得する。
【００６３】
比較部３６３は、透かし情報から抽出した出力値と、出力値取得部３６２が取得した出力値とを比較する。判定部３６４は、比較部３６３の比較結果に基づいて、検出対象モデルが透かし情報を埋め込んだ学習モデルに起因する学習モデルであるか否かを判定する。
【００６４】
具体的には、判定部３６４は、透かし情報から抽出した出力値と、出力値取得部３６２が取得した出力値との差分の絶対値の総和が、所定の値以下である場合、検出対象モデルが透かし情報を埋め込んだ学習モデルに起因する学習モデルであると判定する。
【００６５】
ここで「所定の値」は、判定部３６４が学習モデルの一致／不一致を判定するために参照する「モデル一致判定用閾値」である。所定の値の具体的な大きさは、設定した透かし画像Ｗの画素数や画素値等を勘案して実験により定めればよい。
【００６６】
これにより、情報処理装置１は、透かし検出対象とする未知の学習モデルが、透かし埋め込みの対象とする学習モデルに起因するか否かを判定し、ニューラルネットワークの学習モデルの出所を確認することができる。
【００６７】
＜情報処理装置１が実行する情報処理の処理フロー＞
図７は、実施の形態に係る情報処理装置１が実行する情報処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば情報処理装置１が起動したときに開始する。
【００６８】
モデル取得部３０は、それぞれが複数のユニットを備える複数の層から構成されるニューラルネットワークの学習モデルを取得する（Ｓ２）。層選択部３１は、モデル取得部３０が取得した学習モデルのニューラルネットワークを構成する層の中から、異なる２つの層（前段層Ｌｆ及び後段層Ｌｒ）を選択する（Ｓ４）。
【００６９】
出力値設定部３２は、層選択部３１が選択した２つの層のうちニューラルネットワークの出力層Ｌｏに近い方の層である後段層Ｌｒに出力させる出力値を設定する（Ｓ６）。入力値算出部３４は、出力値設定部３２が設定した出力値を後段層Ｌｒが出力するために、層選択部３１が選択した２つの層のうちニューラルネットワークの入力層Ｌｉに近い方の層である前段層Ｌｆに入力する入力値を算出する（Ｓ８）。
【００７０】
透かし情報出力部３５は、前段層Ｌｆ、後段層Ｌｒ、入力値、及び出力値を関連づけて、学習モデルの透かし情報として出力する（Ｓ１０）。透かし情報出力部３５が透かし情報を出力すると、本フローチャートにおける処理は終了する。
【００７１】
＜実施の形態に係る情報処理装置１が奏する効果＞
以上説明したように、実施の形態に係る情報処理装置１によれば、ニューラルネットワークの学習モデルの出所を確認することができる。
【００７２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【符号の説明】
【００７３】
１・・・情報処理装置
２・・・記憶部
３・・・制御部
３０・・・モデル取得部
３１・・・層選択部
３２・・・出力値設定部
３３・・・ユニット選択部
３３０・・・第１ユニット選択部
３３１・・・第２ユニット選択部
３４・・・入力値算出部
３５・・・透かし情報出力部
３６・・・透かし検出部
３６０・・・透かし情報取得部
３６１・・・対象モデル取得部
３６２・・・出力値取得部
３６３・・・比較部
３６４・・・判定部
【図１】
2020098391.tif 000004
【図２】
2020098391.tif 000005
【図３】
2020098391.tif 000006
【図４】
2020098391.tif 000007
【図５】
2020098391.tif 000008
【図６】
2020098391.tif 000009
【図７】
2020098391.tif 000010