JP2023005937A - 機械学習モデルを用いて被判別データのクラス判別処理を実行する方法、情報処理装置、及び、コンピュータープログラム - Google Patents

機械学習モデルを用いて被判別データのクラス判別処理を実行する方法、情報処理装置、及び、コンピュータープログラム Download PDF

Info

Publication number
JP2023005937A
JP2023005937A JP2021108236A JP2021108236A JP2023005937A JP 2023005937 A JP2023005937 A JP 2023005937A JP 2021108236 A JP2021108236 A JP 2021108236A JP 2021108236 A JP2021108236 A JP 2021108236A JP 2023005937 A JP2023005937 A JP 2023005937A
Authority
JP
Japan
Prior art keywords
class
classes
data
similarity
machine learning
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
Application number
JP2021108236A
Other languages
English (en)
Inventor
秦 西村
Shin Nishimura
光 倉沢
Hikaru Kurasawa
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2021108236A priority Critical patent/JP2023005937A/ja
Publication of JP2023005937A publication Critical patent/JP2023005937A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

【課題】判別精度が低いクラスに起因するクラス判別精度の低下を抑制する技術を提供する。【解決手段】本開示の方法は、(a)N個の高精度クラスとM個の低精度クラスに関する教師データとを用いて機械学習モデルの学習を実行する工程と、(b)N個の高精度クラスに関する既知特徴スペクトル群を準備する工程と、(c)被判別データのクラス判別処理を実行する工程と、を含む。工程(c)は、(c1)被判別データに対する特徴スペクトルを算出する工程と、(c2)特徴スペクトルと既知特徴スペクトル群との類似度を演算する工程と、(c3)少なくとも1つの高精度クラスに関する類似度が予め設定された閾値以上の場合にはそれらから選択された1つのクラスを被判別データの判別クラスと判定し、すべての高精度クラスに関する類似度が閾値未満の場合には被判別データの判別クラスを未知と判定する工程と、を含む。【選択図】図7

Description

本開示は、機械学習モデルを用いて被判別データのクラス判別処理を実行する方法、情報処理装置、及び、コンピュータープログラムに関する。
特許文献1には、ベクトルニューロンを用いるベクトルニューラルネットワーク型の機械学習モデルとして、カプセルネットワークと呼ばれるものが開示されている。ベクトルニューロンとは、入出力がベクトルであるニューロンを意味する。カプセルネットワークは、カプセルと呼ばれるベクトルニューロンをネットワークのノードとする機械学習モデルである。カプセルネットワークなどのベクトルニューラルネットワーク型の機械学習モデルは、入力データのクラス判別に利用することができる。
米国特許第5210798号公報
しかしながら、従来技術では、判別処理の精度が高いクラスと、判別処理の精度が低いクラスが存在する場合には、判別精度が低いクラスについて正しい判別結果を得ることが困難であり、クラス判別処理全体の精度が低下してしまうという問題があった。
本開示の第1の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理を実行する方法が提供される。この方法は、(a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する工程と、(b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する工程と、(c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する工程と、を含む。前記工程(c)は、(c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する工程と、(c2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する工程と、(c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する工程と、を含む。
本開示の第2の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理を実行する情報処理装置が提供される。この情報処理装置は、前記機械学習モデルを記憶するメモリーと、前記機械学習モデルを用いた演算を実行するプロセッサーと、を備える。前記プロセッサーは、(a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する処理と、(b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する処理と、(c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する処理と、を実行する。前記処理(d)は、(c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、(c2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、(c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する処理と、を含む。
本開示の第3の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する処理と、(b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する処理と、(c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する処理と、を前記プロセッサーに実行させるコンピュータープログラムである。前記処理(c)は、(c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、(c2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、(c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する処理と、を含む。
良否判定システムのブロック図。 機械学習モデルの他の構成を示す説明図。 機械学習モデルの準備工程を示すフローチャート。 検査対象品の例を示す説明図。 特徴スペクトルを示す説明図。 既知特徴スペクトル群の構成を示す説明図。 クラス判別工程の処理手順を示すフローチャート。 被判別データに関するクラス別類似度を求める様子を示す説明図。 高精度クラスと低精度クラスのクラス判別精度を比較的して示すグラフ。 高精度クラスと低精度クラスの類似度を比較して示すグラフ。 クラス別類似度の第1の演算方法を示す説明図。 クラス別類似度の第2の演算方法を示す説明図。 クラス別類似度の第3の演算方法を示す説明図。
A. 実施形態:
図1は、実施形態における良否判定システムを示すブロック図である。この良否判定システムは、情報処理装置100と、カメラ400とを備える。カメラ400は、検査対象品の画像を撮影するためのものである。カメラ400としては、カラー画像を撮影するカメラを用いても良く、或いは、モノクロ画像や分光画像を撮影するカメラを用いても良い。本実施形態では、カメラ400で撮影された画像を教師データや被判別データとして使用するが、画像以外のデータを教師データや被判別データとして使用してもよい。この場合には、カメラ400の代わりに、データの種類に応じた被判別データ取得装置が使用される。
情報処理装置100は、プロセッサー110と、メモリー120と、インターフェイス回路130と、インターフェイス回路130に接続された入力デバイス140及び表示部150と、を有している。インターフェイス回路130には、カメラ400も接続されている。限定されないが例えば、プロセッサー110は、以下で詳述される処理を実行する機能を有するだけでなく、表示部150に、当該処理によって得られるデータ、および当該処理の過程で生成されるデータを表示する機能も有する。
プロセッサー110は、被判別データのクラス判別処理を実行するクラス判別処理部112として機能する。クラス判別処理部112は、類似度演算部310とクラス判別部320とを含む。クラス判別処理部112は、メモリー120に格納されたコンピュータープログラムをプロセッサー110が実行することによって実現される。但し、クラス判別処理部112をハードウェア回路で実現してもよい。本明細書のプロセッサーは、このようなハードウェア回路をも含む用語である。また、クラス判別処理を実行するプロセッサーは、ネットワークを介して情報処理装置100に接続されたリモートコンピューターに含まれるプロセッサーであってもよい。
メモリー120には、機械学習モデル200と、教師データ群TDと、既知特徴スペクトル群KSpと、が格納される。機械学習モデル200は、クラス判別処理部112による処理に使用される。機械学習モデル200の構成例や動作については後述する。教師データ群TDは、機械学習モデル200の学習に使用されるラベル付きのデータの集合である。本実施形態では、教師データ群TDは画像データの集合である。既知特徴スペクトル群KSpは、学習済みの機械学習モデル200に教師データ群TDを入力した際に得られる特徴スペクトルの集合である。特徴スペクトルについては後述する。
図2は、機械学習モデル200の構成を示す説明図である。この機械学習モデル200は、入力データIMの側から順に、畳み込み層210と、プライマリーベクトルニューロン層220と、第1畳み込みベクトルニューロン層230と、第2畳み込みベクトルニューロン層240と、分類ベクトルニューロン層250とを備える。これらの5つの層210~250のうち、畳み込み層210が最も下位の層であり、分類ベクトルニューロン層250が最も上位の層である。以下の説明では、層210~250を、それぞれ「Conv層210」、「PrimeVN層220」、「ConvVN1層230」、「ConvVN2層240」、及び「ClassVN層250」とも呼ぶ。
図2の例では2つの畳み込みベクトルニューロン層230,240を用いているが、畳み込みベクトルニューロン層の数は任意であり、畳み込みベクトルニューロン層を省略してもよい。但し、1つ以上の畳み込みベクトルニューロン層を用いることが好ましい。
図2の各層210~250の構成は、以下のように記述できる。
<機械学習モデル200の構成の記述>
・Conv層210:Conv[32,5,2]
・PrimeVN層220:PrimeVN[16,1,1]
・ConvVN1層230:ConvVN1[12,3,2]
・ConvVN2層240:ConvVN2[6,3,1]
・ClassVN層250:ClassVN[Nm,4,1]
・ベクトル次元VD:VD=16
これらの各層210~250の記述において、括弧前の文字列はレイヤー名であり、括弧内の数字は、順に、チャンネル数、カーネルの表面サイズ、及び、ストライドである。例えば、Conv層210のレイヤー名は「Conv」であり、チャンネル数は32、カーネルの表面サイズは5×5、ストライドは2である。図2では、各層の下にこれらの記述が示されている。各層の中に描かれているハッチングを付した矩形は、隣接する上位層の出力ベクトルを算出する際に使用されるカーネルの表面サイズを表している。本実施形態では、入力データIMが画像データなので、カーネルの表面サイズも2次元である。なお、各層210~250の記述で用いたパラメーターの値は例示であり、任意に変更可能である。
Conv層210は、スカラーニューロンで構成された層である。他の4つの層220~250は、ベクトルニューロンで構成された層である。ベクトルニューロンは、ベクトルを入出力とするニューロンである。上記の記述では、個々のベクトルニューロンの出力ベクトルの次元は16で一定である。以下では、スカラーニューロン及びベクトルニューロンの上位概念として「ノード」という語句を使用する。
図2では、Conv層210について、ノード配列の平面座標を規定する第1軸x及び第2軸yと、奥行きを表す第3軸zとが示されている。また、Conv層210のx,y,z方向のサイズが13,13,32であることが示されている。x方向のサイズとy方向のサイズを「解像度」と呼ぶ。z方向のサイズは、チャンネル数である。これらの3つの軸x,y,zは、他の層においても各ノードの位置を示す座標軸として使用する。但し、図2では、Conv層210以外の層では、これらの軸x,y,zの図示が省略されている。
よく知られているように、畳み込み後の解像度W1は、次式で与えられる。
W1=Ceil{(W0-Wk+1)/S} (1)
ここで、W0は畳み込み前の解像度、Wkはカーネルの表面サイズ、Sはストライド、Ceil{X}はXの小数点以下を切り上げる演算を行う関数である。
図2に示した各層の解像度は、入力データIMの解像度を29とした場合の例であり、実際の各層の解像度は入力データIMのサイズに応じて適宜変更される。
ClassVN層250は、Nm個のチャンネルを有している。図2の例ではNm=2である。一般に、Nmは2以上の整数であり、機械学習モデル200を用いて判別可能なクラスの数である。判別可能なクラス数Nmは、機械学習モデル200毎に異なる値を設定可能である。ClassVN層250の2つのチャンネルからは、2つのクラスに対する判定値Class1~Class2が出力される。通常は、これらの判定値Class1~Class2のうちで最も大きな値を有するクラスが、入力データIMのクラス判別結果として使用される。また、判定値Class1~Class2のうちで最も大きな値が予め定められた閾値未満である場合には、入力データIMのクラスが未知であるものと判定することも可能である。
本開示では、後述するように、出力層であるClassVN層250の判定値Class1~Class2を使用する代わりに、特定のベクトルニューロン層の出力から算出される類似度を使用して、判別クラスを決定する手法を使用する。
図2では、更に、各層210,220,230,240,250における部分領域Rnが描かれている。部分領域Rnの添え字「n」は、各層の符号である。例えば、部分領域R210は、Conv層210における部分領域を示す。「部分領域Rn」とは、各層において、第1軸xの位置と第2軸yとの位置で規定される平面位置(x,y)で特定され、第3軸zに沿った複数のチャンネルを含む領域である。部分領域Rnは、第1軸x、第2軸y、および第3軸zに対応する「Width」×「Height」×「Depth」の次元を有する。本実施形態では、1つの「部分領域Rn」に含まれるノードの数は「1×1×デプス数」、すなわち「1×1×チャンネル数」である。
図2に示すように、ConvVN1層230の出力から後述する特徴スペクトルSp_ConvVN1が算出されて、類似度演算部310に入力される。同様に、ConvVN2層240とClassVN層250の出力から特徴スペクトルSp_ConvVN2,Sp_ClassVNがそれぞれ算出されて類似度演算部310に入力される。類似度演算部310は、これらの特徴スペクトルSp_ConvVN1,Sp_ConvVN,Sp_ClassVNと、予め作成されていた既知特徴スペクトル群KSpとを用いて、後述するクラス別類似度を算出する。
本開示において、類似度の算出に使用されるベクトルニューロン層を、「特定層」とも呼ぶ。特定層としては、1つ以上の任意の数のベクトルニューロン層を使用可能である。なお、特徴スペクトルの構成と、特徴スペクトルを用いた類似度や信頼度の演算方法については後述する。
図3は、機械学習モデルの準備工程の処理手順を示すフローチャートである。ステップS110では、複数のサンプルを撮影することによって、複数のサンプルデータを生成する。
図4は、検査対象品の例を示す説明図である。ここでは、クラックCRを含む第1種のサンプルPDaと、ホコリDSを含む第2種のサンプルPDbの例を示している。この検査対象品に関しては、ホコリDSは不良の原因とはならないが、クラックCRは不良として判断される。ステップS110で撮影されるサンプルは、クラックCRなどの不具合のある複数のサンプルPDaと、クラックCRなどの不具合の無い複数のサンプルPDbと、を含むように選択される。
クラックCRはホコリDSやヨゴレに比べて認識し易いので、第1種のサンプルPDaは、機械学習モデル200を用いたクラス判別の精度が比較的高い。一方、ホコリDSやヨゴレはクラックCRに比べて認識し難いので、第2種のサンプルPDbは、第1種のサンプルPDaに比べてクラス判別の精度が低い。ここで、「クラス判別の精度が低い」という語句は、図2に示した機械学習モデル200の出力層であるClassVN層250250から出力される判定値Class1又はClass2の期待値がより低いことを意味する。
ステップS120では、サンプルデータに対して前処理を適用する。前処理としては、例えば、サイズ調整や、データの正規化(min-max normalization)等の処理を行うことが可能である。図4では、サイズ調整として、第1種のサンプルPDaの画像を、破線で示す分割線によって複数のパッチ画像PPDaに分割した例を示している。これらの個々のパッチ画像PPDaがそれぞれ1つのサンプルPDaのサンプルデータとして使用される。第2種のサンプルPDbの画像も同様である。但し、前処理を省略してもよい。
図3のステップS130では、サンプルデータにラベルを割り当てることによって、複数の教師データ群を作成する。本実施形態では、第1種のサンプルPDaのサンプルデータに対して、ラベル「1」を割り当てるとともに、第2種のサンプルPDbのサンプルデータに対してラベル「2」をそれぞれ割り当てることによって、2つの教師データ群を作成する。これらのラベルは、図2に示した機械学習モデル200の2つのクラスClass1~Class2に対応している。本開示において、「ラベル」と「クラス」は同じものを意味する。
なお、本実施形態では、図4に示した第1種のサンプルPDaと第2種のサンプルPDbから2つのクラスの教師データ群を作成したが、一般には、N,Mをそれぞれ1以上の整数としたとき、クラス判別処理の精度が比較的高いN個のクラスに関する教師データ群と、N個のクラスに比べてクラス判別処理の精度が低いM個のクラスに関する教師データ群とが作成される。以下では、これらのN個のクラスを「高精度クラス」と呼び、M個のクラスを「低精度クラス」と呼ぶ。前述したように、図4の第1種のサンプルPDaからは高精度クラスに関する教師データ群が作成され、第2種のサンプルPDbからは低精度クラスに関する教師データ群が作成される。なお、本実施形態において、ホコリDSを有するサンプルと、ヨゴレを有するサンプルは、いずれも低精度クラスに分類されるが、これらのサンプルを互いに異なるクラスとして分類することが好ましい。このように、クラスをより詳細に分類すれば、機械学習モデル200の内部における処理の精度が高まるので、後述する類似度の精度も高めることが可能である。N,Mは、いずれも1以上の任意の整数に設定可能であるが、M=1とすることが好ましく、Nは2以上とすることが好ましい。
ステップS140では、クラス判別処理部112が、複数の教師データ群を用いて機械学習モデル200の学習を実行する。複数の教師データ群を用いた学習が終了すると、学習済みの機械学習モデル200がメモリー120に保存される。
ステップS150では、学習済みの機械学習モデル200に高精度クラスの複数の教師データを再度入力して、既知特徴スペクトル群KSpを生成する。既知特徴スペクトル群KSpは、以下で説明する特徴スペクトルの集合である。低精度クラスについては、既知特徴スペクトル群を作成する必要は無い。
図5は、学習済みの機械学習モデル200に任意の入力データを入力することによって得られる特徴スペクトルSpを示す説明図である。ここでは、ConvVN1層230の出力から得られる特徴スペクトルSpについて説明する。図5の横軸は、ConvVN1層230の1つの部分領域R230に含まれる複数のノードの出力ベクトルに関するベクトル要素の位置である。このベクトル要素の位置は、各ノードにおける出力ベクトルの要素番号NDと、チャンネル番号NCとの組み合わせで表される。本実施形態では、ベクトル次元が16(各ノードが出力する出力ベクトルの要素の数)なので、出力ベクトルの要素番号NDは0から15までの16個である。また、ConvVN1層230のチャンネル数は12なので、チャンネル番号NCは0から11までの12個である。換言すれば、この特徴スペクトルSpは、1つの部分領域R230に含まれる各ベクトルニューロンの出力ベクトルの複数の要素値を、第3軸zに沿った複数のチャンネルにわたって配列したものである。
図5の縦軸は、各スペクトル位置での特徴値CVを示す。この例では、特徴値CVは、出力ベクトルの各要素の値VNDである。なお、特徴値CVとしては、出力ベクトルの各要素の値VNDと、後述する正規化係数とを乗算した値を使用してもよく、或いは、正規化係数をそのまま使用してもよい。後者の場合には、特徴スペクトルSpに含まれる特徴値CVの数はチャンネル数に等しく、12個である。なお、正規化係数は、そのノードの出力ベクトルのベクトル長さに相当する値である。
1つの入力データに対してConvVN1層230の出力から得られる特徴スペクトルSpの数は、ConvVN1層230の平面位置(x,y)の数、すなわち、部分領域R230の数に等しいので、36個である。同様に、1つの入力データに対して、ConvVN2層240の出力から16個の特徴スペクトルSpが得られ、ClassVN層250の出力から1個の特徴スペクトルSpが得られる。
類似度演算部310は、学習済みの機械学習モデル200に教師データが再度入力されたときに、図5に示す特徴スペクトルSpを算出して、既知特徴スペクトル群KSpとしてメモリー120に登録する。
図6は、既知特徴スペクトル群KSpの構成を示す説明図である。この例では、機械学習モデル200のConvVN1層230の出力から得られた既知特徴スペクトル群KSp_ConvVN1が示されている。ConvVN2層240の出力から得られた既知特徴スペクトル群KSp_ConvVN2と、ClassVN層250の出力から得られた既知特徴スペクトル群KSp_ConvVN1も同様の構成を有しているが、図6では図示が省略されている。なお、既知特徴スペクトル群KSpとしては、すくなくとも1つのベクトルニューロン層の出力から得られたものが登録されていればよい。
既知特徴スペクトル群KSp_ConvVN1の個々のレコードは、ラベルまたはクラスの順序を示すパラメーターiと、特定層の順序を示すパラメーターjと、部分領域Rnの順序を示すパラメーターkと、データ番号を示すパラメーターqと、既知特徴スペクトルKSpとを含んでいる。既知特徴スペクトルKSpは、図5の特徴スペクトルSpと同じものである。
クラスのパラメーターiは、ラベルと同じ値を取る。本実施形態では、1つの高精度クラスについての既知特徴スペクトル群のみが作成されるので、i=1のデータのみが登録されている。特定層のパラメーターjは、3つの特定層230,240,250のいずれであるかを示す1~3の値を取る。部分領域Rnのパラメーターkは、個々の特定層に含まれる複数の部分領域Rnのいずれであるか、すなわち、平面位置(x,y)のいずれであるかを示す値を取る。ConvVN1層230については部分領域R230の数が36個なので、k=1~36である。データ番号のパラメーターqは、同じラベルが付された教師データの番号を示しており、1~max1の値を取る。
なお、ステップS150で使用される複数の教師データTDは、ステップS140で使用された高精度クラスの教師データと同じものである必要は無い。但し、ステップS150においても、ステップS140で使用された高精度クラスの教師データの一部又は全部を利用すれば、新たな教師データを準備する必要が無いという利点がある。
図7は、学習済みの機械学習モデルを用いたクラス判別工程の処理手順を示すフローチャートである。ステップS210では、クラス判別処理部112が、カメラ400に検査対象品を撮影させることによって、被判別データを取得する。ステップS220では、クラス判別処理部112が、被判別データに前処理を適用する。この前処理は、図3のステップS120で使用された前処理と同じ処理である。図4で説明したように、本実施形態では、前処理において、1つの検査対象品の画像を複数のパッチ画像に分割し、それぞれのパッチ画像を被判別データとして作成する。
ステップS230では、クラス判別処理部112が、学習済みの機械学習モデル200に被判別データを入力して、機械学習モデル200の出力から特徴スペクトルSpを算出する。ステップS240では、類似度演算部310が、被判別データの入力に応じて得られた特徴スペクトルSpと、登録済みの既知特徴スペクトル群KSpから、高精度クラスに関する被判別データの類似度を算出する。以下では、この類似度を「クラス別類似度」と呼ぶ。
図8は、被判別データに関するクラス別類似度Sclassを求める様子を示す説明図である。被判別データが機械学習モデル200に入力されると、クラス判別処理部112が、機械学習モデル200のConvVN1層230とConvVN2層240とClassVN層250の出力から、特徴スペクトルSp_ConvVN1,Sp_ConvVN2,Sp_ClassVNをそれぞれ算出する。類似度演算部310は、ConvVN1層230の出力から得られた特徴スペクトルSp_ConvVN1と、既知特徴スペクトル群KSp_ConvVN1とを用いてクラス別類似度Sclass_ConvVN1を算出する。クラス別類似度の具体的な算出方法については後述する。ConvVN2層240とClassVN層250についても、同様にしてクラス別類似度Sclass_ConvVN2,Sclass_ClassVNが算出される。
3つのベクトルニューロン層230,240.250をそれぞれ用いてクラス別類似度Sclass_ConvVN1,Sclass_ConvVN2,Sclass_ClassVNをすべて生成する必要はないが、これらのうちの1つ以上のベクトルニューロン層を用いてクラス別類似度を算出することが好ましい。前述したように、本開示において、類似度の算出に使用されるベクトルニューロン層を、「特定層」と呼ぶ。
類似度演算部310は、これらのクラス別類似度Sclass_ConvVN1,Sclass_ConvVN2,Sclass_ClassVNの少なくとも1つを用いて最終的なクラス別類似度Sclass(i)を算出する。例えば、3つのクラス別類似度Sclass_ConvVN1,Sclass_ConvVN2,Sclass_ClassVNのうちの予め選択された1つを最終的なクラス類似度Sclass(i)としてもよい。或いは、3つのクラス別類似度Sclass_ConvVN1,Sclass_ConvVN2,Sclass_ClassVNの適切な統計処理の結果を、最終的なクラス別類似度Sclass(i)としてもよい。「適切な統計処理の結果」とは、統計的な代表値である。統計的な代表値としては、例えば、最大値と平均値と最小値のうちのいずれかを用いることが可能であり、あるいは、層ごとの類似度の範囲から決定した重みによる重み付き平均などを用いることも可能である。但し、本実施形態では、複数の特定層から得られた複数のクラス別類似度のうちの最小値を採用することが好ましい。このクラス別類似度Sclass(i)は、被判別データが、高精度クラスiに関する教師データに類似する程度を示す指標である。
ステップS250では、クラス判別部320が、高精度クラスに対するクラス別類似度Sclass(i)が、予め定められた閾値以上であるか否かを判定する。ステップS250の判定では、以下の2つの判定方法のいずれかを採用することができる。
<判定方法J1>
N個の高精度クラスのうちの少なくとも1つクラスに関するクラス別類似度Sclass(i)が閾値以上の場合には、クラス別類似度Sclass(i)が最も高いクラスを被判別データの判別クラスと判定する。
<判定方法J2>
N個の高精度クラスのうちの少なくとも1つクラスに関するクラス別類似度Sclass(i)が閾値以上の場合には、クラス別類似度Sclass(i)が閾値以上であるクラスのうち、被判別データに対する機械学習モデル200の出力であるクラス判定値Class1, Class2が最も大きなクラスを被判別データの判別クラスと判定する。
上記判定方法J1では、類似度を用いて高い精度でクラス判別を行うことができる。また、上記判定方法J2では、類似度と機械学習モデルの判別結果の両方を利用して、高い精度でクラス判別を行うことができる。これらの説明から理解できるように、少なくとも1つの高精度クラスに関するクラス別類似度Sclass(i)が閾値以上である場合には、クラス別類似度Sclass(i)が閾値以上であるクラスから選択された1つのクラスを被判別データの判別クラスとして採用することが可能である。
ステップS250において、少なくとも1つの高精度クラスに対するクラス別類似度Sclass(i)が閾値以上である場合には、ステップS260に進み、上記判定方法J1,J2のいずれかに応じて被判別データの判別クラスが決定される。一方、すべての高精度クラスに関するクラス別類似度Sclass(i)が閾値未満の場合には、ステップS270に進み、被判別データのクラスが未知であるものと判定される。なお、図4で説明したように、1つのサンプルの画像を複数のパッチ画像に分割した場合には、そのすべてのパッチ画像について、高精度クラスに対するクラス別類似度Sclass(i)が閾値以上である場合に、そのサンプルが高精度クラスに属するものと判定される。ステップS270では、被判別データが低精度クラスに属するものと判定してもよいが、低精度クラスが複数のクラスに分類されている場合にも、複数の低精度クラスのいずれに属するものかについては判定されない。この理由は、低精度クラスはそもそもクラス判別精度が低いので、複数の低精度クラスを区別するのが困難だからである。
図9は、高精度クラスと低精度クラスのクラス判別精度を比較的して示すグラフである。高精度クラスのサンプルとしては、図4に示したクラックCRを含む複数のサンプルを用い、低精度クラスのサンプルとしてはクラックCRを含まずホコリDSを含む複数のサンプルを用いている。図9の横軸はサンプル番号の序数であり、縦軸は機械学習200の出力層から出力される判定値Class(i)に応じた集計結果である。なお、この例では、個々のサンプルについての1枚の画像から小さなストライドで多数枚のパッチ画像を抽出し、各パッチ画像の判定値Class(i)に応じて、高精度クラスに属するものと判定されたら+1を加算し、低精度クラスに属するものと判定されたら-1を加算することによって、集計結果を算出した。前述したように、高精度サンプルは、判定値Class(i)の期待値が十分に高いので、その被判別データのクラスを正しく判定することが可能である。なお、「判定値Class(i)の期待値」は、任意に選択された多数の被判別データについての判定値Class(i)の平均値である。一方、低精度サンプルは、判定値Class(i)の期待値が低いので、その被判別データのクラスを正しく判定することが困難な場合が多い。そこで、本実施形態では、判定値Class(i)を用いる代わりに、クラス別類似度Sclass(i)を用いてクラス判別を実行する。
図10は、高精度クラスと低精度クラスの類似度を比較して示すグラフである。サンプルとしては、図9に示した例と同じものを使用している。図10の横軸はサンプル番号の序数であり、縦軸は機械学習200の高精度クラスに関するクラス別類似度Sclass(i=1)である。クラス別類似度Sclass(i=1)が閾値Th以上の場合には、その被判別データが高精度クラスに属するものと判定され、閾値Th未満の場合には、その被判別データのクラスが未知であるものと判定される。この例からも理解できるように、高精度クラスに関するクラス別類似度Sclass(i=1)を用いて被判別データが高精度クラスに属するか否かを判定すれば、クラス判別処理全体の精度を高めることができる。
以上のように、本実施形態では、N個の高精度クラスのうちの少なくとも1つクラスに関する類似度が予め設定された閾値以上の場合には、その類似度が最も高いクラスを被判別データの判別クラスと判定し、N個の高精度クラスのすべてに関する類似度が閾値未満の場合には被判別データの判別クラスを未知と判定するので、クラス判別処理全体の精度を高めることができる。
B. 類似度の算出方法:
上述したクラス別類似度の演算方法としては、例えば、以下の3つの方法のいずれかを採用可能である。
(1)特徴スペクトルSpと既知特徴スペクトル群KSpにおける部分領域Rnの対応を考慮せずにクラス別類似度を求める第1の演算方法M1
(2)特徴スペクトルSpと既知特徴スペクトル群KSpの対応する部分領域Rn同士でクラス別類似度を求める第2の演算方法M2
(3)部分領域Rnを全く考慮せずにクラス別類似度を求める第3の演算方法M3
以下では、これらの3つの演算方法M1,M2,M3に従って、ConvVN1層230の出力からクラス別類似度Sclass_ConvVN1を算出する方法について順次説明する。なお、以下の説明では、被判別データのパラメーターqは省略している。
図11は、クラス別類似度の第1の演算方法M1を示す説明図である。第1の演算方法M1では、まず、特定層であるConvVN1層230の出力から、部分領域k毎に各クラスiに対する類似度を示す局所類似度S(i,j,k)が算出される。なお、図11では図示を簡略化するために部分領域kの数を6としているが、図2の機械学習モデル200ではk=36である。これらの局所類似度S(i,j,k)から、図11の右側に示す3種類のクラス別類似度Sclass(i,j)のいずれかが算出される。クラス別類似度Sclass(i,j)は、図8に示したクラス別類似度Sclass_ConvVN1と同じものである。
第1の演算方法M1において、局所類似度S(i,j,k)は次式を用いて算出される。
S(i,j,k)=max[G{Sp(j,k), KSp(i,j,k=all,q=all)}] (c1)
ここで、
iは、クラスを示すパラメーター、
jは、特定層を示すパラメーター、
kは、部分領域Rnを示すパラメーター、
qは、データ番号を示すパラメーター、
G{a,b}は、aとbの類似度を求める関数、
Sp(j,k)は、被判別データに応じて、特定層jの特定の部分領域kの出力から得られる特徴スペクトル、
KSp(i,j,k=all,q=all)は、図6に示した既知特徴スペクトル群KSpのうち、クラスiに関連付けられた、特定層jのすべての部分領域kにおけるすべてのデータ番号qの既知特徴スペクトル、
max[X]は、Xの値のうちの最大値を取る論理演算である。
なお、類似度を求める関数G{a,b}としては、例えば、コサイン類似度を求める式や、距離に応じた類似度を求める式を使用できる。
図11の右側に示す3種類のクラス別類似度Sclass(i,j)は、クラスi毎に、複数の部分領域kについての局所類似度S(i,j,k)の最大値、平均値、又は、最小値を取ることによって得られたものである。最大値、平均値、又は、最小値のいずれの演算を使用するかは、クラス判別処理の使用目的に応じて異なるが、通常は、最小値を使用することが好ましいと考えられる。但し、これらの3種類の演算のいずれを使用するかは、実験的または経験的にユーザーによって予め設定される。
以上のように、クラス別類似度の第1の演算方法M1では、
(1)被判別データに応じて、特定層jの特定の部分領域kの出力から得られる特徴スペクトルSpと、その特定層j及び各クラスiに関連付けられたすべての既知特徴スペクトルKSpとの類似度である局所類似度S(i,j,k)を求め、
(2)クラスi毎に、複数の部分領域kについての局所類似度S(i,j,k)の最大値、平均値、又は、最小値を取ることによってクラス別類似度Sclass(i,j)を求める。
この第1の演算方法M1によれば、比較的簡単な演算及び手順により、クラス別類似度Sclass(i,j)を求めることができる。
図12は、クラス別類似度の第2の演算方法M2を示す説明図である。第2の演算方法M2では、上述した(c1)式の代わりに次式を用いて局所類似度S(i,j,k)を算出する。
S(i,j,k)=max[G{Sp(j,k), KSp(i,j,k,q=all)}] (c2)
ここで、
KSp(i,j,k,q=all)は、図6に示した既知特徴スペクトル群KSpのうち、クラスiに関連付けられた、特定層jの特定の部分領域kにおけるすべてのデータ番号qの既知特徴スペクトルである。
上述した第1の演算方法M1では、特定層jのすべての部分領域kにおける既知特徴スペクトルKSp(i,j,k=all,q=all)を用いていたのに対して、第2の演算方法M2では、特徴スペクトルSp(j,k)の部分領域kと同じ部分領域kに対する既知特徴スペクトルKSp(i,j,k,q=all)のみを用いている。第2の演算方法M2における他の方法は、第1の演算方法M1と同じである。
クラス別類似度の第2の演算方法M2では、
(1)被判別データに応じて、特定層jの特定の部分領域kの出力から得られる特徴スペクトルSpと、その特定層jの特定の部分領域k及び各クラスiに関連付けられたすべての既知特徴スペクトルKSpとの類似度である局所類似度S(i,j,k)を求め、
(2)クラスi毎に、複数の部分領域kについての局所類似度S(i,j,k)の最大値、平均値、又は、最小値を取ることによって、クラス別類似度Sclass(i,j)を求める。
この第2の演算方法M2によっても、比較的簡単な演算及び手順により、クラス別類似度Sclass(i,j)を求めることができる。
図13は、クラス別類似度の第3の演算方法M3を示す説明図である。第3の演算方法M3では、局所類似度S(i,j,k)を求めることなく、特定層であるConvVN1層230の出力からクラス別類似度Sclass(i,j)が算出される。
第3の演算方法M3で得られるクラス別類似度Sclass(i,j)は、次式を用いて算出される。
Sclass(i,j)=max[G{Sp(j,k=all), KSp(i,j,k=all,q=all)}] (c3)
ここで、
Sp(j,k=all)は、被判別データに応じて、特定層jのすべての部分領域kの出力から得られる特徴スペクトルである。
以上のように、クラス別類似度の第3の演算方法M3では、
(1)被判別データに応じて特定層jの出力から得られるすべての特徴スペクトルSpと、その特定層j及び各クラスiに関連付けられたすべての既知特徴スペクトルKSpとの類似度であるクラス別類似度Sclass(i,j)をクラス毎にそれぞれ求める。
この第3の演算方法M3によれば、更に簡単な演算及び手順により、クラス別類似度Sclass(i,j)を求めることができる。
C. 機械学習モデルの各層の出力ベクトルの演算方法:
図2に示した機械学習モデル200における各層の出力の演算方法は、以下の通りである。
PrimeVN層220の各ノードは、Conv層210の1×1×32個のノードのスカラー出力を32次元のベクトルとみなして、このベクトルに変換行列を乗ずることによってそのノードのベクトル出力を得る。この変換行列は、表面サイズが1×1のカーネルの要素であり、機械学習モデル200の学習によって更新される。なお、Conv層210とPrimeVN層220の処理を統合して、1つのプライマリーベクトルニューロン層として構成することも可能である。
PrimeVN層220を「下位層L」と呼び、その上位側に隣接するConvVN1層230を「上位層L+1」と呼ぶとき、上位層L+1の各ノードの出力は、以下の式を用いて決定される。
Figure 2023005937000002
ここで、
L iは、下位層Lにおけるi番目のノードの出力ベクトル、
L+1 jは、上位層L+1におけるj番目のノードの出力ベクトル、
ijは、出力ベクトルML+1 jの予測ベクトル、
L ijは、下位層Lの出力ベクトルML iから予測ベクトルvijを算出するための予測行列、
jは、予測ベクトルvijの和、すなわち線形結合、である和ベクトル、
jは、和ベクトルujのノルム|uj|を正規化することによって得られる正規化係数であるアクティベーション値、
F(X)は、Xを正規化する正規化関数である。
正規化関数F(X)としては、例えば以下の(E3a)式または(E3b)式を使用できる。
Figure 2023005937000003
ここで、
kは、上位層L+1のすべてのノードに対する序数、
βは、任意の正の係数である調整パラメーターであり、例えばβ=1である。
上記(E3a)式では、上位層L+1のすべてのノードに関して和ベクトルujのノルム|uj|をソフトマックス関数で正規化することによってアクティベーション値ajが得られる。一方、(E3b)式では、和ベクトルujのノルム|uj|を、上位層L+1のすべてのノードに関するノルム|uj|の和で除算することによってアクティベーション値ajが得られる。なお、正規化関数F(X)としては、(E3a)式や(E3b)式以外の他の関数を用いてもよい。
上記(E2)式の序数iは、上位層L+1におけるj番目のノードの出力ベクトルML+1 jを決めるために使用される下位層Lのノードに便宜上割り振られるものであり、1~nの値をとる。また、整数nは、上位層L+1におけるj番目のノードの出力ベクトルML+1 jを決めるために使用される下位層Lのノードの数である。従って、整数nは次式で与えられる。
n=Nk×Nc (E5)
ここで、Nkはカーネルの表面サイズであり、Ncは下位層であるPrimeVN層220のチャンネル数である。図2の例ではNk=9、Nc=16なので、n=144である。
ConvVN1層230の出力ベクトルを求めるために使用される1つのカーネルは、カーネルサイズ3×3を表面サイズとし、下位層のチャンネル数16を深さとする3×3×16=144個の要素を有しており、これらの要素のそれぞれは予測行列WL ijである。また、ConvVN1層230の12個のチャンネルの出力ベクトルを生成するためには、このカーネルが12組必要である。従って、ConvVN1層230の出力ベクトルを求めるために使用されるカーネルの予測行列WL ijの数は、144×12=1728個である。これらの予測行列WL ijは、機械学習モデル200の学習により更新される。
上述した(E1)~(E4)式から分かるように、上位層L+1の個々のノードの出力ベクトルML+1 jは、以下の演算によって求められる。
(a)下位層Lの各ノードの出力ベクトルML iに予測行列WL ijを乗じて予測ベクトルvijを求め、
(b)下位層Lの各ノードから得られた予測ベクトルvijの和、すなわち線形結合、である和ベクトルujを求め、
(c)和ベクトルujのノルム|uj|を正規化することによって正規化係数であるアクティベーション値ajを求め、
(d)和ベクトルujをノルム|uj|で除算し、更に、アクティベーション値ajを乗じる。
なお、アクティベーション値ajは、上位層L+1のすべてのノードに関してノルム|uj|を正規化することによって得られる正規化係数である。従って、アクティベーション値ajは、上位層L+1内の全ノードの中における各ノードの相対的な出力強度を示す指標と考えることができる。(E3)式,(E3a)式、(E3b)式、及び(4)式で使用されるノルムは、典型的な例ではベクトル長さを表すL2ノルムである。このとき、アクティベーション値ajは、出力ベクトルML+1 jのベクトル長さに相当する。アクティベーション値ajは、上述した(E3)式と(E4)式で使用されるだけなので、ノードから出力される必要は無い。但し、アクティベーション値ajを外部に出力するように上位層L+1を構成することも可能である。
ベクトルニューラルネットワークの構成は、カプセルネットワークの構成とほぼ同じであり、ベクトルニューラルネットワークのベクトルニューロンがカプセルネットワークのカプセルに相当する。但し、ベクトルニューラルネットワークで使用される上述の(E1)~(E4)式による演算は、カプセルネットワークで使用される演算と異なる。両者の最も大きな違いは、カプセルネットワークでは、上記(E2)式の右辺の予測ベクトルvijにそれぞれ重みが乗じられており、その重みが、動的ルーティングを複数回繰り返すことによって探索される点である。一方、本実施形態のベクトルニューラルネットワークでは、上述した(E1)~(E4)式を順番に1回計算することによって出力ベクトルML+1 jが得られるので、動的ルーティングを繰り返す必要が無く、演算がより高速であるという利点がある。また、本実施形態のベクトルニューラルネットワークは、カプセルネットワークよりも演算に必要とするメモリー量がカプセルネットワークより少なく、本開示の発明者の実験によれば、約1/2~1/3のメモリー量で済むという利点もある。
ベクトルを入出力とするノードを使用するという点では、ベクトルニューラルネットワークはカプセルネットワークと同じである。従って、ベクトルニューロンを使用する利点もカプセルネットワークと共通している。また、複数の層210~250は、上位に行くほどより大きな領域の特徴を表現し、下位に行くほどより小さな領域の特徴を表現する、という点は、通常の畳み込みニューラルネットワークと同じである。ここで、「特徴」とは、ニューラルネットワークへの入力データに含まれている特徴的な部分を意味する。ベクトルニューラルネットワークやカプセルネットワークでは、或るノードの出力ベクトルが、そのノードが表現する特徴の空間的な情報を表す空間情報を含む点で、通常の畳み込みニューラルネットワークよりも優れている。すなわち、或るノードの出力ベクトルのベクトル長さは、そのノードが表現する特徴の存在確率を表し、ベクトル方向がその特徴の方向やスケール等の空間情報を表している。従って、同じ層に属する2つのノードの出力ベクトルのベクトル方向は、それぞれの特徴の位置関係を表す。あるいは、当該2つのノードの出力ベクトルのベクトル方向は、特徴のバリエーションを表わすとも言える。例えば、「目」の特徴に対応するノードなら、出力ベクトルの方向は、目の細さ、吊り上がり方、などのバリエーションを表し得る。通常の畳み込みニューラルネットワークでは、プーリング処理によって特徴の空間情報が消失してしまうと言われている。この結果、ベクトルニューラルネットワークやカプセルネットワークは、通常の畳み込みニューラルネットワークに比べて入力データを識別する性能に優れているという利点がある。
ベクトルニューラルネットワークの利点は、以下のように考えることも可能である。すなわち、ベクトルニューラルネットワークでは、ノードの出力ベクトルが、入力データの特徴を連続空間内の座標として表現すること、に利点がある。従って、ベクトル方向が近ければ特徴が似ている、というように出力ベクトルを評価できる。また、入力データに含まれている特徴が教師データではカバーできていなくても、補間してその特徴を判別できる、などの利点もある。一方、通常の畳み込みニューラルネットワークは、プーリング処理によって無秩序な圧縮がかかるため、入力データの特徴を連続空間内の座標として表現できない、という欠点がある。
ConvVN2層240とClassVN層250の各ノードの出力も、上述した(E1)~(E4)式を用いて同様に決定されるので、詳細な説明は省略する。最上位層であるClassVN層250の解像度は1×1であり、チャンネル数はNmである。
ClassVN層250の出力は、既知のクラスに対する複数の判定値Class0~Class2に変換される。これらの判定値は、通常はソフトマックス関数によって正規化された値である。具体的には、例えば、ClassVN層250の各ノードの出力ベクトルから、その出力ベクトルのベクトル長さを算出し、更に、各ノードのベクトル長さをソフトマックス関数で正規化する、という演算を実行することによって、個々のクラスに対する判定値を得ることができる。上述したように、上記(E3)式で得られるアクティベーション値ajは、出力ベクトルML+1 jのベクトル長さに相当する値であり、正規化されている。従って、ClassVN層250の各ノードのそれぞれにおけるアクティベーション値ajを出力して、そのまま各クラスに対する判定値として使用してもよい。
上述の実施形態では、機械学習モデル200として、上記(E1)式~(E4)式の演算によって出力ベクトルを求めるベクトルニューラルネットワークを用いていたが、この代わりに、米国特許第5210798号公報や国際公開2009/083553号公報に開示されているカプセルネットワークを用いてもよい。
・他の実施形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の第1の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理を実行する方法が提供される。この方法は、(a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する工程と、(b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する工程と、(c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する工程と、を含む。前記工程(c)は、(c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する工程と、(c2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する工程と、(c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する工程と、を含む。
この方法によれば、クラス判別処理の精度が高いN個のクラスの教師データと、クラス判別処理の精度が低いM個のクラスの教師データとを用いて機械学習モデルの学習を行い、学習済みの機械学習モデルとN個のクラスに関する既知特徴スペクトル群とを用いて算出される類似度を使用して被判別データのクラス判別処理を行うので、クラス判別処理全体の精度を高めることができる。
(2)上記方法は、前記工程(c3)において、前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が前記閾値以上の場合には、前記類似度が最も高いクラスを前記被判別データの前記判別クラスと判定するものとしてもよい。
この方法によれば、類似度を用いて高い精度でクラス判別を行うことができる。
(3)上記方法は、前記工程(c3)において、前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が前記閾値以上の場合には、前記類似度が前記閾値以上であるクラスのうち、前記被判別データに対する前記機械学習モデルの出力であるクラス判定値が最も大きなクラスを前記被判別データの前記判別クラスと判定するものとしてもよい。
この方法によれば、類似度と機械学習モデルの判別結果の両方を利用して、高い精度でクラス判別を行うことができる。
(4)上記方法において、前記特定層は、第1軸と第2軸の2つの軸で規定された平面に配置されたベクトルニューロンが、前記2つの軸とは異なる方向の第3軸に沿って複数のチャンネルとして配置されている構成を有し、前記特定層において、前記第1軸の位置と前記第2軸の位置で規定される平面位置で特定され、前記第3軸に沿った前記複数のチャンネルを含む領域を、部分領域と呼ぶとき、前記特徴スペクトルは、前記特定層に含まれる複数の部分領域のうちの各部分領域について、(i)当該部分領域に含まれる各ベクトルニューロンの出力ベクトルの複数の要素値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第1種の特徴スペクトルと、(ii)前記第1種の特徴スペクトルの各要素値に、前記出力ベクトルのベクトル長さに相当する正規化係数を乗じることによって得られる第2種の特徴スペクトルと、(iii)前記正規化係数を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第3種の特徴スペクトルと、のうちのいずれかとして求められるものとしてもよい。
この方法によれば、特定層の出力ベクトルから得られる3種の特徴スペクトルのいずれかを用いて類似度を求めることができる。
(5)上記方法において、前記工程(c2)は、前記検査データに応じて、前記特定層の特定の部分領域の出力から得られる前記特徴スペクトルと、前記特定層及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度である局所類似度を求めることによって、前記特定層の前記複数の部分領域に関して各クラスに対する類似度を示す複数の局所類似度を求める工程と、前記クラス毎に、前記複数の部分領域に関する前記複数の局所類似度の最大値、平均値、又は、最小値を取ることによって、前記クラス毎の前記類似度であるクラス別類似度を求める工程と、を含むものとしてもよい。
この方法によれば、比較的簡単な演算によって、クラス別類似度を演算できる。
(6)上記方法において、前記工程(c2)は、前記検査データに応じて、前記特定層の特定の部分領域の出力から得られる前記特徴スペクトルと、前記特定層の前記特定の部分領域及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度である局所類似度を求めることによって、前記特定層の前記複数の部分領域に関して各クラスに対する類似度を示す複数の局所類似度を求める工程と、前記クラス毎に、前記複数の部分領域に関する前記複数の局所類似度の最大値、平均値、又は、最小値を取ることによって、前記クラス毎の前記類似度であるクラス別類似度を求める工程と、を含むものとしてもよい。
この方法によれば、比較的簡単な演算によって、クラス別類似度を演算できる。
(7)上記方法において、前記工程(c2)は、前記検査データに応じて、前記特定層の出力から得られるすべての前記特徴スペクトルと、前記特定層及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度をクラス毎にそれぞれ求めることによって、前記クラス毎の前記類似度であるクラス別類似度を求める工程を含むものとしてもよい。
この方法によれば、更に簡単な演算によって、クラス別類似度を演算できる。
(8)本開示の第2の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理を実行する情報処理装置が提供される。この情報処理装置は、前記機械学習モデルを記憶するメモリーと、前記機械学習モデルを用いた演算を実行するプロセッサーと、を備える。前記プロセッサーは、(a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する処理と、(b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する処理と、(c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する処理と、を実行する。前記処理(c)は、(c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、(d2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、(c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する処理と、を含む。
この情報処理装置によれば、クラス判別処理の精度が高いN個のクラスの教師データと、クラス判別処理の精度が低いM個のクラスの教師データとを用いて機械学習モデルの学習を行い、学習済みの機械学習モデルとN個のクラスに関する既知特徴スペクトル群とを用いて算出される類似度を使用して被判別データのクラス判別処理を行うので、クラス判別処理全体の精度を高めることができる。
(9)本開示の第3の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する処理と、(b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する処理と、(c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する処理と、を前記プロセッサーに実行させるコンピュータープログラムである。前記処理(c)は、(c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、(c2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、(c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する処理と、を含む。
このコンピュータープログラムによれば、クラス判別処理の精度が高いN個のクラスの教師データと、クラス判別処理の精度が低いM個のクラスの教師データとを用いて機械学習モデルの学習を行い、学習済みの機械学習モデルとN個のクラスに関する既知特徴スペクトル群とを用いて算出される類似度を使用して被判別データのクラス判別処理を行うので、クラス判別処理全体の精度を高めることができる。
本開示は、上記以外の種々の形態で実現することも可能である。例えば、クラス判別装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
100…情報処理装置、110…プロセッサー、112…クラス判別処理部、120…メモリー、130…インターフェイス回路、140…入力デバイス、150…表示部、200…機械学習モデル、210…畳み込み層、220…プライマリーベクトルニューロン層、230…第1畳み込みベクトルニューロン層、240…第2畳み込みベクトルニューロン層、250…分類ベクトルニューロン層、310…類似度演算部、320…クラス判別部、400…カメラ

Claims (9)

  1. 複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理を実行する方法であって、
    (a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する工程と、
    (b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する工程と、
    (c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する工程と、
    を含み、
    前記工程(c)は、
    (c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する工程と、
    (c2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する工程と、
    (c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する工程と、
    を含む、方法。
  2. 請求項1に記載の方法であって、
    前記工程(c3)において、前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が前記閾値以上の場合には、前記類似度が最も高いクラスを前記被判別データの前記判別クラスと判定する、方法。
  3. 請求項1に記載の方法であって、
    前記工程(c3)において、前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が前記閾値以上の場合には、前記類似度が前記閾値以上であるクラスのうち、前記被判別データに対する前記機械学習モデルの出力であるクラス判定値が最も大きなクラスを前記被判別データの前記判別クラスと判定する、方法。
  4. 請求項1~3のいずれか一項に記載の方法であって、
    前記特定層は、第1軸と第2軸の2つの軸で規定された平面に配置されたベクトルニューロンが、前記2つの軸とは異なる方向の第3軸に沿って複数のチャンネルとして配置されている構成を有し、
    前記特定層において、前記第1軸の位置と前記第2軸の位置で規定される平面位置で特定され、前記第3軸に沿った前記複数のチャンネルを含む領域を、部分領域と呼ぶとき、
    前記特徴スペクトルは、前記特定層に含まれる複数の部分領域のうちの各部分領域について、
    (i)当該部分領域に含まれる各ベクトルニューロンの出力ベクトルの複数の要素値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第1種の特徴スペクトルと、
    (ii)前記第1種の特徴スペクトルの各要素値に、前記出力ベクトルのベクトル長さに相当する正規化係数を乗じることによって得られる第2種の特徴スペクトルと、
    (iii)前記正規化係数を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第3種の特徴スペクトルと、
    のうちのいずれかとして求められる、方法。
  5. 請求項4に記載の方法であって、
    前記工程(c2)は、
    前記被判別データに応じて、前記特定層の特定の部分領域の出力から得られる前記特徴スペクトルと、前記特定層及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度である局所類似度を求めることによって、前記特定層の前記複数の部分領域に関して各クラスに対する類似度を示す複数の局所類似度を求める工程と、
    前記クラス毎に、前記複数の部分領域に関する前記複数の局所類似度の最大値、平均値、又は、最小値を取ることによって、前記クラス毎の前記類似度であるクラス別類似度を求める工程と、
    を含む、方法。
  6. 請求項4に記載の方法であって、
    前記工程(c2)は、
    前記被判別データに応じて、前記特定層の特定の部分領域の出力から得られる前記特徴スペクトルと、前記特定層の前記特定の部分領域及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度である局所類似度を求めることによって、前記特定層の前記複数の部分領域に関して各クラスに対する類似度を示す複数の局所類似度を求める工程と、
    前記クラス毎に、前記複数の部分領域に関する前記複数の局所類似度の最大値、平均値、又は、最小値を取ることによって、前記クラス毎の前記類似度であるクラス別類似度を求める工程と、
    を含む、方法。
  7. 請求項4に記載の方法であって、
    前記工程(c2)は、
    前記被判別データに応じて、前記特定層の出力から得られるすべての前記特徴スペクトルと、前記特定層及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度をクラス毎にそれぞれ求めることによって、前記クラス毎の前記類似度であるクラス別類似度を求める工程を含む、方法。
  8. 複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理を実行する情報処理装置であって、
    前記機械学習モデルを記憶するメモリーと、
    前記機械学習モデルを用いた演算を実行するプロセッサーと、
    を備え、
    前記プロセッサーは、
    (a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する処理と、
    (b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する処理と、
    (c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する処理と、
    を実行し、
    前記処理(c)は、
    (c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、
    (c2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、
    (c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する処理と、
    を含む、情報処理装置。
  9. 複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラス判別処理をプロセッサーに実行させるコンピュータープログラムであって、
    (a)N,Mをそれぞれ1以上の整数としたとき、N個のクラスに関する教師データと、前記N個のクラスに比べて前記機械学習モデルを用いた前記クラス判別処理の精度が低いM個のクラスに関する教師データとを用いて前記機械学習モデルの学習を実行する処理と、
    (b)学習済みの前記機械学習モデルに前記N個のクラスの教師データが入力されたときに前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から得られる既知特徴スペクトル群を、前記N個のクラスのそれぞれについて準備する処理と、
    (c)前記学習済みの前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データの前記クラス判別処理を実行する処理と、
    を前記プロセッサーに実行させるコンピュータープログラムであり、
    前記処理(c)は、
    (c1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、
    (c2)前記特徴スペクトルと、前記N個のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、
    (c3)前記N個のクラスのうちの少なくとも1つクラスに関する前記類似度が予め設定された閾値以上の場合には前記類似度が前記閾値以上であるクラスから選択された1つのクラスを前記被判別データの判別クラスと判定し、前記N個のクラスのすべてに関する前記類似度が前記閾値未満の場合には前記被判別データの判別クラスを未知と判定する処理と、
    を含む、コンピュータープログラム。
JP2021108236A 2021-06-30 2021-06-30 機械学習モデルを用いて被判別データのクラス判別処理を実行する方法、情報処理装置、及び、コンピュータープログラム Pending JP2023005937A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021108236A JP2023005937A (ja) 2021-06-30 2021-06-30 機械学習モデルを用いて被判別データのクラス判別処理を実行する方法、情報処理装置、及び、コンピュータープログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021108236A JP2023005937A (ja) 2021-06-30 2021-06-30 機械学習モデルを用いて被判別データのクラス判別処理を実行する方法、情報処理装置、及び、コンピュータープログラム

Publications (1)

Publication Number Publication Date
JP2023005937A true JP2023005937A (ja) 2023-01-18

Family

ID=85107247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021108236A Pending JP2023005937A (ja) 2021-06-30 2021-06-30 機械学習モデルを用いて被判別データのクラス判別処理を実行する方法、情報処理装置、及び、コンピュータープログラム

Country Status (1)

Country Link
JP (1) JP2023005937A (ja)

Similar Documents

Publication Publication Date Title
JP4376145B2 (ja) 画像分類学習処理システム及び画像識別処理システム
CN111028327A (zh) 一种三维点云的处理方法、装置及设备
JP6107531B2 (ja) 特徴抽出プログラム及び情報処理装置
CN112634149A (zh) 一种基于图卷积网络的点云去噪方法
Laha et al. Land cover classification using fuzzy rules and aggregation of contextual information through evidence theory
CN111179270A (zh) 基于注意力机制的图像共分割方法和装置
CN114654902B (zh) 利用机器学习模型来执行印刷介质的判别处理的方法以及系统
JP7225731B2 (ja) 多変数データシーケンスの画像化
US11972552B2 (en) Abnormal wafer image classification
JP2022083484A (ja) 物体検出方法、物体検出装置、及び、コンピュータープログラム
CN116611500A (zh) 用于训练神经网络的方法及装置
JP4238537B2 (ja) 画像処理装置
CN116977265A (zh) 缺陷检测模型的训练方法、装置、计算机设备和存储介质
US20220138526A1 (en) Method of executing classification process using machine learning model, information processing device, and non-transitory computer-readable medium storing computer program
JP2023086215A (ja) 学習方法、判別方法、学習装置、判別装置、および、コンピュータープログラム
JP2023005937A (ja) 機械学習モデルを用いて被判別データのクラス判別処理を実行する方法、情報処理装置、及び、コンピュータープログラム
Teke et al. Texture classification and retrieval using the random neural network model
JP2023027858A (ja) 機械学習モデルを用いてクラス分類処理を実行する方法、情報処理装置、及び、コンピュータープログラム
US20230169307A1 (en) Method of executing class classification processing using machine learning model, information processing device, and non-transitory computer-readable storage medium storing computer program
JP2023006279A (ja) 機械学習モデルを用いて検査データの良否を判定する方法、情報処理装置、及び、コンピュータープログラム
US20230162489A1 (en) Method of extracting unsuiitable and defective data from plurality of pieces of training data used for learning of machine learning model, information processing device, and non-transitory computer-readable storage medium storing computer program
JP2022118781A (ja) 機械学習モデルを用いて被判別データのクラスを判別する方法、情報処理装置、及び、コンピュータープログラム
JP2023078763A (ja) 機械学習モデルを用いてクラス分類処理を実行するクラス分類装置、方法、及び、コンピュータープログラム
US20230162001A1 (en) Classification device configured to execute classification processing using learning machine model, method, and non-transitory computer-readable storage medium storing computer program
JP2023076878A (ja) 機械学習モデルを用いて回帰処理を実行する回帰処理装置、方法、及び、コンピュータープログラム