JPWO2017159614A1 - 学習サービス提供装置 - Google Patents
学習サービス提供装置 Download PDFInfo
- Publication number
- JPWO2017159614A1 JPWO2017159614A1 JP2018505914A JP2018505914A JPWO2017159614A1 JP WO2017159614 A1 JPWO2017159614 A1 JP WO2017159614A1 JP 2018505914 A JP2018505914 A JP 2018505914A JP 2018505914 A JP2018505914 A JP 2018505914A JP WO2017159614 A1 JPWO2017159614 A1 JP WO2017159614A1
- Authority
- JP
- Japan
- Prior art keywords
- learning
- capability
- ability
- model
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000010801 machine learning Methods 0.000 claims abstract description 97
- 238000012549 training Methods 0.000 claims description 85
- 238000000034 method Methods 0.000 claims description 60
- 230000008569 process Effects 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000011161 development Methods 0.000 abstract description 15
- 230000007246 mechanism Effects 0.000 abstract description 9
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 41
- 238000013528 artificial neural network Methods 0.000 description 30
- 238000012545 processing Methods 0.000 description 29
- 238000013135 deep learning Methods 0.000 description 28
- 238000004088 simulation Methods 0.000 description 19
- 238000005516 engineering process Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 230000018109 developmental process Effects 0.000 description 14
- 230000008901 benefit Effects 0.000 description 8
- 230000005856 abnormality Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000005094 computer simulation Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000012806 monitoring device Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000002068 genetic effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/40—Software arrangements specially adapted for pattern recognition, e.g. user interfaces or toolboxes therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/945—User interactive design; Environments; Toolboxes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
- G06V10/443—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
- G06V10/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Neurology (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
装置に新たな能力を追加するための開発業務を効率化する仕組みを提供する。また、機械学習に関する知識やシステムをもたない者でも、機械学習により獲得された新たな能力を自身の装置に簡単に追加できる仕組みを提供する。依頼受付部が、対象装置に追加する能力の機械学習を行うために必要な情報を、学習依頼情報として、依頼者から受け付ける。学習シミュレータが、前記依頼者から受け付けた前記学習依頼情報にしたがって機械学習を行う。能力付与データ生成部が、前記学習シミュレータによる学習結果に基づいて、前記学習結果として獲得された新たな能力を前記対象装置に追加するデータである能力付与データを生成する。サービス提供部が、前記能力付与データを前記依頼者に提供する。
Description
本出願は、2016年3月14日に出願された日本出願番号2016−049236号に基づくもので、ここにその記載を援用する。
本発明は、機械学習を利用した開発業務を効率化するための仕組みに関する。
(背景技術)
以前から、人工知能やニューラルネットワークに関する研究は幅広く行われてきた。例えば、画像による対象物の認識技術は、改良が進められて、徐々に認識率が向上してきている。Deep Learningと呼ばれる新たな学習の方式によって、ここ数年で認識率が急速に向上して、画像の分類については人の認識率を超えるレベルになってきている。Deep Learningの技術は、画像の認識のみではなく、音声認識や、個人認証、行動予測、文章の要約、自動翻訳、監視、自動運転、故障予測、センサデータの分析、楽曲のジャンル判定、コンテンツ生成、セキュリティシステムなど幅広い分野に応用することができる。Deep Learningのような機械学習を利用することで、人が関与することなく、機械が新たな能力を獲得することができる。
以前から、人工知能やニューラルネットワークに関する研究は幅広く行われてきた。例えば、画像による対象物の認識技術は、改良が進められて、徐々に認識率が向上してきている。Deep Learningと呼ばれる新たな学習の方式によって、ここ数年で認識率が急速に向上して、画像の分類については人の認識率を超えるレベルになってきている。Deep Learningの技術は、画像の認識のみではなく、音声認識や、個人認証、行動予測、文章の要約、自動翻訳、監視、自動運転、故障予測、センサデータの分析、楽曲のジャンル判定、コンテンツ生成、セキュリティシステムなど幅広い分野に応用することができる。Deep Learningのような機械学習を利用することで、人が関与することなく、機械が新たな能力を獲得することができる。
現時点では、Deep LearningなどのAI技術は特殊な技術であり、AI技術を特定分野に適用するためには、特殊なスキルを持つ要員による研究と開発が必要となる。例えば、AI技術を持つ要員が、顧客の依頼ごとに顧客の装置と要望を分析して、学習プランを作成し、トレーニングシステムを構築し、学習により新たなニューラルネットワークを生成し、それを客先のシステムに組み込むためのシステム開発を行っている。Deep LearningなどのAI技術を用いた学習では、大規模なデータが必要となることが多く、さらに繰り返し演算回数が多いために、大規模なトレーニングシステムが必要となる。トレーニングシステムにおいては、AI技術の実装のみでなく、大規模データを扱うしくみや、並列化や演算プログラムのハードウェア化など、従来のWebアプリとは異なる、より複雑なシステムが用いられる。現状では、AI技術を保有するAI技術サービス企業が、AI技術には詳しくない顧客企業に対してコンサルティングとシステム開発の双方を行うケースが多い。
装置に新たな能力を実装する方法に関連する技術として、特許文献1、2では、プリンタのファームウェアを書き換える技術が開示されている。また、特許文献3、4には、機械学習に関連する技術が開示され、特許文献5には、Deep Learningを利用した文字識別システムが開示されている。
今後は、装置を開発する企業が自身でAI技術を組み込んだ製品を開発したいというニーズが高まることが予想される。特に、組込機器においては、このような要望が多い。しかし、機械学習(トレーニング)には、高度なシステムと、それをメンテナンスできる要員が必要となる。このため、一般のメーカの技術者が自身で機械学習を実施するのは容易ではない。
本発明は上記実情に鑑みなされたものであり、機械学習に関する知識やシステムを持たない者でも、簡単に自身の装置に新たな能力を追加するための仕組みを提供することを目的とする。
上記のうち少なくともいずれかの目的を達成するため、本発明は以下の構成を採用する。
本発明の第一態様は、対象装置に追加する能力の機械学習を行うために必要な情報を、学習依頼情報として、依頼者から受け付ける、依頼受付部と、前記依頼者から受け付けた前記学習依頼情報にしたがって機械学習を行う、学習シミュレータと、前記学習シミュレータによる学習結果に基づいて、前記学習結果として獲得された新たな能力を前記対象装置に追加するデータである能力付与データを生成する、能力付与データ生成部と、前記能力付与データを前記依頼者に提供するサービス提供部と、を有することを特徴とする学習サービス提供装置である。
対象装置の開発者(依頼者)にとっては次のような利点がある。まず、この学習サービス提供装置を利用すれば、依頼者自身は機械学習を実施する必要がないので、対象装置に新たな能力を追加するための開発業務を効率化することができる。また、依頼者は機械学習に必要な情報を与えるだけでよいので、機械学習に関する知識やシステムをもたない者でも学習サービス提供装置の利用が容易である。また、学習結果が能力付与データ(新たな能力を対象装置に追加するデータ)で提供されるので、依頼者は、機械学習により獲得された新たな能力を自身の装置に簡単に追加することができる。
一方、機械学習を実施する者(サービス提供者)にとっては次のような利点がある。機械学習を行うために必要な情報は依頼者から提供されるので、依頼どおりの機械学習の実行が担保できる。また、依頼者からの依頼の受け付け、機械学習の実施などの処理を可及的に自動化・省力化できる。さらに学習結果を能力付与データに変換し依頼者に提供するので、学習結果の提供および対象装置への実装についても可及的に自動化・省力化することができる。
前記対象装置は、前記対象装置に新たな能力を組み込むためのアーキテクチャを有しており、前記学習シミュレータは、前記対象装置が有する前記アーキテクチャに整合する能力を獲得するように前記機械学習を行うとよい。対象装置があらかじめこのようなアーキテクチャを有することで、新たな能力の組み込みが容易となる。また、学習シミュレータが対象装置のアーキテクチャに整合するように機械学習を実施することで、機械学習の結果として獲得された能力を対象装置に組み込むことが容易となる。
前記アーキテクチャは、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャであり、前記学習シミュレータは、前記対象装置の能力獲得モデルと整合する能力獲得モデルを用いて前記機械学習を行うとよい。このように対象装置と学習シミュレータの間の能力獲得モデルを整合させることによって、対象装置の能力部と学習シミュレータの能力部が同等の能力を実行できること、および、それぞれの能力部に同等のデータが入出力されることが担保される。また、学習シミュレータで獲得した能力の対象装置への組み込みが容易に実現できる。このとき、能力付与データは、対象装置の能力獲得モデルにおける能力部、データ入力部、およびデータ出力部のそれぞれに機能を設定するデータであるとよい。前記学習受付部は、前記依頼者から、前記対象装置の能力獲得モデルを特定する情報を受け付けるとよい。
前記学習シミュレータは、前記機械学習の過程において、前記対象装置の動作をシミュレーションするとよい。このとき、前記学習シミュレータは、前記機械学習の過程において、前記対象装置をモデル化した対象装置モデルを用いて前記対象装置の動作をシミュレーションするとよい。また、前記学習シミュレータは、前記機械学習の過程において、前記対象装置が関係を有する対象をモデル化した対象モデルをさらに用いて前記対象装置の動作をシミュレーションするとよい。対象装置モデルや対象モデルを用いることにより、対象装置の実機がなくても、対象装置や対象の振る舞いや影響などを考慮した機械学習を行うことができる。対象装置の実機が不要となれば、機械学習の代行がきわめて実現容易となる。特に、生産設備のように大型の装置や稼働中の装置の場合、実機を機械学習に利用することは現実的でない。本発明の学習サービスはそのようなケースでも利用可能であり、適用の自由度および利便性に優れる。前記学習受付部は、前記依頼者から、前記対象装置または前記対象装置モデルを特定する情報を受け付けるとよい。また、前記学習受付部は、前記依頼者から、前記対象または前記対象モデルを特定する情報を受け付けるとよい。
依頼を受け付け可能な機械学習の種類ごとに、機械学習を行うために必要な情報が記述されたトレーニング情報をあらかじめ記憶するトレーニング情報データベースをさらに有し、前記依頼受付部は、依頼する機械学習の種類を前記依頼者に指定させ、前記指定された機械学習の種類に対応する前記トレーニング情報を用いて前記学習依頼情報を生成するとよい。この構成によれば、装置の開発者(依頼者)が自身の装置に追加したい能力の学習依頼を機械学習を実施する者(サービス提供者)に対し簡単に依頼することができる。また、サービス提供者にとっても、機械学習を行うために必要な情報を漏れなく取得できるという利点がある。
前記トレーニング情報のうちの一部の項目が、パラメータで定義されたパラメトリック項目であり、前記依頼受付部は、前記パラメトリック項目について前記依頼者から情報の入力を求めるとよい。依頼者が指定可能なパラメータを用意しておくことで、依頼者の希望に応じた機械学習を行うことができる。なお、依頼者が入力しなければならない項目が増えると依頼手続きが困難になるというデメリットがある。したがって、パラメトリック項目はトレーニング情報のうちの一部の項目に限定するとよい。
前記依頼受付部は、前記パラメトリック項目について複数の選択肢を前記依頼者に提示し、前記複数の選択肢のなかから前記依頼者に入力する情報を選択させるとよい。これにより、依頼者の入力負担を軽減することができる。
前記サービス提供部は、前記能力付与データを電子的手段により前記依頼者に提供するとよい。電子的手段は、例えば、電子メール、FTP、ファイルサーバからのダウンロードなどである。このような電子的手段を利用することで、能力付与データの提供を可及的に自動化・省力化することができる。
前記能力付与データは、前記対象装置が備える回路に組み込むデータ(例えば、対象装置が備えるFPGAに書き込むデータなど)や、前記対象装置が備えるプロセッサで実行されるプログラムなどを含むとよい。このような形式で能力付与データを提供することで、依頼者が能力付与データを対象装置に追加する作業が容易になる。
なお、本発明は、上記構成ないし機能の少なくとも一部を有する学習サービス提供装置として捉えることができる。学習サービス提供装置は、単体の装置で構成してもよいし、複数の装置の組み合わせで構成してもよい。また、本発明は、上記処理の少なくとも一部を含む学習サービス提供方法、または、かかる方法をコンピュータに実行させるためのプログラム、または、そのようなプログラムを非一時的に記録したコンピュータ読取可能な記録媒体として捉えることもできる。上記構成および処理の各々は技術的な矛盾が生じない限り互いに組み合わせて本発明を構成することができる。
本発明によれば、装置に新たな能力を獲得させるための開発業務を効率化する仕組みを提供することができる。また本発明によれば、機械学習に関する知識やシステムをもたない者でも、機械学習により獲得された新たな能力を自身の装置に簡単に実装できる仕組みを提供することができる。また本発明によれば、装置の開発者(依頼者)が自身の装置に獲得させたい能力の学習依頼を機械学習を実施する者(サービス提供者)に対し簡単に依頼することができる仕組みを提供することができる。また本発明によれば、機械学習を実施する者(サービス提供者)が装置の開発者(依頼者)からの依頼の受け付け、機械学習の実施、依頼者への学習結果の提供を可及的に自動化・省力化できる仕組みを提供することができる。
本発明は、装置に新たな「能力」を追加するための開発業務を効率化するための学習サービス提供装置に関する。以下に述べる実施形態では、学習サービス提供装置の好ましい具体例の一つである「学習サービス提供システム」について説明する。
<用語の説明>
実施形態の説明に入る前に、本明細書で使用する用語について説明する。
実施形態の説明に入る前に、本明細書で使用する用語について説明する。
「学習サービス」とは、機械学習を代行するサービスである。詳しくは、依頼者(対象装置に新たな能力を付与したいと望む者)からの依頼に基づき、依頼者に代わって対象装置に追加するための新たな能力の機械学習を実施し、機械学習の結果として得られた「能力」を依頼者の対象装置に提供するサービスである。「学習サービス提供システム」は、依頼者からの学習依頼の受け付け、機械学習の実施、依頼者への学習結果の提供など、学習サービスに関わる一連の処理を担うシステムである。
「機械学習」は、機械に目標を入力すると、機械が目標を達成するための能力を獲得して、機械自身が新たに獲得した能力を発揮できるようになることである。本明細書では、特に明記がない場合、「学習」は機械学習を意味する。
「能力」は、装置が提供しうる機能ないし装置が実行しうる処理である。装置に新たな能力を追加するとは、装置に新しい機能ないし処理を追加すること、または、装置が既に有する機能ないし処理の性能を向上することである。なお、依頼者の「対象装置」は、新たな能力を組み込み可能な構成をもつ装置であれば、いかなる種類の装置でもよい。例えば、製造装置、FAロボット、検査装置、生産管理システム、プラント制御システム、監視システム、ビル制御システム、店舗管理システム、人型ロボット、防災ロボット、Webサービス、モバイル端末、家電装置、業務システム、組込システム、生体情報システム、画像認識装置、音声認識装置、自動運転システム、故障予測システム、データ分析装置、コンテンツ生成装置、セキュリティシステム、金融システム、ウィルス監視装置などさまざまな分野の装置の開発に利用できる。
「能力付与データ」は、学習結果として得られた「能力」を依頼者の対象装置に追加するためのデータである。能力付与データは依頼者の対象装置にそのまま組み込み可能(実装可能)なデータ形式をもつデータである。学習結果を適切な形式でデータ化することで、学習サービスの学習結果を依頼者の対象装置へ組み込むことが容易になる。
以下に述べる実施形態では、実行形式のプログラムとプログラムの定義とを区別するため、プログラムの定義を「モデル」により記述している。「モデル」は、対象の振る舞いや性質などを一般化・抽象化し、所定の記述言語を用いて表現したものであり、モデルベース開発において用いられるモデルと同じである。任意のプログラムやデータ構造をモデルで定義することができる。また、任意の装置、環境、物理現象などもモデルで定義することができる。モデルベース開発では、モデルによって各構成要素の内部構成と各構成要素間の関係を定義し、複数のモデルを組み合わせた状態をシミュレーションすることができる。また、モデルベース開発ツールを用いることで、モデルから実行形式のプログラムや回路を自動生成できる。
モデルにはプログラムの定義のみでなく、実行形式のプログラムを含めることができる。それによって、依頼された学習を学習シミュレータで実行する時の処理を減らすことができる。
以下に述べる実施形態において、モデルベース開発ツールでプログラムを開発することで、学習のシミュレーションにおける各部分の関係を明確に定義できる。ただし、システムの実装においてモデルベース開発ツールを用いずに、同様のプログラムを開発することができる。従って、本発明はモデルベース技術で開発したシステムには限定されない。
モデルに記述する項目の一部を「パラメータ化」することができる。つまり、項目の値をパラメータ(変数)で定義しておき、学習依頼を受け付ける際に依頼者にパラメータの値を入力または選択させたり、学習実行時にシステム側でパラメータの値を適宜設定することができる。以後、パラメータ化された項目を「パラメトリック項目」または「未定義項目」または単に「パラメータ」と呼び、値や内容が定義されている項目を「定数項目」または「定義済み項目」と呼ぶ。パラメトリック項目はデータ項目に限られない。例えば関数型プログラミング言語を利用することで、処理項目(メソッド項目)もパラメータ化できる。関数型プログラミング言語では、関数の引数として関数を渡すことができる。この機能により、所定のプログラムが別のプログラムの引数として扱われて起動できる。関数の引数に異なる関数(プログラム)のID情報を指定することで、選択可能な処理がパラメータ化される。コード量は増えるが、同様の処理を、一般的なオブジェクト指向言語やC言語で記述することが可能である。
「学習モデル」は、対象装置に追加する新たな能力を機械学習によって獲得する方法を定式化したモデルである。学習モデルは、本システムが依頼を受け付け可能な機械学習の種類ごとにそれぞれ作成される。以後の記載では、「学習モデル」の語を単に「機械学習の種類」という意味で用いている文脈もある。
「対象装置モデル」は、依頼者の対象装置(新たな能力を追加される装置)のモデルである。本システムは、この対象装置モデルで実行できるようにするための能力付与データを生成し出力する。
「対象モデル」は、依頼者の対象装置(新たな能力を追加される装置)が関係を有する対象のモデルである。対象装置が関係を有する対象には、例えば、対象装置の周囲の環境、対象装置との間で入出力を行う他の装置、対象装置が作用を及ぼす対象などが該当する。
<システム全体の動作概念>
図1に本実施形態の学習サービス提供システムが提供する学習サービスの概念図を示す。依頼者101は、インターネットなどのネットワークを介して学習サービス提供システム100にアクセスし、対象装置104に追加する能力の機械学習を依頼する。機械学習を行うために必要な情報は、学習依頼情報102として、依頼者101から学習サービス提供システム100に提供される。学習サービス提供システム100は、依頼者101から提供された学習依頼情報102をもとに、依頼者101側の対象装置104および対象105をシミュレートしながら必要な機械学習を行う。学習サービス提供システム100は、依頼者101から依頼された学習が完了したら、学習結果として獲得した新たな能力を、対象装置104に組み込み可能なデータ形式の能力付与データ103として、依頼者101に対し提供する。なお、依頼者101は、パーソナルコンピュータを利用して学習サービス提供システム100にアクセスしてもよいし、対象装置104がインターネットアクセス可能であれば対象装置104から学習サービス提供システム100に直接アクセスしてもよい。
図1に本実施形態の学習サービス提供システムが提供する学習サービスの概念図を示す。依頼者101は、インターネットなどのネットワークを介して学習サービス提供システム100にアクセスし、対象装置104に追加する能力の機械学習を依頼する。機械学習を行うために必要な情報は、学習依頼情報102として、依頼者101から学習サービス提供システム100に提供される。学習サービス提供システム100は、依頼者101から提供された学習依頼情報102をもとに、依頼者101側の対象装置104および対象105をシミュレートしながら必要な機械学習を行う。学習サービス提供システム100は、依頼者101から依頼された学習が完了したら、学習結果として獲得した新たな能力を、対象装置104に組み込み可能なデータ形式の能力付与データ103として、依頼者101に対し提供する。なお、依頼者101は、パーソナルコンピュータを利用して学習サービス提供システム100にアクセスしてもよいし、対象装置104がインターネットアクセス可能であれば対象装置104から学習サービス提供システム100に直接アクセスしてもよい。
<システムの構成>
図2に学習サービス提供システムのシステム構成図を示す。学習サービス提供システム100は、依頼受付部200、サービス管理部201、学習指令部202、学習シミュレータ203、能力付与データ生成部204、サービス提供部205を有する。
図2に学習サービス提供システムのシステム構成図を示す。学習サービス提供システム100は、依頼受付部200、サービス管理部201、学習指令部202、学習シミュレータ203、能力付与データ生成部204、サービス提供部205を有する。
本システム100は、例えば、プロセッサ、メモリ、記憶装置(ハードディスク、半導体ディスクなど)、入力装置(キーボード、マウス、タッチパネルなど)、表示装置、通信装置などのハードウェア資源を有する汎用のコンピュータにより構成することができる。図2に示す本システム100の機能は、記憶装置に格納されたプログラムがメモリにロードされ、プロセッサにより実行されることにより、実現されるものである。なお、本システム100は、一台のコンピュータにより構成してもよいし、複数台のコンピュータによる分散コンピューティングにより構成してもよい。また、処理の高速化のため、本システム100の機能の一部または全部を専用のハードウェア(例えばGPUやFPGA、ASICなど)を用いて実現することも可能である。
(サービス管理部201)
図3にサービス管理部201の構成を示す。サービス管理部201は、サービス管理端末300、サービス管理制御部301、トレーニング情報DB(データベース)302を有する。サービス管理部201は、本システム100が受け付け可能な複数の学習モデルを管理する。
図3にサービス管理部201の構成を示す。サービス管理部201は、サービス管理端末300、サービス管理制御部301、トレーニング情報DB(データベース)302を有する。サービス管理部201は、本システム100が受け付け可能な複数の学習モデルを管理する。
本システム100の運営者(サービス提供者)側の要員であるAI技術者が、サービス管理端末300を利用して、個々の学習モデルごとに、トレーニング受け付け情報303とトレーニング情報304のペアを作成する。作成されたトレーニング受け付け情報303およびトレーニング情報304は、サービス管理制御部301によってトレーニング情報DB302に登録される。これにより、依頼者101が依頼時に選択可能な学習モデルが学習メニューに追加される。図4はトレーニング情報DB302の登録データの一例を示している。トレーニング情報DB302には、学習モデルごとに、トレーニング受け付け情報303とトレーニング情報304とが一対一に対応付けられて登録されている。
AI技術に詳しくない者でも簡単に依頼ができるよう、依頼者101に対して提示する学習メニューを工夫することが好ましい。例えば、Deep Learningを学習に利用する場合、層の数、層の構造、活性化関数などニューラルネットワークのパラメータを設計する必要があるが、これらのパラメータは固定(学習モデルに定義済み)とし、依頼者101が考えなくてもよいようにしてもよい。また、依頼者101に学習メニューを提示する際に、専門用語を極力避け、わかりやすい説明文を提示して入力を支援することも好ましい。
学習メニューは、例えば、
・静止画像を用いた分類の学習
・センサデータにおける異常検出の学習
・動画像を用いた動き予測の学習
・自然言語情報におけるトピック抽出の学習
・プラント運転能力の学習
のように、本システム100が実行可能な機械学習の種類を選択肢として用意するとよい。このとき、学習の内容や目的を分かりやすい文章で提示するとよい。
・静止画像を用いた分類の学習
・センサデータにおける異常検出の学習
・動画像を用いた動き予測の学習
・自然言語情報におけるトピック抽出の学習
・プラント運転能力の学習
のように、本システム100が実行可能な機械学習の種類を選択肢として用意するとよい。このとき、学習の内容や目的を分かりやすい文章で提示するとよい。
学習メニューの構成は上記に限定されず、他にも様々な方法を採り得る。例えば、上位メニューを「分類の学習」、「異常検出の学習」、「運転能力の学習」のような、能力の分類で分けてもよい。このようにすることで、依頼ごとの違いを効率よく分類することができる。
新たな能力を追加する対象装置104とその対象105は、依頼ごとにさまざまである。依頼者101が、依頼入力画面で、依頼に必要な事項を順次入力していく過程で、依頼内容が自動的に分類されながら依頼受け付けに必要となる情報が集められる。したがって、依頼受付部200が依頼の受け付けを完了すると、依頼内容に対応可能な、いずれかの学習モデルが選択されているようにしてもよい。
あるいは、「画像に関する能力」、「音声に関する能力」、「自然言語に関する能力」、「システム制御に関する能力」のような、能力を獲得する対象ごとの分類に対応した学習メニューを用意してもよい。この場合、獲得する能力の分類を先に指定し、後で入力と出力を指定できるようにするとよい。入力と出力の組み合わせをマトリクスにして、表形式で提示して選択するようにしてもよい。あるいは、マトリクスの情報をツリー形式で表示して選択するようにしてもよい。上位メニューの選択肢が選択されたときに、それぞれのメニューごとのサブメニューを提示するようにして、依頼を詳細に分類して階層的に受け付けることができるようにしてもよい。例えば、上位メニューで「カメラ画像」を選択すると「静止画像/動画像」の選択肢が提示され、「静止画像」を選択すると「画像の分類/異常検出/物体認識」という処理内容の選択肢が提示される、というような階層的なメニューでもよい。
学習メニューを例示せず、次のようにしてもよい。各学習モデルごとに、説明文を作成しておく。依頼者101は依頼内容を文章(自由文)で記載する。依頼受け付け時には、依頼者101が入力した文章との類似度が高い説明文を類似度が高い順にリストアップして、依頼者101にリストから希望する学習モデルを選択させる。
あるいは、学習メニューの詳細をデータベース化して、分野や目標、課題から検索できるようにしてもよい。あるいは、依頼者101に依頼情報を文字列で入力させたり、モデル記述言語で記述されたモデルのアップロードを求めてもよい。あるいは、自動受け付けできないような案件については、担当者に通知するようにして、オペレータや技術者が依頼の受け付けを行うようにできる。この場合は、受け付けた依頼に対する学習モデルを作成することになる。このようにすることで、より幅広い案件に対応できるようになる。
(能力の獲得)
さまざまな種類の対象装置104に対し本学習サービスを提供するにあたり、対象装置104に新たな能力を組み込むためのアーキテクチャを共通化しておく必要がある。そこで本実施形態では、対象装置104に新たな能力を組み込むためのアーキテクチャをモデル化し、これを「能力獲得モデル」と呼ぶ。対象装置104が能力獲得モデルに従った組み込みインタフェースを用意し、本システム100の学習シミュレータ203が能力獲得モデルに整合する能力を獲得するように機械学習を行うことで、本システム100で生成した能力付与データ103の対象装置104への組み込みが可能となる。
さまざまな種類の対象装置104に対し本学習サービスを提供するにあたり、対象装置104に新たな能力を組み込むためのアーキテクチャを共通化しておく必要がある。そこで本実施形態では、対象装置104に新たな能力を組み込むためのアーキテクチャをモデル化し、これを「能力獲得モデル」と呼ぶ。対象装置104が能力獲得モデルに従った組み込みインタフェースを用意し、本システム100の学習シミュレータ203が能力獲得モデルに整合する能力を獲得するように機械学習を行うことで、本システム100で生成した能力付与データ103の対象装置104への組み込みが可能となる。
能力獲得モデルを定義することによって、共通させるべきアーキテクチャに関する情報がモデルデータとしてデータ化される。データ化された能力獲得モデルに関する情報は、それぞれの学習モデルにおいて学習シミュレータ203と対象装置104の間で論理的な整合をとるために用いられる。データ化されることで、各種の開発ツールを用いた、プログラムや回路の自動生成や自動テストを行うことが可能となる。
あらかじめ準備されていた能力獲得モデルが対象装置104に適合しない場合に、学習依頼者101があらかじめ準備されていた能力獲得モデルの一部または全てを変更して新たな能力獲得モデルを作成してもよい。能力獲得モデルをシステムモデリング言語で記述して、ファイルに格納して学習サービス提供システム100に提供する学習依頼情報102に含めることによって、任意の対象装置104について、学習依頼を行うことが可能となる。
それぞれの能力獲得モデルに対して能力獲得モデルを相互に識別する識別情報(例えば、能力獲得モデルIDや能力獲得モデル名)を付与することで、識別情報を使って学習シミュレータ203と対象装置104の間で能力獲得モデルを特定して論理的に整合させることができる。
能力獲得モデルを用いることで、学習を依頼する依頼者101と依頼を受ける者との間で、必要以上の技術情報をやりとりすることなく、それぞれの開発を進めることができる。
能力獲得モデルの情報を公開することで、公開された特定の能力獲得モデルに対応する対象装置104である製品の普及が促進される。また、公開された特定の能力獲得モデルに対応する学習モデルが複数のベンダーから提供されることが可能となり、競争による学習レベルの向上が期待できる。
図5に能力獲得モデルの構成を示す。本実施形態の能力獲得モデル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やその他の機器にデータを出力する仕様の定義を含む。
能力獲得モデル500を用いることで、学習シミュレータ203と対象装置104において、データ入力部501と能力部502とデータ出力部503は、実装方法が異なっても、論理的に同じ動作を行うことが保証される。また、能力獲得モデルを用いることで、学習依頼者と依頼を受ける者の間で、必要以上の情報をやりとりすることなく、学習を依頼することができる。
なお、本システム100の学習シミュレータ203側では、能力獲得モデル500を新たな能力獲得のための学習シミュレーションに利用するため、以後の説明では、システム100側の能力部502を「能力獲得部」とも称する(図10の能力獲得部1004を参照)。一方、対象装置104側では、システム100で獲得された新たな能力を受容し実行するために能力獲得モデル500を利用するため、対象装置104側の能力部502を「能力受容部」とも称する(図9の能力受容部904を参照)。また、以後の説明において、学習シミュレータ203側の能力獲得モデルと対象装置104側の能力獲得モデルを区別するために、図9および図10に示される符号を用いる。
学習シミュレータ203で獲得した能力を対象装置104に付与できるようにするために、能力獲得モデル500は、少なくともデータ入力部501と能力部502の間のインタフェース仕様と、能力部502とデータ出力部503の間のインタフェース仕様と、学習モデルが学習に用いるときに対象装置104の能力受容部904の構成を特定するための情報とを含むとよい。例えば、獲得する能力が「画像の分類」の場合は、対象装置104と能力獲得モデルの関係がシンプルなので、それだけで学習シミュレータ203と対象装置104を整合させることができる。具体的には、入力が画像データで、出力が分類結果であることが定義されていればよい。
能力獲得モデル500は、さらに以下のような詳細な情報を含むようにできる。
学習シミュレータ203に実装された能力獲得部1004に入力されるデータと対象装置104の能力受容部904に入力されるデータは同等である必要がある。能力獲得モデル500のデータ入力部501は、対象装置104の基本構成902からデータ入力部903に対するデータ入力のインタフェース仕様を定義する情報を含むようにできる。データ入力部501には任意のロジックを組み込むようにできる。
学習にDeep Learningを用いる場合、能力受容部904は学習モデルで使用される深層ニューラルネットワークとなるので、能力獲得モデル500は、受容可能なネットワークの構成を特定する情報を含む必要がある。構成を特定する情報は受容可能なネットワークを一意に定めるものでもよいし、複数の選択可能な範囲を示すようにしてもよい。他の学習方法の場合は、能力を獲得する回路やソフトウェアなど学習ロジックを特定するための情報を含むようにする。それによって、学習シミュレータ203の能力獲得部1004と対象装置104の能力受容部904の論理的な構成が一致することが担保される。一方で、学習シミュレータ203の能力獲得部1004と対象装置104の能力受容部904の実装方法が、例えばハードウェア実装とソフトウェア実装のように相違していてもよい。例えば、対象装置104の能力受容部904がソフトウェア実装であるときに、学習シミュレータ203側では、学習時間を短くするためにハードウェアで能力獲得部1004のニューラルネットワークを構成することができる。
学習シミュレータ203に実装された能力獲得部1004からデータ出力部1005を介して出力されるデータと対象装置104の能力受容部904からデータ出力部905を介して出力されるデータは同等である必要がある。そのために、能力獲得モデル500のデータ出力部503は、データ出力部905から対象装置104の基本構成902に対するデータ出力のインタフェース仕様を定義する情報を含むようにできる。
能力獲得モデル500と対象装置104の基本構成902との間で入出力のインタフェース仕様を定義することで、学習シミュレータ203において基本構成902のモデル1006を用いたシミュレーションを行うことが可能になる。例えば、獲得した能力が対象装置104の基本構成902を制御するような場合に、上記のような詳細な情報が必要になる。
能力獲得モデル500が学習シミュレータ203における実装や、対象装置104における実装の内容である回路情報や実行形式のプログラムを含むようにしてもよい。逆に、最小限のインタフェース仕様のみを定義するようにしてもよい。最小限のインタフェース仕様のみを定義することで、能力獲得モデル500を定義するファイルのサイズを小さくすることができる。インタフェース仕様と実装されるロジックの定義を含むようにして、学習シミュレータ203と対象装置104のそれぞれに対してモデルから自動生成するようにしてもよい。自動生成することで、学習モデルの開発効率を向上させることが可能となり、モデル情報を用いた厳密な仕様チェックを機械的に行うことが可能となる。
能力獲得モデル500は、それぞれの学習モデルにおいて学習シミュレータ203と対象装置104の間で矛盾なく定義されていればよい。学習シミュレータ203と対象装置104における能力獲得モデル500に相当する部分の実装は、それぞれ異なるものであってよい。
能力獲得モデル500は、例えばオブジェクト指向プログラミング言語や関数型プログラミング言語の抽象クラスあるいはインタフェースを定義するクラス相当の言語機能によって定義できる。さらに実装クラスを加えるようできる。あるいは、システムモデリング言語で、インタフェース仕様として定義できる。システムモデリング言語で、実装されるロジックを含むようにも定義できる。あるいは、ハードウェア記述言語のインタフェース仕様として定義できる。ハードウェア記述言語で、実装されるロジックを含むようにも定義できる。
それぞれ、インタフェース仕様のみ定義するようにしてもよいし、データ入力部501、能力部502、データ出力部503に対応して実装されるロジックの定義を含むようにしてもよい。
学習シミュレータ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による能力付与が可能となる。
能力部502が発揮する能力(情報処理を実現するためのプログラムや各種パラメータなど)は機械学習によって生成される。機械学習は例えばDeep Learningの技術を用いて実施できる(以下の実施形態では、主にDeep Learningを用いた実施方法を想定している。)。ただし、学習方法はDeep Learningに限られない。
例えば、モータ制御の学習において、以下のような方法により新たな能力を獲得できる。あらかじめ複数の制御ロジックの構成要素を用意する。トレーニングでいくつかの構成要素をランダムに選択して、接続する。接続したモデルで遺伝アルゴリズムにより、結果を最適化する。所定の範囲で上記を繰り返して、最もよいものを選択する。
例えば、文字列の分類学習において、以下のような方法により新たな能力を獲得できる。人が分類した多数のサンプルを準備する。さまざまな文字列関数を用意する。文字列関数をランダムに選択して、複数の文字列関数を組み合わせる。文字列関数のパラメータを遺伝アルゴリズムにより最適化する。所定の範囲で上記を繰り返して、最もよいものを選択する。
例えば、プログラムの機械コードを部分ごとにランダムに生成して、入力に対する出力が最良となるものを選択することで、新たな能力を獲得できる。目的ごとにプログラムの分割を適切に選択しておくことで、学習速度を向上させることができる。
AI技術者は、受け付ける依頼ごとに、効率がよい能力獲得モデルとそのトレーニング方法を選んで、学習依頼を受け付けられるようにする。Deep Learningにおける学習方法として様々な手法が知られている。AI技術者は応用する対象ごとに、より少ない処理で学習が終了するような手法を選択する。
(Deep Learningの例)
図6に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が必要とするデータ形式に変換して最終的に出力するデータの仕様などが定義されている。
図6に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が必要とするデータ形式に変換して最終的に出力するデータの仕様などが定義されている。
(トレーニング情報304)
図7にトレーニング情報のデータ構造の一例を示す。トレーニング情報304は、機械学習の実施に必要な情報を定義するものであり、学習モデル情報700、対象装置モデル情報701、対象モデル情報702、学習シミュレータモデル情報703、能力付与データ生成モデル情報704を含む。以下、それぞれの情報700〜704について説明する。
図7にトレーニング情報のデータ構造の一例を示す。トレーニング情報304は、機械学習の実施に必要な情報を定義するものであり、学習モデル情報700、対象装置モデル情報701、対象モデル情報702、学習シミュレータモデル情報703、能力付与データ生成モデル情報704を含む。以下、それぞれの情報700〜704について説明する。
(1)学習モデル情報700
学習モデル情報700は学習モデルに関する情報である。学習モデルは、対象装置104に追加する新たな能力を機械学習によって獲得する方法を定式化したモデルである。学習モデルは、扱う対象装置104や対象105ごとに、それぞれ作成される。ただし、振る舞いが類似する装置104や対象105については、同じ学習モデルを適用することもできる。学習モデルが扱うことができる対象装置104や対象105に関する情報は、対応するトレーニング受け付け情報303に記述することができる。
学習モデル情報700は学習モデルに関する情報である。学習モデルは、対象装置104に追加する新たな能力を機械学習によって獲得する方法を定式化したモデルである。学習モデルは、扱う対象装置104や対象105ごとに、それぞれ作成される。ただし、振る舞いが類似する装置104や対象105については、同じ学習モデルを適用することもできる。学習モデルが扱うことができる対象装置104や対象105に関する情報は、対応するトレーニング受け付け情報303に記述することができる。
学習モデルは、以下の情報を含むとよい。
・「学習の目標」:学習の目標を構成する項目の一部あるいは全部をパラメータ化し、学習目標の条件を指定可能な項目として定義することができる。学習目標の項目としては、例えば、能力部502の出力結果の精度や誤差、評価式による評価結果、学習の繰り返し計算の回数、出力の安定性など、どのようなものでもよい。
・「能力部の入力に関する定義」:能力部502に入力するデータを対象装置104またはその他の外部機器からどのように入力するかを定義する。例えば、対象装置104から2種類のセンサデータが入力され、能力部502にはそれらの平均データを与える場合であれば、2種類のセンサデータの仕様、平均データを求めるための処理方法、能力部に与えるデータの仕様などを定義する。取り扱うデータには、例えば、画像、音声、自然言語、センサデータなどさまざまな種類のデータがあるが、データの種類や仕様が異なれば、それぞれ異なるモデルが定義される。
・「能力部の構成に関する定義」:能力部502の内部構成を定義する。例えばDeep Learningのニューラルネットワークを用いる場合であれば、層数、各層の構造(畳み込み層、プーリング層、全接続層、ノード)、活性化関数、フィルタなどを定義する。対応可能な構成を複数定義し(例えば、層数の範囲、層構造のバリエーションなど)、それらの範囲内で選択可能にしてもよい。
・「能力部の出力に関する定義」:能力部502から出力するデータを対象装置104またはその他の外部機器へどのような情報として出力するかを定義する。例えば、能力部502が予測確率(実数値)を出力する場合に、確率が閾値より大きいか否かの2値の判定結果を対象装置104に出力するのであれば、予測確率のデータの仕様、判定結果のデータの仕様、閾値の仕様などを定義する。
・「能力部をトレーニングする方法」:能力部502の機械学習に使用する方法、具体的には機械学習を実施するトレーニングプログラムを定義する。AI技術者が、あらかじめトレーニングプログラムを作成しておくことで、依頼時には自動的にトレーニングを実行できる。例えば、Deep Learningのトレーニングプログラムは、ニューラルネットワークの入出力の構成と、ニューラルネットワークの各層の構成と、学習用データなどを指定して作成される。Deep Learningのトレーニングプログラムは、学習用データを順次入力して、ニューラルネットワークの各層でのパラメータを最適化することにより、新たな能力を獲得させるものである。トレーニングプログラムは、モデルとして定義することもできる。トレーニングにおいて選択可能な項目をパラメータ化することで、少ないモデルで多くのバリエーションに対応することができる。本実施形態では、依頼者101に提示する学習モデルごとに、上記トレーニングプログラムをモデルとして定義する。
以上述べた学習モデルは、モデル記述言語を用いて記述できる。モデル記述言語を用いて学習モデルを記述した場合は、モデル記述言語からシミュレータで実行可能なプログラムに自動変換することができる。モデル記述言語を用いずに、学習モデルをシミュレータで実行可能なプログラムで記述してもよい。
学習モデルには、モデルベースで記述できる任意の方法を適用できる。例えば、Deep LearningをはじめとしたAI技術をサポートするプログラムがいくつか提供されるようになっている。学習モデルは、それらを利用して構築することもできる。より高度化、高速化するモデルを作成してもよい。トレーニング情報に学習モデルに関する情報を含めることで、学習シミュレータによって新たな能力が獲得できる。
学習サービス提供システム100は、それぞれの学習モデルごとに、それぞれ能力獲得モデル500で定義された共通のアーキテクチャで学習シミュレーションを行うことで、能力付与データ103を用いて対象装置104に学習によって獲得した能力を組み込むことを可能としている。
(2)対象装置モデル情報701
対象装置モデル情報701は対象装置104のモデルに関する情報である。対象装置モデルを用いることで、依頼者101の対象装置104(実機)を用いなくても、コンピュータシミュレーションにより対象装置104の動作や入出力をシステム100側で模擬することができる。
対象装置モデル情報701は対象装置104のモデルに関する情報である。対象装置モデルを用いることで、依頼者101の対象装置104(実機)を用いなくても、コンピュータシミュレーションにより対象装置104の動作や入出力をシステム100側で模擬することができる。
対象装置モデルは、以下の情報を含むとよい。
・「能力部(能力受容部)の構成」:対象装置104が有する能力受容部904のハードウェア構成を定義する情報である。例えば、FPGA(Field−Programmable Gate Array)の型式を指定してもよいし、ゲート数を指定してもよい。あるいは、ソフトウェア実装の場合はCPU(Central Processing Unit)やGPU(Graphics Processing Unit)の型式と追加利用可能な記憶容量で指定してもよい。クラウドサービスを利用する場合、クラウドの種類、CPU種別、CPU数やクロック数、使用する記憶容量で指定してもよい。これらの例に限らず、回路構成の定義はどのような方法で指定してもよい。
・「能力獲得モデルのインタフェース仕様」:対象装置104が有するデータ入力部903、能力受容部904、データ出力部905の間の接続方法を定義する。例えば、FPGAの場合、各入出力端子の信号に関する定義が含まれる。ソフトウェア実装の場合は、能力受容部904のソフトウェアインタフェースの定義が含まれる。クラウドサービスを利用する場合、能力を利用するための通信方法の定義が含まれる。能力獲得モデルのインタフェースとしては、モデルとして定義できる任意のインタフェースが利用できる。
対象装置104のデータ入力部903、能力受容部904、データ出力部905は、それぞれハードウェアまたはソフトウェアによって実装される。対象装置104のデータ入力部903、能力受容部904、データ出力部905は、それぞれ能力獲得モデル500のデータ入力部501、能力部502、データ出力部503で定義された仕様に合わせて構成される。
それぞれの学習モデルにおいて、対象装置104の能力獲得モデル901と学習シミュレータ203の能力獲得モデル1002の間で、インタフェース仕様を整合させる必要がある。学習モデルの能力獲得モデル500で定義されるデータ入力部501、能力部502、データ出力部503のインタフェース仕様は、対象装置104のデータ入力部903、能力受容部904、データ出力部905と整合させるように定義する。能力獲得モデルを整合させることによって、学習シミュレータ203で獲得した能力を能力付与データ103に変換して、対象装置104に組み込むことが可能になる。
・「装置の基本構成のモデル」:対象装置104がもともと備えている基本構成902(能力獲得モデル500に対応する構成以外の構成部分)を定義する情報である。能力獲得モデル500に対応する構成901は、対象装置104の基本構成902との間で信号やデータの入出力を行うため、学習シミュレーションを行う際に対象装置104の基本構成902の仕様が必要となる。基本構成のモデルには、例えば、対象装置104の基本構成902と能力獲得モデル901により実現される新たな能力とのあいだのインタフェースの定義が含まれる。具体的には、基本構成902からデータ入力部903に入力される入力信号の定義、データ出力部905から基本構成902に出力される出力信号の定義、それぞれの信号が対象装置104の中でどのように扱われるかの定義などである。
対象装置モデルは、対象装置104のインタフェースのみを記述するだけでもよい。対象装置モデルは、トレーニングを開始する前に依頼者101やDBから取得できた情報をもとに生成できる。
(3)対象モデル情報702
対象モデル情報702は、対象装置104が関係を有する対象105のモデルに関する情報である。対象モデルを用いることで、対象装置104に影響を与える可能性のある対象105(例えば、対象装置104の外側にある他の装置や環境や利用者)を考慮したシミュレーションすることが可能になる。
対象モデル情報702は、対象装置104が関係を有する対象105のモデルに関する情報である。対象モデルを用いることで、対象装置104に影響を与える可能性のある対象105(例えば、対象装置104の外側にある他の装置や環境や利用者)を考慮したシミュレーションすることが可能になる。
以下に、対象モデル情報702の例を示す。
Webサービスの場合、対象モデルは例えばHTML5をサポートするブラウザとしてモデル化できる。さらに、利用者をシミュレートするモデルを加えてもよい。
カーレースゲームの場合、ゲームのルール、レースに用いる車両の仕様、性能やコース仕様、物理現象がモデル化される。何らかの装置やシステム、プラントを制御する場合は、制御対象となる装置についてモデル化したものを、対象モデル情報702とする。さらに、対象装置104または制御対象となる装置が対応する外界を物理モデルなどでモデル化すれば、外界を含めてシミュレートできる。
Webサービスの場合、対象モデルは例えばHTML5をサポートするブラウザとしてモデル化できる。さらに、利用者をシミュレートするモデルを加えてもよい。
カーレースゲームの場合、ゲームのルール、レースに用いる車両の仕様、性能やコース仕様、物理現象がモデル化される。何らかの装置やシステム、プラントを制御する場合は、制御対象となる装置についてモデル化したものを、対象モデル情報702とする。さらに、対象装置104または制御対象となる装置が対応する外界を物理モデルなどでモデル化すれば、外界を含めてシミュレートできる。
対象モデルは、対象105と対象装置104のインタフェースのみを記述するだけでもよい。対象モデルは、トレーニングを開始する前に依頼者101やDBから取得できた情報をもとに生成できる。
(4)学習シミュレータモデル情報703
学習シミュレータモデルは、本システム100での学習に用いるシミュレータの構成を定義するモデルである。本実施形態では、学習モデル、対象装置モデル、対象モデルを組み合わせて学習シミュレータが構成される(詳しくは後述する)。
学習シミュレータモデルは、本システム100での学習に用いるシミュレータの構成を定義するモデルである。本実施形態では、学習モデル、対象装置モデル、対象モデルを組み合わせて学習シミュレータが構成される(詳しくは後述する)。
(5)能力付与データ生成モデル情報704
能力付与データ生成モデルは、本システム100における学習結果を基に、対象装置104の回路に組み込むための「能力付与データ」103を生成する方法などを定義するモデルである。具体的には、学習結果を能力付与データ103に変換する変換プログラムを、能力付与データ生成モデルとして準備しておけばよい。
能力付与データ生成モデルは、本システム100における学習結果を基に、対象装置104の回路に組み込むための「能力付与データ」103を生成する方法などを定義するモデルである。具体的には、学習結果を能力付与データ103に変換する変換プログラムを、能力付与データ生成モデルとして準備しておけばよい。
例えば、FPGAで実装する場合は、ニューロ回路と入力インタフェース回路と出力インタフェース回路を構成できるようにする。ソフトウェアで実装する場合は、ニューロ回路をエミュレーションするソフトウェアと、学習結果として得られた各パラメータを設定するプログラムを準備する。能力付与データ103を用いて、獲得した能力を実装するための回路を部品化して、対象装置104の受け入れスロットに当該部品を物理的に挿入するようにしてもよい。
以上述べたトレーニング情報304に含まれるそれぞれの情報は、AI技術者によってあらかじめ値が定義されている定数項目と、値が未定義の状態であるパラメトリック項目とを含む。パラメトリック項目については、学習依頼を受け付ける際に依頼者101に情報の入力を求める。依頼者101の入力負担を軽減し、学習依頼を簡単化するために、パラメトリック項目はできるだけ少ないことが好ましい。したがって、例えば、学習シミュレータモデル情報703や能力付与データ生成モデル情報704はあらかじめ定義しておくとよい。また、学習モデル情報700、対象装置モデル情報701、対象モデル情報702についても、基本的な項目についてはあらかじめ定義しておき、依頼者101に入力させる項目は、能力部502の構成と入出力、学習目標など、できるだけ少ない項目に限定することが好ましい。
(トレーニング受け付け情報303)
トレーニング受け付け情報303は、依頼者101による情報入力を支援するための情報である。学習モデル(トレーニング情報304)ごとに必要な情報が異なるため、トレーニング受け付け情報303は個々のトレーニング情報304に対応してそれぞれ用意される。トレーニング受け付け情報303を用いて依頼者101にトレーニング情報304の各項目の入力を行わせながら学習依頼情報102の受け付けを行うことにより、学習のために必要な情報が漏れなく入力されることが担保される。トレーニング受け付け情報303には、依頼者101からの入力が必要な項目ごとに、依頼者101の入力を支援する情報が定義されている。
トレーニング受け付け情報303は、依頼者101による情報入力を支援するための情報である。学習モデル(トレーニング情報304)ごとに必要な情報が異なるため、トレーニング受け付け情報303は個々のトレーニング情報304に対応してそれぞれ用意される。トレーニング受け付け情報303を用いて依頼者101にトレーニング情報304の各項目の入力を行わせながら学習依頼情報102の受け付けを行うことにより、学習のために必要な情報が漏れなく入力されることが担保される。トレーニング受け付け情報303には、依頼者101からの入力が必要な項目ごとに、依頼者101の入力を支援する情報が定義されている。
図7に、トレーニング受け付け情報303の一例を示す。トレーニング受け付け情報303は、説明情報705、選択受け付け情報706、必要入力情報707を含む。説明情報705は、依頼者101に各項目の内容を説明するための情報である。選択受け付け情報706は、各項目の入力をメニュー選択によりできるように、各項目の選択肢を定義する情報である。必要入力情報707は、依頼者101による入力が必要な項目を定義する情報である。このようなトレーニング受け付け情報303を用いて、依頼者101に必要な情報の入力を求めることができる。
(依頼受付部200)
図8を用いて依頼受付部200の構成について説明する。依頼受付部200は、依頼者101の依頼端末805からインターネットを介して学習依頼情報102を受け付ける機能を有する。依頼受付部200は、例えば、依頼受付アプリケーション801が動作するWebサーバ800、依頼情報DB802、対象装置情報DB803、対象情報DB804などから構成される。
図8を用いて依頼受付部200の構成について説明する。依頼受付部200は、依頼者101の依頼端末805からインターネットを介して学習依頼情報102を受け付ける機能を有する。依頼受付部200は、例えば、依頼受付アプリケーション801が動作するWebサーバ800、依頼情報DB802、対象装置情報DB803、対象情報DB804などから構成される。
依頼受付アプリケーション801は、学習依頼に必要な情報を入力するための対話型ユーザインタフェースを依頼端末805に表示し、依頼者101によって入力された情報を取得する機能を提供するプログラムである。依頼情報DB802は、受け付けた学習依頼情報102を格納するデータベースである。対象装置情報DB803は、対象装置モデル情報701など、依頼者101の対象装置104に関する情報を格納するデータベースであり、対象情報DB804は、対象モデル情報702など、対象105に関する情報を格納するデータベースである。
依頼受付部200は、トレーニング情報DB302に登録されている複数の学習モデルの中から希望する学習モデルを選択するための学習メニューを依頼者101に提示する。依頼者101によって希望する学習モデルが指定されると、依頼受付部200は、指定された学習モデル(機械学習の種類)に対応するトレーニング情報304およびトレーニング受け付け情報303を用いて、機械学習の実施に必要な情報を受け付け、学習依頼情報102を生成する。
具体的には、依頼受付部200は、選択された学習モデルに対応するトレーニング受け付け情報303をトレーニング情報DB302から読み出し、トレーニング受け付け情報303に基づいて必要な情報の入力を依頼者101に行わせる。例えば、依頼受付部200は、必要入力情報707で定義された要入力項目について、説明情報705で定義された説明文と選択受け付け情報706で定義された選択肢を依頼者101に提示し、情報の入力(選択)を求める。要入力項目には、例えば、入力データの種類や仕様、学習の目標、出力データの種類や仕様、対象装置または対象装置モデルを特定する情報、対象または対象モデルを特定する情報などがある。すべての要入力項目についてこのような入力処理を繰り返すことにより、依頼者101が希望する学習モデルに関して必要な情報が全て入力済みとなる。
依頼受付部200は、学習依頼情報102を依頼情報DB802に登録する。学習依頼情報102には、選択された学習モデルに対応するトレーニング情報304を特定する情報、依頼者101により入力された情報(例えば、パラメトリック項目の値)などが含まれる。依頼受付部200は、学習依頼情報102の登録完了を学習指令部202に通知する。
なお、依頼受付部200は、システム記述言語などを用いて学習に必要な情報を記述した依頼ファイルを依頼端末805から受け取ることもできる。例えば依頼者101が希望する学習モデルが学習メニューの中に無い場合、依頼者101は希望する学習内容を記述した依頼ファイルを作成し、学習依頼を行うことができる。依頼ファイルによる学習依頼を受け付けた場合には、AI技術者が依頼ファイルに基づき新たな学習モデルを作成して、学習メニューに追加する。
本実施形態では、トレーニング受け付け情報303を用いて学習依頼の受け付けを行う構成を採用している。このような構成ではなく、個々の学習モデルごとに、必要な情報を依頼者101から受け取るための個別の依頼受付プログラムを用意し、依頼者101によって選択された学習モデルに応じた依頼受付プログラムに切り替えて学習依頼の受け付けを行ってもよい。
(対象装置104)
依頼者101は、能力を付与する対象となる対象装置104を指定して、学習を依頼する。能力獲得モデル500に従った新たな能力の追加が可能な装置であれば、どのような装置も対象装置104になり得る。一例を挙げると、静止画像を分類する画像分類装置、センサデータにより監視を行う監視装置、動画像を用いて対象の動きを予測する予測システム、Webサービスシステム、運転装置などを例示できる。
依頼者101は、能力を付与する対象となる対象装置104を指定して、学習を依頼する。能力獲得モデル500に従った新たな能力の追加が可能な装置であれば、どのような装置も対象装置104になり得る。一例を挙げると、静止画像を分類する画像分類装置、センサデータにより監視を行う監視装置、動画像を用いて対象の動きを予測する予測システム、Webサービスシステム、運転装置などを例示できる。
図9に対象装置の構成を模式的に示す。対象装置104は、概略、能力設定部900と、能力獲得モデル500に対応する構成901と、対象装置104にもともと備わっている基本構成902とを有する。能力獲得モデル500に対応する構成901は、データ入力部903、能力受容部904、データ出力部905から構成される。能力設定部900は、本システム100から提供される能力付与データ103を用いて、能力受容部904が新たな能力を発揮できるように能力獲得モデル500に対応する構成901を設定する機能である。
能力獲得モデル500に対応する構成901は、機能を変更可能なハードウェアにより構成される。例えば、FPGAのプログラムを書き換える構成でもよい。また、CPUやGPUのようなプロセッサで実行するプログラムを変更したり、プログラムで使用するパラメータを変更したりする構成でもよい。例えば、ニューラルネットワークのエミュレーションを行うプログラムに対し、パラメータを変更することで、ニューラルネットワークの機能を変更できる。あるいは、部品の一部や接続する装置を交換することで機能を変更する構成でもよい。
能力付与データ103は、例えば、「能力設定データ」と「入力設定データ」と「出力設定データ」とを含む。能力設定データは、学習により獲得された新たな能力(例えば、ニューラルネットワークによる画像の分類能力)を実行する機能を、能力受容部904に対し設定するためのデータである。入力設定データは、能力受容部904へのデータ入力のインタフェースに関する機能を、データ入力部903に対し設定するためのデータである。データ入力のインタフェースに関する機能には、例えば、対象装置104の基本構成902から必要なデータをデータ入力部903に取り込む機能、対象装置104以外のデバイス(例えばセンサなど)から必要なデータをデータ入力部903に取り込む機能、取り込んだデータに対し必要な加工(例えば、平均化、統合、サンプリング、ノイズ除去、特徴量抽出、二値化、色変換、解像度変換など)を施す機能、能力受容部904に適合するようにデータ形式を変換する機能、などがある。また、出力設定データは、能力受容部904からのデータ出力のインタフェースに関する機能を、データ出力部905に対し設定するためのデータである。データ出力のインタフェースに関する機能には、例えば、能力受容部904から出力されるデータに対し必要な加工(例えば、平均化、統合、サンプリング、ノイズ除去、特徴量抽出、二値化、色変換、解像度変換など)を施す機能、対象装置104の基本構成902に適合するようにデータ形式を変換する機能、などがある。能力設定データ、入力設定データ、出力設定データは、プログラムそのものでもよいし、プログラムで使用するパラメータでもよいし、プログラムとパラメータの両方でもよい。能力設定部900が、能力付与データ103により与えられた各設定データにより能力獲得モデル500に対応する構成901の設定を行うことで、データ入力部903、能力受容部904、およびデータ出力905が新たな能力に対応する情報処理を実行可能となる。
設定済みのデータ入力部903は、対象装置104の基本構成902からデータを取得し、必要な加工を行い、能力受容部904に適合するようにデータ形式を変換してデータを入力する。入力データとしては、例えば、カメラデータ、センサデータ、イベントデータが入力される。自然言語処理では、入力データとして、多数のテキストファイルが入力される。
設定済みのデータ出力部905は、能力受容部904から出力されるデータに必要な加工を行い、対象装置104の基本構成902に適合するようにデータ形式を変換してデータを出力する。例えば、能力受容部904に組み込まれたニューラルネットワークの出力が、データ出力部905に入力され、データ出力部905から基本構成902にデータが出力される。
能力受容部904について、具体例を挙げてさらに詳しく説明する。能力受容部904は、例えば、外部から入力された能力付与データ103にもとづいて、ニューラルネットワークを構成することで、新たな能力を受容する。能力受容部904と能力付与データ103は例えば以下のように実現できる。
・書き換え可能なFPGA。この場合、例えば、FPGAに書き込むニューラルネットワークの回路とパラメータのデータを能力付与データとする。
・能力をCPUのプログラムとして実装する。この場合、例えば、ニューラルネットワーク回路の動作を演算する実行形式のCPUプログラムを能力付与データとする。
・能力をGPUのプログラムとして実装する。この場合、例えば、ニューラルネットワーク回路の動作を演算する実行形式のGPUプログラムを能力付与データとする。
・能力を部品として追加する。この場合、例えば、書き換え可能なFPGAにニューラルネットワークを書き込んだものを、能力付与データを含む部品とする。
・能力をクラウドサービスとして利用する。この場合、例えば、上記のいずれかを組み込んだネットワークサービスの利用プログラムを能力付与データとする。
・対象装置以外の装置が外部で提供する能力を利用する。この場合、上記のいずれかを組み込んだ装置を利用するためのプログラムを能力付与データとする。
・能力を装置として追加する。この場合、例えば、上記のいずれかを組み込んだ装置を利用するプログラムを能力付与データとする。
・能力をCPUのプログラムとして実装する。この場合、例えば、ニューラルネットワーク回路の動作を演算する実行形式のCPUプログラムを能力付与データとする。
・能力をGPUのプログラムとして実装する。この場合、例えば、ニューラルネットワーク回路の動作を演算する実行形式のGPUプログラムを能力付与データとする。
・能力を部品として追加する。この場合、例えば、書き換え可能なFPGAにニューラルネットワークを書き込んだものを、能力付与データを含む部品とする。
・能力をクラウドサービスとして利用する。この場合、例えば、上記のいずれかを組み込んだネットワークサービスの利用プログラムを能力付与データとする。
・対象装置以外の装置が外部で提供する能力を利用する。この場合、上記のいずれかを組み込んだ装置を利用するためのプログラムを能力付与データとする。
・能力を装置として追加する。この場合、例えば、上記のいずれかを組み込んだ装置を利用するプログラムを能力付与データとする。
(対象装置モデル)
対象装置104がいかなる種類の装置であっても、図9に示すように、能力獲得モデル500に対応する構成901と、対象装置104にもともと備わっている基本構成902との組み合わせでモデル化することができる。基本構成902に対応する基本構成モデルと能力獲得モデル500を組み合わせると、新たな能力を獲得した後の対象装置104のモデルとなる。この対象装置モデルと、対象装置104の外部にある対象105をモデル化した対象モデルとを用いれば、コンピュータ上で、対象装置104の動作をシミュレーションすることができる。基本構成モデルは、必ずしも対象装置104が備える全ての構成をモデル化する必要はない。少なくとも、能力獲得モデル500と相互に影響する部分の構成が基本構成モデルにより定義されていればよい。
対象装置104がいかなる種類の装置であっても、図9に示すように、能力獲得モデル500に対応する構成901と、対象装置104にもともと備わっている基本構成902との組み合わせでモデル化することができる。基本構成902に対応する基本構成モデルと能力獲得モデル500を組み合わせると、新たな能力を獲得した後の対象装置104のモデルとなる。この対象装置モデルと、対象装置104の外部にある対象105をモデル化した対象モデルとを用いれば、コンピュータ上で、対象装置104の動作をシミュレーションすることができる。基本構成モデルは、必ずしも対象装置104が備える全ての構成をモデル化する必要はない。少なくとも、能力獲得モデル500と相互に影響する部分の構成が基本構成モデルにより定義されていればよい。
この実施例では、対象装置104が1つの能力獲得モデルを含む構成について示したが、複数の能力獲得モデルを含む構成にしてもよい。複数の能力獲得モデルを備えることで、複数の項目について能力を獲得することが可能になる。以上の実施例では、対象装置104と学習サービス提供システム100が異なる装置として実施された例を示したが、対象装置104が学習サービス提供システム100の一部または全部を含む構成とすることができる。それによって、対象装置104は自己学習能力を備えた製品となる。例えば、学習能力を備えた本発明による人型ロボットが、人から学習依頼を受けて学習を行って、自分と同じ構成の自分以外の他のロボットに能力付与データを与えるようにできる。
本システム100のサービスは、対象装置モデルおよび対象モデルが提供されれば、どのような種類の対象装置104にも対応することができる。なお、これらのモデルは依頼者101自身が作成し提供してもよいし、依頼者101以外の者が作成し提供してもよい。例えば、依頼者101に部品や製品を提供する業者がモデルを提供してもよいし、本システム100のサービス提供者がモデルを提供してもよい。また、対象装置モデルや対象モデルが既に本システム100の対象装置情報DB803や対象情報DB804に登録されているときは、依頼者101はそれらのDBに登録されているモデルを利用することもできる。その場合、学習依頼を受け付ける際に、対象装置104を特定する情報(装置の型式など)または対象装置モデルを特定する情報(モデルIDなど)の入力を依頼者101に求めればよい。対象モデルについても同様である。
(学習シミュレータ203)
図10に学習指令部202と学習シミュレータ203の詳細構成を示す。
図10に学習指令部202と学習シミュレータ203の詳細構成を示す。
学習シミュレータ203は、対象装置104の基本構成モデル1006と能力獲得モデル1002と対象モデル1007を用いて、対象装置104の動作をシミュレートしながら対象装置104に追加する新たな能力の機械学習を実施する。能力獲得モデル1002は、データ入力部1003、能力部(能力獲得部)1004、データ出力部1005を有する。
能力獲得部1004は、依頼者101の対象装置104に組み込まれて能力を遂行する部分をシミュレートする。学習を行うとき、能力獲得部1004の回路構成は、適宜変更することができる。能力獲得部1004は、例えばDeep Learningのニューラルネットワークで実現できる。ニューラルネットワークの層数や各層の構成については、学習モデル情報700に基づき設定される。
データ入力部1003は、能力獲得モデル1002の外部からデータを受け取り、必要な処理を行った後、能力獲得部1004にデータを入力する、という動作をシミュレートする。データ入力部1003は、対象装置104の基本構成902からデータを受け取ることもできるし、対象装置104の外部からデータを受け取ることもできる。対象装置104の外部からデータを受け取る形態としては、例えば、対象装置104に接続されたセンサからセンサデータを取得する形態、データベースからデータを取得する形態、ネットワークを通じてデータストリームを受信する形態などが想定される。
データ出力部1005は、能力獲得部1004からデータを受け取り、必要な処理を行った後、能力獲得モデル1002の外部にデータを出力する、という動作をシミュレートする。データ出力部1005は、例えば、能力獲得部1004のニューラルネットワークの出力を、対象装置104の基本構成902あるいは対象装置104の外部の装置が必要とするデータ形式に変換する。
基本構成モデル1006は、対象装置104の基本構成902の動作をシミュレートする。能力獲得部1004が対象装置104の基本構成902と相互に影響する場合、データ入力部1003は基本構成モデル1006から必要なデータを取得し、データ出力部1005は能力獲得部1004の出力を基本構成モデル1006へ引き渡す。
対象モデル1007は、対象装置104の外部の対象105をシミュレートする。例えば、対象モデル1007は、対象装置104が接続される他の装置、対象装置104の周囲の環境(物理現象を含む)、対象装置104が取り扱う器具、対象装置104が生産・加工する物体、対象装置104を操作するオペレータなどをシミュレートする。
図11に学習シミュレータ203の構成例を示す。学習シミュレータ203には多くの計算資源が必要となるため、図11の例では、学習指令部202を実装する学習管理サーバ1100と、学習シミュレータ203を実装するハードウェア資源とを別々にしている。
例えば、インターネット上に設置されるクラウドサーバ群1101により学習シミュレータ203を構成することができる。この場合、学習指令部202は、ゲートウェイ1102を介して各クラウドサーバに対し必要な設定情報と処理タスクを送信して、学習シミュレーションを実行させ、その結果を受け取る。あるいは、ローカルエリアネットワーク上に存在するプライベートサーバ群1103により学習シミュレータ203を構成してもよい。サーバ群1101、1103を利用する場合、能力獲得モデル1002、基本構成モデル1006、対象モデル1007のシミュレーション処理をそれぞれ個別のサーバで実行してもよい。各モデル1002、1006、1007のシミュレーション処理をさらに複数のサーバで分散処理してもよい。これによりシミュレーションの高速化が図られる。
シミュレーション処理を高速化するため、組込シミュレータ1104のような専用システムを用いてもよい。ソフトウェア処理の一部をハードウェアに置き換えた構成としてもよい。学習モデルごとに、例えばデータ量が多い依頼や、階層数が多い構成、学習にリアルタイム性が求められる構成など、シミュレーションを実施する装置として最適なものを選択するようにできる。
シミュレーションは、例えば、多数のCPUによる分散処理を利用する方法、GPUと呼ばれる高速演算装置を利用する方法などで高速化できる。またFPGAなどでニューロ回路を構成することで、並列動作が行われ、シミュレーションを高速化することができる。このような高速化の方法を学習シミュレータモデルに含めることができる。
シミュレータを実機(依頼者101の対象装置104)に接続した構成にすることができる。例えば、依頼者101の対象装置104をシミュレータ(シミュレータを実行するコンピュータ)に接続してもよい。あるいは依頼者101の対象装置104が有する回路(CPU、GPU、FPGAなど)でシミュレーションを実行するようにできる。IoTの技術を適用することで、リアルタイムのビッグデータを扱うことが可能になる。この技術を利用し、依頼者101の対象装置104に関する各種データをインターネットを介してリアルタイムにシミュレータに送り、そのデータを用いてシミュレーションを行うこともできる。あるいは、シミュレータが対象装置104のモデルに相当する機能を備えるようにしてもよい。
サービスを提供する装置をシミュレータとして利用してもよい。例えば、自然言語処理によるWebサービスの場合、クラウド上のサーバ資源を使って、Webサービスと学習サービスの双方を実施することができる。
(学習指令部202)
学習指令部202は、トレーニングの設定および制御を担う処理部であり、図10に示すように、トレーニング設定部1000とトレーニング制御部1001を有する。トレーニング設定部1000は、依頼者101から受け付けた学習依頼情報102および対応するトレーニング情報304に基づいて、学習シミュレータ203に対しトレーニングに必要な設定を行う。トレーニング制御部1001は、学習シミュレータ203を制御してトレーニングを実施し、対象装置104に追加する能力を開発(学習により生成)する。
学習指令部202は、トレーニングの設定および制御を担う処理部であり、図10に示すように、トレーニング設定部1000とトレーニング制御部1001を有する。トレーニング設定部1000は、依頼者101から受け付けた学習依頼情報102および対応するトレーニング情報304に基づいて、学習シミュレータ203に対しトレーニングに必要な設定を行う。トレーニング制御部1001は、学習シミュレータ203を制御してトレーニングを実施し、対象装置104に追加する能力を開発(学習により生成)する。
具体的には、トレーニング設定部1000は、学習モデル情報700に基づき、学習の目標、データ入力部1003およびデータ出力部1005の入出力データの仕様や処理内容、能力獲得部1004の内部構成、トレーニングプログラムなどを設定する。また、トレーニング設定部1000は、対象装置モデル情報701に基づき、対象装置104の基本構成モデル1006、能力獲得モデル1002との間の入出力などを設定し、さらに、対象モデル情報702に基づき、対象モデル1007を設定する。
(能力付与データ生成部204)
能力付与データ生成部204は、学習シミュレータ203の学習結果(トレーニングによって獲得した能力)を、対象装置104の能力受容部904に組み込むためのデータ(能力付与データ103)に変換する。学習結果から能力付与データ103を生成する変換プログラムは、あらかじめ能力付与データ生成モデル情報704により与えられる。この変換プログラムにより、対象装置104が有するハードウェア構成(例えば、FPGA、CPU、GPUなどの回路構成)に適合する能力付与データ103(例えば、プログラム、プログラムで使用するパラメータ)が生成される。能力付与データ103は前述のように能力設定データ、入力設定データ、出力設定データを含むとよい。
能力付与データ生成部204は、学習シミュレータ203の学習結果(トレーニングによって獲得した能力)を、対象装置104の能力受容部904に組み込むためのデータ(能力付与データ103)に変換する。学習結果から能力付与データ103を生成する変換プログラムは、あらかじめ能力付与データ生成モデル情報704により与えられる。この変換プログラムにより、対象装置104が有するハードウェア構成(例えば、FPGA、CPU、GPUなどの回路構成)に適合する能力付与データ103(例えば、プログラム、プログラムで使用するパラメータ)が生成される。能力付与データ103は前述のように能力設定データ、入力設定データ、出力設定データを含むとよい。
(サービス提供部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を返却してもよい。
サービス提供部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を返却してもよい。
(システムの動作)
図12に学習サービス提供システム100における学習依頼の受け付けから能力付与データの提供までの処理フローを示す。
図12に学習サービス提供システム100における学習依頼の受け付けから能力付与データの提供までの処理フローを示す。
依頼者101がインターネットを介して本システム100にアクセスし新規の学習依頼を申し込むと、依頼受付部200が学習依頼の受け付けを開始する(ステップS1200)。依頼受付部200は、依頼入力画面を依頼者101の端末805に提示し、希望する学習モデルおよび学習に必要な情報を依頼者101に入力させる(ステップS1201)。このとき、トレーニング受け付け情報303に従って依頼者101に情報入力を行わせることで、学習に必要な情報を漏れなく入力させることができる。学習依頼情報の入力が完了すると(ステップS1202のYES)、依頼受付部200が学習依頼情報102を依頼情報DB802に登録し、学習指令部202に新規の学習依頼を受け付けた旨を通知する(ステップS1203)。
図13に学習依頼情報102のデータ構造の一例を示す。学習依頼情報102は、学習目標情報1300と学習モデル識別情報1301と学習モデルパラメータ1302を含む。学習目標情報1300は、依頼者101により指定された学習目標に関する情報を含む。学習モデル識別情報1301は、依頼者101により指定された学習モデルに対応するトレーニング情報304を特定する情報(例えば、トレーニング情報DB302におけるトレーニング情報304のIDなど)を含む。学習モデルパラメータ1302は、学習モデルの各パラメトリック項目について依頼者101により入力された情報を含む。
次に、学習指令部202は、学習依頼情報102に従って学習シミュレータ203に対し学習モデル、対象装置モデル、対象モデルなどの設定を行い(ステップS1204)、学習シミュレータ203を制御してトレーニングを実施する(ステップS1205)。例えば、Deep Learningなどのニューラルネットワークの場合であれば、複数の層のそれぞれについて段階的にパラメータを変えながら出力を評価し、学習目標との適合度が高くなるようにパラメータの最適化を行う。学習目標に対する適合度があらかじめ設定された完了条件を満足したら(ステップS1206のYES)、学習指令部202はトレーニングを終了する。
次に、能力付与データ生成部204は、学習シミュレータ203の学習結果(トレーニングによって獲得した能力)に基づき能力付与データ103を生成する(ステップS2107)。最後に、サービス提供部205が、能力付与データ103を依頼者101に提供する(ステップS1208)。
(依頼入力画面の例)
図14A〜図14C、図15A〜図15E、図16A〜図16Bに依頼入力画面の一例を示す。
図14A〜図14C、図15A〜図15E、図16A〜図16Bに依頼入力画面の一例を示す。
図14Aは依頼するときに入力する項目の一覧を示す画面である。この例では、「1
依頼の種類」、「2 入力情報」、「3 学習の目標」、「4 対象装置情報」の4つの項目の入力を求めている。図14Bは、図14Aで「1 依頼の種類」が選択されたときに表示される画面であり、依頼の種類を指定する画面である。図14Cは、入力情報の種類を指定する画面である。入力情報の選択肢は、図14Bで指定された依頼の種類に応じて適宜設定される。図14Cの例は、「分類能力を学習する」が選択された後に表示される入力情報の指定画面である。この例では、「時系列センサ情報」、「カメラ画像」、「文字列ファイル」、「入力情報を記述したファイルのアップロード」のいずれかが選択可能である。図14Dは、図14Cで「時系列センサ情報」が選択された後に表示される学習目標の指定画面である。この例では、時系列センサ情報を分類する能力に対する学習目標の指定方法として、「分類するグループ数を指定する」、「判定適合度をプログラムで指定する」、「分類の要件を指定したファイルをアップロードする」のいずれかが選択可能である。
依頼の種類」、「2 入力情報」、「3 学習の目標」、「4 対象装置情報」の4つの項目の入力を求めている。図14Bは、図14Aで「1 依頼の種類」が選択されたときに表示される画面であり、依頼の種類を指定する画面である。図14Cは、入力情報の種類を指定する画面である。入力情報の選択肢は、図14Bで指定された依頼の種類に応じて適宜設定される。図14Cの例は、「分類能力を学習する」が選択された後に表示される入力情報の指定画面である。この例では、「時系列センサ情報」、「カメラ画像」、「文字列ファイル」、「入力情報を記述したファイルのアップロード」のいずれかが選択可能である。図14Dは、図14Cで「時系列センサ情報」が選択された後に表示される学習目標の指定画面である。この例では、時系列センサ情報を分類する能力に対する学習目標の指定方法として、「分類するグループ数を指定する」、「判定適合度をプログラムで指定する」、「分類の要件を指定したファイルをアップロードする」のいずれかが選択可能である。
図15Aは、図14Bで「操作能力を学習する」が選択された場合の学習目標の指定画面の例である。操作対象の指定方法と学習目標の指定方法を求めている。同様に、図15Bは、図14Bで「フィルタリング能力を学習する」が選択された場合の学習目標の指定画面の例であり、図15Cは、図14Bで「情報生成能力を学習する」が選択された場合の学習目標の指定画面の例であり、図15Dは、図14Bで「業務遂行能力を学習する」が選択された場合の学習目標の指定画面の例である。
図16Aは、対象装置情報の入力画面の例である。対象装置情報の入力画面では、対象装置モデルと対象モデルの作成または指定に必要な情報が入力される。この例では、「部品IDで指定」、「装置IDで指定」、「仕様記述ファイルで指定」のいずれかが選択可能である。図16Bは、図16Aで「部品IDで指定」が選択された後に表示される部品IDの指定画面の例である。例えば、対象装置104の能力受容部904がFPGAで構成される場合には、部品IDとしてFPGAの型式を指定すればよい。あるいは、対象装置104の型式などを装置IDとして指定したり、対象装置104のモデル情報を含むファイルを仕様記述ファイルとして指定してもよい。あるいは、対象装置情報DB803に登録されている対象装置モデルを識別するモデルIDを指定してもよい。対象105および対象モデルの指定方法についても同様である。
<適用例>
以下に、いくつかの学習モデルについて具体的な事例を示す。
以下に、いくつかの学習モデルについて具体的な事例を示す。
(1)画像を扱う装置
画像をDeep Learningで扱うとき、各層の構成は相違するが、全体のニューラルネットワークの構成は類似している。画像の場合、例えば畳み込みニューラルネットワーク(CNN;Convolutional Neural Network)が用いられる。ニューラルネットワークの構成については従来から多くの研究がなされており、扱う対象ごとに適切な構成があることが知られている。よって、学習依頼を受け付けるときに、画像の種類、画像の仕様、画像から識別すべき情報などに応じて、適切な構成が選ばれるように受け付けを行うとよい。それぞれ、学習モデルが異なるため、個別に学習モデルを作成しておく。
画像をDeep Learningで扱うとき、各層の構成は相違するが、全体のニューラルネットワークの構成は類似している。画像の場合、例えば畳み込みニューラルネットワーク(CNN;Convolutional Neural Network)が用いられる。ニューラルネットワークの構成については従来から多くの研究がなされており、扱う対象ごとに適切な構成があることが知られている。よって、学習依頼を受け付けるときに、画像の種類、画像の仕様、画像から識別すべき情報などに応じて、適切な構成が選ばれるように受け付けを行うとよい。それぞれ、学習モデルが異なるため、個別に学習モデルを作成しておく。
例えば、静止画像を分類する能力に関する学習モデルの場合、以下のような情報が学習モデルに含まれる。
・入力:種類=静止画像、1280×1280画素、RGB
・出力:画像の分類結果(100分類)
・学習データ:教師ありサンプルデータ
・獲得する能力:画像を分類する能力
・能力部の構成:層数=10、層構造(畳み込み層、プーリング層)、活性化関数
・学習の目標:識別正解率>98%
・トレーニング方法:トレーニングプログラムA
・・・
・入力:種類=静止画像、1280×1280画素、RGB
・出力:画像の分類結果(100分類)
・学習データ:教師ありサンプルデータ
・獲得する能力:画像を分類する能力
・能力部の構成:層数=10、層構造(畳み込み層、プーリング層)、活性化関数
・学習の目標:識別正解率>98%
・トレーニング方法:トレーニングプログラムA
・・・
また、動画像を用いて動きを予測する能力に関する学習モデルの場合、以下のような情報が学習モデルに含まれる。
・入力:動画像、1920×800画素、RGB、60fps、カメラのURL
・出力:識別対象ごとの動きの予測結果
・獲得する能力:動画像内の識別対象の動きの予測
・能力部の構成:層数=13、層構造(畳み込み層、プーリング層)、活性化関数
・学習の目標:評価関数の値<0.1
・トレーニング方法:トレーニングプログラムB
・・・
・入力:動画像、1920×800画素、RGB、60fps、カメラのURL
・出力:識別対象ごとの動きの予測結果
・獲得する能力:動画像内の識別対象の動きの予測
・能力部の構成:層数=13、層構造(畳み込み層、プーリング層)、活性化関数
・学習の目標:評価関数の値<0.1
・トレーニング方法:トレーニングプログラムB
・・・
(2)音声を扱う装置
音声をDeep Learningで扱うときは、例えば時系列のデータを扱えるリカレントニューラルネットワーク(RNN;Recurrent Neural Network)が利用できる。音声に関する能力としては、音声認識、話者の識別、話者の属性分析(性別、年齢、国籍、人種などの推定)、話者の感情分析、音声データを用いる監視装置などがある。例えば、話者の識別の能力を学習する場合、多数の話者について教師データおよびテストデータとなる発声サンプルをデータベースに格納し、教師データと一致するときにペナルティを少なく、教師データと不一致の場合にペナルティを大きくして、Deep Learningによる学習を行えばよい。
音声をDeep Learningで扱うときは、例えば時系列のデータを扱えるリカレントニューラルネットワーク(RNN;Recurrent Neural Network)が利用できる。音声に関する能力としては、音声認識、話者の識別、話者の属性分析(性別、年齢、国籍、人種などの推定)、話者の感情分析、音声データを用いる監視装置などがある。例えば、話者の識別の能力を学習する場合、多数の話者について教師データおよびテストデータとなる発声サンプルをデータベースに格納し、教師データと一致するときにペナルティを少なく、教師データと不一致の場合にペナルティを大きくして、Deep Learningによる学習を行えばよい。
(3)自然言語を扱う装置 自然言語を扱う装置について学習モデルを作成することで、Webサービスに活用でき
る能力を獲得できる。自然言語を扱うときは、文字列にエンコードされたデータが入力となる。自然言語をDeep Learningで扱うときは、例えばRNNが利用できる。あるいはWord Vectorを利用するようにできる。エンコードされたデータを入力として、出力を最適化することで、新たな能力が獲得できる。自然言語に関する能力としては、例えば、文章の翻訳、要約の生成、トピックの抽出、文章の分類、作者または作者の属性の推定、文章の注目度の予測などがある。
る能力を獲得できる。自然言語を扱うときは、文字列にエンコードされたデータが入力となる。自然言語をDeep Learningで扱うときは、例えばRNNが利用できる。あるいはWord Vectorを利用するようにできる。エンコードされたデータを入力として、出力を最適化することで、新たな能力が獲得できる。自然言語に関する能力としては、例えば、文章の翻訳、要約の生成、トピックの抽出、文章の分類、作者または作者の属性の推定、文章の注目度の予測などがある。
(4)センサデータを扱う装置
センサデータに基づいて分析、特徴抽出、変化点検出、異常検出、予測、監視などを行う能力を学習により獲得することができる。例えば、センサ群から得られる複数のセンサデータを用いて監視を行う能力の場合、入力は複数のセンサデータであり、出力は監視結果(異常の有無、異常の種類など)である。センサデータが時系列データの場合、RNNが利用できる。
センサデータに基づいて分析、特徴抽出、変化点検出、異常検出、予測、監視などを行う能力を学習により獲得することができる。例えば、センサ群から得られる複数のセンサデータを用いて監視を行う能力の場合、入力は複数のセンサデータであり、出力は監視結果(異常の有無、異常の種類など)である。センサデータが時系列データの場合、RNNが利用できる。
(5)運転装置
運転装置の学習モデルでは、例えばセンサ入力に対して、アクチュエータ出力を行う。センサ入力が、能力獲得モデルの入力となり、アクチュエータ出力が能力獲得モデルの出力となる。センサ入力に対する、アクチュエータ出力を最適化することで、運転能力が獲得できる。この場合、対象装置モデルとして運転装置の情報を設定し、対象モデルとして運転対象機械の情報を設定する。モデルさえ定義すればどのような種類の機械も運転対象機械になり得る。例えば、組み立て装置、ゲーム機のコンピュータ側プレイヤー、乗り物、プラント、工作機械、建設装置、農業機械、漁業機械、コンピュータなどが例示できる。学習シミュレーションにおいて、運転対象機械の実機を用いてもよい。
運転装置の学習モデルでは、例えばセンサ入力に対して、アクチュエータ出力を行う。センサ入力が、能力獲得モデルの入力となり、アクチュエータ出力が能力獲得モデルの出力となる。センサ入力に対する、アクチュエータ出力を最適化することで、運転能力が獲得できる。この場合、対象装置モデルとして運転装置の情報を設定し、対象モデルとして運転対象機械の情報を設定する。モデルさえ定義すればどのような種類の機械も運転対象機械になり得る。例えば、組み立て装置、ゲーム機のコンピュータ側プレイヤー、乗り物、プラント、工作機械、建設装置、農業機械、漁業機械、コンピュータなどが例示できる。学習シミュレーションにおいて、運転対象機械の実機を用いてもよい。
運転装置の一例として、カーレースゲームのコンピュータ側プレイヤーの能力を獲得する学習モデルを説明する。例えば、Q LearningにDeep Learningを適用したDQN(Deep Q Learning)によって能力を獲得することができる。学習により獲得する能力は、自車の周囲の状況に応じて、ステアリング、アクセル、ブレーキを操作する能力である。能力獲得部への入力として、自車の状況(自車のコース上の位置、進行方向、速度、周囲の道路状態、周囲にいる他車の位置、進行方向、速度など)を入力する。能力獲得部からの出力は、ステアリングの舵角、アクセル量、ブレーキ量である。対象装置モデルとして、カーレースの参加車両の物理モデルを設定し、対象モデルとして、カーレースゲームのモデルを設定する。モデルは、ゲームのルール、コース情報、車両の走行環境であるコースの物理モデルを含む。学習シミュレーションは、カーレースの参加車両のモデルと、カーレースゲームのモデルを組み合わせて行う。
学習は、段階的に行う。最初は、自車のみを用いてステアリング、アクセル、ブレーキを操作することで、所定の方向に運転することについて学習させる。所定の方向に運転できるようになったら、コースをより短い時間で周回できるように、学習させる。コースを短い時間で周回できるようになったら、複数の同一車両で学習させる。さらに、性能の異なる複数の車両に対して、それぞれ異なるプレイヤーとして学習させる。上記学習の過程で、学習した状態のプレイヤーを、取得したスコアで分類して、データベースに登録する。これによって、コンピュータ側プレイヤーのレベルを設定できるようになる。学習の結果、性能の異なる車両に対して、さまざまなレベルのプレイヤーがデータベースに登録される。
この例では、カーレースゲームの例を示したが、実車と道路のモデルを精密に作成することで、実車を走行させる能力を獲得するようにもできる。能力獲得モデルの入力と出力を規格化することで、さまざまな対象装置を運転する汎用的な制御装置の制御能力を獲得することもできる。
(6)業務遂行装置
業務をモデルとして記述することで、業務を遂行する能力を獲得することもできる。学習モデルは、モデル化された業務を最適化するモデルとして作成できる。業務を遂行する能力として、例えば、予算の最適活用、生産計画の最適化、対人応対業務、輸送業務の最適化、健康増進アドバイス業務の最適化、投資判断業務などの能力を獲得することができる。
業務をモデルとして記述することで、業務を遂行する能力を獲得することもできる。学習モデルは、モデル化された業務を最適化するモデルとして作成できる。業務を遂行する能力として、例えば、予算の最適活用、生産計画の最適化、対人応対業務、輸送業務の最適化、健康増進アドバイス業務の最適化、投資判断業務などの能力を獲得することができる。
業務遂行装置の場合、業務と業務の対象をモデル化することで、学習による新たな能力の獲得が可能となる。業務は業務入力に対して業務出力を行う装置としてモデル化できる。業務入力と業務出力が、それぞれ能力獲得モデルの入力と出力となる。例えば、輸送業務の場合、過去の輸送実績データと当該データごとの周囲環境情報を用いて、輸送計画策定能力を獲得することができる。この場合、入力は輸送依頼と周囲環境情報、車両情報を含む。出力は輸送計画となる。例えば、対人応対業務の場合、応対する内容をモデル化することで、新たな能力を獲得できる。この場合、入力はそれぞれの業務に関連する情報と、応対する相手の人から得られる情報を含む。出力は、応対行動となる。例えば、文字列の出力、GUI(グラフィカルユーザインタフェース)による応対、アバターによる応対、人型ロボットによる応対が可能である。
<本システムの利点>
依頼者101にとっては次のような利点がある。まず、このシステム100を利用すれば、依頼者101自身は機械学習を実施する必要がないので、対象装置104に新たな能力を追加するための開発業務を効率化することができる。また、依頼者101は機械学習に必要な情報を与えるだけでよいので、機械学習に関する知識やシステムをもたない者でも本システム100の利用が容易である。また、学習結果が能力付与データ103(新たな能力を対象装置104に追加するデータ)で提供されるので、依頼者101は、機械学習により獲得された新たな能力を自身の装置104に簡単に追加することができる。
依頼者101にとっては次のような利点がある。まず、このシステム100を利用すれば、依頼者101自身は機械学習を実施する必要がないので、対象装置104に新たな能力を追加するための開発業務を効率化することができる。また、依頼者101は機械学習に必要な情報を与えるだけでよいので、機械学習に関する知識やシステムをもたない者でも本システム100の利用が容易である。また、学習結果が能力付与データ103(新たな能力を対象装置104に追加するデータ)で提供されるので、依頼者101は、機械学習により獲得された新たな能力を自身の装置104に簡単に追加することができる。
一方、サービス提供者にとっては次のような利点がある。機械学習を行うために必要な情報は依頼者101から提供されるので、依頼どおりの機械学習の実行が担保できる。また、依頼者101からの依頼の受け付け、機械学習の実施などの処理を可及的に自動化・省力化できる。さらに学習結果を能力付与データ103に変換し依頼者101に提供するので、学習結果の提供および対象装置104への実装についても可及的に自動化・省力化することができる。
また、機械学習の過程で対象装置モデルや対象モデルを用いたシミュレーションを行うことにより、対象装置104の実機がなくても、対象装置104や対象105の振る舞いや影響などを考慮した機械学習を行うことができる。対象装置104の実機が不要となれば、機械学習の代行がきわめて実現容易となる。特に、生産設備のように大型の装置や稼働中の装置の場合、実機を機械学習に利用することは現実的でない。本学習サービスはそのようなケースでも利用可能であり、適用の自由度および利便性に優れる。
また、依頼受付部200の対話的なユーザインタフェースを利用することで、依頼者101が自身の装置104に追加したい能力の学習依頼をサービス提供者に対し簡単に依頼することができる。また、サービス提供者にとっても、機械学習を行うために必要な情報を漏れなく取得できるという利点がある。
また、本システム100では、トレーニング情報304のうちの一部の項目をパラメトリック項目とし、依頼者101に情報を入力させるようにしたので、依頼者101の希望に応じた機械学習を行うことができる。ここで、パラメトリック項目をトレーニング情報304のうちの一部に限定することで依頼者101の入力負担を軽減し、学習依頼の容易さと学習のカスタマイズ性の両立を図っている。さらに、依頼者101による情報入力を選択肢のなかから選択させる形式で行わせることで、依頼者101の入力負担を軽減している。
なお、上述した実施形態の構成は本発明の一具体例を示したものにすぎず、本発明の範囲を限定する趣旨のものではない。本発明はその技術思想を逸脱しない範囲において、種々の具体的構成を採り得るものである。例えば上記実施形態で示したシステム構成、データ構造、ユーザインタフェース、パラメータ等は一例であり、機械学習の種類、学習の目的、獲得したい能力、対象装置の構成等に応じて適宜変更することができる。
(付記1)
少なくとも1つのメモリと、前記メモリと接続された少なくとも1つのハードウェアプロセッサとを備え、
前記ハードウェアプロセッサが、
対象装置に追加する能力の機械学習を行うために必要な情報を、学習依頼情報として、
依頼者から受け付け、
前記依頼者から受け付けた前記学習依頼情報にしたがって機械学習を行い、
前記機械学習による学習結果に基づいて、前記学習結果として獲得された新たな能力を前記対象装置に追加するデータである能力付与データを生成し、
前記能力付与データを前記依頼者に提供する、
学習サービス提供装置。
少なくとも1つのメモリと、前記メモリと接続された少なくとも1つのハードウェアプロセッサとを備え、
前記ハードウェアプロセッサが、
対象装置に追加する能力の機械学習を行うために必要な情報を、学習依頼情報として、
依頼者から受け付け、
前記依頼者から受け付けた前記学習依頼情報にしたがって機械学習を行い、
前記機械学習による学習結果に基づいて、前記学習結果として獲得された新たな能力を前記対象装置に追加するデータである能力付与データを生成し、
前記能力付与データを前記依頼者に提供する、
学習サービス提供装置。
(付記2)
少なくとも1つのメモリと、前記メモリと接続された少なくとも1つのハードウェアプロセッサとを備えるコンピュータが、
対象装置に追加する能力の機械学習を行うために必要な情報を、学習依頼情報として、依頼者から受け付けるステップ、
前記依頼者から受け付けた前記学習依頼情報にしたがって機械学習を行うステップ、
前記機械学習による学習結果に基づいて、前記学習結果として獲得された新たな能力を前記対象装置に追加するデータである能力付与データを生成するステップ、及び
前記能力付与データを前記依頼者に提供するステップ、
を実行する学習サービス提供方法。
少なくとも1つのメモリと、前記メモリと接続された少なくとも1つのハードウェアプロセッサとを備えるコンピュータが、
対象装置に追加する能力の機械学習を行うために必要な情報を、学習依頼情報として、依頼者から受け付けるステップ、
前記依頼者から受け付けた前記学習依頼情報にしたがって機械学習を行うステップ、
前記機械学習による学習結果に基づいて、前記学習結果として獲得された新たな能力を前記対象装置に追加するデータである能力付与データを生成するステップ、及び
前記能力付与データを前記依頼者に提供するステップ、
を実行する学習サービス提供方法。
Claims (15)
- 対象装置に追加する能力の機械学習を行うために必要な情報を、学習依頼情報として、依頼者から受け付ける、依頼受付部と、
前記依頼者から受け付けた前記学習依頼情報にしたがって機械学習を行う、学習シミュレータと、
前記学習シミュレータによる学習結果に基づいて、前記学習結果として獲得された新たな能力を前記対象装置に追加するデータである能力付与データを生成する、能力付与データ生成部と、
前記能力付与データを前記依頼者に提供するサービス提供部と、
を有することを特徴とする学習サービス提供装置。 - 前記対象装置は、前記対象装置に新たな能力を組み込むためのアーキテクチャを有しており、
前記学習シミュレータは、前記対象装置が有する前記アーキテクチャに整合する能力を獲得するように前記機械学習を行う
ことを特徴とする請求項1に記載の学習サービス提供装置。 - 前記アーキテクチャは、能力を実行する能力部、前記能力部の入力のインタフェースであるデータ入力部、および、前記能力部の出力のインタフェースであるデータ出力部を含む能力獲得モデルによりモデル化されるアーキテクチャであり、
前記学習シミュレータは、前記対象装置の能力獲得モデルと整合する能力獲得モデルを用いて前記機械学習を行う
ことを特徴とする請求項2に記載の学習サービス提供装置。 - 前記学習シミュレータは、前記機械学習の過程において、前記対象装置をモデル化した対象装置モデルを用いて前記対象装置の動作をシミュレーションする
ことを特徴とする請求項1〜3のうちいずれか1項に記載の学習サービス提供装置。 - 前記学習受付部は、前記依頼者から、前記対象装置または前記対象装置モデルを特定する情報を受け付ける
ことを特徴とする請求項4に記載の学習サービス提供装置。 - 前記学習シミュレータは、前記機械学習の過程において、前記対象装置が関係を有する対象をモデル化した対象モデルをさらに用いて前記対象装置の動作をシミュレーションする
ことを特徴とする請求項4又は5のうちいずれか1項に記載の学習サービス提供装置。 - 依頼を受け付け可能な機械学習の種類ごとに、機械学習を行うために必要な情報が記述されたトレーニング情報をあらかじめ記憶するトレーニング情報データベースをさらに有し、
前記依頼受付部は、依頼する機械学習の種類を前記依頼者に指定させ、前記指定された機械学習の種類に対応する前記トレーニング情報を用いて前記学習依頼情報を生成する
ことを特徴とする請求項1〜6のうちいずれか1項に記載の学習サービス提供装置。 - 前記トレーニング情報のうちの一部の項目が、パラメータで定義されたパラメトリック項目であり、
前記依頼受付部は、前記パラメトリック項目について前記依頼者から情報の入力を求める
ことを特徴とする請求項7に記載の学習サービス提供装置。 - 前記機械学習によって新たな能力を獲得するための能力獲得部をさらに有し、
前記トレーニング情報は、学習モデルに関する情報である学習モデル情報を含み、
前記学習モデルは、前記能力獲得部の構成に関する定義、前記能力獲得部の入力に関する定義及び前記能力獲得部の出力に関する定義を含む
ことを特徴とする請求項7又は8に記載の学習サービス提供装置。 - 前記能力獲得部によって獲得される新たな能力は、センサ群から得られる複数のセンサデータを用いて監視を行う能力であり、
前記能力獲得部の入力に関する定義は、複数のセンサデータを含み、
前記能力獲得部の出力に関する定義は、監視結果を含む
ことを特徴とする請求項9に記載の学習サービス提供装置。 - 前記能力獲得部によって獲得される新たな能力は、画像を分類する能力であり、
前記能力獲得部の入力に関する定義は、静止画像の形式を含み、
前記能力獲得部の出力に関する定義は、画像の分類結果を含む
ことを特徴とする請求項10に記載の学習サービス提供装置。 - 前記能力獲得部によって獲得される新たな能力は、動きを予測する能力であり、
前記能力獲得部の入力に関する定義は、動画像の形式を含み、
前記能力獲得部の出力に関する定義は、動きの予測結果を含む
ことを特徴とする請求項10に記載の学習サービス提供装置。 - 前記能力獲得部によって獲得される新たな能力は、運転対象機械の運転能力であり、
前記能力獲得部の入力に関する定義は、センサ入力を含み、
前記能力獲得部の出力に関する定義は、アクチュエータ出力を含む
ことを特徴とする請求項9に記載の学習サービス提供装置。 - コンピュータが、対象装置に追加する能力の機械学習を行うために必要な情報を、学習依頼情報として、依頼者から受け付けるステップ、
コンピュータが、前記依頼者から受け付けた前記学習依頼情報にしたがって機械学習を行うステップ、
コンピュータが、前記機械学習による学習結果に基づいて、前記学習結果として獲得された新たな能力を前記対象装置に追加するデータである能力付与データを生成するステップ、
コンピュータが、前記能力付与データを前記依頼者に提供するステップ、
を有することを特徴とする学習サービス提供方法。 - 請求項14に記載の学習サービス提供方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016049236 | 2016-03-14 | ||
JP2016049236 | 2016-03-14 | ||
PCT/JP2017/009984 WO2017159614A1 (ja) | 2016-03-14 | 2017-03-13 | 学習サービス提供装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2017159614A1 true JPWO2017159614A1 (ja) | 2019-01-10 |
Family
ID=59852222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018505914A Pending JPWO2017159614A1 (ja) | 2016-03-14 | 2017-03-13 | 学習サービス提供装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20180349757A1 (ja) |
EP (1) | EP3432227A4 (ja) |
JP (1) | JPWO2017159614A1 (ja) |
CN (1) | CN108701265A (ja) |
WO (1) | WO2017159614A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3432228A4 (en) | 2016-03-14 | 2019-04-10 | Omron Corporation | DEVICE FOR MAINTAINING EXTENSIBILITY |
US11763143B2 (en) * | 2017-04-19 | 2023-09-19 | AIBrain Corporation | Adding deep learning based AI control |
CN113762504A (zh) * | 2017-11-29 | 2021-12-07 | 华为技术有限公司 | 模型训练系统、方法和存储介质 |
US11537932B2 (en) * | 2017-12-13 | 2022-12-27 | International Business Machines Corporation | Guiding machine learning models and related components |
JP6522173B1 (ja) * | 2018-01-16 | 2019-05-29 | 株式会社エンライブ | 情報処理装置及び情報処理プログラム |
JP7020160B2 (ja) * | 2018-02-13 | 2022-02-16 | 株式会社明電舎 | 水質分析装置 |
JP7122835B2 (ja) * | 2018-02-14 | 2022-08-22 | 株式会社Nttドコモ | 機械翻訳装置、翻訳学習済みモデル及び判定学習済みモデル |
JP7068745B2 (ja) * | 2018-05-28 | 2022-05-17 | 株式会社オプティム | 学習済モデル提案システム、学習済モデル提案方法、およびプログラム |
JP6608010B1 (ja) * | 2018-07-25 | 2019-11-20 | 積水化学工業株式会社 | 制御装置、サーバ、管理システム、コンピュータプログラム、学習モデル及び制御方法 |
US11715111B2 (en) * | 2018-09-25 | 2023-08-01 | Capital One Services, Llc | Machine learning-driven servicing interface |
JP7020438B2 (ja) * | 2019-01-18 | 2022-02-16 | オムロン株式会社 | モデル生成装置、モデル生成方法、モデル生成プログラム、モデル生成システム、検査システム、及び監視システム |
CN111681645B (zh) * | 2019-02-25 | 2023-03-31 | 北京嘀嘀无限科技发展有限公司 | 情绪识别模型训练方法、情绪识别方法、装置及电子设备 |
JP2020154076A (ja) * | 2019-03-19 | 2020-09-24 | 国立研究開発法人情報通信研究機構 | 推論器、学習方法および学習プログラム |
JP7301278B2 (ja) * | 2019-03-22 | 2023-07-03 | 株式会社中電工 | 図面学習装置 |
US11074167B2 (en) * | 2019-03-25 | 2021-07-27 | Aurora Labs Ltd. | Visualization of code execution through line-of-code behavior and relation models |
KR102238424B1 (ko) * | 2019-07-24 | 2021-04-09 | (주)아인스에스엔씨 | 빅데이터 기계학습을 이용한 시스템 모델링방법 |
JP2020063429A (ja) * | 2019-09-10 | 2020-04-23 | 積水化学工業株式会社 | 制御装置、サーバ、管理サーバ、コンピュータプログラム、学習モデル及び制御方法 |
US11023791B2 (en) * | 2019-10-30 | 2021-06-01 | Kyocera Document Solutions Inc. | Color conversion using neural networks |
KR102263743B1 (ko) * | 2020-02-10 | 2021-06-10 | 주식회사 오내모 | 백앤드 서비스 플랫폼에 의한 2차 정련 시뮬레이터 시스템 |
DE102020105697B3 (de) * | 2020-03-03 | 2021-03-04 | Carl Zeiss Meditec Ag | Computerimplementiertes Verfahren zum Auffinden möglicher Artefakte in einem virtuell eingefärbten Histologiebild |
CN111581642A (zh) * | 2020-05-03 | 2020-08-25 | 付贵龙 | 一种互联网安全防护系统 |
CN111800310B (zh) * | 2020-06-17 | 2021-11-26 | 北京智网信测科技有限公司 | 物联网测试云平台任务管理模块排期方法 |
JP7010343B1 (ja) * | 2020-08-20 | 2022-01-26 | トヨタ自動車株式会社 | 機械学習装置 |
JP7480080B2 (ja) * | 2021-02-22 | 2024-05-09 | 株式会社日本製鋼所 | 情報処理方法、情報処理装置、成形機システム及びコンピュータプログラム |
WO2022213702A1 (zh) * | 2021-04-09 | 2022-10-13 | 华为云计算技术有限公司 | 在云平台配置游戏的推理服务的方法、装置及相关设备 |
WO2022253543A1 (en) * | 2021-05-31 | 2022-12-08 | Siemens Aktiengesellschaft | A method for amending or adding functionality to an automation device |
EP4099151A1 (en) * | 2021-05-31 | 2022-12-07 | Siemens Aktiengesellschaft | A method for amending or adding machine learning capabilities to an automation device |
JP6984780B1 (ja) * | 2021-06-30 | 2021-12-22 | 富士電機株式会社 | 情報処理装置、情報処理システム及び情報処理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009059323A (ja) * | 2007-09-04 | 2009-03-19 | Omron Corp | 知識生成システム |
JP2009076027A (ja) * | 2007-09-19 | 2009-04-09 | Korea Electronics Telecommun | ネットワーク基盤のロボットのためのサービス推薦方法およびサービス推薦装置 |
JP2016059323A (ja) * | 2014-09-17 | 2016-04-25 | アルプス電気株式会社 | 容器及びこれを備えた非接触電力伝送システム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132291A (ja) * | 1998-10-21 | 2000-05-12 | Ricoh Co Ltd | 画像形成装置管理システム |
US7231375B2 (en) * | 2003-10-10 | 2007-06-12 | Microsoft Corporation | Computer aided query to task mapping |
GB2446427A (en) * | 2007-02-07 | 2008-08-13 | Sharp Kk | Computer-implemented learning method and apparatus |
JP4427074B2 (ja) * | 2007-06-07 | 2010-03-03 | 株式会社日立製作所 | プラントの制御装置 |
US9152860B2 (en) * | 2013-05-10 | 2015-10-06 | Tantrum Street LLC | Methods and apparatus for capturing, processing, training, and detecting patterns using pattern recognition classifiers |
JP2015038709A (ja) * | 2013-08-19 | 2015-02-26 | 日本電信電話株式会社 | モデルパラメータ推定方法、装置、及びプログラム |
US9390376B2 (en) * | 2013-10-15 | 2016-07-12 | Lockheed Martin Corporation | Distributed machine learning intelligence development systems |
US10417554B2 (en) * | 2014-05-22 | 2019-09-17 | Lee J. Scheffler | Methods and systems for neural and cognitive processing |
-
2017
- 2017-03-13 JP JP2018505914A patent/JPWO2017159614A1/ja active Pending
- 2017-03-13 CN CN201780010916.7A patent/CN108701265A/zh active Pending
- 2017-03-13 WO PCT/JP2017/009984 patent/WO2017159614A1/ja active Application Filing
- 2017-03-13 EP EP17766614.6A patent/EP3432227A4/en not_active Withdrawn
-
2018
- 2018-08-09 US US16/059,100 patent/US20180349757A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009059323A (ja) * | 2007-09-04 | 2009-03-19 | Omron Corp | 知識生成システム |
JP2009076027A (ja) * | 2007-09-19 | 2009-04-09 | Korea Electronics Telecommun | ネットワーク基盤のロボットのためのサービス推薦方法およびサービス推薦装置 |
JP2016059323A (ja) * | 2014-09-17 | 2016-04-25 | アルプス電気株式会社 | 容器及びこれを備えた非接触電力伝送システム |
Also Published As
Publication number | Publication date |
---|---|
EP3432227A4 (en) | 2019-07-10 |
CN108701265A (zh) | 2018-10-23 |
EP3432227A1 (en) | 2019-01-23 |
WO2017159614A1 (ja) | 2017-09-21 |
US20180349757A1 (en) | 2018-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017159614A1 (ja) | 学習サービス提供装置 | |
JP6614466B2 (ja) | 能力付与データ生成装置 | |
JP6551715B2 (ja) | 拡張性保有装置 | |
US10223621B1 (en) | Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation | |
US11055583B1 (en) | Machine learning for computing enabled systems and/or devices | |
US10402731B1 (en) | Machine learning for computer generated objects and/or applications | |
Friedman-Hill | Jess in action: rule-based systems in Java | |
JP7316453B2 (ja) | オブジェクト推薦方法及び装置、コンピュータ機器並びに媒体 | |
US10607134B1 (en) | Artificially intelligent systems, devices, and methods for learning and/or using an avatar's circumstances for autonomous avatar operation | |
US10102449B1 (en) | Devices, systems, and methods for use in automation | |
US20200122039A1 (en) | Method and system for a behavior generator using deep learning and an auto planner | |
CN111652453A (zh) | 用于零件设计、仿真和制造的智能工作流程顾问 | |
Mitchener et al. | Detect, understand, act: A neuro-symbolic hierarchical reinforcement learning framework | |
Capellman | Hands-On Machine Learning with ML. NET: Getting started with Microsoft ML. NET to implement popular machine learning algorithms in C | |
Kaur et al. | A review of platforms for simulating embodied agents in 3D virtual environments | |
Dingli et al. | Interacting with intelligent digital twins | |
Narayanan et al. | Interactive simulations: History, features, and trends | |
JP7466702B2 (ja) | プロトタイプオプションの発見による解釈可能な模倣学習 | |
Nardelli et al. | Comparing tensorflow deep learning performance and experiences using cpus via local pcs and cloud solutions | |
Visser et al. | Integrating the latest artificial intelligence algorithms into the RoboCup rescue simulation framework | |
CN114707070A (zh) | 一种用户行为预测方法及其相关设备 | |
JP6360197B2 (ja) | 知識の認識ベースの処理のためのシステムおよび方法 | |
Obukhov et al. | Methodology for the Development of Adaptive Training Systems Based on Neural Network Methods | |
Roth | Structured representations for behaviors of autonomous robots | |
Hung et al. | Synthesizing machine-learning datasets from parameterizable agents using constrained combinatorial search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180905 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191107 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191227 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20200803 |