(57)【要約】      （修正有）【課題】習を行ったモデルの復帰判定性能が向上した場合にのみ、学習を行った機械学習モデルに入れ替えて復帰判定に用いることができる人感センサを備え、電力制御状態の復帰判定に機械学習を適用した情報処理装置を提供する。【解決手段】情報処理装置は、周辺に存在する物体を検知するセンサとセンサから得られるセンス値に基づいて、情報処理装置の電力制御状態を変更するか否か機械学習モデルを用いて判定する第１の判定手段と、センス値と操作部の操作情報とから構成される学習データを記憶手段に保存し、第１の判定手段に対して、学習データを用いて学習を行った第二の判定手段とを備える。さらに、第一の判定手段と第二の判定手段の性能評価を行い、第一の判定手段を第二の判定手段に入れ替えるか否かを決定する決定手段を有する。【選択図】図９
2020038538.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
周辺に存在する物体を検知するセンサと
前記センサから得られるセンス値に基づいて、前記情報処理装置の電力制御状態を変更するか否か第１の機械学習モデルを用いて判定する第一の判定手段と
前記センス値と操作部の操作情報とから構成される学習データを保存する記憶手段と、
前記第１の機械学習モデルに対して、前記学習データを用いて学習を行った第２の機械学習モデルを用いて前記情報処理装置の電力制御状態を変更するか否かを判定する第二の判定手段と、
前記第一の判定手段と前記第二の判定手段の性能評価を行い、前記第二の判定手段で前記第一の判定手段を更新するか否かを決定する決定手段を有する
ことを特徴とする情報処理装置。
【請求項２】
前記性能評価は、所定数の前記学習データを使用し、前記第一の判定手段の判定結果、前記第二の判定手段の推論結果に基づいて行われることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記電力制御状態の変更は、第１の電力制御状態又は第１の電力制御状態よりも消費電力が小さい第２電力制御状態との変更であり、
前記操作情報は操作部の操作の有無に関する情報である
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第一の判定手段が出力した判定結果と前記操作情報から正否フラグを生成して学習データに付与する生成手段を備える
ことを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第一の判定手段の性能評価として、正否フラグに基づき成功フラグが付与された学習データを数える第１の成功カウンタを備える第一の判断手段と、
前記第二の判定手段の性能評価として、第二の判定手段の推論結果と前記学習データの操作情報とから推論の正否を判断し、成功に該当する学習データを数える第２の成功カウンタを備える第二の判断手段と、を有する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
さらに、前記第一の判断手段は第１の復帰成功カウンタ、前記第二の判断手段は第２の復帰成功カウンタを備え、該当する学習データを数えることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記決定手段は、
前記第１，第２の成功カウンタの値及び第１，第２の復帰成功カウンタの値をそれぞれ比較して、
前記第２の成功カウンタの値が、第１の成功カウンタの値より大きく、且つ
第２の復帰成功カウンタの値が、第１の復帰成功カウンタの値より大きい場合に、
前記第一の判定手段を前記第二の判定手段に更新することを決定すること
を特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記第二の判断手段は、第二の判定手段の推論結果と前記学習データの操作情報とから成功、失敗を判断し、前記推論結果が失敗であって、前記正否フラグが成功である場合の学習データを数える第３のカウンタを備え、
前記決定手段は、
前記第２の成功カウンタの値が前記第１の成功カウンタの値より大きく、且つ
前記第３のカウンタが０である場合に、
前記第一の判定手段を前記第二の判定手段に入れ替えることを決定する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記センサは、超音波センサであることを特徴とする請求項１〜８の何れか１項に記載の情報処理装置。
【請求項１０】
前記機械学習モデルは、リカレントニューラルネットワークであることを特徴とする請求項１〜９の何れか1項に記載の情報処理装置。
【請求項１１】
前記情報処理装置は、画像処理装置であることを特徴とする請求項１〜１０の何れか１項に記載の情報処理装置。
【請求項１２】
周辺に存在する物体を検知するセンサと、前記センサから得られるセンス値に基づいて、前記情報処理装置の電力制御状態を変更するか否か第１の機械学習モデルを用いて判定する第一の判定手段と、前記センス値と操作部の操作情報とから構成される学習データを保存する記憶手段と、前記第１の機械学習モデルに対して、前記学習データを用いて学習を行った第２の機械学習モデルを用いて前記情報処理装置の電力制御状態を変更するか否かを判定する第二の判定手段とを備える情報処理装置の制御方法であって、
前記第一の判定手段と前記第二の判定手段の性能評価を行い、前記第二の判定手段で前記第一の判定手段を更新するか否かを決定する決定ステップを有する
ことを特徴とする情報処理装置の制御方法。
【請求項１３】
請求項１２に記載の情報処理装置の制御方法をコンピュータにより実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置等の超音波センサ等の人感センサを備えた情報処理装置において、省電力状態にある該装置の復帰制御に関する技術である。
【背景技術】
【０００２】
プリント(印刷)、スキャン、コピー、ファック等の複数の機能を有する多機能な画像処理装置（Multi Function Peripheral:以下「ＭＦＰ」という。）が知られている。ＭＦＰ等の情報処理装置において接近するユーザを検出するための人感センサを備え、該センサの出力に基づいて、人の接近を検知して省電力状態（スリープ状態）から通常状態（スタンバイ状態）に復帰する機能を有するものがある。例えば、人感センサのセンス値をＭＦＰと接近する人との距離と関連づけた特徴量として判断する判定手段を用いて、センス値が所定の値以上となったら人がＭＦＰに接近したと判断してＭＦＰを通常状態に復帰させることができる。
ここで人感センサの検知履歴とＭＦＰ操作部の操作履歴に基づいて、スリープ状態のＭＦＰを復帰するか否かを決定する人感センサの感度（閾値）を自動で調整するＭＦＰが知られている（特許文献１）。
【０００３】
しかしながらＭＦＰの設置環境によっては復帰判定に係る誤判定が避けられない場合がある。例えば、通路脇に設置したＭＦＰではＭＦＰ使用者と通り過ぎる人とではどちらもＭＦＰに接近してしまうため、単に距離の特徴量だけではいかに人感センサの感度を調整しても正しくユーザを判定することが困難となる。
このような場合、予め設計した特徴量を用いた判定手法ではなく、それぞれの環境で得られたデータに基づき、得られたデータの相互の関連や規則性を見出して判定処理を行う機械学習モデルを用いるのが有効である。すなわち、人感センサを備えたＭＦＰにおいては、それぞれのＭＦＰ設置環境で得られた人感センサのセンス値を用いて、予めＭＦＰが備える復帰判定モデルに対して機械学習させることで、復帰判定モデルの判定成功率を向上させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2010-147725号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、学習を行った結果で機械学習モデルを更新し、当該機械学習モデルを復帰判定に用いた場合、学習を行う前よりもかえって復帰判定性能が悪化する可能性もある。そこで、人感センサを備えた情報処理装置の復帰判定に機械学習を適用する際に、学習を行ったモデルの復帰判定性能が向上した場合にのみ、学習を行った機械学習モデルに入れ替えて復帰判定に用いるように制御する装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、情報処理装置であって、周辺に存在する物体を検知するセンサと前記センサから得られるセンス値に基づいて、前記情報処理装置の電力制御状態を変更するか否か機械学習モデルを用いて判定する第１の判定手段と前記センス値と操作部の操作情報とから構成される学習データを記憶手段に保存し、前記第１の判定手段に対して、前記学習データを用いて学習を行った第二の判定手段とを有し、前記第一の判定手段と前記第二の判定手段の性能評価を行い、前記第一の判定手段を前記第二の判定手段に入れ替えるか否かを決定する決定手段を有することを特徴とする。
【発明の効果】
【０００７】
本発明の人感センサを備え、電力制御状態の復帰判定に機械学習を適用した情報処理装置によれば、学習を行ったモデルの復帰判定性能が向上した場合にのみ、学習を行った機械学習モデルに入れ替えて復帰判定に用いることができる。
【図面の簡単な説明】
【０００８】
【図１】ＭＦＰの正面、上面、側面図
【図２】ＭＦＰの構成図
【図３】操作部ＣＰＵにおける全体処理のフローチャート
【図４】ＭＦＰ本体における電源制御処理のフローチャート
【図５】再帰型機械学習モデルの構成図
【図６】学習データ生成処理のフローチャート
【図７】学習データの形式に関する説明図
【図８】学習処理のフローチャート
【図９】実施例における復帰判定モデル更新判定処理のフローチャート
【図１０】学習前復帰判定モデルの性能評価処理のフローチャート
【図１１】学習後復帰判定モデルの性能評価処理のフローチャート
【図１２】他の実施例における復帰判定モデル更新判定処理のフローチャート
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、ネットワークを介して通信可能な複数の機器からなるシステムの形態をとるものも本発明に含まれる。
【実施例１】
【００１０】
■ ＭＦＰ101の外観
図１は、ＭＦＰ101の外観を示す正面図、側面図及び上面図である。
ＭＦＰ101はプリント機能、スキャナ機能、コピー機能、ＦＡＸ機能などの複数の機能を有している。ＭＦＰ101は周辺に存在する物体を検知するためのセンサとして、人感センサ102をＭＦＰ101本体の正面上部に備えている。人感センサ102はたとえば超音波センサなどであり、その検知エリアは、人感センサを中心とし、正面方向に広がる扇形をしており、人感センサ102から出力された信号は操作部203内の操作部ＣＰＵ215で処理される。人感センサ102はＭＦＰ101の電源がオフになっていない限り、検知エリアの状態を取得しつづけることが可能である。
【００１１】
■ ＭＦＰ101の構成説明
図２はＭＦＰ101の構成を表す図であり、ＣＰＵ201は、ＭＦＰ101全体の制御を統括する。
ＤＲＡＭ202は、ＣＰＵ201で実行されるプログラムを格納するとともに、一時的なデータのワークエリアとして機能する。
操作部203は、ＬＣＤ、タッチパネル、ハードウェアキー、ＬＥＤ等のユーザのための入力Ｉ/Ｆ及び出力（表示）Ｉ/Ｆ（図示せず）と、操作部ＣＰＵ215を備える。
操作部ＣＰＵ215は、操作部203内のＲＡＭ217、ＲＯＭ216及びシリアルＩ/Ｆ213を介してシステムバス209と接続される。また、操作部ＣＰＵ215は、人感センサ102とも接続されている。さらに操作部203は、ＮＦＣリーダライタ、Bluetooth(登録商標)モジュール等の、ユーザが保持する携帯端末と通信するための通信Ｉ/Ｆを備えていてもよい。操作部ＣＰＵ215はワンチップマイコンであり、内部にタイマ（図示せず）を備えている。なお、タイマは、操作部ＣＰＵ215がプログラムを実行することにより実現されるソフトウェアタイマであってもよい。また、操作部ＣＰＵ215は、ユーザによる操作をシリアルＩ/Ｆ213を介してＣＰＵ201に通知する。
【００１２】
ネットワークＩ/Ｆ204はＬＡＮ214と接続され、ＭＦＰ101はこれを介して外部機器と通信を行う。
プリンタ部205は、画像データを紙面上に印字する。
スキャナ部206は、紙面上の画像を光学的に読み取り、電気信号に変換してスキャン画像を生成する。
ＦＡＸ207は、公衆回線210と接続して外部機器とファクシミリ通信を行う。
ＨＤＤ（Hard Disk Drive）208は、ＣＰＵ201で実行されるプログラムを格納すると共にプリントジョブやスキャンジョブ等のスプール領域としても利用される。
【００１３】
システムバス209は、各モジュールを相互に接続して通信を行う。
画像処理部211は、ネットワークＩ/Ｆ204で受信したプリントジョブをプリンタ部205で印刷するのに適した画像への画像変換処理、又はスキャナ部206で読み取ったスキャン画像に対する画像処理等を実行する。詳細には、画像変換処理では、ＬＡＮ214からネットワークＩ/Ｆ204を経由して外部装置から受信した画像データ（ＰＤＬコード）をビットマップデータに展開する。また、スキャン画像に対する画像処理は、プリンタ部205で画像データを印字するための前処理としての画像処理を行う。
FLASHＲＯＭ212は、ＣＰＵ201で実行されるプログラムを格納すると共にＭＦＰ101のデフォルト設定値、ユーザごとのデフォルト設定値、一時的なカスタム設定値（以下まとめて「デフォルト設定値」という。）等を記憶する。
シリアルＩ/Ｆ213は、操作部203とシステムバス209を相互接続する。ＬＡＮ214は、外部機器と相互に接続して通信を可能にする。
【００１４】
操作部ＣＰＵ215は、操作部203の制御や人感センサ102の制御、ＲＯＭ216、ＲＡＭ217の読み書き等の制御を担う。なお、人感センサ102の制御は必ずしも操作部ＣＰＵ215が担う必要はなく、別のＣＰＵが人感センサ102の制御を担ってもよい。
ＲＯＭ216は、操作部203に内蔵されており、操作部ＣＰＵ215で実行されるプログラムを格納する。ＲＡＭ217は、操作部203に内蔵されており、人感センサ102や操作部203から取得されたデータを格納する。
電源制御部218であり、ＣＰＵ201、操作部ＣＰＵ215及びユーザによる操作部203に対する操作（例えば、節電ボタンの操作）によりＭＦＰ101の電源を制御する。
【００１５】
■  ＭＦＰ101の動作モード説明
次に、ＭＦＰ101の省電力の待機状態の２つの動作モードについて、簡単に説明する。
ＭＦＰ101は、動作モードとして、スタンバイモード（Standby）及びより消費電力の小さいスリープモード（Sleep）の電力制御状態を有する。スタンバイモードはスキャン動作やプリント動作を実行可能な状態で待機する動作モードで、スリープモードはスタンバイモードよりも省電力状態で待機する動作モードである。
ＭＦＰ101がスタンバイモードのまま所定時間使用されていない状態が継続した場合には、ＣＰＵ201は、スタンバイモードからスリープモードに移行させる。例えば操作部203がユーザによって操作されず、かつジョブを受信しない状態で所定時間継続した場合には、ＣＰＵ201がＭＦＰ101の動作モードをスタンバイモードからスリープモードに移行させる。
【００１６】
■  操作部ＣＰＵ215の処理フロー
次に、図３のフローチャートを用いて、操作部ＣＰＵ215の処理フローについて説明する。
図３に示した操作部ＣＰＵ215の処理は、操作部ＣＰＵ215がＲＯＭ216に格納された制御プログラムを読み出して実行するものとする。また、このフローチャートの処理は、ＭＦＰ101が電源ＯＮされた際に開始される。
S301において、操作部ＣＰＵ215はシリアルＩ/Ｆ213を介してメインＣＰＵ201とのネゴシエーションを行い、通信を確立する。
続くS302において、操作部ＣＰＵ215は内部に備えるタイマ（図示せず）のカウント値を参照し、操作部の入力Ｉ/Ｆの状態を取得する操作部処理を実行すべき時刻か否かを判断し、操作部処理を実行すべき時刻となるまで待機する。
操作部処理を実行すべき時刻となった場合（S302でYes）は、S303で操作部ＣＰＵ215は操作部203に備えるタッチパネル、ハードウェアキーの状態を取得することで、ユーザのＭＦＰ101に対する操作情報を取得する。また、操作部ＣＰＵ215は取得した操作情報を図７に示すデータ管理テーブル（後述）に保存する。
【００１７】
S304において、操作部ＣＰＵ215は人感センサ102のセンス値を取得し、該センス値を図７のデータ管理テーブルに保存する。本実施例では、操作部ＣＰＵ215は人感センサ102を制御してＭＦＰ101の前方に超音波を出力すると共に、出力した超音波の反射波を受信するまでの時間を計測することでＭＦＰ101とその前方に存在する物体との距離を得ることができる。
S305において、操作部ＣＰＵ215は復帰判定処理を実行する。本実施例では、復帰判定処理は時系列データを扱う機械学習モデルであるリカレントニューラルネットワーク(Recurrent Neural Network 以下「ＲＮＮ」という。)で構成された復帰判定モデルで行うものとする。この復帰判定モデルに対し、S304で取得したセンス値を入力することで復帰判定を行う。また、操作部ＣＰＵ215は復帰判定結果を図７で後述するデータ管理テーブルの復帰判定結果の項目に保存するとともに、シリアルＩ/Ｆ213を介して電源制御部218に通知する。
S306において、図７で後述するデータ管理テーブルから学習データを生成し、ＲＡＭ217に保存する。学習データ生成の詳細については後述する。そして、S302に戻り、S302からS306の処理を繰り返す。
【００１８】
■  ＣＰＵ201の電源制御処理
ＣＰＵ201での電源制御処理について図４のフローチャートを用いて説明する。図４に示したＣＰＵ201の処理は、ＣＰＵ201がFLASHＲＯＭ212に格納された制御プログラムを読み出して実行するものとする。
S401において、ＣＰＵ201はスリープモードからスタンバイモードへ移行するためのウェイクアップ処理を行う。ウェイクアップ処理では、ＣＰＵ201の起動処理やシリアルＩ/Ｆ213のイニシャライズ設定を実施する。これにより、ＣＰＵ201は操作部ＣＰＵ215との通信が可能になる。
S402において、ＣＰＵ201は学習データの取得を行う。学習データは、S306で操作部ＣＰＵ215により生成され、ＲＡＭ217に保存されているものである。ＣＰＵ201はシリアルＩ/Ｆ213を介して操作部ＣＰＵ215と通信を行い、学習データの有無の情報を取得する。ＲＡＭ217に学習データが有る場合、ＣＰＵ201は、該学習データを取得し、ＨＤＤ208へ転送、保存する。学習データが無い場合、ＣＰＵ201は学習データの取得を行わない。なお、ＣＰＵ201が取得した学習データはＲＡＭ217から削除されるものとする。
【００１９】
S403において、ＣＰＵ201は学習処理を行う。学習処理に用いる学習データは、ＨＤＤ208に保存された学習データである。学習を行うモデルは、S305の復帰判定処理で説明した復帰判定モデルと同一のモデルである。この復帰判定モデルは既に一度以上学習が行われているものであり、ここでは追加学習を実施する。再帰型機械学習モデルの学習処理の詳細は後述する。また、本実施例ではＭＦＰ101の内部で学習処理を行うものとしているが、外部サーバー等（不図示）で学習処理を実行してもよい。ＣＰＵ201は、学習が完了した復帰判定モデルを操作部ＣＰＵ215へ転送する。以降、操作部ＣＰＵ215は、転送した復帰判定モデルを使用して復帰判定処理を行う。
【００２０】
S404において、ＣＰＵ201はスリープモード移行要求があるかを判定する。スリープモード移行は操作部ＣＰＵ215によって要求されるものである。操作部ＣＰＵ215はスリープモード移行要求を電源制御部218に対して通知する。電源制御部218は通知を受けると、割り込みをＣＰＵ201に対して発行する。従って、ＣＰＵ201は電源制御部からの割り込みを確認することにより、スリープモード移行要求の有無を判定することができる。ＣＰＵ201はスリープモード移行要求が有ると判定した場合、S405へ進む。ＣＰＵ201はスリープモード移行要求が無いと判定した場合、S402へ戻る。
S405において、ＣＰＵ201はスリープモード移行処理を行う。シャットダウン処理は、ＣＰＵ201で処理している各種処理を中断し、中断が完了するまで待機する。
S406において、ＣＰＵ201は電源制御部218にスリープモードへの移行を通知する。電源制御部218はスリープモードへの移行の通知を受けると、操作部ＣＰＵ215以外の処理ブロックに対する電源を遮断する。ＣＰＵ201は本処理によって電源ＯＦＦ状態となり、ＭＦＰ101のスリープモード移行を完了する。なお、スリープモードからスタンバイモードへ移行した際、ＣＰＵ201は再度S401からの処理を行うものとする。
【００２１】
■  再帰型機械学習モデルの説明
図５を用いて、上述した復帰判定処理を行う機械学習モデルを説明する。
上述のとおり、S304で取得した人感センサ102のセンス値は、S302で説明した所定時間間隔で取得して得られた時系列データとなる。時系列データに機械学習を適用する場合、再帰型の機械学習モデルが適していることが一般に知られている。そこで本発明では、機械学習モデルとしてＲＮＮを用いる。ここでは、ＲＮＮとして単純再帰型のネットワークを例示して構成や処理を説明する。
【００２２】
●  再帰型機械学習モデル
図５(a)にＲＮＮの模式図を示す。ＲＮＮは、他の機械学習モデルのネットワークと同様、人の神経細胞におけるニューロンと、ニューロン間の接続であるシナプス、および、シナプスの結合強度入力、をモデル化した構成をとる。具体的には、ニューロンのモデルとして、入力層501、中間層502及び出力層503を備える。各層は、例えばシグモイドのような予め備えた不図示の関数演算式を備え、前段のニューロンからの出力を入力として演算を行い、演算結果である出力値を後段につながる層へ伝搬する。このとき出力値に対して、各シナプスに備えた重み係数(W)505の乗算、および、バイアス係数(B)506の加算を行うことでニューロン間の結合強度を表現する。さらに、ＲＮＮでは中間層502の過去の出力を自身の現在の入力とするためのニューロン507を備える。これにより中間層502は、過去となる時刻tの入力に基づく中間層の出力と、その１時刻先となる時刻t+1の入力とを用いて演算処理を行うことができる。この演算処理を、時刻t=1,2,3と積み重ねて行うことで過去の入力データに基づいた出力が得られる。
【００２３】
●  推論処理
図５(b)を用いて、ＲＮＮに時系列データを入力して出力を得る推論処理を説明する。同図は、図５(a)で示したＲＮＮを時間軸方向に展開した模式図である。
このようにＲＮＮは時間軸方向に展開すると展開時刻分の深さを持つ多層のニューラルネットとみなすことができる。ＲＮＮに対して時刻t=1で入力を与えると、時刻t=1における出力層510の出力、及び中間層からの出力511が得られる。次に、時刻t=2において中間層は時刻t=2の入力と時刻t=1の中間層からの出力511とに基づき時刻t=2における出力層512の出力及び中間層からの出力513を決定する。同様な処理を時系列に行うことでＲＮＮは過去に入力したデータに基づき出力結果を推論できる。出力結果を得るために用いる過去の入力データ数は、ＲＮＮの入力データ長として予め定める。例えば、入力データ長を5、すなわち、時系列データの過去５つの入力に基づき出力を決定するには、時刻t=1〜5でデータを入力して、時刻t=6で得られる出力層514での出力を結果として用いれば良い。
【００２４】
●  学習方法
図５(c)を用いて、ＲＮＮの学習方法を説明する。同図は図５(b)同様にＲＮＮを時間軸方向に展開した模式図である。これを多層のニューラルネットとみなすことで他のニューラルネットと同様に誤差逆伝搬法を適用した学習ができる。これによりネットワークが備える重み係数(W)やバイアス係数(B)を好適に変更して期待する結果を出力するネットワークを得ることができる。
ここで、誤差逆伝搬法とは、ネットワークに対してある入力値を与えて得られた出力値と、入力値に対する期待値とを比較し、出力値と期待値との誤差が減るように前段の出力値の係数（重み係数(W)、バイアス係数(B)）を変更する学習手法である。この処理を出力層から入力層へと逆方向に再帰的に行うことで、ネットワークの各層の係数を変更して所望の出力結果が得られるような学習ができる。
ＲＮＮでは、ある時刻t=Tにおける出力値と期待値との誤差521に加え、それより先の時刻t=T+1の中間層から伝搬する誤差522を用いて誤差逆伝搬法を適用した学習を行う。この学習処理を処理開始時刻t=1まで再帰的にネットワークを遡って行うことでＲＮＮが備える係数を学習し所望のモデルを得ることができる。
なお、本発明で用いるＲＮＮは図５(c)のような単純再帰型のネットワークに限定するものではない。
例えば、中間層のデータ保持期間を制御する機構を備えた長短期記憶型のネットワークでも良く、未来の出力結果を学習に用いる双方向型のネットワークを用いても良い。
いずれのネットワークを用いる場合でも、入力値は時系列で取得した人感センサ102のセンス値とし、出力データは「復帰する」又は「復帰しない」を示す２値として、ネットワークを学習する。
【００２５】
■  学習データ生成処理
図６を用いて、図３のS306における操作部ＣＰＵ215による学習データの生成処理の詳細を説明する。なお、図６では処理する際の時刻をt=T(N+1)として説明するものとする。
S601において操作部ＣＰＵ215は現在の時刻T(N+1)よりも前の時刻の5時刻分のデータがデータ管理テーブルに存在するかを判定する。
【００２６】
ここでデータ管理テーブルについて図７の例を用いて説明する。データ管理テーブルには、各時刻で、センス値、操作有無、復帰判定結果及び正否フラグが格納される。上述したように、センス値は図３のS304で取得してデータ管理テーブルに格納される。同様に、操作有無は図３のS303、復帰判定結果は図３のS305で取得され、データ管理テーブルに格納される。正否フラグは後述するS606で生成されるものである。
【００２７】
一例として、現在の時刻をＴ(5)と仮定して説明する。データ管理テーブルには、時刻T(5)の前の時刻T(0)からT(4)までの５時刻分のデータが存在している。従って、現在の時刻をT(5)とした場合、S601では現在の時刻よりも前の時刻の5時刻分のデータがデータ管理テーブルに存在すると判定され、S602に進む。一方で、現在の時刻をT(4)と仮定した場合には、時刻T(4)の前の時刻T(0)からT(3)までの４時刻分のデータしか存在していない。従って、現在の時刻をT(4)とした場合、S601では現在の時刻よりも前の時刻の5時刻分のデータがデータ管理テーブルに存在しないと判定され、S601で待機する。
なお、本実施例では、5時刻分のデータの有無を確認しているが、これは、復帰判定モデルで使用するＲＮＮモデルの構成に依存するものであり、時刻数については可変である。本実施例では適用するＲＮＮモデルの時刻数を５としており、5時刻分のデータの有無を確認している。しかし、これに限定するものではなく、ＲＮＮモデルの構成に合わせて変わるものである。
S602において操作部ＣＰＵ215はデータ管理テーブルから現在の時刻T(N+1)の操作有無の情報を取得する。図７のデータ管理テーブルでは、操作部ＣＰＵ215は「無」の情報を取得する。
【００２８】
S603において操作部ＣＰＵ215はデータ管理テーブルから時刻T(N)からT(N-4)までのセンス値を所得する。図７のデータ管理テーブルでは、操作部ＣＰＵ215は時刻T(N-4)から順に、「90,100,90,100,80」のセンス値を取得する。
S604において操作部ＣＰＵ215は取得した操作有無の情報と5時刻分のセンス値を学習データとして保存する。現在の時刻をT(N+1)とした場合に生成される学習データは図７の学習データ(N-4)である。センス値と操作有無の情報はS602、S603で取得した値である。このようなセットを学習データとして保存していく。
S605において操作部ＣＰＵ215は現在の時刻T(N+1)の復帰判定結果をデータ管理テーブルから取得する。図７のデータ管理テーブルでは、操作部ＣＰＵ215は「復帰する」の復帰判定結果を取得する。
【００２９】
S606において操作部ＣＰＵ215は取得した操作有無の情報と復帰判定結果から正否フラグを生成する。復帰判定結果と操作有無の情報が、「操作有と復帰する」または「操作無と復帰しない」のいずれかの組み合わせになっている場合は、成功フラグを生成し、非該当の場合は、失敗フラグを生成する。時刻T(N+1)では、「操作無と復帰する」の情報となり、これは上記した組み合わせに含まれないため、失敗フラグが生成されることになる。
S607において操作部ＣＰＵ215は生成した正否フラグをS604で保存した学習データのフラグとして付与する。本フラグを付与することにより、生成した学習データが現状の復帰判定モデルが正解を導けるデータパターンであるかを瞬時に把握することができるようになる。なお、ＲＡＭ217は容量が有限であるため、保存するための容量が不足した場合は、学習データの古い順に削除されるものとする。
また、ここで、データ管理テーブルの正否フラグの項目にデータを格納する。
【００３０】
■  学習処理
図４のS403の学習処理について、図８を用いて説明する。
以下の動作は断りがない限りＣＰＵ201がFLASHＲＯＭ212に格納されたプログラムに沿って実行されるものとする。
S801においてＣＰＵ201は学習タイミングであるかを判定する。例えば、S402で新たに学習データを取得してきて、ＨＤＤ208に未学習の学習データがあった場合に、学習タイミングであると判定する。学習タイミングであると判定した場合には、S802へ進み、そうでない場合は、処理を終了する。
S802においてＣＰＵ201はＨＤＤ208に保存されている学習データをＤＲＡＭ202に読み出してS803へ進む。
【００３１】
S803においてS802で読み出した学習データを用いてＣＰＵ201は機械学習を実行する。所定時間分のセンス値を入力、ユーザの操作情報を正解値の教師データとして、先に述べた方法で学習を行う。なお、各層の係数は開発段階で与えられた学習データによって決定されたものが初期状態として組み込まれているものとする。ＣＰＵ201はこの各層の係数をＭＦＰ設置環境で適宜更新していくことになる。S802で読み出してきたすべての学習データで学習を行ったら、S804に進む。
S804においてＣＰＵ201は復帰判定モデルの更新判定処理を実行する。復帰判定モデル更新判定処理の詳細は後述する。更新すると判定された場合、ＣＰＵ201はS803で学習により更新された各層の係数を操作部ＣＰＵ215に転送する。操作部ＣＰＵ215は転送されてきた各層の係数を復帰判定モデルに設定することで実現されるものである。
なお、以上の学習処理は、情報処理装置であるＭＦＰ101内のＣＰＵ201で学習処理を行ったが、S802〜S803の処理をネットワークで接続された外部のサーバに、学習データを送信し、サーバが学習処理を実行するようにしてもよい。
【００３２】
■  復帰判定モデル更新判定処理
S804のモデル更新判定処理について、図９を用いて説明する。
以下の動作は断りがない限りＣＰＵ201がFLASHＲＯＭ212に格納されたプログラムに沿って実行されるものとする。
なお、このときＨＤＤ208には学習前の復帰判定モデルと学習後の復帰判定モデルの２個のモデルが格納されているものとする。学習前の復帰判定モデルは、現在、操作部ＣＰＵ215が復帰判定に用いているモデルと同一のモデルであり、学習後の復帰判定モデルは、学習前の復帰判定モデルに対して、追加学習を行ったモデルである。
まず、最初に各カウンタ等を初期化しておく。
【００３３】
S901においてＣＰＵ201は、ＨＤＤ208に保存されている学習データの中からランダムで所定数分の学習データを復帰判定モデルの性能評価に用いる性能評価用データとしてＤＲＡＭ202に読み出しを行う。そして、S902に進む。
S902においてS901でＤＲＡＭ202に読み出した性能評価用データを用いてＣＰＵ201は学習前の復帰判定モデルの性能評価を行う。学習前の復帰判定モデルの性能評価処理の詳細は後述する。ＣＰＵ201はモデルによる判定結果が正しかったときにカウントアップする「成功カウンタ」を用いて、モデルの判定成功率を評価する。さらにＣＰＵ201はユーザを検知して復帰することができたときにカウントアップする「復帰成功カウンタ」を用いて、復帰すべきときの復帰成功率を評価する。そして、S903に進む。
S903においてS901で読み出した性能評価用データを用いてＣＰＵ201は学習後の復帰判定モデルで推論を実行する。入力データは所定時間分のセンス値とし、出力データとして復帰する、しないを得る。そして、S904に進む。
【００３４】
S904においてＣＰＵ201は学習後の復帰判定モデルの性能評価を行う。学習後の復帰判定処理の詳細は後述する。ＣＰＵ201はモデルの推論結果が正しいときにカウントアップする「成功カウンタ」を用いて、モデルの判定成功率を評価する。さらにＣＰＵ201はユーザを検知して復帰することができるときにカウントアップする「復帰成功カウンタ」を用いて、復帰すべきときの復帰成功率を評価する。S905に進む。
S905においてＣＰＵ201はS901で読み出したすべての性能評価用データを使って性能評価を行ったかを判定する。すべての性能評価用データで性能評価を行っていなかった場合、S902に戻り、次の異なる性能評価用データを用いて性能評価を行う。すべての性能評価用データで性能評価を行っていた場合、S906に進む。
S906においてＣＰＵ201は学習前の復帰判定モデルと学習後の復帰判定モデルの性能を比較する。S902、S904で用いた「成功カウンタ」と「復帰成功カウンタ」をそれぞれ比較する。両方のカウンタにおいて、学習後の復帰判定モデルのカウント数が上回っていた場合には、学習により性能が向上したと判定してS907に進む。
【００３５】
S907においてＣＰＵ201は学習後の復帰判定モデルの各層の係数を操作部ＣＰＵ215に転送する。操作部ＣＰＵ215は転送されてきた係数を復帰判定モデルに設定することで学習の結果を反映する。上述のように、モデルの入れ替えを実現すると同時に、ＣＰＵ201はＨＤＤ208に格納されている学習前の復帰判定モデルの係数も学習後の復帰判定モデルの係数に入れ替える。このようにして、次の学習タイミングに備える。
【００３６】
■  学習前の復帰判定モデルの性能評価処理
図９のS902の学習前の復帰判定モデルの性能評価処理について、図１０を用いて説明する。
以下の動作は断りがない限りＣＰＵ201がFLASHＲＯＭ212に格納されたプログラムに沿って実行されるものとする。
S1001において性能評価用データに付与されている正否フラグを用いて、ＣＰＵ201は学習前の復帰判定モデルの判定結果が成功か失敗かを判定する。正否フラグが成功の場合は、S1002に進み、正否フラグが失敗である場合は、S1003に進む。
S1002においてＣＰＵ201が成功カウンタをカウントアップして、S1004に進む。
S1003においてＣＰＵ201が失敗カウンタをカウントアップして、S1005に進む。
S1004においてＣＰＵ201が性能評価用データの操作情報が「有」かを判定する。操作情報が「有」の場合は、S1006に進む。操作情報が「無」の場合は、S1007に進む。
【００３７】
S1005においてＣＰＵ201が性能評価用データの操作情報が「有」かを判定する。操作情報が「有」の場合は、S1008に進む。操作情報が「無」の場合は、S1009に進む。
S1006においてＣＰＵ201が復帰成功カウンタをカウントアップする。これは、復帰判定に成功していて、ユーザが操作をしているので、ユーザを検知して復帰できた成功のケースである。
S1007においてＣＰＵ201が非復帰成功カウンタをカウントアップする。これは、復帰判定に成功していて、ユーザが操作をしていないので、ユーザがいないから復帰しなかった成功のケースである。
S1008においてＣＰＵ201が復帰失敗カウンタをカウントアップする。これは、復帰判定に失敗していて、ユーザが操作をしているので、ユーザを検知できずに復帰できなかった失敗のケースである。
S1009においてＣＰＵ201が非復帰失敗カウンタをカウントアップする。復帰判定に失敗していて、ユーザが操作をしていないので、ユーザがいないのに誤復帰してしまった失敗のケースである。
【００３８】
■  学習後の復帰判定モデルの性能評価処理
S904の学習後の復帰判定モデルの性能評価処理について、図１１を用いて説明する。
以下の動作は断りがない限りＣＰＵ201がFLASH ＲＯＭ212に格納されたプログラムに沿って実行されるものとする。
S1101においてＣＰＵ201は学習後の復帰判定モデルの推論結果と性能評価用データの操作情報を比較する。推論結果が「復帰する」のとき、操作情報が「有」であれば推論成功、操作情報が「無」であれば推論失敗となる。また、推論結果が「復帰しない」のとき、操作情報が「有」であれば推論失敗、操作情報が「無」であれば推論成功となる。S1102に進む。
【００３９】
S1102においてS1101で比較した結果、推論成功なのか推論失敗なのかをＣＰＵ201が判定する。推論成功の場合は、S1103に進み、推論失敗の場合は、S1104に進む。
S1103においてＣＰＵ201が成功カウンタをカウントアップして、S1105に進む。
S1104においてＣＰＵ201が失敗カウンタをカウントアップして、S1106に進む。
S1105においてＣＰＵ201は、推論結果が「復帰する」であるかを判定する。推論結果が「復帰する」の場合は、S1107に進み、推論結果が「復帰しない」の場合は、S1108に進む。
S1106においてＣＰＵ201は、推論結果が「復帰する」であるかを判定する。推論結果が「復帰する」の場合は、S1109に進み、推論結果が「復帰しない」の場合は、S1110に進む。
S1107においてＣＰＵ201が復帰成功カウンタをカウントアップする。これは、推論に成功していて、推論結果が「復帰する」なので、ユーザを検知して復帰できる成功のケースである。
【００４０】
S1108においてＣＰＵ201が非復帰成功カウンタをカウントアップする。推論に成功していて、推論結果が「復帰しない」なので、ユーザがいないので復帰をしない成功のケースである。
S1109においてＣＰＵ201が非復帰失敗カウンタをカウントアップする。推論に失敗していて、推論結果が「復帰する」ということは、操作情報が「無」の場合で、ユーザがいないのに誤復帰してしまう失敗のケースである。
S1110においてＣＰＵ201が復帰失敗カウンタをカウントアップする。推論に失敗していて、推論結果が「復帰しない」ということは、操作情報が「有」の場合で、ユーザを検知できずに復帰できない失敗のケースである。
以上の処理を終えて、本処理を終了する。
【００４１】
以上、説明したように、本実施例のＭＦＰでは、ＭＦＰの設置環境に応じた学習データを自動で作成することが可能である。作成した学習データを用いて、追加学習を行うことでＭＦＰの設置環境に適した復帰判定を行うことが可能になる。さらに、追加学習を行った後の復帰判定モデルと追加学習を行う前の復帰判定モデルの性能評価を行い、性能評価を比較し、学習結果を復帰判定モデルに反映させるかを決定する。これにより、復帰判定モデルの性能を自動的に向上させていくことができる。さらにモデルの判定成功率だけでなく、ユーザが関わるときに復帰するか否かを評価することで、ユーザが関わるとき、すなわち復帰すべき時に復帰することを重視したモデルを復帰判定に用いることが可能となる。
【実施例２】
【００４２】
実施例１では、復帰判定モデルの性能評価に判定成功率に加えて、ユーザが関わるときに復帰するか否かの復帰成功率を用いた。上記の方法では、ユーザが関わるときの復帰判定を重視できるという利点があった。一方、判定成功率や、復帰成功率が学習により高くなった場合でも、今まで正しく判定することができていたケースが学習によって判定できなくなる可能性があり、その場合にはユーザに性能劣化を感じさせることが考えられる。特に、
以上の理由から本実施例では、復帰判定モデルの性能評価において判定成功率に加えて、学習前の復帰判定モデルで成功できていたケースが学習後の復帰判定モデルでも成功できるか否かという指標を用いる方法を説明する。なお、実施例１と同様の処理は、既に説明しているため、説明を省略する。
【００４３】
■  復帰判定モデル更新判定処理
S804のモデル更新判定処理が異なるため、図１２を用いて説明する。以下の動作は断りがない限りＣＰＵ201がFLASHＲＯＭ212に格納されたプログラムに沿って実行されるものとする。
実施例１と同様に、ＨＤＤ208には学習前の復帰判定モデルと学習後の復帰判定モデルの２個のモデルが格納されているものとする。学習前の復帰判定モデルは、現在操作部ＣＰＵ215が復帰判定に用いているモデルと同一のモデルであり、学習後の復帰判定モデルは、学習前の復帰判定モデルに対して、追加学習を行ったモデルである。
まず、最初に各カウンタ等を初期化しておく。
S1201においてＣＰＵ201は性能評価用データの読み出しを行う。ＣＰＵ201はＨＤＤ208に保存されている学習データの中からランダムで所定数分の学習データを、性能評価用データとしてＤＲＡＭ202に読み出す。S1202に進む。
【００４４】
S1202においてS1201で読み出した性能評価用データを用いてＣＰＵ201は学習後の復帰判定モデルで推論を実行する。入力データは所定時間分のセンス値とし、出力データとして復帰する、復帰しないを得る。S1203に進む。
S1203においてＣＰＵ201は学習後の復帰判定モデルの推論結果と性能評価用データの操作情報を比較する。推論結果が「復帰する」のとき、操作情報が「有」であれば推論成功、操作情報が「無」であれば推論失敗となる。また、推論結果が「復帰しない」のとき、操作情報が「有」であれば推論失敗、操作情報が「無」であれば推論成功となる。そして、S1204に進む。
S1204においてS1203で比較した結果、推論成功なのか失敗なのかをＣＰＵ201が判定する。推論成功の場合はS1205に進み、推論失敗の場合はS1206に進む。
S1205においてＣＰＵ201は推論成功カウンタをカウントアップして、S1207に進む。
S1206においてＣＰＵ201は推論失敗カウンタをカウントアップして、S1208に進む。
S1207においてＣＰＵ201は性能評価用データに付与されている正否フラグを用いて、学習前の復帰判定モデルの判定結果が成功か失敗かを判定する。正否フラグが成功の場合(S1207でYes)は、S1209に進み、ＣＰＵ201はフラグ成功カウンタをカウントアップして、S1214に進む。正否フラグが失敗の場合(S1207でNo)はS1210に進み、ＣＰＵ201はフラグ失敗カウンタをカウントアップして、S1214に進む。
【００４５】
S1208において、S1207と同様に学習前の復帰判定モデルの判定結果が成功か失敗かを判定する。正否フラグが成功の場合(S1208でYes)は、S1211に進み、ＣＰＵ201はフラグ成功カウンタをカウントアップして、S1213に進む。
S1213では、ＣＰＵ201は更新ＮＧカウンタをカウントアップして、S1214に進む。
一方、正否フラグが失敗の場合(S1208でNo)は、S1212に進み、ＣＰＵ201はフラグ失敗カウンタをカウントアップして、S1214に進む。
【００４６】
S1214においてＣＰＵ201はS1201で読み出したすべての性能評価用データを使って性能評価を行ったかを判定する。すべての性能評価用データで性能評価を行っていなかった場合、S1202に戻り、次の異なる性能評価用データを用いて性能評価を行う。すべての性能評価用データで性能評価を行っていた場合(S1214でYes)、S1215に進む。
S1215においてＣＰＵ201は推論成功カウンタの値とフラグ成功カウンタの値を比較する。推論成功カウンタの値がフラグ成功カウンタの値を上回っているか否かを判定する。この条件を満たした場合、学習後の復帰判定モデルの判定成功率が高くなっていると判定できる。上述したカウンタ値の比較に加えて、更新ＮＧカウンタの値が０であるか否かを判定する。この条件を満たした場合、学習前の復帰判定モデルで成功していたケースが、学習後復帰判定モデルでもすべて成功できると判定できる。したがって、両方の条件を満たした場合にのみ確実に性能が向上したと判断してS1216に進む。
【００４７】
S1216においてS907と同様に、ＣＰＵ201は学習後復帰判定モデルの各層の係数を操作部ＣＰＵ215に転送する。操作部ＣＰＵ215は転送されてきた係数を復帰判定モデルに設定することで学習の結果を反映する。上述のように、モデルの入れ替えを実現すると同時に、ＣＰＵ201はＨＤＤ208に格納されている学習前の復帰判定モデルの係数も学習後の復帰判定モデルの係数に入れ替える。このようにして、次の学習タイミングに備える。
以上、説明したように、本実施例では、復帰判定モデルの判定成功率に加えて、学習前の復帰判定モデルで成功できていたケースが学習後の復帰判定モデルでも成功できているか否かを評価して、学習結果を復帰判定モデルに反映させるかを決定する。これにより、ユーザに性能劣化を感じさせることなく、復帰判定モデルの性能を自動的に向上させていくことが可能となる。
【００４８】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ＡＳＩＣ)によっても実現可能である。
【符号の説明】
【００４９】
102  人感センサ
201  ＣＰＵ
【図１】
2020038538.tif 000003
【図２】
2020038538.tif 000004
【図３】
2020038538.tif 000005
【図４】
2020038538.tif 000006
【図５】
2020038538.tif 000007
【図６】
2020038538.tif 000008
【図７】
2020038538.tif 000009
【図８】
2020038538.tif 000010
【図９】
2020038538.tif 000011
【図１０】
2020038538.tif 000012
【図１１】
2020038538.tif 000013
【図１２】
2020038538.tif 000014