(57)【要約】【課題】機械学習によって生成された学習モデルの不正利用を防止させる。【解決手段】ニューラルネットワークの１または複数のノード間に第１改変防止要素を備え、第１改変防止要素は、第１入力部と、第１出力部と、第１入力部および第１出力部の間に設けられ、重み係数が設定される複数の第１隠れノードとを有し、第１入力部が受け取る第１入力データと、第１入力データに応じて第１出力部が出力する第１出力データとが一致し、第１入力部から第１出力部までデータを伝達する全ての経路のそれぞれは、当該経路に含まれるノード間の重み係数の積の絶対値が１０以上である、ニューラルネットワークを提供する。【選択図】図２
2020052814.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークであって、
前記ニューラルネットワークの１または複数のノード間に第１改変防止要素を備え、
前記第１改変防止要素は、
１または複数の第１入力ノードを有する第１入力部と、
１または複数の第１出力ノードを有する第１出力部と、
前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードと
を有し、
前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、
前記第１入力部から前記第１出力部までデータを伝達する全ての経路のそれぞれは、当該経路に含まれるノード間の重み係数の積の絶対値が１０以上である、
ニューラルネットワーク。
【請求項２】
前記第１改変防止要素に含まれる重み係数のうち少なくとも１つの重み係数の絶対値は、０．３未満である、請求項１に記載のニューラルネットワーク。
【請求項３】
前記ニューラルネットワークは、
当該ニューラルネットワークへの入力データを受け取る入力層と、
前記入力データに応じた出力データを出力する出力層と
を備え、
前記第１改変防止要素は、前記ニューラルネットワークの複数のノード間に設けられ、
前記ニューラルネットワークに含まれる複数のノードを、前記入力層に近い第１ノード群と、前記出力層に近い第２ノード群の２つに分割した場合に、前記第１ノード群に設けられた前記第１改変防止要素の数よりも、前記第２ノード群に設けられた前記第１改変防止要素の数の方が多い、請求項１または２に記載のニューラルネットワーク。
【請求項４】
前記ニューラルネットワークの前記入力層から前記出力層に向けて、前記第１改変防止要素の密度が増加する、請求項３に記載のニューラルネットワーク。
【請求項５】
コンピュータが実行する請求項１から４のいずれか一項に記載のニューラルネットワークの学習方法であって、前記第１改変防止要素内の経路の重み係数は更新せずに、前記第１改変防止要素には含まれない重み係数を更新することにより、前記ニューラルネットワークを学習する、学習方法。
【請求項６】
ニューラルネットワークのノード間に設けられ、
１または複数の第２入力ノードを有する第２入力部と、
１または複数の第２出力ノードを有する第２出力部と、
前記第２入力部および前記第２出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第２隠れノードと
を有する第２改変防止要素を学習する学習装置であって、
予め定められた数の前記第２隠れノードの前記第２入力部および前記第２出力部のいずれか一方との重み係数の初期値である第１初期値と、前記第２改変防止要素の残りの重み係数の初期値である第２初期値とを設定する設定部と、
前記第２入力部が受け取る第２入力データを取得する取得部と、
前記第２改変防止要素が前記第２入力データに応じて前記第２出力部から出力する第２出力データを算出し、前記第２入力データおよび前記第２出力データの差分を誤差関数として算出する算出部と、
前記第１初期値を固定したまま、前記誤差関数を用いて前記第２初期値を更新して学習する学習部と、
を備え、
前記第１初期値の絶対値が１０以上である、学習装置。
【請求項７】
前記学習部は、当該第２改変防止要素を埋め込む前の前記ニューラルネットワークの学習において、当該第２改変防止要素を埋め込むノード間に伝達されるデータを用いて学習する、請求項６に記載の学習装置。
【請求項８】
前記算出部は、前記予め定められた数の前記第２隠れノードの前記第２初期値に含まれる重み係数が閾値以上になると、前記第２初期値に含まれる重み係数に応じて値が大きくなる項を更に含めて前記誤差関数として算出する、請求項６または７に記載の学習装置。
【請求項９】
前記算出部は、前記第２入力部から前記第２出力部までデータを伝達する全ての経路のそれぞれにおいて、当該経路に含まれるノード間の重み係数の積の絶対値が１０未満になると、値が大きくなる項を更に含めて前記誤差関数として算出する、請求項６から８のいずれか一項に記載の学習装置。
【請求項１０】
前記第２改変防止要素は、ノード間に第１改変防止要素を更に有し、
前記第１改変防止要素は、
１または複数の第１入力ノードを有する第１入力部と、
１または複数の第１出力ノードを有する第１出力部と、
前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードと
を有し、
前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、
前記第１入力部から前記第１出力部までデータを伝達する全ての経路のそれぞれは、当該経路に含まれるノード間の重み係数の積の絶対値が１０以上であり、
前記学習部は、１または複数の前記第１改変防止要素の重み係数を更新せずに前記第２改変防止要素を学習する、請求項６から９のいずれか一項に記載の学習装置。
【請求項１１】
ニューラルネットワークの複数のノード間に設けられ、
１または複数の第２入力ノードを有する第２入力部と、
１または複数の第２出力ノードを有する第２出力部と、
前記第２入力部および前記第２出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第２隠れノードと
を有する第２改変防止要素の学習装置であって、
予め定められた数の前記第２隠れノードの前記第２入力部および前記第２出力部のいずれか一方との重み係数の初期値である第１初期値と、前記第２改変防止要素の残りの重み係数の初期値である第２初期値とを設定する設定部と、
前記第２入力部が受け取る第２入力データを取得する取得部と、
前記第２改変防止要素が前記第２入力データに応じて前記第２出力部から出力する第２出力データを算出し、前記第２入力データおよび前記第２出力データの第１差分と、前記第１初期値と対応する重み係数の更新後の第２差分と、前記第２初期値と対応する重み係数の更新後の第３差分とを、誤差関数として算出する算出部と、
前記誤差関数を用いて前記第１初期値および前記第２初期値を更新して学習する学習部と
を備え、
前記第１初期値の絶対値が１０以上であり、
前記算出部は、前記ニューラルネットワークの出力層により近い前記第２改変防止要素の前記第２差分および前記第３差分に乗じる係数を、より大きくして前記誤差関数として算出する、学習装置。
【請求項１２】
ニューラルネットワークのノード間に設けられ、
１または複数の第２入力ノードを有する第２入力部と、
１または複数の第２出力ノードを有する第２出力部と、
前記第２入力部および前記第２出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第２隠れノードと
を有する第２改変防止要素の学習方法であって、
予め定められた数の前記第２隠れノードの前記第２入力部および前記第２出力部のいずれか一方との重み係数の初期値である第１初期値と、前記第２改変防止要素の残りの重み係数の初期値である第２初期値とを設定するステップと、
前記第２入力部が受け取る第２入力データを取得するステップと、
前記第２改変防止要素が前記第２入力データに応じて前記第２出力部から出力する第２出力データを算出し、前記第２入力データおよび前記第２出力データの差分を誤差関数として算出するステップと、
前記第１初期値を固定したまま、前記誤差関数を用いて前記第２初期値を更新して学習するステップと
を備え、
前記第１初期値の絶対値が１０以上である、学習方法。
【請求項１３】
請求項６から１１のいずれか一項に記載の学習装置により学習した、学習済みの前記第２改変防止要素を１または複数のノード間に埋め込んだ、ニューラルネットワーク。
【請求項１４】
実行されると、コンピュータを請求項６から１１のいずれか一項に記載の学習装置として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク、学習装置、学習方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central 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.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、および用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。さらに、一般に学習モデル生成に用いられた学習データを、学習モデル自体から推測することは難しい。
【０００５】
このため、学習モデルを生成した者は、その学習モデルが第三者によって不正に利用されたとしても、不正を立証することが難しい。収集した学習データと、学習データに基づいて生成された学習モデルとはそれぞれ労力をかけて取得した価値あるものであり、不正利用から学習モデルを守ることが望まれている。なお、第三者が学習モデルを不正に利用する場合、当該第三者の用途に応じて学習モデルのパラメータ等を微調整することが一般的である。
【０００６】
そこで、本発明はこれらの点に鑑みてなされたものであり、機械学習によって生成された学習モデルの不正利用を困難にさせることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１の態様においては、ニューラルネットワークであって、前記ニューラルネットワークの１または複数のノード間に第１改変防止要素を備え、前記第１改変防止要素は、１または複数の第１入力ノードを有する第１入力部と、１または複数の第１出力ノードを有する第１出力部と、前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードとを有し、前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、前記第１入力部から前記第１出力部までデータを伝達する全ての経路のそれぞれは、当該経路に含まれるノード間の重み係数の積の絶対値が１０以上である、ニューラルネットワークを提供する。前記第１改変防止要素に含まれる重み係数のうち少なくとも１つの重み係数の絶対値は、０．３未満でよい。
【０００８】
前記ニューラルネットワークは、当該ニューラルネットワークへの入力データを受け取る入力層と、前記入力データに応じた出力データを出力する出力層とを備え、前記第１改変防止要素は、前記ニューラルネットワークの複数のノード間に設けられ、前記ニューラルネットワークに含まれる複数のノードを、前記入力層に近い第１ノード群と、前記出力層に近い第２ノード群の２つに分割した場合に、前記第１ノード群に設けられた前記第１改変防止要素の数よりも、前記第２ノード群に設けられた前記第１改変防止要素の数の方が多くてよい。前記ニューラルネットワークの前記入力層から前記出力層に向けて、前記第１改変防止要素の密度が増加してよい。
【０００９】
本発明の第２の態様においては、コンピュータが実行する第１の態様のニューラルネットワークの学習方法であって、前記第１改変防止要素内の経路の重み係数は更新せずに、前記第１改変防止要素には含まれない重み係数を更新することにより、前記ニューラルネットワークを学習する、学習方法を提供する。
【００１０】
本発明の第３の態様においては、ニューラルネットワークのノード間に設けられ、１または複数の第２入力ノードを有する第２入力部と、１または複数の第２出力ノードを有する第２出力部と、前記第２入力部および前記第２出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第２隠れノードとを有する第２改変防止要素を学習する学習装置であって、予め定められた数の前記第２隠れノードの前記第２入力部および前記第２出力部のいずれか一方との重み係数の初期値である第１初期値と、前記第２改変防止要素の残りの重み係数の初期値である第２初期値とを設定する設定部と、前記第２入力部が受け取る第２入力データを取得する取得部と、前記第２改変防止要素が前記第２入力データに応じて前記第２出力部から出力する第２出力データを算出し、前記第２入力データおよび前記第２出力データの差分を誤差関数として算出する算出部と、前記第１初期値を固定したまま、前記誤差関数を用いて前記第２初期値を更新して学習する学習部と、を備え、前記第１初期値の絶対値が１０以上である、学習装置を提供する。
【００１１】
前記学習部は、当該第２改変防止要素を埋め込む前の前記ニューラルネットワークの学習において、当該第２改変防止要素を埋め込むノード間に伝達されるデータを用いて学習してよい。前記算出部は、前記予め定められた数の前記第２隠れノードの前記第２初期値に含まれる重み係数が閾値以上になると、前記第２初期値に含まれる重み係数に応じて値が大きくなる項を更に含めて前記誤差関数として算出してよい。
【００１２】
前記算出部は、前記第２入力部から前記第２出力部までデータを伝達する全ての経路のそれぞれにおいて、当該経路に含まれるノード間の重み係数の積の絶対値が１０未満になると、値が大きくなる項を更に含めて前記誤差関数として算出してよい。
【００１３】
前記第２改変防止要素は、ノード間に第１改変防止要素を更に有し、前記第１改変防止要素は、１または複数の第１入力ノードを有する第１入力部と、１または複数の第１出力ノードを有する第１出力部と、前記第１入力部および前記第１出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第１隠れノードとを有し、前記第１入力部が受け取る第１入力データと、前記第１入力データに応じて前記第１出力部が出力する第１出力データとが一致し、前記第１入力部から前記第１出力部までデータを伝達する全ての経路のそれぞれは、当該経路に含まれるノード間の重み係数の積の絶対値が１０以上であり、前記学習部は、１または複数の前記第１改変防止要素の重み係数を更新せずに前記第２改変防止要素を学習してよい。
【００１４】
本発明の第４の態様においては、ニューラルネットワークの複数のノード間に設けられ、１または複数の第２入力ノードを有する第２入力部と、１または複数の第２出力ノードを有する第２出力部と、前記第２入力部および前記第２出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第２隠れノードとを有する第２改変防止要素の学習装置であって、予め定められた数の前記第２隠れノードの前記第２入力部および前記第２出力部のいずれか一方との重み係数の初期値である第１初期値と、前記第２改変防止要素の残りの重み係数の初期値である第２初期値とを設定する設定部と、前記第２入力部が受け取る第２入力データを取得する取得部と、前記第２改変防止要素が前記第２入力データに応じて前記第２出力部から出力する第２出力データを算出し、前記第２入力データおよび前記第２出力データの第１差分と、前記第１初期値と対応する重み係数の更新後の第２差分と、前記第２初期値と対応する重み係数の更新後の第３差分とを、誤差関数として算出する算出部と、前記誤差関数を用いて前記第１初期値および前記第２初期値を更新して学習する学習部とを備え、前記第１初期値の絶対値が１０以上であり、前記算出部は、前記ニューラルネットワークの出力層により近い前記第２改変防止要素の前記第２差分および前記第３差分に乗じる係数を、より大きくして前記誤差関数として算出する、学習装置を提供する。
【００１５】
本発明の第５の態様においては、ニューラルネットワークのノード間に設けられ、１または複数の第２入力ノードを有する第２入力部と、１または複数の第２出力ノードを有する第２出力部と、前記第２入力部および前記第２出力部の間に設けられ、入力側および出力側の接続に重み係数が設定される複数の第２隠れノードとを有する第２改変防止要素の学習方法であって、予め定められた数の前記第２隠れノードの前記第２入力部および前記第２出力部のいずれか一方との重み係数の初期値である第１初期値と、前記第２改変防止要素の残りの重み係数の初期値である第２初期値とを設定するステップと、前記第２入力部が受け取る第２入力データを取得するステップと、前記第２改変防止要素が前記第２入力データに応じて前記第２出力部から出力する第２出力データを算出し、前記第２入力データおよび前記第２出力データの差分を誤差関数として算出するステップと、前記第１初期値を固定したまま、前記誤差関数を用いて前記第２初期値を更新して学習するステップとを備え、前記第１初期値の絶対値が１０以上である、学習方法を提供する。
【００１６】
本発明の第６の態様においては、第３の態様および第４の態様のいずれかに記載の学習装置により学習した、学習済みの前記第２改変防止要素を１または複数のノード間に埋め込んだ、ニューラルネットワークを提供する。
【００１７】
本発明の第６の態様においては、実行されると、コンピュータを第３の態様および第４の態様のいずれかに記載の学習装置として機能させる、プログラムを提供する。
【発明の効果】
【００１８】
本発明によれば、機械学習によって生成された学習モデルの不正利用を防止できるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】本実施形態に係るニューラルネットワーク１０の構成例を示す。
【図２】本実施形態に係る第１改変防止要素１００の構成例を示す。
【図３】本実施形態に係る第２改変防止要素２００の構成例を示す。
【図４】本実施形態に係る学習装置３００の構成例を示す。
【図５】本実施形態に係る学習装置３００の動作フローの一例を示す。
【発明を実施するための形態】
【００２０】
＜ニューラルネットワーク１０の構成例＞
図１は、本実施形態に係るニューラルネットワーク１０の構成例を示す。ニューラルネットワーク１０は、入力したデータをノード間に伝播させ、入力データに応じたデータを出力する。ニューラルネットワーク１０は、ノード間の接続、重み係数、パラメータ、および活性化関数等の設定および学習等により、画像認識、文字認識、および音声認識等に利用される。ニューラルネットワーク１０は、入力層２０と、複数のノード３０と、出力層４０とを備える。
【００２１】
入力層２０は、当該ニューラルネットワーク１０への入力データを受け取る。入力データは、１つのまたは複数のデータ値を含む。入力層２０は、１つのまたは複数の入力ノード２２を有する。入力ノード２２は、入力データに含まれるデータ値が入力される。また、入力ノード２２は、入力されたデータ値を当該入力ノード２２に接続された１つのまたは複数のノード３０に供給する。
【００２２】
ノード３０は、入力層２０および出力層４０の間に複数設けられる。複数のノード３０は、隠れ層または中間層として機能する。ノード３０は、入力ノード２２、他のノード３０、自身のノード３０、および出力層４０等と接続され、入力側の接続から出力側の接続へと予め定められた方向にデータ値を伝播させる。
【００２３】
ノード３０は、例えば、入力側に接続されたノード間に重み係数ｗが設定され、当該ノード３０に向けて伝播されるデータ値ｕに当該重み係数を乗じた値ｗ・ｕが入力される。ノード３０は、入力側にｎ個の複数のノードが接続された場合、ｎ個の接続によって当該ノード３０に伝播されるｎ個のデータ値ｕｎに、接続ごとに設定された重み係数ｗｎをそれぞれ乗じたｎ個の値ｗｎ・ｕｎが入力される。
【００２４】
ノード３０は、例えば、入力されるデータ値ｗｎ・ｕｎの総和Σｗｎ・ｕｎを出力側の接続へと伝播させる。ノード３０は、総和Σｗｎ・ｕｎにバイアスパラメータｂを加えた値Σｗｎ・ｕｎ＋ｂを伝播させてもよい。また、ノード３０は、値Σｗｎ・ｕｎまたは値Σｗｎ・ｕｎ＋ｂを予め定められた関数ｆ（）に入力して算出された値を伝播させてもよい。
【００２５】
出力層４０は、入力データに応じた出力データを出力する。出力層４０は、１つのまたは複数の出力ノード４２を有する。出力層４０は、当該出力層４０に含まれる出力ノード４２から出力されるデータ値を、出力データとして出力する。出力ノード４２は、当該出力ノード４２に接続された１つのまたは複数のノード３０から受け取るデータ値に基づく値を出力する。出力ノード４２は、例えば、ノード３０と同様に、ノード間の重み係数、バイアスパラメータ、および関数等を用いて算出された値を出力する。
【００２６】
以上のニューラルネットワーク１０は、画像認識、文字認識、および音声認識等といった目的に応じて、入力ノード２２、ノード３０、および出力ノード４２の数、接続、重み係数等のパラメータが設定される。そして、ニューラルネットワーク１０は、教師あり学習、教師なし学習、および強化学習等の学習データに基づく機械学習により、重み係数等のパラメータが更新され、高い精度の識別機能および分類機能を有する学習モデルとして用いることができる。
【００２７】
このようなニューラルネットワーク１０の学習には、大量の学習データを用い、大量の計算処理を実行するため、コストおよび労力が必要となる。その一方で、学習済みのニューラルネットワーク１０は、デジタルデータとして記憶される学習モデルなので、複製が容易にできる。したがって、第三者が学習済みのニューラルネットワーク１０を違法に入手して利用することも容易にできてしまう。また、このような第三者は、違法に入手した学習モデルを用途に応じて微調整して、改変することが一般的であり、学習モデルの不正利用を調整済みの学習モデルから判別することは困難であった。
【００２８】
そこで、本実施形態に係るニューラルネットワーク１０は、第三者による当該ニューラルネットワーク１０の微調整を困難にさせる改変防止要素をノード間に設け、学習モデルの不正利用を防止する。図１は、ニューラルネットワーク１０が改変防止要素として第１改変防止要素１００をノード間に備える例を示す。図１は、第１改変防止要素１００が単一のノード３０の置き換えとして設けられた例を示す。このような第１改変防止要素１００について次に説明する。
【００２９】
＜第１改変防止要素１００の構成例＞
図２は、本実施形態に係る第１改変防止要素１００の構成例を示す。第１改変防止要素１００は、第１入力部１１０と、複数の第１隠れノード１２０と、第１出力部１３０とを有する。
【００３０】
第１入力部１１０は、ニューラルネットワーク１０の１つのまたは複数のノード３０から伝播される値が入力される。ここで、第１入力部１１０に入力される１つのまたは複数の値ｘｉを、第１入力データとする。第１入力部１１０は、１つのまたは複数の第１入力ノード１１２を有する。第１入力ノード１１２のそれぞれは、複数の第１隠れノード１２０に接続され、接続された複数の第１隠れノード１２０へと第１入力データｘｉを伝播させる。図２は、第１入力部１１０が１つの第１入力ノード１１２を有する例を示す。
【００３１】
複数の第１隠れノード１２０は、第１入力部１１０および第１出力部１３０の間に設けられる。第１隠れノード１２０は、例えば、入力側が第１入力ノード１１２と接続され、出力側が第１出力部１３０と接続される。また、第１隠れノード１２０の入力側および出力側は、他の第１隠れノード１２０に接続されてもよい。第１隠れノード１２０は、ニューラルネットワーク１０のノード３０と同様に、入力側の接続から出力側の接続へと予め定められた方向にデータ値を伝播させる。
【００３２】
第１隠れノード１２０は、例えば、入力側に接続されたノード間に重み係数ｗが設定され、当該第１隠れノード１２０に向けて伝播されるデータ値ｘｉに当該重み係数を乗じた値ｗ・ｘｉが入力される。第１隠れノード１２０は、入力側にｎ個の複数のノードが接続された場合、ｎ個の接続によって当該第１隠れノード１２０に伝播されるｎ個のデータ値ｘｉｎに、接続ごとに設定された重み係数ｗｎをそれぞれ乗じたｎ個の値ｗｎ・ｘｉｎが入力される。また、第１隠れノード１２０は、一例として、値ｗｎ・ｘｉｎの総和Σｗｎ・ｘｉｎを出力側に接続されたノードに伝播させる。
【００３３】
図２は、第１改変防止要素１００が２つの第１隠れノード１２０を有し、２つの第１隠れノード１２０の入力側が１つの第１入力ノード１１２にそれぞれ接続される例を示す。また、図２は、２つの第１隠れノード１２０のうち一方の第１隠れノード１２０と、第１入力ノード１１２との間の重み係数をｗ１とし、他方の第１隠れノード１２０と、第１入力ノード１１２との間の重み係数をｗ２とした例を示す。
【００３４】
また、２つの第１隠れノード１２０の出力側は、第１出力部１３０に接続される。図２は、一方の第１隠れノード１２０が値ｗ１・ｘｉを第１出力部１３０に伝播し、他方の第１隠れノード１２０が値ｗ２・ｘｉを第１出力部１３０に伝播する例を示す。
【００３５】
第１出力部１３０は、第１改変防止要素１００の内部から外部の１つのまたは複数のノード３０へと値を伝播する。ここで、第１出力部１３０が出力する１つのまたは複数の値ｙｉを、第１出力データとする。第１出力部１３０は、１つのまたは複数の第１出力ノード１３２を有する。第１出力ノード１３２は、複数の第１隠れノード１２０に接続され、接続された複数の第１隠れノード１２０から伝播される値に基づく第１出力データを出力する。第１出力ノード１３２は、例えば、第１隠れノード１２０と同様に、ノード間の重み係数を用いて算出された値を出力する。このように、第１隠れノード１２０は、出力側に接続されたノード間にも重み係数ｗが設定される。
【００３６】
図２は、第１出力部１３０が１つの第１出力ノード１３２を有し、当該１つの第１出力ノード１３２が２つの第１隠れノード１２０の出力側とそれぞれ接続する例を示す。また、図２は、２つの第１隠れノード１２０のうち一方の第１隠れノード１２０と、第１出力ノード１３２との間の重み係数をｗ３とし、他方の第１隠れノード１２０と、第１出力ノード１３２との間の重み係数をｗ４とした例を示す。そして、第１出力ノード１３２は、値ｗ１・ｗ３・ｘｉ＋ｗ２・ｗ４・ｘｉを第１出力データｙｉとして出力する。
【００３７】
以上の第１改変防止要素１００においては、第１入力部１１０が受け取る第１入力データｘｉと、第１入力データに応じて第１出力部１３０が出力する第１出力データｙｉとが一致する。このような入力値と入力値に応じた出力値とが一致する性質を有する対応関係を、恒等写像と呼ぶ。第１改変防止要素１００は、恒等写像の性質を有するように、重み係数が予め定められる。図２の例の場合、ｗ１・ｗ３・ｘｉ＋ｗ２・ｗ４・ｘｉ＝ｘｉより、次式を得る。
（数１）
ｗ１・ｗ３＋ｗ２・ｗ４＝１
【００３８】
また、第１改変防止要素１００の第１入力部１１０から第１出力部１３０までデータを伝達する全ての経路のそれぞれは、当該経路に含まれるノード間の重み係数の積の絶対値が１０以上である。即ち、図２に示す第１改変防止要素１００の例の場合、次式が成立するように重み係数が予め定められる。
（数２）
ｗ１・ｗ３≧１０，  ｗ２・ｗ４≧１０
【００３９】
以上のように、第１入力部１１０から第１出力部１３０までのそれぞれの経路に含まれるノード間の重み係数は、積の絶対値がそれぞれ１０以上となり、積の総和が１となる。例えば、図２の例の場合、一方の経路に含まれる重み係数はｗ１＝９９１およびｗ３＝−０．１であり、他方の経路に含まれる重み係数はｗ２＝１００．１、およびｗ４＝１である。したがって、積の絶対値は｜ｗ１・ｗ３｜＝９９．１≧１０、｜ｗ２・ｗ４｜＝１００．１≧１０、積の総和はｗ１・ｗ３＋ｗ２・ｗ４＝１である。
【００４０】
以上の第１改変防止要素１００は、入力データおよび出力データが一致するので、図１に示すようなニューラルネットワーク１０のノード３０として埋め込まれても、当該ニューラルネットワーク１０の入出力応答にほとんど影響を与えない。その一方、ニューラルネットワーク１０に埋め込まれた第１改変防止要素１００の重み係数を変更すると、恒等写像の性質から逸脱して、当該ニューラルネットワーク１０の入出力特性を変化させることができる。即ち、ニューラルネットワーク１０の入出力特性は、第１改変防止要素１００に含まれる重み係数の調整に対して敏感に反応することになる。
【００４１】
このような第１改変防止要素１００は、各経路の重み係数の積の絶対値が１０以上なので、１つの重み係数の値をｚ％だけ変更しても、当該１つの重み係数を含む経路の重み係数の積は１０・ｚ％以上変化することになる。そして、重み係数の積の総和も、１と比較して同程度変化することになる。即ち、第１改変防止要素１００は、重み係数の調整量以上の変化を恒等写像の関係から逸脱させることができる。
【００４２】
ニューラルネットワーク１０を不正に取得する第三者は、このような第１改変防止要素１００を含むニューラルネットワーク１０の具体的な設計および構成等の情報まで把握することは困難である。第三者が入手した学習モデルから具体的な情報を取得したくても、例えば、当該学習モデルが数千万個以上の個数のパラメータを含むので、それぞれのパラメータを解析することは現実的ではない。したがって、第三者は、当該ニューラルネットワーク１０内の重み係数を微調整して使用する場合、第１改変防止要素１００に含まれる重み係数も微調整することがある。第１改変防止要素１００は、上述のように、重み係数が僅かに調整されても、調整量よりも大きく恒等写像の関係から特性から逸脱するので、当該ニューラルネットワーク１０の学習動作とは無関係な値を出力する。即ち、第三者による第１改変防止要素１００の微調整は、ニューラルネットワーク１０の性能を低減させる。
【００４３】
一方、ニューラルネットワーク１０を正当に取得したユーザは、このようなニューラルネットワーク１０の具体的な設計および構成等を知り得るので、不用意に第１改変防止要素１００に含まれる重み係数を微調整することはない。したがって、本実施形態に係る第１改変防止要素１００は、正当なユーザによるニューラルネットワーク１０の微調整を実行可能とする一方で、第三者によるニューラルネットワーク１０の微調整を困難にさせ、不正使用を防止することができる。
【００４４】
このような第１改変防止要素１００をニューラルネットワーク１０に複数埋め込むことにより、第１改変防止要素１００の重み係数を調節する可能性を高めるので、第三者のニューラルネットワーク１０の微調整は、より困難になる。したがって、第１改変防止要素１００は、ニューラルネットワーク１０の計算処理に影響を与えない程度の範囲で、より多くの数が埋め込まれることが望ましい。
【００４５】
なお、ニューラルネットワーク１０を微調整する場合、出力層４０に近い位置の重み係数を調整することが多い。したがって、ニューラルネットワーク１０は、出力層４０に近い位置により多くの第１改変防止要素１００が配置されることが望ましい。例えば、ニューラルネットワーク１０に含まれる複数のノード３０を、入力層２０に近い第１ノード群と、出力層４０に近い第２ノード群の２つに分割した場合に、第１ノード群に設けられた第１改変防止要素１００の数よりも、第２ノード群に設けられた第１改変防止要素１００の数の方を多くする。
【００４６】
この場合、更に、ニューラルネットワーク１０の入力層２０から出力層４０に向けて、第１改変防止要素１００の密度が増加するように、第１改変防止要素１００が配置されることが望ましい。これにより、第三者がニューラルネットワーク１０を微調整する場合に、第１改変防止要素１００に含まれる重み係数を微調整する確率を高めることができる。
【００４７】
また、ニューラルネットワーク１０の入力層２０から出力層４０に向けて、出力層４０に近づくほど、より絶対値の大きい重み係数を含む第１改変防止要素１００が配置されることが望ましい。これにより、第三者が微調整する可能性が高い第１改変防止要素１００に、より絶対値の大きい重み係数を含ませるので、微調整によってニューラルネットワーク１０の性能をより急峻に低減させる確率を高めることができる。
【００４８】
ここで、ニューラルネットワーク１０を微調整する手法の一つとして、プルーニングによるモデル圧縮が知られている。モデル圧縮は、精度をある程度保ったままニューラルネットワーク１０のパラメータ数を削減させるので、メモリ使用量を小さくすることができ、また、高速化できることもある。このようなモデル圧縮は、例えば、重み係数の絶対値が小さいものを優先的に削除する。
【００４９】
そこで、本実施形態に係る第１改変防止要素１００は、当該第１改変防止要素１００に含まれる重み係数のうち少なくとも１つの重み係数の絶対値が０．３未満であることが望ましい。図２の例の場合、ｗ３＝−０．１であり、｜ｗ３｜＜０．３に合致する。このように、第１改変防止要素１００が絶対値が１よりも小さい重み係数を有すると、プルーニングによって当該重み係数が削除または０に調節されることがある。この場合、当該絶対値の小さい重み係数を含む経路が消滅する。各経路の重み係数の積の絶対値が１０以上なので、１０以上の絶対値が積の総和から消滅することになり、第１改変防止要素１００は、恒等写像の特性をほとんど失うことになる。
【００５０】
例えば、図２に示す第１改変防止要素１００の場合、ｗ３＝０とすると、第１出力データｙｉは、ｗ２・ｗ４・ｘｉ＝１００．１・ｘｉとなる。即ち、第１出力データｙｉは、第１入力データｘｉの約１００倍になるので、ニューラルネットワーク１０の性能を大きく低減させることができる。このようなプルーニングは、重み係数の絶対値が小さいものを優先的に０にするので、第１改変防止要素１００は、より小さい絶対値の重み係数を有することが望ましい。第１改変防止要素１００は、例えば、絶対値が０．１未満の重み係数を１つ有することがより望ましい。
【００５１】
また、第三者は、学習データを用いてニューラルネットワーク１０を再学習することがある。例えば、第三者は、ニューラルネットワーク１０を微調整する場合、ニューラルネットワーク１０の性能を向上させる場合、新たな学習データを取得した場合、および、プルーニング処理を実行した場合等に、当該ニューラルネットワーク１０を再学習する。
【００５２】
第三者による再学習は、例えば、ニューラルネットワーク１０に学習データを入力し、当該学習データに応じた出力データに基づき、重み係数等を微調整または更新する。したがって、第三者の再学習においても、第１改変防止要素１００に含まれる重み係数を微調整することがあり、ニューラルネットワーク１０は、再学習しているにも関わらず、性能が低減することになる。
【００５３】
一方、ニューラルネットワーク１０を正当に入手したユーザは、第１改変防止要素１００内の経路の重み係数は更新せずに、第１改変防止要素１００には含まれない重み係数を更新することにより、当該ニューラルネットワーク１０を学習すればよい。このように、第１改変防止要素１００は、正当なユーザによるニューラルネットワーク１０の再学習を実行可能に当該ニューラルネットワーク１０に埋め込まれ、その一方で、第三者による再学習を困難にすることができる。
【００５４】
以上の本実施形態に係る第１改変防止要素１００は、恒等写像の性質を有し、第１入力部１１０から第１出力部１３０までの経路に含まれるノード間の重み係数の積の絶対値が１０以上であり、また、絶対値が０．３未満の重み係数を少なくとも１つ有する例を説明した。このような第１改変防止要素１００は、より多くの第１入力ノード１１２、第１隠れノード１２０、および第１出力ノード１３２が設けられることが望ましい。第１改変防止要素１００の内部が複雑な構成となることにより、第三者による構造の解析は困難となり、また、ニューラルネットワーク１０の微調整による性能低減の確率を高めることができる。
【００５５】
＜第２改変防止要素２００の構成例＞
図３は、本実施形態に係る第２改変防止要素２００の構成例を示す。第２改変防止要素２００は、図２に示す第１改変防止要素１００において、より多くの第１入力ノード１１２、第１隠れノード１２０、および第１出力ノード１３２が設けられた例を示す。第２改変防止要素２００は、ニューラルネットワーク１０のノード間に設けられ、第２入力部２１０と、第２隠れノード２２０と、第２出力部２３０とを有する。
【００５６】
第２入力部２１０は、１つのまたは複数の第２入力ノード２１２を有する。第２隠れノード２２０は、第２入力部２１０および第２出力部２３０の間に設けられ、入力側および出力側の接続に重み係数が設定される。第２出力部２３０は、１つのまたは複数の第２出力ノード２３２を有する。第２入力部２１０、第２入力ノード２１２、第２隠れノード２２０、第２出力部２３０、および第２出力ノード２３２は、図２における第１入力部１１０、第１入力ノード１１２、第１隠れノード１２０、第１出力部１３０、および第１出力ノード１３２とそれぞれ同様の動作をするので、ここでは説明を省略する。
【００５７】
第２改変防止要素２００のように、ノードの数およびノード間の接続が増加すると、ノード間の重み係数の数も増加し、重み係数の値を解析的にそれぞれ算出することが困難になることがある。なお、図３に示す第２改変防止要素２００は、複数の第２隠れノード２２０が第２入力部２１０および第２出力部２３０にそれぞれ接続される例を示す。即ち、複数の第２隠れノード２２０が一層の隠れ層を構成する例を示すが、これに限定されることはなく、複数の第２隠れノード２２０が複数の隠れ層を構成してもよい。この場合、異なる第２隠れノード２２０同士が接続され、より複雑な構成が形成されるので、重み係数の値を解析的にそれぞれ算出することがより困難になる。この場合、第２改変防止要素２００の重み係数を、学習により算出してもよい。そこで、第２改変防止要素２００の重み係数を学習する学習装置について次に説明する。
【００５８】
＜学習装置３００の構成例＞
図４は、本実施形態に係る学習装置３００の構成例を示す。学習装置３００は、図３に示す第２改変防止要素２００の重み係数を学習する。学習装置３００は、取得部３１０と、記憶部３２０と、設定部３３０と、算出部３４０と、学習部３５０とを備える。
【００５９】
取得部３１０は、第２改変防止要素２００の学習データを取得する。取得部３１０は、例えば、第２改変防止要素２００に供給する複数の第２入力データの情報を取得する。取得部３１０は、例えば、外部のデータベース５０等からこれらを取得する。取得部３１０は、例えば、ネットワーク６０を介して、データベース５０等にアクセスする。なお、取得部３１０は、第２改変防止要素２００の情報をデータベース５０等から取得してもよい。
【００６０】
記憶部３２０は、取得部３１０が取得した学習データを記憶する。また、記憶部３２０は、第２改変防止要素２００の情報、学習装置３００の設定値等を記憶してよい。また、記憶部３２０は、学習装置３００が動作の過程で生成する（または利用する）中間データ、算出結果、閾値、およびパラメータ等をそれぞれ記憶してもよい。また、記憶部３２０は、学習装置３００内の各部の要求に応じて、記憶したデータを要求元に供給してもよい。
【００６１】
設定部３３０は、第２改変防止要素２００に含まれる複数の重み係数の初期値を設定する。設定部３３０は、複数の重み係数のうち予め定められた数の初期値を第１初期値として設定し、残りの重み係数の初期値を第２初期値として設定する。第１初期値は、第２隠れノード２２０と、第２入力部２１０および第２出力部２３０のいずれか一方との接続における重み係数の初期値である。第１初期値は、予め定められた値であり、例えば、絶対値が１０以上の値である。
【００６２】
算出部３４０は、第２改変防止要素２００の第２入力部２１０に第２入力データを供給し、第２入力データに応じて第２出力部２３０から出力される第２出力データを算出する。また、算出部３４０は、第２入力データおよび第２出力データの差分Ｅを誤差関数として算出する。算出部３４０は、第２入力データおよび第２出力データの差分Ｅに１つのまたは複数の項を加算した結果を誤差関数として用いてもよい。
【００６３】
学習部３５０は、第１初期値を固定したまま、誤差関数を用いて第２初期値を更新して学習する。学習部３５０は、誤差関数の値が最小となるように、第２初期値を設定した重み関数の値を順次更新する。学習部３５０は、学習結果を記憶部３２０に記憶する。
【００６４】
＜学習装置３００の学習動作例＞
以上の学習装置３００の学習動作について、次に説明する。図５は、本実施形態に係る学習装置３００の動作フローの一例を示す。学習装置３００は、図５のＳ４１０からＳ４６０の動作を実行することにより、第２改変防止要素２００の重み係数の値を決定する。
【００６５】
まず、Ｓ４１０において、取得部３１０は、第２改変防止要素２００の学習データを取得する。また、記憶部３２０は、取得部３１０が取得した学習データを記憶する。
【００６６】
次に、Ｓ４２０において、設定部３３０は、複数の重み係数の初期値を設定する。設定部３３０は、例えば、複数の第２隠れノード２２０のうち第２入力部２１０と接続された第２隠れノード２２０の、入力側の重み係数の初期値を第１初期値として設定する。即ち、設定部３３０は、第２隠れノード２２０および第２入力部２１０の接続における重み係数の初期値を第１初期値とする。第１初期値は、１と比較して絶対値が大きい値でよく、例えば、絶対値が１０以上である。
【００６７】
また、設定部３３０は、残りの重み係数の初期値を第２初期値として設定する。設定部３３０は、第２初期値を１０未満の値に設定する。設定部３３０は、例えば、第２初期値の絶対値を１以下の値に設定する。
【００６８】
次に、Ｓ４３０において、算出部３４０は、学習データのうち一つの第２入力データを第２改変防止要素２００の第２入力部２１０に供給し、第２入力データに応じて第２出力部２３０から出力される第２出力データを算出する。
【００６９】
次に、Ｓ４４０において、算出部３４０は、第２入力データおよび第２出力データの差分Ｅを誤差関数として算出する。算出部３４０は、算出した誤差関数の値を学習部３５０に供給する。
【００７０】
次に、Ｓ４５０において、学習部３５０は、第１初期値を固定したまま、誤差関数を用いて第２初期値を更新して学習する。学習部３５０は、誤差関数が最小となるように、第２初期値を設定した重み係数の値を更新する。なお、学習部３５０による重み係数の更新については、既知のアルゴリズムを用いてよく、ここでは説明を省略する。学習部３５０は、記憶部３２０に更新した重み係数の情報を記憶する。
【００７１】
学習装置３００は、学習を継続する場合（Ｓ４６０：Ｙｅｓ）、取得部３１０は次の第２入力データを更新後の第２改変防止要素２００の情報を取得して、算出部３４０に供給する（Ｓ４７０）。学習装置３００は、Ｓ４３０に戻り、算出部３４０が更新後の第２改変防止要素２００を用いて次の第２出力データを算出する。学習装置３００は、学習部３５０の学習が終了するまで、Ｓ４３０からＳ４７０の動作を繰り返す。
【００７２】
学習部３５０の学習が終了した場合（Ｓ４６０：Ｎｏ）、または学習結果が収束しなかった場合、学習装置３００は、学習を終了させる。例えば、予め定められた数の学習データによる学習が終了した場合、また、誤差関数の値が閾値以下となった場合等に、学習装置３００は学習を終了させる。
【００７３】
以上のように、本実施形態における学習装置３００は、第２入力データおよび第２出力データの差分Ｅが最小となるように学習する。これにより、学習済みの第２改変防止要素２００は、入力値および出力値が閾値の範囲内で一致する、ほぼ恒等写像の性質を有する。
【００７４】
また、学習装置３００は、重み係数の第１初期値の絶対値を１０以上とし、残りの重み係数の第２初期値の絶対値を１以下とする極端にアンバランスな初期値を与え、また、第１初期値を更新しない。これにより、学習装置３００は、学習済みの第２改変防止要素２００の第２入力部２１０から第２出力部２３０までの経路に含まれるノード間の重み係数の積の絶対値を、１と比較して大きな値（例えば、１０以上）に収束させるようにする。
【００７５】
重み係数の第１初期値の絶対値を１０以上とすると、学習部３５０は、重み係数の積の総和を１に近づけるので、第１初期値および第２初期値の積の絶対値を、第１初期値の絶対値よりも小さい値とする確率が高くなる。即ち、学習装置３００は、学習済みの第２改変防止要素２００の少なくとも１つの重み係数の絶対値を１未満に収束させるようにする。設定部３３０は、第２初期値の絶対値をより小さくすべく、第１初期値の絶対値を１００以上、および１０００以上といった、より大きい値に設定してもよい。この場合、設定部３３０は、第２初期値の絶対値を０．３未満に設定してよい。
【００７６】
なお、学習装置３００は、第２改変防止要素２００の重み係数をより確実に収束させるべく、誤差関数に追加の項を更に含めてもよい。例えば、算出部３４０は、予め定められた数の第２隠れノード２２０の第２初期値に含まれる重み係数が閾値以上になると、第２初期値に含まれる重み係数に応じて値が大きくなる項Ｆ１を更に含めて誤差関数Ｅ＋λ１Ｆ１として算出する。
【００７７】
項Ｆ１は、例えば、重み係数が１以上になった場合に値が１よりも大きくなる関数である。また、項Ｆ１は、例えば、重み係数が０．３以上になった場合に値が１よりも大きくなる関数でもよい。これにより、学習済みの第２改変防止要素２００の少なくとも１つの重み係数の絶対値を１未満へと、より確実に収束させることができる。なお、λ１は、例えば、１以下の予め定められた値である。また、λ１は、学習の経過に応じて値を０に近づけてもよい。
【００７８】
また、算出部３４０は、第２入力部２１０から第２出力部２３０までデータを伝達する全ての経路のそれぞれにおいて、当該経路に含まれるノード間の重み係数の積の絶対値が１０未満になると、値が大きくなる項Ｆ２を更に含めて誤差関数Ｅ＋λ２Ｆ２として算出してもよい。項Ｆ２は、例えば、重み係数の積の絶対値が１０未満になった経路が１つでも発生したことに応じて、値が１よりも大きくなる関数である。
【００７９】
これにより、学習装置３００は、学習済みの第２改変防止要素２００の第２入力部２１０から第２出力部２３０までの経路に含まれるノード間の重み係数の積の絶対値を、１０以上の値へとより確実に収束させることができる。なお、λ２は、λ１と同様に、例えば、１以下の予め定められた値である。また、λ２は、学習の経過に応じて値を０に近づけてもよい。また、算出部３４０は、誤差関数をＥ＋λ１Ｆ１＋λ２Ｆ２として算出してもよい。
【００８０】
以上のように、学習装置３００は、第２改変防止要素２００が第１改変防止要素１００の機能と同様の機能を有するように学習する。したがって、学習済みの第２改変防止要素２００をニューラルネットワーク１０の１つのまたは複数のノード間に埋め込むことにより、第三者による当該ニューラルネットワーク１０の不正利用を防止できる。第２改変防止要素２００は、第１改変防止要素１００よりもノードの数が多く複雑なので、第三者のニューラルネットワーク１０の構造解析をより困難にさせることができる。
【００８１】
以上の本実施形態に係る学習装置３００は、第２隠れノード２２０および第２入力部２１０の間の接続に設定された重み係数を第１初期値とした例を説明したが、これに限定されることはない。設定部３３０は、第２隠れノード２２０および第２入力部２１０の接続のうち、１つ以上の接続における重み係数の初期値を第１初期値とし、残りの重み係数を第２初期値としてもよい。また、設定部３３０は、第２隠れノード２２０および第２出力部２３０の間の１つ以上の接続に設定された重み係数を第１初期値とし、残りの重み係数を第２初期値としてもよい。学習装置３００は、第２改変防止要素２００の入出力間の経路において、重み係数の積の絶対値を１よりも大きく（例えば１０以上）、かつ、１よりも小さい重み係数を有するように、学習可能であればよい。
【００８２】
なお、学習装置３００は、実際にニューラルネットワーク１０内で伝播しているデータを学習データとして用いることが望ましい。そこで、学習部３５０は、第２改変防止要素２００を埋め込む前のニューラルネットワーク１０の学習において、第２改変防止要素２００を埋め込むノード間に伝達されるデータを用いて学習する。例えば、ニューラルネットワーク１０の学習段階で、第２改変防止要素２００を埋め込む位置を予め定め、当該位置において伝播されるデータを予めデータベース５０等に記憶する。これにより、取得部３１０は、学習データとして、ニューラルネットワーク１０を実際に伝播していたデータを取得して利用できる。
【００８３】
以上の本実施形態に係る第２改変防止要素２００は、図２で説明したような第１改変防止要素１００よりも規模の大きい構成を有する例を説明した。ここで、第２改変防止要素２００は、ノード間に第１改変防止要素１００を更に有してもよい。第１改変防止要素１００は、解析的に重み係数の値を決定できるので、学習装置３００による学習を必要としない。したがって、学習部３５０は、１つのまたは複数の第１改変防止要素１００の重み係数を更新せずに第２改変防止要素２００を学習できる。このように、第２改変防止要素２００に第１改変防止要素１００を埋め込むことにより、学習装置３００の学習動作の負担の増加を抑制しつつ、より規模の大きい第２改変防止要素２００を構成することができる。
【００８４】
以上の本実施形態に係る学習装置３００は、第１初期値を固定したまま第２初期値を更新することで、第２改変防止要素２００を学習する例を説明したが、これに限定されることはない。学習装置３００は、第１初期値および第２初期値を更新して第２改変防止要素２００を学習してもよい。この場合、学習装置３００は、例えば、第１初期値および第２初期値に基づく誤差関数の項を用いて、第１初期値および第２初期値を更新する。
【００８５】
一例として、算出部３４０は、第２入力データおよび第２出力データの差分を第１差分Ｅ１とし、第１初期値と対応する重み係数の更新後の差分を第２差分Ｅ２とし、第２初期値と対応する重み係数の更新後の第３差分をＥ３とする。そして、算出部３４０は、誤差関数をＥ１＋λ３Ｅ２＋λ４Ｅ３として算出する。λ３およびλ４は、λ１等と同様の係数である。そして、学習部３５０は、当該誤差関数を用いて第１初期値および第２初期値を更新して学習する。
【００８６】
これにより、学習部３５０は、重み係数の値が第１初期値および第２初期値から大きくずれない範囲で、当該重み係数を更新することになる。したがって、学習装置３００は、第１初期値および第２初期値を更新させて、１つの経路に含まれる重み係数の値を極端なバランスにして、学習できる。なお、算出部３４０は、誤差関数をＥ１＋λ１Ｆ１＋λ２Ｆ２＋λ３Ｅ２＋λ４Ｅ３として算出してもよい。
【００８７】
また、算出部３４０は、このような第１初期値および第２初期値を更新させる学習を、ニューラルネットワーク１０の出力層４０により近い位置に埋め込まれる第２改変防止要素２００に対して実行してもよい。また、算出部は、ニューラルネットワーク１０の出力層４０により近い位置に埋め込まれる第２改変防止要素２００に対して、第２差分Ｅ２および第３差分Ｅ３に乗じる係数λ３およびλ４の値を、より大きくして誤差関数として算出してもよい。
【００８８】
これにより、ニューラルネットワーク１０の出力層４０により近い位置における第２改変防止要素２００が、よりアンバランスな重み係数を有することができる。ニューラルネットワーク１０を微調整する場合、出力層４０により近い位置の重み係数を調節することが多いので、このような学習による第２改変防止要素２００を埋め込んだニューラルネットワーク１０は、第三者による不正利用をより困難にさせることができる。
【００８９】
以上の本実施形態に係る学習装置３００の少なくとも一部は、例えば、コンピュータ等で構成される。この場合、記憶部３２０は、一例として、当該学習装置３００を実現するコンピュータ等のＢＩＯＳ（Basic Input Output System）等を格納するＲＯＭ（Read Only Memory）、および作業領域となるＲＡＭ（Random Access Memory）を含む。また、記憶部３２０は、ＯＳ（Operating System）、アプリケーションプログラム、および／または当該アプリケーションプログラムの実行時に参照されるデータベースを含む種々の情報を格納してよい。即ち、記憶部３２０は、ＨＤＤ（Hard Disk Drive）および／またはＳＳＤ（Solid State Drive）等の大容量記憶装置を含んでよい。
【００９０】
また、学習装置３００は、例えば、制御部を含む。制御部は、ＣＰＵ等のプロセッサであり、記憶部３２０に記憶されたプログラムを実行することによって、取得部３１０、設定部３３０、算出部３４０、および学習部３５０として機能する。制御部は、ＧＰＵ（Graphics Processing Unit）等を含んでもよい。
【００９１】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形および変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【符号の説明】
【００９２】
１０  ニューラルネットワーク
２０  入力層
２２  入力ノード
３０  ノード
４０  出力層
４２  出力ノード
５０  データベース
６０  ネットワーク
１００  第１改変防止要素
１１０  第１入力部
１１２  第１入力ノード
１２０  第１隠れノード
１３０  第１出力部
１３２  第１出力ノード
２００  第２改変防止要素
２１０  第２入力部
２１２  第２入力ノード
２２０  第２隠れノード
２３０  第２出力部
２３２  第２出力ノード
３００  学習装置
３１０  取得部
３２０  記憶部
３３０  設定部
３４０  算出部
３５０  学習部
【図１】
2020052814.tif 000003
【図２】
2020052814.tif 000004
【図３】
2020052814.tif 000005
【図４】
2020052814.tif 000006
【図５】
2020052814.tif 000007