JP6603182B2 - 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体 - Google Patents

機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体 Download PDF

Info

Publication number
JP6603182B2
JP6603182B2 JP2016144923A JP2016144923A JP6603182B2 JP 6603182 B2 JP6603182 B2 JP 6603182B2 JP 2016144923 A JP2016144923 A JP 2016144923A JP 2016144923 A JP2016144923 A JP 2016144923A JP 6603182 B2 JP6603182 B2 JP 6603182B2
Authority
JP
Japan
Prior art keywords
value
neural network
circuit
perceptron
network model
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.)
Active
Application number
JP2016144923A
Other languages
English (en)
Other versions
JP2018014060A (ja
Inventor
多佳彦 松島
義人 宮▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FANUC Corp
Original Assignee
FANUC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by FANUC Corp filed Critical FANUC Corp
Priority to JP2016144923A priority Critical patent/JP6603182B2/ja
Priority to US15/648,753 priority patent/US10649416B2/en
Priority to DE102017212270.6A priority patent/DE102017212270A1/de
Priority to CN201710595217.5A priority patent/CN107643728B/zh
Publication of JP2018014060A publication Critical patent/JP2018014060A/ja
Application granted granted Critical
Publication of JP6603182B2 publication Critical patent/JP6603182B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Automation & Control Theory (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Neurology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Feedback Control In General (AREA)
  • Numerical Control (AREA)
  • Image Analysis (AREA)

Description

本発明は、機械学習モデルの構築に関する処理を行うための、機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体に関する。
機械学習を行うことにより、画像認識等の精度を高めることが期待されている。ここで、機械学習の代表的な手法としてニューラルネットワークが挙げられる。
ニューラルネットワークを利用する場合には、解決したい問題に応じた適切なニューラルネットワークのモデルを構築することが重要となる。なぜならば、適切なニューラルネットワークモデルでない場合には、出力の精度が落ちてしまうからである。
このようなニューラルネットワークモデルの構築等に関連する技術が、例えば特許文献1、特許文献2及び特許文献3に開示されている。
まず、特許文献1には、機械学習を行っていないニューラルネットワークに対して、種々のパラメータを設定したスクリプト命令を実行することで、学習を行うツールが開示されている。
また、特許文献2には、大規模なニューラルネットワークを機能単位ごとのブロックに分け、各ブロックに対してニューロンの数や接続規則をパラメータとして設定し、その値に基づいてニューラルネットワークを自動生成する技術が開示されている。
更に、特許文献3には、ニューラルネットワークの学習後の各ニューロンの出力を分析することで、最適なニューロン数を出力する方法が開示されている。
特表2008−533615号公報 特開2001−51968号公報 特開平8−235145号公報
上述したように、各特許文献には、ニューラルネットワークモデルの構築に関する技術が記載されている。
この点、上述するように、機械学習では、解決すべき問題に応じた適切なニューラルネットワークモデルを構築することが重要であるが、モデル構築作業は専門性が要求されるため、ユーザが適切なモデルへとたどり着くのは容易ではないという問題がある。
また、解決すべき問題は個々のユーザによって異なることから、適切なニューラルネットワークも個々のユーザにとって異なるので、決め打ちのニューラルネットワークモデルを有する学習器回路をあらかじめ用意しておくことは柔軟性がないという問題がある。
しかしながら、各特許文献にて開示されている構成では、これらの問題を十分に解決することができなかった、
例えば、特許文献1には、スクリプト作成をアシストする機能として、ニューラルネットワークの接続関係を表示する方法が言及されているが、それによりニューラルネットワークモデルの構造そのものを設定できるわけではない。
また、特許文献2や特許文献3に開示の技術を用いることにより、決め打ちのニューラルネットワークモデルを有する学習器回路をあらかじめ用意しておくことはできるかもしれない。しかしながら、これらの技術を用いたとしても、ユーザ毎に異なっている解決すべき問題それぞれに適した、様々なニューラルネットワークモデルを学習器回路上に柔軟に構築することはできない。
そこで、本発明は、様々なニューラルネットワークモデルを学習器回路上に柔軟に構築することが可能な、機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体を提供することを目的とする。
本発明の機械学習モデル構築装置は、設定値(例えば、後述の設定値Sij)に応じたニューラルネットワークモデルを構築可能な学習器回路(例えば、後述の学習器回路80)と、前記学習器回路に所定のニューラルネットワークモデルを構築するための値となるように前記設定値を調整する制御手段(例えば、後述のCPU11)と、を備える機械学習モデル構築装置である。
上記の機械学習モデル構築装置においては、前記制御手段は、パラメータ値の入力を受け付け、該受け付けたパラメータ値に対応したニューラルネットワークモデルを前記所定のニューラルネットワークモデルとし、該所定のニューラルネットワークモデルを前記学習器回路に構築するための値となるように前記設定値を調整してもよい。
上記の機械学習モデル構築装置においては、前記受け付けたパラメータ値とは、ニューラルネットワークモデルの層数と、各層における次元数とを指定する値(例えば、後述のNlayer及びNdim,j)であるとしてもよい。
上記の機械学習モデル構築装置においては、設定ファイル(例えば、後述のCSVファイル)から前記パラメータ値を読み込んでもよい。
上記の機械学習モデル構築装置においては、前記制御手段は、前記パラメータ値に応じたパーセプトロンの接続関係と、ユーザが前記パーセプトロンの接続関係を参照しながら前記パラメータ値の調整を行うためのグラフィカルユーザインタフェースとを表示手段(例えば後述の表示器/MDIユニット70)に描画してもよい。
上記の機械学習モデル構築装置においては、前記制御手段は、あらかじめ定めたニューラルネットワークモデルをユーザに選択させ、該選択されたニューラルネットワークモデルを前記所定のニューラルネットワークモデルとし、該所定のニューラルネットワークモデルを前記学習器回路に構築するための値となるように前記設定値を調整してもよい。
上記の機械学習モデル構築装置においては、前記制御手段は、前記設定値に応じて前記学習器回路に含まれる各パーセプトロンの出力を制御することにより、前記学習器回路にニューラルネットワークモデルを構築してもよい。
上記の機械学習モデル構築装置においては、前記設定値に応じて前記学習器回路に含まれる各パーセプトロンの出力を制御するとは、前記設定値に応じて前記学習器回路に含まれる各パーセプトロン内の掛け算器の出力を、該掛け算器の入力に重み付け値を乗算した値(例えば、後述のY)、該掛け算器の入力そのものの値(例えば、後述のYin)、及びゼロの値(例えば、後述のY)、の何れかの値とし、各パーセプトロン内の掛け算器の出力の総和を各パーセプトロンの出力(例えば、後述の添字を二文字添えたY)とすることであるとしてもよい。
本発明にかかる数値制御装置(例えば、後述の数値制御装置100)は、工作機械(例えば、後述のサーボモータ50〜54)を制御する数値制御装置であって、上記の機械学習モデル構築装置を備え、前記制御手段は、前記工作機械の制御に関連するニューラルネットワークモデルを前記学習器回路に構築するためのパラメータ値の入力を受け付け、該受け付けたパラメータ値に対応したニューラルネットワークモデルを前記所定のニューラルネットワークモデルとし、該所定のニューラルネットワークモデルを前記学習器回路に構築するための値となるように前記設定値を調整する数値制御装置である。
本発明にかかる機械学習モデル構築プログラムは、コンピュータを機械学習構築装置として機能させるための機械学習モデル構築プログラムであって、前記コンピュータを、設定値に応じたニューラルネットワークモデルを構築可能な学習器回路と、前記学習器回路に所定のニューラルネットワークモデルを構築するための値となるように前記設定値を調整する制御手段と、を備える機械学習モデル構築装置として機能させる機械学習モデル構築プログラムである。
本発明にかかる記録媒体は、コンピュータ読み出し可能な記録媒体であって、上記の機械学習モデル構築プログラムを記録した記録媒体である。
本発明にかかる機械学習モデル構築方法は、設定値に応じたニューラルネットワークモデルを構築可能な学習器回路を備えた機械学習モデル構築装置が行う、機械学習モデル構築方法であって、前記学習器回路に所定のニューラルネットワークモデルを構築するための値となるように前記設定値を調整する制御ステップを備える機械学習モデル構築方法である。
本発明によれば、様々なニューラルネットワークモデルを学習器回路上に柔軟に構築することが可能となる。
本発明の実施形態全体の基本的構成を表す図である。 本発明の実施形態における数値制御装置の基本的構成を表す図である。 本発明の実施形態における学習器回路の基本的構成を表す図である。 本発明の実施形態における各パーセプトロンの接続関係の概要を表す図である。 本発明の実施形態における各パーセプトロンの詳細な接続関係を表す図である。 本発明の実施形態におけるニューラルネットワークモデルの具体例を表す図である。 本発明の実施形態における目的のニューラルネットワークモデルの構築例を表す図である。 本発明の実施形態における目的のニューラルネットワークモデルを構築する場合の入出力を表す図である。 本発明の実施形態におけるパラメータ値の第1の設定画面を表す図である。 本発明の実施形態におけるパラメータ値の第2の設定画面を表す図である。 本発明の実施形態におけるパラメータ値の第3の設定画面を表す図である。 本発明の実施形態におけるパラメータ値の第4の設定画面を表す図である。 本発明の実施形態におけるパラメータ値の第5の設定画面を表す図である。 本発明の実施形態におけるパラメータ値の設定時の動作を表すフローチャートである。 本発明の実施形態における設定値の生成時の動作を表すフローチャートである。 本発明の実施形態における掛け算器及びこれに付随する回路の回路構成を表す図である。
まず、本発明の実施形態の概略を説明する。本発明の実施形態では、学習器回路として、任意のニューラルネットワークモデルを構築するために十分な数のパーセプトロンを備える学習器回路であって、実際に構築するニューラルネットワークモデルに応じて使用するパーセプトロンの数を変更することが可能な学習器回路を用意する。
また、種々のパラメータの設定作業をアシストするユーザインタフェースをユーザに提供する。ユーザは、かかるユーザインタフェースを利用したグラフィカルな編集作業により、種々のパラメータの設定作業を簡便に行うことができる。
そして、ユーザにより設定された種々のパラメータに基づいてニューラルネットワークモデルを構築し、このニューラルネットワークモデルを瞬時に学習器回路に反映する。
これにより、様々なニューラルネットワークモデルに対応した学習器回路を柔軟に構築することが可能となる。すなわち、本実施形態により、上述の[発明が解決すべき課題]を解決することができる。
以上が本発明の実施形態の概略である。
次に、本発明の実施形態について図面を参照して詳細に説明する。
図1を参照すると、本実施形態である機械学習モデル構築システムは、複数の数値制御装置(CNC:Computer Numerical Control)100と、これら複数の数値制御装置100を管理する上位システム200とを備える。
複数の数値制御装置100は、それぞれ制御対象とするサーボモータ等の工作機械(図示を省略する。)と接続されており、これら工作機械を制御する。また、複数の数値制御装置100は、それぞれ学習器回路80を備える。
本実施形態では、上位システム200ではなく、複数の数値制御装置100それぞれがニューラルネットワークモデル構築のための処理を行うことにより、各数値制御装置100自身が備える学習器回路80に様々なニューラルネットワークモデルを構築する。
ここで、仮に数値制御装置100ではなく上位システム200が学習器回路80を備え、かかるニューラルネットワークモデルの構築のための処理を行ったとする。この場合、数値制御装置100が学習器回路80の入力を上位システム200に転送し、上位システム200は学習器回路80の出力を数値制御装置100に転送する。これは、転送に要する時間がボトルネックとなり、学習器回路80の出力結果をリアルタイムに反映することが困難な可能性がある。
そのため、本実施形態では図1に示すように、エッジ側である各数値制御装置100にハードウェア化した学習器回路80を用意し、エッジ側である各数値制御装置100においてニューラルネットワークモデルの構築のための処理を行うこととする。
また、本実施形態では、例えば、工作機械にて工作をする対象となる対象物や工具を画像認識するためにニューラルネットワークモデルを構築する。この場合、構築されたニューラルネットワークでは、カメラにより撮像された画像データが入力され、撮像された物体が対象物や工具である確率が出力される。
また他にも、例えば、工作機械等に異常が発生する前に、異常発生の予兆を検知するためニューラルネットワークモデルを構築する。この場合、構築されたニューラルネットワークでは、複数のセンサそれぞれが測定した測定値が入力され、これから異常が発生するであろう確率が出力される。
次に、図2を参照して、複数の数値制御装置100が備える機能ブロックについて詳細に説明をする。なお、複数の数値制御装置100(数値制御装置100a、数値制御装置100b、及び数値制御装置100c)は、それぞれ同等の機能を有しているので、以下では、これらを区別することなく、単に数値制御装置100と呼んで説明をする。
ここで、本実施形態の数値制御装置100は、工作機械を数値制御する一般的な数値制御装置として機能するのみならず、ニューラルネットワークモデルを構築する機械学習モデル構築装置としても機能する。
図2を参照すると、数値制御装置100は、CPU11、ROM12、RAM13、CMOSメモリ14、インタフェース15、PMC16、I/Oユニット17、インタフェース18、インタフェース19、データ通信バス20、軸制御回路30〜34、サーボアンプ40〜44、サーボモータ50〜54、スピンドル制御回路60、スピンドルアンプ61、スピンドルモータ62、パルスエンコーダ63、表示器/MDIユニット70、外部機器72、及び学習器回路80を備える。
以下、これら各機能ブロックについて説明をする。
CPU11は数値制御装置100を全体的に制御する制御部として機能するプロセッサである。ROM12は、各種のプログラムを格納する記憶装置である。
ここで、ROM12に格納された各種のプログラムとは、一般的な数値制御装置としての機能を実現するためのプログラムと、本実施形態におけるニューラルネットワークの構築のための処理を実現するためのプログラムである。本実施形態におけるニューラルネットワークの構築のための処理を実現するためのプログラムとは、例えば、ユーザがパラメータ値を入力するためのユーザインタフェースを提供する機能や、学習器回路80にニューラルネットワークモデルを構築するための値である設定値を算出する機能や、算出した設定値に基づいて、実際に学習器回路80にニューラルネットワークモデルを構築させる機能といった各種の機能を実現するためのプログラムである。
そして、本実施形態では、CPU11が、ROM12に格納されたプログラムをデータ通信バス20を介して読み出し、読み出したプログラムをRAM13に展開させながら、読み出したプログラムに基づいた演算を行なう。そして、CPU11が、演算結果に基づいて数値制御装置100に含まれるハードウェアを制御することにより、本実施形態の機能を実現する。つまり、本実施形態は、ハードウェアとソフトウェアが協働することにより実現することができる。
RAM13にはCPU11が行う演算処理における一時的な計算データや表示データ、及びインタフェース15や表示器/MDIユニット70を介してユーザが入力した各種データが格納される。ここで、インタフェース15や表示器/MDIユニット70を介してユーザが入力した各種データとは、例えばニューラルネットワークモデルを構築するための種々のパラメータである。
CMOSメモリ14は図示しないバッテリでバックアップされ、数値制御装置100の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。CMOSメモリ14中には、インタフェース15を介して読み込まれた加工プログラムや表示器/MDIユニット70を介して入力された加工プログラム等が記憶される。
ROM12には、上述したシステムプログラムの一部として、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムも書き込まれている。
この各種加工プログラムはインタフェース15や表示器/MDIユニット70を介して入力し、CMOSメモリ14に格納することができる。
インタフェース15は、数値制御装置100とアダプタ等の外部機器72との接続を可能とするものである。外部機器72側からは加工プログラムや各種パラメータ等が読み込まれる。また、数値制御装置100内で編集した加工プログラムは、外部機器72を介して外部記憶手段に記憶させることができる。
PMC(プログラマブル・マシン・コントローラ)16は、一般的にはPLC(プログラマブル・ロジック・コントローラ)と呼ばれる装置である。PMC16は、数値制御装置100に内蔵されたシーケンスプログラムで工作機械の補助装置(例えば、工具交換用のロボットハンドといったアクチュエータ)にI/Oユニット17を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、CPU11に渡す。
表示器/MDIユニット70はディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース18は表示器/MDIユニット70のキーボードからの指令やデータを受けてCPU11に渡す。インタフェース19は手動パルス発生器等を備えた操作盤71に接続されている。
各軸の軸制御回路30〜34はCPU11からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ40〜44に出力する。
サーボアンプ40〜44はこの指令を受けて、各軸のサーボモータ50〜54を駆動する。各軸のサーボモータ50〜54は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路30〜34にフィードバックし、位置・速度のフィードバック制御を行う。なお、ブロック図では、位置・速度のフィードバックについては省略している。
スピンドル制御回路60は、工作機械への主軸回転指令を受け、スピンドルアンプ61にスピンドル速度信号を出力する。スピンドルアンプ61はこのスピンドル速度信号を受けて、工作機械のスピンドルモータ62を指令された回転速度で回転させ、工具を駆動する。
スピンドルモータ62には歯車あるいはベルト等でパルスエンコーダ63が結合され、パルスエンコーダ63が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはデータ通信バス20を経由してCPU11によって読み取られる。
学習器回路80は、任意のニューラルネットワークモデルを構築するために十分な数のパーセプトロンを備える学習器回路であって、実際に構築するニューラルネットワークモデルに応じて使用するパーセプトロンの数を変更することが可能な学習器回路である。学習器回路80は、CPU11からデータ通信バス20を介して設定値を受け取り、受け取った設定値に対応するニューラルネットワークモデルを構築する。
なお、図中において学習器回路80とCPU11は、他の機能ブロックと同様にデータ通信バス20を介して接続されているが、学習器回路80とCPU11をデータ通信バス20以外の、専用のデータ通信バスを設けて接続するようにしてもよい。
次に、図3を参照して学習器回路80の構成について説明をする。図3を参照すると、学習器回路80は、入力部81、出力部82、重み付け記憶部83、設定値記憶部84、及びパーセプトロン回路85を備える。
入力部81は、機械学習における入力値を保持する。入力値は、例えば解析対象とする画像内の各画素の特徴を表す特徴量や、複数のセンサそれぞれが測定した測定値である。これらの入力値は、CPU11や複数のセンサから、これら記憶部に対して入力される。そして、入力部81が保持する入力値は、パーセプトロン回路85に含まれる1層目の各パーセプトロンに対して入力される。
重み付け記憶部83は、パーセプトロン回路85が行う機械学習での演算で使用される重み付け情報を記憶する。また、設定値記憶部84は、パーセプトロン回路85においてニューラルネットワークモデルを構築するための設定値情報を記憶する。これら重み付け情報や、設定値情報は、CPU11から、これら記憶部に対して入力される。そして、これら記憶部が記憶する情報は、パーセプトロン回路85に含まれる各パーセプトロンに対して入力される。
パーセプトロン回路85は、任意のニューラルネットワークモデルを構成するのに十分な数だけのパーセプトロンを備えた回路である。
なお、以下の説明では、各パーセプトロンを「添字を二文字添えたP」で示す。また、図3を含めた各図では、各パーセプトロンを「添字を二文字添えた丸付き文字のP」で示す。かかるPの添字の一文字目はそのパーセプトロンの次元数を表し、添字の二文字目はそのパーセプトロンの層数を表す。例えば、P21であれば、一層目であって二次元目のパーセプトロンであることを表す。
今回、図3では、層数はL、次元数はDまでを示す。層数Lや次元数Dの具体的な値であるが、例えば、パーセプトロン回路85に構築したニューラルネットワークモデルで画像認識を行う場合、層数Lの値は一般的に、L=20〜30ほどである。また、この場合、次元数Dの値は一般的に、D=10万〜100万ほどである。
ただし、これらの値はあくまで一例であり、他の値であってもよい。例えば、Dの値を大きくすることにより(すなわち、パーセプトロンの次元数を増やして、同時に入力することができる入力値の数を増やすことにより)、100万画素を超える画像を対象として画像認識を行うようにしてもよい。すなわち、L及びDは任意の自然数であってよい。
パーセプトロン回路85に含まれる各パーセプトロンは、重み付け記憶部83が記憶する重み付け情報を用いて機械学習の演算を行う。また、パーセプトロン回路85に含まれる各パーセプトロンは、設定値記憶部84が記憶する設定値情報に基づき出力を調整できる機能を持ち、かかる出力を調整する機能により任意のニューラルネットワークモデルを構成する。
出力部83は、パーセプトロン回路85に含まれるL層目の各パーセプトロンの出力から活性化関数によって最終的な出力を算出する。
なお、図中では、図の見やすさを考慮して接続関係の図示を省略している。もっとも実際には、パーセプトロン回路85に含まれる1層目の各パーセプトロンは入力部81と接続されており、L層目の各パーセプトロンは出力部83と接続されている。また、各パーセプトロンは、それぞれ重み付け記憶部83及び設定値記憶部84と接続されている。
また、各パーセプトロン同士も接続されている。次に、パーセプトロン回路85に含まれる各パーセプトロン同士の接続関係について図4を参照して説明をする。
今回は、説明を簡略化するためにパーセプトロン回路85全体に含まれるパーセプトロンの層数と次元数を、上述した一般的な数よりも小さな数であると想定して説明をする。具体的には、パーセプトロン回路85全体に含まれるパーセプトロンの層数が3、次元数が3であるとして説明する。ただし、本実施形態は、このような層数や次元数に限定されるものではないのは、上述した通りである。
パーセプトロン回路85では、各パーセプトロンの出力は、次層のすべてのパーセプトロンへ接続される。例えば、一層目のP21の出力は、二層目のすべてのパーセプトロンであるP21、P22、及びP23のそれぞれに接続される。同様に、一層目のP21の出力や、一層目のP31の出力も、二層目のすべてのパーセプトロンであるP21、P22、及びP23のそれぞれに接続される。ただし、図中では、図の見やすさを考慮して、接続関係の一部について図示を省略する。
重み付け記憶部83、設定値記憶部84には、各パーセプトロンそれぞれについて重み付け情報(すなわち、各パーセプトロンそれぞれについての重み付けの値)や、設定値情報(すなわち、各パーセプトロンそれぞれについての設定値)が保持されているのは上述した通りである。以下の説明及び図中では、重み付けの値を、添字を二文字添えたWで表す。また、設定値を、添字を二文字添えたSで表す。
また、最初の層のパーセプトロンの入力を、添字を二文字添えたXで表し、パーセプトロンの出力を、添字を二文字添えたYで表す。
ここで、これら二文字の添字は、同じ二文字の添字が添えられたパーセプトロンに対応する値であることを意味する。つまり、W11やS11は、P11に対応する重み付けの値や設定値であることを表す。また、X11やY11は、P11に対応する入力や出力であることを表す。
ただし、何れのパーセプトロンと対応するかを特定することなく説明する場合にはこれらの添字を省略して説明をする。
また、各パーセプトロンの重み付けの値は、各パーセプトロンの入力に対して乗算されるものであるが、各パーセプトロンには、前段の層の次元数の数だけ入力がある。そのため、各パーセプトロンの重み付けの値は、1つのパーセプトロンについて次元数の数だけ用意される。重み付けの値について対応する次元数の数も記載する場合は、Wの3文字目の添字とする。本例では、上述したように次元数を3としているので、例えば、W11やW21を例に取ると、各重み付けの値には、以下の[数1]に記載のように3つの添字を付す。
Figure 0006603182
次に、図5を参照して、パーセプトロン回路85に含まれる各パーセプトロンの構成や、各パーセプトロンへの入出力について説明をする。
パーセプトロン回路85に含まれる各パーセプトロンは、次元数と同数の複数の掛け算器と、1つの足し算器を有する。掛け算器は、それぞれの入力と重み付けの値を乗算することにより積を算出し、出力する。足し算器は、複数の掛け算器のすべての出力を加算することにより総和を算出し、出力する。
かかる構成は、一般的なパーセプトロン回路85の機能である。ただし、本実施形態における学習器回路80のパーセプトロン回路85は、設定値に基づいて任意のニューラルネットワークモデルを構築する機能を更に備える。
ここで、任意のニューラルネットワークモデルとは、例えば、図6に示すような各種のニューラルネットワークモデルである。図6では、層数5で次元数が4のパーセプトロン回路85にて任意のニューラルネットワークを構築する例について説明をする。
例えば、図6の上段の左側に記載のように、1つの層を利用しないこととし、4層で4次元のニューラルネットワークモデルを構築することができる。
また、他にも、図6の上段の中央に記載のように、層が増加するに伴い次元数が増加するニューラルネットワークモデルを構築することができる。
更に、他にも、図6の上段の右側に記載のように、層が増加するに伴い次元数が減少するニューラルネットワークモデルを構築することができる。
更に、他にも、図6の下段の左側に記載のように、3層目までは層が増加するに伴い次元数が減少するが、4層目からは層が増加するに伴い次元数も増加するニューラルネットワークモデルを構築することができる。
更に、他にも、図6の下段の右側に記載のように、3層目までは層が増加するに伴い次元数も増加するが、4層目からは層が増加するに伴い次元数が減少するニューラルネットワークモデルを構築することができる。
これら例示したような、任意のニューラルネットワークをパーセプトロン回路85に構築するために、本実施形態では、CPU11が、構築する任意のニューラルネットワークモデルに対応する設定値Sijを算出する。
そして、各パーセプトロンに含まれる掛け算器が、自身に対応する設定値Sijに基づいて、以下の(1)から(3)までの3つの出力のうちの何れかの出力を行う。
(1) 入力Xに重み付けWを乗算した値を出力とする(以降、かかる出力を「Y」と呼ぶ。)
(2) 出力値を「0」とする(以降、かかる出力を「Y」と呼ぶ。)
(3) 入力Xをそのまま出力とする(以降、かかる出力を「Yin」と呼ぶ。)
そして、本実施形態では、設定値Sijを利用して各掛け算器の出力を選択することにより、学習器回路80のパーセプトロン回路85上に任意のニューラルネットワークモデルを構築する。
このように出力を選択してニューラルネットワークモデルを構築する方法について図7に示す具体例を用いて説明する。
ここで、図7の左側には、図3や図4での説明に使用した層数3、次元数3のパーセプトロン回路85を有する学習器回路80が示されている。
この学習器回路80上で、図7の右側に示すニューラルネットワークモデルを構築することを目的とする。かかる目的のニューラルネットワークモデルでは、第2層の32と、第3層全体(すなわち、P13、P23、及びP33)が使用されないパーセプトロンとなっている。
このようなニューラルネットワークモデルを構築するために、各パーセプトロンに含まれる掛け算器は、設定値Sijに基づいて、層の一部又は全体が使用される場合(例の第1層、第2層)と層全体が使用されない場合(例の第3層)で場合分けして次のように出力を選択する。
<層の一部又は全体が使用される場合>
使用されるパーセプトロンの掛け算器の出力:すべてYとする。
使用されないパーセプトロンの掛け算器の出力:すべてYとする。
これによりパーセプトロン内に含まれる足し算器で算出される総和は、使用される掛け算器において通常通り出力された入力と重み付けの値とを乗算した値と、使用されない掛け算器において出力されたゼロの値とを加算した値となる。つまり、使用される層に対応する掛け算器から出力される値のみの総和を算出することができる。
<層全体が使用されない場合>
そのパーセプトロンと同次元のパーセプトロンからの入力が入る掛け算器の出力:Yinとする。
上記以外の出力:すべてYとする。
これにより、同次元のパーセプトロンの入力をそのまま次の層に出力することとなる。つまり、この層を実質的に無効とする。
以上の出力方法により、図7の右側に示すニューラルネットワークモデルを構築する場合の、各パーセプトロンの入出力を図8に示す。各パーセプトロンの出力は以下の[数2]に示すようになる。このように各パーセプトロンが出力を選択することにより、図7の右側に示す目的としたニューラルネットワークモデルが構築できる。
Figure 0006603182
このように、各パーセプトロンに含まれる掛け算器が出力を選択する機能を実現する方法であるが、本実施形態では「設定値Sから出力を変化させる回路構成とする」ことにより実現する。この点について以下詳細に説明する。
なお、以下では、設定値Sの添字としてijを用いる。ここで設定値Sijは設定対象とするパーセプトロンの次元数に対応する変数となる。また、jは設定対象とするパーセプトロンの層数に対応する変数となる。
ここで、設定値Sijは、以下の[数3]のように2つのフラグの値を持つものとする。
Figure 0006603182
また、個々の掛け算器は以下の[数4]のようにflag3の値として1つの値を保持する記憶領域を有する。
Figure 0006603182
ここで、flag3は、学習器回路80の設計時に定まる値である。この点について、図8のP12を例に取って説明すると、3つの掛け算器の内一番上の掛け算器は同次元のパーセプトロンであるP11からの入力Y11が入るので、この掛け算器のflag3の値は「1」となる。
一方で、3つの掛け算器の内の真ん中の掛け算器は同次元ではないパーセプトロンのP21からの入力Y21が入るので、この掛け算器のflag3の値は「0」となる。同様に、3つの掛け算器の内一番下の掛け算器は同次元ではないパーセプトロンのP31からの入力Y31が入るので、この掛け算器のflag3の値は「0」となる。
次に、上述のように設定値Sijを用いる場合の、本実施形態の一連の処理について説明をする。
以下では、構築するニューラルネットワークモデルに対応するパラメータ値の設定についてまず説明をする。
そして、次に設定されたパラメータ値に基づいて、CPU11がflag1、及びflag2の値を算出する方法について説明をする。算出されたflag1、及びflag2の値は、設定値Sijとして各パーセプトロンの掛け算器に設定される。
最後に、このようにして設定されたflag1、及びflag2の値と、各パーセプトロンの掛け算器が保持するflag3の値に基づいて掛け算器の出力を変化させる回路構成について説明をする。
まず、構築するニューラルネットワークモデルに対応するパラメータ値の設定について説明をする。本実施形態では、パラメータ値を設定してニューラルネットワークを構築するためのモードとして以下の3つのモードを用意する。
モード1:グラフィカルインタフェース(以下、適宜「GUI」と呼ぶ。)上で、ユーザの選択に応じてパラメータ値を設定することによりニューラルネットワークモデルを構築するモード。
モード2:外部の設定情報からパラメータ値を読み込むことによりニューラルネットワークモデルを構築するモード。
モード3:GUI上で、ユーザがグラフィカルな編集作業を行うことによりパラメータ値を設定してニューラルネットワークモデルを構築するモード。
以下、これらの各モードに対応する具体的な設定画面について、図を参照して説明をする。これらの設定画面は、CPU11が表示器/MDIユニット70に表示するものとする。また、これらの設定画面を用いたパラメータ値の設定は、ユーザが表示器/MDIユニット70や操作盤71を利用した操作を行うことにより実行されるものとする。なお、本実施形態におけるパラメータ値は、少なくとも、構築するニューラルネットワークの層数と、各層の次元数を指定するものである。
まず、図9にパラメータ値の第1の設定画面の例を示す。本例は、代表的なニューラルネットワークモデルを、ユーザが一覧から選択することができる例であり、上述のモード1に対応する例である。
本例では、選択できる代表的なニューラルネットワークモデルとして、図6に示したようなニューラルネットワークモデルを、デフォルトのニューラルネットワークモデルとして少なくとも1つ用意しておく。
そして、ユーザが用意されているニューラルネットワークモデルを、例えば「モデルA」として選択する。CPU11はかかる選択されたニューラルネットワークモデルを構築するためのパラメータ値が設定されたものする。そして、以後の設定画面の例でも同様だが、設定されたパラメータ値に基づいてflag1、及びflag2の値を算出し、算出したflag1、及びflag2の値は、設定値Sijとして設定値記憶部83に記憶させる。
次に、図10にパラメータ値の第2の設定画面の例を示す。本例では、ユーザから指定された、層数、最上位層の次元数、最下層の次元数、及びタイプに基づいたニューラルネットワークモデルを構築する例であり、上述のモード1に対応する例である。図10に示すのは、次元数単調減少型作成UIであり、層が増加するにつれて次元数が単調に減少していくニューラルネットワークモデルを構築するためのユーザインタフェースである。これは、図6の最上段の右側に示したようなニューラルネットワークモデルを構築するためのユーザインタフェースであり、これ以外にも、図6に示した他のニューラルネットワークモデルを構築するためのユーザインタフェースを設けるようにするとよい。
本例では、ユーザから指定された層数のニューラルネットワークモデルの、最初の層を最上位層とし、最後の層を最下層とする。そして、タイプとして線形が指定されているので、指定された最上層の次元数から、層が増加するにつれて一つずつ次元数が減少していき、最下層では指定された最下層の次元数となるようなニューラルネットワークモデルを構築するためのパラメータ値が設定されたものとする。この場合に、例えばタイプとして2次関数が選択されていたならば、層が増加するにつれて減少する次元数の数を変動させる。例えば、最初の層から層が3層増加すると次元数が1つ減少し、次には、層が2層増加すると次元数が1つ減少し、以降は、層が1層増加すると次元数が1つ減少するようなニューラルネットワークモデルを構築するためのパラメータ値が設定されたものとする。
次に、図11にパラメータ値の第3の設定画面の例を示す。本例は、ユーザから指定された、探索範囲や探索時間といった条件に基づいて自動的に複数のニューラルネットワークモデルの探索を行う例であり、上述のモード1に対応する例である。
本例では、ユーザが、層数の範囲と、次元数の範囲と、探索時間とを指定できるようにする。そして、CPU11は、指定された層数の範囲と、次元数の範囲内で層数と次元数を異ならせながらニューラルネットワークモデルを構築する。そして、指定された探索時間が経過するまでの間、構築したニューラルネットワークモデルでの機械学習を行う。
例えば、指定された層数の範囲が3〜4であり、指定された次元数の範囲が2〜3であれば、1層目の次元数が2であり、2層目の次元数が2であり、3層目の次元数が2であるニューラルネットワークモデルを構築する。そして、この構築したニューラルネットワークモデルにて所定時間機械学習を行う。次に、1層目の次元数が3であり、2層目の次元数が2であり、3層目の次元数が2であるニューラルネットワークモデルを構築する。そして、この構築したニューラルネットワークモデルにて所定時間機械学習を行う。次に、1層目の次元数が3であり、2層目の次元数が3であり、3層目の次元数が2であるニューラルネットワークモデルを構築する。そして、この構築したニューラルネットワークモデルにて所定時間機械学習を行う。このようにして、指定された層数の範囲と、次元数の範囲内で層数と次元数を異ならせながらニューラルネットワークモデルを構築する。
なお所定時間の長さは、指定された層数の範囲と、次元数の範囲内で構築可能なニューラルネットワークモデルの数で、指定時間を除算した時間の長さとする。
そして、ユーザは、構築された全てのニューラルネットワークモデルにおける機械学習の結果を参照することにより、適切と思われるニューラルネットワークモデルを決定することができる。
次に、図12にパラメータ値の第4の設定画面の例を示す。本例は、ユーザが選択したインポート元に存在する外部の設定情報からパラメータ値を読み込む例であり、上述のモード2に対応する例である。
本例では、層数や次元数などのパラメータ値をCSVなどのファイル形式でインポートする。そして、インポートしたパラメータ値が、構築するニューラルネットワークモデルのパラメータ値として設定されたものとする。インポート元は、ユーザが選択することができるようにする。これにより、例えば、他の数値制御装置100にて構築したニューラルネットワークモデルと同様のニューラルネットワークモデルを構築することが可能となる。なお、現在設定されているパラメータ値をCSVなどのファイル形式でエクスポートすることも可能とする。
次に、図13にパラメータ値の第5の設定画面の例を示す。本例は、上述したパラメータ値の第2の設定画面における各パラメータ値の指定を、ユーザがグラフィカルな編集作業を行うことにより実現する例である。本例は、上述のモード3に対応する例である。
本例では、画面上に、ニューラルネットワークの接続関係をグラフィカルに表示する。そして、ユーザがかかるグラフィカルな表示上で編集を行うことにより、構築するニューラルネットワークモデルを指定し、この指定されたニューラルネットワークモデルを構築するためのパラメータ値が設定されたものとする。例えば、上述したパラメータ値の第2の設定画面において、タイプを2次関数とする場合について説明をした。この点、タイプを2次関数とした場合に構築されるニューラルネットワークモデルの形状をユーザがイメージすることは容易でない場合もある。しかし、本例では、構築されるニューラルネットワークモデルの形状をグラフィカルに表示されているため、実際に構築されるニューラルネットワークモデルの形状をイメージした上でパラメータ値を設定することが容易にできる。なお、このようなグラフィカルな編集は、上述した各特許文献では記載も示唆もされていないものである。
次に、これらの設定画面の何れかにより、パラメータ値を設定する場合の、CPU11の動作について図14のフローチャートを参照して説明をする。
ここで説明の前提として、パラメータ値は、その値として以下の、Nlayer及びNdim,jを含む。
layer:構築するニューラルネットワークモデルの層数
dim,j:構築するニューラルネットワークモデルの各層の次元数(ここで、は層数を表す変数である。)
図14に示すように、まず、モード1によって、ニューラルネットワークモデルを構築するためのパラメータ値を設定するか否かを判定する(ステップS11)。
モード1にてパラメータ値を設定するのであれば(ステップS11にてYes)、ステップS12に進む。そして、モード1に対応した設定画面、例えば上述したパラメータ値の第1の設定画面、パラメータ値の第2の設定画面、及びパラメータ値の第3の設定画面の何れかを利用することにより、ユーザがパラメータ値Nlayer及びNdim,jを設定する(ステップS12)。これにより、本パラメータ値の設定処理は終了する。
一方で、モード1にてパラメータ値を設定しないのであれば(ステップS11にてNo)、ステップS13に進む。そして、モード2によって、ニューラルネットワークモデルを構築するためのパラメータ値を設定するか否かを判定する(ステップS13)。
モード2にてパラメータ値を設定するのであれば(ステップS13にてYes)、ステップS14に進む。そして、モード2に対応した設定画面、例えば上述したパラメータ値の第4の設定画面を利用することにより、ユーザが選択したインポート元から、
パラメータ値を取得してNlayer及びNdim,jを設定する(ステップS14)。これにより、本パラメータ値の設定処理は終了する。
一方で、モード2にてパラメータ値を設定しないのであれば(ステップS13にてNo)、ステップS15に進む。そして、モード3によって、ニューラルネットワークモデルを構築するためのパラメータ値を設定する。具体的には、モード3に対応した設定画面、例えば上述したパラメータ値の第5の設定画面を利用することにより、ユーザがグラフィカルな編集方法によりパラメータ値Nlayer及びNdim,jを設定する(ステップS15)。これにより、本パラメータ値の設定処理は終了する。
次に、CPU11が、このように設定されたパラメータ値に基づいて、flag1、及びflag2の値を算出することにより、設定値Sijを生成する処理について図15のフローチャートを参照して説明をする。なお、本処理は、各層の各次元のすべてのパーセプトロンそれぞれに対応する設定値Sijが生成されるまで繰り返される。
まず、今回生成する設定値Sijのjの値とNlayerの値について「j>Nlayer」の関係が成り立つかを判定する(ステップS21)。この関係が成り立つのであれば(ステップS21にてYes)、(ステップS22)に進む。そして、今回生成する設定値Sijのflag1、及びflag2のそれぞれの値を「1」とすることにより、設定値Sijを生成する(ステップS22)。生成した設定値Sijは、設定値記憶部84に記憶させる。これにより、今回生成する設定値Sijの生成処理は終了する。
一方で、今回生成する設定値Sijのj値とNlayerの値について「j>Nlayer」の関係が成り立たないのであれば(ステップS21にてNo)、ステップS23に進む。そして、今回生成する設定値Sijとjの値が共通するNdim,jを選択する。また、この選択したNdim,jの値と、今回生成する設定値Sijのiの値について「i>Ndim,j」の関係が成り立つかを判定する(ステップS23)。この関係が成り立つのであれば(ステップS23にてYes)、ステップS24に進む。そして、今回生成する設定値Sijのflag1の値を「0」とし、flag2の値を「1」とすることにより、設定値Sijを生成する(ステップS24)。生成した設定値Sijは、設定値記憶部84に記憶させる。これにより、今回生成する設定値Sijの生成処理は終了する。
また、今回生成する設定値Sijのiの値と選択したNdim,jの値について「i>Ndim,j」の関係が成り立たないのであれば(ステップS23にてNo)、ステップS25に進む。そして、今回生成する設定値Sijのflag1、及びflag2のそれぞれの値を「0」とすることにより、設定値Sijを生成する(ステップS25)。生成した設定値Sijは、設定値記憶部84に記憶させる。これにより、今回生成する設定値Sijの生成処理は終了する。
以上、図15を参照して説明した処理が、各層の各次元のパーセプトロンそれぞれに対応する設定値Sijが生成されるまで繰り返される。これにより、設定値記憶部84には、各層の各次元のパーセプトロンそれぞれに対応する設定値Sijが格納されることとなる。
次に、このようにして格納された設定値Sijのflag1、flag2の値と、パーセプトロン回路85に含まれる各パーセプトロンの掛け算器が保持しているflag3の値と、掛け算器の出力との関係を以下の[表1]に示す。
Figure 0006603182
そして、掛け算器が、各フラグの値に応じて、[表1]のように出力を行うことを、図16に示す各パーセプトロンの掛け算器の回路構成を参照して説明をする。なお、図16に示す回路構成は、あくまで回路構成例の1つに過ぎず、他の回路構成により同様の動作を実現するようにしてもよい。
図16に示すように、各パーセプトロンの掛け算器は、掛け算器91のみならず、付随する回路として、NOR回路92、AND回路93、AND回路94、AND回路95、及びOR回路96を備える。なお、各パーセプトロンの掛け算器の回路構成は共通しているので、図16では、層数及び次元数を示す添字を付すことなく説明をする。
掛け算器91には、入力Xと重み付け値wが入力される。掛け算器91は、入力Xと重み付け値wを乗算することにより、これらの積であるYをAND回路93の入力端子に入力する。
他方、入力Xは分岐されてAND回路95の入力端子にYinとして入力される。また、NOR回路92の入力端子には、flag1、及びflag2の値が入力される。更に、AND回路94の入力端子には、flag1、及びflag3の値が入力される。
ここまでは、各フラグの値を問うことなく共通の動作となる。
次に、flag1、及びflag3の値が共に「1」の場合について説明をする。これは、上述の[表1]の最上段のケースに対応する。なお、この場合、flag2の値が「1」であるか「0」であるかを問うことなく出力は決定する。
この場合、NOR回路92に入力するflag1の値は「1」であるので、flag2の値が「1」であっても「0」であってもNOR回路92の出力は「0」となる。すると、AND回路93の入力端子に「0」とYが入力されるので、AND回路93の出力はYとなり、OR回路96の入力端子にYが入力される。
また、AND回路94に入力するflag1の値は「1」であり、flag3の値も「1」であるのでAND回路94の出力は「1」となる。すると、AND回路95の入力端子に「1」とYinが入力されるので、AND回路93の出力はYinとなり、OR回路96の入力端子にYinが入力される。
以上より、OR回路96の入力端子には、YとYinが入力されるので、OR回路96の出力はYinとなる。かかる出力は、各パーセプトロン内の足し算器に入力される。
このようにして、上述の[表1]の最上段に示すように出力される。なお、このケースは、層全体を使用せず、同次元の入力が入る掛け算器となったケースである。
次に、flag1の値が「1」でflag3の値が「0」の場合について説明をする。これは、上述の[表1]の上から二段目のケースに対応する。なお、この場合、flag2の値が「1」であるか「0」であるかを問うことなく出力は決定する。
この場合、NOR回路92に入力するflag1の値は「1」であるので、flag2の値が「1」であっても「0」であってもNOR回路92の出力は「0」となる。すると、AND回路93の入力端子に「0」とYが入力されるので、AND回路93の出力はYとなり、OR回路96の入力端子にYが入力される。
また、AND回路94に入力するflag1の値は「1」であり、flag3の値は「0」であるのでAND回路94の出力は「0」となる。すると、AND回路95の入力端子に「0」とYinが入力されるので、AND回路93の出力はYとなり、OR回路96の入力端子にYが入力される。
以上より、OR回路96の入力端子には、YとYが入力されるので、OR回路96の出力はYとなる。かかる出力は、各パーセプトロン内の足し算器に入力される。
このようにして、上述の[表1]の上から二段目に示すように出力される。なお、このケースは、層全体を使用せず、同次元の入力が入る掛け算器以外の掛け算器となったケースである。
次に、flag1の値が「0」でflag2の値が「0」の場合について説明をする。これは、上述の[表1]の上から三段目のケースに対応する。なお、この場合、flag3の値が「1」であるか「0」であるかを問うことなく出力は決定する。
この場合、NOR回路92に入力するflag1の値は「0」であり、NOR回路92に入力するflag2の値も「0」である。そのため、NOR回路92の出力は「1」となる。すると、AND回路93の入力端子に「1」とYが入力されるので、AND回路93の出力はYとなり、OR回路96の入力端子にYが入力される。
また、AND回路94に入力するflag1の値は「0」であり、flag3の値が「1」であっても「0」であってもAND回路94の出力は「0」となる。すると、AND回路95の入力端子に「0」とYinが入力されるので、AND回路93の出力はYとなり、OR回路96の入力端子にYが入力される。
以上より、OR回路96の入力端子には、YとYが入力されるので、OR回路96の出力はYとなる。かかる出力は、各パーセプトロン内の足し算器に入力される。
このようにして、上述の[表1]の上から三段目に示すように出力される。なお、このケースは、使用されるパーセプトロンの掛け算器となったケースである。
次に、flag1の値が「0」でflag2の値が「1」の場合について説明をする。これは、上述の[表1]の上から最下段のケースに対応する。なお、この場合、flag3の値が「1」であるか「0」であるかを問うことなく出力は決定する。
この場合、NOR回路92に入力するflag1の値は「0」であり、NOR回路92に入力するflag2の値は「1」である。そのため、NOR回路92の出力は「0」となる。すると、AND回路93の入力端子に「0」とYが入力されるので、AND回路93の出力はYとなり、OR回路96の入力端子にYが入力される。
また、AND回路94に入力するflag1の値は「0」であり、flag3の値が「1」であっても「0」であってもAND回路94の出力は「0」となる。すると、AND回路95の入力端子に「0」とYinが入力されるので、AND回路93の出力はYとなり、OR回路96の入力端子にYが入力される。
以上より、OR回路96の入力端子には、YとYが入力されるので、OR回路96の出力はYとなる。かかる出力は、各パーセプトロン内の足し算器に入力される。
このようにして、上述の[表1]の上から最下段に示すように出力される。なお、このケースは、層の一部を使用する場合に、その層で使用されないパーセプトロンの掛け算器となったケースである。
以上説明したように、本実施形態では、学習器回路として、任意のニューラルネットワークモデルを構築するために十分な数のパーセプトロンを備える学習器回路であって、実際に構築するニューラルネットワークモデルに応じて使用するパーセプトロンの数を変更することが可能な学習器回路80を用意する。また、CPU11が図14のフローチャートに示したように動作することにより、ユーザから構築するニューラルネットワークモデルに対応するパラメータ値を受け付ける。更に、CPU11が図15のフローチャートに示したように動作することにより、パラメータ値に対応したフラグの値を含む設定値Sijを生成する。更に、図16に示したような回路構成の各パーセプトロンの掛け算器が設定値Sijに応じた出力をする。更に、各パーセプトロンの掛け算器の出力の総和を各パーセプトロンの足し算器が出力する。
このように動作することにより、本実施形態は、図8に示すような出力を実現し、図7に示すように所望のニューラルネットワークモデルを学習器回路80上に構築することができる。つまり、本実施形態は、様々なニューラルネットワークモデルに対応した学習器回路を柔軟に構築することが可能となる、という効果を奏する。
なお、上述した実施形態は、本発明の好適な実施形態ではあるが、上記実施形態のみに本発明の範囲を限定するものではなく、本発明の要旨を逸脱しない範囲において種々の変更を施した形態での実施が可能である。
例えば、学習器回路80が数値制御装置100の外部に存在しており、この学習器回路80と数値制御装置100が何らかのインタフェースで接続されているような構成としてもよい。
また、数値制御装置として機能させるためのプログラムと、ニューラルネットワークモデルの構築を行うためのプログラムとが異なる記憶装置に格納されていてもよく、それぞれのプログラムを異なるCPUが処理してもよい。
更に、ニューラルネットワークモデルの構築を行うための機能を、数値制御装置100ではなくサーバ装置等により実現し、数値制御装置100とは関連しない問題を解決するために、ニューラルネットワークモデルを構築するようにしてもよい。すなわち、本実施形態の適用範囲を数値制御装置100に限定しないようにしてもよい。
また、上述の説明では、「設定値Sから出力を変化させる回路構成とする」ことにより各パーセプトロンに含まれる掛け算器が出力を選択する機能を実現していた。このようにするのではなく、例えば、「重み付け値を調整することによって出力を変化させる」ことにより、各パーセプトロンに含まれる掛け算器が出力を選択する機能を実現するようにしてもよい。この場合、Yを出力させる掛け算器に入力する重み付け値を「W」とし、Yinを出力させる掛け算器に入力する重み付け値を「1」とし、Yを出力させる掛け算器に入力する重み付け値を「0」とすればよい。
なお、上記の数値制御装置は、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の数値制御装置により行なわれるニューラルネットワークモデルの構築方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
本発明は、機械学習のためのモデルの構築を行う用途に広く好適であり、特にニューラルネットワークモデルの構築を行う用途に好適である。
11 CPU
12 ROM
13 RAM
14 CMOSメモリ
15、18、19 インタフェース
16 PMC
17 I/Oユニット
20 データ通信バス
30〜34 軸制御回路
40〜44 サーボアンプ
50〜54 サーボモータ
60 スピンドル制御回路
61 スピンドルアンプ
62 スピンドルモータ
63 パルスエンコーダ
70 表示器/MDIユニット
71 操作盤
72 外部機器
80 学習器回路
81 入力部
82 出力部
83、83a 重み付け記憶部
84、84a 設定値記憶部
85、85a パーセプトロン回路
91 掛け算器
92 NOR回路
93、94、95 AND回路
96 OR回路
100a、100b、100c 数値制御装置

Claims (10)

  1. 少なくとも、使用されないパーセプトロンの場合「1」の値をとり、使用されるパーセプトロンの場合「0」の値をとるフラグを含む設定値に応じたニューラルネットワークモデルを構築可能なハードウェアで実装された学習器回路と、
    前記学習器回路に所定のニューラルネットワークモデルを構築するための値となるような前記設定値を算出する制御手段と、
    を備え、
    前記制御手段は、前記設定値に応じて前記学習器回路に含まれる各パーセプトロン内の掛け算器の出力を、該掛け算器の入力に重み付け値を乗算した値、該掛け算器の入力そのものの値、及びゼロの値、の何れかの値とし、各パーセプトロン内の掛け算器の出力の総和を各パーセプトロンの出力とすることにより、前記学習器回路にニューラルネットワークモデルを構築する、
    機械学習モデル構築装置。
  2. 前記制御手段は、パラメータ値の入力を受け付け、該受け付けたパラメータ値に対応したニューラルネットワークモデルを前記所定のニューラルネットワークモデルとし、該所定のニューラルネットワークモデルを前記学習器回路に構築するための値となるような前記設定値を算出する請求項1に記載の機械学習モデル構築装置。
  3. 前記受け付けたパラメータ値とは、ニューラルネットワークモデルの層数と、各層における次元数とを指定する値である請求項2に記載の機械学習モデル構築装置。
  4. 前記制御手段は、設定ファイルから前記パラメータ値を読み込む請求項2又は3に記載の機械学習モデル構築装置。
  5. 前記制御手段は、前記パラメータ値に応じたパーセプトロンの接続関係と、ユーザが前記パーセプトロンの接続関係を参照しながら前記パラメータ値の調整を行うためのグラフィカルユーザインタフェースとを表示手段に描画する請求項2から4の何れか1項に記載の機械学習モデル構築装置。
  6. 前記制御手段は、あらかじめ定めたニューラルネットワークモデルをユーザに選択させ、該選択されたニューラルネットワークモデルを前記所定のニューラルネットワークモデルとし、該所定のニューラルネットワークモデルを前記学習器回路に構築するための値となるような前記設定値を算出する請求項1から5に記載の機械学習モデル構築装置。
  7. 工作機械を制御する数値制御装置であって、
    請求項1から6までの何れか1項に記載の機械学習モデル構築装置を備え、
    前記制御手段は、前記工作機械の制御に関連するニューラルネットワークモデルを前記学習器回路に構築するためのパラメータ値の入力を受け付け、該受け付けたパラメータ値に対応したニューラルネットワークモデルを前記所定のニューラルネットワークモデルとし、該所定のニューラルネットワークモデルを前記学習器回路に構築するための値となるような前記設定値を算出する数値制御装置。
  8. コンピュータを機械学習構築装置として機能させるための機械学習モデル構築プログラムであって、
    前記コンピュータを、
    少なくとも、使用されないパーセプトロンの場合「1」の値をとり、使用されるパーセプトロンの場合「0」の値をとるフラグを含む設定値に応じたニューラルネットワークモデルを構築可能なハードウェアで実装された学習器回路と、
    前記学習器回路に所定のニューラルネットワークモデルを構築するための値となるような前記設定値を算出する制御手段と、
    を備え、
    前記制御手段は、前記設定値に応じて前記学習器回路に含まれる各パーセプトロン内の掛け算器の出力を、該掛け算器の入力に重み付け値を乗算した値、該掛け算器の入力そのものの値、及びゼロの値、の何れかの値とし、各パーセプトロン内の掛け算器の出力の総和を各パーセプトロンの出力とすることにより、前記学習器回路にニューラルネットワークモデルを構築する、
    機械学習モデル構築装置として機能させる機械学習モデル構築プログラム。
  9. コンピュータが読み出し可能な記録媒体であって、請求項8に記載の機械学習モデル構築プログラムを記録した記録媒体。
  10. 少なくとも、使用されないパーセプトロンの場合「1」の値をとり、使用されるパーセプトロンの場合「0」の値をとるフラグを含む設定値に応じたニューラルネットワークモデルを構築可能なハードウェアで実装された学習器回路を備えた機械学習モデル構築装置が行う、機械学習モデル構築方法であって、
    前記学習器回路に所定のニューラルネットワークモデルを構築するための値となるような前記設定値を算出する制御ステップを備え、
    前記制御ステップでは、前記設定値に応じて前記学習器回路に含まれる各パーセプトロン内の掛け算器の出力を、該掛け算器の入力に重み付け値を乗算した値、該掛け算器の入力そのものの値、及びゼロの値、の何れかの値とし、各パーセプトロン内の掛け算器の出力の総和を各パーセプトロンの出力とすることにより、前記学習器回路にニューラルネットワークモデルを構築する、
    機械学習モデル構築方法。
JP2016144923A 2016-07-22 2016-07-22 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体 Active JP6603182B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016144923A JP6603182B2 (ja) 2016-07-22 2016-07-22 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体
US15/648,753 US10649416B2 (en) 2016-07-22 2017-07-13 Machine learning model construction device, numerical control, machine learning model construction method, and non-transitory computer readable medium encoded with a machine learning model construction program
DE102017212270.6A DE102017212270A1 (de) 2016-07-22 2017-07-18 Erstellungsvorrichtung für Modelle für maschinelles Lernen, numerische Steuerung, Erstellungsverfahren für Modelle für maschinelles Lernen, Erstellungsprogramm für Modelle für maschinelles Lernen und Aufzeichnungsmedium
CN201710595217.5A CN107643728B (zh) 2016-07-22 2017-07-18 机械学习模型构筑装置及方法、数值控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016144923A JP6603182B2 (ja) 2016-07-22 2016-07-22 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
JP2018014060A JP2018014060A (ja) 2018-01-25
JP6603182B2 true JP6603182B2 (ja) 2019-11-06

Family

ID=60951212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016144923A Active JP6603182B2 (ja) 2016-07-22 2016-07-22 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体

Country Status (4)

Country Link
US (1) US10649416B2 (ja)
JP (1) JP6603182B2 (ja)
CN (1) CN107643728B (ja)
DE (1) DE102017212270A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6665412B2 (ja) * 2015-03-23 2020-03-13 株式会社タダノ 作業機械の調整装置
US20190302707A1 (en) * 2018-03-28 2019-10-03 Mitsubishi Electric Research Laboratories, Inc. Anomaly Detection in Manufacturing Systems Using Structured Neural Networks
JP2020086479A (ja) * 2018-11-15 2020-06-04 株式会社日立製作所 計算機、ニューラルネットワークの構築方法、および計算機システム
US11556778B2 (en) * 2018-12-07 2023-01-17 Microsoft Technology Licensing, Llc Automated generation of machine learning models
US10740371B1 (en) 2018-12-14 2020-08-11 Clinc, Inc. Systems and methods for intelligently configuring and deploying a machine learning-based dialogue system
JP2020107012A (ja) * 2018-12-27 2020-07-09 ルネサスエレクトロニクス株式会社 演算処理装置および機械学習方法
US11610134B2 (en) 2019-07-08 2023-03-21 Vianai Systems, Inc. Techniques for defining and executing program code specifying neural network architectures
WO2021009741A1 (en) * 2019-07-14 2021-01-21 Aquabot Ltd. Order fulfillment system
EP3997015A4 (en) * 2019-07-14 2023-08-16 Aquabot Ltd. ORDER EXECUTION SYSTEM
US20210081841A1 (en) * 2019-09-12 2021-03-18 Viani Systems, Inc. Visually creating and monitoring machine learning models
JP7046239B2 (ja) * 2020-01-24 2022-04-01 株式会社日立製作所 画像内のオブジェクト認識のためにニューラルネットワークを生成するための方法及びシステム
CN112000330B (zh) * 2020-07-15 2023-12-22 北京百度网讯科技有限公司 建模参数的配置方法、装置、设备和计算机存储介质
CN112015749B (zh) * 2020-10-27 2021-02-19 支付宝(杭州)信息技术有限公司 基于隐私保护更新业务模型的方法、装置及***
US20240104652A1 (en) * 2021-11-30 2024-03-28 Hcl Technologies Limited Method and system for performing cloud vendor arbitrage using artificial intelligence (ai)

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04663A (ja) * 1990-04-18 1992-01-06 Fujitsu Ltd ニューラルネットワークシミュレータ
KR920002268A (ko) * 1990-07-17 1992-02-28 유끼노리 가까즈 인텔리젠트가공장치
JPH04256158A (ja) * 1991-02-08 1992-09-10 Toshiba Corp ニューロネットワークの方式
JPH0589247A (ja) * 1991-09-26 1993-04-09 Just Syst Corp パターン空間からの特定パターンの分離方法およびその分離装置
JPH05217010A (ja) * 1991-12-13 1993-08-27 Ricoh Co Ltd 信号処理装置
JPH06314105A (ja) * 1993-04-30 1994-11-08 Ishikawajima Harima Heavy Ind Co Ltd ニューラルネットコントローラシステム
JPH0728768A (ja) * 1993-07-14 1995-01-31 Fujitsu Ltd ニューラルネットワークの学習により逆解を求める方法
JPH08235145A (ja) 1995-02-24 1996-09-13 Toyota Motor Corp 応用問題に対して最適なニューラルネットワークの構造を決定する方法
JPH0991263A (ja) * 1995-09-20 1997-04-04 Hitachi Medical Corp ニューラルネットワーク構造最適化装置ならびに方法
JPH09120434A (ja) * 1995-10-24 1997-05-06 Suzuki Motor Corp 文字認識装置
JP2001051968A (ja) 1999-08-05 2001-02-23 Fuji Xerox Co Ltd ニューラルネットワーク構築方法及びニューラルネットワーク処理装置
JP3898686B2 (ja) * 2003-10-20 2007-03-28 ファナック株式会社 数値制御装置
JP2008533615A (ja) 2005-03-14 2008-08-21 エル ターラー、ステフエン ニューラルネットワーク開発およびデータ解析ツール
US8103606B2 (en) * 2006-12-08 2012-01-24 Medhat Moussa Architecture, system and method for artificial neural network implementation
JPWO2010106587A1 (ja) * 2009-03-18 2012-09-13 パナソニック株式会社 ニューラルネットワークシステム
CN101727071A (zh) * 2009-11-13 2010-06-09 上海电力学院 神经网络模型与二次型单神经元pid并行控制方法
US10055434B2 (en) * 2013-10-16 2018-08-21 University Of Tennessee Research Foundation Method and apparatus for providing random selection and long-term potentiation and depression in an artificial network
JP6026490B2 (ja) * 2014-11-07 2016-11-16 ファナック株式会社 パラメータ変更によりncプログラムの起動が可能な数値制御装置
US11157800B2 (en) * 2015-07-24 2021-10-26 Brainchip, Inc. Neural processor based accelerator system and method
US20170330069A1 (en) * 2016-05-11 2017-11-16 Kneron Inc. Multi-layer artificial neural network and controlling method thereof

Also Published As

Publication number Publication date
US20180024510A1 (en) 2018-01-25
CN107643728A (zh) 2018-01-30
JP2018014060A (ja) 2018-01-25
CN107643728B (zh) 2020-10-20
DE102017212270A1 (de) 2018-02-01
US10649416B2 (en) 2020-05-12

Similar Documents

Publication Publication Date Title
JP6603182B2 (ja) 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体
TWI519918B (zh) 多軸控制系統設定及調整機能支援裝置
JP6514257B2 (ja) 機械学習装置、サーボ制御装置、サーボ制御システム、及び機械学習方法
JP6487493B2 (ja) 画像処理システム
JP6234570B2 (ja) 工作機械の制御装置
JP2017167607A (ja) 設定支援装置、設定支援方法、情報処理プログラム、および記録媒体
JPH02293903A (ja) Cad/cam装置
JPH02113305A (ja) スプライン補間方法
JP2019188558A (ja) 工具選定装置及び機械学習装置
US11556110B2 (en) Method and device for generating tool paths
JP2018124929A (ja) 学習モデル構築装置、及び制御情報最適化装置
JP5996148B1 (ja) 多軸制御システム設定調整支援装置
Kim et al. A study on the precision machinability of ball end milling by cutting speed optimization
JP6962964B2 (ja) 機械学習装置、画面予測装置、及び制御装置
JP5788125B1 (ja) システム構築支援装置、方法、および記録媒体
JP6075908B2 (ja) 位置決め制御装置の同期制御設定方法、プログラム及び位置決め制御装置の制御設定装置
US10705489B2 (en) Controller
JP6374456B2 (ja) 電子機器及び数値制御装置
JP2019185467A (ja) 設定装置及び設定プログラム
WO2023084835A1 (ja) パラメータ自動調整装置、パラメータ自動調整システム及びパラメータ自動調整方法
JP2008532130A (ja) 制御装置のインタプリタによるサブプログラムの翻訳のための方法
US20230173670A1 (en) Information processing apparatus, system, information processing method, method of manufacturing products, and recording medium
JP7233521B2 (ja) 検査システム及び検査方法
JP2021060806A (ja) 加工プログラム作成装置
JPS61273606A (ja) Ncデ−タ作成装置における送り速度指定方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190312

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191010

R150 Certificate of patent or registration of utility model

Ref document number: 6603182

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150