以下、図面を参照して本発明の実施形態について詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。また、以下の実施の形態は、本発明を説明するための例示であり、本発明をその実施の形態のみに限定する趣旨ではない。さらに、本発明は、その要旨を逸脱しない限り、さまざまな変形が可能である。
<1.システム概要>
図1及び図2を参照して本実施形態におけるシステムの概要について説明する。
図1は、本システム全体の概略を示す図である。本システムは、学習サービス提供システム1と学習依頼システム2とを含んで構成され、両者はインターネットなどのネットワークN0を介して互いに接続される。なお、本システムの構成は図示のものに限定されず、例えば、学習サービス提供システム1と学習依頼システム2とを一体のものとして構成してもよい。
図1に示すように、学習サービス提供システム1は、学習結果データベース11と、学習依頼受付装置12と、一又は複数の学習装置13と、学習管理システム14とを有し、これらがローカルネットワークN1を介して互いに接続されている。また、学習依頼システム2は、学習データ準備装置21と、学習依頼装置22と、一又は複数の学習結果利用装置23とを有し、これらがローカルネットワークN2を介して互いに接続されている。また、学習データ準備装置21と学習結果利用装置23には、それぞれ学習データ入力装置24が接続されている。
なお、以下の説明では、学習サービス提供システム1及び学習依頼システム2に含まれる各装置はPC(Personal Computer)やサーバ装置などのコンピュータによって構成されるものとして説明するが、これに限定されず、例えば、プロセッサを用いた任意の組込装置によって実現されてもよい。また、各装置において実装される機能はソフトウェアによって実現される構成に限定されない。各装置に含まれる任意の機能は、ハードウェアによって実現される構成でもよい。例えば後述するニューラルネットワーク132、233はカスタムLSI(Large-Scale Integration)やFPGA(Field-Programmable Gate Array)等の電子回路によって構成されてもよい。さらに、各装置の一部は、物理的な鍵やDNAのような生化学的な方法、ホログラムなど光学的な方法による識別手段によって実現される構成でもよい。
図2は、図1に示したシステムによる、学習サービスの流れを概念的に示す図である。学習依頼システム2は、ネットワークN0を介して学習サービス提供システム1にアクセスし、学習結果利用装置23に追加する能力の機械学習を依頼する。機械学習を行うために必要な情報(以下、「学習依頼情報」ともいう。)は、学習依頼装置22から学習サービス提供システム1の学習依頼受付装置12へ提供される(S1)。学習依頼情報には、例えば学習の目標や、学習結果を利用する装置を識別する情報、学習データ等が含まれる。
学習依頼情報は、学習依頼受付装置12から学習装置13へと送信される(S2)。学習装置13では、学習依頼情報に基づいて、学習を行い、学習結果として新たな能力を獲得する。学習結果は、複製可能なパッケージ化されたデータに変換される(S3。以下、単に「学習結果」ともいう。)。データ化された学習結果は、学習装置13から学習結果データベース11へ送信され、種々の利用者から検索可能な形式で管理される(S4。詳細については後述する。)。なお、種々の利用者とは、学習プログラムの作成者や、学習結果の提供者、学習の成果を利用する利用者、その他学習結果にかかわる人を含む。さらに、学習結果は、学習依頼システム2の学習結果利用装置23へと送信され、学習結果利用装置23において、学習結果が利用されることによって、能力が発揮される(S5)。
<2.機能>
<2−1.学習依頼システム2>
次に、図3乃至図5を参照して学習依頼システム2の機能について説明する。なお、学習依頼システム2は、以下に説明する構成に限定されず、例えば単一の装置により構築される構成でもよい。
まず、学習データ入力装置24は、学習結果利用装置23の、後述するニューラルネットワーク233の入力データとなる対象に関する情報や、学習データ準備装置21の入力データとなるデータを取得する。例えば学習データ入力装置24は、カメラやセンサ、ネットワーク端末、自走型ロボットのセンサなど任意の入力装置を用いることができる。
図3は、本実施形態における学習データ準備装置21の機能ブロック図である。学習データ準備装置21は、学習モジュール(例えば後述するニューラルネットワーク233)が学習するために必要なデータ(学習データ)を準備する機能を有する。図3に示すように、学習データ準備装置21は、機能部として、操作部211と、学習データ取得部212と、学習データ記憶部213と、データ取得制御部214とを有している。
例えば、操作部211は、学習依頼システム2の利用者(以下、「依頼者」ともいう。)からの操作を受け付ける。学習データ取得部212は、学習データ入力装置24から学習データを作成するために必要なデータを取得し、学習データ記憶部213に記憶する。データ取得制御部214は、操作部211や学習データ取得部212、学習データ記憶部213を制御して、学習に必要なデータを準備する。通信部216は、学習依頼システム2のローカルネットワークと接続し、データ取得制御部214が作成した学習に必要なデータを他の装置に送信する。
なお、学習データ準備装置21は後述する学習結果利用装置23と同一の装置を用いて構築する構成でもよい。この場合、学習データ準備装置21は、学習結果利用装置23に外部接続される入力装置として構築することも可能である。
図4は、本実施形態における学習依頼装置22の機能ブロック図である。学習依頼装置22は、学習依頼情報を学習サービス提供システム1に送信する機能を有する。図4に示すように、学習依頼装置22は、学習依頼部221と、学習依頼内容記憶部222と、学習データ記憶部223と、通信部224とを有している。
学習依頼部221は、依頼者から学習依頼を受け付け、学習依頼情報を作成し、通信部224を介して学習依頼情報を学習サービス提供システム1へと送信する。このとき送信される学習依頼情報は、学習依頼内容記憶部222に記憶される。また、学習データ準備装置21から送信される学習データは、学習データ記憶部223に記憶される。
さらに、学習依頼装置22は、学習結果に付与されている識別情報(詳細については後述する)を参照し、入力された学習結果が利用目的に適合するか否かを判定してもよい。学習結果が利用目的に適合する場合には、学習依頼装置22は、学習結果を学習結果利用装置23に組み込み、学習結果を利用させる。他方で、学習結果が利用目的に適合しない場合には、学習依頼装置22は学習サービス提供システム1に対して不適合を通知することができる。このとき、学習依頼装置22は、条件を変えて再度学習を依頼してもよい。
図5は、本実施形態における学習結果利用装置23の機能ブロック図である。学習結果利用装置23は、学習結果を利用して新たな能力をユーザに提供する機能を有する。図5に示すように、学習結果利用装置23は、機能部として、学習結果入力部231と、ニューラルネットワーク設定部232と、ニューラルネットワーク233と、制御部234と、入力部235と、通信部236と、データ取得部237と、出力部238とを有している。
学習結果入力部231は、学習結果の入力を受け付ける。このとき、ニューラルネットワーク設定部232が利用目的に応じた設定をニューラルネットワーク233に対して行う。さらに制御部234は、データ取得部237及び入力部235を制御して学習結果の利用に必要なデータをニューラルネットワーク233に入力し、学習結果の利用を行う。なお、学習結果を利用した結果は、通信部236を介して出力部238より出力される。
<2−2.学習サービス提供システム1>
図6乃至図10を参照して学習サービス提供システム1の機能について説明する。なお、学習サービス提供システム1は、データセンターやクラウドを用いて実装することが可能である。この場合、学習サービス提供システム1の各装置は、PCサーバやブレードPCを用いて構築することができる。学習サービス提供システム1の各装置を複数のPCで構築することで、深層学習等の繰り返し演算を実行する場合に処理時間を短縮することができる。なお、学習サービス提供システム1は、1台のPCで構築される構成や、組み込み装置によって実装される構成でもよい。
図6は、本実施形態における学習結果データベース11の構成を示すブロック図である。学習結果データベース11は、学習を行うときに必要となる様々な情報を格納する。学習結果データベース11は、個々の学習結果を識別する機能と、学習結果を所定の検索条件に基づいて抽出する機能と、抽出された学習結果について、詳細な情報を出力して提示する機能とを有していてもよい。
図6に示すように、学習結果データベース11は、学習データDB111と、学習依頼DB112と、学習結果利用情報DB113と、バージョン管理DB114と、学習プログラムDB115と、要因情報DB116とを有している。
学習データDB111は、学習に用いる学習データを格納する。例えば学習データDB111は、学習データに、学習データの対象や、学習データの内訳、学習データの範囲、学習の目的など学習の要件を関連づけて格納することができる。
学習依頼DB112は、学習依頼情報と、当該学習依頼情報を学習依頼装置22から受け付けた場合に実施する学習の内容を格納する。例えば学習依頼DB112は、学習依頼情報に、学習依頼者に関する情報、学習データの対象や、学習データの内訳、学習データの範囲、学習の目的など学習の依頼要件を関連づけて格納することができる。
学習結果利用情報DB113は、学習結果の成果や利用履歴に関する情報を格納する。例えば学習結果利用情報DB113は、学習結果として分類能力が獲得された場合には、獲得した分類能力を利用して、分類を行った結果に関する情報を格納できる。さらに学習結果利用情報DB113は、学習結果の利用者に関する情報や、学習データの対象、学習データの内訳、学習データの範囲、学習の目的など学習の利用に関連づけて、学習結果の利用に関連する情報を格納することができる。さらに学習結果利用情報DB113は、利用識別情報を含むことが好ましい。利用識別情報は、学習結果の利用や成果を識別できる情報であり、例えば利用する装置のIDや能力に影響を与える設定(後述の基本要因や影響要因等)に関する情報を含む。獲得した能力は、利用される装置や利用される環境に応じて変化する場合があるため、学習利用履歴DB133が利用識別情報を含むことにより、より詳細に利用履歴を記録することができる。
バージョン管理DB114は、学習により獲得した能力のバリエーションに関連する情報を格納する。例えばバージョン管理DB114は、学習結果ごとに能力のバリエーションに関連する情報を格納することができる。バージョン管理DB114に格納される情報には、後述する学習結果及び学習成果の識別情報が含まれる。すなわち、バージョン管理DBは、学習結果及び学習成果を識別可能な情報を格納する記憶部として機能する。
学習プログラムDB115は、学習を行うための学習プログラムを格納する。例えば学習プログラムDB115は、学習の対象や、学習データの内容、学習の目標など学習の要件に関連づけて、学習プログラムを格納することができる。なお、学習プログラムDB115には多数の学習プログラムを登録できることが好ましい。この場合、後述する学習装置13は、学習の要件を指定することで、学習プログラムDB115から学習プログラムを特定して、実行可能にすることができる。また、学習プログラムDB115は、学習プログラムごとに、学習結果の能力を比較するプログラムを格納する。この比較プログラムは、学習プログラムごとに予め作成される。なお、学習プログラムごとに比較プログラムを用意することに限定されず、学習対象ごとに比較プログラムが用意されるものとしてもよい。
ここで、学習対象の一例を具体的に説明する。本実施形態において、学習対象とは、学習プログラムごとにそれぞれ設定することができる。学習対象は、学習結果として獲得される能力が対象とする物や事を含む。例えば、学習結果が農産物の等級を分類する能力であれば、学習対象は農産物である。このとき、学習プログラムや、学習に用いる学習データの範囲によって、学習対象である農産物の等級を分類する能力が異なっていてもよい。また、学習結果がキュウリやトマトの等級を分類する能力であれば、学習対象はキュウリやトマトである。他にも例えば、学習結果がニュース記事の要約文を作成する能力であれば、学習対象はニュース記事であるし、学習結果が特定客先向けの組立装置の制御であればば、学習対象は特定商品の組立装置の制御である。
要因情報DB116は、学習の結果として得られる学習結果や能力に影響を与える要因に関する情報を格納する。要因情報DB116に格納される情報は階層的に管理され、ツリー状の構成を持つ。本実施形態においては、要因は基本要因と影響要因とに大きく分類される。基本要因は学習結果を上位の階層で識別するために用いられる要因である。他方で、影響要因は基本要因以外で学習結果に影響を与える要因である。要因情報DB116においては、格納された各要因に識別用のID情報が付与されており、相互に識別することが可能である。
図7A、図7Bを参照して、要因情報DB116に格納される要因に関する情報の一例について説明する。なお、本実施形態においては、要因を基本要因と影響要因とに分類して識別情報を管理する例について説明するが、要因の分類方法はこれに限定されず、3つ以上に分類してもよいし1まとめにして管理してもよい。
図7Aは、基本要因と基本要因に割り当てられるIDの種別の対応関係の一例を示す表である。基本要因は、学習結果をグループ化することが可能な要因である。
学習は所定の能力を獲得するために行われるものであるため、獲得能力によって識別できる。従って獲得能力の種類にIDが付与されて管理されている。また、学習は学習依頼者の依頼に基づいて行われ、学習依頼ごとに異なる学習が行われることになる。従って学習依頼者(依頼者ID)によっても学習結果を識別することが可能である。さらに、すべての学習は学習データに基づいて行われており、学習データの対象によって学習結果を識別することが可能である。学習データの対象は入力データの取得元や、取得期間によって特定できるため、これらの要因にもID(入力データID、取得期間ID)が付与され基本要因として管理される。
また、獲得した能力が同じ(獲得能力IDが同一)であっても、能力が利用される装置の仕様や利用環境などの影響で学習結果が変化する場合がある。従って利用する装置や利用する対象にも利用装置IDや対象IDが付与され、基本要因として管理される。なお、基本要因は図7Aに示したものに限定されず、図7Aの基本要因の一部を選択的に使ってもよいし、学習結果をグループ化できれば他の要因が含まれていてもよい。
図7Bは、影響要因の相互関係の一例を示す図である。影響要因は、例えば過去の学習において、設定されたパラメータや条件等に基づいて要因情報DB116に追加して登録される。図7Bに示すように、影響要因はツリー構造となる相互関係を有していることが好ましい。なお、図7Bには図示を省略しているが、各影響要因には識別可能なIDが付与されている。また、各影響要因に付与されるIDは、階層構造が把握可能なように付与されていることが好ましい。
図7Bに示すように、影響要因の最上位の階層は、一例として外部インタフェース、学習データ、所属関連情報、学習の時期、学習の目標、学習装置、学習の方法、能力のテストから構成されている。
外部インタフェースは、例えば入力データの種類や出力データの種類等、学習プログラムと外部とのインタフェースに関連する要因である。
また、学習データは、学習に使用されるデータに関する要因である。要因情報DB116において、学習データにIDを付与して管理することで、学習データの詳細を秘匿して管理することができる。
所属関連情報は、学習プログラム等の所属に関する情報に基づく要因である。なお、所属関連情報のそれぞれに権利関係がある場合には、所属関連情報の下位の要因として、要因情報DB116において管理されることが好ましい。
学習の時期は、学習がいつ行われたかに基づく要因である。また、学習の目標は、学習ごとに設定された多様な目標に基づく要因である。
学習装置は、学習が行われる装置に基づく要因である、なお、学習がクラウド上で行われる場合には、装置の機種の代わりに、クラウドの運営会社の名称やネットワークアドレスを、学習装置の下位の要因として用いることができる。
学習の方法は、学習が行われる方法に基づく要因である。なお、図7Bには示さないが、学習の方法の下位の要因であるニューラルネットワークの構成はさらに下位の要因として、例えば、深層学習以前からあるSVM、回帰モデルなどの手法や、ディープビリーフネットワーク、ディープボルツマンマシン、積層自己符号化器、オートエンコーダ、制限ボルツマンマシン(RBM)、ドロップアウト、スパースコーティング、正則化、雑音除去自己符号化器、活性化関数の種類、シグモイド関数、ソフトサイン、ソフトプラス、Relu、乱数系列の種類など、具体的な学習手法を有していることが好ましい。また、ニューラルネットワークの構成の設定の下位の要因には、ハイパーパラメータ、入力層の構成、層の数、隠れ層のユニット数、各層の内容(CNN(Convolutional Neural Network)、RNN(Recurrent Neural Network)、Elman network、Jordan network、ESN(Echo state network)、LSTM(Long short term memory network)、BRNN(Bi-directional RNN)等、具体的なニューラルネットワークの設定に関する情報が含まれることが好ましい。
能力のテストは、学習結果が満たすべきテスト要件に基づく要因である。能力のテストが行われることにより、学習結果は、その要件を満たすように変更されるという影響を受けるため、能力のテストも影響要因の一つとして管理される。
なお、例えば深層学習など、乱数を用いる学習手法においては、学習を実施するごとに、獲得した能力に少しずつ差異が生じる場合がある。このような場合には、学習開始時刻や学習終了時刻と学習装置のIDを影響要因として識別IDを付与して管理することが好ましい。
また、影響要因のうち、複数の項目は同等であると見なせるケースがあり得る。その場合、複数の要因の種別をグループ化して同じ識別IDを付与するようにしてもよい。さらに影響要因は上記に限定されない。学習の対象と目的や環境に応じて、さまざまな影響要因が発生する。
本実施形態に係る学習結果データベース11が、上述の構成を備えることで、異なる学習結果をそれぞれ識別して管理することが可能となり、それにより、学習サービス提供システム1において、学習結果の同一性を判定することができる。なお、学習結果データベース11が有する各DBはそれぞれローカルネットワークなどのネットワークを介して、学習依頼受付装置12、学習装置13、学習管理装置140等から利用することができる。なお、学習結果データベース11の検索処理の詳細については後述する。
図8は、本実施形態における学習依頼受付装置12の機能ブロック図である。学習依頼受付装置12は、学習依頼装置22から学習依頼情報を受け付け、当該学習依頼情報を学習装置13に送信する機能を有する。図8に示すように、学習依頼受付装置12は、例えば、学習依頼受付部121と、学習データ記憶部123と、学習依頼内容記憶部124と、通信部125とを含んで構成される。
学習依頼受付部121は、学習依頼装置22から学習依頼を受け付ける。学習依頼受付部121は受け付けた学習依頼に含まれる学習依頼情報を、学習依頼DB112に登録する。このとき学習依頼受付部121は、通信部125を介して、学習依頼を受け付けた旨の通知を学習管理装置140に送信する。また、学習依頼受付装置12は、受け付けた学習依頼を学習データ記憶部123や、学習依頼内容記憶部124に一時的に保存しておくことができる。
図9は、本実施形態における学習装置13の機能ブロック図である。学習装置13は、学習依頼情報に基づいて学習を行い、学習結果として新たな能力を獲得する機能を有する。図9に示すように、学習装置13は、機能部として、学習制御部131と、ニューラルネットワーク132と、学習結果抽出部133と、通信部134と、学習結果出力部135とを有している。
学習装置13においては、学習制御部131がニューラルネットワーク132を制御して、学習依頼情報に基づいて学習を行うことができる。学習結果は学習結果抽出部133によって抽出され、通信部134を介して、学習結果出力部135によって出力される。
学習装置13において、複数回学習が行われると、複数の学習結果が得られる。それぞれの学習において、学習データ、学習プログラム、学習時間、学習の目標など、学習結果に影響を与える要件が相違すると、複数の学習結果によって得られる能力は同一ではない可能性がある。詳細については後述するが、本実施形態に係る学習サービス提供システム1においては、複数の学習結果によって得られる能力が同一ではない可能性がある場合には異なる識別情報を付与してバリエーションとして管理することができる。
なお、学習装置13は、自身が、学習依頼を行うことも可能である。この場合には、学習装置13は、自律的な学習が可能となる。
図10は、学習管理システム14の構成を示す概略図である。図10に示すように、学習管理システム14は、学習管理装置140と、学習識別情報生成装置15と、学習結果識別情報生成装置16と、学習結果利用環境情報生成装置17とを有し、これらがローカルネットワークを介して互いに接続されている。
学習管理装置140は、学習結果とその成果の管理を行う。学習サービスを提供する学習サービス提供システム1において、学習サービス提供システム1内のすべての学習結果とそれによってもたらされる学習成果を個別に管理することが望ましい。従って、学習サービス提供システム1の内部では、すべての学習結果とその成果は、学習管理装置140によって相互に識別できるように管理される。例えば影響要因のいずれかが異なる条件で学習を行うと、それぞれの学習結果は相違する可能性がある。すなわち、影響要因の構成が変わることで、学習結果は異なる影響を受けるため、学習結果には多くのバリエーションが発生する。また、同じ学習結果であっても異なる装置や環境で利用すれば、もたらされる成果は異なり得る。学習管理装置140は、学習結果とその成果を管理するために、バリエーションを識別する。
図10に示すように、学習管理装置140は、学習情報取得部141と、学習制御部142と、要因情報取得部143と、識別範囲設定部144と、影響判定部145と、通信部147と、を有している。
学習情報取得部141は、通信部147を介して学習依頼情報を取得する。
学習制御部142は、学習依頼情報に基づいて、学習を行う学習装置13と学習プログラムとを選択し、学習を指示する。また、学習制御部142は、学習結果を比較する処理を実行する。この点において、学習管理装置140は比較装置であるということができる。さらに、学習制御部142は、学習がなされたことによって所定の能力を獲得した学習結果に対して、学習識別情報生成装置15によって生成された第1情報と、学習結果識別情報生成装置16によって生成された第2情報とを含む識別情報を付与する機能を有する。また、学習制御部142は、学習結果によってもたらされる成果に対して、第1情報と第2情報とを含む識別情報に紐付けて、学習結果利用環境情報生成装置17によって生成された第3情報を含む情報を付与する機能を有する。すなわち、学習制御部142は、学習結果に対して、学習を識別可能な第1情報と、学習結果を識別可能な第2情報と、学習成果を識別可能な第3情報とを含む識別情報を生成する生成部として機能し、これにより、学習結果によってもたらされる成果を相互に識別できるようになる。ここで、学習結果に識別情報を付与するとは、学習結果と識別情報とを対応付けることを含む概念であり、例えば、学習結果のデータに識別情報を付加することや、記憶装置に学習結果と識別情報を対応付けて記憶することを含む。また、学習結果と識別情報を直接対応付けることに加え、これらを間接的に対応付けることも含む。例えば、学習結果に対して、当該学習結果そのものを識別するための識別子(例えばシリアル番号)を対応付けた上で、識別子と識別情報とを対応付ける場合も、学習結果に識別情報を付与することに含まれる。
要因情報取得部143は、要因情報DB116から学習結果に影響を与える可能性がある要因のリストを取得する。例えば要因情報取得部143は、図7Bに示した影響要因のツリー構造に対応する情報(以下、「影響要因のリスト」ともいう。)を取得することができる。
識別範囲設定部144は、バリエーションの識別が必要となる範囲(識別範囲)を設定する。識別範囲を特定することは、学習結果や学習成果をグループ化することに相当する。学習結果や学習成果のバリエーションは、識別を行う必要のある範囲において識別できればよい。すなわち、識別範囲が相違する場合には、異なる識別範囲間において、学習結果や学習成果は相互に識別できなくてもよい。例えば、学習依頼者が異なる場合には、バリエーションを相互に識別できなくても問題にならない場合がある。具体的には、ある学習依頼者は、自身が依頼した範囲で識別できればよく、他者の学習結果や学習成果との間でバリエーションが一意に識別される必要はない。例えば識別範囲設定部144は識別範囲のリストを用いて識別範囲を設定することができる。
図11は、識別範囲のリストの一例を示す図である。図11に示すように識別範囲は、例えば階層的に構成され、下位の識別範囲は上位の識別範囲に対して包含関係となるようにできる。具体的には、全ての識別範囲を含む集合は、全体のトップレベル(以下、「第1層」という。)の識別範囲となる。第1層の識別範囲では、全ての学習結果や学習成果が相互に識別できる必要がある。例えば、学習サービス提供者の全ての学習結果や学習成果を識別する必要がある場合には、識別範囲設定部144は、第1層の識別範囲を設定する。
図11の例では、第1層の下の第2層の識別範囲は、学習依頼者や応用分野によって規定される集合である。識別範囲設定部144によって学習依頼者ごと(第2階層)に識別範囲が設定された場合には、学習結果や学習成果は学習依頼者ごとに識別可能な識別情報が学習識別情報生成装置15、学習結果識別情報生成装置16及び学習結果利用環境情報生成装置17によって生成される。さらに第2階層の下の第3層の識別範囲は、例えば会社(図11の場合には、A社、B社、C社)や応用分野の種類(図11の場合には、工業分野、商業分野、農業分野)ごとに規定することができる。この場合、会社ごと(第3階層)に識別範囲が設定された場合には、会社ごとに識別可能な識別情報が生成されることになる。また、例えばある会社(A社)が複数の工場を保有しており、さらに工場や、工場のラインごとに異なる対象に関する学習を行っている場合には、識別範囲設定部144は、A社の工場ごと(第4層)やそのライン(第5層)ごとに識別範囲を設定してもよい。なお、この場合において、識別範囲設定部144は、他の会社(B社やC社)に対して、A社とは異なる要素に基づいて下位の識別範囲を設定してもよい。
識別範囲が階層構造を有することで、下位の識別範囲に対応する識別情報から上位の識別範囲に対応する識別情報を除くことができ、これによって識別情報の容量を減らすことができる。
なお、識別範囲設定部144が設定する識別範囲は上述の例に限定されず、任意に設定可能である。例えば、識別範囲は、基本要因や影響要因に基づいて設定されるものとしてもよい。この場合には、識別範囲のリストは、影響要因のリストに対応する構成を有してもよい。例えば影響要因のツリー構造は、それに対応する識別範囲の階層構造にも引き継がれることが好ましい。具体的には図7Bにおいて影響要因「外部インタフェース」によって分類される識別範囲が第3層の識別範囲であるとすると、外部インタフェースの下位に位置づけられた影響要因「入力データ」は、例えば第4層の識別範囲になる。このとき識別範囲設定部144は、学習依頼情報に含まれる影響要因が図7Bに示す影響要因のツリー構造のどの階層に属するかに基づいて、識別範囲を設定することができる。なお、識別範囲設定部144は、学習依頼情報に含まれる基本要因の組み合わせに応じて設定することも可能である。
さらに、識別範囲設定部144が識別範囲を設定する方法は、識別範囲のリストを用いる方法に限定されない。例えば、集合をクラスとして備えたプログラミング言語を用いることで、集合を直接扱うことができる。
影響判定部145は、要因情報取得部143が取得した影響要因のリストに基づいて、影響要因が学習結果に与える影響度を判定する。
例えば影響判定部145は、識別範囲ごとに作成された影響判定ロジックを用いて、基本要因や影響要因が学習結果に与える影響度を判定することができる。影響判定ロジックは、その識別範囲に含まれる学習プログラムに対して、基本要因や影響要因が与える影響について判定するロジックである。影響判定ロジックは、学習結果に影響を与える可能性のある要因(基本要因、影響要因)が入力として与えられた場合に、それぞれの要因ごとに学習結果への影響の有無を判定する。具体的には、影響判定ロジックは、学習プログラムごとに、学習結果に影響を与える要因(基本要因、影響要因)と、当該要因に与えられる条件(例えば学習データや、学習依頼者のID、学習の目標等)に応じて学習結果へ与える影響度とを対応付け、対応関係に基づいて影響度を判定する。
影響判定ロジックにおいては、例えば特定の2つの学習において、完全に学習結果が一致する要因については影響を与えないとみなしてもよい。また、所定の条件で学習結果が近いと判定される要因についても、影響を与えないとみなしてもよい。
影響判定ロジックは、例えば学習プログラムの作成者によって作成される。ある識別範囲に含まれる学習プログラム全体に適用可能な影響判定ロジックを作成するのが困難な場合には、識別範囲を分割し、分割された識別範囲ごとに影響判定ロジックを作成することも可能である。
なお、影響判定ロジックの作成者は、学習ロジックの詳細を把握している者であれば学習ロジックの作成者に限定されない。影響判定ロジックを作成するには、学習ロジックの内部で乱数を用いられているか否かというような構成の内容や、入力されるデータの種類や数などに応じて所定の判定条件で、学習ロジックが切り替わる構成である場合にはその切り替え条件、学習方法に関する指定項目(ニューラルネットワークの構成や終了条件等)等、学習ロジックの詳細を知る必要がある。従って学習ロジックの詳細を把握している者であれば影響判定ロジックを作成できる。
他方で、影響判定ロジックに入力として与えられるデータは、学習ロジックの作成者では知り得ないものも含まれる。例えば、学習を行う際の学習データや、学習依頼者が指定する影響要因については、学習依頼者と学習ロジックの作成者が異なる場合には、学習ロジックの作成者は知ることができない。なお、学習依頼者が指定する影響要因として、一例として、以下の例が挙げられる。
・学習結果を利用する装置の機種、利用するセンサの機種
・獲得する分類能力の分類数
・言語処理能力で対象とする言語
影響判定部145は、学習プログラムの作成者では知り得ない上述のような情報を学習依頼情報から抽出し、学習プログラムの構成を知る者しか知り得ない影響判定ロジックに対してこのような情報を入力として与える。これによって、学習が行われたときに、基本要因や影響要因が学習結果に与える影響を判定することができ、学習結果のバリエーションを管理することができる。さらに、学習サービスの場合、学習依頼を受け付けたときの情報や、選択した学習プログラムの情報、選択した学習データの情報等、学習サービス提供システム1しか把握できない情報もある。これらの情報も、学習を実施するときに、影響判定部145によって、影響判定ロジックに入力されることが好ましい。
さらに影響判定ロジックは、学習データによる影響の判定に用いてもよい。多くの場合に、学習データの相違は学習結果に影響を与えるが、学習データは、学習を行うときに指定され、学習プログラムの作成者では学習データを指定できない場合がある。このような場合にも、用いられた学習データの内容に関する情報を取得できるようにすることで、学習データに応じて影響が有るか、無いかを判定するロジックを作成することができる。具体的には、学習データ準備装置21が学習データを準備するときに、準備する学習データに関する情報を取得して、その識別IDを記録することで、学習データに関する詳細な情報が記録できる。
なお、影響判定部145において、要因が学習結果に与える影響を判定する方法は、上述の例に限定されない。例えば、学習ツールとして所定の学習プログラムを使っているとき、影響判定部145は、当該プログラム内で利用方法や設定が変更されたことに基づいて影響の有無を判定してもよい。例えば、変更された設定に関する情報を学習データに追加することで、影響判定部145は、設定の変更を検知することができる。具体的には、センサの閾値を変更させた場合等には、変更前の閾値に加えて変更後の閾値に関する情報を追加することで、影響判定部145は、設定変更を検知することができる。さらに、IDやタグなどの情報を追加することでも設定変更を検知することができる。
他方で、例えば、学習に関する設定や、学習データを全く変更せずに、2回学習を行った場合、2回行ったこと以外に影響要因の変更はない。しかし、学習プログラムが内部で乱数を使っている場合などに、同じ条件で複数回行った学習結果とで獲得された能力が異なる場合がある。このような場合には、影響判定ロジックは、学習回数が学習結果に影響を与えるとの判定を行う。これにより後述する学習識別情報生成装置15、学習結果識別情報生成装置16及び学習結果利用環境情報生成装置17は、学習回数=1回目と学習回数=2回目のように識別情報を付与することができる。
さらに影響の有無を判定する方法は上記に限定されず、任意の方法を用いることができる。例えば、学習データの取得担当者が、学習データ準備装置21のキーボードとマウス(操作部211)を操作して、識別のための情報を入力する構成でもよい。また、学習依頼装置22からの学習依頼情報に含まれる情報を元に、依頼内容の差を把握して影響の有無を判定する構成でもよい。
図10に戻って学習管理システム14の構成の続きについて説明する。
学習識別情報生成装置15は、学習結果が利用される範囲(例えば識別範囲設定部144が設定した識別範囲)に応じて学習のバリエーションを相互に識別可能なように識別情報(以下、「第1情報」ともいう。)を生成する。例えば学習識別情報生成装置15は、学習結果に影響を与える要因に基づいて第1情報を当該学習に付与する。具体的には、学習識別情報生成装置15は、学習依頼情報に対応する学習プログラムに基づいて、影響判定ロジックを選択する。次に学習識別情報生成装置15は、識別範囲と、影響要因のリストとを、選択した影響判定ロジックに入力する。学習識別情報生成装置15は、影響判定ロジックが、学習結果に影響を与えると判定した影響要因をすべて含むように、第1情報の元となるデータを生成する。さらに学習識別情報生成装置15は、この第1情報の元となるデータを所定の方法で変換することで、学習の第1情報を生成する。
学習識別情報生成装置15の処理について、より詳細に説明する。影響要因は、上述のとおりツリー構造を有している(図8B参照)。学習識別情報生成装置15は、影響判定ロジックによって影響を与える影響要因と判定された影響要因を含まない分岐について、ツリー構造から削除する。この処理をツリー構造の上層から下層へと順次実行していき、ツリー(いか、「影響要因説明情報」ともいう。)を作成する。学習識別情報生成装置15は、影響要因説明情報に含まれる影響要因のIDを上層から順次列挙していくことで得られたデータ列を、第1情報の元となるデータとすることができる。このときのデータ列は、例えば文字列でもよいしバイナリ形式でもよいし、XML形式でもよいし、JSON(JavaScript(登録商標) Object Notation)のような表現方法でもよい。なお、この手順で得られたデータ列は、所定の影響要因が学習結果に対する影響度の情報を含むことが好ましい。この場合、例えば、影響判定部145は、影響判定ロジックの出力に応じて、ツリー構造に影響度を記述しておき、学習識別情報生成装置15は、影響度も合わせてデータ列に列挙することが好ましい。
学習識別情報生成装置15は、データ列を、一覧表化、圧縮化、又は暗号化等、所定の方法で変換し、第1情報を生成する。なお、所定の方法とは、このとき元のデータ列が異なれば、異なる第1情報が生成される方法である。
一例として、このとき生成される第1情報は、「qijsudi48fuhu」「nvfsuki3fjn45ip」等の所定の文字列である。なおこの文字列はランダムに生成されてもよい。この場合、学習識別情報生成装置15は、生成した文字列と元のデータ列とを一覧表で管理することで、異なる学習結果に同一の第1情報を割り当てることを防ぐことができる。ただし、第1情報の例は文字列に限定されず、データ列から情報量を減らせる任意の方法をとることができる。
なお学習識別情報生成装置15は、上記以外の任意の方法で第1情報を生成することができる。例えば、オブジェクト指向言語でプログラムを作成し、要因情報を階層構造のクラスで定義して、クラスのインスタンスに対してマーキングした結果を、シリアライズして、データベースに登録することも可能である。
例えば深層学習など、乱数を用いる学習手法においては、上述のとおり学習を実施するごとに、獲得した能力に少しずつ差異が生じる場合がある。このような場合には、学習識別情報生成装置15は、上述の手法により生成した第1情報に1回目の学習、2回目の学習のように回数を表す情報(派生識別情報)を付与してもよい。また、学習装置13として多数のPCが用いられる場合、用いられたPC名を組み合わせて第1情報を生成することができる(例えば、「C2145.33回目の学習」等)。
なお、第1情報は基本要因や影響要因に応じて階層構成とすることも可能である。
学習結果識別情報生成装置16は、学習がされた結果である学習結果を識別するための識別情報(以下、「第2情報」ともいう。)を生成する。学習結果は影響要因が同等であっても(すなわち、同一の第1情報が付与された学習がなされた場合であっても)異なる場合がある。このような場合には、影響要因が同じであったとしても、学習結果を用いた成果(学習成果)が異なる可能性がある。学習結果を利用する利用者は、学習成果に関心があるため、影響要因が同じであっても学習成果が異なる可能性がある場合には、別の学習結果として識別されることが好ましい。学習結果識別情報生成装置16は、このような場合でも学習結果を識別できるように学習結果に対して第2情報を付与して識別する。
第2情報は、例えば、学習を識別する情報(どのような学習が行われたかを示す情報。例えば第1情報である。)や、学習の実施環境に関する情報(どこのどのような装置で学習がされたのかを示す情報)、学習結果を利用する装置に関する情報(どこでどのように利用されるかを示す情報)、学習結果が獲得した能力に関する情報(どのような能力が獲得されたかを示す情報)等を含んでもよい。
このような学習結果を識別する情報は、学習依頼に基づいて生成されることが好ましい。例えば学習依頼において、サイズの異なるロボットの制御に関する学習が依頼されている場合には、学習結果を識別する情報には、学習結果が利用されるロボットのサイズを示す情報が含まれることが好ましい。
なお第2情報には、さらに学習結果の内容を識別することが可能な情報を含めてもよい。すなわち、第2情報に、依頼者が依頼した内容に合致した学習結果であるか否かを判断することが可能な情報を含ませることができる。例えば、学習結果識別情報生成装置16は、第2情報に基づいて、学習依頼DB112を参照して、学習結果の内容を識別するのに必要な、個別の影響要因に関する詳細な情報(例えば、学習データの識別子や、学習の目標値等)を検索し、第1情報及び第2情報と併せて依頼者に通知することができる。依頼者は通知された詳細な情報を参酌することで、学習結果の内容について識別を行うことができる。
学習結果利用環境情報生成装置17は、学習結果の成果や利用状況に関する情報である利用識別情報(第3情報)を生成する。学習結果を学習結果利用装置23において利用する場合には、学習結果の成果に関する情報の他、学習結果の複製や、当該複製の転送、学習結果の利用状況等の事項を管理することが好ましい。そのため、学習結果利用環境情報生成装置17は、以下のような成果や利用状況等に関する情報を第2情報に紐づけて学習結果利用情報DB113に格納することが好ましい。
・学習によって獲得された能力
・学習結果の利用者
・学習結果を利用する装置
・学習結果が利用される場所
・学習結果の利用目的
・学習結果の利用対象
・学習結果の組み合わせ
・学習結果の分割
・学習結果の利用履歴
学習結果利用情報DB113において、上記の情報を記録可能なデータに変換して、時系列で記録する。このとき、成果や利用状況を識別する利用識別情報を、上述の学習や学習結果の識別情報と同様の方法で生成し記録することが好ましい。
<3.データ構造>
図12を参照して、学習結果利用情報DB113に格納される学習に関する情報の構成の一例について説明する。学習結果利用情報DB113には、図12に示すように、学習に関する情報がツリー構造で保存されている。具体的には、学習の識別子(第1情報)ID1に、複数の学習結果の識別子(第2情報)ID2が紐づけられており、さらに複数の学習結果の識別子ID2のそれぞれには、成果や利用状況に関する利用識別情報(第3情報)が紐づけられている。このように学習結果利用情報DB113において、学習に関する情報がツリー構造で保存されることにより、記憶容量を低減させることができる。
<4.検索処理>
学習結果データベース11の検索機能について説明する。学習結果データベース11の利用者としては、一例として以下の者が想定される。
・学習フレームワークの作成者
・学習プログラムの作成者
・学習の管理者
・学習データの管理者
・学習結果の管理者
・学習結果利用装置23の開発者
・学習結果利用装置23の管理者
・学習結果利用装置23の利用者
上記の利用者は、それぞれ異なる利用形態で学習結果データベース11を利用する場合がある。例えば、学習フレームワークの作成者は、学習結果に学習時の詳細な情報を関連付けるために利用する。また、学習プログラムの作成者は、学習プログラムの詳細について記録するために利用する。また、学習の管理者は、学習を管理するための詳細な情報を記録するために利用する。また、学習データの管理者は、どこでどのように利用する学習データであるか詳細な情報を関連付けて管理するために利用する。また、学習結果の管理者は、学習結果がどのような経緯で得られたものか、詳細な情報を用いて管理するために利用する。
さらに、学習結果利用装置23の開発者は、学習結果利用装置23において提供する、学習結果を利用するためのデータベース機能に、学習結果データベース11の機能を組み込む場合がある。また、学習結果利用装置23の管理者は、学習結果利用装置23に組み込まれた学習結果の内容を詳細に把握して管理を行う場合がある。さらに、学習結果利用装置23の利用者は、利用する学習結果が同のような学習の結果として得られたものであるか、またその学習結果が有用なものであるか、学習結果の内容を把握して利用する場合がある。
本実施形態に係る学習結果データベース11は、任意な形状に構成可能なツリー構造によって学習に関する情報を管理するため、上記の様々な利用形態に対応することができる。
例えば、利用者は、学習結果データベース11において、影響要因を組み合わせて検索することができる。また、例えば利用者は、上記の第1情報や第2情報、利用環境に関する情報等を任意に組み合わせて検索することができる。学習結果データベース11は、このような検索に対して、検索結果をリストや集合で出力することができる。さらに学習結果データベース11は、検索結果のリストや集合に対して、和、積、否定などの各種論理演算を行い、出力する構成でもよい。さらに学習結果データベース11は、個々の事柄毎に詳細情報を階層的に詳細化して出力することも可能である。また、学習結果データベース11は、検索結果のサマリや、検索結果に基づく統計データを出力する構成でもよい。これによって、学習結果データベース11の利用者は、例えばロボット制御用の学習結果を検索する際に、自社の工場と類似する環境において、高い成果を示した学習結果を検索したり、当該学習結果がどのような学習によるものなのかを検索することができる。
<5.識別情報の利用>
次に、学習結果の識別情報の利用例について説明する。
学習結果の識別情報を用いることで、依頼者は、獲得した能力のバリエーションを相互に識別することができる。すなわち、学習結果を対比して、目的に対する適合度を比較でき、また対象ごとに、適切なバリエーションを選択することができる。
例えば、学習結果の比較処理は次のように行われる。学習管理システム14は、依頼者から受け付けた条件(依頼者が期待する動作等)に基づいて学習結果データベース11を検索し、比較する学習結果のリストを作成する。次に、学習結果のリストに含まれる学習対象を特定し、特定された学習対象に対する比較プログラムを特定する。そして、特定された比較プログラムを用いて学習結果を相互に比較し、比較結果を表形式などにして依頼者に出力する。こうして、学習サービス提供システム1は、個々の学習や学習結果を単に記憶しておくだけでなく、識別情報に基づいて学習結果の比較処理を行うことで、依頼者の期待に対してより望ましい学習結果を探して出力することができる。
また、学習結果を識別できることにより、学習結果を利用している装置と、利用されている学習結果との対応関係や、利用している学習結果と対象との対応関係、学習結果により獲得した能力の所属、学習結果の複製に対して学習結果をもたらした要因の所属等をそれぞれ識別して管理することができる。さらに学習結果を識別できることにより、獲得した能力の利用履歴、獲得した能力が存在する場所、獲得した能力のアウトプット等を管理可能になる。
本発明の具体的な利用で生成される識別情報とその利用方法の具体例について説明する。なお、以下の利用例では、理解を容易にするため、影響判定ロジックを用いて影響要因のリストから得られた上述のデータ列に対して、学習識別情報生成装置15、学習結果識別情報生成装置16及び学習結果利用環境情報生成装置17は暗号化等を行わない例を示す。この場合でも、利用者ごとに異なる暗号キーを用いることで、識別情報の内容が他者にわからないようにできる。また、下記に挙げる例は任意に組み合わせることができる。
(利用例A):1つの影響要因が異なる例
・利用例A−1:対象が異なる例
同じ学習依頼者のなかで、対象が異なる場合、それぞれの学習結果に異なる学習結果識別情報が付与される。例えば、「対象装置=SX9100.jdsjhfsd」や「対象装置=SX9200.djsfhsjfk」のような識別情報が付与される。
他方で、同じ対象装置で対象とするセンサ等が異なる場合は、「対象センサ=グループa74.jhsjhuo」や「対象センサ=グループa90.jsdfhjkg」のような識別情報が付与される(ただし、対象装置はSX9100で共通、識別範囲はSX9100の場合の例である。)。
・利用例A−2:複数回学習したときの例(ただし、対象装置の識別が必要な場合)
この場合には、「対象装置=SX9100.1回目の学習」や、「対象装置=SX9100.2回目の学習」、「対象装置=SX9100.学習終了時刻=20160707123521」、「対象装置=SX9100.学習終了時刻=20160708114335」のような識別情報が付与される。
・利用例A−3:学習データが異なる例
この場合には、「対象装置=SX9100.学習データ=000001〜019999」や「対象装置=SX9100.学習データ=020000〜029999」、「対象装置=SX9100.学習データ=2015年4月分」、「対象装置=SX9100.学習データ=2015年5月分」のような識別情報が付与される。
・利用例A−4:学習プログラムが異なる例
この場合には、「学習プログラム=DQ2939.対象装置=SX9100」や「学習プログラム=DQ3200.対象装置=SX9100」のような識別情報が付与される。
・利用例A−5:依頼者が異なる例
例えば依頼部門が異なる場合には、「対象装置=SX9100.依頼部門=第1工務課」や「対象装置=SX9100.依頼部門=第2工務課」のような識別情報が付与される。
(利用例B):複数の影響要因が異なる例
例えば基本要因である依頼者と対象と学習データが異なる例には、「対象装置=SX9100.依頼部門=第1工務課.学習データ=2015年4月分」や「対象装置=SX9200.依頼部門=第1技術課.学習データ=2016年7月分」のような識別情報が付与される。
(利用例C):識別情報が利用される範囲が違う例
例えば学習サービス提供者内での識別情報は、「学習依頼者=A社.対象装置=SX9100.学習プログラムDQ2939.学習データ=020000〜029999」であり、「学習依頼者=B社.対象装置=JQR939400.学習プログラムDQ2939.学習データ=2016年7月分」のように異なる依頼者間で区別される。この場合、利用者に提供される識別情報は、学習依頼者に関する識別情報を除くことで、次のような識別情報が得られる。
・学習依頼者A社に提供される識別情報:「対象装置=SX9100.学習プログラムDQ2939.学習データ=020000〜029999」
・学習依頼者B社に提供される識別情報:「対象装置=JQR939400.学習プログラムDQ2939.学習データ=2016年7月分」
<6.システムフロー>
次に図13乃至図15を参照して本実施形態に係るシステムの処理フローについて説明する。図13は学習依頼システム2における処理フローを示すフローチャートである。
まず、依頼者は学習データ準備装置21を用いて、学習データの準備を行う(S101)。次に、依頼者は学習依頼装置22を用いて学習依頼情報を入力する(S102)。さらに依頼者は学習依頼装置22から学習サービス提供システム1に、学習を依頼する(S103)。学習サービス提供システム1において学習が実施されると、学習依頼装置22は、学習サービス提供システム1から学習結果を受け取り(S104)、受け取った学習結果を保管する(S105)。
学習依頼装置22は、学習結果利用装置23において学習結果を利用する際に、保管された学習結果から、適切な学習結果を選択する(S106)。学習依頼装置22は、このとき学習結果の識別情報を参照し、選択した学習結果が利用目的に適合するか否かを判定する(S108)。利用目的に適合する場合(S108:Yes)には、学習結果を学習結果利用装置23に組み込み(S109)、学習結果利用装置23において学習結果を利用する(S110)。
他方で、S108において選択した学習結果が利用目的に適合しない場合(S108:No)には、不適合通知を行い(S119)、必要に応じて条件を変えて再度学習を行う(S120)。
次に、学習サービス提供システム1の処理フローについて説明する。図14は、学習サービス提供システム1における処理フローを示すフローチャートである。
まず、学習依頼受付装置12が、学習依頼装置22から学習依頼情報を受け取り、学習依頼を受け付ける(S201)。次に、学習管理装置140における識別範囲設定部144は、識別範囲を設定するのに必要な情報を取得する(S202)。識別範囲設定部144は、取得した情報と学習依頼情報から識別範囲を設定する(S203)。
学習制御部142は、学習依頼情報と設定された識別範囲とに基づいて、学習装置13と学習プログラムを選択し(S204)、学習依頼情報を選択した学習装置13に通知し(S205)、学習を指示する(S206)。
影響判定部145は、要因情報DB116を参照し、影響要因のリストを抽出する。また、影響判定部145は、学習装置13から学習プログラムに対応する影響判定ロジックを取得し(S207)、取得した影響判定ロジックを用いて、各要因が学習結果に与える影響度を判定する(S208)。影響判定部145は、影響要因のリストに記された影響要因ごとに判定結果を設定する(S209)。
次に、学習識別情報生成装置15、学習結果識別情報生成装置16及び学習結果利用環境情報生成装置17は、影響要因のリストから、影響度がなしと設定された影響要因を除き(S210)、除いた後の影響要因のリストを用いて学習結果の識別情報を生成し(S211)、学習制御部142は、生成した識別情報と学習結果とを対応付けてバージョン管理DB114に登録する(S212)。
このように、本実施形態に係る学習サービス提供システム1によれば、機械が獲得する能力のバリエーションについて、適切に管理することができる。
図15は、学習結果を比較する処理のフローチャートである。学習結果の比較処理を行う前の準備として、学習プログラム又は学習対象ごとに学習結果の能力を比較するプログラムが学習結果データベース11に登録されているものとする。比較プログラムは、学習プログラムの作成者や学習の管理者等によって作成される。また、機械学習によって得られた学習結果には上述の識別情報が付与され、影響要因に関連付けられて学習結果データベース11に登録されているものとする。
学習管理システム14は、所定のトリガに応答して、学習結果の比較処理を開始する。例えば、学習管理システム14が、入力装置等を介して利用者からの指示を受け付けたときに、比較処理を開始してもよい。また、学習管理システム14は新たな学習結果が得られたときに比較処理を開始してもよい。
まず学習管理システム14の学習制御部142は、学習結果を比較する対象となる複数の学習結果を学習結果データベース11から抽出して、比較対象とする複数の学習結果のリストを作成する(S301)。このとき、学習管理システム14は、入力装置等を介して利用者が直接選択した複数の学習結果を学習結果データベース11から抽出してもよい。利用者が学習結果に期待する能力や動作を指定することにより、指定された能力や動作を獲得した学習結果を学習結果データベース11から抽出するものとしてもよい。また、学習管理システム14は、利用者が依頼した学習依頼に基づく学習の結果得られる能力や動作を獲得済みの学習結果を学習結果データベース11から抽出してもよい。新たな学習結果が得られたときに、当該学習結果により得られた能力や動作と同じ能力や動作を有する学習結果を学習結果データベース11から抽出してもよい。
次に、抽出された学習結果のリストに含まれる学習対象を特定する(S302)。例えば、抽出された複数の学習結果に付与された識別情報を参照することにより、学習対象を特定することができる。そして、学習管理システム14は、特定された学習対象に対する比較プログラムを特定し、学習結果データベース11から取得する(S303)。
学習管理システム14は、取得された比較プログラムを実行して、ステップS301で抽出された複数の学習結果を相互に比較する(S304)。学習結果の比較は、比較対象とした複数の学習結果を、所定の比較基準に基づいて相対的に比較してもよく、所定の比較基準に対して絶対的な評価に基づく比較をしてもよい。例えば、比較プログラムは、複数の学習結果のそれぞれに対して、利用者自身が期待する特定の能力又は動作が含まれるか否かを判定してもよい。比較プログラムは、利用者の期待に対してどの学習結果がどのように優れているかを判定してもよい。また、比較プログラムは、複数の学習結果の中から、利用者の期待に対してより望ましい学習結果を抽出してもよい。
例えば、利用者が農産物の等級を分類する能力を獲得した学習結果を比較したい場合、利用者はまず、学習結果に期待する能力として、農産物の等級を分類することを指定する。利用者の指定に応答して、学習制御部142は、農産物の等級を分類する能力を獲得した複数の学習結果を学習結果データベース11から抽出し、それぞれの学習結果に付与された識別情報を参照して、学習対象が農産物であることを特定する。そして、学習管理システム14は、学習結果データベース11から農産物に対する比較プログラムを取得し、学習結果を比較し、評価する。このとき比較プログラムは、例えば以下の一または複数の評価基準に従って、学習結果を比較する。
・学習結果に含まれるニューロンの数や層の階数
・学習プログラムの大きさ
・学習にかかった時間
・学習にかかった電力量
・学習にかかった費用(料金)
・学習の質(例えば学習に用いられた学習データの数や学習の繰り返し回数)
・入力から出力までの時間
・評価関数に対する適合度
・正解率(例えば信号の波形を予測する場合は、それとの一致度合い
・処理不能を出力する割合
・出力結果の安定性(例えば10回評価試験をして、そのときのバラツキの程度)
・適合可能な装置の数
なお、比較プログラムは、各学習結果に付与された識別情報を参照することにより、各学習結果を比較し、評価してもよい。また、サンプルデータを各学習結果に適用することにより、各学習結果を比較し、評価してもよい。例えば比較プログラムが、農産物の画像とその等級を対応付けたサンプルデータを各学習結果に適用することにより、各学習結果を比較し、評価を行うことができる。
学習管理システム14は、比較プログラムを用いて学習結果を相互に比較した結果を表形式などの形式にして出力する(S305)。学習管理システム14は、比較処理を依頼した利用者のPCやスマートフォン等の端末装置に学習結果を出力することができる。
<7.検査機の実施例>
本実施形態に係る比較装置を検査機に適用させる場合の例について説明する。例えば、電子回路基板の製造者Zは、検査機により製品の良品と不良品の選別を行っている。この例では、製造者Zは学習依頼者であり、検査機が製品の良品と不良品の選別をする能力を学習により獲得する際に、製品の良品と不良品の選別をする能力を獲得した複数の学習結果を比較し、所定の評価に基づいて選択された学習結果を検査機に適用する場合について説明する。
まず、図16を用いて検査機aの構成について説明する。図16は検査機aの構成の一例を示すブロック図である。図16に示すように検査機aは、記憶部A1と、入力部A2と、判別部A3と、出力部A4とを備えている。記憶部A1は、例えば学習サービス提供システム1によって行われた学習の学習結果が記憶される。入力部A2は、検査対象の情報を取得する機能を有し、例えばカメラやマイク等のセンサにより構成される。判別部A3は、入力部A2から入力された検査対象の情報(例えば画像等)に基づいて、良品や不良品等の所定の検査対象を判別する機能を有している。また、出力部A4は、判別部A3の判定結果を出力する機能を有する。なお、ここで判定結果を出力するとは、例えば表示装置等に判定結果を表示させる等、判定結果をユーザに提示するだけでなく、所定の検査対象を他の検査対象から選り分ける等の検査機の動作を含むものである。
次に、本実施形態における処理の流れについて説明する。まず、製造者Zは、学習依頼装置22から、学習サービス提供者Aの学習依頼受付装置12に対して、製造者Zの所有する検査機a上で動作する学習モデルを納品するよう学習依頼する。具体的には、製造者Zは、学習依頼時に検査機aに備えられたカメラによって撮像された電子回路基板の複数の画像と、各画像に対して製造者Zが良品または不良品を判定した結果とを組み合わせたデータを含む情報を学習依頼情報として学習サービス提供者Aへと提供して、学習依頼する。
この際、学習依頼DB112には、例えば、獲得する能力、学習依頼者、学習データの対象、取得期間等の情報として以下に示す情報が格納される。
・獲得する能力が、回路基板の実装の良品と不良品を判別すること、及び、学習結果による正解率が90%以上であること
・学習依頼者が、回路基板の製造者Aであること
・学習データの対象が、回路基板の製造者Aの検査機aで取得された回路基板の撮像画像、及び、製造者Zが各撮像画像に対して良品または不良品を判定した結果であること
・取得期間が例えば、2016年6月1日から2016年6月15日であること
さらに、これらの依頼情報に加え、学習サービス提供者Aは深層学習等どのようなアルゴリズムにより学習を行うか等の情報を加えたうえで、学習サービス提供者Aは、製造者Zより提供された画像を学習データ、良品または不良品の判定結果を教師データとして、所有する学習装置13によって学習を行わせる。
例えば、学習装置13は、製造者Zの学習データを入力として、良品または不良品を分類できるよう深層学習を行う。深層学習が完了した後、例えば、学習サービス提供者Aは、学習装置13におけるニューラルネットワーク132の層数や各ノードの重み等、学習モデルの構成情報、あるいは、学習済みのニューラルネットワーク132自体を取得し、製造者Zへ納入する。
この際、学習サービス提供者Aは、学習管理装置140及び学習識別情報生成装置15を用いて第1情報を生成する。具体的には、学習管理装置140の影響判定部145が影響要因判定ロジックにより影響要因を抽出し、当該影響要因に基づいて学習識別情報生成装置15が第1情報を生成する。この場合、上記の学習依頼情報に加え、学習サービス提供者A側から提供される学習アルゴリズム等の情報を含めて影響要因が判断され、学習を識別する第1情報となり得る。また、例えば、学習サービス提供者Aが複数の学習装置13を保有する場合には、複数の学習装置13のうち、学習装置Aによって学習を行ったのか学習装置Bによって学習を行ったのかを学習結果を識別可能な第2情報が学習結果情報生成装置16によって生成されてもよい。また、第3情報として、学習結果が製造者Aの検査機Aで利用されるのか、検査機Bについて利用されるのかを識別する情報が、学習結果利用環境情報生成装置17によって生成されてもよい。
製造者Zの検査機は、学習結果を獲得すると、獲得した学習結果と同様の能力や動作を有する他の学習結果を学習結果データベース11から抽出する。検査機は、こうして得られた複数の学習結果を比較して比較結果を出力し、出力された比較結果の中から所定の評価基準に基づいて選択された一の学習結果を、当該検査機に適用する。このようにして、複数の学習結果の中から、所望の能力や動作を有する学習結果を、検査機が所定の評価に基づいて選択して適用することができる。
以上、本発明の一実施形態について説明した。なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。また、本発明は、その趣旨を逸脱することなく、変更ないし改良され得るものである。例えば、上述の処理フローにおける各ステップは処理内容に矛盾を生じない範囲で各ステップの一部を省略したり、各処理ステップの順番を任意に変更して又は並列に実行することができる。
上述の実施形態では、本発明に係るシステムを利用して、深層学習などのAI技術によって機械が獲得した能力の管理を行う例について説明したが、本発明はこれに限定されず、幅広い分野に適用することができる。例えば、製品の良品と不良品の識別、食品、機械部品、化学製品、薬品などのさまざまな工業分野、漁業分野、農業分野、林業分野、サービス業、医療や健康分野に適用することができる。また、組込分野の製品にAI技術を適用する場合や社会システム等のIT技術を活用したシステム、ビッグデータの分析、幅広い制御装置における分類機能等に本発明を適用してもよい。
なお、本明細書において、「部」ないし「手段」とは、単に物理的構成を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、1つの「部」ないし「手段」や装置が有する機能が2つ以上の物理的構成や装置により実現されても、2つ以上の「部」ないし「手段」や装置の機能が1つの物理的手段や装置により実現されてもよい。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
少なくとも1つのハードウェアプロセッサを備え、
前記ハードウェアプロセッサは、
機械学習により所定の学習がなされたことによって得られた学習結果を格納するデータベースに接続され、
複数の学習結果を前記データベースから抽出し、
前記抽出された複数の学習結果のそれぞれが獲得した能力を比較し、
前記比較の結果を出力する
ことを特徴とする比較システム。
(付記2)
少なくとも1つ以上のハードウェアプロセッサによって、
機械学習により所定の学習がなされたことによって得られた学習結果を格納するデータベースから複数の学習結果を抽出するステップと、
前記抽出された複数の学習結果のそれぞれが獲得した能力を比較するステップと、
前記比較の結果を出力するステップと、
を実行する比較方法。