JP2023077690A - 機械学習モデルを用いてクラス分類処理を実行するクラス分類装置、方法、及び、コンピュータープログラム - Google Patents
機械学習モデルを用いてクラス分類処理を実行するクラス分類装置、方法、及び、コンピュータープログラム Download PDFInfo
- Publication number
- JP2023077690A JP2023077690A JP2021191064A JP2021191064A JP2023077690A JP 2023077690 A JP2023077690 A JP 2023077690A JP 2021191064 A JP2021191064 A JP 2021191064A JP 2021191064 A JP2021191064 A JP 2021191064A JP 2023077690 A JP2023077690 A JP 2023077690A
- Authority
- JP
- Japan
- Prior art keywords
- layer
- output
- machine learning
- learning model
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
【課題】信頼性の高い説明情報を得ることのできる技術を提供する。【解決手段】クラス分類装置は、複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理を実行する。機械学習モデルは、入力層と、中間層と、中間層から分岐する第1出力層及び第2出力層と、を有し、第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、第1活性化関数と異なる第2活性化関数を使用するように構成されている。【選択図】図3
Description
本開示は、機械学習モデルを用いてクラス分類処理を実行するクラス分類装置、方法、及び、コンピュータープログラムに関する。
特許文献1,2には、ベクトルニューロンを用いるベクトルニューラルネットワーク型の機械学習モデルとして、カプセルネットワークと呼ばれるものが開示されている。ベクトルニューロンとは、入出力がベクトルであるニューロンを意味する。カプセルネットワークは、カプセルと呼ばれるベクトルニューロンをネットワークのノードとする機械学習モデルである。カプセルネットワークなどのベクトルニューラルネットワーク型の機械学習モデルは、入力データのクラス分類に利用することができる。
しかしながら、従来技術では、機械学習モデルからクラス分類の結果は出力されるものの、出力されたクラスの分類根拠が不明であり、特に、信頼性の高い分類根拠を知ることは困難である。
本開示の第1の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理を実行するクラス分類装置が提供される。前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、前記第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている。
本開示の第2の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理を実行する方法が提供される。この方法は、(a)前記機械学習モデルをメモリーから読み出す工程であって、前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、前記第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている、工程と、(b)前記機械学習モデルに複数の教師データが入力されたときに前記第2出力層の出力から得られた既知特徴スペクトル群を前記メモリーから読み出す工程と、(c)前記機械学習モデルを用いて、前記被分類データの該当クラスを決定する工程と、を含む。前記工程(c)は、(c1)前記機械学習モデルに前記被分類データが入力されたときに前記第2出力層の出力から得られる特徴スペクトルと、前記既知特徴スペクトル群との類似度を演算し、前記類似度を、前記被分類データのクラス分類における説明情報として作成する工程と、(c2)前記第1出力層の出力と、前記第2出力層の出力と、前記類似度と、のいずれかに応じて、前記被分類データの前記該当クラスを決定する工程と、(c3)前記被分類データの前記該当クラスと、前記説明情報とを表示する工程と、を含む。
本開示の第3の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)前記機械学習モデルをメモリーから読み出す処理であって、前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、前記第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている、処理と、(b)前記機械学習モデルに複数の教師データが入力されたときに前記第2出力層の出力から得られた既知特徴スペクトル群を前記メモリーから読み出す処理と、(c)前記機械学習モデルを用いて、前記被分類データの該当クラスを決定する処理と、を前記プロセッサーに実行させる。前記処理(c)は、(c1)前記機械学習モデルに前記被分類データが入力されたときに前記第2出力層の出力から得られる特徴スペクトルと、前記既知特徴スペクトル群との類似度を演算し、前記類似度を、前記被分類データのクラス分類における説明情報として作成する処理と、(c2)前記第1出力層の出力と、前記第2出力層の出力と、前記類似度と、のいずれかに応じて、前記被分類データの前記該当クラスを決定する処理と、(c3)前記被分類データの前記該当クラスと、前記説明情報とを表示する処理と、を含む。
A.実施形態:
図1は、実施形態におけるクラス分類システムを示すブロック図である。このクラス分類システムは、情報処理装置100と、カメラ400とを備える。カメラ400は、検査対象品の画像を撮影するためのものである。カメラ400としては、カラー画像を撮影するカメラを用いても良く、或いは、モノクロ画像や分光画像を撮影するカメラを用いても良い。本実施形態では、カメラ400で撮影された画像を教師データや被分類データとして使用するが、画像以外のデータを教師データや被分類データとして使用してもよい。この場合には、カメラ400の代わりに、データの種類に応じた被分類データ取得装置が使用される。
図1は、実施形態におけるクラス分類システムを示すブロック図である。このクラス分類システムは、情報処理装置100と、カメラ400とを備える。カメラ400は、検査対象品の画像を撮影するためのものである。カメラ400としては、カラー画像を撮影するカメラを用いても良く、或いは、モノクロ画像や分光画像を撮影するカメラを用いても良い。本実施形態では、カメラ400で撮影された画像を教師データや被分類データとして使用するが、画像以外のデータを教師データや被分類データとして使用してもよい。この場合には、カメラ400の代わりに、データの種類に応じた被分類データ取得装置が使用される。
情報処理装置100は、プロセッサー110と、メモリー120と、インターフェイス回路130と、インターフェイス回路130に接続された入力デバイス140及び表示デバイス150と、を有している。インターフェイス回路130には、カメラ400も接続されている。限定されないが例えば、プロセッサー110は、以下で詳述される処理を実行する機能を有するだけでなく、表示デバイス150に、当該処理によって得られるデータ、および当該処理の過程で生成されるデータを表示する機能も有する。
プロセッサー110は、機械学習モデルの学習を実行する学習実行部112、及び、被分類データのクラス分類処理を実行するクラス分類処理部114として機能する。クラス分類処理部114は、類似度演算部310とクラス判別部320とを含む。学習実行部112とクラス分類処理部114は、メモリー120に格納されたコンピュータープログラムをプロセッサー110が実行することによってそれぞれ実現される。但し、学習実行部112やクラス分類処理部114をハードウェア回路で実現してもよい。本開示のプロセッサーは、このようなハードウェア回路をも含む用語である。また、クラス分類処理を実行する1つまたは複数のプロセッサーは、ネットワークを介して接続された1つまたは複数のリモートコンピューターに含まれるプロセッサーであってもよい。
メモリー120には、機械学習モデル200と、教師データ群TDと、既知特徴スペクトル群GKSpと、が格納される。機械学習モデル200は、クラス分類処理部114による処理に使用される。機械学習モデル200の構成例や動作については後述する。教師データ群TDは、機械学習モデル200の学習に使用されるラベル付きのデータの集合である。本実施形態では、教師データ群TDは画像データの集合である。既知特徴スペクトル群GKSpは、学習済みの機械学習モデル200に教師データ群TDを入力した際に得られる特徴スペクトルの集合である。特徴スペクトルについては後述する。
図2は、機械学習モデル200の構成を示す説明図である。この機械学習モデル200は、入力層210と、中間層280と、出力層290とを有している。中間層280は、畳み込み層220と、プライマリーベクトルニューロン層230と、第1畳み込みベクトルニューロン層240と、第2畳み込みベクトルニューロン層250と、を含む。出力層290は、分類ベクトルニューロン層260と、分岐出力層270とを含む。これらの2つの出力層260,270は、中間層280から分岐した層として構成されている。分岐出力層270は、プレ分岐分類ベクトルニューロン層271と、ポスト分岐分類ベクトルニューロン層272とを含む。これらの層のうち、入力層210が最も下位の層であり、出力層290が最も上位の層である。また、入力層210と畳み込み層220はスカラーニューロンで構成された層であり、他の層230,240,250,260,271,272はベクトルニューロンで構成された層である。以下の説明では、中間層280を構成する各層を、それぞれ「Conv層220」、「PrimeVN層230」、「ConvVN1層240」、「ConvVN2層250」と呼ぶ。また、出力層290を構成する各層260,271,272を、それぞれ「ClassVN層260」、「PreBranchedClassVN層271」、「PostBranchedClassVN層272」と呼ぶ。
図2の例では2つの畳み込みベクトルニューロン層240,250を用いているが、畳み込みベクトルニューロン層の数は任意であり、畳み込みベクトルニューロン層を省略してもよい。但し、1つ以上の畳み込みベクトルニューロン層を用いることが好ましい。
ClassVN層260は本開示の「第1出力層」に相当し、分岐出力層270は「第2出力層」に相当する。また、PreBranchedClassVN層271は「プレ層」に相当し、PostBranchedClassVN層272は「ポスト層」に相当する。本実施形態では、分岐出力層270がプレ層271とポスト層272の2層で構成されているが、これらの層271,272の間に1つ以上のベクトルニューロン層を追加してもよい。また、ポスト層272を省略して、分岐出力層270をプレ層271のみで構成してもよい。但し、ポスト層272を含むように分岐出力層270を構成した方が、プレ層271の出力から得られる説明情報の信頼性を高めることができる点で好ましい。
ClassVN層260からは、入力された被分類データに関して、Nm個のクラスに対する判定値Class_0~Class_Nm-1が出力される。ここで、Nmは2以上の整数であり、典型例では3以上の整数である。同様に、PostBranchedClassVN層272からは、Nm個のクラスに対する判定値#Class_0~#Class_Nm-1が出力される。これらの2種類の判定値Class_0~Class_Nm-1、#Class_0~#Class_Nm-1の使用方法については後述する。
図2において、ConvVN1層240以降のベクトルニューロン層については、活性化関数の種類がハッチングで示されている。すなわち、層240,250,271の活性化関数は、下記(A1)式に示す線形関数であり、層260,272の活性化関数は下記(A2)式に示すソフトマックス関数である。各層で使用可能な活性化関数については更に後述する。なお、活性化関数を「正規化関数」とも呼ぶ。
ここで、ajは層内のj番目のニューロンにおける活性化後の出力ベクトルのノルム、ujは層内のj番目のニューロンにおける活性化前の出力ベクトル、||uj||はベクトルujのノルム、Σkは層内のすべてのニューロンについての和を取る演算、βは任意の正の係数である。なお、層260,272の出力である判定値Class_0~Class_Nm-1,#Class_0~#Class_Nm-1はスカラー値なので、ajがそのまま判定値として使用される。ajを、「アクティベーション値」又は「活性化係数」と呼ぶ。
図3は、図2に示す機械学習モデル200の各層の構成を示す説明図である。入力層210には、32×32画素のサイズの画像が入力される。入力層210以外の各層の構成は、以下のように記述できる。
・Conv層220:Conv[32,5,2]
・PrimeVN層230:PrimeVN[16,1,1]
・ConvVN1層240:ConvVN1[12,3,1]
・ConvVN2層250:ConvVN2[6,7,2]
・ClassVN層260:ClassVN[Nm,3,1]
・PreBranchedClassVN層271:PreBranchedClassVN[Nm,3,1]
・PostBranchedClassVN層272:PostBranchedClassVN[Nm,1,1]
・ベクトル次元VD:VD=16
これらの各層の記述において、括弧前の文字列はレイヤー名であり、括弧内の数字は、順に、チャンネル数、カーネルの表面サイズ、及び、ストライドである。例えば、Conv層220のレイヤー名は「Conv」であり、チャンネル数は32、カーネルの表面サイズは5×5、ストライドは2である。図3では、各層の下にこれらの記述が示されている。各層の中に描かれているハッチングを付した矩形は、隣接する上位層の出力ベクトルを算出する際に使用されるカーネルの表面サイズを表している。本実施形態では、入力データが画像データなので、カーネルの表面サイズも2次元である。なお、各層の記述で用いたパラメーターの値は例示であり、任意に変更可能である。
・Conv層220:Conv[32,5,2]
・PrimeVN層230:PrimeVN[16,1,1]
・ConvVN1層240:ConvVN1[12,3,1]
・ConvVN2層250:ConvVN2[6,7,2]
・ClassVN層260:ClassVN[Nm,3,1]
・PreBranchedClassVN層271:PreBranchedClassVN[Nm,3,1]
・PostBranchedClassVN層272:PostBranchedClassVN[Nm,1,1]
・ベクトル次元VD:VD=16
これらの各層の記述において、括弧前の文字列はレイヤー名であり、括弧内の数字は、順に、チャンネル数、カーネルの表面サイズ、及び、ストライドである。例えば、Conv層220のレイヤー名は「Conv」であり、チャンネル数は32、カーネルの表面サイズは5×5、ストライドは2である。図3では、各層の下にこれらの記述が示されている。各層の中に描かれているハッチングを付した矩形は、隣接する上位層の出力ベクトルを算出する際に使用されるカーネルの表面サイズを表している。本実施形態では、入力データが画像データなので、カーネルの表面サイズも2次元である。なお、各層の記述で用いたパラメーターの値は例示であり、任意に変更可能である。
入力層210とConv層220は、スカラーニューロンで構成された層である。他の層230~260,271,272は、ベクトルニューロンで構成された層である。ベクトルニューロンは、ベクトルを入出力とするニューロンである。上記の記述では、個々のベクトルニューロンの出力ベクトルの次元は16で一定である。以下では、スカラーニューロン及びベクトルニューロンの上位概念として「ノード」という語句を使用する。
図3では、Conv層220について、ノード配列の平面座標を規定する第1軸x及び第2軸yと、奥行きを表す第3軸zとが示されている。また、Conv層220のx,y,z方向のサイズが14,14,32であることが示されている。x方向のサイズとy方向のサイズを「解像度」と呼ぶ。z方向のサイズは、チャンネル数である。これらの3つの軸x,y,zは、他の層においても各ノードの位置を示す座標軸として使用する。但し、図3では、Conv層220以外の層では、これらの軸x,y,zの図示が省略されている。
よく知られているように、畳み込み後の解像度W1は、次式で与えられる。
W1=Ceil{(W0-Wk+1)/S} (A3)
ここで、W0は畳み込み前の解像度、Wkはカーネルの表面サイズ、Sはストライド、Ceil{X}はXの小数点以下を切り上げる演算を行う関数である。
図3に示した各層の解像度は、入力データの解像度を32とした場合の例であり、実際の各層の解像度は入力データのサイズに応じて適宜変更される。
W1=Ceil{(W0-Wk+1)/S} (A3)
ここで、W0は畳み込み前の解像度、Wkはカーネルの表面サイズ、Sはストライド、Ceil{X}はXの小数点以下を切り上げる演算を行う関数である。
図3に示した各層の解像度は、入力データの解像度を32とした場合の例であり、実際の各層の解像度は入力データのサイズに応じて適宜変更される。
ClassVN層260は、Nm個のチャンネルを有している。一般に、Nmは、機械学習モデル200を用いて判別可能なクラスの数である。Nmは、2以上の整数であり、典型例では3以上の整数である。ClassVN層260のNm個のチャンネルからは、Nm個のクラスに対する判定値Class_0~Class_Nm-1が出力される。同様に、PostBranchedClassVN層272のNm個のチャンネルからは、Nm個のクラスに対する判定値#Class_0~#Class_Nm-1が出力される。被分類データの該当クラスは、ClassVN層260から出力される判定値Class_0~Class_Nm-1と、PostBranchedClassVN層272から出力される判定値#Class_0~#Class_Nm-1のうちのいずれか一方を用いて決定することができる。例えば、PostBranchedClassVN層272の判定値#Class_0~#Class_Nm-1を用いる場合には、それらのうちで最も大きな値を有するクラスが、被分類データの該当クラスと判定される。また、判定値#Class_0~#Class_Nm-1のうちで最も大きな値が予め定められた閾値未満である場合には、被分類データのクラスが未知であると判定することも可能である。
なお、ClassVN層260の判定値やPostBranchedClassVN層272の判定値を使用する代わりに、PreBranchedClassVN層271の出力から算出されるクラス別の類似度を用いて被分類データの該当クラスを決定するようにしてもよい。クラス別の類似度については後述する。
図3では、更に、各層220,230,240,250,260,271,272における部分領域Rnが描かれている。部分領域Rnの添え字「n」は、各層の符号である。例えば、部分領域R220は、Conv層220における部分領域を示す。「部分領域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×チャンネル数」である。
図3に示すように、PreBrachedClassVN層271の出力から後述する特徴スペクトルSpが算出されて、類似度演算部310に入力される。類似度演算部310は、この特徴スペクトルSpと、予め作成されていた既知特徴スペクトル群GKSpとを用いて、後述するクラス別の類似度を算出する。
本開示において、類似度の算出に使用されるベクトルニューロン層を、「特定層」とも呼ぶ。特定層としては、PreBrachedClassVN層271以外のベクトルニューロン層を用いてもよく、1つ以上の任意の数のベクトルニューロン層を使用可能である。なお、特徴スペクトルの構成と、特徴スペクトルを用いた類似度の演算方法については後述する。
分岐出力層270の出力は、クラス分類結果に関する説明情報を作成するために使用することができる。説明情報としては、上述したクラス別の類似度以外の他の情報を用いてもよい。例えば、PreBrachedClassVN層271の出力ベクトルそのものを説明情報として用いることも可能である。但し、上述した類似度を用いた説明情報は、ユーザーが理解し易いという利点がある。
図4は、機械学習モデルの準備工程の処理手順を示すフローチャートである。図5は、図4のステップS120において内部パラメーターの調整が行われる層を示し、図6は、図4のステップS130において内部パラメーターの調整が行われる層を示す。
ステップS110では、ユーザーが、クラス分類処理に使用する機械学習モデルを作成し、そのパラメーターを設定する。本実施形態では、図2及び図3に示した機械学習モデル200が作成されてそれらのパラメーターが設定される。ステップS120~S140は、教師データ群TDを用いて機械学習モデル200の学習を実行する工程である。個々の教師データには、予めラベルが付与されている。例えば、機械学習モデル200は、Nm個の既知のクラスを有するので、個々の教師データには、Nm個のクラスに対応するNm個のラベルのうちのいずれかが付与されている。
本実施形態では、教師データとして、0~9の数字を表す画像を使用するものと仮定する。従って、Nmは10であり、個々の教師データには、0~9のラベルのいずれかが付与される。
ステップS120では、学習実行部112が、教師データを用いて所定数のエポックを実行し、分岐出力層270以外の層の内部パラメーターを調整する。「所定数のエポック」のエポック数は、例えば、1としてもよく、或いは、100などの複数の値としてもよい。このステップS120では、図5に示すように、層220,230,240,250,260の内部パラメーターが調整される。「内部パラメーター」は、畳み込み演算用のカーネルの値を含んでいる。なお、ステップS120の学習は、「所定数のエポック」以外の他の区分方法で実行してもよい。例えば、Loss関数の値が、ステップS120の実行前の値から所定割合又は所定幅低下するまで学習を実行してもよい。或いは、正解率(accuracy)の値が、ステップS120の実行前の値から所定割合又は所定幅増加するまで学習を実行してもよい。
ステップS130では、学習実行部112が、教師データを用いて所定数のエポックを実行し、分岐出力層270の内部パラメーターを調整する。ステップS130で実行されるエポック数は、前述したステップS120におけるエポック数と等しいことが好ましい。このステップS130では、図6に示すように、層271,272の内部パラメーターが調整されるが、層220,230,240,250,260の内部パラメーターは変更されず、そのまま維持される。
ステップS140では、学習実行部112が、学習が終了したか否かを判断する。この判定は、例えば、予め定められたエポック数の学習が終了したか否かに応じて実行される。学習が終了していなければステップS120に戻り、上述したステップS120,S130が再度実行される。学習が終了した場合には次のステップS150に進む。なお、ステップS120,S130で実行されるエポック数が十分に大きな場合には、ステップS140を省略して、直ちにステップS150に進むようにしてもよい。
ステップS150では、学習実行部112が、学習済みの機械学習モデル200に複数の教師データを再度入力して、既知特徴スペクトル群GKSpを生成する。既知特徴スペクトル群GKSpは、以下で説明する特徴スペクトルの集合である。
図7は、学習済みの機械学習モデル200に任意の入力データを入力することによって得られる特徴スペクトルSpを示す説明図である。ここでは、PreBranchedClassVN層271の出力から得られる特徴スペクトルSpについて説明する。図7の横軸は、PreBranchedClassVN層271の1つの平面位置(x,y)におけるノードの出力ベクトルの要素番号NDと、チャンネル番号NCとの組み合わせで表されるスペクトル位置である。本実施形態では、ノードのベクトル次元が16なので、出力ベクトルの要素番号NDは0から15までの16個である。また、PreBranchedClassVN層271のチャンネル数はNmなので、チャンネル番号NCは0からNm-1までのNm個である。
図7の縦軸は、各スペクトル位置での特徴値CVを示す。この例では、特徴値CVは、出力ベクトルの各要素の値VNDである。なお、特徴値CVとしては、出力ベクトルの各要素の値VNDと、上述したアクティベーション値ajとを乗算した値を使用してもよく、或いは、アクティベーション値ajをそのまま使用してもよい。後者の場合には、特徴スペクトルSpに含まれる特徴値CVの数はチャンネル数に等しく、Nm個である。なお、アクティベーション値ajは、そのノードの出力ベクトルのベクトル長さに相当する値である。
特徴スペクトルSpは、個々の平面位置(x,y)毎に求められる。1つの入力データに対してPreBranchedClassVN層271の出力から得られる特徴スペクトルSpの数は、PreBranchedClassVN層271の平面位置(x,y)の数に等しいので、1個である。
学習実行部112が、学習済みの機械学習モデル200に教師データを再度入力して図7に示す特徴スペクトルSpを算出し、メモリー120の既知特徴スペクトル群GKSpに登録する。
図8は、既知特徴スペクトル群GKSpの構成を示す説明図である。既知特徴スペクトル群GKSpの個々のレコードは、レコード番号と、レイヤー名と、ラベルLbと、既知特徴スペクトルKSpと、を含んでいる。既知特徴スペクトルKSpは、教師データの入力に応じて得られた図7の特徴スペクトルSpと同じものである。図8の例では、複数の教師データに応じたPreBranchedClassVN層271の出力から、個々のラベルLbの値に関連付けられた既知特徴スペクトルKSpが生成されて登録されている。例えば、ラベルLb=0に関連付けられて#0_max個の既知特徴スペクトルKSpが登録され、ラベルLb=1に関連付けられて#1_max個の既知特徴スペクトルKSpが登録され、ラベルLb=Nm-1に関連付けられて#Nm-1_max個の既知特徴スペクトルKSpが登録されている。#0_max,#1_max,#Nm-1_maxは、それぞれ2以上の整数である。前述したように、個々のラベルLbは、互いに異なる既知のクラスに対応する。従って、既知特徴スペクトル群GKSpにおける個々の既知特徴スペクトルKSpは、複数の既知のクラスのうちの1つのクラスに関連付けられて登録されていることが理解できる。
なお、ステップS150で使用される教師データは、ステップS120,S130で使用された複数の教師データと同じものである必要は無い。但し、ステップS150においても、ステップS120,S130で使用された複数の教師データの一部又は全部を利用すれば、新たな教師データを準備する必要が無いという利点がある。
図9は、学習済みの機械学習モデルを用いたクラス分類工程の処理手順を示すフローチャートである。ステップS210では、クラス分類処理部114が、カメラ400を用いて検査対象品を撮影することによって、被分類データを生成する。ステップS220では、クラス分類処理部114が、必要に応じて被分類データに対して前処理を実行する。前処理としては、クリッピングや、解像度調整などを実行するようにしてもよい。なお、前処理は省略可能である。ステップS230では、クラス分類処理部114が、学習済みの機械学習モデル200と、既知特徴スペクトル群GKSpとをメモリー120から読み出す。
ステップS240では、クラス判別部320が、機械学習モデル200に被分類データを入力して、被分類データの該当クラスを決定する。この決定は、例えば、ClassVN層260から出力される判定値Class_0~Class_Nm-1と、PostBranchedClassVN層272から出力される判定値#Class_0~#Class_Nm-1のうちのいずれか一方を用いて行うことができる。また、後述するように、クラス別の類似度を用いて被分類データの該当クラスを決定することも可能である。
ステップS250では、クラス分類処理部114が、PreBranchedClassVN層271の出力を用いて、図7に示した特徴スペクトルSpを求める。
ステップS260では、類似度演算部310が、ステップS250で得られた特徴スベクトルSpと、図8に示した既知特徴スペクトル群GKSpとを用いて類似度を算出する。以下に説明するように、類似度としては、クラス別の類似度と、クラスを考慮しない最大類似度と、のいずれかを使用可能である。
クラス別の類似度S(class)は、例えば次式を用いて算出できる。
S(Class)=max[G{Sp,KSp(Class,k)}] (A4)
ここで、”Class”はクラスに対する序数、G{a,b}はaとbの類似度を求める関数、Spは被分類データに応じて得られる特徴スペクトル、KSp(Class,k)は、特定の”Class”に関連付けられたすべての既知特徴スペクトル、kは既知特徴スペクトルの序数、max[X]はXの最大値を取る論理演算を示す。類似度を求める関数G{a,b}としては、例えば、コサイン類似度や、ユークリッド距離等の距離を用いた類似度を使用可能である。類似度S(Class)は、特徴スペクトルSpと、特定のクラスに対応するすべての既知特徴スペクトルKSp(Class,k)のそれぞれとの間で算出された類似度のうちの最大値である。このような類似度S(Class)は、Nm個のクラスのそれぞれに対して求められる。類似度S(Class)は、被分類データが、各クラスの特徴に類似している程度を表している。この類似度S(Class)は、被分類データのクラス分類結果に関する説明情報として使用することができる。
S(Class)=max[G{Sp,KSp(Class,k)}] (A4)
ここで、”Class”はクラスに対する序数、G{a,b}はaとbの類似度を求める関数、Spは被分類データに応じて得られる特徴スペクトル、KSp(Class,k)は、特定の”Class”に関連付けられたすべての既知特徴スペクトル、kは既知特徴スペクトルの序数、max[X]はXの最大値を取る論理演算を示す。類似度を求める関数G{a,b}としては、例えば、コサイン類似度や、ユークリッド距離等の距離を用いた類似度を使用可能である。類似度S(Class)は、特徴スペクトルSpと、特定のクラスに対応するすべての既知特徴スペクトルKSp(Class,k)のそれぞれとの間で算出された類似度のうちの最大値である。このような類似度S(Class)は、Nm個のクラスのそれぞれに対して求められる。類似度S(Class)は、被分類データが、各クラスの特徴に類似している程度を表している。この類似度S(Class)は、被分類データのクラス分類結果に関する説明情報として使用することができる。
クラスを考慮しない最大類似度S(All)は、例えば次式を用いて算出できる。
S(All)=max[G{Sp,KSp(k)}] (A5)
ここで、KSp(k)は、すべての既知特徴スペクトルのうちのk番目のものを示す。この最大類似度S(All)は、特徴スペクトルSpとすべての既知特徴スペクトルKSpとの間の類似度のうちの最大値である。最大類似度S(All)を与える既知特徴スペクトルKSp(k)を特定できるので、図8に示す既知特徴スペクトル群GKSpから、ラベルすなわちクラスを特定することができる。この最大類似度S(All)は、被分類データが既知データに属するか未知のデータか、というクラス分類結果を説明する説明情報として使用することができる。
S(All)=max[G{Sp,KSp(k)}] (A5)
ここで、KSp(k)は、すべての既知特徴スペクトルのうちのk番目のものを示す。この最大類似度S(All)は、特徴スペクトルSpとすべての既知特徴スペクトルKSpとの間の類似度のうちの最大値である。最大類似度S(All)を与える既知特徴スペクトルKSp(k)を特定できるので、図8に示す既知特徴スペクトル群GKSpから、ラベルすなわちクラスを特定することができる。この最大類似度S(All)は、被分類データが既知データに属するか未知のデータか、というクラス分類結果を説明する説明情報として使用することができる。
なお、クラス別の類似度S(Class)は、被分類データが、各クラスの特徴に類似している程度を表しているので、クラス別の類似度S(Class)を用いて、被分類データの該当クラスを決定するようにしてもよい。例えば、或るクラスの類似度S(Class)が予め定められた閾値以上の場合には、被分類データがそのクラスに属するものと判定できる。一方、すべてのクラスに関する類似度S(Class)が閾値未満の場合には、被分類データが未知であると判定できる。また、最大類似度S(All)を用いて、被分類データの該当クラスを決定するようにしてもよい。
また、類似度のみを用いて被分類データの該当クラスを決定する代わりに、類似度と、ClassVN層260の判定値Class_0~Class_Nm-1又はPostBranchedClassVN層272の判定値#Class_0~#Class_Nm-1のうちの一方と、を用いて被分類データの該当クラスを決定するようにしてもよい。例えば、類似度から決定される該当クラスと、PostBranchedClassVN層272の判定値#Class_0~#Class_Nm-1から決定される該当クラスとが一致している場合に、被分類データがそのクラスに属するものと判定することができる。また、類似度から決定される該当クラスと、PostBranchedClassVN層272の判定値#Class_0~#Class_Nm-1から決定される該当クラスとが一致していない場合には、被分類データが未知のクラスに属するものと判定することができる。
ステップS270では、クラス分類処理部114が、被分類データの該当クラスと共に、類似度を説明情報として表示デバイス150に表示する。類似度としては、上述したクラス別の類似度S(Class)と最大類似度S(All)のいずれかを使用することが可能である。以下では、クラス別の類似度S(Class)を説明情報として使用した例を説明する。
図10は、クラス分類の結果表示の一例を示す説明図である。結果表示ウィンドウWDには、被分類データGFの画像と、分類結果RFと、説明情報XFとが表示されている。この例では、分類結果RFは数字の「6」である。説明情報XFとしては、数字の0~9にそれぞれ対応するラベル0~9、すなわち、クラス0~9のそれぞれに対する類似度S(Class)の値が棒グラフで示されている。ラベル6に対する類似度は、他のラベルに対する類似度に比較して十分に大きいので、ユーザーは、この説明情報XFから、分類結果RFが信頼できるものであることが理解できる。図10の例では、類似度を用いて該当クラスを決定する際に用いられる閾値Thも表示されている。
図11は、クラス分類の結果表示の他の例を示す説明図である。この例では、被分類データの分類結果RFは「未知」とされている。説明情報XFに示されている類似度は、すべてのラベルに対して十分に小さいので、ユーザーは、この説明情報XFから、「未知」という分類結果RFが信頼できることが理解できる。
図12は、分岐出力層270の有無による未知検出率を比較して示す説明図である。ここでは、図3に示した機械学習モデル200から分岐出力層270を省略した仮想的なモデルについて、ClassVN層260の出力から得られる特徴スペクトルを用いた類似度を用いて未知データのクラス分類を行った場合に、正しく未知と判定される未知検出率を示している。また、分岐出力層270を有する機械学習モデル200については、ClassVN層260とPreBranchedClassVN層271のそれぞれの出力から得られる特徴スペクトルを用いた類似度を用いて未知データのクラス分類を行った場合に、正しく未知と判定される未知検出率を示している。
図13は、未知検出率の計算方法を示す説明図である。図13の横軸は類似度であり、縦軸は頻度である。この処理では、既知クラスに属するテストデータに対して類似度の平均μと分散σを算出し、μ-2σを閾値Thとして用いている。そして、類似度が閾値Th未満のテストデータを未知、閾値Th以上のテストデータを既知と判定する。その際、未知クラスに属するテストデータに対して、正しく未知と判定できた割合を未知検出率として算出する。
図12の結果から理解できるように、分岐出力層270を設けた機械学習モデル200では、そのPreBranchedClassVN層271の出力から算出される類似度の方が、分岐出力層270を有さない機械学習モデルのClassVN層260の出力から算出される類似度に比べて、信頼性が高い。従って、分岐出力層270を設けることによって、より信頼性の高い説明情報を生成できる。
一般に、ソフトマックス関数は、クラス分類を行うニューラルネットワークの出力層の活性化関数に適している。但し、ソフトマックス関数は強度の差を強調して情報を圧縮する性質を持っているので、出力層における特徴スペクトルも同様に変形・圧縮してしまい、説明情報の信頼性が低下してしまう傾向がある。そこで、機械学習モデル200の第1出力層であるClassVN層260の活性化関数としてソフトマックス関数を用いた場合には、PreBranchedClassVN層271の活性化関数としてソフトマックス関数以外の活性化関数を用いることが好ましい。こうすれば、PreBranchedClassVN層271の出力を用いて、信頼性の高い説明情報を作成することが可能である。また、ソフトマックス関数で差を強調して情報を圧縮するので、ソフトマックス関数を使った層の前層では、圧縮に耐えうるリッチな情報を生成する傾向にあり、逆に説明情報の信頼性が向上する傾向がみられる。そのため、分岐して第2出力層をつくることで、本来の第1出力層の前層の説明情報の信頼性を保つことができる。
上述した実施形態では、ClassVN層260の活性化関数としてソフトマックス関数を用い、PreBranchedClassVN層271の活性化関数として線形関数を用いていたが、PreBranchedClassVN層271は、ClassVN層260で使用される活性化関数と異なる活性化関数を用いるように構成されていればよく、2つの層260,271の活性化関数として他の活性化関数を使用してもよい。この場合にも、2つの層260,271のうちの一方を用いて、クラス分類結果に関する説明情報を作成することができる。他の活性化関数としては、例えば、恒等関数や、ステップ関数、シグモイド関数、tanh関数、ソフトプラス関数、ReLU、Leaky ReLU、Parametric ReLU、ELU、SELU、Swish関数、Mish関数などを使用することができる。
以上のように、本実施形態では、第1出力層であるClassVN層260の他に、第2出力層である分岐出力層270を設け、第2出力層が第1出力層と異なる活性化関数を使用するので、第1出力層と第2出力層のうちの一方を用いて、クラス分類における信頼性の高い説明情報を作成することができる。また、本実施形態では、第2出力層である分岐出力層270の出力から得られる特徴スペクトルと既知特徴スペクトル群とのクラス別の類似度を、信頼性の高い説明情報として利用できる。
B.機械学習モデルの各層の出力ベクトルの演算方法:
図3に示した各層の出力の演算方法は、以下の通りである。
図3に示した各層の出力の演算方法は、以下の通りである。
PrimeVN層230の各ノードは、Conv層220の1×1×32個のノードのスカラー出力を32次元のベクトルとみなして、このベクトルに変換行列を乗ずることによってそのノードのベクトル出力を得る。この変換行列は、表面サイズが1×1のカーネルの要素であり、機械学習モデル200の学習によって更新される。なお、Conv層220とPrimeVN層230の処理を統合して、1つのプライマリーベクトルニューロン層として構成することも可能である。
PrimeVN層230を「下位層L」と呼び、その上位側に隣接するConvVN1層240を「上位層L+1」と呼ぶとき、上位層L+1の各ノードの出力は、以下の式を用いて決定される。
ここで、
ML iは、下位層Lにおけるi番目のノードの出力ベクトル、
ML+1 jは、上位層L+1におけるj番目のノードの出力ベクトル、
vijは、出力ベクトルML+1 jの予測ベクトル、
WL ijは、下位層Lの出力ベクトルML iから予測ベクトルvijを算出するための予測行列、
ujは、予測ベクトルvijの和、すなわち線形結合、である和ベクトル、
ajは、和ベクトルujのノルム|uj|を正規化することによって得られる正規化係数であるアクティベーション値、
F(X)は、Xを正規化する正規化関数である。
ML iは、下位層Lにおけるi番目のノードの出力ベクトル、
ML+1 jは、上位層L+1におけるj番目のノードの出力ベクトル、
vijは、出力ベクトルML+1 jの予測ベクトル、
WL ijは、下位層Lの出力ベクトルML iから予測ベクトルvijを算出するための予測行列、
ujは、予測ベクトルvijの和、すなわち線形結合、である和ベクトル、
ajは、和ベクトルujのノルム|uj|を正規化することによって得られる正規化係数であるアクティベーション値、
F(X)は、Xを正規化する正規化関数である。
正規化関数F(X)としては、例えば以下の(E3a)式または(E3b)式を使用できる。
ここで、
kは、上位層L+1のすべてのノードに対する序数、
βは、任意の正の係数である調整パラメーターであり、例えばβ=1である。
kは、上位層L+1のすべてのノードに対する序数、
βは、任意の正の係数である調整パラメーターであり、例えばβ=1である。
上記(E3a)式では、上位層L+1のすべてのノードに関して和ベクトルujのノルム|uj|をソフトマックス関数で正規化することによってアクティベーション値ajが得られる。一方、(E3b)式では、和ベクトルujのノルム|uj|を、上位層L+1のすべてのノードに関するノルム|uj|の和で除算することによってアクティベーション値ajが得られる。(E3a)式及び(E3b)式は、上述した(A2)式及び(A1)式と同じものである。なお、正規化関数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層230のチャンネル数である。図3の例ではNk=9、Nc=16なので、n=144である。
n=Nk×Nc (E5)
ここで、Nkはカーネルの表面サイズであり、Ncは下位層であるPrimeVN層230のチャンネル数である。図3の例ではNk=9、Nc=16なので、n=144である。
ConvVN1層240の出力ベクトルを求めるために使用される1つのカーネルは、カーネルサイズ3×3を表面サイズとし、下位層のチャンネル数16を深さとする3×3×16=144個の要素を有しており、これらの要素のそれぞれは予測行列WL
ijである。また、ConvVN1層240の12個のチャンネルの出力ベクトルを生成するためには、このカーネルが12組必要である。従って、ConvVN1層240の出力ベクトルを求めるために使用されるカーネルの予測行列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を乗じる。
(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のメモリー量で済むという利点もある。
ベクトルを入出力とするノードを使用するという点では、ベクトルニューラルネットワークはカプセルネットワークと同じである。従って、ベクトルニューロンを使用する利点もカプセルネットワークと共通している。また、複数の層220~260,270は、上位に行くほどより大きな領域の特徴を表現し、下位に行くほどより小さな領域の特徴を表現する、という点は、通常の畳み込みニューラルネットワークと同じである。ここで、「特徴」とは、ニューラルネットワークへの入力データに含まれている特徴的な部分を意味する。ベクトルニューラルネットワークやカプセルネットワークでは、或るノードの出力ベクトルが、そのノードが表現する特徴の空間的な情報を表す空間情報を含む点で、通常の畳み込みニューラルネットワークよりも優れている。すなわち、或るノードの出力ベクトルのベクトル長さは、そのノードが表現する特徴の存在確率を表し、ベクトル方向がその特徴の方向やスケール等の空間情報を表している。従って、同じ層に属する2つのノードの出力ベクトルのベクトル方向は、それぞれの特徴の位置関係を表す。あるいは、当該2つのノードの出力ベクトルのベクトル方向は、特徴のバリエーションを表わすとも言える。例えば、「目」の特徴に対応するノードなら、出力ベクトルの方向は、目の細さ、吊り上がり方、などのバリエーションを表し得る。通常の畳み込みニューラルネットワークでは、プーリング処理によって特徴の空間情報が消失してしまうと言われている。この結果、ベクトルニューラルネットワークやカプセルネットワークは、通常の畳み込みニューラルネットワークに比べて入力データを識別する性能に優れているという利点がある。
ベクトルニューラルネットワークの利点は、以下のように考えることも可能である。すなわち、ベクトルニューラルネットワークでは、ノードの出力ベクトルが、入力データの特徴を連続空間内の座標として表現すること、に利点がある。従って、ベクトル方向が近ければ特徴が似ている、というように出力ベクトルを評価できる。また、入力データに含まれている特徴が教師データではカバーできていなくても、補間してその特徴を判別できる、などの利点もある。一方、通常の畳み込みニューラルネットワークは、プーリング処理によって無秩序な圧縮がかかるため、入力データの特徴を連続空間内の座標として表現できない、という欠点がある。
ConvVN2層250とClassVN層260の各ノードの出力も、上述した(E1)~(E4)式を用いて同様に決定されるので、詳細な説明は省略する。最上位層であるClassVN層260の解像度は1×1であり、チャンネル数はNmである。分岐出力層270を構成するPreBranchedClassVN層271とPostBranchedClassVN層272の各ノードの出力も、上述した(E1)~(E4)式を用いて同様に決定される。
ClassVN層260の出力は、既知のクラスに対する複数の判定値Class_0~Class_Nm-1に変換される。これらの判定値は、通常はソフトマックス関数によって正規化された値である。具体的には、例えば、ClassVN層260の各ノードの出力ベクトルから、その出力ベクトルのベクトル長さを算出し、更に、各ノードのベクトル長さをソフトマックス関数で正規化する、という演算を実行することによって、個々のクラスに対する判定値を得ることができる。上述したように、上記(E3)式で得られるアクティベーション値ajは、出力ベクトルML+1
jのベクトル長さに相当する値であり、正規化されている。従って、ClassVN層260の各ノードのそれぞれにおけるアクティベーション値ajを出力して、そのまま各クラスに対する判定値として使用してもよい。これらの事情は、PostBranchedClassVN層272の判定値#Class_0~#Class_Nm-1も同様である。
上述の実施形態では、機械学習モデル200として、上記(E1)式~(E4)式の演算によって出力ベクトルを求めるベクトルニューラルネットワークを用いていたが、この代わりに、米国特許第5210798号公報や国際公開2009/083553号公報に開示されているカプセルネットワークを用いてもよい。
・他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の第1の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理を実行するクラス分類装置が提供される。前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、前記第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている。
このクラス分類装置によれば、第2出力層は第1出力層と異なる活性化関数を使用するので、第1出力層と第2出力層のうちの一方を用いて、クラス分類における信頼性の高い説明情報を作成することができる。
このクラス分類装置によれば、第2出力層は第1出力層と異なる活性化関数を使用するので、第1出力層と第2出力層のうちの一方を用いて、クラス分類における信頼性の高い説明情報を作成することができる。
(2)上記クラス分類装置において、前記第1活性化関数はソフトマックス関数であるものとしてもよい。
このクラス分類装置によれば、ソフトマックス関数とは異なる第2活性化関数を使用する第2出力層を用いて、信頼性の高い説明情報を作成できる。
このクラス分類装置によれば、ソフトマックス関数とは異なる第2活性化関数を使用する第2出力層を用いて、信頼性の高い説明情報を作成できる。
(3)上記クラス分類装置において、前記プレ層は前記第2活性化関数を使用するように構成され、前記ポスト層は前記ソフトマックス関数を使用するように構成されているものとしてもよい。
このクラス分類装置によれば、プレ層を用いて信頼性の高い説明情報を作成できる。また、ポスト層はソフトマックス関数を使用するので、第2出力層の学習をうまく実行できる。
このクラス分類装置によれば、プレ層を用いて信頼性の高い説明情報を作成できる。また、ポスト層はソフトマックス関数を使用するので、第2出力層の学習をうまく実行できる。
(4)上記クラス分類装置は、前記機械学習モデルを用いて前記クラス分類処理を実行するクラス分類処理部と、前記機械学習モデルに複数の教師データが入力されたときに前記第2出力層の出力から得られた既知特徴スペクトル群と、前記機械学習モデルとを記憶するメモリーと、を備え、前記クラス分類処理部は、(a)前記機械学習モデルを前記メモリーから読み出す処理と、(b)前記既知特徴スペクトル群を前記メモリーから読み出す処理と、(c)前記機械学習モデルを用いて、前記被分類データの該当クラスを決定する処理と、実行するように構成されてものとしてもよい。前記処理(c)は、(c1)前記機械学習モデルに前記被分類データが入力されたときに前記第2出力層の出力から得られる特徴スペクトルと、前記既知特徴スペクトル群との類似度を演算し、前記類似度を、前記被分類データのクラス分類結果に関する説明情報として作成する処理と、(c2)前記第1出力層の出力と、前記第2出力層の出力と、前記類似度と、のいずれかに応じて、前記被分類データの前記該当クラスを決定する処理と、(c3)前記被分類データの前記該当クラスと、前記説明情報とを表示する処理と、を含むものとしてもよい。
このクラス分類装置によれば、第2出力層の出力から得られる特徴スペクトルと既知特徴スペクトル群とのクラス別の類似度を、信頼性の高い説明情報として利用できる。
このクラス分類装置によれば、第2出力層の出力から得られる特徴スペクトルと既知特徴スペクトル群とのクラス別の類似度を、信頼性の高い説明情報として利用できる。
(5)上記クラス分類装置において、前記第2出力層に含まれる特定層は、第1軸と第2軸の2つの軸で規定された平面に配置されたベクトルニューロンが、前記2つの軸とは異なる方向の第3軸に沿って複数のチャンネルとして配置されている構成を有ものとしてもよい。前記特徴スペクトルは、(i)前記特定層のうちの1つの平面位置におけるベクトルニューロンの出力ベクトルの複数の要素値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第1種の特徴スペクトルと、(ii)前記第1種の特徴スペクトルの各要素値に、前記出力ベクトルのベクトル長に相当するアクティベーション値を乗じることによって得られる第2種の特徴スペクトルと、(iii)前記特定層のうちの1つの平面位置における前記アクティベーション値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第3種の特徴スペクトルと、のうちのいずれかであるものとしてもよい。
このクラス分類装置によれば、特徴スペクトルを容易に求めることができる。
このクラス分類装置によれば、特徴スペクトルを容易に求めることができる。
(6)本開示の第2の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理を実行する方法が提供される。この方法は、(a)前記機械学習モデルをメモリーから読み出す工程であって、前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、前記第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている、工程と、(b)前記機械学習モデルに複数の教師データが入力されたときに前記第2出力層の出力から得られた既知特徴スペクトル群を前記メモリーから読み出す工程と、(c)前記機械学習モデルを用いて、前記被分類データの該当クラスを決定する工程と、を含む。前記工程(c)は、(c1)前記機械学習モデルに前記被分類データが入力されたときに前記第2出力層の出力から得られる特徴スペクトルと、前記既知特徴スペクトル群との類似度を演算し、前記類似度を、前記被分類データのクラス分類における説明情報として作成する工程と、(c2)前記第1出力層の出力と、前記第2出力層の出力と、前記類似度と、のいずれかに応じて、前記被分類データの前記該当クラスを決定する工程と、(c3)前記被分類データの前記該当クラスと、前記説明情報とを表示する工程と、を含む。
この方法によれば、第2出力層の出力から得られる特徴スペクトルと既知特徴スペクトル群とのクラス別の類似度を、信頼性の高い説明情報として利用できる。
この方法によれば、第2出力層の出力から得られる特徴スペクトルと既知特徴スペクトル群とのクラス別の類似度を、信頼性の高い説明情報として利用できる。
(7)本開示の第3の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)前記機械学習モデルをメモリーから読み出す処理であって、前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、前記第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている、処理と、(b)前記機械学習モデルに複数の教師データが入力されたときに前記第2出力層の出力から得られた既知特徴スペクトル群を前記メモリーから読み出す処理と、(c)前記機械学習モデルを用いて、前記被分類データの該当クラスを決定する処理と、を前記プロセッサーに実行させる。前記処理(c)は、(c1)前記機械学習モデルに前記被分類データが入力されたときに前記第2出力層の出力から得られる特徴スペクトルと、前記既知特徴スペクトル群との類似度を演算し、前記類似度を、前記被分類データのクラス分類における説明情報として作成する処理と、(c2)前記第1出力層の出力と、前記第2出力層の出力と、前記類似度と、のいずれかに応じて、前記被分類データの前記該当クラスを決定する処理と、(c3)前記被分類データの前記該当クラスと、前記説明情報とを表示する処理と、を含む。
本開示は、上記以外の種々の形態で実現することも可能である。例えば、クラス分類装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
100…情報処理装置、110…プロセッサー、112…学習実行部、114…クラス分類処理部、120…メモリー、130…インターフェイス回路、140…入力デバイス、150…表示デバイス、200…機械学習モデル、210…入力層、220…畳み込み層、230…プライマリーベクトルニューロン層、240…第1畳み込みベクトルニューロン層、250…第2畳み込みベクトルニューロン層、260…分類ベクトルニューロン層、270…分岐出力層、271…プレ分岐分類ベクトルニューロン層、272…ポスト分岐分類ベクトルニューロン層、280…中間層、290…出力層、310…類似度演算部、320…クラス判別部、400…カメラ
Claims (7)
- 複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理を実行するクラス分類装置であって、
前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、
前記第1出力層は、第1活性化関数を使用するように構成されており、
前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている、クラス分類装置。 - 請求項1に記載のクラス分類装置であって、
前記第1活性化関数はソフトマックス関数である、クラス分類装置。 - 請求項2に記載のクラス分類装置であって、
前記第2出力層は、最下位側のプレ層と最上位側のポスト層とを含み、
前記プレ層は前記第2活性化関数を使用するように構成され、前記ポスト層は前記ソフトマックス関数を使用するように構成されている、クラス分類装置。 - 請求項1~3のいずれか一項に記載のクラス分類装置であって、
前記機械学習モデルを用いて前記クラス分類処理を実行するクラス分類処理部と、
前記機械学習モデルに複数の教師データが入力されたときに前記第2出力層の出力から得られた既知特徴スペクトル群と、前記機械学習モデルとを記憶するメモリーと、
を備え、
前記クラス分類処理部は、
(a)前記機械学習モデルを前記メモリーから読み出す処理と、
(b)前記既知特徴スペクトル群を前記メモリーから読み出す処理と、
(c)前記機械学習モデルを用いて、前記被分類データの該当クラスを決定する処理と、
実行するように構成されており、
前記処理(c)は、
(c1)前記機械学習モデルに前記被分類データが入力されたときに前記第2出力層の出力から得られる特徴スペクトルと、前記既知特徴スペクトル群との類似度を演算し、前記類似度を、前記被分類データのクラス分類結果に関する説明情報として作成する処理と、
(c2)前記第1出力層の出力と、前記第2出力層の出力と、前記類似度と、のいずれかに応じて、前記被分類データの前記該当クラスを決定する処理と、
(c3)前記被分類データの前記該当クラスと、前記説明情報とを表示する処理と、
を含む、クラス分類装置。 - 請求項4に記載のクラス分類装置であって、
前記第2出力層に含まれる特定層は、第1軸と第2軸の2つの軸で規定された平面に配置されたベクトルニューロンが、前記2つの軸とは異なる方向の第3軸に沿って複数のチャンネルとして配置されている構成を有し、
前記特徴スペクトルは、
(i)前記特定層のうちの1つの平面位置におけるベクトルニューロンの出力ベクトルの複数の要素値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第1種の特徴スペクトルと、
(ii)前記第1種の特徴スペクトルの各要素値に、前記出力ベクトルのベクトル長に相当するアクティベーション値を乗じることによって得られる第2種の特徴スペクトルと、
(iii)前記特定層のうちの1つの平面位置における前記アクティベーション値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第3種の特徴スペクトルと、
のうちのいずれかである、クラス分類装置。 - 複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理を実行する方法であって、
(a)前記機械学習モデルをメモリーから読み出す工程であって、前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、前記第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている、工程と、
(b)前記機械学習モデルに複数の教師データが入力されたときに前記第2出力層の出力から得られた既知特徴スペクトル群を前記メモリーから読み出す工程と、
(c)前記機械学習モデルを用いて、前記被分類データの該当クラスを決定する工程と、
を含み、
前記工程(c)は、
(c1)前記機械学習モデルに前記被分類データが入力されたときに前記第2出力層の出力から得られる特徴スペクトルと、前記既知特徴スペクトル群との類似度を演算し、前記類似度を、前記被分類データのクラス分類結果に関する説明情報として作成する工程と、
(c2)前記第1出力層の出力と、前記第2出力層の出力と、前記類似度と、のいずれかに応じて、前記被分類データの前記該当クラスを決定する工程と、
(c3)前記被分類データの前記該当クラスと、前記説明情報とを表示する工程と、
を含む、方法。 - 複数のベクトルニューロン層を有するベクトルニューラルネットワークを含む機械学習モデルを用いて被分類データのクラス分類処理をプロセッサーに実行させるコンピュータープログラムであって、
前記コンピュータープログラムは、
(a)前記機械学習モデルをメモリーから読み出す処理であって、前記機械学習モデルは、入力層と、中間層と、前記中間層から分岐する第1出力層及び第2出力層と、を有し、前記第1出力層は、第1活性化関数を使用するように構成されており、前記第2出力層は、前記第1活性化関数と異なる第2活性化関数を使用するように構成されている、処理と、
(b)前記機械学習モデルに複数の教師データが入力されたときに前記第2出力層の出力から得られた既知特徴スペクトル群を前記メモリーから読み出す処理と、
(c)前記機械学習モデルを用いて、前記被分類データの該当クラスを決定する処理と、
を前記プロセッサーに実行させ、
前記処理(c)は、
(c1)前記機械学習モデルに前記被分類データが入力されたときに前記第2出力層の出力から得られる特徴スペクトルと、前記既知特徴スペクトル群との類似度を演算し、前記類似度を、前記被分類データのクラス分類結果に関する説明情報として作成する処理と、
(c2)前記第1出力層の出力と、前記第2出力層の出力と、前記類似度と、のいずれかに応じて、前記被分類データの前記該当クラスを決定する処理と、
(c3)前記被分類データの前記該当クラスと、前記説明情報とを表示する処理と、
を含む、コンピュータープログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021191064A JP2023077690A (ja) | 2021-11-25 | 2021-11-25 | 機械学習モデルを用いてクラス分類処理を実行するクラス分類装置、方法、及び、コンピュータープログラム |
US18/058,433 US20230162001A1 (en) | 2021-11-25 | 2022-11-23 | Classification device configured to execute classification processing using learning machine model, method, and non-transitory computer-readable storage medium storing computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021191064A JP2023077690A (ja) | 2021-11-25 | 2021-11-25 | 機械学習モデルを用いてクラス分類処理を実行するクラス分類装置、方法、及び、コンピュータープログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023077690A true JP2023077690A (ja) | 2023-06-06 |
Family
ID=86383948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021191064A Pending JP2023077690A (ja) | 2021-11-25 | 2021-11-25 | 機械学習モデルを用いてクラス分類処理を実行するクラス分類装置、方法、及び、コンピュータープログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230162001A1 (ja) |
JP (1) | JP2023077690A (ja) |
-
2021
- 2021-11-25 JP JP2021191064A patent/JP2023077690A/ja active Pending
-
2022
- 2022-11-23 US US18/058,433 patent/US20230162001A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230162001A1 (en) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11734851B2 (en) | Face key point detection method and apparatus, storage medium, and electronic device | |
Wang et al. | G2DeNet: Global Gaussian distribution embedding network and its application to visual recognition | |
US11645835B2 (en) | Hypercomplex deep learning methods, architectures, and apparatus for multimodal small, medium, and large-scale data representation, analysis, and applications | |
US11232286B2 (en) | Method and apparatus for generating face rotation image | |
WO2021036059A1 (zh) | 图像转换模型训练方法、异质人脸识别方法、装置及设备 | |
CN111161349B (zh) | 物体姿态估计方法、装置与设备 | |
WO2021027759A1 (en) | Facial image processing | |
CN109684969B (zh) | 凝视位置估计方法、计算机设备及存储介质 | |
CN111754396B (zh) | 脸部图像处理方法、装置、计算机设备和存储介质 | |
US20060217925A1 (en) | Methods for entity identification | |
EP3905194A1 (en) | Pose estimation method and apparatus | |
CN112288011A (zh) | 一种基于自注意力深度神经网络的图像匹配方法 | |
CN112132739A (zh) | 3d重建以及人脸姿态归一化方法、装置、存储介质及设备 | |
CN111382791B (zh) | 深度学习任务处理方法、图像识别任务处理方法和装置 | |
CN113378812A (zh) | 一种基于Mask R-CNN和CRNN的数字表盘识别方法 | |
CN117372604B (zh) | 一种3d人脸模型生成方法、装置、设备及可读存储介质 | |
CN113592769A (zh) | 异常图像的检测、模型的训练方法、装置、设备及介质 | |
CN116758419A (zh) | 针对遥感图像的多尺度目标检测方法、装置和设备 | |
JP7225731B2 (ja) | 多変数データシーケンスの画像化 | |
JP2023077690A (ja) | 機械学習モデルを用いてクラス分類処理を実行するクラス分類装置、方法、及び、コンピュータープログラム | |
CN114926876A (zh) | 图像关键点检测方法、装置、计算机设备和存储介质 | |
JP7239002B2 (ja) | 物体数推定装置、制御方法、及びプログラム | |
CN114998990B (zh) | 一种工地人员安全行为识别方法及装置 | |
JP2023076878A (ja) | 機械学習モデルを用いて回帰処理を実行する回帰処理装置、方法、及び、コンピュータープログラム | |
JP7335204B2 (ja) | 画像処理装置、画像処理方法及び画像処理プログラム |