(57)【要約】【課題】機械学習結果を利用した処理を安全に実行することができるデバイス等を提供する。【解決手段】デバイス１は、演算処理を実行する実行部と、該実行部よりもセキュアなコンポーネントであって、機械学習により生成された学習済みモデルを展開するためのパラメータを格納するセキュア部とを備え、前記実行部は、前記セキュア部から前記パラメータを取得し、取得した前記パラメータに基づき、前記学習済みモデルをメモリ上に展開し、展開した前記学習済みモデルに基づいて演算処理を実行することを特徴とする。【選択図】図１
2019101807.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を実行する実行部と、
該実行部よりもセキュアなコンポーネントであって、機械学習により生成された学習済みモデルを展開するためのパラメータを格納するセキュア部と
を備え、
前記実行部は、
前記セキュア部から前記パラメータを取得し、
取得した前記パラメータに基づき、前記学習済みモデルをメモリ上に展開し、
展開した前記学習済みモデルに基づいて演算処理を実行する
ことを特徴とするデバイス。
【請求項２】
前記セキュア部は、耐タンパ性を有するセキュアエレメントである
ことを特徴とする請求項１に記載のデバイス。
【請求項３】
前記セキュア部は、前記実行部が処理を実行する実行環境とは異なる仮想領域であって、前記実行環境よりもセキュアなトラステッド実行環境であり、
前記実行部は、前記トラステッド実行環境から取得した前記パラメータに基づき、前記実行環境に前記学習済みモデルを展開する
ことを特徴とする請求項１に記載のデバイス。
【請求項４】
前記学習済みモデルに入力する入力値を取得する取得部を備え、
前記実行部は、前記入力値を前記学習済みモデルに入力して出力値を演算し、
演算結果を出力する出力部を備える
ことを特徴とする請求項１〜３のいずれか１項に記載のデバイス。
【請求項５】
運用者認証に必要な認証情報を取得する認証情報取得部を備え、
前記認証情報に基づく運用者認証に成功した場合、前記セキュア部は前記パラメータを出力する
ことを特徴とする請求項１〜４のいずれか１項に記載のデバイス。
【請求項６】
前記実行部が展開した前記学習済みモデルから、前記パラメータを抽出する抽出部と、
抽出した前記パラメータを前記セキュア部に出力するパラメータ出力部と
を備え、
前記セキュア部は、前記パラメータ出力部が出力した前記パラメータと、格納してある前記パラメータとを照合する
ことを特徴とする請求項１〜５のいずれか１項に記載のデバイス。
【請求項７】
前記パラメータ出力部は、前記パラメータを所定形式の値に変換して出力し、
前記セキュア部は、前記所定形式の値を照合する
ことを特徴とする請求項６に記載のデバイス。
【請求項８】
前記セキュア部は、前記パラメータの照合結果を前記実行部に通知し、
前記実行部は、通知された照合結果に応じて、前記学習済みモデルに基づく演算処理の実行の可否を判定する
ことを特徴とする請求項６又は７に記載のデバイス。
【請求項９】
前記セキュア部は、デバイスの動作状況を管理する管理装置に対し、前記パラメータの照合結果を通知する
ことを特徴とする請求項６〜８のいずれか１項に記載のデバイス。
【請求項１０】
前記セキュア部は、
前記パラメータと関連付けて、該パラメータに対応する前記学習済みモデルのバージョン情報を格納してあり、
前記バージョン情報を、デバイスの動作状況を管理する管理装置に通知し、
前記バージョン情報に応じて、最新の前記学習済みモデルに対応する前記パラメータを前記管理装置から取得し、
取得した前記パラメータを格納する
ことを特徴とする請求項１〜９のいずれか１項に記載のデバイス。
【請求項１１】
前記セキュア部は、
前記管理装置との間で、通信内容を暗号化した秘匿通信路を開設し、
該秘匿通信路を介してデータの送受信を行う
ことを特徴とする請求項９又は１０に記載のデバイス。
【請求項１２】
デバイスに搭載されるセキュアエレメントであって、
機械学習により生成された学習済みモデルを展開するために必要なパラメータを記憶する記憶部と、
前記学習済みモデルをメモリ上に展開し、該学習済みモデルに基づく演算処理を実行するデバイス本体に対して、前記パラメータを出力する出力部と
を備えることを特徴とするセキュアエレメント。
【請求項１３】
セキュアエレメントを搭載したコンピュータに、
機械学習により生成された学習済みモデルを展開するためのパラメータを格納する前記セキュアエレメントから、前記パラメータを取得し、
取得した前記パラメータに基づき、前記学習済みモデルを展開し、
展開した前記学習済みモデルに基づいて演算を行う
処理を実行させることを特徴とするプログラム。
【請求項１４】
コンピュータに、
機械学習により生成された学習済みモデルを展開するためのパラメータを、該学習済みモデルに基づく演算処理を実行する実行環境よりもセキュアなトラステッド実行環境に格納し、
該トラステッド実行環境から前記パラメータを取得し、
取得した前記パラメータに基づき、前記実行環境に前記学習済みモデルを展開し、
展開した前記学習済みモデルに基づいて演算を行う
処理を実行させることを特徴とするプログラム。
【請求項１５】
デバイスと、該デバイスの動作状況を管理する管理装置とを備えた情報処理システムであって、
前記デバイスは、
演算処理を実行する実行部と、
該実行部よりもセキュアなコンポーネントであって、機械学習により生成された学習済みモデルを展開するためのパラメータを格納するセキュア部と
を備え、
前記実行部は、
前記セキュア部から前記パラメータを取得し、
取得した前記パラメータに基づき、前記学習済みモデルをメモリ上に展開し、
展開した前記学習済みモデルに基づいて演算処理を実行し、
前記管理装置は、
前記セキュア部から、前記学習済みモデルに基づく前記デバイスの動作状況に関する情報と、該デバイスの識別情報とを取得する動作状況取得部と、
前記動作状況に関する情報を、前記識別情報と対応付けて記憶する記憶部と
を備えることを特徴とする情報処理システム。
【請求項１６】
前記デバイスは、
前記実行部が展開した前記学習済みモデルから、前記パラメータを抽出する抽出部と、
抽出した前記パラメータを前記セキュア部に出力するパラメータ出力部と
を備え、
前記セキュア部は、
前記パラメータ出力部が出力した前記パラメータと、格納してある前記パラメータとを照合し、
照合結果を前記管理装置に通知し、
前記動作状況取得部は、前記照合結果を取得し、
前記記憶部は、前記識別情報と対応付けて、前記照合結果を記憶する
ことを特徴とする請求項１５に記載の情報処理システム。
【請求項１７】
前記セキュア部は、
前記パラメータと関連付けて、該パラメータに対応する前記学習済みモデルのバージョン情報を格納してあり、
前記バージョン情報を前記管理装置に通知し、
前記動作状況取得部は、前記バージョン情報を取得し、
前記管理装置は、取得した前記バージョン情報に応じて、最新の前記学習済みモデルに対応する前記パラメータを送信する送信部を備え、
前記パラメータを送信した場合、前記記憶部は、前記デバイスにおいて前記学習済みモデルを更新した旨を示す更新情報を記憶し、
前記セキュア部は、
前記パラメータを前記管理装置から取得し、
取得した前記パラメータを格納する
ことを特徴とする請求項１５又は１６に記載の情報処理システム。
【請求項１８】
演算処理を実行する実行部と、該実行部よりもセキュアなコンポーネントであって、機械学習により生成された学習済みモデルを展開するためのパラメータを格納するセキュア部とを備えたデバイスに、
前記実行部が、
前記セキュア部から前記パラメータを取得し、
取得した前記パラメータに基づき、前記学習済みモデルをメモリ上に展開し、
展開した前記学習済みモデルに基づいて演算を行う
処理を実行させることを特徴とする情報処理方法。
【請求項１９】
前記セキュア部は、前記パラメータと関連付けて、該パラメータに対応する前記学習済みモデルのバージョン情報を格納してあり、
前記セキュア部が、
前記バージョン情報を、デバイスの動作状況を管理する管理装置に通知し、
前記バージョン情報に応じて、最新の前記学習済みモデルに対応する前記パラメータを前記管理装置から取得し、
取得した前記パラメータを格納する
ことを特徴とする請求項１８に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス、セキュアエレメント、プログラム、情報処理システム及び情報処理方法に関する。
【背景技術】
【０００２】
近年、ＩｏＴ（Internet of Things）技術が急速に普及し、様々なデバイスがインターネットに接続されるようになっている。一方で、インターネットに接続されるデバイスが拡大することによって、デバイスの脆弱性に起因するセキュリティ上の問題が顕在化している。
【０００３】
また、ＩｏＴに限らず、ディープラーニングに代表される機械学習への関心が高まっている。これに伴い、機械学習技術をＩｏＴに係るクラウドコンピューティングに適用し、データセンタであるクラウドサーバが機械学習を行って学習済みモデルを構築し、学習結果をＩｏＴデバイスに提供して種々の処理を行うシステムが検討されている（例えば特許文献１）。
【０００４】
一方で、クラウド上に全てのデータ及び機能を集約するクラウドコンピューティングでは、ユーザとクラウドサーバとの間の通信距離が長くなることから、レイテンシー（処理速度）の遅延が避けられないとの問題がある。この問題に対し、クラウドサーバが行う処理の一部を、よりユーザに近いクライアント側で行うことで、通信距離を短縮してレイテンシーを向上させるエッジコンピューティングの技術が注目を集めている。
【０００５】
上記の機械学習とエッジコンピューティングとの相補についても注目を集めている。すなわち、クライアントであるＩｏＴデバイスに機械学習演算の一部を委譲することで、クラウドコンピューティングに比べて演算結果を早くユーザに伝達する、という考え方である。例えばクラウドサーバが機械学習を行って学習結果をＩｏＴデバイスに配信し、ＩｏＴデバイスが学習結果である学習済みモデルをメモリ上に展開して、学習済みモデルに基づく種々の処理を実行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１７−１４２６５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述の如くＩｏＴデバイスでのセキュリティの問題から、デバイス上に展開された学習済みモデルを第三者により盗難、模倣される等の課題が顕在化するであろうことが予測される。
【０００８】
一つの側面では、機械学習結果を利用した処理を安全に実行することができるデバイス等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
一つの側面に係るデバイスは、演算処理を実行する実行部と、該実行部よりもセキュアなコンポーネントであって、機械学習により生成された学習済みモデルを展開するためのパラメータを格納するセキュア部とを備え、前記実行部は、前記セキュア部から前記パラメータを取得し、取得した前記パラメータに基づき、前記学習済みモデルをメモリ上に展開し、展開した前記学習済みモデルに基づいて演算処理を実行することを特徴とする。
【００１０】
一つの側面に係るセキュアエレメントは、デバイスに搭載されるセキュアエレメントであって、機械学習により生成された学習済みモデルを展開するために必要なパラメータを記憶する記憶部と、前記学習済みモデルをメモリ上に展開し、該学習済みモデルに基づく演算処理を実行するデバイス本体に対して、前記パラメータを出力する出力部とを備えることを特徴とする。
【００１１】
一つの側面に係るプログラムは、セキュアエレメントを搭載したコンピュータに、機械学習により生成された学習済みモデルを展開するためのパラメータを格納する前記セキュアエレメントから、前記パラメータを取得し、取得した前記パラメータに基づき、前記学習済みモデルを展開し、展開した前記学習済みモデルに基づいて演算を行う処理を実行させることを特徴とする。
【００１２】
一つの側面に係るプログラムは、コンピュータに、機械学習により生成された学習済みモデルを展開するためのパラメータを、該学習済みモデルに基づく演算処理を実行する実行環境よりもセキュアなトラステッド実行環境に格納し、該トラステッド実行環境から前記パラメータを取得し、取得した前記パラメータに基づき、前記実行環境に前記学習済みモデルを展開し、展開した前記学習済みモデルに基づいて演算を行う処理を実行させることを特徴とする。
【００１３】
一つの側面に係る情報処理システムは、デバイスと、該デバイスの動作状況を管理する管理装置とを備えた情報処理システムであって、前記デバイスは、演算処理を実行する実行部と、該実行部よりもセキュアなコンポーネントであって、機械学習により生成された学習済みモデルを展開するためのパラメータを格納するセキュア部とを備え、前記実行部は、前記セキュア部から前記パラメータを取得し、取得した前記パラメータに基づき、前記学習済みモデルをメモリ上に展開し、展開した前記学習済みモデルに基づいて演算処理を実行し、前記管理装置は、前記セキュア部から、前記学習済みモデルに基づく前記デバイスの動作状況に関する情報と、該デバイスの識別情報とを取得する動作状況取得部と、前記動作状況に関する情報を、前記識別情報と対応付けて記憶する記憶部とを備えることを特徴とする。
【００１４】
一つの側面に係る情報処理方法は、演算処理を実行する実行部と、該実行部よりもセキュアなコンポーネントであって、機械学習により生成された学習済みモデルを展開するためのパラメータを格納するセキュア部とを備えたデバイスに、前記実行部が、前記セキュア部から前記パラメータを取得し、取得した前記パラメータに基づき、前記学習済みモデルをメモリ上に展開し、展開した前記学習済みモデルに基づいて演算を行う処理を実行させることを特徴とする。
【発明の効果】
【００１５】
一つの側面では、機械学習結果を利用した処理を安全に実行することができる。
【図面の簡単な説明】
【００１６】
【図１】ＩｏＴシステムの構成例を示すブロック図である。
【図２】推論モデルの展開処理に関する説明図である。
【図３】推論モデルの基本構造に関する説明図である。
【図４】学習パラメータの適用処理に関する説明図である。
【図５】推論モデル展開処理の処理手順の一例を示すフローチャートである。
【図６】推論処理の処理手順の一例を示すフローチャートである。
【図７】動作管理ＤＢのレコードレイアウトの一例を示す説明図である。
【図８】検証処理に関する説明図である。
【図９】検証処理の処理手順の一例を示すフローチャートである。
【図１０】更新処理に関する説明図である。
【図１１】更新処理の処理手順の一例を示すフローチャートである。
【図１２】実施の形態４に係る更新処理を説明するための説明図である。
【図１３】実施の形態４に係る更新処理の処理手順の一例を示すフローチャートである。
【図１４】上述した形態のＩｏＴシステムの動作を示す機能ブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。
（実施の形態１）
図１は、ＩｏＴシステムの構成例を示すブロック図である。本実施の形態では、ＩｏＴ端末であるデバイス１に機械学習の成果物である推論モデル１２１をインストールし、デバイス１が推論モデル１２１を利用して、入力データから適切な出力データを推論する推論処理を行う形態について述べる。なお、本明細書において「推論」とは機械学習結果を利用した処理全般を表す文言として用い、「推論モデル」とは機械学習により生成された学習済みモデルを表す文言として用いる。
【００１８】
ＩｏＴシステムは、デバイス１と、サーバ３とを有する。デバイス１は、インターネットであるネットワークＮに接続された電子機器であり、例えば監視カメラ、車両に搭載されたＥＣＵ（Electronic Control Unit）、生産設備やインフラ設備の異常監視装置等、種々の機器であり得る。本実施の形態においてデバイス１は監視カメラであるものとして説明する。
【００１９】
サーバ３は、デバイス１の動作状況を管理する管理装置であり、ネットワークＮを介してデバイス１に通信接続されている。本実施の形態では、サーバ３が機械学習を行って推論モデル１２１を生成し、生成した推論モデル１２１のデータ（図１に示す最新モデル用パラメータ３４１）をデバイス１に配信する。デバイス１は、当該データに基づいて推論モデル１２１を自装置のメモリ上に展開し、推論処理を行う。例えばデバイス１が監視カメラである場合、デバイス１は撮像画像に含まれる物体が何であるかを推論（推定）し、推論結果をサーバ３等に通知する。
【００２０】
また、サーバ３は、推論モデル１２１に基づくデバイス１の動作状況に関するデータを収集し、データベース上でデバイス１の動作状況を管理する。なお、本実施の形態ではデバイス１側での処理について説明し、サーバ３の処理内容については実施の形態２以降で詳述する。
【００２１】
デバイス１は、デバイス本体１０と、セキュアエレメント（セキュア部）２０とを有する。デバイス本体１０は、ＳｏＣ（System on Chip）により構成され、デバイス１の多く又は全部の機能を実現するデバイス１の本体部分である。セキュアエレメント２０は、デバイス本体１０とは物理的又は論理的に分離されたハードウェアであり、外部からの攻撃に対して耐タンパ性を有するチップである。セキュアエレメント２０は内部に不揮発性メモリを有し、データを安全に保管する。なお、セキュアエレメント２０はＵＩＣＣ（Universal Integrated Circuit Card）のように、デバイス１に対して着脱自在な構成であってもよい。デバイス本体１０及びセキュアエレメント２０は、例えばＩＳＯ（International Organization Standardization）７８１６、ＳＰＩ（Serial Peripheral Interface）等の規格で相互に接続されている。
【００２２】
デバイス本体１０は、制御部１１、記憶部１２、入出力Ｉ／Ｆ１３、通信部１４、入力部１５、及び撮像部１６を備える。
制御部１１は、一又は複数のＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro-Processing Unit）、ＧＰＵ（Graphics Processing Unit）等の演算処理装置を有し、記憶部１２に記憶されたプログラムＰ１を読み出して実行することにより、デバイス１に係る種々の情報処理、制御処理を行う。記憶部１２は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等を有し、制御部１１が演算処理を実行するために必要なプログラムＰ１、その他のデータを記憶する。また、記憶部１２は、後述するように、セキュアエレメント２０に格納された推論モデル用パラメータ２４１に基づき構築した推論モデル１２１を記憶する。
【００２３】
入出力Ｉ／Ｆ１３は、セキュアエレメント２０と情報の入出力を行うためのインターフェイスであり、上述の如く、ＩＳＯ７８１６、ＳＰＩ等の規格で情報の入出力を行う。通信部１４は、インターネット通信に関する処理を行うための処理回路、アンテナ等を含み、ネットワークＮを介してサーバ３等と情報の送受信を行う。入力部１５は、ユーザから情報の入力を受け付ける入力インターフェイスであり、デバイス１の種類に応じて、例えばメカニカルキー、タッチパネル、音声入力マイク等、種々の形態であり得る。撮像部１６は、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサ等を有する撮像機構であり、画像の撮像を行う。
【００２４】
セキュアエレメント２０は、読出部２１、認証部２２、入出力Ｉ／Ｆ２３、及び記憶部２４を備える。
読出部２１は、記憶部２４からデータを読み出してデバイス本体１０に出力する。認証部２２は、後述するように、デバイス本体１０から入力される認証情報の確認を行う。入出力Ｉ／Ｆ２３は、デバイス本体１０の入出力Ｉ／Ｆ１３との間でデータの入出力を行う。記憶部２４は不揮発性メモリであり、後述するように、デバイス本体１０が推論モデル１２１を展開するために必要な推論モデル用パラメータ２４１を記憶している。
【００２５】
サーバ３は、制御部３１、主記憶部３２、通信部３３、及び補助記憶部３４を備える。
制御部３１は、一又は複数のＣＰＵ、ＭＰＵ等の演算装置を備え、サーバ３に係る種々の情報処理、制御処理を行う。主記憶部３２は、ＲＡＭ等の揮発性メモリであり、制御部３１が処理を実行する上で必要なデータを一時的に記憶する。通信部３３は、通信に関する処理を行う処理回路等を有し、ネットワークＮを介してデバイス１等と通信を行う。
【００２６】
補助記憶部３４は、大容量メモリ、ハードディスク等であり、サーバ３が処理を行うために必要なプログラムＰ２、その他のデータを記憶している。また、補助記憶部３４は、最新モデル用パラメータ３４１及び動作管理ＤＢ３４２を記憶している。最新モデル用パラメータ３４１は、デバイス１に配信する最新の推論モデル１２１のデータであり、デバイス１が推論モデル１２１を展開する上で必要なパラメータである。動作管理ＤＢ３４２は、デバイス１の動作状況を管理するデータベースである。
【００２７】
なお、補助記憶部３４はサーバ３に接続された外部記憶装置であってもよい。また、サーバ３は複数のコンピュータからなるマルチサーバであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【００２８】
図２は、推論モデル１２１の展開処理に関する説明図である。図２では、デバイス本体１０がセキュアエレメント２０から推論モデル用パラメータ２４１を読み出し、当該パラメータに基づいて推論モデル１２１をメモリ上に展開する様子を概念的に図示している。
上述の如く、セキュアエレメント２０は記憶部２４に、機械学習により生成された推論モデル１２１を展開するための推論モデル用パラメータ２４１を記憶している。本実施の形態において推論モデル１２１は、ディープラーニングにより生成されたニューラルネットワークであるものとして説明する。なお、機械学習のアルゴリズムはディープラーニングに限定されるものではなく、例えば回帰法、決定木学習、ベイズ法、クラスタリング等であってもよく、また、推論モデル１２１はニューラルネットワークに限定されるものではなく、線形モデル、決定木、ベイジアンネットワーク等であってもよい。
【００２９】
例えばサーバ３は、定期的に推論モデル１２１のアップデート（学習）を行い、最新モデル用パラメータ３４１をデバイス１に配信する。デバイス１は、サーバ３から配信された最新モデル用パラメータ３４１を、推論モデル用パラメータ２４１としてセキュアエレメント２０に格納しておく。なお、機械学習は、パラメータの配信元であるサーバ３が主体となって行うものでもよく、他のコンピュータが機械学習を行って学習結果をサーバ３に保存しておいてもよい。
【００３０】
推論モデル用パラメータ２４１は、ハイパーパラメータ２４１ａと、学習パラメータ２４１ｂと、バージョン情報２４１ｃとから成るデータ群である。ハイパーパラメータ２４１ａは、コンピュータに機械学習を行わせるために手動設定される設定値であり、推論モデル１２１の基本構造を一意に特定可能なパラメータである。例えば推論モデル１２１がニューラルネットワークである場合、ハイパーパラメータ２４１ａは、各ニューロン層に入力される入力数、各ニューロン層から出力される出力数、ニューロン間の層間結合、各ニューロンの演算処理に用いられる活性化関数等を指し示す情報である。
【００３１】
学習パラメータ２４１ｂは、ハイパーパラメータ２４１ａで規定されるネットワーク構造の下、機械学習によりコンピュータが学習した学習値である。例えば推論モデル１２１がニューラルネットワークである場合、学習パラメータ２４１ｂは、各ニューロンの重み付け係数、バイアス値等のパラメータである。サーバ３は、正解値付きの教師データの入力を受け、各ニューロンに適用する学習パラメータ２４１ｂを学習する。
なお、機械学習は教師なし学習、半教師学習等であってもよい。また、機械学習は強化学習であってもよく、この場合、推論モデル用パラメータ２４１はＱ値（Ｑ（ｓ，ａ）；ｓは状態、ａは行動）であってもよい。
【００３２】
バージョン情報２４１ｃは、推論モデル１２１のバージョン数を表す情報である。上述の如く、サーバ３は定期的に推論モデル１２１をアップデートし、最新モデル用パラメータ３４１を配信する。バージョン情報２４１ｃは、当該アップデートによるバージョン数を表す。
【００３３】
図２において符号Ｐ１〜Ｐ８で示す処理プロセスについて、順に説明する。なお、初期段階でデバイス本体１０には推論モデル１２１が未展開であるものとする。
例えばデバイス１の起動時、又は推論を伴うアプリケーションの動作開始時等に、デバイス本体１０の制御部１１は、セキュアエレメント２０に対して推論モデル用パラメータ２４１の読み出しを要求する（Ｐ１）。
【００３４】
読出要求を受け付けた場合、セキュアエレメント２０の読出部２１はまず、当該読出要求が正当なものであるか否か、運用者認証を行う。読出部２１は認証部２２に対し、運用者（デバイス１のユーザ等）の認証に必要な認証情報を確認するよう要求する（Ｐ２）。当該要求を受け付けた場合、認証部２２はデバイス本体１０に対し、認証情報の出力を要求する（Ｐ３）。
【００３５】
認証情報の出力要求を受け付けた場合、デバイス本体１０の制御部１１は、セキュアエレメント２０に対して認証情報を出力する（Ｐ４）。認証情報は例えば、入力部１５を介して入力されるＰＩＮ（Personal Identification Number）コード、パスワード、生体情報等である。なお、認証情報はこれらに限定されるものではなく、運用者の正当性を適切に確認することができればよい。認証部２２は認証情報を基に認証を行う。
【００３６】
認証に失敗した場合、セキュアエレメント２０は推論モデル用パラメータ２４１を出力せず、一連の処理を終了する。認証に成功した場合、認証部２２は認証が完了した旨をセキュアエレメント２０内に保持すると共に、認証が完了した旨をデバイス本体１０に通知する。
【００３７】
認証完了の通知を受けた場合、デバイス本体１０の制御部１１は再度、パラメータの読出要求を行う（Ｐ５）。読出要求を受け付けた場合、セキュアエレメント２０の読出部２１は、記憶部２４から推論モデル用パラメータ２４１を読み出す（Ｐ６）。読出部２１は、読み出したパラメータをデバイス本体１０に出力する（Ｐ７）。
【００３８】
デバイス本体１０の制御部１１は、セキュアエレメント２０から取得した当該パラメータに基づき、推論モデル１２１をメモリ上に展開する（Ｐ８）。具体的には以下に説明するように、制御部１１は、推論モデル用パラメータ２４１のうち、ハイパーパラメータ２４１ａに基づいてニューラルネットワークの基本構造を決定し、基本構造を決定したニューラルネットワークの各ニューロンに対して学習パラメータ２４１ｂを適用することで、推論モデル１２１を展開する。
【００３９】
図３は、推論モデル１２１の基本構造に関する説明図である。図３では、ハイパーパラメータ２４１ａに基づいてニューラルネットワークの基本構造を決定する様子を概念的に図示している。ハイパーパラメータ２４１ａは、各ニューロン層の入力数、出力数、層間結合等を規定するデータであり、ニューロン層毎に構造を一意に特定可能なように規定されている。
【００４０】
図３の例では、第０層（入力層）の入力数は「３」に規定されているため、デバイス本体１０の制御部１１は、入力値ｘ０〜ｘ２を想定する。また、第０層の出力数は「３」であるため、制御部１１は、ニューロンを３つ配置する。また、層間結合は「全結合」であるため、制御部１１は、第０層の全てのニューロンの出力値を、次の層（第１層）の全てのニューロンに対して入力する。さらに、第０層の活性化関数はＲｅＬＵ（Rectified Linear Unit）で定義されているため、制御部１１は、第０層の各ニューロンにおいて、ＲｅＬＵ関数を用いて出力値を演算する。
【００４１】
以下同様にして、制御部１１は、各ニューロン層における構造を決定する。これによって制御部１１は、図３に示すように、入力から出力に至るニューラルネットワークの基本構造を決定する。
【００４２】
図４は、学習パラメータ２４１ｂの適用処理に関する説明図である。図４では、図３で示したニューラルネットワークの基本構造に対し、機械学習結果に応じた学習パラメータ２４１ｂを適用する様子を図示している。
例えばセキュアエレメント２０には、ハイパーパラメータ２４１ａで規定する第０〜３層のニューロン層に対応して、各ニューロン層に適用する学習パラメータ２４１ｂが保持されている。具体的には、セキュアエレメント２０は各ニューロンに対して適用する重み付け係数、バイアス値等のパラメータを格納しており、制御部１１は、当該パラメータを各々のニューロンに対して適用する。
【００４３】
図２、図４の表では、「ｆｒｏｍ／ｔｏ」で示す表部分の値が重み付け係数に該当する。なお、「ｆｒｏｍ」は入力元である入力値ｘ０〜ｘ２、あるいは前層のニューロンを、「ｔｏ」は入力対象となるニューロンを示している。例えば第０層において、（ｆｒｏｍ，ｔｏ）＝（０，０）のとき、表の値は０．１である。この値は、０番目の入力（ｘ０）が０番目のニューロンに入力される際の重み付け係数を示している。従って、制御部１１は入力値ｘ０が０番目のニューロンに対して入力される際の重みを０．１として計算する。以下同様にして、制御部１１は、入力値ｘ０が１番目のニューロンに対して入力される際の重みを０．２、入力値ｘ０が２番目のニューロンに対して入力される際の重みを０．３、入力値ｘ１が０番目のニューロンに対して入力される際の重みを０．１、…として設定する。
【００４４】
また、図２、図４の表における「ｂｉａｓ」は、各ニューロンにおいて、重み付け係数を乗算後の入力値に対して加えるバイアス値を示す。例えば第０層におけるバイアス値は全て０．６である。従って、制御部１１は、バイアス値０．６を第０層の各ニューロンに対して設定する。
【００４５】
以下同様にして、制御部１１は第１〜３層のニューロン層についても、重み付け係数及びバイアス値を設定する。これによって制御部１１は、学習パラメータをネットワーク全体に展開し、入力値ｘ０〜ｘ２から出力値ｙ０〜ｙ２を演算するニューラルネットワークを生成する。
【００４６】
デバイス本体１０は、上記のようにして展開した推論モデル１２１（ニューラルネットワーク）を利用して、所定の推論処理を行う。詳細な図示及び説明は省略するが、例えばデバイス１が監視カメラである場合、デバイス本体１０は、撮像部１６で撮像した画像を入力データとして取得し、当該入力データを推論モデル１２１に入力して、画像内に含まれる物体を推定（推論）する処理を行う。デバイス本体１０は、撮像画像の各画素の色度、輝度等の値を入力値として推論モデル１２１に入力し、出力値を演算する。例えば出力値は、画像内に含まれる物体が、機械学習時にその特徴量を学習した特定の物体である確率を示す値である。デバイス本体１０は、当該出力値を、サーバ３やその他の装置に出力する。例えば画像から不審物を特定した場合、デバイス本体１０は、不審物を発見した旨を報知する。
【００４７】
上記のようにデバイス１は、デバイス本体１０とは物理的又は論理的に分離されたセキュアエレメント２０に推論モデル用パラメータ２４１を格納しておき、セキュアエレメント２０から推論モデル用パラメータ２４１を読み出して推論モデル１２１を展開する。デバイス本体１０よりセキュアなコンポーネントに推論モデル用パラメータ２４１を保持しておくことで、第三者による推論モデル１２１の盗難、模倣等の可能性を低減することができる。
【００４８】
なお、上記でデバイス１は、セキュアエレメント２０からハイパーパラメータ２４１ａ及び学習パラメータ２４１ｂの両方を読み出して推論モデル１２１を展開しているが、本実施の形態はこれに限定されるものではない。例えばデバイス１は、ハイパーパラメータ２４１ａはデバイス本体１０に保持しておき、学習パラメータ２４１ｂはセキュアエレメント２０に格納しておいて、デバイス本体１０がセキュアエレメント２０から学習パラメータ２４１ｂのみを読み出して推論モデル１２１を展開するようにしてもよい。このように、推論モデル用パラメータ２４１の一部のみをセキュアエレメント２０で保管するようにしてもよい。
【００４９】
図５は、推論モデル展開処理の処理手順の一例を示すフローチャートである。図５に基づき、デバイス１が実行する処理内容について説明する。
例えばデバイス１は、自装置の起動時、又は推論処理を伴うアプリケーションの起動時等、所定のタイミングで以下の処理を実行する。デバイス本体１０の制御部１１は、推論モデル１２１を展開するために必要なパラメータを保持するセキュアエレメント２０に対し、当該パラメータの読み出しを要求する（ステップＳ１１）。上述の如く、セキュアエレメント２０は耐タンパ性を有するチップであり、デバイス本体１０とは物理的に分離され、推論モデル用のパラメータを安全に保持する。
【００５０】
デバイス本体１０からパラメータの読出要求を受け付けた場合、セキュアエレメント２０は、デバイス本体１０に対し、運用者認証に必要な認証情報の出力を要求する（ステップＳ１２）。認証情報の出力要求を受け付けた場合、デバイス本体１０の制御部１１は、入力部１５を介して認証情報の入力を受け付け、セキュアエレメント２０に出力する（ステップＳ１３）。認証情報は、例えばＰＩＮコード、パスワード、生体情報等であるが、運用者の正当性を適切に確認可能な情報であればよい。
【００５１】
セキュアエレメント２０は、認証情報に基づく運用者認証を行う（ステップＳ１４）。セキュアエレメント２０は、運用者認証が成功したか否かを判定する（ステップＳ１５）。認証に失敗した場合（Ｓ１５：ＮＯ）、セキュアエレメント２０はパラメータの読み出しを行わず、一連の処理を終了する。認証が成功した場合（Ｓ１５：ＹＥＳ）、セキュアエレメント２０は推論モデル用パラメータ２４１を記憶部２４から読み出す（ステップＳ１６）。例えば推論モデル１２１がディープラーニングにより生成されるニューラルネットワークである場合、セキュアエレメント２０は、ニューラルネットワークの基本構造を規定するハイパーパラメータ２４１ａと、各ニューロン層に適用する学習パラメータ２４１ｂとを読み出す。セキュアエレメント２０は、読み出したパラメータをデバイス本体１０に出力する（ステップＳ１７）。
【００５２】
セキュアエレメント２０からパラメータの出力を受けた場合、デバイス本体１０の制御部１１は、当該パラメータに基づき、推論モデル１２１を記憶部１２に展開する（ステップＳ１８）。具体的には、制御部１１はハイパーパラメータ２４１ａに従ってニューラルネットワークを構築し、各ニューロンに学習パラメータ２４１ｂを適用して推論モデル１２１を展開する。制御部１１は、一連の処理を終了する。
【００５３】
図６は、推論処理の処理手順の一例を示すフローチャートである。図６に基づき、デバイス１が実行する推論処理の処理内容について説明する。
デバイス本体１０の制御部１１は、推論モデル１２１に入力する入力データを取得する（ステップＳ２１）。例えばデバイス１が監視カメラである場合、デバイス１の撮像部１６が画像を撮像する。制御部１１は、当該撮像画像を入力データとして取得する。なお、当然ながら入力データはデバイス１の種類に応じて異なり、例えばセンシングデバイスで検知したパラメータ、テキストデータ、音声データ等であってもよい。
【００５４】
制御部１１は、当該入力データを推論モデル１２１に入力して出力値を演算し、入力データから最適な出力データを推論する推論処理を実行する（ステップＳ２２）。例えば制御部１１は、撮像画像内の各画素データを入力値として推論モデル１２１に入力し、画像に含まれる物体が特定の物体である確率を出力値として計算することで、当該撮像画像に含まれる物体を推定（推論）する。制御部１１は、推論結果（演算結果）を出力し（ステップＳ２３）、一連の処理を終了する。
【００５５】
なお、上記でデバイス１は、デバイス本体１０とはハードウェア上分離されたセキュアエレメント２０を搭載し、セキュアエレメント２０に推論モデル用パラメータ２４１を格納しているが、本実施の形態はこれに限定されるものではない。例えばデバイス１は、デバイス１の基本的機能を実現する通常実行環境（いわゆるＲＥＥ；Rich Execution Environment）とはソフトウェア的に分離されたトラステッド実行環境（ＴＥＥ；Trusted Execution Environment）を用意しておき、トラステッド実行環境に推論モデル用パラメータ２４１を格納しておいてもよい。すなわちデバイス１は、汎用的なＯＳ、アプリケーションを実行する実行環境からは認識不可能な仮想領域を構築しておき、当該領域に推論モデル用パラメータ２４１を保存しておく。デバイス１は、トラステッド実行環境からパラメータを読み出し、通常実行環境に推論モデル１２１を展開して、推論処理に係る演算を行う。通常実行環境からは認識不可能であることから、当該構成によっても推論モデル用パラメータ２４１を安全に保管しておくことができる。
【００５６】
上記のように、デバイス１は、基本的、汎用的な演算処理を行うコンポーネント（実行部）と、当該コンポーネントよりもセキュアなコンポーネントとを備え、前者が後者からパラメータを読み出して推論モデル１２１をメモリ上に展開し、推論処理を実行することができればよい。上記セキュアなコンポーネントは、耐タンパ性を有するセキュアエレメント２０であってもよく、トラステッド実行環境のように、通常実行環境とは異なるセキュアな仮想領域であってもよい。
【００５７】
以上より、本実施の形態１によれば、デバイス１は、セキュアなコンポーネントに推論モデル用パラメータ２４１を格納しておき、当該セキュアなコンポーネントからパラメータを取得して推論モデル１２１を展開する。セキュアなコンポーネントにパラメータを保持しておくことで、第三者による盗難、模倣等を防止し、セキュリティ上の安全性を確保することができる。
【００５８】
また、本実施の形態１によれば、上記セキュアなコンポーネントとして、耐タンパ性を有するセキュアエレメント２０、あるいは通常実行環境（ＲＥＥ）よりセキュアなトランステッド実行環境（ＴＥＥ）を採用することができる。
【００５９】
また、本実施の形態１によれば、セキュアエレメント２０はパラメータをデバイス本体１０へ出力する前に運用者の認証を行うことから、安全性をさらに高めることができる。
【００６０】
（実施の形態２）
本実施の形態では、デバイス１がメモリ上に展開した推論モデル１２１の改竄防止等のため、推論モデル用パラメータ２４１の検証を行う形態について述べる。なお、実施の形態１と重複する内容については同一の符号を付して説明を省略する。
図７は、動作管理ＤＢ２４２のレコードレイアウトの一例を示す説明図である。動作管理ＤＢ２４２は、デバイスＩＤ列、最終更新日列、動作状況列を含む。デバイスＩＤ列は、サーバ３とパラメータを同期する各デバイス１を識別するための識別情報を記憶している。最終更新日列は、デバイスＩＤと対応付けて、各デバイス１が推論モデル用パラメータ２４１を更新した最終更新日時を記憶している。動作状況列は、デバイスＩＤと対応付けて、各デバイス１の動作の正常又は異常を検証した検証結果を記憶している。本実施の形態においてサーバ３は、デバイス１の動作状況に関する情報として後述するパラメータの照合結果を取得し、当該照合結果に応じて、デバイス１の動作の正常又は異常を動作管理ＤＢ３４２に格納する。
【００６１】
図８は、検証処理に関する説明図である。図８では、セキュアエレメント２０が、デバイス本体１０に展開済みの推論モデル１２１に適用されている推論モデル用パラメータ２４１を、自身が保持してあるパラメータと照合することで、推論モデル１２１の検証を行う様子を図示している。なお、図８では図示の便宜上、デバイス本体１０の入出力Ｉ／Ｆ１３、及びセキュアエレメント２０の入出力Ｉ／Ｆ２３を矩形点線で図示している。
【００６２】
本実施の形態に係るセキュアエレメント２０は、照合部２５、通信路開設部２６を備える。照合部２５は、デバイス本体１０から検証用に出力される推論モデル用パラメータ２４１と、セキュアエレメント２０の記憶部２４に格納されている推論モデル用パラメータ２４１との照合を行う。通信路開設部２６は、デバイス１とサーバ３との間の秘匿通信路４１の開設を行う。
【００６３】
図８において符号Ｐ２１〜Ｐ２８で示す処理プロセスについて、順に説明する。まずデバイス本体１０の制御部１１は、メモリ上に展開済みであり、現在動作している推論モデル１２１のデータから、推論モデル用パラメータ２４１を抽出する（Ｐ２１）。パラメータの抽出は、実施の形態１で述べた推論モデル１２１の展開処理と逆の手順で行えばよい。制御部１１は、抽出したパラメータを、セキュアエレメント２０が照合可能な所定形式の値に変換してセキュアエレメント２０に出力し、推論モデル１２１の照合を要求する（Ｐ２２）。具体的には、制御部１１はパラメータそのものではなく、パラメータをハッシュ値に変換した上で出力する。なお、パラメータの変換形式はハッシュ値に限定されるものではなく、第三者がパラメータを解析困難なように変換できればよい。
【００６４】
デバイス本体１０から照合要求を受け付けた場合、照合部２５は、セキュアエレメント２０で保持している推論モデル用パラメータ２４１を、デバイス本体１０から出力されたパラメータと照合し、一致するか否かを判定する（Ｐ２３）。例えば照合部２５は、上述の如くデバイス本体１０からハッシュ値で出力されるパラメータの比較を行う。パラメータが一致する場合、照合部２５は、推論モデル１２１が改竄等されておらず、正常に動作しているものと判断する。一方で、パラメータが不一致である場合、照合部２５は推論モデル１２１が改竄されているものと判断する。
【００６５】
照合部２５は、パラメータの照合結果（検証結果）をデバイス本体１０に通知する（Ｐ２４）。通知された照合結果がパラメータの不一致を示す場合、例えばデバイス本体１０の制御部１１は、推論モデル１２１に基づく推論処理を停止する。このように、デバイス本体１０は、セキュアエレメント２０におけるパラメータの照合結果に応じて推論処理の実行の可否を判定し、第三者による自装置の不正利用を防止する。
【００６６】
また、照合部２５はデバイス本体１０に対してだけでなく、サーバ３に対しても照合結果を通知する。具体的には、照合部２５は通信路開設部２６に対して、照合結果の通知を要求する（Ｐ２５）。通知要求を受け付けた場合、通信路開設部２６はまず、デバイス１とサーバ３との間で、エンドツーエンドの秘匿通信路４１を開設する（Ｐ２６）。秘匿通信路４１は、例えばＴＬＳ（Transport Layer Security）のプロトコルで通信内容を暗号化した通信路である。通信路開設部２６は、デバイス本体１０におけるネットワークＮとの通信インターフェイスである通信部１４を経由して、サーバ３との間の秘匿通信路４１を開設する。
【００６７】
なお、秘匿通信路４１は通信内容を秘匿可能であればよく、例えばＳＳＬ（Secure Sockets Layer）等のプロトコルを採用してもよい。また、上記ではデバイス本体１０の物理的な通信手段（通信部１４）を経由して秘匿通信路４１を確立しているが、セキュアエレメント２０がサーバ３との間で秘匿通信路４１を開設可能であればよく、セキュアエレメント２０自体が物理的な通信手段（ＬＡＮ、Ｗｉ−Ｆｉ（登録商標）等）を有する場合、セキュアエレメント２０はサーバ３との間で秘匿通信路４１を直接確立してもよい。
【００６８】
通信路開設部２６は秘匿通信路４１を介して照合結果をサーバ３に通知する（Ｐ２７）。具体的には、通信路開設部２６は、自装置に係るデバイスＩＤと、推論モデル用パラメータ２４１の一致又は不一致を示す照合結果とをサーバ３に通知する。サーバ３の制御部３１は、当該通知を受信した場合、デバイス１の動作状況が正常又は異常である旨を、デバイスＩＤと対応付けて動作管理ＤＢ３４２に記憶する（Ｐ２８）。以上より、サーバ３におけるデバイス１の遠隔監視も可能となり、例えば改竄防止のためデバイス１の遠隔制御を行う等、有効な対策を行うことができる。
【００６９】
なお、上記でセキュアエレメント２０は、パラメータの一致又は不一致に関わらず照合結果をデバイス本体１０及びサーバ３に通知しているが、パラメータが一致する場合は動作に問題がないことから、パラメータが不一致の場合のみ通知を行うようにしてもよい。
【００７０】
図９は、検証処理の処理手順の一例を示すフローチャートである。図９に基づき、実施の形態２に係るＩｏＴシステムが実行する処理内容について説明する。
デバイス本体１０の制御部１１は、メモリ（記憶部１２）上に展開済みの推論モデル１２１のデータから、推論モデル用パラメータ２４１を抽出する（ステップＳ３１）。制御部１１は、抽出したパラメータを所定形式の値（例えばハッシュ値）に変換する（ステップＳ３２）。制御部１１は、変換したパラメータをセキュアエレメント２０に出力し、当該パラメータの照合を要求する（ステップＳ３３）。
【００７１】
セキュアエレメント２０は、記憶部２４から推論モデル用パラメータ２４１を読み出し、デバイス本体１０から出力された推論モデル用パラメータ２４１と照合する（ステップＳ３４）。セキュアエレメント２０は、照合結果（検証結果）をデバイス本体１０に通知する（ステップＳ３５）。
【００７２】
デバイス本体１０の制御部１１は、セキュアエレメント２０から通知された照合結果を参照して、パラメータが不一致であるか否かを判定する（ステップＳ３６）。パラメータが不一致でないと判定した場合（Ｓ３６：ＮＯ）、制御部１１は、一連の処理を終了する。パラメータが不一致であると判定した場合（Ｓ３６：ＹＥＳ）、制御部１１は、推論モデル１２１に基づく処理動作を停止し（ステップＳ３７）、一連の検証処理を終了する。
【００７３】
ステップＳ３５を実行後、セキュアエレメント２０は、デバイス１とサーバ３との間の秘匿通信路４１を開設する（ステップＳ３８）。例えばセキュアエレメント２０は、サーバ３との間でＴＬＳのプロトコルにより通信内容を暗号化する秘匿通信路４１を開設する。セキュアエレメント２０は、秘匿通信路４１を介して、パラメータの照合結果をサーバ３に通知する（ステップＳ３９）。サーバ３の制御部３１は、セキュアエレメント２０（デバイス１）から通知された照合結果を、当該セキュアエレメント２０に係るデバイスＩＤと対応付けて動作管理ＤＢ３４２に記憶する（ステップＳ４０）。
【００７４】
以上より、本実施の形態２によれば、セキュアエレメント２０は、デバイス本体１０で稼働している推論モデル１２１のパラメータを、自身が保持するパラメータと照合することで、稼働中の推論モデル１２１の検証を行う。セキュアエレメント２０に保存されているパラメータに基づいて検証を行うことで、確実に検証を行うことができる。また、デバイス本体１０ではなく、セキュアエレメント２０内で検証を行うことで、検証結果自体の改竄も防止することができる。このように、デバイス１は第三者による推論モデル１２１の改竄等を検知することができ、安全性をより高めることができる。
【００７５】
また、本実施の形態２によれば、ハッシュ値等の形式に変換してパラメータの照合を行うことで、単純にパラメータの完全一致を確認する場合と比較して、検証に係る安全性を高めることができる。
【００７６】
また、本実施の形態２によれば、検証結果（照合結果）をサーバ３に通知し、サーバ３において検証結果を記憶しておくことで、サーバ３が生成した推論モデル１２１に基づいて稼働するデバイス１の遠隔監視等が可能となり、安全性をさらに高めることができる。
【００７７】
また、本実施の形態２によれば、秘匿通信路４１を介して検証結果を通知することで、第三者がサーバ３への動作状況の通知を妨害する、あるいは通知内容を改竄する等の事態を防止することができる。
【００７８】
（実施の形態３）
本実施の形態では、セキュアエレメント２０に格納されている推論モデル用パラメータ２４１を、最新モデル用パラメータ３４１に更新する形態について述べる。
図１０は、更新処理に関する説明図である。図１０では、セキュアエレメント２０がサーバ３との間で通信を行い、推論モデル用パラメータ２４１を更新する様子を概念的に図示している。なお、図１０では図示の便宜上、デバイス本体１０の通信部１４、及びサーバ３の通信部３３を矩形点線で図示している。
【００７９】
本実施の形態に係るセキュアエレメント２０は、更新部２７を備える。更新部２７は、サーバ３から最新モデル用パラメータ３４１を取得し、記憶部２４に格納してあるパラメータを更新する。
【００８０】
図１０において符号Ｐ３１〜Ｐ３８に示す処理プロセスについて、順に説明する。まずデバイス本体１０がセキュアエレメント２０に対し、推論モデル１２１が最新のデータに更新済みであるか否かをサーバ３に確認するよう要求する（Ｐ３１）。確認要求を受け付けた場合、セキュアエレメント２０の更新部２７は、通信路開設部２６に対して秘匿通信路４１の開設を要求する（Ｐ３２）。当該要求を受け付けた場合、通信路開設部２６は、秘匿通信路４１を開設する（Ｐ３３）。なお、秘匿通信路４１については実施の形態２と同様なので、ここでは説明を省略する。
【００８１】
更新部２７は、秘匿通信路４１を介してサーバ３に対しパラメータの更新要求を行う（Ｐ３４）。具体的には、更新部２７は、セキュアエレメント２０で保持している現在の推論モデル用パラメータ２４１のバージョン情報２４１ｃと、自装置に係るデバイスＩＤとを送信する。
【００８２】
セキュアエレメント２０（デバイス１）から更新要求を受け付けた場合、サーバ３は、要求元であるデバイス１において推論モデル１２１を更新済みであるか否かを判定する（Ｐ３５）。具体的には、サーバ３は、セキュアエレメント２０から送信されたバージョン情報２４１ｃと、最新モデル用パラメータ３４１のバージョン情報３４１ｃ（図１０参照）とを照合する。バージョン情報が最新のものと一致する場合、デバイス１の推論モデル１２１は最新モデルに更新済みであるため、サーバ３は特段の処理を行わず、一連の処理を終了する。一方、バージョン情報が最新のものと不一致の場合、サーバ３は最新モデル用パラメータ３４１を、秘匿通信路４１を介してデバイス１に送信する（Ｐ３６）。また、サーバ３は、最新モデル用パラメータ３４１を送信した場合、バージョン情報と共に受信したデバイスＩＤと対応付けて、デバイス１の推論モデル１２１を更新した旨を示す更新情報を動作管理ＤＢ３４２に記憶する（Ｐ３７）。例えばサーバ３は、現在の日時を最終更新日時として動作管理ＤＢ３４２に記憶する。なお、サーバ３は、更新された旨をデータベース上で格納することができればよく、例えば最新モデルのバージョン情報３４１ｃを記憶しておくなど、日時以外の情報を更新情報として記憶しておいてもよい。
【００８３】
セキュアエレメント２０の更新部２７は、サーバ３から送信された最新モデル用パラメータ３４１に記憶部２４に格納し、パラメータの更新を行う（Ｐ３８）。例えば更新部２７は、パラメータのダウンロード直後に当該パラメータをデバイス本体１０に出力し、デバイス本体１０は、当該パラメータを基に推論モデル１２１を更新（再構築）する。なお、パラメータのダウンロード直後に推論モデル１２１の更新を行うことなく、デバイス１の次回起動時、アプリケーションの次回実行時等、任意のタイミングで更新を行ってよい。以上より、ＩｏＴデバイスに格納されているデータを最新のものに更新することができ、陳腐化を防止する等、更新のニーズに応えることができる。
【００８４】
なお、上記ではデバイス本体１０からのリクエストに従って一連の処理を開始しているが、例えば実施の形態２に係る検証時に併せて更新を行う、あるいはサーバ３が動作管理ＤＢ３４２から古いバージョンで稼働しているデバイス１を検知し、サーバ３側からデバイス１側へパラメータの更新要求を行うなど、任意のタイミングでモデルの更新処理を開始してよい。
【００８５】
図１１は、更新処理の処理手順の一例を示すフローチャートである。図１１に基づき、本実施の形態に係るＩｏＴシステムが実行する処理内容について説明する。
デバイス本体１０の制御部１１は、推論モデル１２１の最新のモデルであるか否かをサーバ３に確認するよう、セキュアエレメント２０に要求する（ステップＳ６１）。当該要求を受け付けた場合、セキュアエレメント２０はサーバ３との間で秘匿通信路４１を開設する（ステップＳ６２）。セキュアエレメント２０は秘匿通信路４１を介して、推論モデル用パラメータ２４１の更新要求を行う（ステップＳ６３）。例えばセキュアエレメント２０は、上記のように、記憶部２４に格納してあるパラメータのバージョン情報２４１ｃと、自装置のデバイスＩＤとをサーバ３へ送信する。
【００８６】
更新要求を受け付けた場合、サーバ３の制御部３１は、更新要求を行ったデバイス１において推論モデル用パラメータ２４１を更新済みであるか否かを判定する（ステップＳ６４）。例えば制御部３１は、最新モデルのバージョン情報３４１ｃが、セキュアエレメント２０から送信されたバージョン情報２４１ｃと一致するか否かを判定する。更新済みであると判定した場合（Ｓ６４：ＹＥＳ）、制御部３１は一連の処理を終了する。
【００８７】
更新済みでないと判定した場合（Ｓ６４：ＮＯ）、制御部３１は秘匿通信路４１を介して、最新モデル用パラメータ３４１をセキュアエレメント２０に送信する（ステップＳ６５）。また、最新モデル用パラメータ３４１を送信した場合、制御部３１は、デバイス１の推論モデル１２１を更新した旨を示す更新情報を動作管理ＤＢ３４２に記憶し（ステップＳ６６）、一連の処理を終了する。
【００８８】
最新モデル用パラメータ３４１をサーバ３から受信した場合、セキュアエレメント２０は、当該パラメータを記憶部２４に格納し（ステップＳ６７）、一連の処理を終了する。
【００８９】
なお、上記ではバージョン情報２４１ｃ、３４１ｃがバージョン数、つまりバージョンを表す番号であるものとして図示及び説明を行ったが、本実施の形態はこれに限定されるものではない。例えばバージョン情報２４１ｃ、３４１ｃは、パラメータの更新が行われた日付等の時間を表す情報であってもよい。また、例えばサーバ３は、デバイス１に展開されている推論モデル１２１と、最新の推論モデル１２１とのハッシュ値の比較を行って最新バージョンであるか否かを判定するようにしてもよい。このように、サーバ３は推論モデル１２１の新旧を判定可能な情報に基づいて推論モデル用パラメータ２４１を更新することができればよく、バージョン情報２４１ｃ、３４１ｃは番号に限定されない。
【００９０】
以上より、本実施の形態３によれば、セキュアエレメント２０が最新モデル用パラメータ３４１をサーバ３から取得し、記憶部２４に格納しておくことで、推論モデル１２１の陳腐化等を防ぎ、適切に推論モデル１２１の更新を行うことができる。
【００９１】
また、本実施の形態３によれば、秘匿通信路４１を介してパラメータの授受を行うことで、安全性を確保しつつモデル更新を行うことができる。
【００９２】
また、実施の形態２、３で説明したように、サーバ３はセキュアエレメント２０から、パラメータの照合結果、バージョン情報等、デバイス１で現在稼働している推論モデル１２１の動作状況に関するデータを取得し、動作管理ＤＢ３４２に記憶する。これにより、サーバ３と推論モデル１２１を同期するデバイス１の動作状況を遠隔監視することができる。特に、デバイス１から送信される情報はセキュアエレメント２０が送信元であるデータであることから、通信経路の秘匿化も併せることで、信頼性の高い遠隔監視を行うことができる。
【００９３】
（実施の形態４）
実施の形態３では、デバイス１で稼働している推論モデル１２１を更新する形態について述べた。本実施の形態では、当該更新処理の実際的な運用形態について説明する。
図１２は、実施の形態４に係る更新処理を説明するための説明図である。図１２では、デバイス１の運用者（ユーザ）からの更新要求に従って、デバイス１内の推論モデル１２１を更新する様子を図示している。
【００９４】
図１２において符号５で示す装置は、デバイス１の運用者（ユーザ）が使用する運用者端末５である。本実施の形態においてサーバ３は、運用者端末５等を介して運用者から推論モデル１２１の更新要求を受け付け、当該更新要求があった場合に最新モデル用パラメータ３４１をデバイス１に配信する。
【００９５】
まずデバイス１のセキュアエレメント２０は、実施の形態３と同様にデバイス本体１０から推論モデル１２１の更新確認要求を受け付けた場合、あるいはサーバ３から最新モデルへの更新要求を受け付けた場合等、所定のタイミングでバージョン情報２４１ｃをサーバ３に送信する。サーバ３は、デバイス１から送信されたバージョン情報２４１ｃを最新モデルのバージョン情報３４１ｃと比較し、デバイス１が最新モデルへ更新済みであるか否かを確認する。
【００９６】
未更新である場合、サーバ３は、最新モデルへの更新を行うか否かを運用者に確認するため、運用者端末５へ所定のアップデート通知を行う。なお、サーバ３はアップデート対象であるデバイス１自体に通知を行ってもよい。
【００９７】
運用者は運用者端末５を介してアップデート通知を受け取り、運用しているデバイス１の推論モデル１２１を更新するか否かをサーバ３へ返信する。更新する旨の返信を受信し、推論モデル１２１の更新要求を受け付けた場合、サーバ３は、最新モデル用パラメータ３４１をデバイス１に送信する。
【００９８】
この場合にサーバ３は、推論モデル１２１を更新する対価として、所定のアップデート料金の支払いを運用者に対して要求しても良い。例えばサーバ３は、デバイスＩＤと対応付けて、運用者の情報（個人名、会社名等の名前や住所など）、アップデート料金の支払方法（口座番号、引き落とし設定等）などを動作管理ＤＢ３４２に記憶しておく。サーバ３は、運用者から更新要求を受け付け、パラメータの配信を行った後、当該情報に従ってアップデート料金の支払請求処理を実行する。例えばサーバ３は、クレジット会社等のサーバ装置、あるいはその他の装置に対して、顧客（運用者）、支払額等を示す情報を通知し、アップデート料金の支払いを請求する。
【００９９】
なお、本実施の形態では推論モデル１２１のアップデートの対価として料金の請求を行うことにしたが、料金の請求処理は必須ではなく、例えば不具合対応時等のように、無償でアップデートを行ってもよい。また、請求処理を実行するタイミングはパラメータの配信後に限定されず、例えばパラメータの配信前に請求処理を行って決済が完了してからパラメータを配信する等、任意のタイミングで実行して良い。
【０１００】
図１３は、実施の形態４に係る更新処理の処理手順の一例を示すフローチャートである。図１３に基づき、実施の形態４に係る更新処理の内容について説明する。
デバイス１のセキュアエレメント２０は、記憶部２４に格納してある推論モデル用パラメータ２４１のバージョン情報２４１ｃを読み出し、サーバ３に送信する（ステップＳ８１）。例えばセキュアエレメント２０は、実施の形態３と同様に、デバイス本体１０からの要求をトリガとしてバージョン情報を送信する。
【０１０１】
デバイス１からバージョン情報２４１ｃを取得した場合、サーバ３の制御部３１は、当該バージョン情報２４１ｃを最新モデルのバージョン情報３４１ｃと比較して、デバイス１の推論モデル１２１が最新モデルに更新済みであるか否かを判定する（ステップＳ８２）。更新済みであると判定した場合（Ｓ８２：ＹＥＳ）、制御部３１は一連の処理を終了する。
【０１０２】
更新済みでないと判定した場合（Ｓ８２：ＮＯ）、制御部３１は、デバイス１の推論モデル１２１を更新するか否かを運用者に確認するアップデート通知を行う（ステップＳ８３）。例えば制御部３１は、運用者が使用する運用者端末５等に通知してもよく、あるいはアップデート対象であるデバイス１自体に通知してもよい。
【０１０３】
制御部３１は、運用者から推論モデル１２１の更新要求を受け付ける（ステップＳ８４）。制御部３１は、更新要求があったか否かを判定する（ステップＳ８５）。更新要求がなかったと判定した場合（Ｓ８５：ＮＯ）、制御部３１は一連の処理を終了する。更新要求があったと判定した場合（Ｓ８５：ＹＥＳ）、制御部３１は、最新モデル用パラメータ３４１をデバイス１に送信する（ステップＳ８６）。デバイス１のセキュアエレメント２０は、当該パラメータを取得して記憶部２４に格納し（ステップＳ８７）、一連の処理を終了する。
【０１０４】
最新モデル用パラメータ３４１を送信した後（ステップＳ８６）、サーバ３の制御部３１は、推論モデル１２１の更新に伴うアップデート料金の支払いを運用者に対して請求する請求処理を実行する（ステップＳ８８）。例えばサーバ３は、動作管理ＤＢ３４２において、デバイスＩＤと対応付けて運用者の情報、支払方法等を格納しておく。サーバ３は、当該支払方法に従って、例えばクレジット会社のサーバ装置等に対し、顧客（運用者）、支払額等を示す請求通知を送信する。制御部３１は、一連の処理を終了する。
【０１０５】
以上より、本実施の形態４によれば、サーバ３は、セキュアエレメント２０からバージョン情報２４１ｃを取得し、バージョン情報２４１ｃに応じてデバイス１の推論モデル１２１が最新モデルに更新済みであるか否かを判定し、更新済みでないと判定した場合、デバイス１の運用者に更新を行うか否かを確認するアップデート通知を行う。サーバ３は、運用者から更新すべき旨の更新要求を受け付けた場合、最新モデル用パラメータ３４１をデバイス１のセキュアエレメント２０に送信する。また、最新モデル用パラメータ３４１を送信する場合、サーバ３は、更新の対価であるアップデート料金を運用者に請求する請求処理を実行する。これにより、推論モデル１２１を生成するために投入したコンピュータリソースの投入コストを補うことができ、商業的、実務的な面で本システムの実際的な運用を実現することができる。
【０１０６】
なお、上記では推論モデル１２１の更新をデータ配信により行っているが、本実施の形態はこれに限定されるものではない。例えばセキュアエレメント２０が着脱自在なＵＩＣＣ等のチップである場合、推論モデル１２１の更新は、新規のセキュアエレメント２０を発行することで行ってもよい。例えばサーバ３は、デバイス１の運用者に対してアップデート通知を行い、アップデート料金の支払いを受けた場合、最新モデル用パラメータ３４１を格納したセキュアエレメント２０を発行するよう、セキュアエレメント２０の発行者に通知する。例えばサーバ３は、顧客（運用者）の情報、バージョン情報、及び発行を許可する旨の許可情報を、発行者のサーバ又はその他の装置に送信する。上記の構成であっても、データ配信を行う場合と同様の効果を奏する。
【０１０７】
（実施の形態５）
図１４は、上述した形態のＩｏＴシステムの動作を示す機能ブロック図である。制御部１１がプログラムＰ１を実行することにより、デバイス１は以下のように動作する。実行部１４１は、演算処理を実行する。セキュア部１４２は、該実行部１４１よりもセキュアなコンポーネントであって、機械学習により生成された学習済みモデルを展開するためのパラメータを格納する。実行部１４１は、前記セキュア部１４２から前記パラメータを取得し、取得した前記パラメータに基づき、前記学習済みモデルをメモリ上に展開し、展開した前記学習済みモデルに基づいて演算処理を実行する。
【０１０８】
また、制御部３１がプログラムＰ２を実行することにより、サーバ３は以下のように動作する。動作状況取得部１４３は、前記セキュア部１４２から、前記学習済みモデルに基づく前記デバイス１の動作状況に関する情報と、該デバイス１の識別情報とを取得する。記憶部１４４は、前記動作状況に関する情報を、前記識別情報と対応付けて記憶する。
【０１０９】
本実施の形態５は以上の如きであり、その他は実施の形態１から４と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。
【０１１０】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１１】
１  デバイス
１０  デバイス本体
１２１  推論モデル（学習済みモデル）
２０  セキュアエレメント（セキュア部）
２４１  推論モデル用パラメータ
３  サーバ（管理装置）
３４１  最新モデル用パラメータ
３４２  動作管理ＤＢ
【図１】
2019101807.tif 000003
【図２】
2019101807.tif 000004
【図３】
2019101807.tif 000005
【図４】
2019101807.tif 000006
【図５】
2019101807.tif 000007
【図６】
2019101807.tif 000008
【図７】
2019101807.tif 000009
【図８】
2019101807.tif 000010
【図９】
2019101807.tif 000011
【図１０】
2019101807.tif 000012
【図１１】
2019101807.tif 000013
【図１２】
2019101807.tif 000014
【図１３】
2019101807.tif 000015
【図１４】
2019101807.tif 000016