以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
まず、図1を用いて、本発明が適用される場面の一例について説明する。図1は、本発明を適用した場面の一例を模式的に例示する。
本実施形態に係る推定システム100は、学習データセットを生成する処理、学習モデルの機械学習を実施する処理、及び訓練された学習モデルを利用して所定の推定タスクを遂行する処理を含む一連の情報処理を実行するように構成される。本実施形態では、推定システム100は、学習システム101及び推定装置3を備えている。
本実施形態に係る学習システム101は、上記一連の情報処理のうち、ニューラルネットワークを含む学習モデルの機械学習を実施する処理、及び学習データセットを生成する処理を実行するように構成される。本実施形態では、学習システム101は、それぞれの処理に応じて、学習装置1及びデータ生成装置2を備えている。
本実施形態に係る学習装置1は、複数の学習データセットを使用して、学習モデルの機械学習(教師あり学習)を実行するように構成されたコンピュータである。本実施形態では、学習装置1は、2つのフェーズそれぞれで、異なる目的で学習モデルの機械学習を実施する。
第1のフェーズでは、学習装置1は、用意された学習データセット(第1学習データセット121)を使用して、推定器の性能向上に寄与する程度の高い、すなわち、正解データを付与する価値の高い訓練データの抽出に利用する複数のニューラルネットワークの機械学習を実施する。データ生成装置2は、この機械学習により訓練された複数のニューラルネットワークを利用して、新たな学習データセット(第2学習データセット227)を生成する。一方、第2のフェーズでは、学習装置1は、生成された新たな学習データセットを更に使用して、推定タスクの遂行に利用するための学習モデルの機械学習を実施する。推定装置3は、この機械学習により訓練された学習モデルを利用して、対象データに対して所定の推定タスクを遂行する。
具体的に、第1のフェーズでは、学習装置1は、複数の第1学習データセット121を取得する。各第1学習データセット121は、第1訓練データ122及び第1正解データ123の組み合わせにより構成される。
第1訓練データ122の種類は、特に限定されなくてもよく、学習モデルに習得させる推定タスクに応じて適宜選択されてよい。第1訓練データ122は、例えば、画像データ、音データ、数値データ、テキストデータ等であってよい。図1の例では、センサSにより得られるセンシングデータに含まれる特徴を推定する能力を学習モデルに習得させる場面を想定している。そのため、本実施形態では、第1訓練データ122は、センサS又はこれと同種のセンサにより得られるセンシングデータである。
センサSの種類は、特に限定されなくてもよく、学習モデルに習得させる推定タスクに応じて適宜選択されてよい。センサSは、例えば、カメラ、マイクロフォン、エンコーダ、Lidar(light detection and ranging)センサ、バイタルセンサ、環境センサ等であってよい。カメラは、例えば、RGB画像を取得するよう構成された一般的なデジタルカメラ、深度画像を取得するように構成された深度カメラ、赤外線量を画像化するように構成された赤外線カメラ等であってよい。バイタルセンサは、例えば、体温計、血圧計、脈拍計等であってよい。環境センサは、例えば、光度計、温度計、湿度計等であってよい。一例として、画像に写る製品の外観検査をする能力を学習モデルに習得させる場合には、センサSには、カメラが選択され、第1訓練データ122には、カメラにより得られる製品の写る画像データが選択される。
第1正解データ123は、第1訓練データ122に含まれる特徴を示す。すなわち、第1正解データ123は、第1訓練データ122に対する所定の推定タスクの正解を示すように構成される。第1正解データ123は、例えば、特徴のカテゴリを示す情報、特徴の表れる確率を示す情報、特徴の値を示す情報、特徴の写る範囲を示す情報等により構成されてよい。一例として、上記外観検査を実施する場合には、第1正解データ123は、例えば、製品に欠陥が含まれるか否か、製品に含まれる欠陥の種類、製品に含まれる欠陥の範囲等を示すように構成されてよい。
所定の推定タスクは、所定のデータに含まれる何らかの特徴を推定することである。この「特徴を推定すること」には、何らかの分類を行うこと、何らかの値を回帰すること、セグメンテーションを行うこと等が含まれてよい。特徴は、データから推定可能なあらゆる要素を含んでよい。推定タスクの一例として、上記画像データに写る製品の状態(良否)を推定するタスクの他、例えば、運転者を観察することで得られたセンシングデータから当該運転者の状態を推定するタスク、対象者のバイタルデータから当該対象者の健康状態を推定するタスク等を挙げることができる。特徴を推定することには、未来の何らかの要素を予測することが含まれてよい。この場合、特徴は、未来に現れる要素の予兆を含んでよい。
学習装置1は、取得された複数の第1学習データセット121を使用して、複数のニューラルネットワークの機械学習を実施する。本実施形態では、学習装置1は、複数のニューラルネットワークとして2つのニューラルネットワーク(50、51)の機械学習を実施する。以下では、説明の便宜上、それぞれを第1ニューラルネットワーク50及び第2ニューラルネットワーク51と称する。ただし、この第1のフェーズで機械学習の対象となるニューラルネットワークの数は、2つに限られなくてもよく、3つ以上であってもよい。
各ニューラルネットワーク(50、51)は、入力側から出力側に並んで配置された複数の層を含むように構成される。そして、各ニューラルネットワーク(50、51)の複数の層は、最も出力側に配置された出力層及び出力層よりも入力側に配置される注目層を含むように構成される。各ニューラルネットワーク(50、51)の構造(例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)及び種類それぞれは、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。2つのニューラルネットワーク(50、51)の構造は互いに異なっていてもよい。また、注目層は、出力層以外の層から適宜選択されてよい。注目層には、例えば、入力層、中間層等が選択されてよい。注目層には、中間層が選択されるのが好ましい。
図1の例では、第1ニューラルネットワーク50は、最も入力側に配置された入力層501、最も出力側に配置された出力層507、及び中間層として配置された注目層503の少なくとも3つ以上の層を含んでいる。同様に、第2ニューラルネットワーク51は、最も入力側に配置された入力層511、最も出力側に配置された出力層517、及び中間層として配置された注目層513の少なくとも3つ以上の層を含んでいる。本実施形態では、後述するとおり、各ニューラルネットワーク(50、51)には、畳み込みニューラルネットワークが用いられる。また、各注目層(503、513)には、畳み込み層が選択される。
学習装置1は、複数の第1学習データセット121を使用した機械学習において、第1訓練データ122を入力すると、第1正解データ123に適合する出力値が出力層(507、517)から出力されると共に、注目層(503、513)から出力される出力値が互いに適合するように、各ニューラルネットワーク(50、51)を訓練する。この機械学習により、各ニューラルネットワーク(50、51)は、第1訓練データ122と同種の未知の入力データに対して推定タスクを遂行可能に訓練されると共に、注目層(503、513)は、推定タスクを適切に遂行可能な入力データに対して同一又は近似する出力値を出力するように訓練される。前者の訓練のみでは、各ニューラルネットワーク(50、51)の注目層(503、513)の出力はばらつくのに対して、後者の訓練を更に実施することで、注目層(503、513)の出力は整合するようになる。
これに対して、本実施形態に係るデータ生成装置2は、この注目層(503、513)の性質を利用して、新たな学習データセットを生成するように構成されたコンピュータである。具体的に、データ生成装置2は、複数の第1学習データセット121を使用した機械学習により、上記のとおり訓練された複数のニューラルネットワークを取得する。本実施形態では、データ生成装置2は、上記2つのニューラルネットワーク(50、51)を取得することができる。また、データ生成装置2は、複数件の第2訓練データ221を取得する。各件の第2訓練データ221は、上記第1訓練データ122と同種のデータである。本実施形態では、各件の第2訓練データ221は、正解データの付与されていない訓練データのサンプルである。
続いて、本実施形態に係るデータ生成装置2は、訓練された各ニューラルネットワーク(50、51)に各件の第2訓練データ221を入力することで、各ニューラルネットワーク(50、51)の注目層(503、513)から出力値を取得する。データ生成装置2は、注目層(503、513)から取得された出力値に基づいて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を示す評価値222を算出する。
各ニューラルネットワーク(50、51)は、上記のとおり、注目層(503、513)の出力が整合するように訓練されている。そのため、訓練データのサンプルを各ニューラルネットワーク(50、51)に与えたときに、注目層(503、513)の出力値がばらつく、すなわち、出力の不安定性が高いことは、各ニューラルネットワーク(50、51)がそのサンプルに対して十分な性能で推定タスクを遂行することができないことを示す。よって、そのサンプルは、推定タスクを遂行する推定器の性能向上に寄与する程度が高い、すなわち、正解データを付与する価値の高いものと推定される。
そこで、本実施形態に係るデータ生成装置2は、不安定性が高いと判定するための条件を評価値222が満たす少なくとも1件以上の第2訓練データ223を複数件の第2訓練データ221から抽出する。更に、データ生成装置2は、抽出された少なくとも1件以上の第2訓練データ223それぞれに対して、第2訓練データ223に含まれる特徴(すなわち、第2訓練データ223に対する所定の推定タスクの正解)を示す第2正解データ225の入力を受け付ける。第2正解データ225は、第1正解データ123と同種のデータである。そして、データ生成装置2は、入力された第2正解データ225を対応する第2訓練データ223に付与することで、少なくとも1つ以上の第2学習データセット227を生成する。生成された各第2学習データセット227は、第2訓練データ223及び第2正解データ225の組み合わせにより構成される。
なお、各ニューラルネットワーク(50、51)は、各第1学習データセット121について、第1訓練データ122が入力されると、第1正解データ123に適合する出力値を出力層(507、517)から出力するようにも訓練されている。そのため、上記の第2訓練データ223の抽出だけではなく、所定の推定タスクの遂行にも、各ニューラルネットワーク(50、51)を利用することができる。そのため、各ニューラルネットワーク(50、51)は、当該推定タスクの遂行にも利用されてよい。
次に、第2のフェーズでは、本実施形態に係る学習装置1は、生成された少なくとも1つ以上の第2学習データセット227を取得する。そして、学習装置1は、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の機械学習を再度実行してもよい。または、学習装置1は、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)とは別の学習モデルの教師あり学習を実施してもよい。教師あり学習により、学習済みの学習モデルは、学習済みの各ニューラルネットワーク(50、51)と同様に、所定の推定タスクの遂行に利用可能に構成される。
これに対して、本実施形態に係る推定装置3は、学習装置1により構築された学習済みの学習モデルを推定器として利用し、対象データに対して所定の推定タスクを遂行するように構成されたコンピュータである。学習済みの学習モデルには、上記第1ニューラルネットワーク50、第2ニューラルネットワーク51、及び別の学習モデルのいずれが利用されてもよい。
具体的に、推定装置3は、推定タスクを遂行する対象となる対象データを取得する。本実施形態では、推定装置3には、センサSが接続されている。推定装置3は、このセンサSから対象データを取得する。次に、推定装置3は、取得された対象データを学習済みの学習モデルに入力して、学習済みの学習モデルの演算処理を実行する。これにより、推定装置3は、対象データに含まれる特徴を推定した結果に対応する出力値を学習済みの学習モデルから取得する。そして、推定装置3は、推定の結果に関する情報を出力する。
以上のとおり、本実施形態では、各ニューラルネットワーク(50、51)において、出力層(507、517)よりも入力側に配置された層が注目層(503、517)に選択される。各ニューラルネットワーク(50、51)の出力層(507、517)の形式は、習得させる推定タスクの種類に依存する。これに対して、各ニューラルネットワーク(50、51)の出力層(507、517)より入力側に配置される層の形式は、推定タスクの種類に依存せずに設定可能である。そこで、本実施形態では、各ニューラルネットワーク(50、51)において、出力層(507、517)よりも入力側に配置された出力層(507、517)の出力を利用して、各件の第2訓練データ221に対する出力の不安定性を評価する。
ただし、機械学習において、第1訓練データ122の入力に対して、出力層(507、517)の出力値を第1正解データ123に適合させる訓練のみを実行した場合には、同一の入力データに対して、各注目層(503、513)の出力値はばらついてしまう。そこで、本実施形態では、機械学習において、当該訓練と共に、注目層(503、513)の出力値を互いに適合させる訓練を実行する。これにより、注目層(503、513)の出力が上記評価に利用可能となる。
したがって、本実施形態では、出力形式の共通する層を注目層(503、513)に設定することで、各ニューラルネットワーク(50、51)に習得させるタスクの種類に依存せずに、共通の指標を用いて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を評価することができる。また、上記の注目層(503、513)の出力値を互いに適合させる訓練を実行しているため、その評価の結果に基づいて、推定器の性能向上に寄与する程度の高いと推定される第2訓練データ223を適切に抽出することができる。よって、本実施形態によれば、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
なお、図1の例では、学習装置1、データ生成装置2、及び推定装置3は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、各装置1~3の間でデータをやりとりする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、各装置1~3の間では、記憶媒体を利用して、データがやりとりされてよい。
また、図1の例では、学習装置1、データ生成装置2、及び推定装置3は、それぞれ別個のコンピュータである。しかしながら、推定システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、学習装置1、データ生成装置2、及び推定装置3のうちの少なくともいずれかのペアは一体のコンピュータであってよい。また、例えば、学習装置1、データ生成装置2、及び推定装置3のうちの少なくともいずれかは、複数台のコンピュータにより構成されてよい。
§2 構成例
[ハードウェア構成]
<学習装置>
次に、図2を用いて、本実施形態に係る学習装置1のハードウェア構成の一例について説明する。図2は、本実施形態に係る学習装置1のハードウェア構成の一例を模式的に例示する。
図2に示されるとおり、本実施形態に係る学習装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、出力装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図2では、通信インタフェースを「通信I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、学習プログラム81、第1データプール85、第1学習結果データ125、第2学習結果データ127等の各種情報を記憶する。
学習プログラム81は、上記各フェーズの機械学習に関する後述の情報処理(図8、図9、及び図11)を学習装置1に実行させるためのプログラムである。学習プログラム81は、当該情報処理の一連の命令を含む。第1データプール85は、機械学習に利用されるデータセット(第1学習データセット121及び第2学習データセット227)を蓄積する。第1学習結果データ125は、第1のフェーズの機械学習により生成された学習済みの各ニューラルネットワーク(50、51)に関する情報を示す。第2学習結果データ127は、第2のフェーズの機械学習により生成された学習済みの学習モデルに関する情報を示す。各学習結果データ(125、127)は、学習プログラム81を実行した結果として得られる。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。学習装置1は、この通信インタフェース13を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、データ生成装置2、推定装置3等)と行うことができる。
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置15は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置14及び出力装置15を介して、学習装置1を操作することができる。入力装置14及び出力装置15は、タッチパネルディスプレイ等により一体的に構成されてもよい。
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記学習プログラム81及び第1データプール85の少なくともいずれかは、この記憶媒体91に記憶されていてもよい。
記憶媒体91は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。学習装置1は、この記憶媒体91から、上記学習プログラム81及び第1データプール85の少なくともいずれかを取得してもよい。
ここで、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
なお、学習装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、入力装置14、出力装置15及びドライブ16の少なくともいずれかは省略されてもよい。学習装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、学習装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC(Personal Computer)等であってもよい。
<データ生成装置>
次に、図3を用いて、本実施形態に係るデータ生成装置2のハードウェア構成の一例について説明する。図3は、本実施形態に係るデータ生成装置2のハードウェア構成の一例を模式的に例示する。
図3に示されるとおり、本実施形態に係るデータ生成装置2は、制御部21、記憶部22、通信インタフェース23、入力装置24、出力装置25、及びドライブ26が電気的に接続されたコンピュータである。本実施形態に係るデータ生成装置2の制御部21~ドライブ26はそれぞれ、上記学習装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。
すなわち、制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部22は、データ生成プログラム82、第2データプール87、第1学習結果データ125等の各種情報を記憶する。
データ生成プログラム82は、少なくとも1つ以上の第2学習データセット227を生成する後述の情報処理(図10)をデータ生成装置2に実行させるためのプログラムである。データ生成プログラム82は、当該情報処理の一連の命令を含む。第2データプール87は、正解データの付与されていない第2訓練データ221を蓄積する。詳細は後述する。
通信インタフェース23は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。データ生成装置2は、この通信インタフェース23を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置1)と行うことができる。
入力装置24は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置25は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置24及び出力装置25を介して、データ生成装置2を操作することができる。入力装置24及び出力装置25は、タッチパネルディスプレイ等により一体的に構成されてもよい。
ドライブ26は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体92に記憶されたプログラムを読み込むためのドライブ装置である。上記データ生成プログラム82、第2データプール87、及び第1学習結果データ125のうちの少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、データ生成装置2は、記憶媒体92から、上記データ生成プログラム82、第2データプール87、及び第1学習結果データ125のうちの少なくともいずれかを取得してもよい。記憶媒体92の種類は、ディスク型であってもよいし、ディスク型以外であってもよい。
なお、データ生成装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、入力装置24、出力装置25及びドライブ26の少なくともいずれかは省略されてもよい。データ生成装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、データ生成装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
<推定装置>
次に、図4を用いて、本実施形態に係る推定装置3のハードウェア構成の一例について説明する。図4は、本実施形態に係る推定装置3のハードウェア構成の一例を模式的に例示する。
図4に示されるとおり、本実施形態に係る推定装置3は、制御部31、記憶部32、通信インタフェース33、入力装置34、出力装置35、ドライブ36、及び外部インタフェース37が電気的に接続されたコンピュータである。なお、図4では、外部インタフェースを「外部I/F」と記載している。推定装置3の制御部31~ドライブ36はそれぞれ、上記学習装置1の制御部11~ドライブ16それぞれと同様に構成されてよい。
すなわち、制御部31は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部32は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。記憶部32は、推定プログラム83、第2学習結果データ127等の各種情報を記憶する。
推定プログラム83は、生成された学習済みの学習モデルを利用して、対象データに含まれる特徴を推定する後述の情報処理(図12)を推定装置3に実行させるためのプログラムである。推定プログラム83は、当該情報処理の一連の命令を含む。詳細は後述する。
通信インタフェース33は、例えば、有線LANモジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。推定装置3は、この通信インタフェース33を利用することで、ネットワークを介したデータ通信を他の情報処理装置(例えば、学習装置1)と行うことができる。
入力装置34は、例えば、マウス、キーボード等の入力を行うための装置である。出力装置35は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。オペレータは、入力装置34及び出力装置35を介して、推定装置3を操作することができる。入力装置34及び出力装置35は、タッチパネルディスプレイ等により一体的に構成されてもよい。
ドライブ36は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体93に記憶されたプログラムを読み込むためのドライブ装置である。上記推定プログラム83及び第2学習結果データ127のうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、推定装置3は、記憶媒体93から、上記推定プログラム83及び第2学習結果データ127のうちの少なくともいずれかを取得してもよい。記憶媒体93の種類は、ディスク型であってもよいし、ディスク型以外であってもよい。
外部インタフェース37は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース37の種類及び数は、接続される外部装置の種類及び数に応じて適宜選択されてよい。本実施形態では、推定装置3は、外部インタフェース37を介して、センサSに接続される。
センサSは、推定タスクの対象となる対象データを取得するのに利用される。センサSの種類及び配置場所は、特に限定されなくてもよく、遂行する推定タスクの種類に応じて適宜決定されてよい。一例として、製造ラインで搬送される製品であって、画像に写る製品の外観検査を実施する場合には、センサSには、カメラが選択されてよく、そのカメラは、製造ラインにより搬送される製品を観測可能なように適宜配置されてよい。なお、センサSが通信インタフェースを備える場合、推定装置3は、外部インタフェース37ではなく、通信インタフェース33を介して、センサSに接続されてよい。
なお、推定装置3の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部31は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部32は、制御部31に含まれるRAM及びROMにより構成されてもよい。通信インタフェース33、入力装置34、出力装置35、ドライブ36及び外部インタフェース37の少なくともいずれかは省略されてもよい。推定装置3は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、推定装置3は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC等であってもよい。
[ソフトウェア構成]
<学習装置>
次に、図5A及び図5Bを用いて、本実施形態に係る学習装置1のソフトウェア構成の一例について説明する。図5A及び図5Bは、本実施形態に係る学習装置1のソフトウェア構成の一例を模式的に例示する。
学習装置1の制御部11は、記憶部12に記憶された学習プログラム81をRAMに展開する。そして、制御部11は、RAMに展開された学習プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図5A及び図5Bに示されるとおり、本実施形態に係る学習装置1は、データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、学習装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
(第1のフェーズ)
図5Aに示されるとおり、第1のフェーズでは、データ取得部111は、第1訓練データ122、及び第1訓練データ122に含まれる特徴を示す第1正解データ123の組み合わせによりそれぞれ構成された複数の第1学習データセット121を取得する。データ取得部111は、本発明の「第1データ取得部」の一例である。本実施形態では、第1データプール85に学習データセットが蓄積されている。データ取得部111は、第1データプール85から複数の第1学習データセット121を取得することができる。
学習処理部112は、取得された複数の第1学習データセット121を使用して、複数のニューラルネットワークの機械学習を実施する。本実施形態では、学習処理部112は、2つのニューラルネットワーク(50、51)の機械学習を実施する。各ニューラルネットワーク(50、51)は、入力側から出力側に並んで配置された複数の層を含んでいる。各ニューラルネットワーク(50、51)において、複数の層は、最も出力側に配置された出力層(507、517)及び出力層(507、517)よりも入力側に配置された注目層(503、513)を含んでいる。上記機械学習を実施することは、各第1学習データセット121について、各ニューラルネットワーク(50、51)に第1訓練データ122を入力すると、第1正解データ123に適合する出力値が出力層(507、517)から出力されると共に、注目層(503、513)から出力される出力値が互いに適合するように、各ニューラルネットワーク(50、51)を訓練することを含む。
保存処理部113は、上記機械学習により構築された学習済みの各ニューラルネットワーク(50、51)に関する情報を第1学習結果データ125として生成する。そして、保存処理部113は、生成された第1学習結果データ125を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。
(ニューラルネットワーク)
次に、各ニューラルネットワーク(50、51)の一例について説明する。本実施形態では、各ニューラルネットワーク(50、51)は、畳み込みニューラルネットワークである。
畳み込みニューラルネットワークは、一般的に、畳み込み層、プーリング層、及び全結合層を備えている。畳み込み層は、与えられたデータに対する畳み込み演算を行う層である。畳み込み演算とは、与えられたデータと所定のフィルタとの相関を算出する処理に相当する。例えば、画像の畳み込みを行うことで、フィルタの濃淡パターンと類似する濃淡パターンを入力される画像から検出することができる。畳み込み層は、この畳み込み演算に対応するニューロンであって、入力又は自分の層よりも前(入力側)に配置された層の出力の一部の領域に結合するニューロンを備えている。プーリング層は、プーリング処理を行う層である。プーリング処理は、与えられたデータのフィルタに対する応答の強かった位置の情報を一部捨て、当該データ内に現れる特徴の微小な位置変化に対する応答の不変性を実現する。例えば、プーリング層では、フィルタ内の最も大きな値が抽出され、それ以外の値が削除される。全結合層は、1又は複数のニューロンを備え、隣接する層の間のニューロン全てを結合した層である。
図5Aの例では、各ニューラルネットワーク(50、51)は、入力側から出力側に並んで配置された複数の層(501~507、511~517)を備えている。最も入力側には、入力層(501、511)が配置されている。入力層(501、511)は、畳み込み層である。この入力層(501、511)の出力は、プーリング層(502、512)の入力に接続されている。このように、畳み込み層とプーリング層とは交互に配置されてよい。或いは、複数の畳み込み層が連続して配置されてよい。畳み込みニューラルネットワークでは、1又は複数の畳み込み層及び1又は複数のプーリング層を含む部分を備え、この部分の出力が全結合層に入力される構造を採用することが多い。
本実施形態では、この畳み込み層及びプーリング層が配置される部分において、注目層(503、513)は、中間層として配置されている。この注目層(503、513)は、畳み込み層である。この部分の最も出力側には、プーリング層(504、514)が配置されており、プーリング層(504、514)の出力が全結合層(506、516)の入力に接続されている。図5Aの例では、全結合層は2層であり、最も出力側に配置される全結合層が、出力層(507、517)である。
出力層(507、517)の形式は、推定タスクの種類に応じて適宜選択されてよい。一例として、各ニューラルネットワーク(50、51)に分類タスクの遂行を習得させる場合には、出力層(507、517)は、各カテゴリの発生確率を出力するように構成されてよい。この場合、出力層(507、517)は、各カテゴリに対応するニューロンを含んでよい。この出力層(507、517)は、ソフトマックス層により構成されてよい。また、その他の例として、各ニューラルネットワーク(50、51)に回帰タスクの遂行を習得させる場合、出力層(507、517)は、回帰される値を出力するように構成されてよい。この場合、出力層(507、517)は、回帰される値の数に応じたニューロンを含んでよい。更に、その他の例として、各ニューラルネットワーク(50、51)にセグメンテーションの遂行を習得させる場合、出力層(507、517)は、抽出される範囲(例えば、中心位置及び画素数)を出力するように構成されてよい。この場合、出力層(507、517)は、この範囲を示す形式に応じたニューロンを含んでよい。
なお、各ニューラルネットワーク(50、51)の構造は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。各ニューラルネットワーク(50、51)は、例えば、正規化層、ドロップアウト層等の上記の層以外の他の種類の層を備えてもよい。図5Aの例では、ニューラルネットワーク(50、51)の構造は同じであるが、ニューラルネットワーク(50、51)の構造は互いに相違していてもよい。
各ニューラルネットワーク(50、51)の複数の層(501~507、511~517)は、演算に利用される演算パラメータを備えている。具体的には、隣接する層のニューロン同士は適宜結合され、各結合には重み(結合荷重)が設定されている。また、各層(501~507、511~517)に含まれる各ニューロンには閾値が設定されている。基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。つまり、各ニューラルネットワーク(50、51)の演算処理は、入力層(501、511)に入力データが入力されたときに、入力側から順に順伝播方向に、各層(501~507、511~517)に含まれる各ニューロンの発火判定を行うことにより構成される。各層(501~507、511~517)に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算パラメータの一例である。
上記各ニューラルネットワーク(50、51)を訓練することは、各第1学習データセット121について、第1訓練データ122を入力層(501、511)に入力したときに、出力層(507、517)から出力される出力値と第1正解データ123との第1誤差が小さくなるように、かつ注目層(503、513)から出力される出力値の間の第2誤差が小さくなるように、各ニューラルネットワーク(50、51)の演算パラメータの値の調整を繰り返すことを備えてよい。
この調整を繰り返す過程において、演算パラメータの値を更新する程度を学習率により調節することができる。各誤差に関する学習率は、適宜設定されてよい。学習率は、設定値として与えられてもよいし、オペレータの指定により与えられてもよい。また、例えば、出力層(507、517)から出力される出力値と第1正解データ123との第1誤差に関する学習率は一定に設定されてよい。一方、注目層(503、513)から出力される出力値の間の第2誤差に関する学習率は、演算パラメータの値の調整を繰り返す度に大きくなるように設定されてよい。
なお、プーリング層(502、504、512、514)は、学習による調整の対象となる演算パラメータを有していない。このように、各ニューラルネットワーク(50、51)は、調整の対象とならない演算パラメータを有してもよい。
また、畳み込み層の出力値は、特徴マップと称される。本実施形態において、各ニューラルネットワーク(50、51)の注目層(503、513)から出力される出力値が互いに適合することは、畳み込み層である注目層(503、513)より出力される特徴マップ(60、61)から導出されるアテンションマップ(62、63)が互いに一致することであってよい。すなわち、第2誤差は、アテンションマップ(62、63)の不一致性に基づいて算出されてよい。
(第2のフェーズ)
図5Bに示されるとおり、第2のフェーズでは、データ取得部111は、データ生成装置2により生成された少なくとも1つ以上の第2学習データセット227を取得する。学習処理部112は、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の機械学習を再度実行してもよい。または、学習処理部112は、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)とは別の学習モデル52の教師あり学習を実施してもよい。教師あり学習は、機械学習の一種である。教師あり学習では、学習モデル52は、各訓練データ(122、223)の入力に対して、対応する各正解データ(123、225)に適合する出力値を出力するように訓練される。学習モデル52は、教師あり学習を実施可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。この学習モデル52には、例えば、ニューラルネットワーク、サポートベクタマシン、線形回帰モデル、決定木モデル等が用いられてよい。
上記機械学習により、所定の推定タスクの遂行に利用可能な学習済みの学習モデルが構築される。この学習済みの学習モデルは、ニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。保存処理部113は、この学習済みの学習モデルに関する情報を第2学習結果データ127として生成する。そして、保存処理部113は、生成された第2学習結果データ127を所定の記憶領域に保存する。所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。第2学習結果データ127の保存先は、第1学習結果データ125の保存先と同じであってもよいし、異なっていてもよい。
<データ生成装置>
次に、図6を用いて、本実施形態に係るデータ生成装置2のソフトウェア構成の一例について説明する。図6は、本実施形態に係るデータ生成装置2のソフトウェア構成の一例について模式的に例示する。
データ生成装置2の制御部21は、記憶部22に記憶されたデータ生成プログラム82をRAMに展開する。そして、制御部21は、RAMに展開されたデータ生成プログラム82に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図6に示されるとおり、本実施形態に係るデータ生成装置2は、モデル取得部211、データ取得部212、評価部213、抽出部214、生成部215、及び出力部216をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、データ生成装置2の各ソフトウェアモジュールも、上記学習装置1と同様に、制御部21(CPU)により実現される。
モデル取得部211は、第1のフェーズで訓練された複数のニューラルネットワークを取得する。本実施形態では、モデル取得部211は、第1学習結果データ125を取得することで、訓練された上記2つのニューラルネットワーク(50、51)を取得することができる。データ取得部212は、複数件の第2訓練データ221を取得する。データ取得部212は、本発明の「第2データ取得部」の一例である。本実施形態では、第2データプール87に正解データの付与されていない訓練データが蓄積されている。データ取得部212は、第2データプール87から複数件の第2訓練データ221を取得することができる。
評価部213は、第1学習結果データ125を保持することで、訓練された各ニューラルネットワーク(50、51)を備える。評価部213は、第1学習結果データ125を参照して、訓練された各ニューラルネットワーク(50、51)の設定を行う。評価部213は、訓練された各ニューラルネットワーク(50、51)に各件の第2訓練データ221を入力することで、各ニューラルネットワーク(50、51)の注目層(503、513)から出力値を取得する。評価部213は、注目層(503、513)から取得された出力値に基づいて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を示す評価値222を算出する。
本実施形態では、各ニューラルネットワーク(50、51)は畳み込みニューラルネットワークであり、各注目層(503、513)は畳み込み層である。評価部213は、注目層(503、513)の出力値として特徴マップ(65、66)を取得することができる。評価部213は、特徴マップ(65、66)からアテンションマップ(67、68)を算出し、算出されたアテンションマップ(67、68)に基づいて、各件の第2訓練データ221に対する評価値222を算出することができる。
抽出部214は、不安定性が高いと判定するための条件を評価値222が満たす少なくとも1件以上の第2訓練データ223を複数件の第2訓練データ221から抽出する。生成部215は、抽出された少なくとも1件以上の第2訓練データ223それぞれに対して、第2訓練データ223に含まれる特徴(すなわち、第2訓練データ223に対する所定の推定タスクの正解)を示す第2正解データ225の入力を受け付ける。そして、生成部215は、入力された第2正解データ225を対応する第2訓練データ223に付与することで、少なくとも1つ以上の第2学習データセット227を生成する。生成された各第2学習データセット227は、第2訓練データ223及び第2正解データ225の組み合わせにより構成される。
出力部216は、生成された少なくとも1つ以上の第2学習データセット227を学習モデルの教師あり学習に使用可能に出力する。一例として、出力部216は、この出力処理において、第2学習データセット227を第1データプール85に格納してもよい。これにより、生成された第2学習データセット227は、学習モデルの教師あり学習に使用可能な状態で保存される。
<推定装置>
次に、図7を用いて、本実施形態に係る推定装置3のソフトウェア構成の一例について説明する。図7は、本実施形態に係る推定装置3のソフトウェア構成の一例を模式的に例示する。
推定装置3の制御部31は、記憶部32に記憶された推定プログラム83をRAMに展開する。そして、制御部31は、RAMに展開された推定プログラム83に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図7に示されるとおり、本実施形態に係る推定装置3は、データ取得部311、推定部312、及び出力部313をソフトウェアモジュールとして備えるコンピュータとして構成される。すなわち、本実施形態では、推定装置3の各ソフトウェアモジュールも、上記学習装置1と同様に、制御部31(CPU)により実現される。
データ取得部311は、対象データ321を取得する。推定部312は、第2学習結果データ127を保持することで、学習済みの学習モデル70を推定器として備える。学習済みの学習モデル70は、上記第2のフェーズの機械学習により訓練されたニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかであってよい。推定部312は、第2学習結果データ127を参照して、学習済みの学習モデル70の設定を行う。
推定部312は、取得された対象データ321を学習済みの学習モデル70に入力して、学習済みの学習モデル70の演算処理を実行する。これにより、推定部312は、対象データ321に含まれる特徴を推定した結果に対応する出力値を学習済みの学習モデル70から取得する。つまり、推定部312は、この演算処理により、学習済みの学習モデル70を利用して、対象データ321に対する推定タスクを遂行することができる。出力部313は、推定の結果に関する情報を出力する。
なお、推定装置3で利用可能な学習済みの学習モデルは、第2のフェーズの機械学習により構築された学習済みの学習モデルに限られなくてもよく、第1のフェーズの機械学習により構築されたニューラルネットワーク(50、51)の少なくともいずれかであってよい。この場合、推定部312は、第1学習結果データ125を保持することで、学習済みのニューラルネットワーク(50、51)の少なくともいずれかを備える。推定部312は、この学習済みのニューラルネットワーク(50、51)の少なくともいずれかを利用して、対象データ321に対する推定タスクを遂行してもよい。
<その他>
学習装置1、データ生成装置2及び推定装置3の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、学習装置1、データ生成装置2及び推定装置3の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサにより実現されてもよい。また、学習装置1、データ生成装置2及び推定装置3それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
(A)第1のフェーズにおける機械学習
次に、図8を用いて、本実施形態に係る第1のフェーズにおける学習装置1の動作例について説明する。図8は、本実施形態に係る学習装置1の第1のフェーズにおける機械学習に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、複数の第1学習データセット121を取得する。各第1学習データセット121は、第1訓練データ122、及び当該第1訓練データ122に含まれる特徴を示す第1正解データ123の組み合わせにより構成される。本実施形態では、予め生成された学習データセットを蓄積する第1データプール85が記憶部12に保持されている。制御部11は、記憶部12の第1データプール85から複数の第1学習データセット121を取得する。
ただし、第1データプール85の保存先は、記憶部12に限られなくてもよく、実施の形態に応じて適宜選択されてよい。第1データプール85は、例えば、記憶媒体91、外部記憶装置等に保持されていてもよい。外部記憶装置は、学習装置1に接続された外付けの記憶装置であってよい。或いは、外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。また、第1データプール85は、他のコンピュータに保持されていてもよい。この場合、制御部11は、通信インタフェース13、ドライブ16等を介して、第1データプール85にアクセスし、複数の第1学習データセット121を取得することができる。
また、第1学習データセット121の取得源は、第1データプール85に限られなくてもよい。例えば、制御部11は、第1学習データセット121を生成してもよい。或いは、制御部11は、他のコンピュータにより生成された第1学習データセット121を取得してもよい。制御部11は、少なくともいずれかにより、複数の第1学習データセット121を取得してもよい。
なお、各第1学習データセット121を生成する方法は、第1訓練データ122の種類、及び学習モデルに習得させる推定タスクの種類(すなわち、第1正解データ123により示される情報)に応じて適宜選択されてよい。一例として、センサSと同種のセンサを用意し、用意したセンサにより様々な条件で観測を行うことで生成される各件のセンシングデータを第1訓練データ122として取得する。観測の対象は、学習モデルに習得させる推定タスクに応じて適宜選択されてよい。そして、得られた各件の第1訓練データ122に対して、当該各件の第1訓練データ122に現れる特徴を示す第1正解データ123を関連付ける。これにより、各第1学習データセット121を生成することができる。
各第1学習データセット121は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。また、各第1学習データセット121の生成は、学習装置1により行われてもよいし、学習装置1以外の他のコンピュータにより行われてもよい。各第1学習データセット121を学習装置1が生成する場合、制御部11は、自動的に又はオペレータの入力装置14を介した操作により手動的に上記一連の処理を実行することで、複数の第1学習データセット121を取得することができる。一方、各第1学習データセット121を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された複数の第1学習データセット121を取得することができる。他のコンピュータでは、自動的に又はオペレータの操作により手動的に上記一連の処理を実行することで、複数の第1学習データセット121が生成されてよい。一部の第1学習データセット121が学習装置1により生成され、その他の第1学習データセット121が1又は複数の他のコンピュータにより生成されてよい。
取得される第1学習データセット121の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数の第1学習データセット121を取得すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、学習処理部112として動作し、取得された複数の第1学習データセット121を使用して、複数のニューラルネットワークの機械学習を実施する。本実施形態では、制御部11は、2つのニューラルネットワーク(50、51)の機械学習を実施する。
各ニューラルネットワーク(50、51)は、入力側から出力側に並んで配置された複数の層(501~507、511~517)を含んでいる。複数の層(501~507、511~517)は、最も出力側に配置された出力層(507、517)及び出力層(507、517)よりも入力側に配置された注目層(503、513)を含んでいる。制御部11は、各第1学習データセット121の第1訓練データ122を入力データとして利用する。制御部11は、出力層(507、517)の出力に対して、第1正解データ123を教師データとして利用する。制御部11は、注目層(503、513)の出力に対して、当該注目層(503、513)の出力が一致することを教師データとして利用する。制御部11は、これらのデータに基づいて、各ニューラルネットワーク(50、51)の学習処理を実行する。この学習処理には、バッチ勾配降下法、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
<機械学習>
ここで、図9を更に用いて、ステップS102における機械学習の処理の一例を詳細に説明する。図9は、本実施形態に係る学習装置1による機械学習の処理手順の一例を例示する。本実施形態に係るステップS102の処理は、以下のステップS201~ステップS206の処理を含む。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS201)
ステップS201では、制御部11は、機械学習の処理対象となる各ニューラルネットワーク(50、51)を用意する。
用意する各ニューラルネットワーク(50、51)の構造(例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。テンプレートは、ニューラルネットワークの構造に関する情報、及びニューラルネットワークの演算パラメータの初期値に関する情報を含んでよい。
注目層は、テンプレートにおいて予め指定されていてもよいし、オペレータにより指定されてもよい。或いは、制御部11は、用意された各ニューラルネットワーク(50、51)内で出力形式が共通する層を特定し、特定された層から注目層を適宜決定してもよい。注目層を決定する基準は、任意に設定されてよい。注目層を決定する基準では、例えば、層の出力数、層の種類等の属性が指定されてよい。制御部11は、設定された基準に従って、特定された層から注目層を決定してもよい。
また、再学習を行う場合には、制御部11は、過去の機械学習を行うことで得られた学習結果データに基づいて、処理対象となる各ニューラルネットワーク(50、51)を用意してもよい。
処理対象の各ニューラルネットワーク(50、51)を用意すると、制御部11は、次のステップS202に処理を進める。
(ステップS202)
ステップS202では、制御部11は、各第1学習データセット121について、第1訓練データ122を入力層(501、511)に入力し、各ニューラルネットワーク(50、51)の演算処理を実行する。すなわち、制御部11は、入力側から順に、各層(501~507、511~517)に含まれる各ニューロンの発火判定を行う。この演算処理の結果、制御部11は、出力層(507、517)から、第1訓練データ122に対して推定タスクを遂行した結果に対応する出力値を取得することができる。また、この演算処理の過程で、入力層(501、511)から注目層(503、513)までの演算を実行することで、制御部11は、注目層(503、513)の出力値を取得することができる。注目層(503、513)及び出力層(507、517)それぞれからの出力値を取得すると、制御部11は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部11は、各第1学習データセット121について、出力層(507、517)からの出力値と第1正解データ123との第1誤差を算出する。第1誤差の算出には、平均二乗誤差、交差エントロピー誤差等の公知の誤差関数が用いられてよい。誤差関数は、出力と教師データとの差分を評価する関数であり、当該差分が大きいほど、損失関数の値は大きくなる。制御部11は、第1誤差の勾配を算出し、誤差逆伝播(Back propagation)法により、算出された勾配を逆伝播することで、各層(501~507、511~517)に含まれる演算パラメータ(例えば、各ニューロン間の結合の重み、各ニューロンの閾値等)の誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、演算パラメータの値を更新する。これにより、制御部11は、出力層(507、517)から出力される出力値と第1正解データ123の第1誤差が小さくなるように、各ニューラルネットワーク(50、51)の演算パラメータの値を調整する。
第1誤差について、演算パラメータの値を更新する程度は、学習率により調節される。学習率は、機械学習において演算パラメータの値を更新する度合いを定める。学習率が大きいほど演算パラメータの更新量が大きくなり、学習率が小さいほど演算パラメータの更新量が小さくなる。この場合、制御部11は、学習率を各誤差に掛け合わせて得られた値により、演算パラメータの値を更新する。第1誤差に関する学習率は、適宜与えられてよい。第1誤差に関する学習率の初期値は、例えば、オペレータの指定により与えられてもよいし、設定値として与えられてもよい。第1誤差に基づいて、各ニューラルネットワーク(50、51)の演算パラメータの値の調整が完了すると、制御部11は、次のステップS204に処理を進める。
(ステップS204)
ステップS204では、制御部11は、各第1学習データセット121について、注目層(503、513)から出力される出力値の間の第2誤差を算出する。第2誤差の算出には、注目層(503、513)の出力形式に応じて、平均二乗誤差等の公知の誤差関数が用いられてよい。
本実施形態では、注目層(503、513)は畳み込み層であり、制御部11は、ステップS202において、注目層(503、513)の出力値として特徴マップ(60、61)を取得することができる。制御部11は、特徴マップ(60、61)からアテンションマップ(62、63)を算出する。特徴マップからアテンションマップを算出する方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。
例えば、制御部11は、特徴マップ(60、61)の各要素の絶対値をチャンネル方向に合計することで、アテンションマップ(62、63)を算出してもよい。入力データが画像データである場合、特徴マップ(60、61)の各要素は画素に対応する。特徴マップ(60、61)のチャンネル数は、畳み込み層によるフィルタの数及び入力データのチャンネル数に対応する。また、例えば、制御部11は、特徴マップ(60、61)の各要素の絶対値のn乗をチャンネル方向に合計することで、アテンションマップ(62、63)を算出してもよい。nは、任意の数であってよい。また、例えば、制御部11は、特徴マップ(60、61)の各要素の絶対値のn乗を算出し、算出されたn乗の値の最大値をチャンネル方向に抽出することで、アテンションマップ(62、63)を算出してもよい。この他、特徴マップからアテンションマップを算出する方法には、公知の方法が採用されてよい。
続いて、制御部11は、算出されたアテンションマップ(62、63)の平均二乗誤差を算出することで、注目層(503、513)の出力値の間の第2誤差を算出することができる。なお、第2誤差を算出する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、制御部11は、特徴マップ(60、61)から直接的に第2誤差を算出してもよい。
次に、制御部11は、第2誤差の勾配を算出し、誤差逆伝播法により、算出された勾配を注目層(503、513)から入力層(501、511)の方に逆伝播することで、入力層(501、511)から注目層(503、513)までに含まれる演算パラメータの誤差を算出する。そして、制御部11は、算出された各誤差に基づいて、入力層(501、511)から注目層(503、513)までに含まれる演算パラメータの値を更新する。これにより、制御部11は、注目層(503、513)の出力値の間の第2誤差が小さくなるように(すなわち、アテンションマップ(62、63)が互いに一致する方向に)、各ニューラルネットワーク(50、51)の演算パラメータの値を調整する。
なお、第2誤差による演算パラメータの調整は、このような例に限定されなくてもよく、必ずしも両方のニューラルネットワーク(50、51)において実行されなくてもよい。例えば、制御部11は、ステップS204において、2つのニューラルネットワーク(50、51)のうちの一方を基準にし、残りの方の演算パラメータのみを調整するようにしてもよい。すなわち、ステップS204では、制御部11は、ニューラルネットワーク(50、51)のうちの少なくともいずれかの入力層から注目層までに含まれる演算パラメータの値を調節する。3つ以上のニューラルネットワークが機械学習の処理の対象となる場合には、制御部11は、全てのニューラルネットワークの演算パラメータの値を調整してもよいしもよい。或いは、制御部11は、いずれか1つを基準にし、残りのニューラルネットワークの演算パラメータの値を調整するようにしてもよい。
また、第2誤差について、第1誤差と同様に、演算パラメータの値を更新する程度は、学習率により調節される。第2誤差に関する学習率は、適宜与えられてよい。第2誤差に関する学習率は、例えば、オペレータの指定により与えられてもよいし、設定値として与えられてもよい。第2誤差に基づいて、演算パラメータの値の調整が完了すると、制御部11は、次のステップS205に処理を進める。
(ステップS205及びS206)
ステップS205では、制御部11は、機械学習の処理(すなわち、各ニューラルネットワーク(50、51)の演算パラメータの値の調整)を繰り返すか否かを判定する。
繰り返すか否かを判定する基準は、適宜設定されてよい。例えば、機械学習を繰り返す規定回数が設定されてよい。規定回数は適宜与えられてよい。この規定回数は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。この場合、制御部11は、ステップS202~ステップS204の一連の処理を実行した回数が規定回数に到達したか否かを判定する。当該一連の処理を実行した回数が規定回数に到達していない場合、制御部11は、機械学習の処理を繰り返すと判定する。他方、当該一連の処理を実行した回数が規定回数に到達した場合、制御部11は、機械学習の処理を繰り返さないと判定する。
また、例えば、上記各誤差が閾値以下になるまで、制御部11は、機械学習の処理を繰り返してもよい。この場合、上記各誤差が閾値を超えている場合、制御部11は、機械学習の処理を繰り返すと判定する。他方、上記各誤差が閾値以下である場合、制御部11は、機械学習の処理を繰り返さないと判定する。この閾値は、適宜設定されてよい。閾値は、例えば、設定値により与えられてもよいし、オペレータの指定により与えられてもよい。
機械学習の処理を繰り返すと判定した場合、制御部11は、次のステップS206に処理を進める。一方、機械学習の処理を繰り返さないと判定した場合、制御部11は、機械学習の処理を終了する。
ステップS206では、制御部11は、第2誤差に関する学習率の値を大きくする。学習率の増加量は、適宜決定されてよい。例えば、制御部11は、学習率の元の値に一定の値を加算することで、第2誤差に関する学習率の値を大きくしてもよい。また、例えば、制御部11は、実行回数が多いほど大きな値になるように実行回数と学習率の値との間の関係を規定した関数を利用して、学習率の値を決定してもよい。実行回数が多いほど、学習率の増加量が小さくなるように設定されてもよい。第2誤差に関する学習率の値を変更した後、制御部11は、ステップS202から処理を繰り返す。これにより、本実施形態では、第2誤差に関する学習率は、演算パラメータの値の調整を繰り返す度に大きくなるように設定される。
機械学習の初期段階では、各ニューラルネットワーク(50、51)の注目層(503、513)の出力値は大きく相違する可能性がある。制御部11は、このステップS206により、第2誤差に関する学習率を徐々に大きな値にすることで、各ニューラルネットワーク(50、51)の注目層(503、513)の出力値を互いに適合させるための学習を適切に収束させることができる。
ただし、第2誤差に関する学習率の設定は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、第2誤差に関する学習率の設定は、一定の値に設定されてもよい。この場合、本ステップS206の処理は省略されてよく、制御部11は、第2誤差に関する学習率の値を変更せずに、ステップS202から処理を繰り返してもよい。
なお、第1誤差に関する学習率は適宜設定されてよい。制御部11は、第2誤差に関する学習率と同様に、第1誤差に関する学習率を、演算パラメータの値の調整を繰り返す度に大きくなるように設定してもよい。この場合、制御部11は、ステップS206の処理と同様に、第1誤差に関する学習率の値も大きくした後に、ステップS202から処理を繰り返す。或いは、第1誤差に関する学習率は、一定の値に設定されてもよい。この場合、第1誤差に関する学習率は一定の値のままで、制御部11は、ステップS202から処理を繰り返す。
以上により、ステップS203及びステップS204の処理を繰り返した後、制御部11は、機械学習の処理を終了する。ステップS203の処理が繰り返されることで、各ニューラルネットワーク(50、51)は、各第1学習データセット121について、各ニューラルネットワーク(50、51)に第1訓練データ122を入力すると、第1正解データ123に適合する出力値が出力層(507、517)から出力されるように訓練される。加えて、ステップS204の処理が繰り返されることで、各ニューラルネットワーク(50、51)は、注目層(503、513)から出力される出力値が互いに適合するように訓練される。本実施形態では、各ニューラルネットワーク(50、51)は、注目層(503、513)より出力される特徴マップ(60、61)から導出されるアテンションマップ(62、63)が互いに一致するように訓練される。この「一致する」ことには、閾値以下の誤差が生じることが含まれてよい。機械学習の処理が完了すると、制御部11は、次のステップS103に処理を進める。
なお、機械学習の処理は、このような例に限定されなくてもよく、実施の形態に応じて適宜変更されてよい。例えば、ステップS203及びステップS204の処理の順序は入れ替わってもよい。或いは、ステップS203及びステップS204の処理は並列に実行されてもよい。また、上記のようにステップS203及びステップS204の処理を繰り返し連続して実行するのではなく、又は繰り返し連続して実行すると共に、制御部11は、ステップS203及びステップS204の処理を単独で繰り返し実行してもよい。
(ステップS103)
図8に戻り、ステップS103では、制御部11は、保存処理部113として動作し、機械学習により構築された学習済みの各ニューラルネットワーク(50、51)に関する情報を第1学習結果データ125として生成する。第1学習結果データ125は、訓練された各ニューラルネットワーク(50、51)を再現可能に構成される。例えば、第1学習結果データ125は、各ニューラルネットワーク(50、51)の構造及び演算パラメータの値を示す情報を含んでよい。そして、制御部11は、生成された第1学習結果データ125を所定の記憶領域に保存する。
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS等のデータサーバであってもよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに第1学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、学習装置1に接続された外付けの記憶装置であってよい。第1学習結果データ125を保存すると、制御部11は、第1のフェーズにおける機械学習に関する一連の処理を終了する。
(B)学習データセットの生成
次に、図10を用いて、本実施形態に係るデータ生成装置2の動作例について説明する。図10は、本実施形態に係るデータ生成装置2による学習データセットの生成に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、データ生成方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS301)
ステップS301では、制御部21は、モデル取得部211として動作し、第1のフェーズで訓練された複数のニューラルネットワークを取得する。本実施形態では、制御部21は、第1学習結果データ125を取得することで、訓練された上記2つのニューラルネットワーク(50、51)を取得する。
学習装置1により生成された第1学習結果データ125は、任意のタイミングでデータ生成装置2に提供されてよい。例えば、学習装置1の制御部11は、上記ステップS103の処理として又は上記ステップS103とは別に、第1学習結果データ125をデータ生成装置2に転送してもよい。制御部21は、この転送を受け付けることで、第1学習結果データ125を取得してもよい。また、例えば、制御部21は、通信インタフェース23を利用して、学習装置1又はデータサーバにネットワークを介してアクセスすることで、第1学習結果データ125を取得してもよい。また、例えば、制御部21は、記憶媒体92を介して、第1学習結果データ125を取得してもよい。本ステップS301を実行する前に、上記いずれかの取得処理により、第1学習結果データ125既に記憶部22に格納されていてもよい。この場合、制御部21は、記憶部22から第1学習結果データ125を取得してもよい。第1学習結果データ125を取得すると、制御部21は、次のステップS302に処理を進める。
なお、第1学習結果データ125は、データ生成装置2に予め組み込まれていてもよい。この場合、ステップS301の処理は省略されてよい。また、データ生成装置2のソフトウェア構成からモデル取得部211は省略されてよい。
(ステップS302)
ステップS302では、制御部21は、データ取得部212として動作し、複数件の第2訓練データ221を取得する。第2訓練データ221は、第1訓練データ122と同種のデータである。本字氏形態では、正解データの付与されていない訓練データを蓄積する第2データプール87が記憶部22に保持されている。制御部21は、記憶部22の第2データプール87から複数件の第2訓練データ221を取得する。
ただし、第2データプール87の保存先は、記憶部22に限られなくてもよく、実施の形態に応じて適宜選択されてよい。第2データプール87は、例えば、記憶媒体92、外部記憶装置等に保持されていてもよい。外部記憶装置は、データ生成装置2に接続された外付けの記憶装置であってもよい。或いは、外部記憶装置は、例えば、NAS等のデータサーバであってよい。また、第2データプール87は、他のコンピュータに保持されてもよい。この場合、制御部21は、通信インタフェース23、ドライブ26等を介して、第2データプール87にアクセスし、複数件の第2訓練データ221を取得することができる。
また、第2訓練データ221の取得源は、第2データプール87に限られなくてもよい。例えば、制御部21は、第2訓練データ221を生成してもよい。或いは、制御部21は、他のコンピュータにより生成された第2訓練データ221を取得してもよい。この場合、制御部21は、例えば、ネットワーク、記憶媒体92等を介して、他のコンピュータにより生成された第2訓練データ221を取得することができる。制御部21は、少なくともいずれかにより、複数件の第2訓練データ221を取得してもよい。
なお、第2訓練データ221を生成する方法は、上記第1訓練データ122を生成する方法と同様であってよい。第2訓練データ221は、コンピュータの動作により自動的に生成されてもよいし、オペレータの操作により手動的に生成されてもよい。複数件の第2訓練データ221のうちの一部をデータ生成装置2が生成し、残りを他のコンピュータが生成してもよい。
取得される第2訓練データ221の件数は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。複数件の第2訓練データ221を取得すると、制御部21は、次のステップS303に処理を進める。
(ステップS303)
ステップS303では、制御部21は、評価部213として動作し、第1学習結果データ125を参照して、訓練された各ニューラルネットワーク(50、51)の設定を行う。そして、制御部21は、訓練された各ニューラルネットワーク(50、51)の入力層(501、511)に各件の第2訓練データ221を入力し、各ニューラルネットワーク(50、51)の注目層(503、513)までの演算処理を実行する。すなわち、制御部21は、各件の第2訓練データ221を入力層(501、511)に入力し、入力側から順に、入力層(501、511)から注目層(503、513)までに含まれる各ニューロンの発火判定を行う。これにより、制御部21は、各ニューラルネットワーク(50、51)の注目層(503、513)から出力値を取得する。注目層(503、513)からの出力値を取得すると、制御部21は、次のステップS304に処理を進める。
(ステップS304)
ステップS304では、制御部21は、評価部213として動作し、取得された出力値に基づいて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を示す評価値222を算出する。
注目層(503、513)の出力値と評価値222との間の関係は、獲得関数により数学的に記述されてよい。獲得関数は、注目層(503、513)の出力値のばらつきが大きいほど、算出される評価値222が高い不安定性を示すように適宜定義されてよい。制御部21は、注目層(503、513)から取得された出力値を獲得関数に代入することで、各件の第2訓練データ221に対する評価値222を算出することができる。
一例として、本実施形態では、注目層(503、513)は畳み込み層であり、注目層(503、513)の出力値は、特徴マップ(65、66)として取得される。制御部21は、特徴マップ(65、66)からアテンションマップ(67、68)を算出する。アテンションマップ(67、68)を算出する方法は、上記アテンションマップ(62、63)を算出する方法と同様であってよい。
続いて、制御部21は、全ての要素の総和が1になるように、アテンションマップ(67、68)を正規化する。正規化されたアテンションマップ(67、68)は、ソフトマックス関数の出力と同様の性質を有する。そのため、制御部21は、ソフトマックス関数の出力に利用される獲得関数を、正規化されたアテンションマップ(67、68)に適用してもよい。例えば、制御部21は、以下の式1~式3のH、I、及びVのいずれかを評価値222として算出してもよい。
なお、sは、アテンションマップの各要素を示し、iは、アテンションマップの各要素の値を示す。p(s=i|x,w
t)は、アテンションマップの各要素が値iである確率を示す。xは、入力データ(すなわち、第2訓練データ221)を示し、w
tは、各ニューラルネットワークを示す。Sはアテンションマップの要素数を示す。tは、ニューラルネットワークのインデックスを示し、Tは、ニューラルネットワークの数(本実施形態では、2)を示す。オーバーラインは、平均値を示す。ただし、評価値222を算出する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。各件の第2訓練データ221に対する評価値222を算出すると、制御部21は、次のステップS305に処理を進める。
(ステップS305)
ステップS305では、制御部21は、抽出部214として動作し、不安定性が高いと判定するための条件を評価値222が満たす少なくとも1件以上の第2訓練データ223を複数件の第2訓練データ221から抽出する。
第2訓練データ223を抽出するための条件は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、制御部21は、不安定性の最も高いものから任意数の第2訓練データ223を複数件の第2訓練データ221から抽出してもよい。この場合、抽出する数は、設定値として与えられてもよいし、オペレータの指定により与えられてよい。また、例えば、制御部21は、評価値222と閾値とを比較し、不安定性が閾値を超える第2訓練データ223を複数件の第2訓練データ221から抽出してもよい。この場合、閾値は、設定値として与えられてもよいし、オペレータの指定により与えられてもよい。少なくとも1件以上の第2訓練データ223を抽出すると、制御部21は、次のステップS306に処理を進める。
(ステップS306)
ステップS306では、制御部21は、生成部215として動作し、抽出された少なくとも1件以上の第2訓練データ223それぞれに対して、第2訓練データ223に含まれる特徴(すなわち、第2訓練データ223に対する所定の推定タスクの正解)を示す第2正解データ225の入力を受け付ける。続いて、制御部21は、入力された第2正解データ225を対応する第2訓練データ223に関連付ける。これにより、制御部21は、第2訓練データ223及び第2正解データ225の組み合わせによりそれぞれ構成される少なくとも1つ以上の第2学習データセット227を生成する。
第2正解データ225の入力を受け付ける方法は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、制御部21は、入力装置24を介してオペレータの入力を受け付けてもよい。また、例えば、第2訓練データ223と同種のデータに対して同種の推定タスクを遂行する推定器が存在する場合には、制御部21は、この推定器の推定結果の入力を受け付けてもよい。すなわち、制御部21は、この推定器を利用して、第2訓練データ223に対して所定の推定タスクを遂行した結果を第2正解データ225として取得してもよい。この推定器の種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。この推定器は、例えば、学習済みの学習モデル70と同様であってよい。少なくとも1つ以上の第2学習データセット227を生成すると、制御部21は、次のステップS307に処理を進める。
(ステップS307)
ステップS307では、制御部21は、出力部216として動作し、生成された少なくとも1つ以上の第2学習データセット227を学習モデルの教師あり学習に使用可能に出力する。
出力方法は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。一例として、制御部21は、この出力処理において、生成された第2学習データセット227を第1データプール85に格納してもよい。これにより、生成された第2学習データセット227は、学習装置1により学習モデルの教師あり学習に使用可能な状態で保存される。その他の例として、制御部21は、この出力処理において、生成された第2学習データセット227を、学習モデルの教師あり学習を実行するコンピュータに対して送信してもよい。また、その他の例として、制御部21は、生成された第2学習データセット227を、学習モデルの教師あり学習を実行するコンピュータが取得可能な状態で、所定の記憶領域に保存してもよい。所定の記憶領域は、例えば、制御部21内のRAM、記憶部22、記憶媒体92、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS等のデータサーバであってもよいし、データ生成装置2に接続された外付けの記憶装置であってもよい。生成された少なくとも1つ以上の第2学習データセット227を出力すると、制御部21は、学習データセットの生成に関する一連の処理を終了する。
(C)第2のフェーズにおける機械学習
次に、図11を用いて、本実施形態に係る第2のフェーズにおける学習装置1の動作例について説明する。図11は、本実施形態に係る学習装置1の第2のフェーズにおける機械学習に関する処理手順の一例を示すフローチャートである。以下で説明する処理手順は、学習方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。学習方法には、上記第1のフェーズの学習方法及びデータ生成方法が更に含まれてもよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS501)
ステップS501では、制御部11は、データ取得部111として動作し、データ生成装置2により生成された少なくとも1つ以上の第2学習データセット227を取得する。
本実施形態では、制御部11は、上記ステップS307の処理の後、第1データプール85から少なくとも1つ以上の第2学習データセット227を取得することができる。ただし、第2学習データセット227の取得先は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、制御部11は、データ生成装置2から直接的に又は間接的に第2学習データセット227を取得してもよい。
更に、制御部11は、上記ステップS101と同様に、複数の1つ以上の第1学習データセット121を取得する。各学習データセット(121、227)を取得すると、制御部11は、次のステップS502に処理を進める。
(ステップS502)
ステップS502では、制御部11は、学習処理部112として動作し、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、学習モデルの機械学習を実施する。
制御部11は、ステップS502の処理として、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の機械学習を再度実行してもよい。この再学習において、複数のニューラルネットワークのうちの少なくともいずれかの機械学習が省略されてもよい。本実施形態では、2つのニューラルネットワーク(50、51)のうちの少なくとも一方の機械学習が省略されてもよい。
また、この再学習において、第1のフェーズのステップS102と同様に、各訓練データ(122、223)の入力に対して、出力層(507、517)の出力値を各正解データ(123、225)に適合させる訓練(ステップS203)、及び注目層(503、513)の出力値を互いに適合させる訓練(ステップS204)の両方が実行されてもよい。或いは、前者の訓練のみが実行され、後者の訓練は省略されてよい。つまり、出力層(507、517)の出力値を各正解データ(123、225)に適合させる訓練のみが実行されてよい。
または、制御部11は、ステップS502の処理として、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)とは別の学習モデル52の教師あり学習を実施してもよい。この学習モデル52は、教師あり学習を実施可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。この学習モデル52には、ニューラルネットワークの他、例えば、サポートベクタマシン、線形回帰モデル、決定木モデル等が用いられてよい。学習モデル52にニューラルネットワークを採用する場合、学習モデル52の構造は、各ニューラルネットワーク(50、51)のいずれかと同じであってもよいし、ニューラルネットワーク(50、51)の両方と相違してもよい。
教師あり学習では、学習モデル52は、各学習データセット(121、227)について、各訓練データ(122、223)の入力に対して、対応する各正解データ(123、225)に適合する出力値を出力するように訓練される。教師あり学習の方法は、学習モデル52の種類に応じて適宜選択されてよい。教師あり学習の方法には、誤差逆伝播法、回帰分析、ランダムフォレスト等の公知の方法が採用されてよい。これにより、学習済みの学習モデル52は、学習済みの各ニューラルネットワーク(50、51)と同様に、所定の推定タスクの遂行に利用可能に訓練される。
上記機械学習により、学習済みの学習モデルが構築される。この学習済みの学習モデルは、ニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。機械学習の処理が完了すると、制御部11は、次のステップS503に処理を進める。
(ステップS503)
ステップS503では、制御部11は、保存処理部113として動作し、上記学習済みの学習モデルに関する情報を第2学習結果データ127として生成する。第2学習結果データ127は、ステップS502の処理により構築された学習済みの学習モデルを再現可能に構成される。例えば、第2学習結果データ127は、学習済みの学習モデルの構造及び演算パラメータの値を示す情報を含んでよい。そして、制御部11は、生成された第2学習結果データ127を所定の記憶領域に保存する。
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、記憶媒体91、外部記憶装置又はこれらの組み合わせであってよい。外部記憶装置は、例えば、NAS等のデータサーバであってもよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに第2学習結果データ127を格納してもよい。また、外部記憶装置は、例えば、学習装置1に接続された外付けの記憶装置であってよい。第2学習結果データ127の保存先は、第1学習結果データ125の保存先と同じであってもよいし、異なっていてもよい。第2学習結果データ127を保存すると、制御部11は、第2のフェーズにおける機械学習に関する一連の処理を終了する。
なお、生成された第2学習結果データ127は、任意のタイミングで推定装置3に提供されてよい。例えば、制御部11は、ステップS503の処理として又はステップS503の処理とは別に、第2学習結果データ127を推定装置3に転送してもよい。推定装置3は、この転送を受け付けることで、第2学習結果データ127を取得してもよい。また、例えば、推定装置3は、通信インタフェース33を利用して、学習装置1又はデータサーバにネットワークを介してアクセスすることで、第2学習結果データ127を取得してもよい。また、例えば、推定装置3は、記憶媒体93を介して、第2学習結果データ127を取得してもよい。第2学習結果データ127は、推定装置3に予め組み込まれてもよい。
また、ステップS502において、上記ステップS102と同様に、各ニューラルネットワーク(50、51)の再学習を実施した場合、生成された第2学習結果データ127は、任意のタイミングでデータ生成装置2に提供されてよい。これにより、再学習された各ニューラルネットワーク(50、51)が、上記学習データセットの生成処理に利用されてよい。この学習データセットの生成処理と各ニューラルネットワーク(50、51)の再学習の処理とは交互に繰り返し実行されてよい。
(D)推定タスクの遂行
次に、図12を用いて、本実施形態に係る推定装置3の動作例について説明する。図12は、本実施形態に係る推定装置3の処理手順の一例を示すフローチャートである。以下で説明する処理手順は、推定方法の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。推定方法には、上記学習方法及びデータ生成方法が更に含まれてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
(ステップS701)
ステップS701では、制御部31は、データ取得部311として動作し、推定タスクを遂行する対象となる対象データ321を取得する。本実施形態では、推定装置3は、外部インタフェース37を介してセンサSに接続されている。そのため、制御部31は、外部インタフェース37を介して、センサSにより生成されるセンシングデータを対象データ321として取得する。
ただし、対象データ321を取得する経路は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。例えば、推定装置3とは異なる他のコンピュータにセンサSが接続されていてもよい。この場合、制御部31は、他のコンピュータから対象データ321の送信を受け付けることで、対象データ321を取得してもよい。対象データ321を取得すると、制御部31は、次のステップS702に処理を進める。
(ステップS702)
ステップS702では、制御部31は、推定部312として動作し、学習済みの学習モデル70を利用して、取得された対象データ321に含まれる特徴を推定する。
本実施形態では、学習済みの学習モデル70は、上記第2のフェーズの機械学習により訓練されたニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。制御部31は、第2学習結果データ127を参照して、学習済みの学習モデル70の設定を行う。そして、制御部31は、取得された対象データ321を学習済みの学習モデル70に入力して、学習済みの学習モデル70の演算処理を実行する。演算処理は、学習済みの学習モデル70の種類に応じて適宜選択されてよい。これにより、制御部31は、対象データ321に含まれる特徴を推定した結果に対応する出力値を学習済みの学習モデル70から取得する。つまり、制御部31は、この演算処理により、対象データ321に含まれる特徴を推定することができる。対象データ321に含まれる特徴の推定が完了すると、制御部31は、次のステップS703に処理を進める。
(ステップS703)
ステップS703では、制御部31は、出力部313として動作し、推定の結果に関する情報を出力する。
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部31は、対象データ321に含まれる特徴を推定した結果をそのまま出力装置35に出力してもよい。また、例えば、制御部31は、推定の結果に基づいて、何らかの情報処理を実行してもよい。そして、制御部31は、その情報処理を実行した結果を推定の結果に関する情報として出力してもよい。この情報処理を実行した結果の出力には、推定の結果に応じて警告等の特定のメッセージを出力すること、推定の結果に応じて制御対象装置の動作を制御すること等が含まれてよい。出力先は、例えば、出力装置35、制御対象装置等であってよい。推定の結果に関する情報の出力が完了すると、制御部31は、学習済みの学習モデル70を利用した推定処理に関する一連の処理を終了する。
なお、推定装置3で利用可能な学習済みの学習モデルは、第2のフェーズの機械学習により構築された学習済みの学習モデル70に限られなくてもよい。第1のフェーズの機械学習により構築されたニューラルネットワーク(50、51)の少なくともいずれかが推定装置3で利用されてもよい。この場合、第1のフェーズで生成された第1学習結果データ125が、任意のタイミングで推定装置3に提供されてよい。或いは、第1学習結果データ125は、推定装置3に予め組み込まれてもよい。これにより、推定装置3は、上記学習済みの学習モデル70の代わりに、第1のフェーズで学習済みのニューラルネットワーク(50、51)の少なくともいずれかを利用して、上記ステップS701~ステップS703の処理を実行してもよい。
[特徴]
以上のとおり、本実施形態では、各ニューラルネットワーク(50、51)において、出力層(507、517)よりも入力側に配置された層が注目層(503、517)に選択される。各ニューラルネットワーク(50、51)の出力層(507、517)の形式は、習得させる推定タスクの種類に依存する。これに対して、各ニューラルネットワーク(50、51)の出力層(507、517)より入力側に配置される層の形式は、推定タスクの種類に依存せずに設定可能である。
ただし、ステップS102の機械学習において、第1訓練データ122の入力に対して、出力層(507、517)の出力値を第1正解データ123に適合させる訓練(ステップS203)のみを実行した場合には、同一の入力データに対して、各注目層(503、513)の出力値はばらついてしまう。そこで、本実施形態では、ステップS102の機械学習において、ステップS203の訓練と共に、ステップS204による注目層(503、513)の出力値を互いに適合させる訓練を実行する。これにより、ステップS304及びステップS305において、注目層(503、513)の出力値に基づいて、各件の第2訓練データ221に対する出力の不安定性を適切に評価することができるようになる。
したがって、本実施形態では、出力形式の共通する層を注目層(503、513)に設定することで、各ニューラルネットワーク(50、51)に習得させるタスクの種類に依存せずに、共通の指標を用いて、各件の第2訓練データ221に対する各ニューラルネットワーク(50、51)の出力の不安定性を評価することができる。つまり、各ニューラルネットワーク(50、51)の出力層(507、517)の出力形式を推定タスクの種類に応じて変更した場合でも、ステップS304において、獲得関数を変更せずに、各件の第2訓練データ221に対する出力の不安定性を評価することができる。また、ステップS204により、注目層(503、513)の出力値を互いに適合させる訓練を実行しているため、ステップS305では、その評価の結果に基づいて、推定器の性能向上に寄与する程度の高いと推定される第2訓練データ223を適切に抽出することができる。よって、本実施形態によれば、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。
また、本実施形態に係る学習装置1は、第2のフェーズにおいて、アクティブラーニングにより抽出された第2訓練データ223を更に使用して、より性能の高い学習済みの学習モデルを効率的に生成することができる。そして、本実施形態に係る推定装置3は、第2のフェーズにより生成された学習済みの学習モデルを利用することで、所定の推定タスクを精度よく遂行することができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態に係る推定システム100は、センサSにより得られるセンシングデータに含まれる特徴を推定する場面に適用されている。しかしながら、上記実施形態の適用範囲は、このような例に限定される訳ではない。上記実施形態は、任意の種類のデータに対して任意の推定タスクを遂行するあらゆる場面に適用可能である。以下、適用場面を限定した変形例を例示する。
(A)外観検査の場面
図13は、第1変形例に係る検査システム100Aの適用場面の一例を模式的に例示する。本変形例は、製造ラインで搬送される製品Rの外観検査を行う場面に上記実施形態を適用した例である。図13に示されるとおり、本実施形態に係る検査システム100Aは、学習装置1、データ生成装置2、及び検査装置3Aを備えている。上記実施形態と同様に、学習装置1、データ生成装置2、及び検査装置3Aは、ネットワークを介して互いに接続されてよい。
本変形例に係る検査システム100Aは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。上記実施形態と同様に、学習装置1は、第1のフェーズにおいて、複数の第1学習データセット121を使用して、各ニューラルネットワーク(50、51)の機械学習を実施する。データ生成装置2は、第1のフェーズの機械学習で訓練された各ニューラルネットワーク(50、51)を利用して、少なくとも1つ以上の第2学習データセット227を生成する。学習装置1は、第2のフェーズにおいて、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の再学習又は新たな学習モデル52の教師あり学習を実施する。
各訓練データ(122、223)は、製品Rの写る画像データである。製品Rは、例えば、電子機器、電子部品、自動車部品、薬品、食品等であってよい。電子部品は、例えば、基盤、チップコンデンサ、液晶、リレーの巻線等であってよい。自動車部品は、例えば、コンロッド、シャフト、エンジンブロック、パワーウィンドウスイッチ、パネル等であってよい。薬品は、例えば、包装済みの錠剤、未包装の錠剤等であってよい。製品Rは、製造過程完了後に生成される最終品であってもよいし、製造過程の途中で生成される中間品であってもよいし、製造過程を経過する前に用意される初期品であってもよい。
各訓練データ(122、223)は、カメラSA又はこれと同種のカメラにより製品Rを撮影することで得られる。カメラの種類は、特に限定されなくてもよい。カメラには、例えば、RGB画像を取得するよう構成された一般的なデジタルカメラ、深度画像を取得するように構成された深度カメラ、赤外線量を画像化するように構成された赤外線カメラ等が用いられてよい。
各訓練データ(122、223)に含まれる特徴は、製品Rの状態に関する。製品Rの状態は、例えば、傷、汚れ、クラック、打痕、バリ、色ムラ、異物混入等の欠陥の有無に関するものであってよい。これに応じて、各正解データ(123、225)は、例えば、製品Rに欠陥が含まれるか否か、製品Rに含まれる欠陥の種類、製品Rに含まれる欠陥の範囲等を示すように構成されてよい。各正解データ(123、225)は、オペレータの入力により得られてもよい。また、画像データに写る製品Rの状態を推定するように訓練された推定器を利用して、各訓練データ(122、223)に写る製品Rの状態を推定した結果が各正解データ(123、225)として取得されてもよい。
第2のフェーズでは、学習装置1は、上記各訓練データ(122、223)及び各正解データ(123、225)を使用して、学習モデル(各ニューラルネットワーク(50、51)及び学習モデル52の少なくともいずれか)の機械学習を実施する。これにより、学習モデルは、画像データに写る製品の状態を推定するタスクを遂行可能に構成される。学習装置1は、上記ステップS503の処理により、当該学習済みの学習モデルに関する情報を第2学習結果データ127Aとして生成し、生成された第2学習結果データ127Aを所定の記憶領域に保存する。
検査装置3Aは、上記推定装置3に対応する。検査装置3Aは、取り扱うデータが異なる点を除き、上記推定装置3と同様に構成されてよい。第2学習結果データ127Aは、任意のタイミングで検査装置3Aに提供されてよい。本変形例では、検査装置3Aは、カメラSAに接続される。検査装置3Aは、カメラSAにより製品Rを撮影することで、当該製品Rの写る対象画像データを取得する。検査装置3Aは、学習装置1により構築された学習済みの学習モデルを利用して、取得された対象画像データに基づいて、製品Rの状態を推定する。
<検査装置のハードウェア構成>
図14Aは、本変形例に係る検査装置3Aのハードウェア構成の一例を模式的に例示する。図14Aに示されるとおり、本変形例に係る検査装置3Aは、上記推定装置3と同様に、制御部31、記憶部32、通信インタフェース33、入力装置34、出力装置35、ドライブ36、及び外部インタフェース37が電気的に接続されたコンピュータである。検査装置3Aは、外部インタフェース37を介してカメラSAに接続される。カメラSAは、製品Rを撮影可能な場所に適宜配置されてよい。例えば、カメラSAは、製品Rを搬送するコンベア装置の近傍に配置されてよい。ただし、検査装置3Aのハードウェア構成は、このような例に限定されなくてもよい。検査装置3Aの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。検査装置3Aは、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、PLC(programmable logic controller)等であってもよい。
本変形例に係る検査装置3Aの記憶部32は、検査プログラム83A、第2学習結果データ127A等の各種情報を記憶する。検査プログラム83A及び第2学習結果データ127Aは、上記実施形態に係る推定プログラム83及び第2学習結果データ127に対応する。検査プログラム83A及び第2学習結果データ127Aのうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、検査装置3Aは、記憶媒体93から、検査プログラム83A及び第2学習結果データ127Aのうちの少なくともいずれかを取得してもよい。
<検査装置のソフトウェア構成及び動作例>
図14Bは、本変形例に係る検査装置3Aのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、検査装置3Aのソフトウェア構成は、制御部31による検査プログラム83Aの実行により実現される。図14Bに示されるとおり、取り扱うデータがセンシングデータから画像データに置き換わる点を除き、検査装置3Aのソフトウェア構成は、上記推定装置3のソフトウェア構成と同様である。これにより、検査装置3Aは、上記推定装置3の推定処理と同様に、検査処理に関する一連の処理を実行する。
すなわち、ステップS701では、制御部31は、データ取得部311として動作し、外観検査の対象となる製品Rの写る対象画像データ321AをカメラSAから取得する。ステップS702では、制御部31は、推定部312として動作し、学習済みの学習モデル70Aを利用して、取得された対象画像データ321Aに写る製品Rの状態を推定する。具体的には、制御部31は、第2学習結果データ127Aを参照して、学習済みの学習モデル70Aの設定を行う。学習済みの学習モデル70Aは、上記第2のフェーズの機械学習により訓練されたニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。制御部31は、取得された対象画像データ321Aを学習済みの学習モデル70Aに入力して、学習済みの学習モデル70Aの演算処理を実行する。これにより、制御部31は、対象画像データ321Aに写る製品Rの状態を推定した結果に対応する出力値を学習済みの学習モデル70Aから取得する。
ステップS703では、制御部31は、出力部313として動作し、製品Rの状態を推定した結果に関する情報を出力する。出力先及び出力情報はそれぞれ、上記実施形態と同様に、実施の形態に応じて適宜決定されてよい。例えば、制御部31は、製品Rの状態を推定した結果をそのまま出力装置35に出力してもよい。また、例えば、制御部31は、製品Rに欠陥が含まれる場合に、そのことを知らせるための警告を出力装置35に出力してもよい。また、例えば、検査装置3Aが製品Rを搬送するコンベア装置(不図示)に接続される場合、製品Rの状態を推定した結果に基づいて、欠陥のない製品Rと欠陥のある製品Rとを別のラインで搬送されるようにコンベア装置を制御してもよい。
本変形例によれば、外観検査に利用する推定器を構築する場面において、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。また、アクティブラーニングにより抽出された第2訓練データ223を更に使用して、より性能の高い学習済みの学習モデルを効率的に生成することができる。検査装置3Aは、これにより生成された学習済みの学習モデルを利用することで、製品Rの外観検査を精度よく遂行することができる。
(B)対象者の状態を推定する場面
図15は、第2変形例に係る監視システム100Bの適用場面の一例を模式的に例示する。本変形例は、対象者の状態を推定する場面に上記実施形態を適用した例である。図15では、対象者の状態を予測する場面の一例として、車両の運転者RBの状態を監視する場面が例示されている。運転者RBは、対象者の一例である。図15に示されるとおり、本実施形態に係る監視システム100Bは、学習装置1、データ生成装置2、及び監視装置3Bを備えている。上記実施形態と同様に、学習装置1、データ生成装置2、及び監視装置3Bは、ネットワークを介して互いに接続されてよい。
本変形例に係る監視システム100Bは、取り扱うデータが異なる点を除き、上記実施形態と同様に構成されてよい。上記実施形態と同様に、学習装置1は、第1のフェーズにおいて、複数の第1学習データセット121を使用して、各ニューラルネットワーク(50、51)の機械学習を実施する。データ生成装置2は、第1のフェーズの機械学習で訓練された各ニューラルネットワーク(50、51)を利用して、少なくとも1つ以上の第2学習データセット227を生成する。学習装置1は、第2のフェーズにおいて、複数の第1学習データセット121及び少なくとも1つ以上の第2学習データセット227を使用して、各ニューラルネットワーク(50、51)の再学習又は新たな学習モデル52の教師あり学習を実施する。
各訓練データ(122、223)は、被験者の状態を観察するセンサにより得られたセンシングデータにより構成される。センサは、人物(被験者、対象者)の状態を観察可能であれば、その種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。図15の例では、人物の状態を観察するセンサの一例として、カメラSB1及びバイタルセンサSB2が用いられる。
各訓練データ(122、223)は、カメラSB1及びバイタルセンサSB2並びにこれらと同種のセンサにより被験者(運転者)の状態を観察することで得られる。カメラSB1には、例えば、一般的なRGBカメラ、深度カメラ、赤外線カメラ等が用いられてよい。また、バイタルセンサSBには、例えば、体温計、血圧計、脈拍計等が用いられてよい。各訓練データ(122、223)は、画像データ及びバイタルの測定データにより構成される。
各訓練データ(122、223)に含まれる特徴は、被験者の状態に関する。本変形例では、被験者の状態は、例えば、被験者の眠気の度合いを示す眠気度、被験者の疲労の度合いを示す疲労度、被験者の運転に対する余裕の度合いを示す余裕度、又はこれらの組み合わせを含んでもよい。これに応じて、各正解データ(123、225)は、例えば、被権者の状態の種別、被験者の状態を示す数値、被験者の写る範囲等を示すように構成されてよい。各正解データ(123、225)は、オペレータの入力により得られてもよい。また、センシングデータから対象者の状態を推定するように訓練された推定器を利用して、各訓練データ(122、223)から被験者の状態を推定した結果が各正解データ(123、225)として取得されてもよい。
第2のフェーズでは、学習装置1は、上記各訓練データ(122、223)及び各正解データ(123、225)を使用して、学習モデル(各ニューラルネットワーク(50、51)及び学習モデル52の少なくともいずれか)の機械学習を実施する。これにより、学習モデルは、センシングデータから対象者の状態を推定するタスクを遂行可能に構成される。学習装置1は、上記ステップS503の処理により、当該学習済みの学習モデルに関する情報を第2学習結果データ127Bとして生成し、生成された第2学習結果データ127Bを所定の記憶領域に保存する。
監視装置3Bは、上記推定装置3に対応する。監視装置3Bは、取り扱うデータが異なる点を除き、上記推定装置3と同様に構成されてよい。第2学習結果データ127Bは、任意のタイミングで監視装置3Bに提供されてよい。本変形例では、カメラSB1及びバイタルセンサSB2から対象センシングデータを取得する。監視装置3Bは、学習装置1により構築された学習済みの学習モデルを利用して、取得されたセンシングデータに基づいて、運転者RBの状態を推定する。
<監視装置のハードウェア構成>
図16Aは、本変形例に係る監視装置3Bのハードウェア構成の一例を模式的に例示する。図16Aに示されるとおり、本変形例に係る監視装置3Bは、上記推定装置3と同様に、制御部31、記憶部32、通信インタフェース33、入力装置34、出力装置35、ドライブ36、及び外部インタフェース37が電気的に接続されたコンピュータである。監視装置3Bは、外部インタフェース37を介して、カメラSB1及びバイタルセンサSB2に接続される。カメラSB1は、運転者RBを撮影可能な場所に適宜配置されてよい。バイタルセンサSB2は、運転者RBのバイタルを測定可能な場所に適宜配置されてよい。ただし、監視装置3Bのハードウェア構成は、このような例に限定されなくてもよい。監視装置3Bの具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。監視装置3Bは、提供されるサービス専用に設計された情報処理装置の他、汎用のコンピュータ、スマートフォンを含む携帯電話、車載装置等であってもよい。
本変形例に係る監視装置3Bの記憶部32は、監視プログラム83B、第2学習結果データ127B等の各種情報を記憶する。監視プログラム83B及び第2学習結果データ127Bは、上記実施形態に係る推定プログラム83及び第2学習結果データ127に対応する。監視プログラム83B及び第2学習結果データ127Bのうちの少なくともいずれかは、記憶媒体93に記憶されていてもよい。また、監視装置3Bは、記憶媒体93から、監視プログラム83B及び第2学習結果データ127Bのうちの少なくともいずれかを取得してもよい。
<監視装置のソフトウェア構成及び動作例>
図16Bは、本変形例に係る監視装置3Bのソフトウェア構成の一例を模式的に例示する。上記実施形態と同様に、監視装置3Bのソフトウェア構成は、制御部31による監視プログラム83Bの実行により実現される。図16Bに示されるとおり、取り扱うデータが人物の状態を観察するセンサにより得られたセンシングデータである点を除き、監視装置3Bのソフトウェア構成は、上記推定装置3のソフトウェア構成と同様である。これにより、監視装置3Bは、上記推定装置3の推定処理と同様に、監視処理に関する一連の処理を実行する。
すなわち、ステップS701では、制御部31は、データ取得部311として動作し、運転者RBの状態を観察するセンサから対象センシングデータ321Bを取得する。本変形例では、当該センサとしてカメラSB1及びバイタルセンサSB2が監視装置3Bに接続されている。そのため、取得される対象センシングデータ321Bは、カメラSB1から得られる画像データ及びバイタルセンサSB2から得られるバイタルの測定データにより構成される。
ステップS702では、制御部31は、推定部312として動作し、学習済みの学習モデル70Bを利用して、取得された対象センシングデータ321Bから運転者RBの状態を推定する。具体的には、制御部31は、第2学習結果データ127Bを参照して、学習済みの学習モデル70Bの設定を行う。学習済みの学習モデル70Bは、上記第2のフェーズの機械学習により訓練されたニューラルネットワーク(50、51)及び学習モデル52のうちの少なくともいずれかである。制御部31は、取得された対象センシングデータ321Bを学習済みの学習モデル70Bに入力して、学習済みの学習モデル70Bの演算処理を実行する。これにより、制御部31は、対象センシングデータ321Bから運転者RBの状態を推定した結果に対応する出力値を学習済みの学習モデル70Bから取得する。
ステップS703では、制御部31は、出力部313として動作し、運転者RBの状態を推定した結果に関する情報を出力する。出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部31は、運転者RBの状態を推定した結果をそのまま出力装置35に出力してもよい。また、例えば、制御部31は、推定の結果に基づいて、何らかの情報処理を実行してもよい。そして、制御部31は、その情報処理を実行した結果を推定の結果に関する情報として出力してもよい。
当該情報処理の一例として、制御部31は、推定される運転者RBの状態に応じて、警告等の特定のメッセージを出力装置35に出力してもよい。具体例として、運転者RBの眠気度及び疲労度の少なくとも一方を運転者RBの状態として推定した場合、制御部31は、推定された眠気度及び疲労度の少なくとも一方が閾値を超えるか否かを判定してもよい。閾値は適宜設定されてよい。そして、眠気度及び疲労度の少なくとも一方が閾値を超えている場合に、制御部31は、駐車場等に停車し、休憩を取るように運転者RBに促す警告を出力装置35に出力してもよい。
また、例えば、車両が自動運転動作可能に構成されている場合、制御部31は、運転者RBの状態を推定した結果に基づいて、車両の自動運転の動作を制御してもよい。一例として、車両が、システムにより車両の走行を制御する自動運転モード及び運転者RBの操舵により車両の走行を制御する手動運転モードの切り替えが可能に構成されていると想定する。
このケースにおいて、自動運転モードで車両が走行しており、自動運転モードから手動運転モードへの切り替えを運転者RB又はシステムから受け付けた際に、制御部31は、推定された運転者RBの余裕度が閾値を超えているか否かを判定してもよい。そして、運転者RBの余裕度が閾値を超えている場合に、制御部31は、自動運転モードから手動運転モードへの切り替えを許可してもよい。一方、運転者RBの余裕度が閾値以下である場合には、制御部31は、自動運転モードから手動運転モードへの切り替えを許可せず、自動運転モードでの走行を維持してもよい。
また、手動運転モードで車両が走行している際に、制御部31は、推定された眠気度及び疲労度の少なくとも一方が閾値を超えるか否かを判定してもよい。そして、眠気度及び疲労度の少なくとも一方が閾値を超えている場合に、制御部31は、手動運転モードから自動運転モードに切り替えて、駐車場等の安全な場所に停車するように指示する指令を車両のシステムに送信してもよい。一方で、そうではない場合には、制御部31は、手動運転モードによる車両の走行を維持してもよい。
また、手動運転モードで車両が走行している際に、制御部31は、推定された余裕度が閾値以下であるか否かを判定してもよい。そして、余裕度が閾値以下である場合に、制御部31は、減速する指令を車両のシステムに送信してもよい。一方で、そうではない場合には、制御部31は、運転者RBの操作による車両の走行を維持してもよい。
本変形例によれば、対象者の状態を推定するための推定器を構築する場面において、タスクの種類が異なるニューラルネットワークでも共通の指標を利用して、アクティブラーニングを実施することができるようになる。また、アクティブラーニングにより抽出された第2訓練データ223を更に使用して、より性能の高い学習済みの学習モデルを効率的に生成することができる。監視装置3Bは、これにより生成された学習済みの学習モデルを利用することで、運転者RBの状態を推定するタスクを精度よく遂行することができる。
なお、状態を推定する対象となる対象者は、図15に例示される車両の運転者RBに限られなくてもよく、あらゆる人物を含んでよい。状態を予測する対象となる対象者は、例えば、オフィス、工場等で作業を行う作業者、バイタルを計測される被計測者等を含んでもよい。
図17は、対象者の状態を予測する他の場面の一例を模式的に例示する。図17に例示される診断システム100Cは、学習装置1、データ生成装置2、及び診断装置3Cを備えている。診断装置3Cは、上記監視装置3Bに対応する。図17の例では、診断装置3Cは、バイタルセンサSCに接続され、このバイタルセンサSCにより被計測者の対象センシングデータを取得する。診断装置3Cは、上記監視装置3Bと同様の処理により、被計測者の状態を推定する。被計測者の状態には、当該被計測者の健康状態が含まれてよい。健康状態は、例えば、健康であるか否か、病気になる予兆があるか否か等を含んでよい。各正解データ(123、225)は、例えば、人物の健康状態の種別、対象の病気になる確率等を示すように構成されてよい。
<4.2>
上記実施形態では、各ニューラルネットワーク(50、51)には、畳み込みニューラルネットワークが用いられている。しかしながら、各ニューラルネットワーク(50、51)の種類は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。各ニューラルネットワーク(50、51)には、上記畳み込みニューラルネットワークの他、全結合型ニューラルネットワーク、再帰型ニューラルネットワーク等が用いられてよい。或いは、各ニューラルネットワーク(50、51)は、複数の異なる構造を有するニューラルネットワークの組み合わせにより構成されてよい。各ニューラルネットワーク(50、51)の構造は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
また、上記実施形態では、注目層(503、513)は、畳み込みニューラルネットワークの中間層として配置された畳み込み層である。しかしながら、注目層(503、513)は、畳み込み層に限られなくてもよく、実施の形態に応じて適宜選択されてよい。畳み込み層の他、例えば、プーリング層、全結合層等の中間層が注目層に設定されてよい。なお、畳み込み層の出力をプーリング処理するプーリング層(すなわち、畳み込み層の直後に配置されたプーリング層)を注目層に設定する場合、このプーリング層の出力は、畳み込み層の出力と同様に扱うことができる。そのため、上記実施形態と同様の方法(式1~式3のいずれか)により、プーリング層の出力値から評価値222を算出することができる。また、複数のニューロン(ノード)を含む全結合層を注目層に設定する場合も、この全結合層の出力は、畳み込み層の出力と同様に扱うことができる。そのため、上記実施形態と同様の方法(式1~式3のいずれか)により、全結合層の出力値から評価値222を算出することができる。一方、1つのニューロン(ノード)を含む全結合層を注目層に設定する場合には、上記式3の方法により、全結合層の出力値から評価値222を算出することができる。
<4.3>
上記実施形態では、学習装置1は、第1のフェーズの機械学習及び第2のフェーズの機械学習の両方を実行する。また、学習装置1及びデータ生成装置2は、別々のコンピュータである。しかしながら、学習システム101の構成は、このような例に限定されなくてもよい。例えば、第1のフェーズの機械学習及び第2のフェーズの機械学習はそれぞれ別のコンピュータにより実行されてよい。また、例えば、学習装置1及びデータ生成装置2は、一体のコンピュータにより構成されてよい。
<4.4>
上記実施形態では、データ生成装置2は、各ニューラルネットワーク(50、51)により導出される評価値222を、正解データの付与されていない第2訓練データ221から正解データを付与する対象となる第2訓練データ223を抽出するのに利用している。しかしながら、評価値222による抽出は、このような例に限定されなくてもよい。データ生成装置2は、例えば、既に正解データの付与された複数件の訓練データ、すなわち、複数件の学習データセットから推定器の性能向上に寄与する程度の高いと推定される1つ以上の学習データセットを抽出するのに、評価値222を利用してもよい。この学習データセットの抽出処理は、上記第2訓練データ223の抽出処理と同様の処理手順で実行可能である。この場合、第2訓練データ221には正解データが付与されていてもよい。データ生成装置2の上記処理手順からステップS306が省略されてもよい。また、データ生成装置2のソフトウェア構成から生成部215が省略されてよい。