以下図面を参照して、機械学習装置、成りすまし検出装置、数値制御装置、生産システム、及び機械学習方法について説明する。各図面において、同様の部材には同様の参照符号が付けられている。また、異なる図面において同じ参照符号が付されたものは同じ機能を有する構成要素であることを意味するものとする。なお、理解を容易にするために、これらの図面は縮尺を適宜変更している。
図1は、工作機械を制御する数値制御装置の一例を概略的に示すブロック図である。
図1に示すように、数値制御装置40は、例えば、バス1009により繋がれたCPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003、I/O(Input/Output)1004、不揮発性メモリ1005、軸制御回路1006、PMC(Programmable Machine Controller)1007、及び表示装置/MDI(Manual Data Input)パネル1008などを含む。表示装置/MDI1008は、操作端末1011、グラフィック制御回路1012、及び表示装置1013などを含む。操作端末111は、例えば、キーボードやタッチパネルからなる。キーボードには、数字キー、文字キー、カーソルキー、Backspaceキー、Deleteキー、ファンクションキーなどが配列されている。
例えば、CPU1001は、ROM1002に格納されたシステムプログラムに従って数値制御装置40全体を制御する。RAM1003には、各種データまたは入出力信号が格納され、また、不揮発性メモリ1005には、例えば、位置情報、速度情報、加速度情報、位置偏差、トルク指令、及び負荷電流値などの各情報が格納される。グラフィック制御回路1012は、ディジタル信号を表示用の信号に変換して表示装置1013に与える。PMC1007は、例えば、工作機械50から状態信号を受け取って、CPU1001に対して所定の入力信号を転送する。軸制御回路1006は、CPU1001から各軸の移動指令を受け取って、軸の指令をサーボアンプ152に出力し、サーボアンプ152は、軸制御回路1006からの移動指令に基づいて、工作機械50に設けられたサーボモータ151を駆動する。
数値制御装置40には、コンピュータ数値制御装置も含まれる。また、数値制御装置40が制御する工作機械50の例としては、例えば、旋盤、ボール盤、中ぐり盤、フライス盤、研削盤、歯切り盤・歯車仕上げ機械、マシニングセンタ、放電加工機、パンチプレス、レーザ加工機、搬送機及び射出成形機などといった様々なものが含まれるが、これら以外のものを工作機械に含めてもよい。
図2は、一実施形態による機械学習装置を示すブロック図である。機械学習装置1は、入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力すると共に、知識の学習を行う機能を有する。本開示の一実施形態では、機械学習装置1は、教師なし学習を適用したものである。教師なし学習とは、入力データのみを大量に機械学習装置1に与えることで、入力データがどのような分布をしているか学習し、対応する教師データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。例えば、それらのデータセットにある特徴を似たものどうしにクラスタリング(clustering)することなどができる。この結果を使って、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル(学習モデル)、すなわち、その関係性を帰納的に獲得するものである。
本開示の一実施形態では、機械学習装置1は、工作機械の数値制御装置の正当な利用権者であるか否かの判定に用いられる、数値制御装置の操作端末に対する入力操作の特徴を学習する。ここで、「正当な利用権者」とは、工作機械の数値制御装置に対して操作権限を有すると認証された者を意味する。利用者が数値制御装置の操作端末を用いて入力操作する際、利用者ごとに、例えば、数値制御装置の操作端末の1つのキーに対する押下継続時間、数値制御装置の操作端末の複数回のキーの押下における押下時間間隔、数値制御装置の操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、表示された文字列を削除する際の削除キーの押し方、数値制御装置の操作端末の上下左右の各カーソルキーの押下順、及び、数値制御装置の操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、などに特徴的な相違(換言すれば、入力操作の癖)が現れる。
例えば、数値制御装置の操作端末の1つのキーの押下時間は、利用者ごとに長短の時間的な違いが現われ易い。また、数値制御装置の操作端末の複数回のキーの押下における押下時間間隔は、利用者のキー入力操作の速さや熟練度によって、利用者ごとに違う。また、数値制御装置の操作端末のDeleteキーとBackspaceキーとの利用頻度の割合については、表示装置1013に表示された文字を削除する場合、操作端末のDeleteキーを使う傾向が多いかBackspaceキーを使う傾向が多いか、利用者ごとに違う。また、表示された文字列を削除する際の削除キーの押し方については、表示装置1013に表示された文字列を削除する場合、長押しをする傾向が多いか細かく分けて押下する傾向が多いか、利用者ごとに違う。また、数値制御装置の操作端末の上下左右の各カーソルキーの押下順については、表示装置1013に表示されたカーソルを右斜め上方向に移動させる場合、操作端末のカーソルキーを「右、上」の順に押下するか「上、右」の順に押下するか、利用者ごとに違う。また、数値制御装置の操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積については、利用者の指自体の大きさや指の力の入れ方によっても異なり、利用者によっては、指ではなくスタイラスや汎用筆記具によって押下することもある。このように、数値制御装置の操作端末に対する入力操作の特徴は、利用者ごとに異なるものである。同一人物であれば毎回の入力操作に同様の特徴が現われる傾向が強く、異なる人物であれば入力操作の特徴が異なる傾向が強い。
一実施形態によれば、機械学習装置1では、工作機械の数値制御装置の操作端末に対する正当な利用権者の入力操作の特徴について、分布及び規則性を表す学習モデルを生成する。機械学習装置1ではさらに、学習モデルに基づいて、数値制御装置の操作端末に対する正当な利用権者の入力操作の特徴を示す正常時スコア、及び、数値制御装置の操作端末に対する検査対象利用者の入力操作の特徴を示す検査対象スコア、を出力する。そして、機械学習装置1により得られた正常時スコアと検査対象スコアとを比較し、検査対象スコアが、正常時スコアの範囲に含まれるときは検査対象利用者は正当な利用権者であると判定し、正常時スコアの範囲に含まれないときは検査対象利用者は正当な利用権者ではないと判定する。ユーザ認証機能を備えた工作機械の数値制御装置に対して操作権限が与えられていない利用者が、パスワード情報を不正に入手して、当該数値制御装置にログインできたとしても、数値制御装置の操作端末の入力操作について得られる検査対象スコアが正常時スコアの範囲に含まれないと判定されることで、当該利用者は、操作権限が与えられている正当な利用権者に成りすました「成りすましの利用者」であることが判明する。
図2に示すように、機械学習装置1は、状態観測部11及び学習部12を備える。
状態観測部11は、工作機械の数値制御装置の操作端末に対する入力操作に関連する状態変数を観測する。状態変数は、操作端末の1つのキーに対する押下継続時間、操作端末の複数回のキーの押下における押下時間間隔、操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、操作端末の上下左右の各カーソルキーの押下順、及び、操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、のうちの少なくとも1つを含む。これら各状態変数は、状態観測部11が数値制御装置から取得するものであるが、数値制御装置の動作として、これら状態変数を状態観測部11に対して送るよう予めプログラムされていてもよい。また、状態観測部11が観測する状態変数は、上記のものを必ずしも全て含んでいる必要はなく、少なくとも1つ含んでいればよい。また、上記した状態変数以外にも、数値制御装置の操作端末に対する入力操作の特徴が現われるものを状態変数として含んでいてもよい。また、観測される状態変数(もしくはこれらの組み合せ)は、状況に応じて適宜設定すればよい。例えば、数値制御装置の動作環境に応じて設定してもよく、数値制御装置を利用する利用者の人選に応じて設定してもよく、数値制御装置が制御する工作機械に応じて設定してもよく、数値制御装置(もしくは工作機械)の動作時期(例えば繁盛期、閑散期、展示会期間中、外部業者による保守期間中などの違い)に応じて設定してもよい。
学習部12は、状態観測部11の出力に基づいて、数値制御装置の正当な利用権者による操作端末に対する入力操作の特徴を学習する。学習部12は、学習モデル生成部21及びスコア生成部22を備える。
学習モデル生成部21は、状態観測部11の出力に基づいて、数値制御装置の正当な利用権者による操作端末に対する入力操作の特徴の分布及び規則性を表す学習モデルを生成する。学習モデル生成部21による学習モデルの生成に用いられる学習アルゴリズムとしては、教師なし学習が適用される。教師なし学習の詳細については後述する。
スコア生成部22は、学習モデル生成部21により生成された学習モデルに基づいて、数値制御装置の操作端末に対する正当な利用権者の入力操作の特徴を示す正常時スコア、及び、数値制御装置の操作端末に対する検査対象利用者の入力操作の特徴を示す検査対象スコア、を出力する。
機械学習装置1は、例えば、数値制御装置内に設けることができる。また、機械学習装置1を、例えば、通信ネットワークを介したクラウドサーバ上に設けてもよく、複数の数値制御装置を制御するセルコントローラ上に設けてもよく、あるいは、セルコントローラのさらに上位の生産管理装置上に設けてもよい。
図3は、一実施形態による機械学習方法の動作フローを示すフローチャートである。
まず、ステップS101において、状態観測部11は、工作機械の数値制御装置の操作端末に対する入力操作に関連する状態変数を観測する。状態変数は、操作端末の1つのキーに対する押下継続時間、操作端末の複数回のキーの押下における押下時間間隔、操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、操作端末の上下左右の各カーソルキーの押下順、及び、操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、のうちの少なくとも1つを含む。
次いで、ステップS102において、学習モデル生成部21は、状態観測部11の出力に基づいて、数値制御装置の正当な利用権者による操作端末に対する入力操作の特徴の分布及び規則性を表す学習モデルを生成する。
ステップS103では、スコア生成部22は、学習モデル生成部21により生成された学習モデルに基づいて、数値制御装置の操作端末に対する正当な利用権者の入力操作の特徴を示す正常時スコアを出力する。
ステップS104では、スコア生成部22は、機械学習装置1が検査モードにあるか学習モードにあるかを判定する。
ステップS104において機械学習装置1が検査モードにあると判定された場合は、ステップS105において、スコア生成部22は、学習モデル生成部21により生成された学習モデルに基づいて、数値制御装置の操作端末に対する検査対象利用者の入力操作の特徴を示す検査対象スコアを出力する。
教師なし学習が適用される機械学習装置1は、例えば、ニューラルネットワークやサポートベクターマシン(Support Vector Machine:SVM)などのアルゴリズムを用いて実現する。また、教師なし学習が適用される機械学習装置1は、GPGPU(General−Purpose computing on Graphics Processing Units)や大規模PCクラスター等を適用すると、より高速な処理を実現することができる。
ここで、ニューラルネットワークについて説明する。ニューラルネットワークは、たとえば図4に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置及びメモリ等で構成される。図4は、ニューロンのモデルを示す模式図である。
図4に示すように、ニューロンは、複数の入力x(図4では、一例として、入力x1〜入力x3)に対する出力yを出力するものである。各入力x1〜x3には、この入力xに対応する重みw(w1〜w3)が掛けられる。これにより、ニューロンは、式1により表現される出力yを出力する。なお、入力x、出力y及び重みwは、すべてベクトルである。また、下記の式1において、θはバイアスであり、fkは活性化関数である。
次に、上述したニューロンを組み合わせた3層の重みを有するニューラルネットワークについて、図5を参照して説明する。図5は、D1〜D3の3層の重みを有するニューラルネットワークを示す模式図である。
図5に示すように、ニューラルネットワークの左側から複数の入力x(ここでは一例として、入力x1〜入力x3)が入力され、右側から結果y(ここでは一例として、結果y1〜結果y3)が出力される。
具体的には、入力x1〜入力x3は、3つのニューロンN11〜N13の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてw1と標記されている。
ニューロンN11〜N13は、それぞれ、z11〜z13を出力する。図5において、これらz11〜z13はまとめて特徴ベクトルz1と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルz1は、重みw1と重みw2との間の特徴ベクトルである。z11〜z13は、2つのニューロンN21、N22の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてw2と標記されている。
ニューロンN21、N22は、それぞれ、z21、z22を出力する。図5において、これらz21、z22は、まとめて特徴ベクトルz2と標記されている。この特徴ベクトルz2は、重みw2と重みw3との間の特徴ベクトルである。特徴ベクトルz21、z22は、3つのニューロンN31〜N33の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてw3と標記されている。
最後に、ニューロンN31〜N33は、それぞれ、結果y1〜結果y3を出力する。
一実施形態による機械学習装置1におけるニューラルネットワークの動作には、学習モードと検査モードとがある。例えば、学習モードにおいて、学習モデル生成部21は、状態変数を用いて重みwを学習して学習モデルを生成し、スコア生成部22は、その学習モデルを用いて数値制御装置の操作端末に対する正当な利用権者の入力操作の特徴を示す正常時スコアを出力する。また、検査モードにおいて、学習モードにおいて学習モデル生成部21が生成した学習モデルを用いて、数値制御装置の操作端末に対する検査対象利用者の入力操作の特徴を示す検査対象スコアを出力する。学習モードと検査モードとの切替えは、例えば、数値制御装置へのログイン前を検査モードとしログイン後を学習モードとしたときのログイン前後での自動切替え、数値制御装置の操作端末に対する特定のキー操作、数値制御装置の上位にあるセルコントローラからの切替え指示、セルコントローラの上位にある生産管理装置からの切替え指示により行われる。
このようなニューラルネットワークは、3層以上にさらに層を増やすことも可能である。
ここで、教師なし学習について説明する。教師なし学習の適用例では、「全てのデータを選り好みなく入力し、学習器に入力データを分類させる」というような例が多いが、一実施形態による機械学習装置1では「正当な利用権者(正常時)のデータ」のみを入力して学習を行う。すなわち、入力データに基づいて「正当な利用権者である/ない」の2通りを判別するため、どちらか一方のデータのみを用いてその特徴を学習すれば、自ずと他方の判別も可能になる。また、全てのデータを選り好みなく入力して分類させる場合には、当然、入力データとして「正当な利用権者でないデータ」を加えなければ十分な学習を行えないが、判定を学習するのに十分な量の「正当な利用権者でないデータ」を収集するのは困難であり、現実的ではない。そこで、一実施形態では、「正当な利用権者(正常時)のデータ」のみを入力として用いて、その特徴量を学習させるという教師なし学習を適用し、正当な利用権者についての正常時スコアを生成する。
以下、入力データから出力(正常時スコア)を得るまでを説明する。図6は、一実施形態による機械学習装置において入力データから正常時スコアを得るまでの一例を説明する図である。ここでは、「ニューラルネットワーク」を機械学習装置1として用いるが、ニューラルネットワークのモデルは、一般的なものを適用することができる。
ニューラルネットワークは、入力部、中間層及び出力部を含み、中間層は、複数層で構成される。ニューラルネットワークの入力部に入力Xを与えると、ニューラルネットワークの出力部からは特徴量であるスコアZが出力される。よって、工作機械の数値制御装置に対して操作権限を有すると認証された者である「正当な利用権者」の、数値制御装置の操作端末に対する入力操作の特徴である「正常時の入力データXn」を入力Xとして、ニューラルネットワークの入力部に与えると、正常なスコア(正常時スコア)の集合が得られることになる。ここで、ニューラルネットワークにおける正常時の入力データXnは、状態観測部11によって観測された状態変数が対応する。すなわち、正当な利用権者の入力データXnは、正当な利用権者による操作端末の1つのキーに対する押下継続時間、正当な利用権者による操作端末の複数回のキーの押下における押下時間間隔、正当な利用権者による操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、正当な利用権者による操作端末の上下左右の各カーソルキーの押下順、及び、操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、のうちの少なくとも1つを含む。
図7は、自己符号化器(オートエンコーダ)を示す図である。図7に示すように、自己符号化器は、ニューラルネットワークの入力部、中間層及び出力部からなる学習モデルに、この学習モデルのうちの入力部及び中間層を反転したものを追加した構成を有する。自己符号化器において、正当な利用権者の入力データXnを入力Xとしてニューラルネットワークの入力部に与えると、追加した中間層及び入力部(すなわち学習モデルのうちの入力部及び中間層を反転したもの)を経由して出力Yが出力される。これにより、正当な利用権者の入力データXn(入力X)と出力データYn(出力Y)の誤差を、||X2n−Yn||2として求めることができる。一実施形態によれば、学習モデル生成部21は、教師なし学習において、正当な利用権者の入力データXnをそのまま正解ラベルとして使用して誤差||X2n−Yn||2を計算し、この誤差が最小となるような学習モデルを生成することで、学習モデルの精度を高める。
スコア生成部22は、学習モードにおいては、学習モデル生成部21により生成された学習モデルに基づいて、工作機械の数値制御装置に対して操作権限を有すると認証された者である「正当な利用権者」の、数値制御装置の操作端末に対する入力操作の特徴である「正当な利用権者の入力データXn」に対して、正常時スコアを出力する。一方、検査モードにおいては、状態観測部11は、工作機械の数値制御装置に対する検査対象利用者の入力操作の特徴を状態変数として観測し、スコア生成部22は、学習モデル生成部21により生成された学習モデルと状態観測部11が観測した状態変数に基づいて、工作機械の数値制御装置に対する検査対象利用者の入力操作の特徴を示す検査対象スコアを出力する。学習モードと検査モードとの切替えは、例えば、数値制御装置へのログイン前を検査モードとしログイン後を学習モードとしたときのログイン前後での自動切替え、数値制御装置の操作端末に対する特定のキー操作、数値制御装置の上位にあるセルコントローラからの切替え指示、セルコントローラの上位にある生産管理装置からの切替え指示により行われる。
なお、機械学習装置1にューラルネットワークを適用する場合、汎用の計算機若しくはプロセッサを用いることもできるが、例えば、GPGPUや大規模PCクラスター等を適用すると、より高速に処理することが可能になる。また、教師なし学習の手法としては、上述したものに限定されず、例えば、k平均(k-means)法による非階層型クラスタリング、あるいは、階層型クラスタリングにおける次元圧縮等の様々な手法を適用することができるのはいうまでもない。
上述の一実施形態の機械学習装置1及び機械学習方法によれば、ユーザ認証機能を備えた工作機械の数値制御装置において、操作権限が与えられた正当な利用権者であるか操作権限が与えられていない成りすましの利用者であるかを的確かつ容易に判定することができる。
なお、機械学習装置1内の学習部12は、正当な利用権者が複数の数値制御装置の操作端末に対して入力操作を行った場合における状態観測部11の出力に従って、当該正当な利用権者による数値制御装置の操作端末に対する入力操作の特徴を学習するように構成されてもよい。この場合、状態観測部11は、正当な利用権者が複数の数値制御装置の操作端末に対して入力操作を行った場合における状態変数を、効率よくかつ大量に観測することができ、結果として、学習モデル生成部21は、大量の状態変数に基づいて学習モデルを生成することができるので、機械学習装置1の学習効果が向上する。機械学習装置1の学習効果が向上すると、後述する成りすまし検出装置の成りすまし検出精度が向上する。
また、機械学習装置1内の学習部12は、状態観測部11の出力及び正当な利用権者の識別情報に基づいて、複数の正当な利用権者のそれぞれについての、数値制御装置の操作端末に対する入力操作の特徴を学習するように構成されてもよい。この場合、学習モデル生成部21は、複数の正当な利用権者のそれぞれについての学習モデルを生成する。
なお、機械学習装置1は、少なくとも1つの他の機械学習装置と接続可能であり、少なくとも1つの他の機械学習装置との間で機械学習の結果を相互に交換または共有するようにしてもよい。複数の機械学習装置1を接続する実施形態の詳細については後述する。
上述の機械学習装置1を用いて、ユーザ認証機能を備えた工作機械の数値制御装置において操作権限が与えられた正当な利用権者であるか操作権限が与えられていない成りすましの利用者であるかを判定する成りすまし検出装置を構成することができる。図8は、一実施形態による成りすまし検出装置を示すブロック図である。
一実施形態による成りすまし検出装置30は、機械学習装置1と、スコア判定部13と、出力部14とを備える。
状態観測部11は、操作端末の1つのキーに対する押下継続時間、操作端末の複数回のキーの押下における押下時間間隔、操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、操作端末の上下左右の各カーソルキーの押下順、及び、操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、のうちの少なくとも1つを含む状態変数を観測する。ここで、状態観測部11は、学習モードにおいては、工作機械の数値制御装置に対して操作権限を有すると認証された者である正当な利用権者に関する状態変数を観測し、検査モードにおいては、数値制御装置の操作端末に対する検査対象利用者に関する状態変数を観測する。
学習モデル生成部21は、状態観測部11の出力に基づいて、数値制御装置の正当な利用権者による操作端末に対する入力操作の特徴の分布及び規則性を表す学習モデルを生成する。なお、学習モデル生成部21が学習モデルを生成するのは学習モード時である。
スコア生成部22は、学習モードにおいて、学習モデル生成部21が生成した学習モデルを用いて、数値制御装置の操作端末に対する正当な利用権者の入力操作の特徴を示す正常時スコアを出力する。一方、スコア生成部22は、検査モードにおいて、学習モードにおいて学習モデル生成部21が生成した学習モデルを用いて、数値制御装置の操作端末に対する検査対象利用者の入力操作の特徴を示す検査対象スコアを出力する。学習モードと検査モードとの切替えは、例えば、数値制御装置へのログイン前を検査モードとしログイン後を学習モードとしたときのログイン前後での自動切替え、数値制御装置の操作端末に対する特定のキー操作、数値制御装置の上位にあるセルコントローラからの切替え指示、セルコントローラの上位にある生産管理装置からの切替え指示により行われる。
スコア判定部13は、検査モードにおいて、検査対象スコアが、正常時スコアの範囲に含まれるときは検査対象利用者は正当な利用権者であると判定し、正常時スコアの範囲に含まれないときは検査対象利用者は正当な利用権者ではないと判定する。
ここで、判定方法の一例を説明する。仮に、機械学習装置1内の学習部22内のスコア生成部22の出力スコアがA、B及びCの3要素ある場合を考える。
学習モデル生成部21による学習モデル生成後、数値制御装置の正当な利用権者による操作端末に対する入力操作の特徴以外の特徴が現われたデータを用意し、機械学習装置1のスコア生成部22に入力する。「正当な利用権者による操作端末に対する入力操作の特徴以外の特徴が現われたデータ」は、当該正当な利用権者が普段の自身の入力操作とは意識的に違った入力操作を行うことで取得してもよく、あるいは、当該正当な利用権者以外の第三者に操作端末を操作させて取得してもよい。スコア生成部22は、正当な利用権者による操作端末に対する入力操作の特徴以外の特徴が現われたデータに基づいてスコア(以下、調整用スコア)を出力する。そして、調整用スコアと正常時スコアとを比較し、正常時のスコア範囲を決める。仮に、正常時スコアにおける各特徴をAt、Bt及びCtとしたとき、スコア判定部13により「正当な利用権者である」と判定されるときの条件1を下記のように決めた場合を考える。なお、At、Bt及びCtは、正当な利用権者についての、操作端末の1つのキーに対する押下継続時間、操作端末の複数回のキーの押下における押下時間間隔、操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、操作端末の上下左右の各カーソルキーの押下順、あるいは、操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積のいずれかに関するものである。
A1<At<A2、B1<Bt<B2、C1<Ct<C2 ・・・ (条件1)
正常時スコアの特徴AtについてはA1及びA2、特徴BtについてはB1及びB2、特徴CtについてはC1及びC2を適宜設定すれば、スコア判定部13による「正当な利用権者である/ではない」の判定結果は異なってくるので、要求される成りすまし検出精度に応じてこれらマージンを適宜設定し、正常時のスコア範囲を調整してもよい。スコア判定部13は、検査対象スコアが上述の条件1の範囲に入らないスコアになったとき、「現在の利用者は正当な利用権者ではない」との判定結果を出力する。
なお、「正当な利用権者による操作端末に対する入力操作の特徴以外の特徴が現われたデータ」の一例を挙げると、操作端末の1つのキーに対する押下継続時間についていえば、例えば、正当な利用権者による操作端末の1つのキーに対する押下継続時間よりも、長くもしくは短く設定した押下継続時間である。操作端末の複数回のキーの押下における押下時間間隔についていえば、例えば、正当な利用権者による複数回のキーの押下における押下時間間隔よりも、長くもしくは短く設定した押下時間間隔である。操作端末のDeleteキーとBackspaceキーとの利用頻度の割合についていえば、例えば、文字を消去する際に正当な利用権者が多用するキーがDeleteキーであるところを、Backspaceキーを多めに利用することである(あるいはその逆もある)。文字列を削除する際の削除キーの押し方についていえば、例えば、正当な利用権者が長押しを頻繁に使うところを、細かく分けて押下する削除の仕方を多めに使うことである(あるいはその逆もある)。操作端末の上下左右の各カーソルキーの押下順についていえば、カーソルを移動させる際に正当な利用権者が利用する上下左右のカーソルキーの押下順を、普段とは異なる押下順にすることである。操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積についていえば、例えば、正当な利用権者がタッチパネルを指(またはスタイラスや汎用筆記具)で押下する際の力を普段よりも強くもしくは弱くすることである。タッチパネルに対する押下力の強弱により、タッチパネル上の押下面積が変わる。
出力部14は、スコア判定部13の判定結果に関するデータを出力する。出力部14により出力された判定結果に関するデータに基づいて、ユーザに対し、現在の利用者は正当な利用権者であるか否かを報知することができる。出力部14にはこのための報知部(図示せず)を接続してもよい。報知部の例としては、パソコン、携帯端末、タッチパネルなどのディスプレイや数値制御装置に付属のディスプレイ(図1の表示装置1013)などがあり、例えば「正当な利用権者である/ではない」を文字や絵柄でディスプレイに表示することができる。また例えば、報知部を、スピーカ、ブザー、チャイムなどのような音を発する音響機器にて実現してもよい。またあるいは、報知部について、プリンタを用いて紙面等にプリントアウトして表示させる形態をとってもよい。またあるいは、これらを適宜組み合わせて報知部を実現してもよい。なお、出力部14によって出力された判定結果に関するデータを、記憶装置に格納し、当該データを何らかの用途に使用してもよい。
成りすまし検出装置30により、工作機械の管理者や生産管理者は、操作権限が与えられていない成りすまし利用者が、正当な利用権者に成りすまして数値制御装置の操作端末を操作していることを知ることができる。成りすまし検出装置30が「正当な利用権者ではない」との結果を出力することで、工作機械の管理者や生産管理者は、例えば、即座に数値制御装置のある現場に駆けつけたり、遠隔操作で操作端末にロックをかけたり、あるいは、警察に通報したりといったような対応を取ることができる。
なお、上述した状態観測部11、学習モデル生成部21及びスコア生成部22を備える学習部12、並びにスコア判定部13は、例えばソフトウェアプログラム形式で構築されてもよく、あるいは各種電子回路とソフトウェアプログラムとの組み合わせで構築されてもよい。例えばこれらをソフトウェアプログラム形式で構築する場合は、このソフトウェアプログラムに従って動作させるための演算処理装置を設けたり、クラウドサーバ上においてこのソフトウェアプログラムを動作させたりすることで、上述の各部の機能を実現することができる。またあるいは、状態観測部11及び学習部12を備える機械学習装置1を、各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路として実現してもよい。またあるいは、状態観測部11及び学習部12を備える機械学習装置1のみならずスコア判定部13も含めた形で、各部の機能を実現するソフトウェアプログラムを書き込んだ半導体集積回路を実現してもよい。
上述の成りすまし検出装置30は、通信ネットワークを介して数値制御装置に接続されてもよい。図9は、一実施形態による、通信ネットワークに接続された成りすまし検出装置を示すブロック図である。一実施形態によれば、成りすまし検出装置30内の機械学習装置1は、通信ネットワーク90を介して複数の数値制御装置40に通信可能に接続され、状態観測部11は、通信ネットワーク90を介して状態変数を観測する。またさらに、機械学習装置1をクラウドサーバ上に設けてもよい。なお、この場合、スコア判定部13については、機械学習装置1に付随してクラウドサーバ上に設けてもよく、あるいは、通信ネットワーク90を介して接続されるクラウドサーバ以外の独立の装置として設けてもよい。
また、上述の成りすまし検出装置30を、数値制御部内に設けてもよい。図10は、一実施形態による、成りすまし検出装置を備える数値制御装置を示すブロック図である。一実施形態によれば、数値制御装置41は、成りすまし検出装置30を備える。数値制御装置41による工作機械50に対する数値制御処理を実行する数値制御部40’の構成自体は、図1を参照して説明した数値制御装置40の構成と同じであるので説明は省略する。状態観測部11は、数値制御部40’内の操作端末1011(図1参照。)の1つのキーに対する押下継続時間、操作端末1011の複数回のキーの押下における押下時間間隔、操作端末1011のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、操作端末1011の上下左右の各カーソルキーの押下順、及び、操作端末1011であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、のうちの少なくとも1つを含む状態変数を観測する。学習部12、スコア判定部13及び出力部14については、既に説明した通りであるので説明は省略する。
続いて、製造セル、セルコントローラ及び生産管理装置を生産システムに上述の成りすまし検出装置30を設けた実施形態について、図11〜図13を参照して説明する。以下で説明する図11〜図13の生産システムにおける製造セル及びセルコントローラの各個数は一例であり、その他の個数であってもよい。
製造セルは、製品を製造する複数の工作機械をフレキシブルに組合せた集合である。製造セルは、例えば複数個もしくは複数種類の工作機械により構築されているが、製造セルにおける工作機械の個数は限定されない。例えば、製造セルは、あるワークが複数の工作機械により順次に処理されることによって最終的な製品となる製造ラインでありうる。また例えば、製造セルは、2つ以上の工作機械の各々により処理された2つ以上の工作物(部品)を製造工程の途中で別の工作機械によって組み合せることにより最終的な工作物(製品)を完成させる製造ラインであってもよい。また例えば、2つ以上の製造セルにより処理された2つ以上の工作物を組み合せることにより、最終的な工作物(製品)を完成させてもよい。製造セルとセルコントローラとは、例えばイントラネットなどのような通信ネットワークを介して通信可能に相互接続される。製造セルは、製品を製造する工場に配置されている。これに対して、セルコントローラは、製造セルが配置された工場に配置されてもよく、あるいは工場とは異なる建屋に配置されてもよい。例えば、セルコントローラは、製造セルが配置された工場の敷地にある別の建屋に配置されていてもよい。
また、セルコントローラの上位には生産管理装置が設けられる。生産管理装置は、セルコントローラと相互通信可能に接続され、セルコントローラに生産計画を指示する。生産管理装置は、例えば、工場から遠隔地にある事務所に配置されていてもよい。この場合には、セルコントローラと生産管理装置とは、例えばインターネットの通信ネットワークを介して通信可能に相互接続される。
このような生産システムについて、成りすまし検出装置30を、各数値制御装置内に設けた場合を第1の実施形態(図11)とし、各セルコントローラ内に設けた場合を第2の実施形態(図12)とし、生産管理装置内に設けた場合を第3の実施形態(図13)として説明する。なお、これら各実施形態は適宜組み合わせて実施されてもよい。
図11は、成りすまし検出装置を有する生産システムの第1の実施形態を示すブロック図である。第1の実施形態では、生産システムにおいて、図8に示した成りすまし検出装置30が各数値制御装置内に設けられる。
第1の実施形態による生産システム101は、複数の製造セル60A、60B、60C、・・・と、セルコントローラ70A、70B、70C、・・・と、生産管理装置80とを備える。
製造セル60Aは、複数の工作機械50A−1、50A−2、・・・と、これら各工作機械に対応して設けられる数値制御装置41A−1、41A−2、・・・とで構成される。同様に、製造セル60Bは、複数の工作機械50B−1、50B−2、・・・と、これら各工作機械に対応して設けられる数値制御装置41B−1、41B−2、・・・とで構成される。製造セル60Cは、複数の工作機械50C−1、50C−2、・・・と、これら各工作機械に対応して設けられる数値制御装置41C−1、41C−2、・・・とで構成される。
数値制御装置41A−1、41A−2、・・・、41B−1、41B−2、・・・、41C−1、41C−2、・・・は、それぞれ、図8を参照して説明した成りすまし検出装置30を備える。すなわち、各数値制御装置41A−1、41A−2、・・・、41B−1、41B−2、・・・、41C−1、41C−2、・・・を単体で見れば、図10を参照して説明した成りすまし検出装置30を備える数値制御装置41と同一といえる。各数値制御装置41A−1、41A−2、・・・、41B−1、41B−2、・・・、41C−1、41C−2、・・・内に設けられた機械学習装置1における状態観測部11(図11では図示せず)は、操作端末の1つのキーに対する押下継続時間、操作端末の複数回のキーの押下における押下時間間隔、操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、操作端末の上下左右の各カーソルキーの押下順、及び、操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、のうちの少なくとも1つを含む状態変数を観測する。各数値制御装置41A−1、41A−2、・・・、41B−1、41B−2、・・・、41C−1、41C−2、・・・内に設けられた機械学習装置1における出力部14(図11では図示せず)は、スコア判定部13(図11では図示せず)による「正当な利用権者である/ではない」という判定結果に関するデータを、当該数値制御装置を制御するために設けられた対応するセルコントローラ70A、70B、70C、・・・へ出力する。
各製造セル60A、60B及び60Cは、セルコントローラ70A、70B及び70Cと通信ネットワークを介して相互通信可能に接続される。セルコントローラ70Aは、製造セル60A内の数値制御装置41A−1、41A−2、・・・を制御する。セルコントローラ70Bは、製造セル60B内の数値制御装置41B−1、41B−2、・・・を制御する。セルコントローラ70Cは、製造セル60C内の数値制御装置41C−1、41C−2、・・・を制御する。
生産管理装置80は、通信ネットワークを介してセルコントローラ70A、70B、70C、・・・と相互通信可能に接続され、セルコントローラ70A、70B、70C、・・・に生産計画を指示する。
第1の実施形態による生産システム101において、セルコントローラ70A、70B、70C、・・・、またはセルコントローラ70A、70B、70C、・・・の上位にある生産管理装置80は、各機械学習装置1の出力部14から出力された「正当な利用権者である/ではない」という判定結果に関するデータに基づいて、各セルコントローラ70A、70B、70C、・・・または生産管理装置に設けられたディスプレイ装置に「正当な利用権者である/ではない」という判定結果を表示させる。その際、複数の数値制御装置のうちのどの数値制御装置が成りすまし利用者によって利用されているかについても表示する。またあるいは、ディスプレイ装置に代えてあるいはディスプレイ装置と共に、音響機器にて警報音やブザーを発生させて「正当な利用権者である/ではない」という判定結果を報知してもよい。これにより、工場で働く作業者や管理者は容易に、現在の数値制御装置の利用者が成りすましであるか否か、成りすましである場合は複数の数値制御装置のうちのどの数値制御装置が成りすまし利用者によって利用されているかを知ることができる。
また、第1の実施形態による生産システム101によれば、各数値制御装置41A−1、41A−2、・・・、41B−1、41B−2、・・・、41C−1、41C−2、・・・に設けられた機械学習装置1より、当該数値制御装置の操作端末に対する入力操作の特徴が分散学習される。同一製造セル内において、機械学習装置1は、当該製造セルのためのセルコントローラを介して他の機械学習装置と相互通信可能に接続されているので、当該他の機械学習装置との間で機械学習の結果を相互に交換または共有してもよい。またあるいは、機械学習装置1は、セルコントローラ70A、70B、70C、・・・の上位にある生産管理装置80を介して他の機械学習装置と相互通信可能に接続されているので、当該他の機械学習装置との間で機械学習の結果を相互に交換または共有してもよい。機械学習装置間で機械学習の結果を相互に交換または共有することで、学習効果をさらに向上させることができる。機械学習装置1の学習効果が向上すると、成りすまし検出装置30の成りすまし検出精度が向上する。
図12は、成りすまし検出装置を有する生産システムの第2の実施形態を示すブロック図である。第2の実施形態では、生産システムにおいて、図8に示した成りすまし検出装置30が各セルコントローラ内に設けられる。
第2の実施形態による生産システム102は、複数の製造セル61A、61B、61C、・・・と、セルコントローラ71A、71B、71C、・・・と、生産管理装置80とを備える。
製造セル61Aは、複数の工作機械50A−1、50A−2、・・・と、これら各工作機械に対応して設けられる数値制御装置40A−1、40A−2、・・・とで構成される。同様に、製造セル61Bは、複数の工作機械50B−1、50B−2、・・・と、これら各工作機械に対応して設けられる数値制御装置40B−1、40B−2、・・・とで構成される。製造セル61Cは、複数の工作機械50C−1、50C−2、・・・と、これら各工作機械に対応して設けられる数値制御装置40C−1、40C−2、・・・とで構成される。数値制御装置40A−1、40A−2、・・・、40B−1、40B−2、・・・、40C−1、40C−2、・・・の構成は、図1を参照して説明した数値制御装置40の構成と同じである。
各製造セル61A、61B及び61Cは、セルコントローラ71A、71B及び71Cと通信ネットワークを介して相互通信可能に接続される。セルコントローラ71Aは、製造セル61A内の数値制御装置40A−1、40A−2、・・・を制御する。セルコントローラ71Bは、製造セル61B内の数値制御装置40B−1、40B−2、・・・を制御する。セルコントローラ71Cは、製造セル61C内の数値制御装置40C−1、40C−2、・・・を制御する。セルコントローラ71A、71B、71C,・・・は、それぞれ、図8を参照して説明した成りすまし検出装置30を備える。セルコントローラ71A、71B、71、・・・内に設けられた機械学習装置1における状態観測部11(図12では図示せず)は、当該セルコントローラが制御する数値制御装置の操作端末の1つのキーに対する押下継続時間、操作端末の複数回のキーの押下における押下時間間隔、操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、操作端末の上下左右の各カーソルキーの押下順、及び、操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、のうちの少なくとも1つを含む状態変数を観測する。セルコントローラ71A、71B、71、・・・内に設けられた機械学習装置1における出力部14(図12では図示せず)は、スコア判定部13(図12では図示せず)による、当該セルコントローラが制御する数値制御装置の利用者についての「正当な利用権者である/ではない」という判定結果に関するデータを、生産管理装置80へ出力する。
生産管理装置80は、通信ネットワークを介してセルコントローラ71A、71B、71C、・・・と相互通信可能に接続され、セルコントローラ71A、71B、71C、・・・に生産計画を指示する。
第2の実施形態による生産システム102において、セルコントローラ71A、71B、71C、・・・、またはセルコントローラ71A、71B、71C、・・・の上位にある生産管理装置80は、各機械学習装置1の出力部14から出力された「正当な利用権者である/ではない」という判定結果に係るデータに基づいて、各セルコントローラ71A、71B、71C、・・・または生産管理装置に設けられたディスプレイ装置に「正当な利用権者である/ではない」という判定結果を表示させる。その際、複数の数値制御装置のうちのどの数値制御装置が成りすまし利用者によって利用されているかについても表示する。またあるいは、ディスプレイ装置に代えてあるいはディスプレイ装置と共に、音響機器にて警報音やブザーを発生させて「正当な利用権者である/ではない」という判定結果を報知してもよい。これにより、工場で働く作業者や管理者は容易に、現在の数値制御装置の利用者が成りすましであるか否か、成りすましである場合は複数の数値制御装置のうちのどの数値制御装置が成りすまし利用者によって利用されているかを知ることができる。
また、第2の実施形態による生産システム102によれば、各セルコントローラ71A、71B、71C、・・・内に設けられた機械学習装置1により、当該セルコントローラにより制御される数値制御装置の操作端末に対する入力操作の特徴が分散学習される。機械学習装置1は、セルコントローラ71A、71B、71C、・・・の上位にある生産管理装置80を介して他の機械学習装置と相互通信可能に接続されているので、当該他の機械学習装置との間で機械学習の結果を相互に交換または共有してもよい。機械学習装置間で機械学習の結果を相互に交換または共有することで、学習効果をさらに向上させることができる。機械学習装置1の学習効果が向上すると、成りすまし検出装置30の成りすまし検出精度が向上する。
図13は、成りすまし検出装置を有する生産システムの第3の実施形態を示すブロック図である。第3の実施形態では、生産システムにおいて、図8に示した成りすまし検出装置30が生産管理装置81内に設けられる。
第3の実施形態による生産システム103は、複数の製造セル61A、61B、61C、・・・と、セルコントローラ70A、70B、70C、・・・と、生産管理装置81とを備える。
製造セル61Aは、複数の工作機械50A−1、50A−2、・・・と、これら各工作機械に対応して設けられる数値制御装置40A−1、40A−2、・・・とで構成される。同様に、製造セル61Bは、複数の工作機械50B−1、50B−2、・・・と、これら各工作機械に対応して設けられる数値制御装置40B−1、40B−2、・・・とで構成される。製造セル61Cは、複数の工作機械50C−1、50C−2、・・・と、これら各工作機械に対応して設けられる数値制御装置40C−1、40C−2、・・・とで構成される。数値制御装置40A−1、40A−2、・・・、40B−1、40B−2、・・・、40C−1、40C−2、・・・の構成は、図1を参照して説明した数値制御装置40の構成と同じである。
各製造セル61A、61B及び61Cは、セルコントローラ70A、70B及び70Cと通信ネットワークを介して相互通信可能に接続される。セルコントローラ70Aは、製造セル61A内の数値制御装置40A−1、40A−2、・・・を制御する。セルコントローラ70Bは、製造セル61B内の数値制御装置40B−1、40B−2、・・・を制御する。セルコントローラ70Cは、製造セル61C内の数値制御装置40C−1、40C−2、・・・を制御する。
生産管理装置81は、通信ネットワークを介してセルコントローラ70A、70B、70C、・・・と相互通信可能に接続され、セルコントローラ70A、70B、70C、・・・に生産計画を指示する。生産管理装置81は、図8を参照して説明した成りすまし検出装置30を備える。生産管理装置81内に設けられた機械学習装置1における状態観測部11(図13では図示せず)は、各数値制御装置の、操作端末の1つのキーに対する押下継続時間、操作端末の複数回のキーの押下における押下時間間隔、操作端末のDeleteキーとBackspaceキーとの利用頻度の割合、文字列を削除する際の削除キーの押し方、操作端末の上下左右の各カーソルキーの押下順、及び、操作端末であるタッチパネルに対する1回の押下におけるタッチパネル上の押下面積、のうちの少なくとも1つを含む状態変数を観測する。生産管理装置81内に設けられた機械学習装置1における出力部14(図13では図示せず)は、スコア判定部13(図13では図示せず)による「正当な利用権者である/ではない」という判定結果を出力する。
第3の実施形態による生産システム103において、生産管理装置81は、機械学習装置1の出力部14から出力された「正当な利用権者である/ではない」という判定結果に係るデータに基づいて、生産管理装置81に設けられたディスプレイ装置に「正当な利用権者である/ではない」という判定結果を表示させる。その際、複数の数値制御装置のうちのどの数値制御装置が成りすまし利用者によって利用されているかについても表示する。またあるいは、ディスプレイ装置に代えてあるいはディスプレイ装置と共に、音響機器にて警報音やブザーを発生させて「正当な利用権者である/ではない」という判定結果を報知してもよい。これにより、工場で働く作業者や管理者は容易に、現在の数値制御装置の利用者が成りすましであるか否か、成りすましである場合は複数の数値制御装置のうちのどの数値制御装置が成りすまし利用者によって利用されているかを知ることができる。またあるいは、生産管理装置81内の機械学習装置1の出力部14から出力された「正当な利用権者である/ではない」という判定結果に係るデータを、各セルコントローラ71A、71B、71C、・・・に転送し、各セルコントローラ71A、71B、71C、・・・に設けられたディスプレイ装置に「正当な利用権者である/ではない」という判定結果を表示させたり、ディスプレイ装置に代えてあるいはディスプレイ装置と共に、音響機器にて警報音やブザーを発生させて「正当な利用権者である/ではない」という判定結果を報知してもよい。
第3の実施形態による生産システム103によれば、生産管理装置81内に設けられた機械学習装置1により、数値制御装置の操作端末に対する入力操作の特徴が学習される。機械学習装置1は、数多くの数値制御装置にて観測された大量の状態変数に基づいて学習モデルを生成することができるので、機械学習装置1の学習効果が向上する。機械学習装置1の学習効果が向上すると、成りすまし検出装置30の成りすまし検出精度が向上する。
以上説明した生産システムは、製造セル、セルコントローラ、及び生産管理システムの3層のネットワークシステムで構成されたものである。この変形として、生産管理システムを省略し、製造セル及びセルコントローラで構成される2層のネットワークシステムにて生産システムを構成してもよく、この場合は、成りすまし検出装置30は製造セル内の数値制御装置またはセルコントローラに設ければよい。またあるいは、4層以上のネットワークシステムにて生産システムを構成してもよく、この場合は、成りすまし検出装置30は、製造セル内の数値制御装置、セルコントローラ、生産管理装置、またはさらに上位の装置に設ければよい。またあるいは、生産システムをさらに外部の通信ネットワークに接続してもよく、この場合、成りすまし検出装置30を、通信ネットワークを介したクラウドサーバ上に設けてもよい。