(57)【要約】ＩｏＴデバイスの性能の差異や変動を考慮してＩｏＴシステムのパフォーマンスを向上させる。ＩｏＴ（Internet of Things）デバイスと通信可能な通信部と制御部を具備する情報処理装置である。制御部は、ＩｏＴデバイスから受信した当該ＩｏＴデバイスの状態又は周囲の環境に関するＩｏＴデバイス提供情報に基づいて、学習済みニューラルネットワークを最適化し、当該最適化した学習済みニューラルネットワークの実行ファイルを前記ＩｏＴデバイスへ送信する。【選択図】図６
2019235311.tif 000002
【特許請求の範囲】
【請求項１】
ＩｏＴ（Internet of Things）デバイスと通信可能な通信部と、
ＩｏＴデバイスから受信した当該ＩｏＴデバイスの状態又は周囲の環境に関するＩｏＴデバイス提供情報に基づいて、学習済みニューラルネットワークを最適化し、当該最適化した学習済みニューラルネットワークの実行ファイルを前記ＩｏＴデバイスへ送信する制御部と
を具備する情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記制御部は、前記ＩｏＴデバイス提供情報と、複数の最適化後の学習済みニューラルネットワークとの対応関係に基づいて、前記ＩｏＴデバイスから受信した前記ＩｏＴデバイス提供情報に対応する前記学習済みニューラルネットワークを選択する
情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記ＩｏＴデバイス提供情報は、前記ＩｏＴデバイスにインストールされた前記学習済みニューラルネットワークに当該ＩｏＴデバイスの状態及び／又は周囲の環境を入力して得られる出力に基づく情報を含み、
前記制御部は、前記出力に基づく情報に基づいて複数の最適化後の前記学習済みニューラルネットワークのうちの一つを選択する
情報処理装置。
【請求項４】
請求項１に記載の情報処理装置であって、
前記ＩｏＴデバイス提供情報は、複数の最適化後の前記学習済みニューラルネットワークのうちの一つを指定する情報を含み、
前記通信部は、前記指定された最適化後の前記学習済みニューラルネットワークを送信する
情報処理装置。
【請求項５】
請求項１に記載の情報処理装置であって、
前記制御部により最適化された前記学習済みニューラルネットワークを記憶するキャッシュをさらに有し、
前記通信部は、異なる複数の前記ＩｏＴデバイスからそれぞれ受信した前記ＩｏＴデバイス提供情報に応じた同一の最適化後の前記学習済みニューラルネットワークが、前記キャッシュに記憶されている場合、当該異なる複数の前記ＩｏＴデバイスそれぞれに、前記キャッシュが記憶する当該同一の最適化後の前記学習済みニューラルネットワークを送信する
情報処理装置。
【請求項６】
請求項１に記載の情報処理装置であって、
前記制御部は、前記学習済みニューラルネットワークの分類器としての性能及び／又は精度を低下させることにより、前記学習済みニューラルネットワークを最適化する
情報処理装置。
【請求項７】
請求項６に記載の情報処理装置であって、
前記学習済みニューラルネットワークは、前記ＩｏＴデバイスの状態又は周囲の環境からの入力情報から特徴量を抽出し、抽出した特徴量に基づいて、前記入力情報を複数の種別に分類し、
前記制御部は、前記学習済みニューラルネットワークが分類する種別の数を減少させることで、分類器としての性能及び／又は精度を低下させる
情報処理装置。
【請求項８】
ＩｏＴ（Internet of Things）デバイスから受信した当該ＩｏＴデバイスの状態及び／又は周囲の環境に関する情報に基づいて、学習済みニューラルネットワークを最適化し、
前記ＩｏＴデバイスに最適化した前記学習済みニューラルネットワークを送信する
情報処理方法。
【請求項９】
コンピュータに、
ＩｏＴ（Internet of Things）デバイスから受信した当該ＩｏＴデバイスの状態及び／又は周囲の環境に関する情報に基づいて、学習済みニューラルネットワークを最適化するステップと、
前記ＩｏＴデバイスに最適化した前記学習済みニューラルネットワークを送信するステップと
を実行させるプログラム。
【請求項１０】
学習済みニューラルネットワークがインストールされたＩｏＴ（Internet of Things）デバイスであって、
情報処理装置と通信可能な通信部と、
当該ＩｏＴデバイスの状態及び／又は周囲の環境に応じた学習済みニューラルネットワークを選択し、
前記選択された学習済みニューラルネットワークの最適化及び当該最適化後のニューラルネットワークの実行ファイルの送信を要求する要求信号を前記情報処理装置へ送信し、
受信した最適化後の前記学習済みニューラルネットワークの実行ファイルを用いて前記インストールされた学習済みニューラルネットワークを更新する制御部と、
を具備するＩｏＴデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法、プログラム及びＩｏＴデバイスに関し、ＩｏＴシステム全体としてのパフォーマンスを向上させる技術に関する。
【背景技術】
【０００２】
特許文献１は、小型情報機器の技術分野において、ダウンロードプログラムのサイズを最適化することを課題とした技術である。特許文献１には、当該課題を解決するために、ユーザの入力したユーザプロファイルデータに基づいて、不必要なモジュールを切り離すことが示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２１６４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
いわゆる「モノのインターネット」（ＩｏＴ：Internet of Things）と呼ばれるネットワーク（以下、「ＩｏＴシステム」と呼ぶ）においては、あらゆるものが末端デバイス（以下、「ＩｏＴデバイス」と呼ぶ）として接続することが構想されている。そうすると、物理的サイズなどの制限により演算装置やメモリなどの性能が劣るデバイスもＩｏＴに接続する可能性がある。また、各デバイスの性能も固定的なものではなく、バッテリ残量や温度などの要因で変動する。【０００５】
背景技術は、各ＩｏＴデバイスの性能の差異や変動に対応して、ＩｏＴデバイスが実行するプログラムを最適化する課題を十分に解決していない。特許文献１に開示された技術では、通常のソースコードを最適化の対象にしているので、サイズを小さくする程度のことしかしていない。また、ユーザの入力がトリガであるため、ユーザが操作しない限り最適化は行われない。【０００６】
以上のような事情に鑑みてなされた本技術の目的は、ＩｏＴデバイスの性能の差異や変動を考慮してＩｏＴシステムのパフォーマンスを向上させる情報処理装置、情報処理方法、プログラム及びＩｏＴデバイスを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成する本技術の一態様は、ＩｏＴ（Internet of Things）デバイスと通信可能な通信部と制御部を具備する情報処理装置である。
上記制御部は、ＩｏＴデバイスから受信した当該ＩｏＴデバイスの状態又は周囲の環境に関するＩｏＴデバイス提供情報に基づいて、学習済みニューラルネットワークを最適化し、当該最適化した学習済みニューラルネットワークの実行ファイルを前記ＩｏＴデバイスへ送信する。【０００８】
上記本技術の一態様によれば、ＩｏＴシステムにおける情報処理装置において、ＩｏＴデバイスから受信した当該ＩｏＴデバイスの状態及び／又は周囲の環境に関するＩｏＴデバイス提供情報に基づく学習済みニューラルネットワークの最適化が行われる。そのため、ＩｏＴデバイスの性能の差異や変動を考慮してＩｏＴシステムのパフォーマンスを向上させることができる。【０００９】
上記情報処理装置において、上記制御部は、上記ＩｏＴデバイス提供情報と、複数の最適化後の学習済みニューラルネットワークとの対応関係に基づいて、上記ＩｏＴデバイスから受信した上記ＩｏＴデバイス提供情報に対応する上記学習済みニューラルネットワークを選択してもよい。【００１０】
上記情報処理装置によれば、あらかじめ定められた対応関係に基づいて最適化後の学習済みニューラルネットワークが選択されるので、効率のよい最適化が可能になる。【００１１】
上記情報処理装置において、上記ＩｏＴデバイス提供情報は、上記ＩｏＴデバイスにインストールされた上記学習済みニューラルネットワークに当該ＩｏＴデバイスの状態及び／又は周囲の環境を入力して得られる出力に基づく情報を含み、上記制御部は、上記出力に基づく情報に基づいて複数の最適化後の上記学習済みニューラルネットワークのうちの一つを選択してもよい。【００１２】
上記情報処理装置によれば、学習済みニューラルネットワークの出力結果に基づいて当該学習済みニューラルネットワークが最適化されるので、より一層ＩｏＴデバイスの性能を引き出すことができるようになり、ＩｏＴシステム全体のパフォーマンスも向上する。【００１３】
上記情報処理装置において、上記ＩｏＴデバイス提供情報は、複数の最適化後の上記学習済みニューラルネットワークのうちの一つを指定する情報を含み、上記通信部は、上記指定された最適化後の上記学習済みニューラルネットワークを送信してもよい。【００１４】
上記情報処理装置によれば、ＩｏＴデバイスから情報処理への通信は、既存の最適化後の学習済みニューラルネットワークの一つを指定する内容で足りるので、通信量を少なくすることが可能になる。【００１５】
上記情報処理装置は、上記制御部により最適化された上記学習済みニューラルネットワークを記憶するキャッシュをさらに有してもよい。
この場合、上記通信部は、異なる複数の上記ＩｏＴデバイスからそれぞれ受信した上記ＩｏＴデバイス提供情報に応じた同一の最適化後の上記学習済みニューラルネットワークが、上記キャッシュに記憶されている場合、当該異なる複数の上記ＩｏＴデバイスそれぞれに、上記キャッシュが記憶する当該同一の最適化後の上記学習済みニューラルネットワークを送信してもよい。【００１６】
上記情報処理装置によれば、情報処理装置における最適化の処理を都度行う必要がなくなるため計算量を抑えることができる。【００１７】
上記情報処理装置において、上記制御部は、上記学習済みニューラルネットワークの分類器としての性能及び／又は精度を低下させることにより、上記学習済みニューラルネットワークを最適化してもよい。【００１８】
上記情報処理装置によれば、ＩｏＴデバイスにおける計算量が抑えられることにより、ＩｏＴデバイスにおける消費電力量や発熱量を抑えることができるようになる。【００１９】
上記情報処理装置において、上記学習済みニューラルネットワークは、上記ＩｏＴデバイスの状態及び／又は周囲の環境からの入力情報から特徴量を抽出し、抽出した特徴量に基づいて、前記入力情報を複数の種別に分類し、上記制御部は、上記学習済みニューラルネットワークが分類する複数の種別の数を減少させることで、分類器としての性能及び／又は精度を低下させてもよい。【００２０】
上記情報処理装置によれば、ＩｏＴデバイスにおける計算量が抑えられることにより、ＩｏＴデバイスにおける消費電力量や発熱量を抑えることができるようになる。【００２１】
上記目的を達成する本技術の別の一形態は、ＩｏＴ（Internet of Things）デバイスから受信した当該ＩｏＴデバイスの状態及び／又は周囲の環境に関する情報に基づいて、学習済みニューラルネットワークを最適化し、上記ＩｏＴデバイスに最適化した上記学習済みニューラルネットワークを送信する情報処理方法である。【００２２】
上記目的を達成する本技術の別の一形態は、コンピュータに、ＩｏＴ（Internet of Things）デバイスから受信した当該ＩｏＴデバイスの状態及び／又は周囲の環境に関する情報に基づいて、学習済みニューラルネットワークを最適化するステップと、上記ＩｏＴデバイスに最適化した上記学習済みニューラルネットワークを送信するステップを実行させるためのプログラムである。【００２３】
上記目的を達成する本技術の別の一形態は、学習済みニューラルネットワークがインストールされたＩｏＴ（Internet of Things）デバイスである。
上記ＩｏＴデバイスは、情報処理装置と通信可能な通信部と制御部を具備する。
上記制御部は、当該ＩｏＴデバイスの状態及び／又は周囲の環境に応じた学習済みニューラルネットワークを選択する。
上記制御部は、前記選択された学習済みニューラルネットワークの最適化及び当該最適化後のニューラルネットワークの実行ファイルの送信を要求する要求信号を前記情報処理装置へ送信する。
上記制御部は、受信した最適化後の前記学習済みニューラルネットワークの実行ファイルを用いて前記インストールされた学習済みニューラルネットワークを更新する。
【発明の効果】
【００２４】
以上のように、本技術によれば、ＩｏＴデバイスの性能の差異や変動を考慮してＩｏＴシステムのパフォーマンスを向上させることが可能になる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００２５】
【図１】第１の実施形態に係るシステムのネットワーク構成の概念図である。
【図２】第１の実施形態の変換サーバ１００等のハードウェア構成例である。
【図３】第１の実施形態のＩｏＴデバイス２００のハードウェア構成例である。
【図４】第１の実施形態に係るシステムの機能ブロック図である。
【図５】第１の実施形態におけるＤＮＮを説明するための概念図である。
【図６】第１の実施形態に係るＤＮＮ更新の情報処理の手順例を示すフロー図である。
【図７】第２の実施形態に係るＤＮＮ更新の情報処理の手順例を示すフロー図である。
【図８】第３の実施形態に係るＤＮＮ更新の情報処理の手順例を示すフロー図である。
【図９】第３の実施形態における対応表の一例を示す図である。
【図１０】第３の実施形態における最適化済みのＤＮＮを例示する図である。
【図１１】上記実施形態において使用されるＤＮＮであって、１つのＤＮＮから異なる最適化が施されて別々の種別となったＤＮＮの一例を示す図である。
【図１２】第４の実施形態に係るＤＮＮ更新の情報処理の手順例を示すフロー図である。
【発明を実施するための形態】
【００２６】
以下、本技術に係る実施形態を、図面を参照しながら説明する。
【００２７】
〔第１の実施形態〕
本実施形態では、クラウドとエッジで構成されるＩｏＴシステムの一例が開示される。当該ＩｏＴシステム１（図１）のエッジ側デバイスとして用いられるＩｏＴデバイス２００は、実行ファイル形式に変換された、学習済みニューラルネットワーク（以下、「ＤＮＮ」と呼ぶ。ＤＮＮは"Deep Neural Network"の略である。）がインストールされている。
【００２８】
上記ＤＮＮは、分類器として機能する。そのようなＤＮＮは、認識精度が高ければ高いほど計算量が多くなる。また、それに伴い、消費電力も多くなる。ところが、ＩｏＴデバイス２００の性能には、複数のデバイス間で差異がある。また、一つのＩｏＴデバイス２００の中でも、バッテリ残量などの要因により、一時的に性能が低下したり向上したりする。さらに、ＩｏＴデバイス２００が稼動している場所の環境（例えば、温度や湿度）によっても、そのＩｏＴデバイス２００が発揮できる性能は変動する。
【００２９】
ＩｏＴデバイス２００が低い性能しか提供できない状況にあるにもかかわらず、ＤＮＮの認識精度が高い場合、当該ＩｏＴデバイス２００は良好なパフォーマンスで動作せず、ＩｏＴシステム１全体としてのパフォーマンスは低下する。あるいは逆に、ＩｏＴデバイス２００が高い性能を提供できる状況にあるにもかかわらず、ＤＮＮの認識精度が低い場合も、ＩｏＴシステム１全体としてのパフォーマンスは低下する。ＩｏＴデバイス２００の状況に応じてＤＮＮを最適化することが本実施形態の課題である。
【００３０】
〔システム構成〕
図１は、本実施形態に係るシステム（ＩｏＴシステム１）のネットワーク構成の概念図である。ＩｏＴシステム１は、「クラウド」と「エッジ」をそれぞれ構成するサーバコンピュータ群とＩｏＴデバイス２００群を有するクラウド−エッジ型システムである。ＩｏＴシステム１はさらに、「フォグ」というクラウドとエッジの中間に位置するサーバ層を有する。
ＩｏＴシステム１においては、クラウドに近いほうのノードが上位、エッジに近いほうのノードが下位になる。
【００３１】
ＩｏＴシステム１は、本技術を限定するものではないが一例として、ＤＮＮ配布サーバ３００、アプリケーションサーバ３１０、変換サーバ１００、ＩｏＴデバイス２００を含む。ＤＮＮ配布サーバ３００とアプリケーションサーバ３１０は、クラウドに位置する。変換サーバ１００は、本実施形態においてはフォグに位置させるものとするが、クラウドに位置させてもよい。
【００３２】
上述のように本実施形態では、学習済みニューラルネットワークの一例としてのＤＮＮ（Deep Neural Network）がＩｏＴデバイス２００で動作するよう構成される。しかしながら、ＩｏＴデバイスは直接ＤＮＮを実行することができないので、ＤＮＮは実行ファイルに変換される必要がある。
【００３３】
ＩｏＴデバイス２００は、変換済みの実行ファイルをクラウドからダウンロードして実行してもよい。これに対して本実施形態では、フォグにおかれた変換サーバ１００が各ＩｏＴデバイス２００に最適化された実行ファイルを生成する。
【００３４】
このとき、例えば、各ＩｏＴデバイス２００のバッテリ残量や温度などの情報が、各ＩｏＴデバイス２００から送信され、変換サーバ１００が状況に応じて最適化の方針を変える。これにより、よりＩｏＴデバイス２００の性能を引き出せる実行ファイルが生成される。また、状況が変化した際には最適化が再実行される。これにより、常に最高性能が維持される。
【００３５】
また、ＩｏＴシステム１は、１つのＤＮＮを１つのＤＮＮ配布サーバ３００傘下の複数の変換サーバ１００で共有できるので、システム全体としてコストを抑えることができる。
【００３６】
図１において、ＤＮＮ配布サーバ３００は、変換サーバ１００からの要求に応じてＤＮＮファイルを送信する。アプリケーションサーバ３１０は、ＩｏＴデバイス２００からの出力（分類器や認識器としてのＤＮＮの認識結果等が含まれる）を受信して、それを記録する。
【００３７】
変換サーバ１００は、クラウド側及び／又はフォグ側に配置されていてもよい。本実施形態ではフォグに配置される。変換サーバ１００は、ＤＮＮファイルをＩｏＴデバイス２００が実行できるファイルに変換する。ここで言う変換は、限定するものではないが、プログラムのコンパイルと同様の情報処理であってもよい。
【００３８】
ＩｏＴデバイス２００は、限定するものではないが、本実施形態では監視カメラである。ＩｏＴデバイス２００は、カメラ２０２に映った画像を認識処理してサーバに送信する機能を有する。ＩｏＴデバイス２００は、限定するものではないが、自装置の状態や周りの状態を把握するための各種センサ２０３も備えている。なお、周りの状態を把握するためのセンサ２０３にカメラ２０２を含めてもよい。
【００３９】
〔サーバ、デバイスのハードウェア構成〕
図２は、変換サーバ１００等のハードウェア構成例を示すブロック図である。図２に示すように、変換サーバ１００は、汎用のコンピュータと同様の構成を備える。すなわち、ゲートウェイ２００は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、入出力インタフェース１５、及び、これらを互いに接続するバス１４を備える。
【００４０】
ＣＰＵ１１は、必要に応じてＲＡＭ１３等に適宜アクセスし、各種演算処理を行いながら各ブロック全体を統括的に制御する。ＲＯＭ１２は、ＣＰＵ１１に実行させるＯＳ（Operating System）、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の作業用領域等として用いられ、ＯＳ、実行中の各種アプリケーション、処理中の各種データを一時的に保持する。
【００４１】
また、ＣＰＵ１１はＲＯＭ１２に記憶されているソフトウェアプログラムをロードすることにより本装置の制御部を構成する。
【００４２】
入出力インタフェース１５には、表示部１６、操作受付部１７、記憶部１８、通信部１９等が接続される。表示部１６は、例えばＬＣＤ（Liquid Crystal Display）、ＯＥＬＤ（Organic Electro-Luminescence Display）、ＣＲＴ（Cathode Ray Tube）等を用いた表示デバイスである。操作受付部１７は、例えばマウス等のポインティングデバイス、キーボード、その他の入力装置である。なお、表示部１６と操作受付部１７を液晶タッチパネルにより一つにまとめてもよい。
【００４３】
記憶部１８は、例えばＨＤＤ（Hard Disk Drive）や、フラッシュメモリ（ＳＳＤ；Solid State Drive）、その他の固体メモリ等の不揮発性メモリである。当該記憶部１８には、上記ＯＳや各種アプリケーション、各種データが記憶される。
【００４４】
通信部１９は、例えばＮＩＣ（Network Interface Card）や無線ＬＡＮ等の無線通信用の各種モジュールである。通信部１９により本装置の他装置とのデータの送受信が可能になる。
【００４５】
図２に示す構成は一例であり、他の要素が追加されてもよく、また、一部が省略されてもよい。ＤＮＮ配布サーバ３００とアプリケーションサーバ３１０も変換サーバ１００と同様の構成とすることができる。ＤＮＮ配布サーバ３００とアプリケーションサーバ３１０の構成も、他の要素が追加されてもよく、また、一部が省略されてもよい。
【００４６】
図３は、ＩｏＴデバイス２００のハードウェア構成例を示すブロック図である。図３に示す各部の説明をするにあたって、図２と共通する部分の説明は省略する。図３のＩｏＴデバイス２００は、カメラ２０２、センサ２０３、バッテリ２０４、ＧＰＳ２０５を有する。
【００４７】
カメラ２０２は光電変換デバイス等の撮像装置である。センサ２０３の具体例としては例えば、温度センサ、人感センサ、無線通信の電波強度や電波品質を評価可能なアンテナ等が挙げられる。しかしながら本例示はセンサ１００を限定するものではない。
【００４８】
バッテリ２０４は、ＩｏＴデバイス２００の各部に電源を供給する電池等である。バッテリ２０４は、自身のバッテリ残量を検知し、ＣＰＵ１１等に通知する機能を有していてもよい。ＧＰＳ２０５は、グローバル測位システムを利用して自装置の位置を知る機能を有する。ＧＰＳ２０５は、検知した位置情報をＣＰＵ１１等に通知する機能を有していてもよい。
【００４９】
以上に述べたようなハードウェアを利用する、各サーバ、各デバイスにインストールされたソフトウェアプログラムにより、本技術に係る情報処理が実現する。各サーバ、各デバイスをそれぞれが有する機能ブロックの側面から見ると、各サーバ、各デバイスは、図４に示すような機能ブロックを有する。
【００５０】
〔システムの機能構成〕
図４は、本実施形態のＩｏＴシステム１の機能ブロック図である。図４に示すように、ＤＮＮ配布サーバ３００は、ＤＮＮ記憶部３０１とＤＮＮ配信部３０２を有する。ＤＮＮ記憶部３０１は、画像を処理するＤＮＮを保存し記憶する。ＤＮＮ記憶部３０１には、ＩｏＴデバイス２００側の状態によって最適なものが選択できるように、複数のＤＮＮが用意されている。
【００５１】
ＤＮＮ配信部３０２は、ＩｏＴデバイス２００からリクエストを受け取り、最適なＤＮＮをＤＮＮ記憶部３０１から選び出して送信する。ＤＮＮ配信部３０２は、変換サーバ１００からＤＮＮ配布のリクエストを受け取った場合、変換サーバ１００にリクエストに適したＤＮＮを送信する。
【００５２】
アプリケーションサーバ３１０は、監視処理部３０３と監視記録部３０４を有する。監視記録部３０４は、ＩｏＴデバイス２００から送られてきた認識結果を保存しておく装置である。監視処理部３０３は、ＩｏＴデバイス２００から送られてきた認識結果を受信する。監視処理部３０３は、認識結果を解析して警報を上げるなどの監視機能も有する。
【００５３】
変換サーバ１００は、ＤＮＮ変換部１０１とキャッシュ１０２を有する。ＤＮＮ変換部１０１は、ＤＮＮファイルを実行ファイルに変換する。ＤＮＮ変換部１０１は、ＩｏＴデバイス２００から提供されるＩｏＴデバイス提供情報に基づいてＤＮＮを個別に最適化する。ＤＮＮ変換部１０１は、実行ファイルに変換したＤＮＮをＩｏＴデバイス２００に送信する。
【００５４】
キャッシュ１０２は、ＤＮＮ配布サーバ３００から受信したＤＮＮファイルと、ＤＮＮ変換部１０１により最適化及び／又は変換が済んだ実行ファイルを一次保存する。
【００５５】
ＩｏＴデバイス２００は、画像認識処理部２０１、カメラ２０２、センサ２０３、バッテリ２０４、ＧＰＳ２０５を有する。図３を参照しながら説明したブロックの再説明は割愛する。画像認識処理部２０１は、カメラ２０２で取った画像を処理して被写体を認識する機能ブロックである。画像認識処理部２０１は、変換サーバ１００から実行ファイルに変換されたＤＮＮを受信する。画像認識処理部２０１は、画像の認識の際に、変換サーバ１００から受信したＤＮＮを用いる。ＩｏＴデバイス２００は、受信したＤＮＮを自装置にインストール（更新）し、ＣＰＵ１１を認識器、分類器としても機能させる。このようにして、機能するＣＰＵ１１が画像認識処理部２０１である。
【００５６】
〔学習済みニューラルネットワーク〕
図５は、本実施形態におけるＤＮＮ（Deep Neural Network）を説明するための概念図である。図５中、丸で示されているのはＩｏＴデバイス２００内に生成される仮想ノードであり、仮想ノード間を繋ぐ実線はリンクである。各ノードは、所定の情報（例えば、特徴量など）が左から入力されると次にどのノードにリンクするかをディープラーニングにより知っている。
【００５７】
本実施形態では、カメラ２０２により撮像された画像情報や、センサ２０３によりセンシングされた情報（気温や自装置の温度等）などがＤＮＮに入力されるように構成される。この場合、ＤＮＮで行われる処理は、特徴量抽出フェイズと、分類・認識フェイズに分かれる。
【００５８】
図５では、画像情報やセンサ情報を入力して、３つに分類できる事物のうちいずれかが出力とされるようなＤＮＮを例示している。例えば、画像情報中の被写体が、動物なのか植物なのか人工物なのかを判別可能なＤＮＮの場合、図５に示されるような３通りの出力になる可能性がある。
【００５９】
ＩｏＴデバイス１は、上述のようなシステム構成を採用する。そのため、ＩｏＴデバイス２００が画像をそのままクラウドに送るのではなく認識結果を送ることにより、通信量を削減することができる。
【００６０】
ＩｏＴデバイス２００は大量にばら撒かれてもよい。その場合、変換サーバ１００がキャッシュ１０２を有するため、通信量が削減される。
【００６１】
変換サーバ１００は複数であってもよく、この場合、変換サーバ１００が地域ごとに配置されてよい。変換サーバ１００が地域ごとに配置されることで、季節（北半球、南半球、国土の東西、南北）や、時間（地球の昼側、夜側）や、都鄙（都市部、郊外）の違いが複数のＩｏＴデバイス２００の間で同じになる。この場合、同一条件のキャッシュ１０２が集まりやすく、効率がよくなる。
【００６２】
なお、上述したＩｏＴシステム１の構成において、ＩｏＴデバイス２００の数が充分少なければ、クラウドのサーバ群と変換サーバ１００は同一のマシンであってもかまわない。ただし、ＩｏＴデバイス２００の数が非常に多い場合は、地域ごとに変換サーバ１００を配置することで通信量の削減が期待できる。ＩｏＴデバイス２００の数が非常に多い場合は、図１、図４のように、ＤＮＮ配布サーバ３００とアプリケーションサーバ３１０を別のマシンにするとよい。別のマシンにすることで負荷分散が可能になる。なお、ＤＮＮ記憶部３０１が記憶するＤＮＮが同一であればＤＮＮ配信部３０２を複数にして負荷分散してもよい。
【００６３】
〔情報処理〕
次に、ＩｏＴシステム１におけるＤＮＮ配布、ＤＮＮ更新に関する情報処理について、以下、説明する。図６は、本実施形態に係るＤＮＮ更新の情報処理の手順例を示すフローチャート図である。
【００６４】
図６の各処理の主体は、Ｓ１０１からＳ１０３がＩｏＴデバイス２００（画像認識処理部２０１）、Ｓ１０４からＳ１０６が変換サーバ１００（ＤＮＮ変換部１０１）、Ｓ１０７がＤＮＮ配布サーバ３００（ＤＮＮ配信部３０１）、Ｓ１０８，Ｓ１０９が再び変換サーバ１００（ＤＮＮ変換部１０１）、Ｓ１１０が再びＩｏＴデバイス２００（画像認識処理部２０１）である。
【００６５】
図６の一連の情報処理は、クラウド側（変換サーバ１００）の観点ではＤＮＮ配布になり、エッジ側（ＩｏＴデバイス２００）の観点ではＤＮＮ更新になる。なお、本情報処理の説明に際しては、ＤＮＮの更新を要求するＩｏＴデバイス２００は一つとして説明する。
【００６６】
図６のＤＮＮ配布とＤＮＮ更新に係る一連の情報処理は、あらかじめ設定された一定間隔ごとのタイマー（不図示）やＩｏＴデバイス２００に備わった各種センサ２０３からのトリガによって起動される。
【００６７】
ＩｏＴデバイス２００は、まず自装置の状況を確認する（Ｓ１０１）。このとき、ＩｏＴデバイス２００は、センサ２０３やカメラ２０２などの出力に基づいて、自装置の状態及び／又は周囲の環境の情報を生成する。自装置の状態には、ＣＰＵ１１の種類、ＲＯＭ１２とＲＡＭ１３などのメモリの量などといった自装置のデバイス情報を含んでもよい。周囲の環境には、自装置にインストールされているＤＮＮがカメラ２０２、センサ２０３、ＧＰＳ２０５などからの出力情報を入力し、特徴量抽出と分類を経て出力した情報を含んでもよい。
【００６８】
次に、ＩｏＴデバイス２００は、Ｓ１０１で確認した情報に基づいて、ＩｏＴデバイス２００にインストールされているＤＮＮの更新が必要か否かを判断する（Ｓ１０２）。ＩｏＴデバイス２００は、例えば、センサ２０３によるセンシング情報に基づくパラメータが、あらかじめ設定された閾値を超えて変化していたなどの場合に、ＤＮＮの更新が必要と判断し、上記パラメータの変化がない場合や少ない場合は、ＤＮＮの更新が不要と判断する。
【００６９】
ＩｏＴデバイス２００により更新が必要と判断された場合（Ｓ１０２，Ｙｅｓ）、ＩｏＴデバイス２００は、変換サーバ１００に更新の要求を送信する（Ｓ１０３）。ＩｏＴデバイス２００により更新が不要と判断された場合（Ｓ１０２，Ｎｏ）、ＤＮＮ更新処理は終了する。
【００７０】
Ｓ１０３で送信される更新の要求の中には、最適化されて実行ファイルに変換されたＤＮＮのうち１つを指定する情報が含まれる。Ｓ１０３で送信される更新の要求の中には、指定されたＤＮＮの最適化前のＤＮＮを指定する情報が含まれていてもよい。変換サーバ１００は、当該情報を参照して、適切な最適化後のＤＮＮをキャッシュ１０２の中から選択する。キャッシュ１０２の中にない場合は、最適化と変換を行う。また、ＩｏＴデバイス２００は、Ｓ１０３において、自装置の状態及び／又は周囲の環境の情報をＩｏＴデバイス提供情報として変換サーバ１００に送信してもよい。
【００７１】
ＩｏＴデバイス２００から更新の要求を受信した変換サーバ１００において、ＤＮＮ変換部１０１は、更新するＤＮＮの変換済みファイルの有無をキャッシュ１０２に確認する（Ｓ１０４）。キャッシュ１０２に変換済みファイルがない場合（Ｓ１０４，Ｎｏ）、ＤＮＮ変換部１０１は、最適化や実行ファイルへの変換処理がなされる前のＤＮＮの元ファイルの有無をキャッシュ１０２に確認する（Ｓ１０５）。
【００７２】
キャッシュ１０２に元ファイルがない場合（Ｓ１０５，Ｎｏ）、ＤＮＮ変換部１０１は、ＤＮＮ配布サーバ３００に新しいＤＮＮファイルを要求する（Ｓ１０６）。変換サーバ１００からＤＮＮファイルの要求を受信したＤＮＮ配布サーバ３００においては、ＤＮＮ配信部３０２が、ＤＮＮ記憶部３０１から要求に応じたＤＮＮファイルを取得し、変換サーバ１００に送信する（Ｓ１０６）。
【００７３】
次に、ＤＮＮ配布サーバ３００からＤＮＮファイルを受信した変換サーバ１００においては、ＤＮＮ変換部１０１が受信したＤＮＮファイルを配信先のＩｏＴデバイス２００の性能や状態に応じて最適化し、実行ファイル形式への変換をする（Ｓ１０８）。
【００７４】
次に、ＤＮＮ変換部１０１は最適化済み、そして変換済みのＤＮＮの実行ファイルをＩｏＴデバイス２００に送信する（Ｓ１０９）。上記ＤＮＮの実行ファイルを受信したＩｏＴデバイス２００は、ＤＮＮの実行ファイルを自装置にインストールして自装置のＤＮＮを更新する（Ｓ１１０）。
【００７５】
本実施形態においては、ＩｏＴデバイス２００の上位ノードに位置する変換サーバ１００がＩｏＴデバイス２００の状態及び／又は周囲の環境に応じてＤＮＮを最適化する、あるいは、最適化済みのＤＮＮを用意する。ＩｏＴデバイス２００はそのＤＮＮを受信して、自装置にインストールされているＤＮＮを更新するため、ＩｏＴデバイスの性能の差異や変動を考慮してＩｏＴシステムのパフォーマンスを向上させることができる。また、Ｓ１０１において、ＤＮＮの出力結果に基づいて当該ＤＮＮを最適化すると、より一層ＩｏＴデバイス２００の性能を引き出すことができるようになり、ＩｏＴシステム全体のパフォーマンスも向上する。
【００７６】
〔学習済みニューラルネットワークの最適化〕
以下に、ＤＮＮの最適化について具体例を示して説明する。
【００７７】
Ｓ１０８で変換サーバ１００により実行されるＤＮＮの最適化は、パラメータの量子化と、分類可能な種類の削減という２つの方法による最適化を含んでもよい。
【００７８】
パラメータの量子化は、ＤＮＮに入力されるパラメータの離散度合いを減少させることで、メモリ使用量や計算にかかる消費電力を削減する。例えば、パラメータが３２ビット浮動小数点で表現されている場合、これを１６ビット浮動小数点や８ビット固定小数点に変換する。
【００７９】
分類可能な種類の削減は、図５で示した分類・認識フェイズにおける分類（認識）可能な種類を削減することである。分類可能な種類の削減を行う場合、変換サーバ１００は、ＤＮＮによる処理の最終段階のほうから計算しないノードの数を増加させる。これにより、分類可能な種類は削減するものの、計算しないノードが増加するので、分類・認識フェイズにおける計算量が削減される。その結果、消費電力も削減することができる。
【００８０】
分類可能な種類の削減を行うことによってＤＮＮの最適化を行う方法は、画像認識を行うＤＮＮに対して行うと高い効果が得られる。画像認識のＤＮＮは前半部分で特徴量の抽出を行い、後半部分で分類のための計算を行うことが多いためである。もっとも、この記述は、本技術が扱うＤＮＮを画像認識のＤＮＮに限定する意図はない。分類可能な種類の削減を行うことによってＤＮＮの最適化を行う方法によれば、ＤＮＮに大きな変更を加えることなく、計算量を減らす最適化が可能になる。
【００８１】
〔第２の実施形態〕
上記実施形態における、ＩｏＴデバイス２００における情報処理をさらに具体的にした実施形態を以下に開示する。
【００８２】
図７は、本実施形態に係るＤＮＮ更新の情報処理の手順例を示すフローチャートである。本実施形態では、ＩｏＴデバイス２００が確認する自装置の状態の一例として、バッテリ残量を確認するものとする。図７に示す各処理ブロックの主体はＩｏＴデバイス２００（又はそのＣＰＵ１１）である。
【００８３】
図７（ａ）は、バッテリ残量低下をトリガとしたＤＮＮ更新フローの一例である。なお、バッテリ２０４は放電中（駆動中）とする。
【００８４】
図７（ａ）において、ＩｏＴデバイス２００は、バッテリ残量を確認する（Ｓ２０１）。具体的には、例えば、ＩｏＴデバイス２００は、あらかじめ設定されたインターバルタイマー（例えば、１０秒間隔）でバッテリ残量チェックルーチンを起動し、バッテリ残量センサ（センサ２０３の一つ）にアクセスして、現在のバッテリ残量を取得する。
【００８５】
次に、ＩｏＴデバイス２００は、バッテリ残量が閾値（例えば、２０％以下）になっているか否かを判定する（Ｓ２０２）。Ｓ２０２の判定によりＹｅｓと判定された場合は図６のＡに接続し、Ｎｏと判定された場合はＢに接続する。
【００８６】
ＩｏＴデバイス２００は、バッテリ残量低下をトリガにして更新の要求を送信した後、図６のＤＮＮ更新（Ｓ１１０）の処理の際、ＤＮＮ更新の要求を送信するか否かの判断の基準となるＳ２０２の判定を、別の条件（例えば、５０％以上になったらＹｅｓと判定する、など）に書き換える。
【００８７】
図７（ｂ）は、上記条件の書き換えがあった後の、ＤＮＮ更新フローの一例である。このＤＮＮ更新フローにおいては、バッテリ残量上昇がトリガとなっている。なお、バッテリ２０４は充電中（外部電源駆動中）とする。
【００８８】
図７（ｂ）において、ＩｏＴデバイス２００は、バッテリ残量を確認する（Ｓ２０３）。具体的には、例えば、ＩｏＴデバイス２００は、あらかじめ設定されたインターバルタイマー（例えば、１０秒間隔）でバッテリ残量チェックルーチンを起動し、バッテリ残量センサ（センサ２０３の一つ）にアクセスして、現在のバッテリ残量を取得する。
【００８９】
次に、ＩｏＴデバイス２００は、バッテリ残量が閾値（例えば、５０％以上）になっているか否かを判定する（Ｓ２０４）。Ｓ２０４の判定によりＹｅｓと判定された場合は図６のＡに接続し、Ｎｏと判定された場合はＢに接続する。
【００９０】
なお、本実施形態において、変換サーバ１００は、バッテリ残量低下をトリガにして更新の要求を送信してきたＩｏＴデバイス２００に対して送信したＤＮＮよりも、認識精度が高く消費電力が比較的大きくなるように最適化が実行されたＤＮＮの実行ファイルを、バッテリ残量上昇をトリガにして更新の要求を送信してきたＩｏＴデバイス２００に対して送信する。
【００９１】
ＩｏＴデバイス２００は、バッテリ残量上昇をトリガにして更新の要求を送信した後、図６のＤＮＮ更新（Ｓ１１０）の処理の際、ＤＮＮ更新の要求を送信するか否かの判断の基準となるＳ２０２の判定を、別の条件（例えば、２０％以下になったらＹｅｓと判定する、など）に書き換える。
【００９２】
〔第３の実施形態〕
ＤＮＮの更新、ＤＮＮの配布に関する情報処理が実行されるタイミングは、上記実施形態では、ＩｏＴデバイス２００が自装置の状態及び／又は周囲の環境に基づくパラメータと何らかの閾値とを比較して判断される。当該閾値をＩｏＴデバイス２００に伝達する方法は、いくつか考えられ、本技術は３つの方法を採用することができる。ただし、この３つに限定されない。
【００９３】
１つ目の方法は、ＩｏＴデバイス２００が定期的に変換サーバ１００などに通信をして閾値を問い合わせる方法である。この場合、逐次変化するような閾値にも対応できるという利点がある。
【００９４】
２つ目の方法は、デバイスの状態と適用できる最適化の種類の対応表を用意して、変換サーバ１００とＩｏＴデバイス２００で共有する方法である。この方法は、対応表に状態の変化ごとにどれくらいの効果があるのかが書かれているので、ＩｏＴデバイス２００側でＤＮＮを更新するとどの程度最適化されるのかがわかるのが利点である。
【００９５】
３つ目の方法は、現在使用しているＤＮＮが最適に利用できる閾値だけがＩｏＴデバイスに通知され、ＩｏＴデバイスがその閾値に基づいて自律的にＤＮＮ更新を実行する方法である。この方法は通信量が少なくて済むという利点がある。
【００９６】
上記第１、第２の実施形態は、３つ目の方法であった。本実施形態は、２つ目の方法によるＤＮＮ配布、ＤＮＮ更新の情報処理について述べる。
【００９７】
図８は、本実施形態に係るＤＮＮ更新の情報処理の手順を示すフローチャートである。図８の各処理ブロックの主体はＩｏＴデバイス２００（又はそのＣＰＵ１１）である。ＩｏＴデバイス２００は、最適化済みＤＮＮとＩｏＴデバイスの状態及び／又は周囲の環境との間になされた対応付けを表にまとめた対応表を記憶部１８等に記憶している。図９は、対応表の一例である。
【００９８】
図８において、ＩｏＴデバイス２００は、まず自装置の状況を確認する（Ｓ３０１）。この処理は図６のＳ１０１と同じである。続いてＩｏＴデバイス２００は、自装置が現在使っているＤＮＮをチェックする（Ｓ３０２）。なお、本実施形態の説明においてはＤＮＮが一つであることを前提にするが、本技術は本説明例に限定されない。ＤＮＮは複数でもよい。
【００９９】
続いて、ＩｏＴデバイス２００は、Ｓ３０１で確認した自装置の状態及び／又は周囲の環境が、対応表のどの部分に相当するかを確認する（Ｓ３０３）。図９に示した対応表の一例は、「周囲の環境」を行にし、「自装置の状態」を列にしている。「周囲の環境」の一例として、ここでは「設置場所」が示されており、「自装置の状態」の一例として、ここでは「温度」と「バッテリ残量」の２つのパラメータの複合が示されている。ただし、設置場所が不明の場合は、「温度」と「バッテリ残量」によらず、所定のＤＮＮが指定されている。
【０１００】
なお、図９に示したものは対応表の一部であって、実際の対応表においては、さらに多くの条件が設定されていてもよい。また、温度やバッテリ残量などの連続量は、オーバーラップして設定されていてもよく、これにより、最適化済みＤＮＮの切り替えが頻繁に起こらないようにすることができる。
【０１０１】
本実施形態では、「設置場所」が変換サーバ１００などクラウド側からあらかじめ指定される。しかしながら、これは「設置場所」特定の一例であって、本技術がこれに限定されるものではない。ＩｏＴデバイス２００（エッジ側）のユーザ等により明示的に指定されてもよいし、別の実施例では、カメラ２０２の撮影画像をＩｏＴデバイス２００にインストールされているＤＮＮ（更新対象のＤＮＮとは異なる）により「設置場所」が認識されてもよい。
【０１０２】
図９の対応表において、周囲の環境と自装置の状態の交わるセルで指定されているＤＮＮの番号が、その自装置の状態及び周囲の環境に最適化済みのＤＮＮの番号である。図１０には、最適化済みのＤＮＮの一覧が例示されている。図１０に示されている１番から７番の最適化済みＤＮＮは、次の種別のものである。
【０１０３】
１．設置場所不明時のＤＮＮ
２．屋内用の通常時ＤＮＮ
３．屋外用（都市部）の通常時ＤＮＮ
４．屋外用（郊外）の通常時ＤＮＮ
５．屋内用の省エネ時ＤＮＮ
６．屋外用（都市部）の省エネ時ＤＮＮ
７．屋外用（郊外）の省エネ時ＤＮＮ
【０１０４】
上記各種別の最適化済みＤＮＮは、図１０にも示されているように、想定される消費電力と発熱量が次のようになっている。
１．大
２．中
３．中
４．中
５．小
６．小
７．小
【０１０５】
図９、図１０に示すように、本実施形態に置いては、設置場所が分からないときは全ての識別能力を持つ高性能ＤＮＮで設置場所を特定する。ところが、高性能ＤＮＮは消費電力と発熱が大きいので、これを常時動かすのは効率が悪い。そのため、設置場所が判明したら識別能力はやや落ちるが消費電力や発熱を多少抑えたＤＮＮ（図１０中Ｎｏ．２から４のＤＮＮ）に切り替える。識別能力がやや落ちるとはいえ、その設置場所において、おおよそ映らないはずの被写体に対する識別能力を削減するので、全体の監視カメラ性能としてはほとんど落ちない
【０１０６】
本実施形態では、さらに、バッテリ残量が減ってきたり、温度が高くなってきたりするときはさらに消費電力や発熱が小さいＤＮＮ（図１０中Ｎｏ．５から７のＤＮＮ）に切り替える。これにより、バッテリ切れや故障を回避することができる。
【０１０７】
図９のように条件設定し、また、それに基づいて選択されるＤＮＮが図１０のように設定されることにより、外部の気温が高いときやバッテリ残量が少ないときは消費電力が小さいＤＮＮが選ばれ、ＩｏＴデバイス２００の動作が最適化する。そのため、ＩｏＴシステム１全体の効率も最適化する。
【０１０８】
図８のＳ３０３に続いて、ＩｏＴデバイス２００は、Ｓ３０３で確認した結果に照らして、現在利用中のＤＮＮの継続利用が可能か否かを判断する（Ｓ３０４）。継続利用できないと判断される場合（Ｓ３０４，Ｎｏ）、ＩｏＴデバイス２００は、現在利用中のＤＮＮから対応表が推奨するＤＮＮに切り替えて更新することにメリットがあるか否かを判断する（Ｓ３０５）。
【０１０９】
Ｓ３０４で継続利用できると判断される場合（Ｓ３０４，Ｙｅｓ）や、Ｓ３０５でＤＮＮ更新にメリットがないと判断される場合（Ｓ３０５，Ｎｏ）、情報処理のフローは図６のＢに接続する。その後の情報処理の流れは、図６を参照しながら説明したものと同じである。
【０１１０】
他方で、現在利用中のＤＮＮの継続利用が不可能であり、かつ、ＤＮＮの更新にメリットがあると判断される場合（Ｓ３０５，Ｙｅｓ）、情報処理のフローは図６のＡに接続する。その後の情報処理の流れは、図６を参照しながら説明したものと同じである。
【０１１１】
本実施形態において、ＩｏＴデバイス２００は、ＤＮＮの分類器としての性能及び／又は精度の抑制を、分類可能な複数のものの数を削減すること、換言すれば分類結果の多様性を抑えることで実現してもよい。
【０１１２】
図１１は、１つのＤＮＮから異なる最適化が施されて、識別能力の異なる別々の種別となった複数のＤＮＮの一例が示されている。図１１のＤＮＮは、カメラ画像から被写体の種類を認識するＤＮＮである。なお、図１１中のＤＮＮ種別は、図１０で７種類に分けていたＤＮＮ種別とは異なり、４種類に分けられている。
【０１１３】
高性能ＤＮＮは被写体を１１種類に識別可能であるのに対し、省エネＤＮＮは４種類のみに抑制し、その代わり消費電力や発熱を抑制する。しかしながら、これらの中間にあるＤＮＮは、識別可能な種類が数量的に中間であるだけではない。これらの中間にあるＤＮＮは、そのＤＮＮが動作するＩｏＴデバイス２００の設置環境に応じて識別精度を低下させている。
【０１１４】
都市部ＤＮＮは、都市部では犬猫以外の動物が映る可能性が低いので、「四足の動物」でひとくくりにする。「虫」も同様である。また、郊外ＤＮＮは、車の種類の区別をやめて「車」でひとくくりにする。さらに、省エネＤＮＮは、大人と子供の区別を止めたり、犬猫を動物に統合したりして、消費電力をさらに抑える。このようにＤＮＮを構成することで、最適な消費電力抑制を実現することができる。
【０１１５】
〔第４の実施形態〕
上述の第１から第３の実施形態においては、ＩｏＴデバイス２００自身が、ＩｏＴデバイス２００の状態及び／又は周囲の環境に応じてＤＮＮ更新の必要性を判断し（図６のＳ１０１，Ｓ１０２、図７、図８）、ＤＮＮの更新の要求を変換サーバ１００に送信している（Ｓ１０３）。
【０１１６】
これに対して、本実施形態は、変換サーバ１００が、ＩｏＴデバイス２００から送信される当該ＩｏＴデバイス２００の状態及び／又は周囲の環境（ＩｏＴデバイス提供情報）に応じて、当該ＩｏＴデバイス２００のＤＮＮ更新の必要性を判断する。
【０１１７】
本実施形態のシステム構成は、第１から第３の実施形態と同様の構成でもよい（図１〜図５）。本実施形態の情報処理の流れについても、第１から第３の実施形態と大きく異なるところはないが、本実施形態においては各処理の主体が変換サーバ１００である。
【０１１８】
図１２は、本実施形態の情報処理の流れの一例を示すフローチャートである。図１２に示す情報処理の一例は、対応表を利用する第３の実施形態の変形例である。
【０１１９】
変換サーバ１００は、ＩｏＴデバイス２００から、当該ＩｏＴデバイス２００の状態及び／又は周囲の環境の情報（ＩｏＴデバイス提供情報）を受信する（Ｓ４０１）。続いて、変換サーバ１００は、受信したＩｏＴデバイス２００の状態及び／又は周囲の環境の情報（ＩｏＴデバイス提供情報）を確認する（Ｓ４０２）。
【０１２０】
続いて、変換サーバ１００は、当該ＩｏＴデバイス２００が現在使用しているＤＮＮをチェックする（Ｓ４０３）。ここでは例えば、ＤＮＮ配布サーバ３００から配布されたＤＮＮ（最適化される前のＤＮＮ）の種類が何であるのかという情報が特定される。
【０１２１】
続いて、変換サーバ１００は、現在の状態が対応表のどの部分に相当するかを確認する（Ｓ４０４）。ここでは例えば、ＣＰＵ１１が、Ｓ４０３でチェックして特定したＤＮＮの種類に対応する対応表（図９）を記憶部１８などから読み込む。次に、Ｓ４０２で確認したＩｏＴデバイス２００の状態及び／又は周囲の環境の情報（ＩｏＴデバイス提供情報）をパラメータとして対応するＤＮＮ（最適化済みのＤＮＮ）を知る。
【０１２２】
続いて、変換サーバ１００は、第３の実施形態と同様に、Ｓ４０４の処理で最適であると確認されたＤＮＮが継続利用可能であるか否か（Ｓ４０５）、それへの更新にメリットがあるか否か（Ｓ４０６）を確認する。
【０１２３】
継続利用が不可能であり、更新にメリットがあると判断される場合、変換サーバ１００は、Ｓ４０４の処理で最適であると確認されたＤＮＮの実行ファイル形式へ変換されているファイルが、キャッシュ１０２にあるか否かを確認する（Ｓ４０７）。本実施形態においては、第１から第３の実施形態とは異なり、変換サーバ１００が更新の要求を外部装置に送信する必要がない。
【０１２４】
変換済みファイルがキャッシュ１０２にない場合、変換サーバ１００は元ファイルがキャッシュ１０２にあるか否かを確認する（Ｓ４０８）。元ファイルもキャッシュ１０２にない場合、変換サーバ１００は、新しいＤＮＮファイルをＤＮＮ配布サーバ３００に要求する（Ｓ４０９）。変換サーバ１００がＤＮＮ配布サーバ３００から新しいＤＮＮファイルを受信すると（Ｓ４１０）、受信したＤＮＮファイルを最適化し、また、実行ファイル形式へと変換する（Ｓ４１１）。
【０１２５】
続いて、変換サーバ１００は、再起か及び返還して実行ファイル形式にしたＤＮＮをＳ４０１で受信したＩｏＴデバイス提供情報の送信元のＩｏＴデバイス２００に送信する（Ｓ４１２）。続いて、変換サーバ１００は、送信したＤＮＮをＩｏＴデバイス２００に更新させる。ＩｏＴデバイス２００は、受信したＤＮＮを自装置に適用、インストールして、ＤＮＮを更新する（Ｓ４１３）。
【０１２６】
以上に述べた本実施形態によると、ＩｏＴデバイス２００にインストールされているＤＮＮが、当該ＩｏＴデバイス２００の状況（周囲の環境の状態を含む）に適切か否か、適切でない場合最適なＤＮＮがどれかを、当該ＩｏＴデバイス２００が判断するのでなく、変換サーバ１００が判断する。これにより、ＩｏＴデバイス２００の処理負荷を軽減することができる。
【０１２７】
〔その他の実施形態〕
上述の実施形態に開示された技術は、種々の変形実施が可能である。例えば、第１の実施形態や第２の実施形態においてＩｏＴデバイス２００の状態を当該ＩｏＴデバイス２００自身が確認し、その結果に応じて変換サーバ１００にＤＮＮ更新を要求しているところは、第４の実施形態のように、変換サーバ１００がＩｏＴデバイス２００の状態を確認して、その結果に応じてＤＮＮ更新を判断するようにしてもよい。
【０１２８】
また、上述の実施形態においては、ＩｏＴデバイス２００が監視カメラであったが、ＩｏＴデバイス２００はこれに限定されず、例えば、可搬型携帯端末、スマートフォン、ノート型パーソナルコンピュータ、ポータブルオーディオプレーヤー、ヘッドフォン、イヤフォンなどでもよい。
【０１２９】
なお、以上に開示した情報処理は、ソフトウェアプログラムにより提供可能である。そのようなプログラムの提供態様は、磁気的光学的を問わない記録媒体により提供されてもよいし、電気通信回線を通してダウンロードされることにより提供されてもよい。
【０１３０】
〔付記〕
本技術は、以下の形態とすることができる。
（１）
ＩｏＴ（Internet of Things）デバイスと通信可能な通信部と、
ＩｏＴデバイスから受信した当該ＩｏＴデバイスの状態又は周囲の環境に関するＩｏＴデバイス提供情報に基づいて、学習済みニューラルネットワークを最適化し、当該最適化した学習済みニューラルネットワークの実行ファイルを前記ＩｏＴデバイスへ送信する制御部と
を具備する情報処理装置。
（２）
上記（１）に記載の情報処理装置であって、
前記制御部は、前記ＩｏＴデバイス提供情報と、複数の最適化後の学習済みニューラルネットワークとの対応関係に基づいて、前記ＩｏＴデバイスから受信した前記ＩｏＴデバイス提供情報に対応する前記学習済みニューラルネットワークを選択する
情報処理装置。
（３）
上記（１）又は（２）に記載の情報処理装置であって、
前記ＩｏＴデバイス提供情報は、前記ＩｏＴデバイスにインストールされた前記学習済みニューラルネットワークに当該ＩｏＴデバイスの状態及び／又は周囲の環境を入力して得られる出力に基づく情報を含み、
前記制御部は、前記出力に基づく情報に基づいて複数の最適化後の前記学習済みニューラルネットワークのうちの一つを選択する
情報処理装置。
（４）
上記（１）から（３）のいずれかに記載の情報処理装置であって、
前記ＩｏＴデバイス提供情報は、複数の最適化後の前記学習済みニューラルネットワークのうちの一つを指定する情報を含み、
前記通信部は、前記指定された最適化後の前記学習済みニューラルネットワークを送信する
情報処理装置。
（５）
上記（１）から（４）のいずれかに記載の情報処理装置であって、
前記制御部により最適化された前記学習済みニューラルネットワークを記憶するキャッシュをさらに有し、
前記通信部は、異なる複数の前記ＩｏＴデバイスからそれぞれ受信した前記ＩｏＴデバイス提供情報に応じた同一の最適化後の前記学習済みニューラルネットワークが、前記キャッシュに記憶されている場合、当該異なる複数の前記ＩｏＴデバイスそれぞれに、前記キャッシュが記憶する当該同一の最適化後の前記学習済みニューラルネットワークを送信する
情報処理装置。
（６）
上記（１）から（５）のいずれかに記載の情報処理装置であって、
前記制御部は、前記学習済みニューラルネットワークの分類器としての性能及び／又は精度を低下させることにより、前記学習済みニューラルネットワークを最適化する
情報処理装置。
（７）
上記（６）に記載の情報処理装置であって、
前記学習済みニューラルネットワークは、前記ＩｏＴデバイスの状態及び／又は周囲の環境からの入力情報から特徴量を抽出し、抽出した特徴量に基づいて、前記入力情報を複数の種別に分類し、
前記制御部は、前記学習済みニューラルネットワークが分類する複数の種別の数を減少させることで、分類器としての性能及び／又は精度を低下させる
情報処理装置。
（８）
ＩｏＴ（Internet of Things）デバイスから受信した当該ＩｏＴデバイスの状態及び／又は周囲の環境に関する情報に基づいて、学習済みニューラルネットワークを最適化し、
前記ＩｏＴデバイスに最適化した前記学習済みニューラルネットワークを送信する
情報処理方法。
（９）
コンピュータに、
ＩｏＴ（Internet of Things）デバイスから受信した当該ＩｏＴデバイスの状態及び／又は周囲の環境に関する情報に基づいて、学習済みニューラルネットワークを最適化するステップと、
前記ＩｏＴデバイスに最適化した前記学習済みニューラルネットワークを送信するステップ
を実行させるための
プログラム。
（１０）
学習済みニューラルネットワークがインストールされたＩｏＴ（Internet of Things）デバイスであって、
情報処理装置と通信可能な通信部と、
当該ＩｏＴデバイスの状態及び／又は周囲の環境に応じた学習済みニューラルネットワークを選択し、
前記選択された学習済みニューラルネットワークの最適化及び当該最適化後のニューラルネットワークの実行ファイルの送信を要求する要求信号を前記情報処理装置へ送信し、
受信した最適化後の前記学習済みニューラルネットワークの実行ファイルを用いて前記インストールされた学習済みニューラルネットワークを更新する制御部と、
を具備するＩｏＴデバイス。
【符号の説明】
【０１３１】
１…ＩｏＴシステム
１００…変換サーバ
１０１…ＤＮＮ変換部
１０２…キャッシュ
２００…ＩｏＴデバイス
２０１…画像認識処理部
２０２…カメラ
２０３…センサ
３００…ＤＮＮ配布サーバ
【図１】
2019235311.tif 000003
【図２】
2019235311.tif 000004
【図３】
2019235311.tif 000005
【図４】
2019235311.tif 000006
【図５】
2019235311.tif 000007
【図６】
2019235311.tif 000008
【図７】
2019235311.tif 000009
【図８】
2019235311.tif 000010
【図９】
2019235311.tif 000011
【図１０】
2019235311.tif 000012
【図１１】
2019235311.tif 000013
【図１２】
2019235311.tif 000014
【国際調査報告】
2019235311.tif 000015
2019235311.tif 000016
2019235311.tif 000017
2019235311.tif 000018