【文献】
柏木陽佑,他3名,話者コードに基づく話者正規化学習を利用したニューラルネット音響モデルの適応,電子情報通信学会技術研究報告 SP2014−106−SP2014−126 音声,日本,一般社団法人電子情報通信学会,2014年12月 8日,第114巻,第365号,pp.105-110
【文献】
神嶌敏弘,転移学習,人工知能学会誌,一般社団法人人工知能学会,2010年 7月 1日,第25巻,第4号,pp.572-580
【文献】
岡野原大輔,大規模Deep Learning(深層学習)の実現技術,人工知能学会誌,日本,一般社団法人人工知能学会,2013年 9月 1日,第28巻,第5号,pp.785-792
【文献】
岩城秀和,他2名,単一断線故障を修復可能な最適汎化ニューラルネットワーク,電子情報通信学会論文誌 情報・システムII−パターン処理,日本,社団法人電子情報通信学会,2000年 2月25日,第2号,pp.805-813
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、本発明の様々な実施形態について適宜図面を参照して説明する。なお、図面において共通する構成要素には同一の参照符号が付されている。
【0009】
1.システム構成
図1は、本発明の様々な実施形態に係る学習装置ユニットが用いられるシステムの構成例を示す模式図である。
図1に示すように、このシステム1は、学習装置ユニット10−1〜10−Nと、通信回線20に接続されるサーバ装置30と、測定装置40と、出力装置50と、を含む。学習装置ユニット10−1〜10−N(以下総称して「学習装置ユニット10」と称することがある。)の各々は、学習装置ユニット10−1〜10−Nのうちの他の学習装置ユニット及びサーバ装置30と通信回線20を介して情報を通信することが可能である。
【0010】
2.学習装置ユニット10のハードウェア構成
学習装置ユニット10−1〜10−Nは、それぞれ、対応する個体(機器)に搭載されるものである。また、学習装置ユニット10−1〜10−Nには、(図示はされていないが)それぞれ、測定装置40−1〜40−N、及び、出力装置50−1〜50−Nが接続される。これらの測定装置40−1〜40−N、及び、出力装置50−1〜50−Nは、対応する個体(機器)に搭載される場合もあるし、別の機器として通信手段を使って接続される場合もある。学習装置ユニット10は、一実施形態において、機械学習を実行可能な任意の情報処理装置であり、例えば、自動車や航空機、ロボット等の産業機器、化学プラントや施設園芸等の環境制御端末、情報処理サーバ、パーソナルコンピュータ、タブレット、携帯電話機、スマートフォン、携帯情報端末、タッチパッド等を含むが、これらには限られない。
【0011】
学習装置ユニット10のハードウェア構成例が
図1において参照符号「10」が付されたブロック内に示されている。学習装置ユニット10は、図示のとおり、CPU11と、メインメモリ12と、入力I/F13と、通信I/F14と、外部メモリ15と、出力I/F18と、を含み、これらの各構成要素が内部バス17を介して互いに電気的に接続されている。
【0012】
CPU11は、外部メモリ15からオペレーティングシステム等の様々なプログラムをメインメモリ12にロードし、ロードしたプログラムに含まれる命令を実行する。メインメモリ12は、CPU11が実行するプログラムを格納するために用いられ、例えば、DRAMによって構成される。
【0013】
入力I/F13は、測定機器40の出力データを取り込む機能を有し、内部バス17によって、各構成要素と接続される。ここで、測定機器40の出力である各種測定データは、センサ等で取得した情報、例えば、温度、湿度、位置情報、画像データなどを含み、動画データや温度のある一定間隔で取得された温度データ列など時系列データでもよい。出力I/F18は、内部バス17を通して各構成要素からデータを受信し、学習装置ユニットの外部にある出力装置50に出力するものである。ここで、出力装置50に出力されるデータは、例えばモータを駆動する際の制御情報や、ブザー、制御スイッチ、自動車のアクセルやブレーキ、液晶ディスプレイなどの情報出力装置に対する制御情報などが想定される。
通信I/F14は、ハードウェア、ファームウェア、又は、TCP/IPドライバやPPPドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装され、通信網20を介して、他の学習装置ユニット10及びサーバ装置10と様々な情報を通信することが可能となるように構成される。
外部メモリ15は、例えば磁気ディスクドライブやフラッシュメモリ等により構成され、オペレーティングシステム等の様々なプログラムを記憶する。
【0014】
以上の構成を有する一実施形態に係る学習装置ユニット10は、CPU11が、外部メモリ15からメインメモリ12にロードした所定のプログラムを実行することによって、機械学習を行う学習装置ユニットとして機能することができる。例えば、この機械学習を行う学習装置ユニットは、CPU11が様々なプログラムを実行することにより、ニューラルネットワークによりモデル化された複数の学習装置等を含むものとして実現される。
【0015】
3.ニューラルネットワークによりモデル化された学習装置の概念
まず、モデル化された学習装置に用いられるニューロンのモデルについて
図2を参照して説明する。
図2は、ニューロンのモデルを示す模式図である。
【0016】
図2に示すように、ニューロンは、複数の入力x(ここでは一例として入力x
1〜入力x
3)に対する出力yを出力するものである。各入力xには、この入力xに対応する重みwが掛けられる。これにより、ニューロンは、次の式により表現される出力yを出力する。なお、入力x、出力y及び重みwは、すべてベクトルである。
【数1】
ここで、θはバイアスであり、f
kは活性化関数である。
【0017】
次に、上述したニューロンを組み合わせた3層の重みを有するニューラルネットワークについて、
図3を参照して説明する。
図3は、3層の重みを有するニューラルネットワークを示す模式図である。
【0018】
図3に示すように、ニューラルネットワークの左側から複数の入力x(ここでは一例として入力x1〜入力x3)が入力され、右側から結果y(ここでは一例として結果y1〜入力y3)が出力される。
具体的には、入力x1〜入力x3は、3つのニューロンN11〜N13の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてw1と標記されている。
ニューロンN11〜N13は、それぞれ、特徴ベクトルz11〜特徴ベクトルz13を出力する。これらの特徴ベクトルz11〜特徴ベクトルz13はまとめてz1と標記されている。この特徴ベクトルz1は、重みw1と重みw2との間の特徴ベクトルである。
特徴ベクトルz11〜特徴ベクトルz13は、2つのニューロンN21、N22の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みはまとめてw2と標記されている。
ニューロンN21、22は、それぞれ、特徴ベクトルz21、z22を出力する。これらの特徴ベクトルz21、z22は、まとめてz2と標記されている。この特徴ベクトルz
2は、重みw
2と重みw
3との間の特徴ベクトルである。
特徴ベクトルz21、z22は、3つのニューロンN31〜N33の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みはまとめてw3と標記されている。
最後に、ニューロンN31〜N33は、それぞれ、結果y1〜入力y3を出力する。
【0019】
重みw1〜w3は、誤差逆伝搬法(バックプロパゲーション)により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力xが入力されたときの出力yと真の出力y(教師)との差分を小さくするように、それぞれの重みを調整(学習)する手法である。
【0020】
この3層の重みを有するニューラルネットワークは、順次接続された3つの学習装置、すなわち、学習装置D1〜D3を含むものとして考えることができるものである。学習装置を結ぶ変数(特徴ベクトルz1、z2)は、各学習装置の学習が進むにつれて自動的に最適な表現になる。これらの特徴ベクトルの表現は人間が明示的に与える必要のないものである。また、これらの特徴ベクトルは、学習により自動的に決定されるものであるため、具体的に何を表現しているかを知ることは多くの場合難しいものである。
【0021】
4.第1の実施形態に係る学習装置ユニット10の基本的な構成
次に、上記「3」で説明した概念を踏まえて、第1の実施形態に係る学習装置ユニット10の基本的な構成例について、
図4を参照して説明する。
図4は、本発明の第1の実施形態に係る学習装置ユニット10であってニューラルネットワークを用いてモデル化された学習装置ユニット10の構成例を概念的に示す模式図である。
【0022】
個体1に搭載される学習装置ユニット(便宜上「学習装置ユニット10−1」という。)は、一例として、入力側に配置された入力側学習装置D11と、出力側に配置された出力側学習装置D31と、を含む。これに代えて、学習装置ユニット10−1は、入力側学習装置D11及び出力側学習装置D31のいずれか一方のみを含むものであってもよい。さらに、個体1に搭載される学習装置ユニット10−1は、例えばサーバ装置30(
図1参照)に配置された中間学習装置D2を、入力側学習装置D11と出力側学習装置D31との間に接続する接続機能(図示せず)を含む。なお、学習装置ユニット10−1が入力側学習装置D11及び出力側学習装置D31のいずれか一方のみを含む場合には、この接続機能は、中間学習装置D2をそのように含まれた学習装置に接続する。
同様に、個体2(個体3)に搭載される学習装置ユニット(便宜上「学習装置ユニット10−2」(「学習装置ユニット10−3」という。)は、入力側に配置された入力側学習装置D12(D13)と、出力側に配置された出力側学習装置D32(D33)と、を含む。これに代えて、学習装置ユニット10−2(10−3)は、入力側学習装置D12(D13)及び出力側学習装置D32(D33)のいずれか一方のみを含むものであってもよい。さらに、個体2(個体3)に搭載される学習装置ユニット10−2(10−3)は、例えばサーバ装置30に配置された中間学習装置D2を、入力側学習装置D12(D13)と出力側学習装置D32(D33)との間に接続する接続機能(図示せず)を含む。なお、学習装置ユニット10−2(10−3)が入力側学習装置D12(D13)及び出力側学習装置D32(D33)のいずれか一方のみを含む場合には、この接続機能は、中間学習装置D2をそのように含まれた学習装置に接続する。
【0023】
個体1に搭載される学習装置ユニット10−1に着目すると、入力側学習装置D11は、1つの入力に対してそれぞれ対応する重みW11を掛け合わせて対応するニューロンに渡す。これらのニューロンにより出力された特徴ベクトル(の集合)を特徴ベクトルZ11として出力する。
【0024】
この後、接続機能(図示しない)が、入力側学習装置D11と出力側学習装置D31との間に(入力側学習装置D11及び出力側学習装置D31のうちいずれか一方しか存在しない場合には、そのように存在する学習装置に)中間学習装置D2を「接続」する。具体的には、接続機能は、入力側学習装置D11により出力された特徴ベクトルZ11を、通信回線を介してサーバ装置30(
図1)に送信する。特徴ベクトルZ11を受信したサーバ装置30は、このサーバ装置30によりニューラルネットワークによりモデル化された中間学習装置D2に出力する。この中間学習装置D2は、特徴ベクトルZ11にそれぞれ対応する重みW2を掛け合わせたものを入力し、出力として特徴ベクトルZ2を得る。さらに、サーバ装置30は、このようにして得られた特徴ベクトルZ2を、通信回線を介して学習装置ユニット10−1に送信する。特徴ベクトルZ2を受信した学習装置ユニット10−1は、この特徴ベクトルZ2を出力側学習装置D31に出力する。このように、サーバ装置30の中間学習装置D2に特徴ベクトルZ11を送信し、中間学習装置D2から特徴ベクトルZ2を受信し、受信した特徴ベクトルZ2を出力側学習装置D31に出力する、という一連の動作が、「接続機能」により行われる「接続」に相当する。この接続機能は、学習装置ユニット10−1に搭載されたCPU11が所定のプログラムを実行することにより実現される機能である。
【0025】
なお、接続機能がサーバ装置30と情報(特徴ベクトルZ11、Z2)を通信する際には、通信I/F14(
図1参照)が用いられる。
【0026】
出力側学習装置D31は、受け取った特徴ベクトルZ2に対して対応する重みW31を掛け合わせたものを入力して、出力を得る。
【0027】
以上のような構成は、個体2(個体3)に搭載される学習装置ユニット10−2(10−3)も同様に有するものである。
各学習装置ユニットは、それぞれ固有の測定装置および出力装置と接続される。例えば、学習装置ユニット10−1は、それぞれ固有の測定装置40−1及び出力装置50−1と接続される。入力側学習装置に用いられる重み及び出力側学習装置により用いられる重みは、学習装置ユニットに固有のものが用いられる。すなわち、入力側学習装置D11〜D13は、それぞれ、固有の重みW11〜W13を用い、出力側学習装置D31〜D33は、それぞれ、固有の重みW31〜W33を用いる。一方、中間学習装置D2により用いられる重みW2(内部状態を構成する情報)は、すべての学習装置ユニットにより共有される。
【0028】
図4に示されたモデル化されたネットワークは、全体としては、
図3に示されたモデル化されたネットワークと同一の構成を有するものと考えることができるものであるため、
図4に示されたネットワークにおいても、通常の誤差逆伝搬法を用いて学習が可能なものである。すなわち、
図4に示された矢印とは逆方向に(すなわち、紙面上右側から左側に向かって)誤差が伝搬し、各学習装置に含まれた各ニューロン(に与えられた重み)が学習される。
【0029】
本実施形態では、各学習装置ユニットがサーバ装置30により実現される中間学習装置D2(より具体的には中間学習装置の内部状態)を共有する構成について説明したが、別の実施形態では、各学習装置ユニットが固有の中間学習装置を備える構成を採用することも可能である。この場合には、各学習装置ユニットが備える中間学習装置が、すべての学習装置ユニット間において同一の内部状態(重み)を有するように(すなわち、すべての中間学習装置の内部状態が同一となるように)、各学習装置ユニットが相互に内部状態を構成する情報(重み)を一定の頻度で通信してもよい。すべての中間学習装置が同一の内部状態を有するようにするために、ある特定の学習装置ユニット(例えば最新の内部状態を有する学習装置ユニット)が、その内部状態を構成する情報(重み)を、そのまま他のすべての学習装置ユニットに対して送信してもよいし、ある特定の学習装置ユニット(例えば最新の内部状態を有する学習装置ユニット)が、その内部状態と各学習装置ユニットの内部状態との差分のみをその学習装置ユニットに送信してもよい。さらにまた、各中間学習装置が、その内部状態を構成する情報(重み)を混ぜること(例えば、線形和などの演算処理があるがそれに限らない)によって得られた情報(重み)を用いるようにしてもよい。
【0030】
5.第2の実施形態に係る学習装置ユニット10の基本的な構成
次に、第2の実施形態に係る学習装置ユニット10の基本的な構成例について、
図5を参照して説明する。
図5は、本発明の第2の実施形態に係る学習装置ユニット10であってニューラルネットワークを用いてモデル化された学習装置ユニット10の構成例を概念的に示す模式図である。以下、上述した第1の実施形態と異なる点のみに着目して説明する。
【0031】
各個体に搭載される学習装置ユニット、ここでは例えば個体1に搭載される学習装置ユニット10−1は、入力側に配置された入力側学習装置D11と、出力側に配置された出力側学習装置D31と、入力側学習装置11と出力側学習装置D31との間に接続された中間学習装置D21と、を含む。これに代えて、学習装置ユニット10−1は、入力側学習装置D11及び出力側学習装置D31のうちのいずれか一方のみを含むものであってもよい。この中間学習装置D21もまた、学習装置ユニット10−1に搭載されたCPU11が所定のプログラムを実行することにより実現される「接続機能」によって、入力側学習装置11と出力側学習装置D31との間(入力側学習装置D11及び出力側学習装置D31のうちのいずれか一方しか存在しない場合には、そのように存在する学習装置)に接続されたものであるといえる。
【0032】
本実施形態では、各学習装置ユニットの中間学習装置が同一の内部状態(重み)を有しない場合を扱う。
【0033】
図5を参照すると、学習装置ユニット10−1の中間学習装置D21と、学習装置ユニット10−2の中間学習装置D22とは、重みを直接的には共有しない。代わりに、一方の学習装置ユニット(例えば学習装置ユニット10−1)が、中間学習装置D21に入力された情報(特徴ベクトルZ11)とこれに対応して中間学習装置D21から出力された情報(特徴ベクトルZ21)とのセットを、他方の学習装置ユニット(例えば学習装置ユニット10−2)に通信回線を介して送信する。このセットは、学習装置ユニット10−1の中間学習装置D21が重みW21という内部状態を有するという結果を生じさせた情報(この情報も特許請求の範囲に記載された「内部状態を構成する情報」に相当する)に相当する。
【0034】
上記セットを受信した学習装置ユニット10−2は、上記セットのうちの特徴ベクトルZ11を特徴ベクトルZ12とし、上記セットのうちの特徴ベクトルZ21を特徴ベクトルZ22として、中間学習装置D22の重みW22を学習させる。この学習は、通常の誤差逆伝搬法を用いて実行可能である。
【0035】
このように、学習装置ユニット10−1と学習装置ユニット10−2とは、直接的には中間学習装置の重みを共有しないが、間接的には実質的に中間学習装置の重みを共有するといえる。
【0036】
6.第3の実施形態に係る学習装置ユニット10の基本的な構成
次に、第3の実施形態に係る学習装置ユニット10の基本的な構成例について、
図6を参照して説明する。
図6は、本発明の第3の実施形態に係る学習装置ユニット10であってニューラルネットワークを用いてモデル化された学習装置ユニット10の構成例を概念的に示す模式図である。以下、上述した第1の実施形態及び第2の実施形態と異なる点のみに着目して説明する。
【0037】
サーバ装置30(又は少なくとも1つのある特定の学習装置ユニットであってもよい)に備えられたデータベースは、中間学習装置に用いられる重みとして、複数の重み(
図6では一例として重み(1)〜(4)が示されている)を格納する。これらの重みは、特定の学習装置ユニット(例えば最も効果的な又は信頼性の高い学習を実行したと思われる学習装置ユニット)の中間学習装置において用いられていた重みの複製であってもよい。
【0038】
ある個体の学習装置ユニット(ここでは一例として個体1に搭載される学習装置ユニット10−1)は、通信回線を介して、入力側学習装置D11の入力もしくはその内部状態に応じて、サーバ装置30から重み(1)〜(4)のいずれかの重みに関する情報を受信する。
この学習装置ユニットに配置された中間学習装置が受信した重みを用いて、この学習装置ユニット全体が通常の誤差逆伝搬法に従って学習を行うことにより、入力側学習装置D11、中間学習装置D21及び出力側学習装置D31の各々に含まれた重み(W11、W21、W31)が更新される。
【0039】
7.上記実施形態に係る学習装置ユニット10を利用した具体的なアプリケーション例
次に、上記第1の実施形態1〜第3の実施形態に係る学習装置ユニット10を適用した具体的なアプリケーション例について説明する。
ここでは、説明を分かり易くすることを目的として、各実施形態に係る学習装置ユニットを食品工場等で用いられる製造プロセスに用いた場合について具体的に説明する。具体的には、
図7を参照して、ベルトコンベアに載置されて流れてくる丸型のケーキ及び四角型のケーキに対してそれぞれクリーム及びイチゴを乗せる作業を考える。
図7は、本発明の様々な実施形態に係る学習装置ユニットが適用される具体的なアプリケーションの概要を示す模式図である。
【0040】
個体1に搭載された学習装置ユニットは、
図7(a)に示すように、丸型のケーキにクリームを乗せる作業を扱うものである。個体2に搭載された学習装置ユニットは、
図7(b)に示すように、四角型のケーキにイチゴを乗せる作業を扱うものである。
【0041】
このような作業を実現するに際して、各学習装置ユニットは、ビジョンセンサにより得られた情報を入力として「物品検出」及び「良品/不良品判定」を行う。個体1に搭載された学習装置ユニットは、ケーキが不良品であると判定した場合にはそのケーキをベルトコンベアからはじき、ケーキが良品であると判定した場合にはそのケーキの上にクリームを乗せるものであり、個体2に搭載された学習装置ユニットは、ケーキが不良品であると判定した場合にはラインを止め、ケーキが良品であると判定した場合にはそのケーキの上にイチゴを乗せるものである。
【0042】
7−1.第1の実施形態に係る学習装置ユニットを用いた場合
図8〜
図11は、本発明の第1の実施形態に係る学習装置ユニットを適用したアプリケーションの具体例を詳細に説明する模式図である。
図8に示した例では、個体として2つの個体(個体1及び個体2)が用いられている。入力は、個体1及び個体2の両方において、それぞれに対応して設けられたビジョンセンサの画像データである。出力は、各個体によって異なっており、具体的には、個体1においては、「不良品をはじく」及び「クリームを乗せる」であり、個体2においては、@ラインを止める」及び「イチゴを乗せる」である。
【0043】
まず学習装置1に着目すると、個体1の学習装置ユニットに含まれる入力側学習装置D11は、例えば
図8にある構成の場合、ビジョンセンサの画像データを入力とし、2次元の特徴ベクトルを出力する。この入力側学習装置D11は、学習が収束した後、何らかの物体がベルトコンベアを介して流れてきたことを検出する機能、及び、その物体が正常な丸型の形状を有するものであるか否かを判定する機能を分担できたと仮定する。
個体2の学習装置ユニットに含まれる入力側学習装置D12もまた、ビジョンセンサの画像データを入力とし、2次元の特徴ベクトルを出力とする。この入力側学習装置D12は、学習が収束した後、何らかの物体がベルトコンベアを介して流れてきたことを検出する機能、及び、その物体が正常な四角型の形状を有するものであるか否かを判定する機能、すなわち、それぞれの学習装置ユニットが接続される測定装置の差異によって異なる処理を分担できるものと仮定する。
【0044】
次に学習装置2に着目すると、中間学習装置D2は、入力側学習装置D11、D12の各出力を入力とし、例えば
図8にある構成の場合、2次元の特徴ベクトルを出力とする。この中間学習装置D2は、学習が収束した後、例外処理(不良品に対する処理)を行うかどうかを判定する結果、及び、正常品に対する次の作業(製造プロセス)を実行するかどうかを判定する結果、すなわち、それぞれの学習装置ユニットが接続される測定装置や出力装置の特性に依存しない一般的な処理、を表現できるものと仮定する。
【0045】
次に学習装置3に着目すると、個体1の学習装置ユニットに含まれる出力側学習装置D31は、中間学習装置D2の出力を入力とし、「不良品をはじく」及び「クリームを乗せる」を出力とする。個体2の学習装置ユニットに含まれる出力側学習装置D32は、中間学習装置D2の出力を入力とし、「ラインを止める」及び「イチゴを乗せる」を出力とし、すなわち、それぞれの学習装置ユニットが接続される出力装置の差異によって異なる処理を分担できるものと仮定する。
具体的には、不良品については、出力側学習装置D31は「不良品をはじく」という指示を示す信号を出力し、出力側学習装置D32は「ラインを止める」という指示を示す信号を出力する。正常品については、出力側学習装置D31は「クリームを乗せる」という指示を示す信号を出力する。このように各出力側装置に出力された信号は、出力I/F18を介して出力装置50に送信される。
【0046】
次に、個体1に搭載された学習装置ユニット10−1において学習が行われた結果、各ニューロンの重みWが
図9に標記されたようなものとなっていると仮定した場合に、個体1に搭載された学習装置ユニット10−1が「正しい物体」を検出したときの各学習装置の出力を考える。
【0047】
図9には、入力側学習装置D11の重みW11が省略されているが、物体検出を示す出力については、バイアス(θ)及び活性化関数(f
k)を通した値として「1」が出力されるものとする。一方、「不良品判定」の出力については「0」が出力されるものとする。
【0048】
中間学習装置D2では、「作業実行判定」を示す出力として「1」が出力され、「例外処理判定」を示す出力として「0」が出力される。
出力側学習装置D31では、「クリームを乗せる」を示す出力として「1」が出力され、「不良品をはじく」を示す出力として「0」が出力される。
【0049】
このように、正しい物体を検出した場合に「クリームを乗せる」という指示を示す信号が出力されることになる。
【0050】
次に、
図10を参照して、誤差逆伝搬法を用いて学習装置の重みが更新される動作について説明する。
個体1に搭載された学習装置ユニット10−1の入力側学習装置D11が「正しい物体」を検出したときに出力側学習装置D31が「誤った出力を出してしまった」場合を考える。
ここでは、中間学習装置D2の重みW2が
図10に例示したようなものになっていしまっていることに起因して、中間学習装置D2の出力が期待するものと異なり、その結果、出力側学習装置D31の出力も誤ったものになってしまったと仮定する。
【0051】
この場合、CPU11は、D31の出力結果と期待値(教師)との間の誤差を、バックプロパゲーションにより、各学習装置の重みに反映させる。これにより、各学習装置の重みが正しい分布を有するように、学習が行われていく。
図10には、一例として、W2において、入力側学習装置D11の「物体検出」を示す出力に掛け合わせられる2つの重み「0.9」及び「0.1」がそれぞれ「0.3」及び「0.7」に更新される様子が示されている。このように更新された後は、入力側学習装置D11が「正しい物体」を検出したときには出力側学習装置D31が「クリームを乗せる」という指示を示す信号を出力することは、
図9を参照して上述したとおりである。
【0052】
次に、
図11を参照して、個体2に搭載された学習装置ユニット10−2による検出動作及び学習について考える。
中間学習装置D2は、個体1に搭載された学習装置ユニット10−1により学習された重みW2を有している。この重みW2(すなわち、中間学習装置D2の内部状態)は、個体2に搭載された学習装置ユニット10−2にも共有される。すなわち、極端にいえば、学習装置ユニット10−2それ自体は、実際に学習を行わなくとも、他の学習装置ユニットにより行われた学習により得られた中間学習装置D2の内部状態(重み)を利用して、「作業実行判定」及び「例外処理実行判定」を簡単かつ精度良く行うことができる。
なお、
図11は、不良品を検出したときにラインを止めるという動作を行う場合の各学習装置の様子の例を示している。
【0053】
7−2.第2の実施形態に係る学習装置ユニットを用いた場合
図12は、本発明の第2の実施形態に係る学習装置ユニットを適用したアプリケーションの具体例を詳細に説明する模式図である。
【0054】
図5を参照して上述したように、個体1に搭載された学習装置ユニット10−1の中間学習装置D21は、個体2に搭載された学習装置ユニット10−2の中間学習装置D22に入力された情報(特徴ベクトルZ12)とこれに対応して中間学習装置D22により出力された情報(特徴ベクトルZ22)とのセットを共有する。このセットは、中間学習装置D22が内部状態(重みW22)を有するという結果を生じさせた情報であるため、学習装置ユニット10−1がこのセットを用いた学習を実行することによって、中間学習装置D21の内部状態は、中間学習装置D22の内部状態により近づく可能性がある。したがって、中間学習装置D21は、中間学習装置D22と間接的に内部状態を共有することができる。
【0055】
同様に、個体2に搭載された学習装置ユニット10−2の中間学習装置D22は、個体1に搭載された学習装置ユニット10−1の中間学習装置D12に入力された情報(特徴ベクトルZ11)とこれに対応して中間学習装置D12により出力された情報(特徴ベクトルZ21)とのセットを共有する。したがって、中間学習装置D22もまた、上述した理由により、中間学習装置D21と間接的に内部状態を共有することができる。
【0056】
7−3.第3の実施形態に係る学習装置ユニットを用いた場合
図13は、本発明の第3の実施形態に係る学習装置ユニットを適用したアプリケーションの具体例を詳細に説明する模式図である。
【0057】
図6を参照して上述したように、各学習装置ユニット(例えば個体1に搭載された学習装置ユニット10−1)の中間学習装置D21は、サーバ装置30等に備えられたデータベース(記憶装置)に格納された複数の重みの中から選択された重み(内部状態)を、通信回線を介して取得する。これにより、中間学習装置D21は、入力データ又は入力側学習装置の内部状態に応じて選択された重み(内部状態)を利用することができる。これを実現するために、中間学習装置D21又は学習装置ユニット10−1は、学習装置ユニット10−1(学習装置ユニット10−1に含まれた学習装置)が受信する入力、又は、学習装置ユニット10−1の内部状態(学習装置ユニット10−1に含まれた学習装置の内部状態)を決定する学習機能(決定手段)を備え、中間学習装置D21は、この学習機能により決定された上記入力又は上記内部状態に基づいて、上記記憶装置に格納された複数の重みの中から適切な重み(内部状態)を取得するようにしてもよい。具体的には、学習機能は、予め初期設定された識別方法(決定方法)を用いるだけでなく、例えば、出力側学習装置の出力(学習装置ユニット全体の出力)が期待する出力と異なっていた場合、識別方法への入力を利用してデータベースから何を選択するか、すなわち、識別方法(決定方法)を、それに応じて変えるように学習することができる。学習装置ユニットの内部において学習機能を実行するために用意された学習装置は、学習装置ユニットの出力ベクトルの一部をこの識別のために用いること等により、入力、内部状態、出力及び期待する出力との誤差が与えられ、学習を実行することができる。
【0058】
以上説明した具体的なアプリケーションは、説明を分かり易くするために用いた単なる一例に過ぎず、各ブロックの入出力データの形
式や意味、及び、各ブロックの処理内容等は、これまで説明してきたものに限定されるものではない。むしろ、個体に依存しない共有すべき情報(中間学習装置に関連した情報)と、個体に依存する情報(入力側学習装置及び出力側学習装置に関連した情報)とは、ユーザが明示的に与えなくとも、学習を進めるにつれて、自動的に分離されるものである。
【0059】
8.変形例
これまで、説明を簡潔にするために、複数の個体(に搭載される学習装置ユニット)により共有される中間学習装置が1つである場合について説明してきた。しかし、各個体(に搭載される学習装置ユニット)は、同時に複数の中間学習装置を利用してもよい。
例えば、
図14に例示されるように、各個体(に搭載される学習装置ユニット)は、中間学習装置D21には、相互に並列に設けられた2つの中間学習装置D22、D23が、直列に接続されている。一般化すれば、様々な実施形態に係る中間学習装置は、1又は複数の中間学習装置と、これに直列及び/又は並列に接続された1又は複数の中間学習装置と、を少なくとも含むものとすることができる。
各個体に搭載される学習装置ユニットが複数の中間学習装置を共有する一具体例について、先に用いた
図8を参照して説明する。これら複数の中間学習装置は、各々、相互に異なる対象範囲を扱う学習装置として設けられ得る。
図8に示した中間学習装置D2に代えて、第1の中間学習装置として、“社会全体”を対象として共有される中間学習装置D21が用意され、さらに、この中間学習装置D21と後段の出力側学習装置D31、D32との間に、第2の中間学習装置として、“工場内の個体間”を対象として共有される中間学習装置D22が用意される。中間学習装置D21では、例えば、他の10000台の学習装置ユニットにより共有され、より一般的なスキルに基づく演算処理を行い、「例外処理実行判定」及び「作業実行判定処理」を出力として行うとする。一方、中間学習装置D22は、ある工場内に配置された他の50台の学習装置ユニット(個体1が搭載された学習装置ユニット及び個体2が搭載された学習装置ユニットを含む)により共有され、「不良品対応処理」及び「製造継続実行」という出力を行うとする。これにより、この工場における局所的に共有されたスキルを用いて、中間学習装置D22は、中間学習装置D21から、例外処理実行を要求され作業実行を実行しない、という入力を受けた場合に、不良品対応処理を行うという出力をする。これらの出力が出力側学習装置D31に入力される。これにより、「不良品をはじく」等の出力側の特性に沿った学習が出力側学習装置D31により行われる。以上例示したように、様々な実施形態に係る中間学習装置は、複数の中間学習装置を適宜含むことが可能である。
【0060】
以上、様々な実施形態が、ニューラルネットワークを用いた教師あり学習に基づいた学習装置を利用する場合について説明した。この場合には、1つの個体における「一般的な(既知の)」学習の動作及び特徴は、「各個体に対応した教師データ(入出力データの組)を取得及び使用し、入力に対して正しい出力を行うように、学習装置を実現する関数を最適化するように学習を行う」といえる。
しかし、様々な実施形態は、これに限定されるものではない。例えば、自動運転やロボットの制御といったような環境に対して行動を問う問題では、教師あり学習だけでなく強化学習の枠組みも利用可能である。
【0061】
また、対象とする課題によっては、ニューラルネットワークを用いない機械学習を利用することも可能である。例えば、多くの個体で同一の条件でデータ収集を行い、その入力データの特性が分かっている場合等には、必ずしもニューラルネットワークを用いる必要はない。この場合には、入力側学習装置には、経験的に優れていると知られている特徴
量抽出器を使うことができる。中
間学習装置では、クラスタリング、次元削減、Dictionary learningなどの教師なし学習アルゴリズムを行い、それは多くの個体の入力を用いて実施する。出力
側学習装置は、例えば強化学習であれば、一般的なテーブル型のQ学習や、古典的な制御理論的な制御などを実行する。
なお、ニューラルネットワークを用いた機械学習では、カメラ画像データと速度データなど、次元の異なる複数の形式のデータを使用して1つの学習装置で学習を行うことが可能である。
【0062】
本明細書で説明される処理及び手順は、実施形態において明示的に説明されたものによってのみならず、ソフトウェア、ハードウェア又はこれらの組み合わせによっても実現可能なものである。具体的には、本明細書で説明された処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク、光ストレージ等の媒体に、当該処理に相当するロジックを実装することによって実現される。また、本明細書で説明された処理及び手順は、それらの処理・手順をコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【0063】
本明細書中で説明される処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理又は手順は、複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は、複数のモジュールによって実行されるものとすることができる。また、本明細書中で説明されるデータ、テーブル又はデータベースが単一のメモリに格納される旨説明されたとしても、そのようなデータ、テーブル又はデータベースは、単一の装置に備えられた複数のメモリ又は複数の装置に分散して配置された複数のメモリに分散して格納されるものとすることができる。さらに、本明細書において説明されるソフトウェア及びハードウェアの要素は、それらをより少ない構成要素に統合して、又は、より多い構成要素に分解することによって実現されるものとすることができる。
【0064】
9.様々な実施形態に係る学習装置ユニットが適用されるアプリケーションについて
以上、説明を分かり易くするために、様々な実施形態が食品工場で用いられる製造プロセスに適用される場合について説明した。しかし、本明細書において開示された様々な実施形態は、これに限定されるものではなく、様々なアプリケーションに適用可能なものである。例えば、これらの実施形態は、以下に例示的に挙げられる様々なアプリケーションにも適用可能なものである。
(1)自動車
様々な実施形態に係る学習装置ユニットは、自動車に搭載されるカメラ、距離センサ、GPSなどのセンサ情報を入力とし、運転支援情報の提示や自動運転を行うことを出力とすることができる。この場合、各個体、すなわち、各自動車(各個体に様々な実施形態に係る学習装置ユニットが搭載される)から出力されるセンサ情報等を効率的に活用することができる。
(2)製造業
様々な実施形態に係る学習装置ユニットは、製造に用いられる複数の製造装置・ロボットからの情報を入力とし、これら製造装置・ロボットに与える指示を出力とすることができる。様々な実施形態に係る学習装置ユニットは、例えば、高度なロボット制御の実現や、プロセス最適化、異常の予知等において活用され得る。
(3)農業
様々な実施形態に係る学習装置ユニットは、温室栽培における環境制御に適用可能であり、例えば、温室の外的環境変化に応じた環境制御の実現や、消費エネルギーの最小化、生産品種に応じた栽培方法の共有化等において活用され得る。
(4)センサ・制御装置を有する機器全般
様々な実施形態に係る学習装置ユニットは、複数の機器に適用され、センサ情報の分析結果の提示や機器の制御等において活用され得る。
いずれのアプリケーションにおいても、様々な実施形態に係る学習装置ユニットを用いることによって、従来の手法に比べて、センサ情報の活用にかかる時間的コスト及び精度を改善することができる。
【0065】
以上説明したように、様々な実施形態では、多くの個体(機器)に搭載された学習装置ユニット(の中間学習装置)の間において共通するスキルを共有する。具体的には、各個体(機器)に搭載された学習装置ユニットは、その個体に固有の情報を学習する学習装置と、他の個体との間で共有できる情報についての学習を行う学習装置と、を含むように構成される。かかる構成を備えた各個体に搭載された学習装置ユニットは、学習を実行する際には、他の個体に搭載された学習装置ユニットで得られた入出力データ及び/又は学習結果(内部状態、何らかのデータを学習装置に入力した場合に得られた出力等を含む)を利用する。
【0066】
これにより、各個体ごとに独立に大量にデータを貯めて学習を実行する場合に比べて、より短い時間で学習を実行することができる。さらに、各個体について得られたデータを単純に合成する場合(例えば特許文献1に開示された手法)に比べて、精度の低下を抑えつつ学習を実行することができる。
【解決手段】 一実施形態に係る学習装置ユニットは、少なくとも1つの学習装置と、他の学習装置ユニットにより共有される内部状態を有する中間学習装置を前記少なくとも1つの学習装置に接続する接続手段と、を具備する。