(57)【要約】【課題】  人感センサを備えた装置の復帰判定に機械学習を適用する際に、必要最低限の学習データでより効率的に復帰判定モデルの判定率を向上させるための技術を提供する。【解決手段】  情報処理装置であって、物体を検知するセンサと、そのセンス値に基づいて前記情報処理装置の電力制御状態を変更するか否か機械学習モデルを用いて判定する判定手段と、操作部の操作情報を取得し、判定手段の判定結果と操作情報から特徴値を生成し、学習データに前記特徴値を付与するとともに、特徴値に基づいて前記学習データを学習目的に保存するかどうかを決定する。【選択図】図３
2020037233.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
周辺に存在する物体を検知するセンサと、
前記センサから得られるセンス値に基づいて前記情報処理装置の電力制御状態を変更するか否か機械学習モデルを用いて判定する判定手段と、
操作部の操作情報を取得する取得手段と、
前記判定手段が出力した判定結果と前記取得手段が取得した操作情報から特徴値を生成する第１の生成手段と、
少なくとも前記センス値と前記操作情報と前記特徴値から構成される学習データを生成する第２の生成手段と、
前記第２の生成手段で生成された前記学習データを保存する記憶手段と、
前記特徴値に基づいて前記記憶手段に保存する前記学習データを調整する調整手段を、有する
ことを特徴とする情報処理装置。
【請求項２】
前記特徴値は、前記判定結果と前記操作情報との所定の組み合わせに基づいて付与される、「成功」又は「失敗」の２種類のフラグであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記特徴量は、前記判定結果と前記操作情報との所定の組み合わせに基づいて付与される、４種類のフラグであることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記調整手段は、前記学習データに付与されている前記フラグと同一のフラグが付与された学習データが前記記憶手段に所定の個数、保存されていた場合は、保存されている個数が増えないよう記憶手段に保存する学習データを調整する
ことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記調整手段は、前記記憶手段に保存されている前記フラグと同一のフラグが付与された学習データからランダムに１つの学習データを削除し、前記学習データを保存する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記調整手段は、前記第２の生成手段で生成された学習データを前記記憶手段に保存することなく破棄する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記調整手段は、前記学習データに付与されている前記フラグと同一のフラグが付与された学習データが前記記憶手段に所定値の個数、保存されていない場合は、前記第２の生成手段で生成された学習データを記憶手段に保存するよう調整する
ことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項８】
前記特徴量は、前記センス値から算出される重要度であることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記重要度は、センス値の平均値とセンス値の変動係数から算出することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記決定手段は、前記記憶手段に保存された学習データの中で重要度が最も低いものと前記学習データに付与されている重要度とを比較し、前記生成した学習データの重要度が高い場合には、前記記憶手段から最も低い重要度が付与されている学習データを削除し、前記生成した学習データを保存することを決定する
ことを特徴とする請求項８又は９に記載の情報処理装置。
【請求項１１】
前記判定手段の機械学習モデルは、リカレントニューラルネットワークである
ことを特徴とする請求項１〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記情報処理装置は、画像処理装置である
ことを特徴とする請求項１〜１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記電力制御状態は、第１の電力制御状態又は前記第１の電力制御状態よりも消費電力が小さい第２電力制御状態であり、
前記操作情報は操作部の操作の有無に関する情報である
ことを特徴とする請求項１〜１２のいずれか１項に記載の情報処理装置。
【請求項１４】
周辺に存在する物体を検知するセンサと、記憶手段を備える情報処理装置の制御方法であって、
前記センサから得られるセンス値に基づいて前記情報処理装置の電力制御状態を変更するか否か機械学習モデルを用いて判定する判定ステップと、
操作部の操作情報を取得する取得ステップと、
前記判定ステップにおいて出力された判定結果と前記取得ステップにおいて取得された操作情報から特徴値を生成する第１の生成ステップと、
少なくとも前記センス値と前記操作情報と前記特徴値から構成される前記学習データを生成する第２の生成ステップと、
前記第２の生成ステップにおいて生成された前記学習データを前記記憶手段に保存する記憶ステップと、
前記特徴値に基づいて前記学習データを保存する前記学習データを調整する調整ステップを、有する
ことを特徴とする情報処理装置の制御方法。
【請求項１５】
請求項１４に記載の情報処理装置の制御方法をコンピュータにより実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、超音波センサ等の人感センサを備えた画像処理装置等の情報処理装置において、省電力状態にある該装置の復帰制御に関する技術である。
【背景技術】
【０００２】
プリント(印刷)、スキャン、コピー、ファック等の複数の機能を有する多機能な画像処理装置（Multi Function Peripheral:以下「ＭＦＰ」という。）が知られている。ＭＦＰ等の情報処理装置において接近する人（ユーザ）を検出するための人感センサを備え、該センサの出力に基づいて、人の接近を検知して省電力状態（スリープモード）からスタンバイモードや通常状態に復帰する機能を有するものがある。例えば、人感センサのセンス値をＭＦＰと接近する人との距離と関連づけた特徴量として判断する判定手段を用いて、センス値が所定の値以上となったら人がＭＦＰに接近したと判断してＭＦＰを通常状態に復帰させることができる。
一方、人感センサの検知履歴とＭＦＰ操作部の操作履歴に基づいて人感センサの感度（閾値）を自動で調整することで、復帰判定に係る誤判定を低減させる技術が知られている（特許文献１）。
【０００３】
しかしながらＭＦＰの設置環境によっては、復帰判定に係る誤判定が避けられない場合ある。例えば、通路脇に設置したＭＦＰにおいては、ユーザとＭＦＰの前を通り過ぎる人のどちらもＭＦＰに十分接近してしまうため、単に距離の特徴量だけではいかに人感センサの感度を調整しても正しい判定が困難である。
このような場合、予め設計した特徴量を用いた判定手法ではなく、それぞれの環境で得られたデータに基づき、得られたデータの相互の関連や規則性を見出して判定処理を行う機械学習モデルを用いるのが有効であることが一般に知られている。すなわち、人感センサを備えたＭＦＰにおいては、それぞれのＭＦＰ設置環境で得られた人感センサのセンス値を用いて、予めＭＦＰが備える復帰判定モデルに対して学習させることで、復帰判定モデルの判定率を向上させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2010-147725号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
機械学習によるモデルの性能向上は、モデルに学習させる学習データに大きく依存することが知られている。同じ性質を持った学習データばかりを学習してもモデルの性能向上につながらないばかりか、過学習に陥る可能性がある。
本発明の目的は、学習データに特徴値を付与し、該特徴値が均等になるよう学習データを蓄積することにより、いわゆる学習データのクレンジングを行う。そして、人感センサを備えた装置の復帰判定に機械学習モデルを適用する際に、必要最低限の学習データで、より効率的に復帰判定モデルの判定率を向上させるための技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、情報処理装置であって、周辺に存在する物体を検知するセンサと、前記センサから得られるセンス値に基づいて前記情報処理装置の電力制御状態を変更するか否か機械学習モデルを用いて判定する判定手段と、操作部の操作情報を取得する取得手段と、前記判定手段が出力した判定結果と前記取得手段が取得した操作情報から特徴値を生成し、学習データに前記特徴値を付与する生成手段と、少なくとも前記センス値と前記操作情報と前記特徴値から構成される前記学習データを保存する記憶手段と、前記特徴値に基づいて前記学習データを保存するか否か決定する決定手段を、有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、学習データに特徴値を付与することで、該特徴値が均等になるよう学習データを蓄積することができる。そして、人感センサを備えた装置の復帰判定に機械学習モデルを適用する際に、必要最低限の学習データでより効率的に復帰判定モデルの判定率を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】ＭＦＰの外観を示す正面図、側面図及び上面図
【図２】ＭＦＰの構成を表すハードウェアブロック図
【図３】操作部ＣＰＵの全体処理フローチャート
【図４】データ管理テーブルを示す図
【図５】操作部ＣＰＵのデータに対するフラグ生成処理のフローチャート
【図６】操作部ＣＰＵの学習データ生成処理のフローチャート
【図７】操作部ＣＰＵが作成する学習データ管理テーブル
【図８】復帰判定モデルの構成を示した図
【図９】電源制御処理のフローチャート
【図１０】学習処理のフローチャート
【図１１】他の実施例におけるフラグ生成処理のフローチャート
【図１２】別の実施例におけるデータ管理テーブル
【図１３】別の実施例における学習データ生成処理のフローチャート
【発明を実施するための形態】
【実施例１】
【０００９】
本発明に係る一実施例として人感センサを備えた装置であるＭＦＰについて説明する。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても複数の機器からなるシステムの形態をとるものも本発明に含まれる。
【００１０】
■ ＭＦＰ101の外観
図１は、ＭＦＰ101の外観を示す正面図、側面図及び上面図である。
ＭＦＰ101はプリント機能、スキャナ機能、コピー機能、ＦＡＸ機能などの複数の機能を有している。ＭＦＰ101は周辺に存在する物体を検知するためのセンサとして、人感センサ102をＭＦＰ101本体の正面上部に備えている。人感センサ102はたとえば超音波センサなどであり、その検知エリアは、人感センサを中心とし、正面方向に広がる扇形をしており、人感センサ102から出力された信号は操作部203内の操作部ＣＰＵ215で処理される。人感センサ102はＭＦＰ101の電源がオフになっていない限り、検知エリアの状態を取得しつづけることが可能である。
本実施例の人感センサ102は、非可聴域の40[KHz]の送信波を出力し、物体に反射した反射波を受信することにより、物体までの距離を測定可能な超音波センサである。なお、人感センサ102は、物体（人を含む）との距離を測定可能なセンサであれば、超音波センサ以外の他のセンサであってもよい。例えば、超音波センサと同様に一定時間ごとの装置と物体との距離の変化を確認可能な、赤外線反射センサが使用されてもよい。
【００１１】
■ ＭＦＰ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がＭＦＰ101の動作モードをスタンバイモードからスリープモードに移行させる。例えば、操作部203がユーザによって操作されず、かつ、ジョブを受信しない状態で所定時間継続した場合には、ＣＰＵ201がＭＦＰ101の動作モードをスタンバイモードからスリープモードに移行させる。
【００１６】
■  操作部ＣＰＵ215の処理
次に、図３のフローチャートを用いて、操作部ＣＰＵ215の処理フローについて説明する。
図３に示した操作部ＣＰＵ215の処理は、操作部ＣＰＵ215がＲＯＭ216に格納された制御プログラムを読み出して実行するものとする。また、このフローチャートの処理は、ＭＦＰ101が電源ＯＮされた際に開始される。
S301において、操作部ＣＰＵ215はシリアルＩ/Ｆ213を介してメインＣＰＵ201とのネゴシエーションを行い、通信を確立する。
続くS302において、操作部ＣＰＵ215は内部に備えるタイマ（図示せず）のカウント値を参照し、操作部の入力Ｉ/Ｆの状態を取得する操作部処理を実行すべき時刻か否かを判断し、操作部処理を実行すべき時刻となるまで待機する。
操作部処理を実行すべき時刻となった場合（S302でYes）は、S303で操作部ＣＰＵ215は操作部203に備えるタッチパネル、ハードウェアキーの状態を取得することで、ユーザのＭＦＰ101に対する操作情報を取得する。また、操作部ＣＰＵ215は取得した操作情報を図４に示すデータ管理テーブル400（後述）に保存する。
【００１７】
S304において、操作部ＣＰＵ215は人感センサ102のセンス値を取得し、該センス値を図４のデータ管理テーブル400に保存する。本実施例では、操作部ＣＰＵ215は人感センサ102を制御してＭＦＰ101の前方に超音波を出力すると共に、出力した超音波の反射波を受信するまでの時間を計測することでＭＦＰ101とその前方に存在する物体との距離を得ることができる。
S305において、操作部ＣＰＵ215は復帰判定処理を実行する。本実施例では、復帰判定処理は時系列データを扱う機械学習モデルであるリカレントニューラルネットワーク(Recurrent Neural Network 以下「ＲＮＮ」という。)で構成された復帰判定モデルで行うものとする。予め学習済みの復帰判定モデルに対し、S304で取得したセンス値を入力することで復帰判定を行う。また、操作部ＣＰＵ215は復帰判定結果を図４で後述するデータ管理テーブル400の復帰判定結果の項目に保存するとともに、シリアルＩ/Ｆ213を介して電源制御部218に通知する。
S306において、操作部ＣＰＵ215はデータ管理テーブル400（図４）に保存された、現在の時刻のセンス値、操作有無、復帰判定結果に対するフラグを生成する。フラグの生成方法に関しては後述する。
S307において、操作部ＣＰＵ215はデータ管理テーブル400（図４）から学習データを生成し、ＲＡＭ217に保存する。このとき、操作部ＣＰＵ215はS306で生成したフラグを参照し、そのフラグの結果に応じて学習データをＲＡＭ217に保存するか否か決定する。そして、S302に戻り、S302〜S307の処理を繰り返す。
【００１８】
●  データ管理テーブル
図４に、操作部ＣＰＵ215が作成するデータ管理テーブル400を示す。
データ管理テーブル400は操作部ＣＰＵ215によってＲＡＭ217上に作成される。データ管理テーブル400は、各時刻の人感センサ102の「センス値」、操作部203の「操作有無」、図８の復帰判定モデル800が出力する「復帰判定結果」、及び時系列データに対する「フラグ」で構成される。学習データ（N-4）に関しては後述する。
【００１９】
■  フラグ生成処理
図３のS306における操作部ＣＰＵ215の時系列データに対する特徴値としてのフラグ生成処理について図５を用いて説明する。フラグ生成処理は、S306で説明したように操作部ＣＰＵ215により実行される。
S501において、操作部ＣＰＵ215はデータ管理テーブル400を参照し、復帰判定結果が「復帰する」であるか否か判断する。「復帰する」であった場合（S501でYes）、S502に進み、操作部ＣＰＵ215はデータ管理テーブル400を参照し、操作有無が「有」であるか否かを判断する。ここで「有」であった場合（S502でYes）、ＭＦＰ101に対してユーザが操作するケース、すなわち、ＭＦＰ101が復帰すべきときに、復帰判定モデル800は「復帰する」判定ができたことを意味する。この場合、S503に進み、操作部ＣＰＵ215はデータ管理テーブル400に対して「成功」フラグを設定する。反対に、操作有無が「無」であった場合（S502でNo）、ＭＦＰ101に対してユーザが操作を行わないケース、すなわち、ＭＦＰ101が復帰すべきでないときに、復帰判定モデル800は「復帰する」判定をしてしまったことを意味する。この場合、S504に進み、操作部ＣＰＵ215はデータ管理テーブル400に対して「失敗」フラグを設定する。
【００２０】
一方、S501において復帰判定結果が「復帰する」でなかった場合（S501でNo）、S505に進み、操作部ＣＰＵ215はデータ管理テーブル400を参照し、操作有無が「有」であるか否かを判断する。ここで「有」であった場合（S505でYes）、ＭＦＰ101に対してユーザが操作するケース、すなわち、ＭＦＰ101が復帰すべきときに、復帰判定モデル800は「復帰しない」判定をしてしまったことを意味する。この場合、S506に進み、操作部ＣＰＵ215はデータ管理テーブル400に対して「失敗」フラグを設定する。反対に、操作有無が「無」であった場合（S505でNo）、ＭＦＰ101に対してユーザが操作を行わないケース、すなわち、ＭＦＰ101が復帰すべきでないときに、復帰判定モデル800は「復帰しない」判定ができたことを意味する。この場合、S507に進み、操作部ＣＰＵ215はデータ管理テーブル400に対して「成功」フラグを設定する。
【００２１】
■  学習データの生成処理
図６を用いて、図３のS307における操作部ＣＰＵ215による学習データの生成処理の詳細を説明する。なお、図６では処理する際の時刻をt=T(N+1)として説明するものとする。
S601において操作部ＣＰＵ215は現在の時刻T(N+1)よりも前の所定時刻分のデータがデータ管理テーブル400上に存在するか否かを判定する。S601では現在の時刻よりも前の所定時刻分のデータがデータ管理テーブルに存在すると判定された場合は、S602に進み、そうでない場合は、S601で待機する。
S602において、操作部ＣＰＵ215はデータ管理テーブル400から現在の時刻T(N+1)の操作有無とフラグを取得する。図４に示した例においては、操作部ＣＰＵ215は「無」と「失敗」の情報を取得する。
S603において、操作部ＣＰＵ215はデータ管理テーブルから時刻T(N)から所定時刻前までのセンス値を所得する。ここで、図４に示した例において５時刻分前までのセンス値を取得する場合、操作部ＣＰＵ215は時刻T(N-4)から順に、「90,100,90,100,80」のセンス値を取得する。
【００２２】
S604において、操作部ＣＰＵ125は取得したデータをセットにして学習データを生成する。図４に示した例において５時刻分前までのセンス値を取得した場合、生成される学習データは学習データ(N-4)となる。
S605において、操作部ＣＰＵ215は図７で後述する学習データ管理テーブル700内の学習データのフラグを参照し、S604で生成した学習データのフラグと同一のフラグを持つ学習データの個数を算出する。
S606において、操作部ＣＰＵ215は同一のフラグを持つ学習データの個数が所定値に達しているか否かを判断する。所定値に達していた場合（S606でYes）、S607において操作部ＣＰＵ215は学習データ管理テーブル700内の同一フラグを持つ学習データの中からランダムに１つ選択、削除し、S604で生成した学習データを保存する。
ここでは、学習データを同一のフラグを持つ学習データを所定の個数以上に増やさず、学習データに偏りをなくすという作業を行っている。
なお、学習データ管理テーブル700内の学習データを必ずしもランダムに選択して削除する必要はなく、最も古い学習データを削除する構成であってもよく、また、最も新しいデータを選択、すなわち新しいデータを保存しない構成としてもよい。所定値に達していなかった場合（S606でNo）、S608において操作部ＣＰＵ215はS604で生成した学習データをそのまま学習データ管理テーブル700に保存する。
【００２３】
●  学習データ管理テーブル
図７に、操作部ＣＰＵ215が作成する学習データ管理テーブル700を示す。学習データ管理テーブル700はＲＡＭ217に保存されており、学習データを取得した順序を示す「No」の要素、学習データに付与される「フラグ」、学習データを構成する「センス値」と「操作有無」の要素を持つ。ここで、「センス値」は復帰判定モデル800の学習を行う際の入力データとなり、「操作有無」は正解ラベルとなる。
上述したS606〜S608のフローにより、操作部ＣＰＵ215は学習データ管理テーブル700の中の各フラグの個数を制御することができる。よって、ＲＡＭ等の限られたストレージ内において、異なるフラグ（属性）の学習データをどれか一方に偏ることなく収集することができる。
【００２４】
■  再帰型機械学習モデルの説明
図８は操作部ＣＰＵ215が復帰判定に用いる復帰判定モデル800の構成を示した図である。
人感センサのように一定時間間隔で取得して得られた時系列データをモデル化するためには、再帰型の機械学習モデルが適していることが一般に知られている。本実施例では、機械学習モデルとしてリカレントニューラルネットワーク(Recurrent Neural Network 以下「ＲＮＮ」という。)を用いるものとする。図８を用いてＲＮＮの詳細を説明する。ＲＮＮには多様な種類があるため、ここでは単純再帰型のネットワークを例として、構成や処理を説明する。
【００２５】
●  再帰型機械学習モデル
図８(a)にＲＮＮの模式図を示す。ＲＮＮは、他の機械学習モデルのネットワークと同様、人の神経細胞におけるニューロンとニューロン間の接続であるシナプス、および、シナプスの結合強度入力、をモデル化した構成をとる。具体的には、ニューロンのモデルとして、入力層801、中間層802、および、出力層803を備え、各層は予め備えた演算式を備える。各層では、前段のニューロンからの出力を入力として演算を行い、演算結果である出力値を後段につながる層へ伝搬する。このとき出力値に対して、各シナプスに備えた重み係数(W)805を乗算、および、バイアス係数(B)806の加算を行うことでニューロン間の結合強度を表現する。また、ＲＮＮでは更に中間層802の過去の出力を自身の現在の入力とするためのニューロン804を備える。これにより中間層802は、時刻tの入力に基づく中間層の出力と時刻t+1の入力とを用いて演算処理を行うことができる。時刻tをt=1,2,3と進めることで時刻tに関する時系列の入力データに対して、中間層802からの過去の出力値を考慮した出力値を生成できる。
【００２６】
●  推論処理
図８(b)を用いて、ＲＮＮに時系列データを入力して出力を得る推論処理を説明する。同図は、図８(a)で示したＲＮＮを時間軸方向に展開した模式図である。
ＲＮＮは時間軸方向に展開すると展開時刻分の深さを持つ多層のニューラルネットとみなすことできる。ＲＮＮに対して時刻t=1で入力を与えると、時刻t=1における出力層810の出力、および、中間層からの出力811が得られる。次に、時刻t=2において中間層は時刻t=2の入力と時刻t=1の中間層からの出力811とに基づき出力を決定する。同様な処理を時系列に行うことでＲＮＮは過去に入力したデータに基づき出力結果を推論できる。出力結果を得るために用いる過去の入力データ数は、ＲＮＮの入力データ長として予め定める。例えば、入力データ長を５、すなわち、時系列データの過去５つの入力に基づき出力を決定するには、時刻t=1〜5でデータを入力して（812）、時刻t=6で得られる出力層813の出力を結果として用いればよい。
【００２７】
●  学習方法
図８(c)は図８(b)と同様にＲＮＮを時間軸方向に展開した模式図である。同図を用いて、ＲＮＮの学習方法を説明する。上述したように、ＲＮＮは時間軸方向に展開すると展開時刻分の深さを持つ多層のニューラルネットとみなすことができる。よって、これを多層のニューラルネットとみなすことで、他のニューラルネットと同様に誤差逆伝搬法を適用した学習ができる。これによりネットワークが備える重み係数(W)やバイアス係数(B)を好適に変更して期待する結果を出力するネットワークを得ることができる。
【００２８】
ここで、誤差逆伝搬法とは、ネットワークに対するある入力値を入力して得られた出力値と入力値に対する期待値とを比較し、出力値と期待値との誤差が減るように前段の出力値の係数（重み係数(W)、バイアス係数(B)）を変更する学習手法である。特にＲＮＮでは時間方向軸に展開したネットワークに対する誤差逆伝搬法（Back Propagation Through Time：ＢＰＴＴ）を用いて学習を行う。ＢＰＴＴでは、ある時刻ｔにおける出力値と期待値との誤差821に加え、それより先の時刻t+1の中間層から伝搬する誤差822を用いて時間軸方向で誤差逆伝搬法を適用した学習を行う。また、ＢＰＴＴを用いた学習では学習の打ち切り数を設定することで、学習で用いる時系列データ長を指定できる。例えば、学習打ち切り数を５と設定した場合、連続する５時刻分の入力データと、それに対する期待値を教師データとした学習データを用いてＲＮＮを学習することができる。
本発明で用いるＲＮＮは、上述した単純再帰型のネットワークでもよく、それを拡張した不図示の長短期記憶（Long Short Term Memory：以下、ＬＳＴＭとする）型のネットワークを使用してもよい。ＬＳＴＭは各層間のデータ伝搬を制御するゲートを備えており、時間軸方向のデータ依存度を詳細に制御することで高精度な学習を行い、より精度の高い判定処理ができる。
いずれのネットワークであっても、本発明で用いる復帰判定処理を行う機械学習モデルでは、入力データは時系列で取得した人感センサのセンス値とし、出力データは「復帰する」又は「復帰しない」を示す２種類とすることで、上述した推論や学習ができる。
【００２９】
■  ＣＰＵ201の電源制御処理
図９はＣＰＵ201による電源制御処理を示す図である。図９に示したＣＰＵ201の処理は、ＣＰＵ201がFLASHＲＯＭ212に格納された制御プログラムを読み出して実行するものとする。
S901において、ＣＰＵ201はスリープモードからスタンバイモードへ移行するためのウェイクアップ処理を行う。ウェイクアップ処理では、ＣＰＵ201の起動処理やシリアルＩ/Ｆ213のイニシャライズ設定を実施する。これにより、ＣＰＵ201は操作部ＣＰＵ215との通信が可能になる。
S902において、ＣＰＵ201は操作部ＣＰＵ215にシリアルＩ/Ｆ213を介して学習データの取得要求を行い、学習データを操作部ＣＰＵ215から取得しＨＤＤ208へ保存する。このとき、操作部ＣＰＵ215は転送した学習データを学習データ管理テーブル700から破棄してもよい。また、操作部ＣＰＵ215は新たな学習データが学習データテーブル700上に存在しない場合、学習データの転送を受け付けなくてもよい。
S903において、ＣＰＵ201は学習処理を行う。学習処理の詳細に関しては図１０で後述する。学習処理に用いる学習データは、ＨＤＤ208に保存された学習データである。学習を行うモデルは、S305の復帰判定処理で説明した復帰判定モデルと同一のモデルである。この復帰判定モデルは既に一度以上学習が行われているものであり、本実施例では追加学習を実施する。また、本実施例ではＭＦＰ101の内部で学習処理を行うものとしているが、外部サーバ等（不図示）で学習処理を実行してもよい。ＣＰＵ201は、学習が完了した復帰判定モデルを操作部ＣＰＵ215へ転送する。以降、操作部ＣＰＵ215は、転送した復帰判定モデルを使用して復帰判定処理を行う。
【００３０】
S904において、ＣＰＵ201はスリープモード移行要求があるかを判定する。例えば、ユーザの操作部203に対する操作（例えば、節電ボタンの操作）に応じて、操作部ＣＰＵ215はスリープモード移行要求を電源制御部218に対して通知する。電源制御部218は通知を受けると、割り込みをＣＰＵ201に対して発行する。従って、ＣＰＵ201は電源制御部からの割り込みを確認することにより、スリープモード移行要求の有無を判定することが出来る。ＣＰＵ201はスリープモード移行要求が有ると判定した場合、S905へ進む。ＣＰＵ201はスリープモード移行要求が無いと判定した場合、S902へ戻る。
S905において、ＣＰＵ201はスリープモード移行処理を行う。スリープモード移行処理は、ＣＰＵ201で処理している各種処理を中断し、中断が完了するまで待機する。
S906において、ＣＰＵ201は電源制御部218にスリープモードへの移行を通知する。電源制御部218はスリープモードへの移行を受けると、操作部ＣＰＵ215以外の処理ブロックに対する電源を遮断する。ＣＰＵ201は本処理によって電源ＯＦＦ状態となり、ＭＦＰ101のスリープモード移行を完了する。なお、電源制御状態がスリープモードからスタンバイモードへ移行した際、ＣＰＵ201は再度S901からの処理を行うものとする。
【００３１】
■  学習処理
図１０はＣＰＵ201が行う学習処理の流れを示した図である。
以下の動作は断りがない限りＣＰＵ201がFLASHＲＯＭ212に格納されたプログラムに沿って実行されるものとする。
S1001において、ＣＰＵ201はＨＤＤ208に保存されている学習データをＤＲＡＭ202に読み出しを行う。
S1002において、ＣＰＵ201はＤＲＡＭ202に読み出した学習データを用いて学習を実行する。学習データ内のセンス値を入力、ユーザの操作情報を正解ラベルとして、上述した復帰判定モデル800に対して誤差逆伝搬法による学習を行う。なお、復帰判定モデル800の各層の係数は、開発段階で与えられた学習データによって決定されたものが予め組み込まれているものとする。
全学習データの学習が終了すると、S1003においてＣＰＵ201は操作部ＣＰＵ215が実行している復帰判定モデル800を更新する。より具体的には、ＣＰＵ201は学習により更新された復帰判定モデル800の各層の係数（W,B）を、操作部ＣＰＵ215に対して転送する。操作部ＣＰＵ215は受信した係数（W,B）をＲＡＭ217に保存し、実行する復帰判定モデル800に適用することで、復帰判定モデルの更新が完了する。
【実施例２】
【００３２】
実施例１では、特徴値として「成功」「失敗」の２種類のフラグが偏らない学習データを収集し、少ない学習データで効率よく機械学習を行うものを説明した。実施例２では、さらに条件を細かくし、「操作有」/「操作無」、推論の「成功」/「失敗」の2条件で、学習データの場合分けを４通りに増やし特徴値として４種類のフラグを付与して、学習データをさらに偏り無く収集するものである。
実施例２は実施例１との差分を中心に説明する。
図１１は、操作部ＣＰＵ215の時系列データに対するフラグ生成処理を示す図である。S1101、S1102、及びS1105の処理に関しては実施例１のS501、S502，及びS505と同様である。
実施例１のS503、S504、S506、S507において、操作部ＣＰＵ215は復帰判定結果と操作有無に基づいた「成功」「失敗」フラグを生成した。
実施例２では、操作部ＣＰＵ215はS1103、S1104、S1106、S1107の各条件に対してそれぞれ異なるフラグ「１」〜「４」の４種類を付与する。
ここで、S307の学習データ生成処理において、操作部ＣＰＵ215は実施例１と同様に、学習データ管理テーブル700の中の各フラグの個数を制御可能である。よって、学習データを４つに分類する実施例２では、学習データを２つに分類する実施例１と比べて、異なるフラグ（属性）の学習データをより細かく分類し、偏りなく収集することができる。
【実施例３】
【００３３】
実施例３では、推論結果が変化するのは、ユーザが装置の近傍で動いたタイミングであることに着目し、このタイミングのデータを優先して学習データとして取得する例である。具体的には、装置の近傍であることから、センス値平均値が大きく、またセンス値の変動係数が大きい学習データを優先して取得するものである。
実施例３について、実施例１及び２との差分を中心に説明する。
図１２に、操作部ＣＰＵ215が作成するデータ管理テーブル1200を示す。実施例３における操作部ＣＰＵ215は実施例１及び２と異なり、各時系列データに対してフラグではなく「重要度」を付与する。よって、実施例３においては、学習データ管理テーブル700内の学習データもフラグではなく、特徴値として「重要度」を保存していることになる。本実施例において、操作部ＣＰＵ215は重要度を以下の計算式で算出する。
重要度＝（重み１）×（所定時間内のセンス値の平均値）/（センス値の取り得る最大）
＋（重み２）×（所定時間内のセンス値の変動係数）
上記計算式は、所定時間内のセンス値の平均値とばらつき度合いから重要度を決定するための計算式である。所定時間内のセンス値の平均値が大きいほど、また、所定時間内のセンス値の変動係数が大きいほど、重要度が高くなる。また、重み１が重み２に比べて大きいほど、重要度を決定する際に変動係数に比べて平均値の影響がより大きく左右されるようになる。なお、重要度を決定する計算式は必ずしも本実施例に限られず、平均値や変動係数が小さいほど重要度が高くなるような計算式を用いることもできる。また、重要度を決定する要因として本実施例のような平均値と変動係数だけではなく、例えば、センス値の傾きやユーザの操作有無に関して、重要度を決定する要因として用いることもできる。
【００３４】
■  学習データの生成処理
図１３は、操作部ＣＰＵ215の学習データの生成処理フローを示す図である。
S1301、S1303、S1304は実施例１と同様である。
S1302において、操作部ＣＰＵ215はデータ管理テーブル1200から現在の時刻T(N+1)の操作有無と重要度を取得する。
S1305において、操作部ＣＰＵ215は学習データ管理テーブル700内の学習データの中で、最も低い重要度を持つ学習データを探索する。
S1306において、操作部ＣＰＵ215はS1304で生成した学習データの重要度と、S1305で探索した最も低い重要度を持つ学習データの重要度を比較し、生成した学習データの重要度が高いか否かを判断する。
生成した学習データの重要度が高かった場合（S1306でYes）、S1307において操作部ＣＰＵ215は、生成した学習データと、学習データ管理テーブル700内で最も低い重要度を持つ学習データを入れ替える。生成した学習データの重要度が低かった場合（S1306でNo）、S1308において操作部ＣＰＵ215は、生成した学習データを破棄する。
このように、実施例３では、実施例１及び２と比較して、センス値に基づいて保存すべき重要な学習データを取捨選択することができる。なお、本実施例では重要度を上述した計算式で算出したが、重要度の算出に畳み込みニューラルネットワーク（ＣＮＮ）等の機械学習モデルを適用する構成であってもよい。
【００３５】
実施例１〜３において、学習データ管理テーブル700を操作部203上のＲＡＭ217上に保存したが、学習データ管理テーブル700は必ずしもＲＡＭ上に作成する必要はない。例えばＣＰＵ201がS307の学習データ生成処理を実行することで、ＨＤＤ208上に学習データ管理テーブル700を作成するようにしてもよい。
本発明の実施例ではＭＦＰ101の内部で学習処理を実行しているが、必ずしもＭＦＰ101の内部で学習処理を実行する必要はなく、ネットワークで接続された外部サーバー等（非図示）で実施してもよい。
【００３６】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ＡＳＩＣ)によっても実現可能である。
具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００３７】
102  人感センサ
201  ＣＰＵ
215  操作部ＣＰＵ
【図１】
2020037233.tif 000003
【図２】
2020037233.tif 000004
【図３】
2020037233.tif 000005
【図４】
2020037233.tif 000006
【図５】
2020037233.tif 000007
【図６】
2020037233.tif 000008
【図７】
2020037233.tif 000009
【図８】
2020037233.tif 000010
【図９】
2020037233.tif 000011
【図１０】
2020037233.tif 000012
【図１１】
2020037233.tif 000013
【図１２】
2020037233.tif 000014
【図１３】
2020037233.tif 000015