添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
図1は、本発明の実施形態に係る学習装置10及び学習結果利用装置20のネットワーク構成を示す図である。本実施形態に係る学習装置10は、通信ネットワークNを介して、学習結果利用装置20、1又は複数のセンサ30及びセンシングデータ記憶部DBに接続される。通信ネットワークNは、有線又は無線回線により構成された有線通信網及び無線通信網のいずれであってもよく、インターネットやLAN(Local Area Network)であってよい。なお、図1において、センシングデータ記憶部DB、学習装置10及び学習結果利用装置20は、それぞれ別体として構成されているが、これらを一体として構成してもよい。すなわち、センシングデータ記憶部DB、学習装置10及び学習結果利用装置20の全てを一体として構成してもよく、センシングデータ記憶部DB、学習装置10及び学習結果利用装置20のうちの2つを選択的に一体として構成してもよい。このとき、一体として構成された、センシングデータ記憶部DB、学習装置10及び学習結果利用装置20の各要素間は、内部バスを介して接続される。
学習装置10は、センサ30から取得したセンシングデータ及びセンシングデータ記憶部DBに記憶されたセンシングデータの少なくともいずれかを含む学習用データに基づいて、第1学習モジュール及び第2学習モジュールの学習を行う。本実施形態に係る学習装置10は、第1学習モジュール及び第2学習モジュールを備えるが、第1学習モジュール及び第2学習モジュールは、学習装置10と別体の装置に備えられてもよい。なお、学習モジュールとは、学習能力を備えた専用若しくは汎用のハードウェア若しくはソフトウェアの一単位、又は、当該ハードウェア若しくはソフトウェアの一単位の組合せを含む。ここで、学習能力とは、あるタスクの処理能力を、学習用データから得られる経験に基づいて向上させることのできる能力をいう。
学習結果利用装置20は、学習装置10による学習結果を用いて、入力データの特徴に応じた出力データを出力する。本実施形態に係る学習装置10は、学習済みの第2学習モジュール又は当該学習済みの第2学習モジュールの複製物を学習装置10から取得して、第3学習モジュールとして設定する。なお、学習済みの学習モジュールの複製物とは、学習済みの学習モジュールの機能を再現することができる専用若しくは汎用のハードウェア若しくはソフトウェアの一単位、又は、当該ハードウェア若しくはソフトウェアの一単位の組合せを含む。学習済みの学習モジュールの複製物は、必ずしも学習能力を備えていなくてもよい。また、学習済みの学習モジュールの構成と、学習済みの学習モジュールの複製物の構成は、必ずしも一致していなくてもよい。また、学習済みの学習モジュールの複製物は、学習が完了した学習済みの学習モジュール又は当該学習済みの学習モジュールの複製物に対して追加学習を行ったものを含む。本実施形態に係る第2学習モジュールの場合、学習済みの第2学習モジュールの複製物は、学習済みの第2学習モジュール又は当該学習済みの第2学習モジュールの複製物について、第1学習用データと同じ形式の追加学習用データに基づいて、追加出力データを出力するように追加学習させた結果として得られる学習モジュールを含む。また、学習済みの第2学習モジュールの複製物は、学習済みの第2学習モジュール又は当該学習済みの第2学習モジュールの複製物について、第1学習用データに基づいて、追加出力データを出力するように追加学習させた結果として得られる学習モジュールを含む。また、学習済みの学習モジュールの複製物は、いわゆる蒸留によって得られる学習モジュールを含む。すなわち、学習済みの学習モジュールの複製物は、学習済みの学習モジュールの機能を保つように、学習済みの学習モジュールと構造が異なる他の学習モジュールを学習させることで得られる、学習済みの当該他の学習モジュールを含む。ここで、当該他の学習モジュールは、学習済みの学習モジュールよりも構造が単純であってよく、よりデプロイに適したものであってよいし、当該他の学習モジュールの学習には、学習済みの学習モジュールの出力データを用いてよい。なお、学習済みの学習モジュールの複製物は、学習モジュールの学習過程において、オーバーフィッティングを防ぐ正則化の方法を変えたり、バックプロパゲーションの学習率を変えたり、重み係数の更新アルゴリズムを変えたりして得られる学習済みの学習モジュールを含む。また、学習済みの第2学習モジュール又は当該学習済みの第2学習モジュールの複製物を取得するとは、学習済みの第2学習モジュールの機能を学習結果利用装置20において再現するために必要な情報を取得することをいう。例えば、第2学習モジュールがニューラルネットワークを含む場合、学習済みの第2学習モジュール又は当該学習済みの第2学習モジュールの複製物を取得するとは、少なくとも、ニューラルネットワークのレイヤ数、各レイヤに関するノード数、ノード間を繋ぐリンクの重みパラメータ、各ノードに関するバイアスパラメータ及び各ノードに関する活性化関数の関数形に関する情報を取得することをいう。
センサ30は、物理量を検出する物理量センサ及び情報を検出する情報センサのいずれであってもよい。物理量センサは、例えば光を検出して画像データや動画データを出力するカメラや、人の心拍を検出して心拍データを出力する心拍センサ、人の血圧を検出して血圧データを出力する血圧センサ及び人の体温を検出して体温データを出力する体温センサ等のバイタルセンサを含み、その他任意の物理量を検出して電気的信号を出力するセンサを含む。情報センサは、例えば統計データから特定のパターンを検出するセンサを含み、その他任意の情報を検出するセンサを含む。
センシングデータ記憶部DBは、センサ30によって出力されたセンシングデータを記憶する。同図では、センシングデータ記憶部DBを単一の記憶部として示しているが、センシングデータ記憶部DBは、1又は複数のファイルサーバによって構成されてよい。
図2は、本発明の実施形態に係る学習装置10の物理的構成を示す図である。学習装置10は、ハードウェアプロセッサに相当するCPU(Central Processing Unit)10aと、メモリに相当するRAM(Random Access Memory)10bと、メモリに相当するROM(Read only Memory)10cと、通信インタフェース10dと、入力部10eと、表示部10fとを有する。これら各構成は、バスを介して相互にデータ送受信可能に接続される。なお、ハードウェアプロセッサの種類はCPUに限定されない。例えば、ハードウェアプロセッサとして、CPU、GPU(Graphics Processing Unit)、FPGA(Field-programmable Gate Array)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)を単独で、又は、組合せて使用することができる。
CPU10aは、RAM10b又はROM10cに記憶されたプログラムの実行やデータの演算、加工を行う。CPU10aは、メタデータを生成するためのアプリケーションを実行する演算装置である。CPU10aは、入力部10eや通信インタフェース10dから種々の入力データを受け取り、入力データの演算結果を表示部10fに表示したり、RAM10bやROM10cに格納したりする。
RAM10bは、データの書き換えが可能な記憶部であり、例えば半導体記憶素子で構成される。RAM10bは、CPU10aが実行するアプリケーション等のプログラムやデータを記憶する。
ROM10cは、データの読み出しのみが可能な記憶部であり、例えば半導体記憶素子で構成される。ROM10cは、例えばファームウェア等のプログラムやデータを記憶する。
通信インタフェース10dは、学習装置10を通信ネットワークNに接続するハードウェアインタフェースである。
入力部10eは、ユーザからデータの入力を受け付けるものであり、例えば、キーボードやマウス、タッチパネルで構成される。
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えば、LCD(Liquid Crystal Display)により構成される。
学習装置10は、一般のパーソナルコンピュータのCPU10aによって本実施形態に係る学習プログラムを実行することで構成されてよい。学習プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信インタフェース10dにより接続される通信ネットワークNを介して提供されてもよい。
なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、学習装置10は、CPU10aとRAM10bやROM10cが一体化したLSI(Large-Scale Integration)を備えてもよい。
なお、学習結果利用装置20も、学習装置10と同様の物理的構成を有する。学習結果利用装置20は、一般のパーソナルコンピュータのCPUによって学習結果利用プログラムを実行することで構成されてよい。学習結果利用プログラムは、RAMやROM等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信インタフェースにより接続される通信ネットワークNを介して提供されてもよい。
図3は、本発明の実施形態に係る学習装置10の機能ブロック図である。学習装置10は、通信部11、第1学習制御部12、第1学習結果抽出部13、第1ニューラルネットワーク100、第1学習結果出力部14、第2学習制御部15、第2学習結果抽出部16、第2ニューラルネットワーク200及び第2学習結果出力部17を備える。ここで、第1学習制御部12及び第2学習制御部15は、機械学習を制御する制御部である。また、第1ニューラルネットワーク100は、第1学習モジュールの一例であり、第2ニューラルネットワーク200は、第2学習モジュールの一例である。学習装置10は、ニューラルネットワーク以外の学習モジュールを備えてもよい。
第1学習制御部12は、第1学習用データ及び第1学習用データに関連付けられた第2学習用データに基づいて、第1学習用データ及び第2学習用データの特徴に応じた第1出力データを出力するように第1ニューラルネットワーク100を学習させる。第1学習用データは、例えば対象の画像データであってよく、第2学習用データは、画像データが撮影された時に、センサによって対象を測定した又は対象から測定されたセンシングデータであってよい。この場合、第1出力データは、画像データ及びセンシングデータの特徴に応じたデータであり、撮影される対象に関するデータである。第1ニューラルネットワーク100は、画像データの学習に用いられることのあるCNN(Convolutional Neural Network)や、時系列データの学習に用いられることのあるRNN(Recurrent Neural Network)であってよい。第1ニューラルネットワーク100の学習結果は、第1学習結果抽出部13によって抽出され、第1学習結果出力部14によって第2学習制御部15に対して出力される。
第1学習制御部12は、教師無し学習によって、第1学習用データ及び第2学習用データに基づいて、第1出力データを出力するように第1ニューラルネットワーク100を学習させてよい。教師無し学習によって第1ニューラルネットワーク100を学習させることによって、第1学習用データ及び第2学習用データの特徴に応じた第1出力データを第1ニューラルネットワーク100によって自律的に生成することができ、より客観性の高い特徴抽出が行える。また、教師データを用意する必要が無いため、教師データを生成したり収集したりするための処理負荷や通信負荷が発生せず、教師データを記憶するための記憶容量を確保する必要が無くなる。
第1学習制御部12は、第1学習用データ及び第2学習用データの属性情報を含む教師データを用いた教師有り学習によって、第1学習用データ及び第2学習用データに基づいて、第1出力データを出力するように第1ニューラルネットワーク100を学習させてもよい。ここで、学習用データの属性情報とは、学習用データの特徴を示す情報であり、センサが測定する物理量の種類、センサの種類、センシングデータの種類及びセンサにより測定する対象に関する情報を含んでよい。教師有り学習によって第1ニューラルネットワーク100を学習させることによって、既存の属性情報を考慮して、第1学習用データ及び第2学習用データの特徴に応じた第1出力データを生成することができる。また、第1出力データに対して意味付けを行う必要が無いため、第1出力データの解釈のために演算や通信を行う必要が無く、処理負荷や通信負荷が抑制される。
第2学習制御部15は、第1学習用データを第1ニューラルネットワーク100に入力した場合に第1ニューラルネットワーク100より出力される第1出力データを教師データとする教師有り学習によって、第1学習用データに基づいて、第2出力データを出力するように第2ニューラルネットワーク200を学習させる。第1出力データを教師データとする教師有り学習によって、第2ニューラルネットワーク200は、第1ニューラルネットワーク100と学習目的を共有し、その結果、第1ニューラルネットワーク100と同種の能力を獲得する。すなわち、第2ニューラルネットワーク200の第2出力データと第1ニューラルネットワーク100の第1出力データとは、同じ項目についての同じ形式によるデータとなる。ここで、同種の能力とは、例えば、特定の対象、状態あるいは動作についての同種の解析、推定、制御等を行う能力、および同じ要件に基づいて判定、識別、認識を行う能力、を挙げることができる。同じ項目についての同じ形式によるデータとは、例えば、同じ制御変数についての同じ単位の制御値であったり、同じ判定項目(不良の有無、特定物体の有無等)についての同じ規則によるスコアである。仮に、第1学習用データが対象の画像データであり、第2学習用データが画像データと同じ時系列のセンシングデータである場合、教師データは、学習済みの第1ニューラルネットワーク100に画像データを入力した場合に、学習済みの第1ニューラルネットワーク100から出力される第1出力データであり、当該画像データを第2ニューラルネットワーク200に入力した場合に第2ニューラルネットワーク200から出力される第2出力データは、第1出力データと同じ項目についての同じ形式のデータ、すなわち画像データの特徴に応じたデータであり、撮影される対象に関するデータである。第2ニューラルネットワーク200の学習結果は、第2学習結果抽出部16によって抽出され、第2学習結果出力部17によって通信部11を介して外部に出力される。
なお、本実施形態では、第1ニューラルネットワーク100の学習に用いる第1学習用データと、第2ニューラルネットワーク200の学習に用いる第1学習用データは同じデータであるが、この例に限られず、第1ニューラルネットワーク100の学習に用いる第1学習用データと、第2ニューラルネットワーク200の学習に用いる第1学習用データは、少なくとも形式が同じデータ(同種のデータ)であればよい。すなわち、第1ニューラルネットワーク100の学習に用いる第1学習用データと、第2ニューラルネットワーク200の学習に用いる第1学習用データは、同じ形式のデータであるが一部又は全部の内容が異なるデータであってもよい。例えば、第1ニューラルネットワーク100の学習において、第1学習用データとしての第1群の画像データ及び第2学習用データとしてのセンシングデータを用いた場合、第2ニューラルネットワーク200の学習を行うにあたって、第1学習用データとして第2群の画像データを学習済みの第1ニューラルネットワーク100に入力して、学習済みの第1ニューラルネットワーク100から出力される第1出力データを教師データとして、第2群の画像データに基づいて第2ニューラルネットワーク200の学習を行ってもよい。ここでのデータの形式とは、画像形式(カラー画像、赤外線画像、距離画像等)や数値形式(2値、連続値等)等であって、データ取得手段(カメラ、センサ、測定装置等)の種類の違いによって同じ形式か異なる形式かを区別してもよいし、データ取得手段の種類に加えて、データ取得対象(画像の被写体、センシング対象物等)も考慮して同じ形式か異なる形式かを区別してもよい。本実施形態では、第1群の画像データと第2群の画像データとはともに画像データ(同じ形式のデータ)であり、第1群の画像データと第2群の画像データとは全く同じ複数の画像データから構成されていてもよいし、第2群の画像データの一部または全部が第1群の画像データとは異なる画像データから構成されていてもよい。
本実施形態に係る学習装置10によれば、入力データとして第1学習用データ及び第2学習用データを受け付ける第1ニューラルネットワーク100によって、第1学習用データ及び第2学習用データの特徴に応じた第1出力データが出力され、入力データとして第1学習用データを受け付ける第2ニューラルネットワーク200によって、第1学習用データの特徴に応じた第2出力データが出力される。第2ニューラルネットワーク200は、第1出力データを教師データとする教師有り学習によって学習されるため、第2出力データには、第2学習用データの特徴が間接的に含まれる。そのため、学習用データの測定手段の種類を増やすことなく、所望の性能を有するニューラルネットワークが得られる。具体的には、本実施形態に係る学習装置10によれば、第2学習用データを使用することなく、第1学習用データ及び第2学習用データを測定する複数の測定手段を用いた場合と同等の性能を有するニューラルネットワークが得られる。第2学習用データの測定手段を使用せずに所望の測定結果を反映させたニューラルネットワークが得られるので、学習済みのニューラルネットワークを利用する学習結果利用装置20のハードウェアの削減、さらには、データ量の減少によるハードウェアプロセッサの処理負荷の削減が可能になる。
第2学習制御部15は、第1ニューラルネットワーク100の学習が行われた後に、第2ニューラルネットワーク200を学習させる。これにより、第1ニューラルネットワーク100によって第1学習用データ及び第2学習用データの特徴が学習された後に、第1ニューラルネットワーク100から出力される第1出力データを教師データとして用いて第2ニューラルネットワーク200を学習させることができるため、第2ニューラルネットワーク200の学習に対して、第2学習用データの特徴がより正確に反映される。
図4は、本発明の実施形態に係る学習結果利用装置20の機能ブロック図である。学習結果利用装置20は、学習結果入力部231、ニューラルネットワーク設定部232、第3ニューラルネットワーク233、制御部234、入力部235、通信部236、第3ニューラルネットワーク233に入力するデータを取得するデータ取得部237及び出力部238を備える。ここで、第3ニューラルネットワーク233は、学習モジュールの一例であり、学習結果利用装置20は、ニューラルネットワーク以外の学習モジュールを備えてもよく、その場合、ニューラルネットワーク設定部232は、ニューラルネットワーク以外の学習モジュールを設定するものに置き換わることとなる。なお、データ取得部237は、通信部236を介してデータを取得してもよく、通信部236以外の通信を介してデータを取得してもよい。
学習結果入力部231は、学習結果の入力を受け付ける。学習結果入力部231は、学習装置10の第2学習結果出力部17によって出力される学習結果を、通信部236を介して受け付ける。ニューラルネットワーク設定部232は、学習装置10に備えられた第2学習制御部15によって学習が行われた結果として得られた学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物を取得して、第3ニューラルネットワーク233として設定する。制御部234は、データ取得部237及び入力部235を制御して、指定された入力データを第3ニューラルネットワーク233に入力し、出力データを出力させる。入力部235は、第1学習用データと同じ形式を有するデータを、第3ニューラルネットワーク233に入力する。出力部238は、第3ニューラルネットワーク233からの出力データを出力する。第3ニューラルネットワーク233からの出力データは、出力部238によって通信部236を介して出力される。
本実施形態に係る学習結果利用装置20によれば、入力データとして第1学習用データと同じ形式を有するデータを受け付ける第3ニューラルネットワーク233によって、入力データの特徴に応じた出力データが出力される。第3ニューラルネットワーク233は、学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物によって設定されるため、第3ニューラルネットワーク233には、第2学習用データの特徴が間接的に含まれる。そのため、測定手段を増やすことなく、所望の性能を有する学習モジュールが得られる。その結果、第3ニューラルネットワーク233を使用する環境では、センシングデータ(第2学習用データ)の測定に用いた測定手段を使用せずとも、所望の学習結果を得ることができ、学習結果利用装置20を構成するハードウェアの削減、さらには、データ量の減少によるハードウェアプロセッサの処理負荷の削減が可能になる。
本実施形態において、第1学習用データは、学習装置10の第2学習制御部15によって学習が行われた結果として得られる学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物に入力する入力データと同じ形式のデータであり、第2学習用データは、第1学習用データと時系列について関連付けがされたデータであり、学習済みの第2ニューラルネットワーク200又は複製物に入力する入力データと異なる形式のデータであってよい。第2学習用データは、第1学習用データを補完又は補強するデータであり、第1学習用データのみに基づく学習では抽出できない特徴を抽出するためのデータである。また、第2学習用データは、第1学習用データと同時刻に取得されてもよいし、近接した時刻に取得されてもよい。第1学習用データと時系列について関連付けがされた第2学習用データは、第1学習用データの取得前後の所定期間以内に取得された第2学習用データを含む。これにより、第1ニューラルネットワーク100について、学習済みの第2ニューラルネットワーク200に入力する入力データと同じ形式の第1学習用データと、第1学習用データを補完又は補強する第2学習用データとに基づいて、多角的な学習を行うことができる。また、第2ニューラルネットワーク200について、多角的な学習が行われた第1ニューラルネットワーク100の第1出力データを教師データとすることで、第1学習用データのみに基づく学習では抽出されない場合のある特徴を抽出するような教師有り学習を行うことができる。
また、本実施形態に係る学習装置10において、第2ニューラルネットワーク200は、第1ニューラルネットワーク100よりも規模が小さい。ここで、ニューラルネットワークの規模とは、ニューラルネットワークに含まれるノード数、リンク数及びレイヤ数等によって測られるネットワークの規模である。第2ニューラルネットワークの規模が、第1ニューラルネットワーク100の規模より小さいことで、比較的計算資源が豊富な学習装置10において高負荷な処理を行い、学習結果利用装置20において設定される第3ニューラルネットワーク233の規模を小さく抑えることができ、学習結果利用装置20の処理負荷や通信負荷を抑制することができる。
図5は、本発明の実施形態に係る学習装置10が備える第1ニューラルネットワーク100の入出力関係を示す概念図である。同図に示す例では、第1学習用データは、人を撮影した画像データであり、第2学習用データは、画像データが撮影された時における人のバイタルデータである。なお、画像データが撮影された時とは、画像データの撮影と同時及びその前後の時間的な近傍を含む。また、第1学習用データは、第1画像データ301、第2画像データ302及び第3画像データ303を含む。また、第2学習用データは、第1バイタルデータ401、第2バイタルデータ402及び第3バイタルデータ403を含む。ここで、第1バイタルデータ401は、第1画像データ301が撮影された時における被撮影者のバイタルデータである。すなわち、第1バイタルデータ401は、第1画像データ301と時系列が同じデータである。同様に、第2バイタルデータ402は、第2画像データ302が撮影された時における被撮影者のバイタルデータであり、第3バイタルデータ403は、第3画像データ303が撮影された時における被撮影者のバイタルデータである。なお、バイタルデータは、心拍数や血圧、体温、血中成分量、尿中成分量、脳波等の任意の生体データであってよい。
学習装置10は、第1学習用データ及び第2学習用データに基づいて、第1学習用データ及び第2学習用データの特徴に応じた第1出力データを出力するように第1ニューラルネットワーク100を学習させる。本例の場合、第1出力データは、第1データ501、第2データ502及び第3データ503を含み、それぞれ数値データである。第1データ501は、第1ニューラルネットワーク100に対する入力データとして第1画像データ301及び第1バイタルデータ401を入力した場合に出力される出力データであり、本例の場合、「(0.9,0.05,0.05)」という3次元の数値ベクトルである。同様に、第2データ502は、第1ニューラルネットワーク100に対する入力データとして第2画像データ302及び第2バイタルデータ402を入力した場合に出力される出力データであり、「(0.05,0.9,0.05)」という3次元の数値ベクトルである。また、第3データ503は、第1ニューラルネットワーク100に対する入力データとして第3画像データ303及び第3バイタルデータ403を入力した場合に出力される出力データであり、「(0.05,0.05,0.9)」という3次元の数値ベクトルである。第1出力データは、人の感情に対応するデータであり、各成分は、所定の感情に対応する対応度を表す。成分の数値が大きいほど、当該成分に対応する感情を示していると判定される確度が高まる。
第1学習制御部12によって、教師無し学習によって、第1ニューラルネットワーク100の学習を行った場合、学習装置10のユーザは、第1ニューラルネットワーク100の入力データと出力データを比較して、出力データに対して意味付けを行う。本例では、第1データ501について、「怒り」という意味付けが行われ、第2データ502について、「リラックス」という意味付けが行われ、第3データ503について、「笑い」という意味付けが行われる。
第1学習制御部12によって、第1学習用データ及び第2学習用データの属性情報を含む教師データを用いた教師有り学習によって、第1ニューラルネットワーク100の学習を行った場合、学習装置10のユーザは、出力データに対して意味付けを行う必要が無い。第1ニューラルネットワーク100は、出力データとして出力される3次元ベクトルに含まれる第1成分は、怒りの度合いを示す量であり、第2成分はリラックスの度合いを示す量であり、第3成分は笑いの度合いを示す量であることを自律的に学習する。
学習装置10は、画像データとバイタルデータの両方を学習用データとして用いて第1ニューラルネットワーク100の学習を行うことで、画像データのみを学習用データとして用いるよりも、人の感情をより良く推測することのできる学習結果を得ることができる。ここで、画像データは、ありふれたセンサであるカメラによって取得可能なデータであり、撮影対象となる人にセンサを装着させずとも取得可能なデータである。一方、バイタルデータは、専用のセンサを用いなければ取得できないデータであり、測定対象となる人にセンサを装着させなければ取得できないデータである。一般に、学習装置10は、取得が比較的容易な第1学習用データと、取得が比較的困難であるが、第1学習用データを補完又は補強する第2学習用データと、を組み合わせて第1ニューラルネットワーク100の学習を行ってよい。
図6は、本発明の実施形態に係る学習装置10が備える第2ニューラルネットワーク200の入出力関係を示す概念図である。同図に示す第1学習用データは、図5に示す第1学習用データと同一であり、第1画像データ301、第2画像データ302及び第3画像データ303を含む。
学習装置10は、第1学習用データを第1ニューラルネットワーク100に入力した場合に第1ニューラルネットワーク100より出力される第1出力データを教師データとする教師有り学習によって、第1学習用データに基づいて、第2出力データを出力するように第2ニューラルネットワーク200を学習させる。本例の場合、第2出力データは、第4データ601、第5データ602及び第6データ603を含み、それぞれ数値データである。第4データ601は、第2ニューラルネットワーク200に対する入力データとして第1画像データ301を入力した場合に出力される出力デ
ータであり、本例の場合、「(0.96,0.02,0.02)」という3次元の数値ベクトルである。同様に、第5データ602は、第2ニューラルネットワーク200に対する入力データとして第2画像データ302を入力した場合に出力される出力データであり、「(0.02,0.96,0.02)」という3次元の数値ベクトルである。また、第6データ603は、第2ニューラルネットワーク200に対する入力データとして第3画像データ303を入力した場合に出力される出力データであり、「(0.02,0.02,0.96)」という3次元の数値ベクトルである。第1出力データと同様に、第2出力データは、人の感情に対応するデータである。
第2学習制御部15は、学習済みの第1ニューラルネットワーク100に第1学習用データを入力した場合に学習済みの第1ニューラルネットワーク100から出力される第1出力データを教師データとする教師有り学習によって、第2ニューラルネットワーク200の学習を行うため、学習装置10のユーザは、第2出力データに対して意味付けを行う必要が無い。第2ニューラルネットワーク200は、第2出力データとして出力される3次元ベクトルに含まれる第1成分は、怒りの度合いを示す量であり、第2成分はリラックスの度合いを示す量であり、第3成分は笑いの度合いを示す量であることを自律的に学習する。
学習装置10は、学習済みの第1ニューラルネットワーク100に第1学習用データを入力した場合に学習済みの第1ニューラルネットワーク100から出力される出力データを教師データとして用いて、第2ニューラルネットワーク200の学習を行うことで、学習用データとして画像データのみを用いて、バイタルデータを加味した学習結果を得ることができ、人の感情をより良く推測することのできる学習結果を得ることができる。ここで、画像データは、ありふれたセンサであるカメラによって取得可能なデータであるため、学習済みの第2ニューラルネットワーク200は、取得が比較的容易なセンシングデータのみを入力データとして、取得が比較的困難なセンシングデータを補完的に用いた場合と類似した識別性能を発揮することができる。
画像データ及びセンシングデータに基づいて学習された第1ニューラルネットワーク100の第1出力データを教師データとして用いて、第2出力データを出力するように第2ニューラルネットワーク200の学習が行われることで、第2ニューラルネットワーク200に対して、画像データのみからでは抽出しきれない特徴を間接的に学習させることができ、当該センシングデータが反映された第2ニューラルネットワーク200が得られる。その結果、第2学習モジュールとしての第2ニューラルネットワークを使用する環境では、センシングデータ(第2学習用データ)の測定に用いた測定手段を使用せずとも、所望の学習結果を得ることができ、使用するハードウェアの削減、さらには、データ量の減少によるハードウェアプロセッサの処理負荷の削減が可能になる。
また、人の画像データ及びバイタルデータに基づいて学習された第1ニューラルネットワーク100の第1出力データを教師データとして用いて、第2出力データを出力するように第2ニューラルネットワーク200の学習が行われることで、第2ニューラルネットワーク200に対して、画像データのみからでは抽出しきれない特徴を間接的に学習させることができ、人の感情をより良く推定することのできる第2ニューラルネットワーク200が得られる。その結果、第2学習モジュールとしての第2ニューラルネットワークを使用する環境では、バイタルデータ(第2学習用データ)の測定に用いた測定手段を使用せずとも、所望の学習結果を得ることができ、使用するハードウェアの削減、さらには、データ量の減少によるハードウェアプロセッサの処理負荷の削減が可能になる。
なお、本例では、説明を簡明にするため、第1学習用データの特徴が3種類である場合について説明したが、一般に、第1学習用データには4種類以上の多数の特徴が含まれる。例えば、第1学習用データに数千種類の特徴が含まれている場合、第1ニューラルネットワーク100及び第2ニューラルネットワーク200は、第1学習用データの数千種類の特徴を分類するように学習され、入力データが当該数千種類の分類のいずれに近いデータであるか判断して、入力データの特徴に応じた出力データを出力する。
なお、本例では、第1ニューラルネットワーク100と第2ニューラルネットワーク200とを備え、第1学習用データと第2学習用データを用いて学習を行う学習装置10について説明したが、学習装置10の構成はこの例に限られない。すなわち、学習装置10は、3つ以上のニューラルネットワークを備えてもよいし、3種類以上の学習用データを用いて学習を行うように構成されてもよい。例えば、学習装置10は、第1学習用データ、第2学習用データ及び第3学習用データに基づいて、第1学習用データ、第2学習用データ及び第3学習用データの特徴に応じた第1出力データを出力するように学習される第1ニューラルネットワークと、第1出力データを教師データとする教師有り学習によって、第1学習用データに基づいて、第2出力データを出力するように学習される第2ニューラルネットワークと、を備えてもよい。また、例えば学習装置10は、第1学習用データ、第2学習用データ及び第3学習用データに基づいて、第1学習用データ、第2学習用データ及び第3学習用データの特徴に応じた第1出力データを出力するように学習される第1ニューラルネットワークと、第1出力データを教師データとする教師有り学習によって、第1学習用データ及び第2学習用データに基づいて、第2出力データを出力するように学習される第2ニューラルネットワークと、第2出力データを教師データとする教師有り学習によって、第1学習用データに基づいて、第3出力データを出力するように学習される第3ニューラルネットワークと、を備えていてもよい。また、例えば、学習装置10は、第1学習用データ及び第2学習用データに基づいて、第1学習用データ及び第2学習用データの特徴に応じた第1出力データを出力するように学習される第1ニューラルネットワークと、第1出力データを教師データとする教師有り学習によって、第1学習用データに基づいて、第2出力データを出力するように学習される複数の第2ニューラルネットワークと、を備えてもよい。ここで、複数の第2ニューラルネットワークは、レイヤ数、ユニット数及びリンク数等のニューラルネットワークの構造がそれぞれ異なるものでよく、それぞれ異なる第2出力データを出力するものであってよい。
図7は、本発明の実施形態に係る学習結果利用装置20が備える第3ニューラルネットワーク233の入出力関係を示す概念図である。同図に示す入力データは、第4画像データ310を含む。
学習結果利用装置20は、学習装置10に備えられた第2学習制御部15によって学習が行われた結果として得られた学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物を取得して、第3ニューラルネットワーク233として設定する。第3ニューラルネットワーク233は、第1学習用データと同じ形式を有するデータを入力データとして受け付ける。本例の場合、第1学習用データと同じ形式を有するデータとは、画像データである。また、第3ニューラルネットワーク233は、入力データの特徴に応じた出力データを出力する。本例の場合、出力データは、第7データ701であり、第7データ701は数値データである。第7データ701は、第3ニューラルネットワーク233に対する入力データとして第4画像データ310を入力した場合に出力される出力データであり、本例の場合、「(0.02,0.02,0.96)」という3次元の数値ベクトルである。第3ニューラルネットワーク233の出力データは、人の感情に対応するデータであり、本例の出力データは「笑い」に対応するデータである。
学習結果利用装置20は、学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物を取得して、第3ニューラルネットワーク233として設定することで、入力データが画像データのみである場合であっても、バイタルデータを加味した学習結果を利用することができ、人の感情をより良く推測することができる。ここで、画像データは、ありふれたセンサであるカメラによって取得可能なデータであるため、学習結果利用装置20の第3ニューラルネットワーク233は、取得が比較的容易なセンシングデータのみを入力データとして、取得が比較的困難なセンシングデータを補完的に用いた場合と類似の識別性能を発揮することができる。
第1学習用データ及び第2学習用データは、人の画像データ及びバイタルデータに限られない。例えば、第1学習用データを人のバイタルデータとし、第2学習用データとして人の画像データを用いてもよい。すなわち、人の画像データを、バイタルデータの補完または補強用のデータとして使用してもよい。第1学習用データを人のバイタルデータとし、第2学習用データを人の画像データとすることで、入力データがバイタルデータのみである場合であっても、画像データを加味して、人の感情や精神状態をより良く推定することができるニューラルネットワークが得られる。
また、例えば、第1学習用データは、車両を撮影した画像データを含むものであってよく、第2学習用データは、画像データが撮影された時に、車両に備えられたセンサによって測定されたセンシングデータを含むものであってよい。より具体的には、第1車両が第2車両を追走している状況で、第1車両に備えられたカメラによって第2車両を撮影した画像データを第1学習用データとし、第2車両に備えられたセンサによって測定されたセンシングデータを第2学習用データとしてよい。ここで、第2車両に備えられたセンサは、第2車両のアクセルペダルの操作、ブレーキペダルの操作、ステアリング操作、ウィンカー操作及び運転者の状態を測定するものであってよい。
この場合、第1ニューラルネットワーク100は、第1車両から撮影された第2車両の画像データと、第2車両について測定された動作に関するセンシングデータと、に基づいて学習され、第1ニューラルネットワーク100の第1出力データは、車両の動作に対応するデータとなる。なお、車両の動作に対応するデータとは、速度、加速度、進行方向ベクトル、進路変更の確率、等を含む。また、第2ニューラルネットワーク200は、学習済みの第1ニューラルネットワーク100に第1車両から撮影された第2車両の画像データを入力した場合に学習済みの第1ニューラルネットワーク100から出力される第1出力データを教師データとする教師有り学習によって、第1車両から撮影された第2車両の画像データに基づいて学習され、第2ニューラルネットワーク200の第2出力データは、第1出力データと同様に、車両の動作に対応するデータである。
なお、第2学習用データには、第1車両と第2車両との間の相対距離に関する情報が含まれていてもよい。車両の動作は、先行する又は後続する車両との間の距離に応じて大きく変動する。したがって、第2学習用データに相対距離に関する情報が含まれていると、後述する車両の動作予測の精度を向上させることができる。このとき、相対距離は、以下の方法により取得することができる。例えば、車両の位置を特定する測定装置が備えられたテストコースにおいて、第1車両に備えられたカメラにより第2車両を撮影しながら、第1車両と第2車両との相対距離を測定することができる。また、第1車両の前方又は第2車両の後方に測距装置(例えば、レーザレーダ)を取りつけることで、第1車両と第2車両との距離を求めることができる。また、相対距離に関する情報は、一般の道路上に備えられたカメラ画像に基づいて推定してもよい。また、物理モデルとして構築した第1車両及び第2車両を仮想空間上で走行させ、当該仮想空間から第1学習用データとしての画像データと、第2学習用データとしてのセンサデータと、相対距離とを取得してよい。
このように、車両の画像データ及びセンシングデータに基づいて学習された第1ニューラルネットワーク100の第1出力データを教師データとして用いて、第2出力データを出力するように第2ニューラルネットワーク200の学習が行われることで、車両の画像データのみからでは抽出しきれない特徴を間接的に第2ニューラルネットワーク200に学習させることができ、車両の動作予測をより良く行うことができる第2ニューラルネットワーク200が得られる。また、前方を走る車両の動作を測定したセンシングデータを、後方を走る車両が取得することは比較的困難であるが、本実施形態に係る学習結果利用装置20によれば、学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物を取得して、第3ニューラルネットワーク233として設定し、前方を走る車両の画像データを第3ニューラルネットワーク233に入力することで、車両の動作予測を行うことができる。
第1学習用データ及び第2学習用データは、上記以外のものであってもよい。例えば、人を撮影した画像データを第1学習用データとし、人の行動を検出するセンサから出力されるセンシングデータを第2学習用データとして、第1出力データ及び第2出力データとして人の行動に対応するデータを出力させるように、第1ニューラルネットワーク100及び第2ニューラルネットワーク200を学習させてもよい。この場合、人の行動を検出するセンサは、人に装着した運動量センサや加速度センサであったり、人が操作する対象に備えられて人による操作を検出するセンサであったりしてよい。これにより、人を撮影した画像データを第2ニューラルネットワーク200に入力した場合に、人が次に行う行動を予測する第2出力データを出力させることができるようになる。
また、例えば、果物を撮影した画像データを第1学習用データとし、果物の熟成度を測定するセンサから出力されたセンシングデータを第2学習用データとして、第1出力データ及び第2出力データとして果物の熟成度に対応するデータを出力させるように、第1ニューラルネットワーク100及び第2ニューラルネットワーク200を学習させてもよい。この場合、果物の熟成度を測定するセンサは、重量センサ、固さセンサ、糖度センサ等であってよい。これにより、果物を撮影した画像データを第2ニューラルネットワーク200に入力した場合に、果物の熟成度を予測する第2出力データを出力させることができるようになる。
また、例えば、半田によって電子部品が固定された基板の外観を撮影した画像データを第1学習用データとし、半田付の状態(例えば、半田に含まれる空気含有量、過熱による変性、加熱不足による非接合、等)を測定するセンサから出力されたセンシングデータを第2学習用データとして、第1出力データ及び第2出力データとして半田付けの検査基準の合否に対応するデータを出力させるように、第1ニューラルネットワーク100及び第2ニューラルネットワーク200を学習させてもよい。これにより、基板の外観を撮影した画像データを第2ニューラルネットワーク200に入力した場合に、半田付の状態を予測する第2出力データを出力させることができる。このようにして学習された第2ニューラルネットワーク200を、基板と基板上に載置される電子部品との間の半田付けの状態を確認するための基板検査装置によって利用することで、半田付の状態を測定するセンサを使用せずに半田付けの検査基準の合否に対応するデータを得ることができるため、基板検査装置のハードウェアの削減、さらには、データ量の減少によるハードウェアプロセッサの処理負荷の削減が可能になる。
図8は、本発明の実施形態に係る学習装置10によって実行される処理のフローチャートである。学習装置10は、ユーザから受け付けた指示に基づいて、第1学習用データ及び第2学習用データの指定を行う(S10)。その後、学習装置10は、教師有り学習を行うか否かを判断する(S11)。ここで、教師有り学習を行うか否かは、ユーザから受け付けた指示に基づいて判断してよい。
学習装置10によって教師有り学習を行う場合(S11:Yes)、学習装置10は、ユーザから受け付けた指示に基づいて、教師データの指定を行う(S12)。学習装置10は、指定した第1学習用データ、第2学習用データ及び教師データに基づいて、第1ニューラルネットワーク100を教師有り学習によって学習させる(S13)。
一方、学習装置10によって教師有り学習を行わない場合(S11:No)、学習装置10は、指定した第1学習用データ及び第2学習用データに基づいて、第1ニューラルネットワーク100を教師無し学習によって学習させる(S14)。
いずれの場合も、学習装置10は、第1ニューラルネットワーク100から出力された第1出力データを教師データとして、指定した第1学習用データに基づいて、第2ニューラルネットワーク200を教師有り学習によって学習させる(S15)。以上で、学習装置10による処理が終了する。
本実施形態に係る学習装置10を用いることで、学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物を生産することができる。すなわち、第1学習制御部12によって、第1学習用データ及び第2学習用データに基づいて、第1学習用データ及び第2学習用データの特徴に応じた第1出力データを出力するように第1ニューラルネットワーク100を学習させ、第2学習制御部15によって、第1学習用データを第1ニューラルネットワーク100に入力した場合に第1ニューラルネットワーク100より出力される第1出力データを教師データとする教師有り学習によって、第1学習用データに基づいて、第2出力データを出力するように第2ニューラルネットワーク200を学習させ、第2学習結果出力部17によって、学習済みの第2ニューラルネットワーク200又は当該学習済みのニューラルネットワーク200の複製物を出力することで、学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物を生産することができる。
図9は、本発明の実施形態に係る学習結果利用装置20によって実行される処理のフローチャートである。学習結果利用装置20は、学習装置10によって学習済みの第2ニューラルネットワーク200又は当該学習済みの第2ニューラルネットワーク200の複製物を取得して、第3ニューラルネットワーク233を設定する(S20)。そして、学習結果利用装置20は、ユーザから受け付けた指示に基づいて、第3ニューラルネットワーク233に入力する入力データを指定する(S21)。ここで、入力データは、第1学習用データと同じ形式を有するデータである。
学習結果利用装置20は、指定した入力データを第3ニューラルネットワーク233に入力し、入力データの特徴に応じた出力データを出力する(S22)。以上で、学習結果利用装置20による処理が終了する。
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
少なくとも1つのメモリと、前記メモリと接続された少なくとも1つのハードウェアプロセッサとを備え、
前記ハードウェアプロセッサが、
第1学習用データ及び前記第1学習用データに関連付けられた第2学習用データに基づいて、前記第1学習用データ及び前記第2学習用データの特徴に応じた第1出力データを出力するように第1学習モジュールを学習させ、
前記ハードウェアプロセッサが、前記第1学習用データを前記第1学習モジュールに入力した場合に前記第1学習モジュールより出力される前記第1出力データを教師データとする教師有り学習によって、前記第1学習用データに基づいて、第2出力データを出力するように第2学習モジュールを学習させる、
学習装置。
(付記2)
少なくとも1つのハードウェアプロセッサによって、第1学習用データ及び前記第1学習用データに関連付けられた第2学習用データに基づいて、前記第1学習用データ及び前記第2学習用データの特徴に応じた第1出力データを出力するように第1学習モジュールを学習させ、
前記ハードウェアプロセッサによって、前記第1学習用データを前記第1学習モジュールに入力した場合に前記第1学習モジュールより出力される前記第1出力データを教師データとする教師有り学習によって、前記第1学習用データに基づいて、第2出力データを出力するように第2学習モジュールを学習させる、
学習方法。