特表-17159638IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧
<>
  • 再表WO2017159638-能力付与データ生成装置 図000003
  • 再表WO2017159638-能力付与データ生成装置 図000004
  • 再表WO2017159638-能力付与データ生成装置 図000005
  • 再表WO2017159638-能力付与データ生成装置 図000006
  • 再表WO2017159638-能力付与データ生成装置 図000007
  • 再表WO2017159638-能力付与データ生成装置 図000008
  • 再表WO2017159638-能力付与データ生成装置 図000009
  • 再表WO2017159638-能力付与データ生成装置 図000010
  • 再表WO2017159638-能力付与データ生成装置 図000011
  • 再表WO2017159638-能力付与データ生成装置 図000012
  • 再表WO2017159638-能力付与データ生成装置 図000013
< >
(19)【発行国】日本国特許庁(JP)
【公報種別】再公表特許(A1)
(11)【国際公開番号】WO/0
(43)【国際公開日】2017年9月21日
【発行日】2018年12月20日
(54)【発明の名称】能力付与データ生成装置
(51)【国際特許分類】
   G06N 99/00 20100101AFI20181122BHJP
【FI】
   G06N99/00 150
【審査請求】有
【予備審査請求】未請求
【全頁数】32
【出願番号】特願2018-505926(P2018-505926)
(21)【国際出願番号】PCT/0/0
(22)【国際出願日】2017年3月13日
(31)【優先権主張番号】特願2016-49329(P2016-49329)
(32)【優先日】2016年3月14日
(33)【優先権主張国】JP
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100139066
【弁理士】
【氏名又は名称】伊藤 健太郎
(72)【発明者】
【氏名】安藤 丹一
(57)【要約】
装置に新たな能力を追加するための開発業務を効率化する仕組みを提供する。また、新たな能力を他の装置に簡単に追加できる仕組みを提供する。対象装置は、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャを有する。能力付与データ生成装置は、前記対象装置の前記能力獲得モデルにおける前記能力部に機能を設定するための能力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ入力部に機能を設定するための入力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ出力部に機能を設定するための出力設定データとを含む、能力付与データを生成する。
【特許請求の範囲】
【請求項1】
対象装置に新たな能力を追加するデータである能力付与データを生成する能力付与データ生成装置であって、
前記対象装置は、前記対象装置が備えている基本構成に追加的に新たな能力を組み込むためのアーキテクチャとして、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャを有するものであり、
前記能力付与データ生成装置は、
前記対象装置の前記能力獲得モデルにおける前記能力部に機能を設定するための能力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ入力部に機能を設定するための入力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ出力部に機能を設定するための出力設定データとを含む、能力付与データを生成する能力付与データ生成部を有する
ことを特徴とする能力付与データ生成装置。
【請求項2】
前記能力設定データは、前記対象装置に追加する前記新たな能力を実行する機能を前記能力部に設定するためのデータであり、
前記入力設定データは、前記能力部への入力のインタフェースに関する機能を前記データ入力部に設定するためのデータであり、
前記出力設定データは、前記能力部からの出力のインタフェースに関する機能を前記データ出力部に設定するためのデータである
ことを特徴とする請求項1に記載の能力付与データ生成装置。
【請求項3】
前記能力部への入力のインタフェースに関する機能は、前記対象装置の前記基本構成から前記データ入力部にデータを取り込む機能、前記対象装置以外のデバイスから前記データ入力部にデータを取り込む機能、取り込んだデータに対し加工を施す機能、および、前記能力部に適合するようにデータ形式を変換する機能、のうち少なくとも1つを含む
ことを特徴とする請求項2に記載の能力付与データ生成装置。
【請求項4】
前記能力部への入力のインタフェースに関する機能は、センサから前記データ入力部にセンサデータを取り込む機能を含む
ことを特徴とする請求項3に記載の能力付与データ生成装置。
【請求項5】
前記能力部からの出力のインタフェースに関する機能は、前記能力部から出力されるデータに対し加工を施す機能、前記対象装置の前記基本構成に適合するようにデータ形式を変換する機能、および、前記対象装置以外のデバイスに適合するようにデータ形式を変換する機能、のうち少なくとも1つを含む
ことを特徴とする請求項2〜4のうちいずれか1項に記載の能力付与データ生成装置。
【請求項6】
前記能力付与データは、前記能力付与データに基づいて前記能力部、前記データ入力部、および前記データ出力部それぞれに機能を設定した後、追加された前記新たな能力が正常に動作するかを確認するために用いられる動作確認用データを含む
ことを特徴とする請求項1〜5のうちいずれか1項に記載の能力付与データ生成装置。
【請求項7】
前記動作確認用データは、1つ以上の入力データと、前記入力データを前記データ入力部に入力したときに前記能力部での処理を経て前記データ出力部から出力されるべきデータであるかを判定するための判定情報と、を含み、
前記入力データを前記データ入力部に入力し、前記データ出力部から出力されるデータを前記判定情報を用いて判定することにより、追加された前記新たな能力が正常に動作するかが確認される
ことを特徴とする請求項6に記載の能力付与データ生成装置。
【請求項8】
前記1つ以上の入力データは、画像データを含み、
前記判定情報は、前記画像データの分類情報を含む
ことを特徴とする請求項7に記載の能力付与データ生成装置。
【請求項9】
前記能力付与データは、前記対象装置が備える回路に組み込むデータを含む
ことを特徴とする請求項1〜8のうちいずれか1項に記載の能力付与データ生成装置。
【請求項10】
前記回路は、書き換え可能な電子回路であり、
前記能力付与データは、前記書き換え可能な電子回路に書き込むデータを含む
ことを特徴とする請求項9に記載の能力付与データ生成装置。
【請求項11】
前記能力付与データは、前記対象装置が備えるプロセッサで実行されるプログラムを含む
ことを特徴とする請求項1〜8のうちいずれか1項に記載の能力付与データ生成装置。
【請求項12】
前記新たな能力は、機械学習によって獲得された能力である
ことを特徴とする請求項1〜11のうちいずれか1項に記載の能力付与データ生成装置。
【請求項13】
対象装置に新たな能力を追加するデータである能力付与データを生成する能力付与データ生成方法であって、
前記対象装置は、前記対象装置が備えている基本構成に追加的に新たな能力を組み込むためのアーキテクチャとして、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャを有するものであり、
コンピュータが、前記対象装置の前記能力獲得モデルにおける前記能力部に機能を設定するための能力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ入力部に機能を設定するための入力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ出力部に機能を設定するための出力設定データとを含む、能力付与データを生成するステップを有する
ことを特徴とする能力付与データ生成方法。
【請求項14】
請求項13に記載の能力付与データ生成方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
【請求項15】
対象装置に新たな能力を追加するデータである能力付与データのデータ構造であって、
前記対象装置は、前記対象装置が備えている基本構成に追加的に新たな能力を組み込むためのアーキテクチャとして、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャを有するものであり、
前記能力付与データは、
前記対象装置の前記能力獲得モデルにおける前記能力部に機能を設定するための能力設定データと、
前記対象装置の前記能力獲得モデルにおける前記データ入力部に機能を設定するための入力設定データと、
前記対象装置の前記能力獲得モデルにおける前記データ出力部に機能を設定するための出力設定データと、を含む、
ことを特徴とする能力付与データのデータ構造。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2016年3月14日に出願された日本出願番号2016−049329号に基づくもので、ここにその記載を援用する。
【技術分野】
【0002】
本発明は、機械学習を利用した開発業務を効率化するための仕組みに関し、特に、他の装置に新たな能力を追加するためのデータを生成する技術に関する。
【背景技術】
【0003】
(背景技術)
以前から、人工知能やニューラルネットワークに関する研究は幅広く行われてきた。例えば、画像による対象物の認識技術は、改良が進められて、徐々に認識率が向上してきている。Deep Learningと呼ばれる新たな学習の方式によって、ここ数年で認識率が急速に向上して、画像の分類については人の認識率を超えるレベルになってきている。Deep Learningの技術は、画像の認識のみではなく、音声認識や、個人認証、行動予測、文章の要約、自動翻訳、監視、自動運転、故障予測、センサデータの分析、楽曲のジャンル判定、コンテンツ生成、セキュリティシステムなど幅広い分野に応用することができる。Deep Learningのような機械学習を利用することで、人が関与することなく、機械が新たな能力を獲得することができる。
【0004】
現時点では、Deep LearningなどのAI技術は特殊な技術であり、AI技術を特定分野に適用するためには、特殊なスキルを持つ要員による研究と開発が必要となる。例えば、AI技術を持つ要員が、顧客の依頼ごとに顧客の装置と要望を分析して、学習プランを作成し、トレーニングシステムを構築し、学習により新たなニューラルネットワークを生成し、それを客先のシステムに組み込むためのシステム開発を行っている。Deep LearningなどのAI技術を用いた学習では、大規模なデータが必要となることが多く、さらに繰り返し演算回数が多いために、大規模なトレーニングシステムが必要となる。トレーニングシステムにおいては、AI技術の実装のみでなく、大規模データを扱うしくみや、並列化や演算プログラムのハードウェア化など、従来のWebアプリとは異なる、より複雑なシステムが用いられる。現状では、AI技術を保有するAI技術サービス企業が、AI技術には詳しくない顧客企業に対してコンサルティングとシステム開発の双方を行うケースが多い。
【0005】
装置に新たな能力を実装する方法に関連する技術として、特許文献1、2では、プリンタのファームウェアを書き換える技術が開示されている。また、特許文献3、4には、機械学習に関連する技術が開示され、特許文献5には、Deep Learningを利用した文字識別システムが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−134474号公報
【特許文献2】特開2007−140952号公報
【特許文献3】特開2014−228972号公報
【特許文献4】特許第5816771号公報
【特許文献5】特開2015−53008号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
今後は、装置を開発する企業が自身でAI技術を組み込んだ製品を開発したいというニーズが高まることが予想される。また、使用している装置にAI技術を組込みたいというニーズが高まることが予想される。特に、組込機器においては、このような要望が多い。しかし、機械学習(トレーニング)には、高度なシステムと多くの演算リソースなどが必要となる。このため、一般のメーカの技術者が自身で機械学習を実施するのは容易ではない。そこで、機械学習の外部委託が考えられるが、例えば組込機器の開発者のように、AI技術になじみのない技術者にとっては、外部で実施された機械学習の結果を自身の装置に組み込むことは容易ではない。一方、AI技術者にとっても、組込機器やネットワークサービスなど、特定の製品やサービスに特化したAIプログラムを開発することは容易ではない。また、AI技術者が不足し、開発期間の長期化も懸念される。
【0008】
本発明は上記実情に鑑みなされたものであり、機械学習に関する知識やシステムを持たない者でも、簡単に自身の装置に新たな能力を追加するための仕組みを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記のうち少なくともいずれかの目的を達成するため、本発明は以下の構成を採用する。
【0010】
本発明の第一態様は、対象装置に新たな能力を追加するデータである能力付与データを生成する能力付与データ生成装置であって、前記対象装置は、前記対象装置が備えている基本構成に追加的に新たな能力を組み込むためのアーキテクチャとして、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャを有するものであり、前記能力付与データ生成装置は、前記対象装置の前記能力獲得モデルにおける前記能力部に機能を設定するための能力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ入力部に機能を設定するための入力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ出力部に機能を設定するための出力設定データとを含む、能力付与データを生成する能力付与データ生成部を有することを特徴とする能力付与データ生成装置である。
【0011】
本発明によれば、対象装置が能力獲得モデルに対応するアーキテクチャを有しているという前提のもと、その能力獲得モデルに合わせたデータ構造をもつ能力付与データを提供できるので、対象装置への新たな能力の組み込みが容易になる。よって、対象装置に新たな能力を追加するための開発業務を効率化することができる。
【0012】
前記能力設定データは、前記対象装置に追加する前記新たな能力を実行する機能を前記能力部に設定するためのデータであり、前記入力設定データは、前記能力部への入力のインタフェースに関する機能を前記データ入力部に設定するためのデータであり、前記出力設定データは、前記能力部からの出力のインタフェースに関する機能を前記データ出力部に設定するためのデータであるとよい。
【0013】
前記能力部への入力のインタフェースに関する機能は、前記対象装置の前記基本構成から前記データ入力部にデータを取り込む機能、前記対象装置以外のデバイスから前記データ入力部にデータを取り込む機能、取り込んだデータに対し加工を施す機能、および、前記能力部に適合するようにデータ形式を変換する機能、のうち少なくとも1つを含むとよい。このような機能により、新たな能力を実行するに際し必要なデータを能力部に与えることが可能となる。
【0014】
前記能力部からの出力のインタフェースに関する機能は、前記能力部から出力されるデータに対し加工を施す機能、前記対象装置の前記基本構成に適合するようにデータ形式を変換する機能、および、前記対象装置以外のデバイスに適合するようにデータ形式を変換する機能、のうち少なくとも1つを含むとよい。このような機能により、能力部で実行された新たな能力の結果を所望の形式で出力することが可能となる。
【0015】
前記能力付与データは、前記能力付与データに基づいて前記能力部、前記データ入力部、および前記データ出力部それぞれに機能を設定した後、追加された前記新たな能力が正常に動作するかを確認するために用いられる動作確認用データを含むとよい。これにより、新たな能力の組み込みが成功したかどうかの動作確認を対象装置の側で容易にかつ自動で行うことができ、利便性に優れる。例えば、前記動作確認用データは、1つ以上の入力データと、前記入力データを前記データ入力部に入力したときに前記能力部での処理を経て前記データ出力部から出力されるべきデータであるかを判定するための判定情報と、を含み、前記入力データを前記データ入力部に入力し、前記データ出力部から出力されるデータを前記判定情報を用いて判定することにより、追加された前記新たな能力が正常に動作するかが確認されるとよい。これにより、データ入力部、能力部、データ出力部の一連の動作の確認を行うことができる。
【0016】
前記能力付与データは、前記対象装置が備える回路に組み込むデータ(例えば、対象装置が備える書き換え可能な電子回路に書き込むデータなど)や、前記対象装置が備えるプロセッサで実行されるプログラムなどを含むとよい。このような形式で能力付与データを提供することで、能力付与データを対象装置に追加する作業が容易になる。
【0017】
前記新たな能力は、機械学習によって獲得された能力であるとよい。機械学習には、高度なシステムと多くの演算リソースが必要となるため、対象装置の開発者または保有者自らが機械学習を実施することが難しい場合がある。そのように場合に、本発明に係る能力付与データ生成装置を利用することで、他者が機械学習を代行し、その学習結果を能力付与データの形式で納品する、という利便性の高いサービスが実現できる。
【0018】
なお、本発明は、上記構成ないし機能の少なくとも一部を有する能力付与データ生成装置として捉えることができる。また、本発明は、上記処理の少なくとも一部を含む能力付与データ生成方法、または、かかる方法をコンピュータに実行させるためのプログラム、または、そのようなプログラムを非一時的に記録したコンピュータ読取可能な記録媒体として捉えることもできる。また、本発明は、能力付与データのデータ構造として捉えることもできる。上記構成および処理の各々は技術的な矛盾が生じない限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【0019】
本発明によれば、装置に新たな能力を追加するための開発業務を効率化する仕組みを提供することができる。また本発明によれば、新たな能力を装置に簡単に追加できる仕組みを提供することができる。
【図面の簡単な説明】
【0020】
図1図1は学習サービス提供システムが提供する学習サービスの概念図である。
図2図2は学習サービス提供システムのシステム構成図である。
図3図3は能力獲得モデルの構成図である。
図4図4はDeep Learningによる能力獲得モデルの一例を示す図である。
図5図5はトレーニング情報およびトレーニング受け付け情報のデータ構造の一例を示す図。
図6図6は依頼受付部の構成図である。
図7図7は対象装置の構成図である。
図8図8は能力付与データのデータ構造の一例を示す図である。
図9図9は学習指令部と学習シミュレータの詳細構成図である。
図10図10は学習サービス提供システムの処理フローである。
図11図11は学習依頼情報のデータ構造の一例を示す図である。
【発明を実施するための形態】
【0021】
本発明は、装置に新たな「能力」を追加するための開発業務を効率化するための仕組みに関する。以下に述べる実施形態では、そのような仕組みの好ましい具体例の一つである「学習サービス提供システム」について説明する。
【0022】
<用語の説明>
実施形態の説明に入る前に、本明細書で使用する用語について説明する。
【0023】
「学習サービス」とは、機械学習を代行するサービスである。詳しくは、依頼者(対象装置に新たな能力を付与したいと望む者)からの依頼に基づき、依頼者に代わって対象装置に追加するための新たな能力の機械学習を実施し、機械学習の結果として得られた「能力」を依頼者の対象装置に提供するサービスである。「学習サービス提供システム」は、依頼者からの学習依頼の受け付け、機械学習の実施、依頼者への学習結果の提供など、学習サービスに関わる一連の処理を担うシステムである。
【0024】
「機械学習」は、機械に目標を入力すると、機械が目標を達成するための能力を獲得して、機械自身が新たに獲得した能力を発揮できるようになることである。本明細書では、特に明記がない場合、「学習」は機械学習を意味する。
【0025】
「能力」は、装置が提供しうる機能ないし装置が実行しうる処理である。装置に新たな能力を追加するとは、装置に新しい機能ないし処理を追加すること、または、装置が既に有する機能ないし処理の性能を向上することである。なお、依頼者の「対象装置」は、新たな能力を組み込み可能な構成をもつ装置であれば、いかなる種類の装置でもよい。例えば、製造装置、FAロボット、検査装置、生産管理システム、プラント制御システム、監視システム、ビル制御システム、店舗管理システム、人型ロボット、防災ロボット、Webサービス、モバイル端末、家電装置、業務システム、組込システム、生体情報システム、画像認識装置、音声認識装置、自動運転システム、故障予測システム、データ分析装置、コンテンツ生成装置、セキュリティシステム、金融システム、ウィルス監視装置などさまざまな分野の装置の開発に利用できる。
【0026】
「能力付与データ」は、学習結果として得られた「能力」を依頼者の対象装置に追加するためのデータである。能力付与データは依頼者の対象装置にそのまま組み込み可能(実装可能)なデータ形式をもつデータである。学習結果を適切な形式でデータ化することで、学習サービスの学習結果を依頼者の対象装置へ組み込むことが容易になる。
【0027】
以下に述べる実施形態では、実行形式のプログラムとプログラムの定義とを区別するため、プログラムの定義を「モデル」により記述している。「モデル」は、対象の振る舞いや性質などを一般化・抽象化し、所定の記述言語を用いて表現したものであり、モデルベース開発において用いられるモデルと同じである。任意のプログラムやデータ構造をモデルで定義することができる。また、任意の装置、環境、物理現象などもモデルで定義することができる。モデルベース開発では、モデルによって各構成要素の内部構成と各構成要素間の関係を定義し、複数のモデルを組み合わせた状態をシミュレーションすることができる。また、モデルベース開発ツールを用いることで、モデルから実行形式のプログラムを自動生成できる。
【0028】
モデルにはプログラムの定義のみでなく、実行形式のプログラムを含めることができる。それによって、依頼された学習を学習シミュレータで実行する時の処理を減らすことができる。
【0029】
以下に述べる実施形態において、モデルベース開発ツールでプログラムを開発することで、学習のシミュレーションにおける各部分の関係を明確に定義できる。ただし、システムの実装においてモデルベース開発ツールを用いずに、同様のプログラムを開発することができる。従って、本発明はモデルベース技術で開発したシステムには限定されない。
【0030】
モデルに記述する項目の一部を「パラメータ化」することができる。つまり、項目の値をパラメータ(変数)で定義しておき、学習依頼を受け付ける際に依頼者にパラメータの値を入力または選択させたり、学習実行時にシステム側でパラメータの値を適宜設定することができる。以後、パラメータ化された項目を「パラメトリック項目」または「未定義項目」または単に「パラメータ」と呼び、値や内容が定義されている項目を「定数項目」または「定義済み項目」と呼ぶ。パラメトリック項目はデータ項目に限られない。例えば関数型プログラミング言語を利用することで、処理項目(メソッド項目)もパラメータ化できる。関数型プログラミング言語では、関数の引数として関数を渡すことができる。この機能により、所定のプログラムが別のプログラムの引数として扱われて起動できる。関数の引数に異なる関数(プログラム)のID情報を指定することで、選択可能な処理がパラメータ化される。コード量は増えるが、同様の処理を、一般的なオブジェクト指向言語やC言語で記述することが可能である。
【0031】
「学習モデル」は、対象装置に追加する新たな能力を機械学習によって獲得する方法を定式化したモデルである。学習モデルは、本システムが依頼を受け付け可能な機械学習の種類ごとにそれぞれ作成される。以後の記載では、「学習モデル」の語を単に「機械学習の種類」という意味で用いている文脈もある。
【0032】
「対象装置モデル」は、依頼者の対象装置(新たな能力を追加される装置)のモデルである。本システムは、この対象装置モデルで実行できるようにするための能力付与データを生成し出力する。
【0033】
「対象モデル」は、依頼者の対象装置(新たな能力を追加される装置)が関係を有する対象のモデルである。対象装置が関係を有する対象には、例えば、対象装置の周囲の環境、対象装置との間で入出力を行う他の装置、対象装置が作用を及ぼす対象などが該当する。
【0034】
<システム全体の動作概念>
図1に本実施形態の学習サービス提供システムが提供する学習サービスの概念図を示す。依頼者101は、インターネットなどのネットワークを介して学習サービス提供システム100にアクセスし、対象装置104に追加する能力の機械学習を依頼する。機械学習を行うために必要な情報は、学習依頼情報102として、依頼者101から学習サービス提供システム100に提供される。学習サービス提供システム100は、依頼者101から提供された学習依頼情報102をもとに、依頼者101側の対象装置104および対象105をシミュレートしながら必要な機械学習を行う。学習サービス提供システム100は、依頼者101から依頼された学習が完了したら、学習結果として獲得した新たな能力を、対象装置104に組み込み可能なデータ形式の能力付与データ103として、依頼者101に対し提供する。なお、依頼者101は、パーソナルコンピュータを利用して学習サービス提供システム100にアクセスしてもよいし、対象装置104がインターネットアクセス可能であれば対象装置104から学習サービス提供システム100に直接アクセスしてもよい。
【0035】
<システムの構成>
図2に学習サービス提供システムのシステム構成図を示す。学習サービス提供システム100は、依頼受付部200、学習指令部202、学習シミュレータ203、能力付与データ生成部204、サービス提供部205を有する。
【0036】
本システム100は、例えば、プロセッサ、メモリ、記憶装置(ハードディスク、半導体ディスクなど)、入力装置(キーボード、マウス、タッチパネルなど)、表示装置、通信装置などのハードウェア資源を有する汎用のコンピュータにより構成することができる。図2に示す本システム100の機能は、記憶装置に格納されたプログラムがメモリにロードされ、プロセッサにより実行されることにより、実現されるものである。なお、本システム100は、一台のコンピュータにより構成してもよいし、複数台のコンピュータによる分散コンピューティングにより構成してもよい。また、処理の高速化のため、本システム100の機能の一部または全部を専用のハードウェア(例えばGPUやFPGA、ASICなど)を用いて実現することも可能である。
【0037】
本実施形態では、本発明に係る能力付与データ生成装置の一具体例として、図2の学習サービス提供システム100を示したが、能力付与データ生成装置の構成はこれに限られない。例えば、学習依頼の受け付けを他のシステムで行ったり、人が行う場合には、依頼受付部200の機能は必要ない。また、能力付与データの依頼者への提供を他のシステムで行ったり、人が行う場合には、サービス提供部205の機能は必要ない。また、対象装置104に追加する能力の獲得方法が機械学習以外の方法の場合には、学習指令部202および学習シミュレータ203の機能も必要ない。
【0038】
(能力の獲得)
さまざまな種類の対象装置104に対し本学習サービスを提供するにあたり、対象装置104に新たな能力を組み込むためのアーキテクチャを共通化しておく必要がある。そこで本実施形態では、対象装置104に新たな能力を組み込むためのアーキテクチャをモデル化し、これを「能力獲得モデル」と呼ぶ。対象装置104が能力獲得モデルに従った組み込みインタフェースを用意し、本システム100の学習シミュレータ203が能力獲得モデルに整合する能力を獲得するように機械学習を行うことで、本システム100で生成した能力付与データ103の対象装置104への組み込みが可能となる。
【0039】
能力獲得モデルを定義することによって、共通させるべきアーキテクチャに関する情報がモデルデータとしてデータ化される。データ化された能力獲得モデルに関する情報は、それぞれの学習モデルにおいて学習シミュレータ203と対象装置104の間で論理的な整合をとるために用いられる。データ化されることで、各種の開発ツールを用いた、プログラムや回路の自動生成や自動テストを行うことが可能となる。
【0040】
あらかじめ準備されていた能力獲得モデルが対象装置104に適合しない場合に、学習依頼者101があらかじめ準備されていた能力獲得モデルの一部または全てを変更して新たな能力獲得モデルを作成してもよい。能力獲得モデルをシステムモデリング言語で記述して、ファイルに格納して学習サービス提供システム100に提供する学習依頼情報102に含めることによって、任意の対象装置104について、学習依頼を行うことが可能となる。
【0041】
それぞれの能力獲得モデルに対して能力獲得モデルを相互に識別する識別情報(例えば、能力獲得モデルIDや能力獲得モデル名)を付与することで、識別情報を使って学習シミュレータ203と対象装置104の間で能力獲得モデルを特定して論理的に整合させることができる。
【0042】
能力獲得モデルを用いることで、学習を依頼する依頼者101と依頼を受ける者(サービス提供者)との間で、必要以上の技術情報をやりとりすることなく、それぞれの開発を進めることができる。
【0043】
能力獲得モデルの情報を公開することで、公開された特定の能力獲得モデルに対応する対象装置104である製品の普及が促進される。また、公開された特定の能力獲得モデルに対応する学習モデルが複数のベンダーから提供されることが可能となり、競争による学習レベルの向上が期待できる。
【0044】
図3に能力獲得モデルの構成を示す。本実施形態の能力獲得モデル500は、能力を実行する構成である能力部502と、能力部502の入力のインタフェースであるデータ入力部501と、能力部502の出力のインタフェースであるデータ出力部503の3つの定義を含む。データ入力部501は、対象装置104やその他の機器から所定の仕様でデータを受け取り、必要なデータ処理を施し、能力部502に適合するようにデータ形式を変換して入力する。データ入力部501は、対象装置104などから受け取るデータの仕様、データ処理の仕様、能力部502に入力するデータの仕様などの、対象装置104やその他の機器から能力部502にデータを入力する仕様の定義を含む。能力部502は、データ入力部501から入力されたデータに基づき情報処理を実施し、その結果をデータ出力部503に出力する。この能力部502の内部の構成を変えることで、能力獲得モデル500の能力を変更することができる。データ出力部503は、能力部502から結果を受け取り、必要なデータ処理を施し、対象装置104やその他の機器に適合するようにデータ形式を変換して出力する。データ出力部503は、能力部502から出力されるデータの仕様、データ処理の仕様、対象装置104などへ所定のインタフェース仕様で出力するデータの仕様などの、能力部502から対象装置104やその他の機器にデータを出力する仕様の定義を含む。
【0045】
能力獲得モデル500を用いることで、学習シミュレータ203と対象装置104において、データ入力部501と能力部502とデータ出力部503は、実装方法が異なっても、論理的に同じ動作を行うことが保証される。また、能力獲得モデルを用いることで、学習依頼者と学習受託者の間で、必要以上の情報をやりとりすることなく、学習を依頼することができる。
【0046】
なお、本システム100の学習シミュレータ203側では、能力獲得モデル500を新たな能力獲得のための学習シミュレーションに利用するため、以後の説明では、システム100側の能力部502を「能力獲得部」とも称する(図9の能力獲得部1004を参照)。一方、対象装置104側では、システム100で獲得された新たな能力を受容し実行するために能力獲得モデル500を利用するため、対象装置104側の能力部502を「能力受容部」とも称する(図7の能力受容部904を参照)。また、以後の説明において、学習シミュレータ203側の能力獲得モデルと対象装置104側の能力獲得モデルを区別するために、図7および図9に示される符号を用いる。
【0047】
学習シミュレータ203で獲得した能力を対象装置104に付与できるようにするために、能力獲得モデル500は、少なくともデータ入力部501と能力部502の間のインタフェース仕様と、能力部502とデータ出力部503の間のインタフェース仕様と、対象装置104の能力受容部904の構成を特定するための情報とを含むとよい。例えば、獲得する能力が「画像の分類」の場合は、対象装置104と能力獲得モデルの関係がシンプルなので、それだけで学習シミュレータ203と対象装置104を整合させることができる。具体的には、入力が画像データで、出力が分類結果であることが定義されていればよい。
【0048】
能力獲得モデル500は、さらに以下のような詳細な情報を含むようにできる。
【0049】
学習シミュレータ203に実装された能力獲得部1004に入力されるデータと対象装置104の能力受容部904に入力されるデータは同等である必要がある。能力獲得モデル500のデータ入力部501は、対象装置104の基本構成902からデータ入力部903に対するデータ入力のインタフェース仕様を定義する情報を含むようにできる。データ入力部501には任意のロジックを組み込むようにできる。
【0050】
学習にDeep Learningを用いる場合、能力受容部904は学習モデルで使用される深層ニューラルネットワークとなるので、能力獲得モデル500は、受容可能なネットワークの構成を特定する情報を含む必要がある。構成を特定する情報は受容可能なネットワークを一意に定めるものでもよいし、複数の選択可能な範囲を示すようにしてもよい。他の学習方法の場合は、能力を獲得する回路やソフトウェアなど学習ロジックを特定するための情報を含むようにする。それによって、学習シミュレータ203の能力獲得部1004と対象装置104の能力受容部904の論理的な構成が一致することが担保される。一方で、学習シミュレータ203の能力獲得部1004と対象装置104の能力受容部904の実装方法が、例えばハードウェア実装とソフトウェア実装のように相違していてもよい。例えば、対象装置104の能力受容部904がソフトウェア実装であるときに、学習シミュレータ203側では、学習時間を短くするためにハードウェアで能力獲得部1004のニューラルネットワークを構成することができる。
【0051】
学習シミュレータ203に実装された能力獲得部1004からデータ出力部1005を介して出力されるデータと対象装置104の能力受容部904からデータ出力部905を介して出力されるデータは同等である必要がある。そのために、能力獲得モデル500のデータ出力部503は、データ出力部905から対象装置104の基本構成902に対するデータ出力のインタフェース仕様を定義する情報を含むようにできる。
【0052】
能力獲得モデル500と対象装置104の基本構成902との間で入出力のインタフェース仕様を定義することで、学習シミュレータ203において基本構成902のモデル1006を用いたシミュレーションを行うことが可能になる。例えば、獲得した能力が対象装置104の基本構成902を制御するような場合に、上記のような詳細な情報が必要になる。
【0053】
能力獲得モデル500が学習シミュレータ203における実装や、対象装置104における実装の内容である回路情報や実行形式のプログラムを含むようにしてもよい。逆に、最小限のインタフェース仕様のみを定義するようにしてもよい。最小限のインタフェース仕様のみを定義することで、能力獲得モデル500を定義するファイルのサイズを小さくすることができる。インタフェース仕様と実装されるロジックの定義を含むようにして、学習シミュレータ203と対象装置104のそれぞれに対してモデルから自動生成するようにしてもよい。自動生成することで、学習モデルの開発効率を向上させることが可能となり、モデル情報を用いた厳密な仕様チェックを機械的に行うことが可能となる。
【0054】
能力獲得モデル500は、それぞれの学習モデルにおいて学習シミュレータ203と対象装置104の間で矛盾なく定義されていればよい。学習シミュレータ203と対象装置104における能力獲得モデル500に相当する部分の実装は、それぞれ異なるものであってよい。
【0055】
能力獲得モデル500は、例えばオブジェクト指向プログラミング言語の抽象クラスあるいはインタフェースを定義するクラス相当の言語機能によって定義できる。さらに実装クラスを加えるようできる。あるいは、システムモデリング言語で、インタフェース仕様として定義できる。システムモデリング言語で、実装されるロジックを含むようにも定義できる。あるいは、ハードウェア記述言語のインタフェース仕様として定義できる。ハードウェア記述言語で、実装されるロジックを含むようにも定義できる。それぞれ、インタフェース仕様のみ定義するようにしてもよいし、データ入力部501、能力部502、データ出力部503に対応して実装されるロジックの定義を含むようにしてもよい。
【0056】
学習シミュレータ203におけるデータ入力部1003とデータ出力部1005は、対象装置104におけるデータ入力部903とデータ出力部905から入出力されるデータと同等のデータを、学習用データとして能力獲得部1004に入出力するような動作を行う。対象装置104と同等のデータが能力獲得部1004に入力されればよいので、学習シミュレータ203におけるデータ入力部1003、データ出力部1005と、対象装置104におけるデータ入力部903、データ出力部905は必ずしも同じ構成である必要はない。学習に用いるデータの形式や出力データの形式が、対象装置104内で扱われるデータ形式と異なるような場合は、学習シミュレータ203におけるデータ入力部1003およびデータ出力部1005と、能力獲得部1004との間のインタフェースが一致するように変換すればよい。学習シミュレータ203と対象装置104の間で能力獲得モデルを整合させることで、学習時の能力獲得部1004と対象装置104の能力受容部904が同等の能力を実行できること、および、それぞれに同等のデータが入出力されることが担保される。また、能力付与データ103により、対象装置104へ新たな能力を組み込むことが容易に実現できる。能力獲得モデルが整合されていれば、学習シミュレータ203の能力獲得部1004と対象装置104の能力受容部904が異なる実装形態(例えば、ハードウェア実装とソフトウェア実装、あるいは使用するプログラミング言語の相違)となっている場合も、能力付与データ103による能力付与が可能となる。
【0057】
能力部502が発揮する能力(情報処理を実現するためのプログラムや各種パラメータなど)は機械学習によって生成される。機械学習は例えばDeep Learningの技術を用いて実施できる(以下の実施形態では、主にDeep Learningを用いた実施方法を想定している。)。ただし、学習方法はDeep Learningに限られない。
【0058】
例えば、モータ制御の学習において、以下のような方法により新たな能力を獲得できる。あらかじめ複数の制御ロジックの構成要素を用意する。トレーニングでいくつかの構成要素をランダムに選択して、接続する。接続したモデルで遺伝アルゴリズムにより、結果を最適化する。所定の範囲で上記を繰り返して、最もよいものを選択する。
【0059】
例えば、文字列の分類学習において、以下のような方法により新たな能力を獲得できる。人が分類した多数のサンプルを準備する。さまざまな文字列関数を用意する。文字列関数をランダムに選択して、複数の文字列関数を組み合わせる。文字列関数のパラメータを遺伝アルゴリズムにより最適化する。所定の範囲で上記を繰り返して、最もよいものを選択する。
【0060】
例えば、プログラムの機械コードを部分ごとにランダムに生成して、入力に対する出力が最良となるものを選択することで、新たな能力を獲得できる。目的ごとにプログラムの分割を適切に選択しておくことで、学習速度を向上させることができる。
【0061】
AI技術者は、受け付ける依頼ごとに、効率がよい能力獲得モデルとそのトレーニング方法を選んで、学習依頼を受け付けられるようにする。Deep Learningにおける学習方法として様々な手法が知られている。AI技術者は応用する対象ごとに、より少ない処理で学習が終了するような手法を選択する。
【0062】
(Deep Learningの例)
図4にDeep Learningによる能力獲得モデルの一例を示す。データ入力部501は、対象装置104に入力される信号形式をニューラルネットワークに適合するように変換してデータ化した信号を入力する機能ブロックである。データ入力部501には、対象装置104から受け取るデータの仕様として「動画像、RGB、解像度1024×768、30fps」、能力部502に入力するデータの仕様として「静止画像、グレースケール、解像度640×480」などが定義されている。色情報が不要な場合は、グレースケールに変換することで、学習時間が短縮され、能力部502の回路構成が簡単になる。これはデータ形式の変換を行う場合の例であり、色情報が必要な場合はRGBのカラー信号をそのまま入力するようにもできる。能力部502は、Deep Learning技術を用いたトレーニングによって学習済みのニューラルネットワークにより、入力データから目的とする結果を出力する機能ブロックである。能力部502は、任意の数で任意サイズの各層の入出力が全て接続されたニューラルネットワークのサブセットとしてモデル化できる。能力部502のモデルには、必要に応じて、フィードバック回路や演算回路、論理回路、記憶回路、同期回路、遅延回路、リセット回路などの付加回路を追加できる。能力部502は、例えば、AIの種類、層数、各層の構造、活性化関数、重みフィルタなどの定義を含む。学習を行うときは、学習モデルで定義された構成で、順次ニューラルネットワークを構成して、パラメータを最適化する。データ出力部503は、ニューラルネットワークの出力を、対象装置104や他の機器で利用できる情報へ変換し出力する機能ブロックである。データ出力部503には、能力部502から出力されるデータの仕様、とそれを対象装置104が必要とするデータ形式に変換して最終的に出力するデータの仕様などが定義されている。
【0063】
(トレーニング情報304)
図5にトレーニング情報のデータ構造の一例を示す。トレーニング情報304は、機械学習の実施に必要な情報を定義するものであり、学習モデル情報700、対象装置モデル情報701、対象モデル情報702、学習シミュレータモデル情報703、能力付与データ生成モデル情報704を含む。以下、それぞれの情報700〜704について説明する。
【0064】
(1)学習モデル情報700
学習モデル情報700は学習モデルに関する情報である。学習モデルは、対象装置104に追加する新たな能力を機械学習によって獲得する方法を定式化したモデルである。学習モデルは、扱う対象装置104や対象105ごとに、それぞれ作成される。ただし、振る舞いが類似する装置104や対象105については、同じ学習モデルを適用することもできる。
【0065】
学習モデルは、以下の情報を含むとよい。
【0066】
・「学習の目標」:学習の目標を構成する項目の一部あるいは全部をパラメータ化し、学習目標の条件を指定可能な項目として定義することができる。学習目標の項目としては、例えば、能力部502の出力結果の精度や誤差、評価式による評価結果、学習の繰り返し計算の回数、出力の安定性など、どのようなものでもよい。
【0067】
・「能力部の入力に関する定義」:能力部502に入力するデータを対象装置104またはその他の外部機器からどのように入力するかを定義する。例えば、対象装置104から2種類のセンサデータが入力され、能力部502にはそれらの平均データを与える場合であれば、2種類のセンサデータの仕様、平均データを求めるための処理方法、能力部に与えるデータの仕様などを定義する。取り扱うデータには、例えば、画像、音声、自然言語、センサデータなどさまざまな種類のデータがあるが、データの種類や仕様が異なれば、それぞれ異なるモデルが定義される。
【0068】
・「能力部の構成に関する定義」:能力部502の内部構成を定義する。例えばDeep Learningのニューラルネットワークを用いる場合であれば、層数、各層の構造(畳み込み層、プーリング層、全接続層、ノード)、活性化関数、フィルタなどを定義する。対応可能な構成を複数定義し(例えば、層数の範囲、層構造のバリエーションなど)、それらの範囲内で選択可能にしてもよい。
【0069】
・「能力部の出力に関する定義」:能力部502から出力するデータを対象装置104またはその他の外部機器へどのような情報として出力するかを定義する。例えば、能力部502が予測確率(実数値)を出力する場合に、確率が閾値より大きいか否かの2値の判定結果を対象装置104に出力するのであれば、予測確率のデータの仕様、判定結果のデータの仕様、閾値の仕様などを定義する。
【0070】
・「能力部をトレーニングする方法」:能力部502の機械学習に使用する方法、具体的には機械学習を実施するトレーニングプログラムを定義する。AI技術者が、あらかじめトレーニングプログラムを作成しておくことで、依頼時には自動的にトレーニングを実行できる。例えば、Deep Learningのトレーニングプログラムは、ニューラルネットワークの入出力の構成と、ニューラルネットワークの各層の構成と、学習用データなどを指定して作成される。Deep Learningのトレーニングプログラムは、学習用データを順次入力して、ニューラルネットワークの各層でのパラメータを最適化することにより、新たな能力を獲得させるものである。トレーニングプログラムは、モデルとして定義することもできる。トレーニングにおいて選択可能な項目をパラメータ化することで、少ないモデルで多くのバリエーションに対応することができる。本実施形態では、依頼者101に提示する学習モデルごとに、上記トレーニングプログラムをモデルとして定義する。
【0071】
以上述べた学習モデルは、モデル記述言語を用いて記述できる。モデル記述言語を用いて学習モデルを記述した場合は、モデル記述言語からシミュレータで実行可能なプログラムに自動変換することができる。モデル記述言語を用いずに、学習モデルをシミュレータで実行可能なプログラムで記述してもよい。
【0072】
学習モデルには、モデルベースで記述できる任意の方法を適用できる。例えば、Deep LearningをはじめとしたAI技術をサポートするプログラムがいくつか提供されるようになっている。学習モデルは、それらを利用して構築することもできる。より高度化、高速化するモデルを作成してもよい。トレーニング情報に学習モデルに関する情報を含めることで、学習シミュレータによって新たな能力が獲得できる。
【0073】
学習サービス提供システム100は、それぞれの学習モデルごとに、それぞれ能力獲得モデル500で定義された共通のアーキテクチャで学習シミュレーションを行うことで、能力付与データ103を用いて対象装置104に学習によって獲得した能力を組み込むことを可能としている。
【0074】
(2)対象装置モデル情報701
対象装置モデル情報701は対象装置104のモデルに関する情報である。対象装置モデルを用いることで、依頼者101の対象装置104(実機)を用いなくても、コンピュータシミュレーションにより対象装置104の動作や入出力をシステム100側で模擬することができる。
【0075】
対象装置モデルは、以下の情報を含むとよい。
【0076】
・「能力部(能力受容部)の構成」:対象装置104が有する能力受容部904のハードウェア構成を定義する情報である。例えば、FPGA(Field−Programmable Gate Array)の型式を指定してもよいし、ゲート数を指定してもよい。あるいは、ソフトウェア実装の場合はCPU(Central Processing Unit)やGPU(Graphics Processing Unit)の型式と追加利用可能な記憶容量で指定してもよい。クラウドサービスを利用する場合、クラウドの種類、CPU種別、CPU数やクロック数、使用する記憶容量で指定してもよい。これらの例に限らず、回路構成の定義はどのような方法で指定してもよい。
【0077】
・「能力獲得モデルのインタフェース仕様」:対象装置104が有するデータ入力部903、能力受容部904、データ出力部905の間の接続方法を定義する。例えば、FPGAの場合、各入出力端子の信号に関する定義が含まれる。ソフトウェア実装の場合は、能力受容部904のソフトウェアインタフェースの定義が含まれる。クラウドサービスを利用する場合、能力を利用するための通信方法の定義が含まれる。能力獲得モデルのインタフェースとしては、モデルとして定義できる任意のインタフェースが利用できる。
【0078】
対象装置104のデータ入力部903、能力受容部904、データ出力部905は、それぞれハードウェアまたはソフトウェアによって実装される。対象装置104のデータ入力部903、能力受容部904、データ出力部905は、それぞれ能力獲得モデル500のデータ入力部501、能力部502、データ出力部503で定義された仕様に合わせて構成される。
【0079】
それぞれの学習モデルにおいて、対象装置104の能力獲得モデル901と学習シミュレータ203の能力獲得モデル1002の間で、インタフェース仕様を整合させる必要がある。学習モデルの能力獲得モデル500で定義されるデータ入力部501、能力部502、データ出力部503のインタフェース仕様は、対象装置104のデータ入力部903、能力受容部904、データ出力部905と整合させるように定義する。能力獲得モデルを整合させることによって、学習シミュレータ203で獲得した能力を能力付与データ103に変換して、対象装置104に組み込むことが可能になる。
【0080】
・「装置の基本構成のモデル」:対象装置104がもともと備えている基本構成902(能力獲得モデル500に対応する構成以外の構成部分)を定義する情報である。能力獲得モデル500に対応する構成901は、対象装置104の基本構成902との間で信号やデータの入出力を行うため、学習シミュレーションを行う際に対象装置104の基本構成902の仕様が必要となる。基本構成のモデルには、例えば、対象装置104の基本構成902と能力獲得モデル901により実現される新たな能力とのあいだのインタフェースの定義が含まれる。具体的には、基本構成902からデータ入力部903に入力される入力信号の定義、データ出力部905から基本構成902に出力される出力信号の定義、それぞれの信号が対象装置104の中でどのように扱われるかの定義などである。
【0081】
新たな能力は、学習モデルで定義される学習方法によって能力獲得モデルの能力部に獲得される。新たな能力の入力信号と出力信号は、依頼内容に応じてそれぞれ異なることがあるし、学習経緯に応じて異なることもある。例えば、入力として選択するセンサの種類や、出力結果としての分類の数などが異なることがある。能力設定部900によって能力受容部904に組み込まれる新たな能力は、データ入力部903およびデータ出力部905の機能と合わさって新たな能力を発揮する。能力付与データ103は、対象装置ごとの入力信号と出力信号に応じて、データ入力部903、能力受容部904およびデータ出力部905が基本構成902と接続されるような情報として生成される。
【0082】
対象装置モデルは、対象装置104のインタフェースのみを記述するだけでもよい。対象装置モデルは、トレーニングを開始する前に依頼者101やDBから取得できた情報をもとに生成できる。
【0083】
(3)対象モデル情報702
対象モデル情報702は、対象装置104が関係を有する対象105のモデルに関する情報である。対象モデルを用いることで、対象装置104に影響を与える可能性のある対象105を考慮したシミュレーションすることが可能になる。ここで、対象装置104に影響を与える可能性のある対象105とは、例えば、対象装置104の外側にある他の装置や対象装置104の周囲環境などである。
【0084】
対象モデルは、対象105と対象装置104のインタフェースのみを記述するだけでもよい。対象モデルは、トレーニングを開始する前に依頼者101やDBから取得できた情報をもとに生成できる。
【0085】
(4)学習シミュレータモデル情報703
学習シミュレータモデルは、本システム100での学習に用いるシミュレータの構成を定義するモデルである。本実施形態では、学習モデル、対象装置モデル、対象モデルを組み合わせて学習シミュレータが構成される(詳しくは後述する)。
【0086】
(5)能力付与データ生成モデル情報704
能力付与データ生成モデルは、本システム100における学習結果を基に、対象装置104の回路に組み込むための「能力付与データ」103を生成する方法などを定義するモデルである。具体的には、学習結果を能力付与データ103に変換する変換プログラムを、能力付与データ生成モデルとして準備しておけばよい。
【0087】
例えば、FPGAで実装する場合は、ニューロ回路と入力インタフェース回路と出力インタフェース回路を構成できるようにする。ソフトウェアで実装する場合は、ニューロ回路をエミュレーションするソフトウェアと、学習結果として得られた各パラメータを設定するプログラムを準備する。能力付与データ103を用いて、獲得した能力を実装するための回路を部品化して、対象装置104の受け入れスロットに当該部品を物理的に挿入するようにしてもよい。
【0088】
能力付与データ生成モデル情報704は、依頼者からのそれぞれの依頼に応じて能力部に獲得されたそれぞれの能力を、それぞれの対象装置104に適合させるモデルとして作成される。能力受容部904は、依頼内容ごとまたは対象装置ごとに異なる構成となる。そのため、能力付与データ生成モデル情報704は、それぞれの依頼内容または対象装置ごとの構成に対応するように作成される。一つの能力付与データ生成モデル情報704が、複数の依頼内容と複数の能力受容部904の構成に対応できるように作成してもよい。能力付与データ生成モデル情報704では、対象装置104および対象装置の種類をパラメータとして作成できる。
【0089】
能力付与データ生成モデル情報704を用いることで、能力付与データを生成するプログラムのオブジェクトコードを自動生成するようにすることもできる。あるいは、能力付与データ生成モデル情報704に含まれる定義に応じて、プログラマがプログラミング言語を用いてオブジェクトコードを作成してもよい。能力付与データを生成するプログラムのオブジェクトコードを実行することで、学習シミュレータに含まれる能力獲得モデル500の能力部に獲得された能力が、入力部501および出力部502の構成とともに、外部にある対象装置104に配布可能な能力付与データに変換される。
【0090】
能力獲得モデルの定義情報を用いて、能力付与データ生成モデル情報704の一部または全てを自動生成するようにしてもよい。学習モデルに含まれる能力獲得モデルの定義情報を用いて能力付与データ生成モデル情報704の一部または全てを自動生成するようにもできる。例えば、カメラ画像を用いて撮影された対象を分類する能力を獲得する場合、能力獲得モデルに含まれる画像の入力仕様と、ニューラルネットワークの構成と、分類出力の仕様に関する情報を用いることで、能力付与データを生成する能力付与データ生成モデル情報704を機械的に生成することができる。それによって、能力付与データ生成モデル情報704を作成する作業の効率が向上する。
【0091】
以上述べたトレーニング情報304に含まれるそれぞれの情報は、AI技術者によってあらかじめ値が定義されている定数項目と、値が未定義の状態であるパラメトリック項目とを含む。パラメトリック項目については、学習依頼を受け付ける際に依頼者101に情報の入力を求める。依頼者101の入力負担を軽減し、学習依頼を簡単化するために、パラメトリック項目はできるだけ少ないことが好ましい。したがって、例えば、学習シミュレータモデル情報703や能力付与データ生成モデル情報704はあらかじめ定義しておくとよい。また、学習モデル情報700、対象装置モデル情報701、対象モデル情報702についても、基本的な項目についてはあらかじめ定義しておき、依頼者101に入力させる項目は、能力部502の構成と入出力、学習目標など、できるだけ少ない項目に限定することが好ましい。
【0092】
(依頼受付部200)
図6を用いて依頼受付部200の構成について説明する。依頼受付部200は、依頼者101の依頼端末805からインターネットを介して学習依頼情報102を受け付ける機能を有する。依頼受付部200は、例えば、依頼受付アプリケーション801が動作するWebサーバ800、依頼情報DB802、対象装置情報DB803、対象情報DB804などから構成される。
【0093】
依頼受付アプリケーション801は、学習依頼に必要な情報を入力するための対話型ユーザインタフェースを依頼端末805に表示し、依頼者101によって入力された情報を取得する機能を提供するプログラムである。依頼情報DB802は、受け付けた学習依頼情報102を格納するデータベースである。対象装置情報DB803は、対象装置モデル情報701など、依頼者101の対象装置104に関する情報を格納するデータベースであり、対象情報DB804は、対象モデル情報702など、対象105に関する情報を格納するデータベースである。
【0094】
依頼受付部200は、トレーニング情報DB302に登録されている複数の学習モデルの中から希望する学習モデルを選択するための学習メニューを依頼者101に提示する。依頼者101によって希望する学習モデルが指定されると、依頼受付部200は、指定された学習モデル(機械学習の種類)に対応するトレーニング情報304を用いて、機械学習の実施に必要な情報を受け付け、学習依頼情報102を生成する。要入力項目には、例えば、入力データの種類や仕様、学習の目標、出力データの種類や仕様、対象装置または対象装置モデルを特定する情報、対象または対象モデルを特定する情報などがある。
【0095】
依頼受付部200は、学習依頼情報102を依頼情報DB802に登録する。学習依頼情報102には、選択された学習モデルに対応するトレーニング情報304を特定する情報、依頼者101により入力された情報(例えば、パラメトリック項目の値)などが含まれる。依頼受付部200は、学習依頼情報102の登録完了を学習指令部202に通知する。
【0096】
なお、依頼受付部200は、システム記述言語などを用いて学習に必要な情報を記述した依頼ファイルを依頼端末805から受け取ることもできる。例えば依頼者101が希望する学習モデルが学習メニューの中に無い場合、依頼者101は希望する学習内容を記述した依頼ファイルを作成し、学習依頼を行うことができる。依頼ファイルによる学習依頼を受け付けた場合には、AI技術者が依頼ファイルに基づき新たな学習モデルを作成して、学習メニューに追加する。
【0097】
(対象装置104)
依頼者101は、能力を付与する対象となる対象装置104を指定して、学習を依頼する。能力獲得モデル500に従った新たな能力の追加が可能な装置であれば、どのような装置も対象装置104になり得る。一例を挙げると、静止画像を分類する画像分類装置、センサデータにより監視を行う監視装置、動画像を用いて対象の動きを予測する予測システム、Webサービスシステム、運転装置などを例示できる。
【0098】
図7に対象装置の構成を模式的に示す。対象装置104は、概略、能力設定部900と、能力獲得モデル500に対応する構成901と、対象装置104にもともと備わっている基本構成902とを有する。能力獲得モデル500に対応する構成901は、データ入力部903、能力受容部904、データ出力部905から構成される。能力設定部900は、本システム100から提供される能力付与データ103を用いて、能力受容部904が新たな能力を発揮できるように能力獲得モデル500に対応する構成901を設定する機能である。
【0099】
能力獲得モデル500に対応する構成901は、機能を変更可能なハードウェアにより構成される。例えば、FPGAのプログラムを書き換える構成でもよい。また、CPUやGPUのようなプロセッサで実行するプログラムを変更したり、プログラムで使用するパラメータを変更したりする構成でもよい。例えば、ニューラルネットワークのエミュレーションを行うプログラムに対し、パラメータを変更することで、ニューラルネットワークの機能を変更できる。あるいは、部品の一部や接続する装置を交換することで機能を変更する構成でもよい。
【0100】
図8に示すように、能力付与データ103は、例えば、能力設定データ1030と入力設定データ1031と出力設定データ1032とを含むデータ構造を有する。能力設定データ1030は、学習により獲得された新たな能力(例えば、ニューラルネットワークによる画像の分類能力)を実行する機能を、能力受容部904に対し設定するためのデータである。入力設定データ1031は、能力受容部904へのデータ入力のインタフェースに関する機能を、データ入力部903に対し設定するためのデータである。データ入力のインタフェースに関する機能には、例えば、対象装置104の基本構成902から必要なデータをデータ入力部903に取り込む機能、対象装置104以外のデバイス(例えばセンサなど)から必要なデータをデータ入力部903に取り込む機能、取り込んだデータに対し必要な加工(例えば、平均化、統合、サンプリング、ノイズ除去、特徴量抽出、二値化、色変換、解像度変換など)を施す機能、能力受容部904に適合するようにデータ形式を変換する機能などがあり、これらのうち少なくとも1つの機能の設定を入力設定データ1031として与えるとよい。また、出力設定データ1032は、能力受容部904からのデータ出力のインタフェースに関する機能を、データ出力部905に対し設定するためのデータである。データ出力のインタフェースに関する機能には、例えば、能力受容部904から出力されるデータに対し必要な加工(例えば、平均化、統合、サンプリング、ノイズ除去、特徴量抽出、二値化、色変換、解像度変換など)を施す機能、対象装置104の基本構成902に適合するようにデータ形式を変換する機能などがあり、これらのうち少なくとも1つの機能の設定を出力設定データ1032として与えるとよい。能力設定データ1030、入力設定データ1031、出力設定データ1032は、プログラムそのものでもよいし、プログラムで使用するパラメータでもよいし、プログラムとパラメータの両方でもよい。能力設定部900が、能力付与データ103により与えられた各設定データにより能力獲得モデル500に対応する構成901の設定を行うことで、データ入力部903、能力受容部904、およびデータ出力905が新たな能力に対応する情報処理を実行可能となる。
【0101】
能力付与データ103は、必要に応じて、動作確認用データ1033を含むことができる。動作確認用データ1033は、データ入力部903、能力受容部904、およびデータ出力905に設定した新たな能力が正常に動作するかどうかを確認するために使用するデータである。新たな能力を設定するためのデータ1030〜1031と動作確認用データ1033をセットで提供することで、依頼者自身があるいは対象装置104自身が新たな能力の組み込みが成功したかどうかの動作確認を容易に行うことができ、利便性に優れる。
【0102】
動作確認用データ1033は、1つ以上の入力データと、その入力データをデータ入力部903に入力したときに能力受容部904での処理を経てデータ出力部905から出力されるべきデータ(正解の出力データ)であるかを判定するための判定情報と、を含む。例えば、能力受容部904に追加される機能が静止画像の分類能力である場合、動作確認用データ1033は、入力データとして1つ以上の静止画像データを含み、判定情報として各静止画像データの正しい分類を含むとよい。また、能力受容部904に追加される機能が製品の画像検査能力である場合、動作確認用データ1033は、入力データとして良品の画像データと不良品の画像データを含み、判定情報として各画像データの正しい検査結果(良品か不良品か)を含むとよい。また、能力受容部904に追加される機能が音声の話者識別能力である場合、動作確認用データ1033は、入力データとして1つ以上の音声データを含み、判定情報として各音声データの話者の情報を含むとよい。
【0103】
能力付与データ103に動作確認用データ1033が含まれている場合、能力設定部900は、各設定データ1030〜1032を対象装置104の構成901に設定した後、動作確認用データ1033内の入力データをデータ入力部903に入力する。そして、能力設定部900は、データ出力部905から出力されるデータを動作確認用データ1033内の判定情報を用いて判定し、正解の出力が得られているか確認する。これにより、データ入力部、能力部、データ出力部の一連の動作の確認を行うことができる。正解の出力が得られている場合、対象装置104に対する新たな能力の追加は成功である。一方、データ出力部905から出力されるデータが正解の出力と異なっていた場合は、能力付与データ103に不具合があったか、対象装置104の構成901への設定に不具合があるかのいずれかとみなすことができる。この場合、能力設定部900は、能力付与データ103を用いて再設定を試みるか、学習サービス提供システム100に対して不具合通知を行うとよい。これにより、動作確認や不具合対応を自動で行うことができ、利便性に優れる。
【0104】
設定済みのデータ入力部903は、対象装置104の基本構成902からデータを取得し、必要な加工を行い、能力受容部904に適合するようにデータ形式を変換してデータを入力する。入力データとしては、例えば、カメラデータ、センサデータ、イベントデータが入力される。自然言語処理では、入力データとして、多数のテキストファイルが入力される。
【0105】
設定済みのデータ出力部905は、能力受容部904から出力されるデータに必要な加工を行い、対象装置104の基本構成902に適合するようにデータ形式を変換してデータを出力する。例えば、能力受容部904に組み込まれたニューラルネットワークの出力が、データ出力部905に入力され、データ出力部905から基本構成902にデータが出力される。
【0106】
能力受容部904について、具体例を挙げてさらに詳しく説明する。能力受容部904は、例えば、外部から入力された能力付与データ103にもとづいて、ニューラルネットワークを構成することで、新たな能力を受容する。能力受容部904と能力付与データ103は例えば以下のように実現できる。
【0107】
・書き換え可能なFPGA。この場合、例えば、FPGAに書き込むニューラルネットワークの回路とパラメータのデータを能力付与データとする。
・能力をCPUのプログラムとして実装する。この場合、例えば、ニューラルネットワーク回路の動作を演算する実行形式のCPUプログラムを能力付与データとする。
・能力をGPUのプログラムとして実装する。この場合、例えば、ニューラルネットワーク回路の動作を演算する実行形式のGPUプログラムを能力付与データとする。
・能力を部品として追加する。この場合、例えば、書き換え可能なFPGAにニューラルネットワークを書き込んだものを、能力付与データを含む部品とする。
・能力をクラウドサービスとして利用する。この場合、例えば、上記のいずれかを組み込んだネットワークサービスの利用プログラムを能力付与データとする。
・対象装置以外の装置が外部で提供する能力を利用する。この場合、上記のいずれかを組み込んだ装置を利用するためのプログラムを能力付与データとする。
・能力を装置として追加する。この場合、例えば、上記のいずれかを組み込んだ装置を利用するプログラムを能力付与データとする。
【0108】
(対象装置モデル)
対象装置104がいかなる種類の装置であっても、図7に示すように、能力獲得モデル500に対応する構成901と、対象装置104にもともと備わっている基本構成902との組み合わせでモデル化することができる。基本構成902に対応する基本構成モデルと能力獲得モデル500を組み合わせると、新たな能力を獲得した後の対象装置104のモデルとなる。この対象装置モデルと、対象装置104の外部にある対象105をモデル化した対象モデルとを用いれば、コンピュータ上で、対象装置104の動作をシミュレーションすることができる。基本構成モデルは、必ずしも対象装置104が備える全ての構成をモデル化する必要はない。少なくとも、能力獲得モデル500と相互に影響する部分の構成が基本構成モデルにより定義されていればよい。
【0109】
この実施例では、対象装置104が1つの能力獲得モデルを含む構成について示したが、複数の能力獲得モデルを含む構成にしてもよい。複数の能力獲得モデルを備えることで、複数の項目について能力を獲得することが可能になる。以上の実施例では、対象装置104と学習サービス提供システム100が異なる装置として実施された例を示したが、対象装置104が学習サービス提供システム100の一部または全部を含む構成とすることができる。それによって、対象装置104は自己学習能力を備えた製品となる。例えば、学習能力を備えた本発明による人型ロボットが、人から学習依頼を受けて学習を行って、自分と同じ構成の自分以外の他のロボットに能力付与データを与えるようにできる。
【0110】
本システム100のサービスは、対象装置モデルおよび対象モデルが提供されれば、どのような種類の対象装置104にも対応することができる。なお、これらのモデルは依頼者101自身が作成し提供してもよいし、依頼者101以外の者が作成し提供してもよい。例えば、依頼者101に部品や製品を提供する業者がモデルを提供してもよいし、本システム100のサービス提供者がモデルを提供してもよい。また、対象装置モデルや対象モデルが既に本システム100の対象装置情報DB803や対象情報DB804に登録されているときは、依頼者101はそれらのDBに登録されているモデルを利用することもできる。その場合、学習依頼を受け付ける際に、対象装置104を特定する情報(装置の型式など)または対象装置モデルを特定する情報(モデルIDなど)の入力を依頼者101に求めればよい。対象モデルについても同様である。
【0111】
(学習シミュレータ203)
図9に学習指令部202と学習シミュレータ203の詳細構成を示す。
【0112】
学習シミュレータ203は、対象装置104の基本構成モデル1006と能力獲得モデル1002と対象モデル1007を用いて、対象装置104の動作をシミュレートしながら対象装置104に追加する新たな能力の機械学習を実施する。能力獲得モデル1002は、データ入力部1003、能力部(能力獲得部)1004、データ出力部1005を有する。
【0113】
能力獲得部1004は、依頼者101の対象装置104に組み込まれて能力を遂行する部分をシミュレートする。学習を行うとき、能力獲得部1004の回路構成は、適宜変更することができる。能力獲得部1004は、例えばDeep Learningのニューラルネットワークで実現できる。ニューラルネットワークの層数や各層の構成については、学習モデル情報700に基づき設定される。
【0114】
データ入力部1003は、能力獲得モデル1002の外部からデータを受け取り、必要な処理を行った後、能力獲得部1004にデータを入力する、という動作をシミュレートする。データ入力部1003は、対象装置104の基本構成902からデータを受け取ることもできるし、対象装置104の外部からデータを受け取ることもできる。対象装置104の外部からデータを受け取る形態としては、例えば、対象装置104に接続されたセンサからセンサデータを取得する形態、データベースからデータを取得する形態、ネットワークを通じてデータストリームを受信する形態などが想定される。
【0115】
データ出力部1005は、能力獲得部1004からデータを受け取り、必要な処理を行った後、能力獲得モデル1002の外部にデータを出力する、という動作をシミュレートする。データ出力部1005は、例えば、能力獲得部1004のニューラルネットワークの出力を、対象装置104の基本構成902あるいは対象装置104の外部の装置が必要とするデータ形式に変換する。
【0116】
基本構成モデル1006は、対象装置104の基本構成902の動作をシミュレートする。能力獲得部1004が対象装置104の基本構成902と相互に影響する場合、データ入力部1003は基本構成モデル1006から必要なデータを取得し、データ出力部1005は能力獲得部1004の出力を基本構成モデル1006へ引き渡す。
【0117】
対象モデル1007は、対象装置104の外部の対象105をシミュレートする。例えば、対象モデル1007は、対象装置104が接続される他の装置、対象装置104の周囲の環境(物理現象を含む)、対象装置104が取り扱う器具、対象装置104が生産・加工する物体、対象装置104を操作するオペレータなどをシミュレートする。
【0118】
学習シミュレータ203は、例えば、インターネット上に設置されるクラウドサーバ群により構成してもよいし、ローカルエリアネットワーク上に存在するプライベートサーバ群により構成してもよい。シミュレーション処理を高速化するため、組込シミュレータのような専用システムを用いてもよい。ソフトウェア処理の一部をハードウェアに置き換えた構成としてもよい。学習モデルごとに、例えばデータ量が多い依頼や、階層数が多い構成、学習にリアルタイム性が求められる構成など、シミュレーションを実施する装置として最適なものを選択するようにできる。
【0119】
シミュレーションは、例えば、多数のCPUによる分散処理を利用する方法、GPUと呼ばれる高速演算装置を利用する方法などで高速化できる。またFPGAなどでニューロ回路を構成することで、並列動作が行われ、シミュレーションを高速化することができる。このような高速化の方法を学習シミュレータモデルに含めることができる。
【0120】
シミュレータを実機(依頼者101の対象装置104)に接続した構成にすることができる。例えば、依頼者101の対象装置104をシミュレータ(シミュレータを実行するコンピュータ)に接続してもよい。あるいは依頼者101の対象装置104が有する回路(CPU、GPU、FPGAなど)でシミュレーションを実行するようにできる。IoTの技術を適用することで、リアルタイムのビッグデータを扱うことが可能になる。この技術を利用し、依頼者101の対象装置104に関する各種データをインターネットを介してリアルタイムにシミュレータに送り、そのデータを用いてシミュレーションを行うこともできる。あるいは、シミュレータが対象装置104のモデルに相当する機能を備えるようにしてもよい。
【0121】
サービスを提供する装置をシミュレータとして利用してもよい。例えば、自然言語処理によるWebサービスの場合、クラウド上のサーバ資源を使って、Webサービスと学習サービスの双方を実施することができる。
【0122】
(学習指令部202)
学習指令部202は、トレーニングの設定および制御を担う処理部であり、図9に示すように、トレーニング設定部1000とトレーニング制御部1001を有する。トレーニング設定部1000は、依頼者101から受け付けた学習依頼情報102および対応するトレーニング情報304に基づいて、学習シミュレータ203に対しトレーニングに必要な設定を行う。トレーニング制御部1001は、学習シミュレータ203を制御してトレーニングを実施し、対象装置104に追加する能力を開発(学習により生成)する。
【0123】
具体的には、トレーニング設定部1000は、学習モデル情報700に基づき、学習の目標、データ入力部1003およびデータ出力部1005の入出力データの仕様や処理内容、能力獲得部1004の内部構成、トレーニングプログラムなどを設定する。また、トレーニング設定部1000は、対象装置モデル情報701に基づき、対象装置104の基本構成モデル1006、能力獲得モデル1002との間の入出力などを設定し、さらに、対象モデル情報702に基づき、対象モデル1007を設定する。
【0124】
(能力付与データ生成部204)
能力付与データ生成部204は、学習シミュレータ203の学習結果(トレーニングによって獲得した能力)を、対象装置104の能力受容部904に組み込むためのデータ(能力付与データ103)に変換する。学習結果から能力付与データ103を生成する変換プログラムは、あらかじめ能力付与データ生成モデル情報704により与えられる。この変換プログラムにより、対象装置104が有するハードウェア構成(例えば、FPGA、CPU、GPUなどの回路構成)に適合する能力付与データ103(例えば、プログラム、プログラムで使用するパラメータ)が生成される。能力付与データ103は前述のように能力設定データ、入力設定データ、出力設定データを含むとよい。
【0125】
(サービス提供部205)
サービス提供部205は、能力付与データ生成部204によって生成された能力付与データ103を依頼者101に提供する。提供方法はいかなる方法でもよい。例えば、サービス提供部205は、電子的手段(例えば、電子メール、FTP、ファイルサーバからのダウンロードなど)を利用して能力付与データ103を依頼者101に送信してもよい。また、サービス提供部205は、能力付与データ103をDVD−ROMのような記録媒体に記録し、依頼者101に送付してもよい。また、サービス提供部205は、ネットワークを介して、能力付与データ103を依頼者101の対象装置104に直接送信してもよい。能力付与データ103は、対象装置104で実行可能なプログラムとして提供されてもよいし、クラウド上で実行されるプログラムやクラウドから提供されるサービスとして提供されてもよい。また、能力付与データ103を複数の装置を組み合わせたIoTサービスの形態で提供してもよい。また、能力付与データ103を半導体部品に組み込んだり、対象装置104に組み込み可能な部品に実装してもよい。あるいは、サービスマンが依頼者101のところに出向き、対象装置104に能力付与データ103を実装してもよい。また、対象装置104を依頼者101から預かり、能力付与データ103を組み込んだ後、対象装置104を返却してもよい。
【0126】
(システムの動作)
図10に学習サービス提供システム100における学習依頼の受け付けから能力付与データの提供までの処理フローを示す。
【0127】
依頼者101がインターネットを介して本システム100にアクセスし新規の学習依頼を申し込むと、依頼受付部200が学習依頼の受け付けを開始する(ステップS1200)。依頼受付部200は、依頼入力画面を依頼者101の端末805に提示し、希望する学習モデルおよび学習に必要な情報を依頼者101に入力させる(ステップS1201)。学習依頼情報の入力が完了すると(ステップS1202のYES)、依頼受付部200が学習依頼情報102を依頼情報DB802に登録し、学習指令部202に新規の学習依頼を受け付けた旨を通知する(ステップS1203)。
【0128】
図11に学習依頼情報102のデータ構造の一例を示す。学習依頼情報102は、学習目標情報1300と学習モデル識別情報1301と学習モデルパラメータ1302を含む。学習目標情報1300は、依頼者101により指定された学習目標に関する情報を含む。学習モデル識別情報1301は、依頼者101により指定された学習モデルに対応するトレーニング情報304を特定する情報(例えば、トレーニング情報DB302におけるトレーニング情報304のIDなど)を含む。学習モデルパラメータ1302は、学習モデルの各パラメトリック項目について依頼者101により入力された情報を含む。
【0129】
次に、学習指令部202は、学習依頼情報102に従って学習シミュレータ203に対し学習モデル、対象装置モデル、対象モデルなどの設定を行い(ステップS1204)、学習シミュレータ203を制御してトレーニングを実施する(ステップS1205)。例えば、Deep Learningなどのニューラルネットワークの場合であれば、複数の層のそれぞれについて段階的にパラメータを変えながら出力を評価し、学習目標との適合度が高くなるようにパラメータの最適化を行う。学習目標に対する適合度があらかじめ設定された完了条件を満足したら(ステップS1206のYES)、学習指令部202はトレーニングを終了する。
【0130】
次に、能力付与データ生成部204は、学習シミュレータ203の学習結果(トレーニングによって獲得した能力)に基づき能力付与データ103を生成する(ステップS2107)。最後に、サービス提供部205が、能力付与データ103を依頼者101に提供する(ステップS1208)。
【0131】
<本システムの利点>
依頼者101にとっては次のような利点がある。まず、このシステム100を利用すれば、依頼者101自身は機械学習を実施する必要がないので、対象装置104に新たな能力を追加するための開発業務を効率化することができる。また、依頼者101は機械学習に必要な情報を与えるだけでよいので、機械学習に関する知識やシステムをもたない者でも本システム100の利用が容易である。また、学習結果が能力付与データ103(新たな能力を対象装置104に追加するデータ)で提供されるので、依頼者101は、機械学習により獲得された新たな能力を自身の装置104に簡単に追加することができる。
【0132】
一方、サービス提供者にとっては次のような利点がある。機械学習を行うために必要な情報は依頼者101から提供されるので、依頼どおりの機械学習の実行が担保できる。また、依頼者101からの依頼の受け付け、機械学習の実施などの処理を可及的に自動化・省力化できる。さらに学習結果を能力付与データ103に変換し依頼者101に提供するので、学習結果の提供および対象装置104への実装についても可及的に自動化・省力化することができる。
【0133】
また、機械学習の過程で対象装置モデルや対象モデルを用いたシミュレーションを行うことにより、対象装置104の実機がなくても、対象装置104や対象105の振る舞いや影響などを考慮した機械学習を行うことができる。対象装置104の実機が不要となれば、機械学習の代行がきわめて実現容易となる。特に、生産設備のように大型の装置や稼働中の装置の場合、実機を機械学習に利用することは現実的でない。本学習サービスはそのようなケースでも利用可能であり、適用の自由度および利便性に優れる。
【0134】
また、対象装置104が能力獲得モデル500に対応するアーキテクチャを有しているという前提のもと、その能力獲得モデル500に合わせたデータ構造をもつ能力付与データ103を提供できるので、対象装置104への新たな能力の組み込みが容易になる。よって、対象装置104に新たな能力を追加するための開発業務を効率化することができる。
【0135】
なお、上述した実施形態の構成は本発明の一具体例を示したものにすぎず、本発明の範囲を限定する趣旨のものではない。本発明はその技術思想を逸脱しない範囲において、種々の具体的構成を採り得るものである。例えば上記実施形態で示したシステム構成、データ構造、ユーザインタフェース、パラメータ等は一例であり、機械学習の種類、学習の目的、獲得したい能力、対象装置の構成等に応じて適宜変更することができる。また、上記実施形態では、対象装置104に追加する新たな能力を機械学習によって獲得する例を示したが、能力の獲得方法は機械学習に限られない。例えば、有限要素法を用いた三次元構造シミュレーション、流体シミュレーション、最適化問題などで獲得される能力でもよいし、人が開発した能力でもよい。
【0136】
(付記1)
少なくとも1つのメモリと、前記メモリと接続された少なくとも1つのハードウェアプロセッサとを備え、対象装置に新たな能力を追加するデータである能力付与データを生成する能力付与データ生成装置であって、
前記対象装置は、前記対象装置が備えている基本構成に追加的に新たな能力を組み込むためのアーキテクチャとして、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャを有するものであり、
前記ハードウェアプロセッサが、前記対象装置の前記能力獲得モデルにおける前記能力部に機能を設定するための能力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ入力部に機能を設定するための入力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ出力部に機能を設定するための出力設定データとを含む、能力付与データを生成する、
能力付与データ生成装置。
【0137】
(付記2)
少なくとも1つのメモリと、前記メモリと接続された少なくとも1つのハードウェアプロセッサとを備えるコンピュータとによって、対象装置に新たな能力を追加するデータである能力付与データを生成する能力付与データ生成方法であって、
前記対象装置は、前記対象装置が備えている基本構成に追加的に新たな能力を組み込むためのアーキテクチャとして、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャを有するものであり、
前記コンピュータが、前記対象装置の前記能力獲得モデルにおける前記能力部に機能を設定するための能力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ入力部に機能を設定するための入力設定データと、前記対象装置の前記能力獲得モデルにおける前記データ出力部に機能を設定するための出力設定データとを含む、能力付与データを生成するステップを実行する、
能力付与データ生成方法。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
【国際調査報告】