(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】機械学習モデルを用いて被判別データのクラスを判別する方法、情報処理装置、及び、コンピュータープログラム
(51)【国際特許分類】
G06N 3/08 20230101AFI20241022BHJP
G06N 20/00 20190101ALI20241022BHJP
G01N 21/27 20060101ALI20241022BHJP
【FI】
G06N3/08
G06N20/00 130
G01N21/27 Z
(21)【出願番号】P 2021015502
(22)【出願日】2021-02-03
【審査請求日】2023-10-20
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】西村 秦
(72)【発明者】
【氏名】渡邊 亮基
(72)【発明者】
【氏名】倉沢 光
【審査官】北川 純次
(56)【参考文献】
【文献】特開2019-212296(JP,A)
【文献】特開2020-166813(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02 - 3/10
G06N 20/00
G01N 21/27
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別する方法であって、
(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの
中間層を含む1つ以上の特定層の出力から得られる既知特徴スペクトル群を、複数のクラスのそれぞれについて準備する工程と、
(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する工程と、
を含み、
前記工程(b)は、
(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する工程と、
(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群とのクラス別類似度を演算する工程と、
(b3)前記クラス別類似度に応じて前記被判別データのクラスを判別する工程と、
を含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記特定層は、第1軸と第2軸の2つの軸で規定された平面に配置されたベクトルニューロンが、前記2つの軸とは異なる方向の第3軸に沿って複数のチャンネルとして配置されている構成を有し、
前記特定層において、前記第1軸の位置と前記第2軸の位置で規定される平面位置で特定され、前記第3軸に沿った前記複数のチャンネルを含む領域を、部分領域と呼ぶとき、
前記特徴スペクトルは、前記特定層に含まれる複数の部分領域のうちの各部分領域について、
(i)当該部分領域に含まれる各ベクトルニューロンの出力ベクトルの複数の要素値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第1種の特徴スペクトルと、
(ii)前記第1種の特徴スペクトルの各要素値に、前記出力ベクトルのベクトル長さに相当する正規化係数を乗じることによって得られる第2種の特徴スペクトルと、
(iii)前記正規化係数を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第3種の特徴スペクトルと、
のうちのいずれかとして求められる、方法。
【請求項3】
請求項2に記載の方法であって、
前記工程(b2)は、
前記被判別データに応じて、前記特定層の特定の部分領域の出力から得られる前記特徴スペクトルと、前記特定層及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度である局所類似度を求めることによって、前記特定層の前記複数の部分領域に関して各クラスに対する類似度を示す複数の局所類似度を求める工程と、
前記クラス毎に、前記複数の部分領域に関する前記複数の局所類似度の最大値、平均値、又は、最小値を取ることによって、前記クラス別類似度を求める工程と、
を含む、方法。
【請求項4】
請求項2に記載の方法であって、
前記工程(b2)は、
前記被判別データに応じて、前記特定層の特定の部分領域の出力から得られる前記特徴スペクトルと、前記特定層の前記特定の部分領域及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度である局所類似度を求めることによって、前記特定層の前記複数の部分領域に関して各クラスに対する類似度を示す複数の局所類似度を求める工程と、
前記クラス毎に、前記複数の部分領域に関する前記複数の局所類似度の最大値、平均値、又は、最小値を取ることによって、前記クラス別類似度を求める工程と、
を含む、方法。
【請求項5】
請求項2に記載の方法であって、
前記工程(b2)は、
前記被判別データに応じて、前記特定層の出力から得られるすべての前記特徴スペクトルと、前記特定層及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度をクラス毎にそれぞれ求めることによって、前記クラス別類似度を求める工程を含む、方法。
【請求項6】
請求項1~5のいずれか一項に記載の方法であって、
前記特定層が複数存在する場合に、
前記工程(b3)は、
各特定層に関する前記クラス別類似度からクラス判別結果を求めることによって、前記複数の特定層に関するそれぞれのクラス判別結果を得る工程と、
前記複数のクラス判別結果で示されるクラスのうちで、最も多いクラスを前記被判別データの判別クラスとして決定する工程と、
を含む、方法。
【請求項7】
請求項3又は4に記載の方法であって、
前記特定層が複数存在する場合に、
前記工程(b3)は、
各特定層の各部分領域に対して、当該部分領域に関する前記局所類似度に基づいてクラスを決定するとともに、当該クラスの前記複数のクラスの中での順序を示すクラスパラメーター値を当該部分領域に割り当てる工程と、
前記複数の部分領域における前記クラスパラメーター値の分布に関する統計的な分散を、前記複数の特定層のそれぞれについて算出する工程と、
前記複数の特定層のうち、前記分散が最も小さい特定層に対して得られていた前記クラス別類似度を用いて、前記被判別データのクラスを判別する工程と、
を含む、方法。
【請求項8】
複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別するクラス判別処理を実行する情報処理装置であって、
前記機械学習モデルを記憶するメモリーと、
前記機械学習モデルを用いた演算を実行するプロセッサーと、
を備え、
前記プロセッサーは、
(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの
中間層を含む1つ以上の特定層の出力から得られる既知特徴スペクトル群を、前記複数のクラスのそれぞれについて前記メモリーから読み出す処理と、
(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する処理と、
を実行するように構成されており、
前記処理(b)は、
(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、
(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、
(b3)前記類似度に応じて前記被判別データのクラスを判別する処理と、
を含む、情報処理装置。
【請求項9】
複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別するクラス判別処理をプロセッサーに実行させるコンピュータープログラムであって、
(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの
中間層を含む1つ以上の特定層の出力から得られる既知特徴スペクトル群を、前記複数のクラスのそれぞれについてメモリーから読み出す処理と、
(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する処理と、
を前記プロセッサーに実行させるコンピュータープログラムであり、
前記処理(b)は、
(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、
(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、
(b3)前記類似度に応じて前記被判別データのクラスを判別する処理と、
を含む、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、機械学習モデルを用いて被判別データのクラスを判別する方法、情報処理装置、及び、コンピュータープログラムに関する。
【背景技術】
【0002】
特許文献1,2には、ベクトルニューロンを用いるベクトルニューラルネットワーク型の機械学習モデルとして、カプセルネットワークと呼ばれるものが開示されている。ベクトルニューロンとは、入出力がベクトルであるニューロンを意味する。カプセルネットワークは、カプセルと呼ばれるベクトルニューロンをネットワークのノードとする機械学習モデルである。カプセルネットワークなどのベクトルニューラルネットワーク型の機械学習モデルは、入力データのクラス判別に利用することができる。
【先行技術文献】
【特許文献】
【0003】
【文献】米国特許第5210798号公報
【文献】国際公開2019/083553号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の発明者は、従来技術では、入力データの微細な特徴が、伝搬の途中で省略され、出力層でのクラス判別結果に正しく反映されず、クラス判別結果が誤ってしまう場合があることを見いだした。本開示は、入力データの微細な特徴が反映された中間層での特徴を抽出し、被判別データのクラス判別を行う技術を提供する。
【課題を解決するための手段】
【0005】
本開示の第1の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別する方法が提供される。この方法は、(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの中間層を含む1つ以上の特定層の出力から得られる既知特徴スペクトル群を、複数のクラスのそれぞれについて準備する工程と、(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する工程と、を含む。前記工程(b)は、(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する工程と、(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群とのクラス別類似度を演算する工程と、(b3)前記クラス別類似度に応じて前記被判別データのクラスを判別する工程と、を含む。
【0006】
本開示の第2の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別するクラス判別処理を実行する情報処理装置が提供される。この情報処理装置は、前記機械学習モデルを記憶するメモリーと、前記機械学習モデルを用いた演算を実行するプロセッサーと、を備える。前記プロセッサーは、(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの中間層を含む1つ以上の特定層の出力から得られる既知特徴スペクトル群を、複数のクラスのそれぞれについて前記メモリーから読み出す処理と、(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する処理と、を実行するように構成されている。前記処理(b)は、(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、(b3)前記類似度に応じて前記被判別データのクラスを判別する処理と、を含む。
【0007】
本開示の第3の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別するクラス判別処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの中間層を含む1つ以上の特定層の出力から得られる既知特徴スペクトル群を、複数のクラスのそれぞれについてメモリーから読み出す処理と、(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する処理と、を前記プロセッサーに実行させるコンピュータープログラムである。前記処理(b)は、(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、(b3)前記類似度に応じて前記被判別データのクラスを判別する処理と、を含む。
【図面の簡単な説明】
【0008】
【
図1】実施形態におけるクラス判別システムのブロック図。
【
図5】機械学習モデルの準備工程を示すフローチャート。
【
図7】教師データを用いて既知特徴スペクトル群を作成する様子を示す説明図。
【
図9】媒体判別/印刷工程の処理手順を示すフローチャート。
【
図10】被判別データに関するクラス別類似度を求める様子を示す説明図。
【
図11】クラス別類似度の第1の演算方法を示す説明図。
【
図12】クラス別類似度の第2の演算方法を示す説明図。
【
図13】クラス別類似度の第3の演算方法を示す説明図。
【
図14】複数の特定層を用いた判別クラスの第1の決定方法を示す説明図。
【
図15】複数の特定層を用いた判別クラスの第2の決定方法を示す説明図。
【発明を実施するための形態】
【0009】
A.システム構成と処理手順:
図1は、一実施形態におけるクラス判別システムを示すブロック図である。このクラス判別システムは、プリンター10と、情報処理装置20と、分光測定器30とを有する印刷システムである。分光測定器30は、プリンター10で使用される印刷媒体PMについて、未印刷の状態で分光測定を行って、分光反射率を取得することが可能である。本開示において、分光反射率を「分光データ」とも呼ぶ。分光測定器30は、例えば、波長可変干渉分光フィルターと、モノクロイメージセンサーとを備える。分光測定器30で得られた分光データは、後述する機械学習モデルに入力される被判別データとして使用される。情報処理装置20は、機械学習モデルを用いて分光データのクラス判別処理を実行し、印刷媒体PMが複数のクラスのいずれに該当するかを判別する。「印刷媒体PMのクラス」とは、印刷媒体PMの種類を意味する。情報処理装置20は、印刷媒体PMの種類に応じた適切な印刷条件で印刷を実行するようにプリンター10を制御する。なお、本開示によるクラス判別システムは、印刷システム以外のシステムとしても実現可能であり、例えば、被判別画像や、分光データ以外の1次元データ、分光画像、時系列データなどを被判別データとしてクラス判別を行うシステムとして実現してもよい。
【0010】
図2は、情報処理装置20の機能を示すブロック図である。情報処理装置20は、プロセッサー110と、メモリー120と、インターフェイス回路130と、インターフェイス回路130に接続された入力デバイス140及び表示部150と、を有している。インターフェイス回路130には、分光測定器30とプリンター10も接続されている。限定されないが例えば、プロセッサー110は、以下で詳述される処理を実行する機能を有するだけでなく、表示部150に、当該処理によって得られるデータ、および当該処理の過程で生成されるデータを表示する機能も有する。
【0011】
プロセッサー110は、プリンター10を用いた印刷処理を実行する印刷処理部112として機能し、また、印刷媒体PMの分光データのクラス判別処理を実行するクラス判別処理部114として機能する。クラス判別処理部114は、類似度演算部310とクラス決定部320とを含む。印刷処理部112とクラス判別処理部114は、メモリー120に格納されたコンピュータープログラムをプロセッサー110が実行することによって実現される。但し、これらの各部112,114をハードウェア回路で実現してもよい。本明細書のプロセッサーは、このようなハードウェア回路をも含む用語である。また、クラス判別処理を実行するプロセッサーは、ネットワークを介して情報処理装置20に接続されたリモートコンピューターに含まれるプロセッサーであってもよい。
【0012】
メモリー120には、機械学習モデル200と、教師データ(Training Data)TDと、既知特徴スペクトル群KSpと、印刷設定テーブルPSTと、が格納される。機械学習モデル200は、クラス判別処理部114による処理に使用される。機械学習モデル200の構成例や動作については後述する。教師データTDは、機械学習モデル200の学習に使用されるラベル付きのデータの集合である。本実施形態では、教師データTDは分光データの集合である。既知特徴スペクトル群KSpは、学習済みの機械学習モデル200に教師データTDを入力した際に得られる特徴スペクトルの集合である。特徴スペクトルについては後述する。印刷設定テーブルPSTは、各印刷媒体に適した印刷設定が登録されたテーブルである。
【0013】
図3は、機械学習モデル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」とも呼ぶ。
【0014】
本実施形態において、入力データIMは分光データなので、1次元配列のデータである。例えば、入力データIMは、380nm~730nmの範囲の分光データから、10nm毎に36個の代表値を抽出したデータである。
【0015】
図3の例では2つの畳み込みベクトルニューロン層230,240を用いているが、畳み込みベクトルニューロン層の数は任意であり、畳み込みベクトルニューロン層を省略してもよい。但し、1つ以上の畳み込みベクトルニューロン層を用いることが好ましい。
【0016】
図3の各層210~250の構成は、以下のように記述できる。
<機械学習モデル200の構成の記述>
・Conv層210:Conv[32,6,2]
・PrimeVN層220:PrimeVN[26,1,1]
・ConvVN1層230:ConvVN1[20,5,2]
・ConvVN2層240:ConvVN2[16,4,1]
・ClassVN層250:ClassVN[n1,3,1]
・ベクトル次元VD:VD=16
これらの各層210~250の記述において、括弧前の文字列はレイヤー名であり、括弧内の数字は、順に、チャンネル数、カーネルの表面サイズ、及び、ストライドである。例えば、Conv層210のレイヤー名は「Conv」であり、チャンネル数は32、カーネルの表面サイズは1×6、ストライドは2である。
図3では、各層の下にこれらの記述が示されている。各層の中に描かれているハッチングを付した矩形は、隣接する上位層の出力ベクトルを算出する際に使用されるカーネルの表面サイズを表している。本実施形態では、入力データIMが1次元配列のデータなので、カーネルの表面サイズも1次元である。なお、各層210~250の記述で用いたパラメーターの値は例示であり、任意に変更可能である。
【0017】
Conv層210は、スカラーニューロンで構成された層である。他の4つの層220~250は、ベクトルニューロンで構成された層である。ベクトルニューロンは、ベクトルを入出力とするニューロンである。上記の記述では、個々のベクトルニューロンの出力ベクトルの次元は16で一定である。以下では、スカラーニューロン及びベクトルニューロンの上位概念として「ノード」という語句を使用する。
【0018】
図3では、Conv層210について、ノード配列の平面座標を規定する第1軸x及び第2軸yと、奥行きを表す第3軸zとが示されている。また、Conv層210のx,y,z方向のサイズが1,16,32であることが示されている。x方向のサイズとy方向のサイズを「解像度」と呼ぶ。本実施形態では、x方向の解像度は常に1である。z方向のサイズは、チャンネル数である。これらの3つの軸x,y,zは、他の層においても各ノードの位置を示す座標軸として使用する。但し、
図3では、Conv層210以外の層では、これらの軸x,y,zの図示が省略されている。
【0019】
よく知られているように、畳み込み後のy方向の解像度W1は、次式で与えられる。
W1=Ceil{(W0-Wk+1)/S} (1)
ここで、W0は畳み込み前の解像度、Wkはカーネルの表面サイズ、Sはストライド、Ceil{X}はXを切り上げる演算を行う関数である。
図3に示した各層の解像度は、入力データIMのy方向の解像度を36とした場合の例であり、実際の各層の解像度は入力データIMのサイズに応じて適宜変更される。
【0020】
ClassVN層250は、n1個のチャンネルを有している。
図3の例ではn1=3である。一般に、n1は2以上の整数であり、機械学習モデル200を用いて判別可能な既知のクラスの数である。ClassVN層250の3つのチャンネルからは、3つの既知のクラスに対する判定値Class1~Class3が出力される。通常は、これらの判定値Class1~Class3のうちで最も大きな値を有するクラスが、入力データIMのクラス判別結果として使用される。また、判定値Class1~Class3のうちで最も大きな値が予め定められた閾値未満である場合には、入力データIMのクラスが未知であるものと判定するようにしてもよい。
【0021】
本開示では、後述するように、出力層であるClassVN層250の判定値Class1~Class3を使用する代わりに、特定のベクトルニューロン層の出力から算出されるクラス別類似度を使用して、判別クラスを決定する。
【0022】
図3では、更に、各層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×チャンネル数」である。
【0023】
図3に示すように、ConvVN1層230の出力から後述する特徴スペクトルSp_ConvVN1が算出されて、類似度演算部310に入力される。同様に、ConvVN2層240とClassVN層250の出力から特徴スペクトルSp_ConvVN2,Sp_ClassVNがそれぞれ算出されて類似度演算部310に入力される。類似度演算部310は、これらの特徴スペクトルSp_ConvVN1,Sp_ConvVN,Sp_ClassVNと、予め作成されていた既知特徴スペクトル群KSpとを用いて、後述するクラス別類似度Sclass_ConvVN1,Sclass_ConvVN2,Sclass_ClassVNをそれぞれ算出する。クラス決定部320は、これらのクラス別類似度Sclass_ConvVN1,Sclass_ConvVN2,Sclass_ClassVNの少なくとも一部を用いて、判別結果RDを生成する。判別結果RDは、判別クラスD_classと、判別クラスD_classに対応する類似度値S_valueとを含んでいる。
【0024】
本開示において、類似度の算出に使用されるベクトルニューロン層を、「特定層」とも呼ぶ。特定層としては、1つ以上の任意の数のベクトルニューロン層を使用可能である。なお、特徴スペクトルの構成と、特徴スペクトルを用いた類似度の演算方法、及び、判別クラスの決定方法については後述する。
【0025】
図4は、機械学習モデル200の他の構成を示す説明図である。この機械学習モデル200は、入力データIMが2次元配列のデータである点で、1次元配列の入力データを用いる
図3の機械学習モデル200と異なっている。
図4の各層210~250の構成は、以下のように記述できる。
<各層の構成の記述>
・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[n1,4,1]
・ベクトル次元VD:VD=16
【0026】
図4に示した機械学習モデル200は、例えば、被判別画像のクラス判別を行うクラス判別システムに使用できる。但し、以下の説明では、
図3に示した機械学習モデル200を使用する。
【0027】
図5は、機械学習モデルの準備工程の処理手順を示すフローチャートである。この準備工程は、例えば、プリンター10のメーカーで実行される工程である。
【0028】
図5のステップS110では、クラス判別処理部114が、複数の教師データTDを用いて機械学習モデル200の学習を実行する。個々の教師データTDには、予めラベルが付与されている。本実施形態では、1~3のいずれかのラベルが、個々の教師データTDに付与されているものと仮定する。これらのラベルは、機械学習モデル200の3つのクラスClass1~Class3に対応している。本開示において、「ラベル」と「クラス」は同じものを意味する。
【0029】
複数の教師データTDを用いた学習が終了すると、学習済みの機械学習モデル200がメモリー120に保存される。
図5のステップS120では、学習済みの機械学習モデル200に複数の教師データTDを再度入力して、既知特徴スペクトル群KSpを生成する。既知特徴スペクトル群KSpは、以下で説明する特徴スペクトルの集合である。
【0030】
図6は、学習済みの機械学習モデル200に任意の入力データを入力することによって得られる特徴スペクトルSpを示す説明図である。ここでは、ConvVN1層230の出力から得られる特徴スペクトルSpについて説明する。
図6の横軸は、ConvVN1層230の1つの部分領域R230に含まれる複数のノードの出力ベクトルに関するベクトル要素の位置である。このベクトル要素の位置は、各ノードにおける出力ベクトルの要素番号NDと、チャンネル番号NCとの組み合わせで表される。本実施形態では、ベクトル次元が16なので、出力ベクトルの要素番号NDは0から15までの16個である。また、ConvVN1層230のチャンネル数は20なので、チャンネル番号NCは0から19までの20個である。換言すれば、この特徴スペクトルSpは、1つの部分領域R230に含まれる各ベクトルニューロンの出力ベクトルの複数の要素値を、第3軸zに沿った複数のチャンネルにわたって配列したものである。
【0031】
図6の縦軸は、各スペクトル位置での特徴値C
Vを示す。この例では、特徴値C
Vは、出力ベクトルの各要素の値V
NDである。なお、特徴値C
Vとしては、出力ベクトルの各要素の値V
NDと、後述する正規化係数とを乗算した値を使用してもよく、或いは、正規化係数をそのまま使用してもよい。後者の場合には、特徴スペクトルSpに含まれる特徴値C
Vの数はチャンネル数に等しく、20個である。なお、正規化係数は、そのノードの出力ベクトルのベクトル長さに相当する値である。
【0032】
1つの入力データに対してConvVN1層230の出力から得られる特徴スペクトルSpの数は、ConvVN1層230の平面位置(x,y)の数、すなわち、部分領域R230の数に等しいので、6個である。同様に、1つの入力データに対して、ConvVN2層240の出力から3個の特徴スペクトルSpが得られ、ClassVN層250の出力から1個の特徴スペクトルSpが得られる。
【0033】
類似度演算部310は、学習済みの機械学習モデル200に教師データTDが再度入力されたときに、
図6に示す特徴スペクトルSpを算出して、既知特徴スペクトル群KSpとしてメモリー120に登録する。
【0034】
図7は、教師データTDを用いて既知特徴スペクトル群KSpを作成する様子を示す説明図である。この例では、ラベルが1~3である教師データTDを、学習済みの機械学習モデル200に入力することによって、3つのベクトルニューロン層、すなわち、ConvVN1層230とConvVN2層240とClassVN層250の出力から、それぞれのラベル又はクラスに対応付けられた特徴スペクトルKSp_ConvVN1,KSp_ConvVN2,KSp_ClassVNが得られている。これらの特徴スペクトルKSp_ConvVN1,KSp_ConvVN2,KSp_ClassVNが既知特徴スペクトル群KSpとしてメモリー120に格納される。
【0035】
図8は、既知特徴スペクトル群KSpの構成を示す説明図である。この例では、ConvVN1層230の出力から得られた既知特徴スペクトル群KSp_ConvVN1が示されている。ConvVN2層240の出力から得られた既知特徴スペクトル群KSp_ConvVN2と、ClassVN層250の出力から得られた既知特徴スペクトル群KSp_ConvVN1も同様の構成を有しているが、
図8では図示が省略されている。なお、既知特徴スペクトル群KSpとしては、すくなくとも1つのベクトルニューロン層の出力から得られたものが登録されていればよい。
【0036】
既知特徴スペクトル群KSp_ConvVN1の個々のレコードは、ラベルまたはクラスの順序を示すパラメーターiと、特定層の順序を示すパラメーターjと、部分領域Rnの順序を示すパラメーターkと、データ番号を示すパラメーターqと、既知特徴スペクトルKSpとを含んでいる。既知特徴スペクトルKSpは、
図6の特徴スペクトルSpと同じものである。
【0037】
クラスのパラメーターiは、ラベルと同じ1~3の値を取る。特定層のパラメーターjは、3つの特定層230,240,250のいずれであるかを示す1~3の値を取る。部分領域Rnのパラメーターkは、個々の特定層に含まれる複数の部分領域Rnのいずれであるか、すなわち、平面位置(x,y)のいずれであるかを示す値を取る。ConvVN1層230については部分領域R230の数が6個なので、k=1~6である。データ番号のパラメーターqは、同じラベルが付された教師データの番号を示しており、クラス1については1~max1,クラス2については1~max2、クラス3については1~max3の値を取る。
【0038】
なお、ステップS120で使用される複数の教師データTDは、ステップS110で使用された複数の教師データTDと同じものである必要は無い。但し、ステップS120においても、ステップS110で使用された複数の教師データTDの一部又は全部を利用すれば、新たな教師データを準備する必要が無いという利点がある。
【0039】
図9は、学習済みの機械学習モデルを用いた媒体判別/印刷工程の処理手順を示すフローチャートである。この媒体判別/印刷工程は、例えば、プリンター10を使用するユーザーによって実行される。
【0040】
ステップS210では、ユーザーによって、処理対象としての印刷媒体である対象印刷媒体について、クラス判別処理を必要とするか否かがクラス判別処理部114に指示される。ユーザーが対象印刷媒体の種類を知っている場合にも、確認のためにクラス判別処理が必要であるものと指示してもよい。クラス判別処理が不要な場合には、ステップS260に進んでユーザーが対象印刷媒体に適した印刷設定を選択し、ステップS270において印刷処理部112が対象印刷媒体を用いた印刷をプリンター10に実行させる。一方、対象印刷媒体の種類が不明であり、そのクラス判別処理が必要な場合には、ステップS220に進む。
【0041】
ステップS220では、クラス判別処理部114が、分光測定器30に対象印刷媒体の分光測定を実行させることによって、分光データを取得する。この分光データは、機械学習モデル200に入力される被判別データとして使用される。
【0042】
ステップS230では、クラス判別処理部114が、学習済みの機械学習モデル200に被判別データを入力して、特徴スペクトルSpを算出する。ステップS240では、類似度演算部310が、被判別データの入力に応じて得られた特徴スペクトルSpと、登録済みの既知特徴スペクトル群KSpから、クラス別類似度を算出する。
【0043】
図10は、被判別データに関するクラス別類似度を求める様子を示す説明図である。被判別データが機械学習モデル200に入力されると、クラス判別処理部114が、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が算出される。
【0044】
3つのベクトルニューロン層230,240.250をそれぞれ用いてクラス別類似度Sclass_ConvVN1,Sclass_ConvVN2,Sclass_ClassVNをすべて生成する必要はないが、これらのうちの1つ以上のベクトルニューロン層を用いてクラス別類似度を算出することが好ましい。前述したように、本開示において、類似度の算出に使用されるベクトルニューロン層を、「特定層」と呼ぶ。
【0045】
ステップS250では、クラス決定部320が、ステップS240で得られたクラス別類似度に応じて、対象印刷媒体のクラス、すなわち、対象印刷媒体の種類を判別する。ステップS260では、印刷処理部112が、対象印刷媒体の種類に応じて印刷設定テーブルPSTを参照し、印刷設定を選択する。ステップS270では、印刷処理部112が、印刷設定に従って印刷を実行する。
図9の手順によれば、対象印刷媒体の種類が不明な場合にも、機械学習モデル200を用いて対象印刷媒体の種類を判別できるので、その種類に適した印刷設定を用いて印刷を実行することが可能である。
【0046】
B.類似度の算出方法:
上述の
図10に示したクラス別類似度の演算方法としては、例えば、以下の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を算出する方法について順次説明する。
【0047】
図11は、クラス別類似度の第1の演算方法M1を示す説明図である。第1の演算方法M1では、まず、特定層であるConvVN1層230の出力から、部分領域k毎に各クラスiに対する類似度を示す局所類似度S(i,j,k)が算出される。そして、これらの局所類似度S(i,j,k)から、
図11の右側に示す3種類のクラス別類似度Sclass(i,j)のいずれかが算出される。クラス別類似度Sclass(i,j)は、
図3及び
図10に示したクラス別類似度Sclass_ConvVN1と同じものである。
【0048】
第1の演算方法M1において、局所類似度S(i,j,k)は次式を用いて算出される。
S(i,j,k)=max[G{Sp(j,k), KSp(i,j,k=all,q=all)}] (2)
ここで、
iは、クラスを示すパラメーター、
jは、特定層を示すパラメーター、
kは、部分領域Rnを示すパラメーター、
qは、データ番号を示すパラメーター、
G{a,b}は、aとbの類似度を求める関数、
Sp(j,k)は、被判別データに応じて、特定層jの特定の部分領域kの出力から得られる特徴スペクトル、
KSp(i,j,k=all,q=all)は、
図8に示した既知特徴スペクトル群KSpのうち、クラスiに関連付けられた、特定層jのすべての部分領域kにおけるすべてのデータ番号qの既知特徴スペクトル、
max[X]は、Xの値のうちの最大値を取る論理演算である。
なお、類似度を求める関数G{a,b}のaは1つまたは集合、bは集合、戻り値は複数である。関数G{a,b}としては、例えば、コサイン類似度を求める式や、距離に応じた類似度を求める式を使用できる。
【0049】
図11の右側に示す3種類のクラス別類似度Sclass(i,j)は、クラスi毎に、複数の部分領域kについての局所類似度S(i,j,k)の最大値、平均値、又は、最小値を取ることによって得られたものである。最大値、平均値、又は、最小値のいずれの演算を使用するかは、クラス判別処理の使用目的に応じて異なる。例えば、自然画像を用いて物体を判別することを目的とする場合には、クラスi毎に局所類似度S(i,j,k)の最大値を取ることによってクラス別類似度Sclass(i,j)を求めることが好ましい。また、印刷媒体の種類を判別することを目的とする場合や、工業製品の画像を用いた良否判定を目的とする場合には、クラスi毎に局所類似度S(i,j,k)の最小値を取ることによってクラス別類似度Sclass(i,j)を求めることが好ましい。また、クラスi毎に局所類似度S(i,j,k)の平均値を取ることによってクラス別類似度Sclass(i,j)を求めることが好ましい場合も考えられる。これらの3種類の演算のいずれを使用するかは、実験的または経験的にユーザーによって予め設定される。
【0050】
図11の例では、更に、クラス別類似度Sclass(i,j)から、最終的な判別結果RD_ConvVN1 が決定される。判別結果RD_ConvVN1は、判別クラスD_classと、判別クラスD_classに対応する類似度値S_valueとを含む形式で表すことができる。類似度値S_valueは、クラス別類似度Sclass(i,j)における3つのクラス1~3に対する類似度値のうちの最大値を取ることによって得られる。判別クラスD_classは、クラス別類似度Sclass(i,j)において類似度値が最大となるクラスである。
【0051】
以上のように、クラス別類似度の第1の演算方法M1では、
(1)被判別データに応じて、特定層jの特定の部分領域kの出力から得られる特徴スペクトルSpと、その特定層j及び各クラスiに関連付けられたすべての既知特徴スペクトルKSpとの類似度である局所類似度S(i,j,k)を求め、
(2)クラスi毎に、複数の部分領域kについての局所類似度S(i,j,k)の最大値、平均値、又は、最小値を取ることによってクラス別類似度Sclass(i,j)を求め、
(3)クラスi毎に、クラス別類似度Sclass(i,j)の値の最大値を、特徴スペクトルSpと既知特徴スペクトル群KSpとの類似度値S_valueとして求め、
(4)複数のクラスiに亘って最大となる類似度値S_valueに対応付けられたクラスを判別クラスD_classとして決定する。
この第1の演算方法M1によれば、比較的簡単な演算及び手順により、クラス別類似度Sclass(i,j)と判別結果を求めることができる。
【0052】
図12は、クラス別類似度の第2の演算方法M2を示す説明図である。第2の演算方法M2では、上述した(2)式の代わりに次式を用いて局所類似度S(i,j,k)を算出する。
S(i,j,k)=max[G{Sp(j,k), KSp(i,j,k,q=all)}] (3)
ここで、
KSp(i,j,k,q=all)は、
図8に示した既知特徴スペクトル群KSpのうち、クラスiに関連付けられた、特定層jの特定の部分領域kにおけるすべてのデータ番号qの既知特徴スペクトルである。
【0053】
上述した第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と同じである。
【0054】
クラス別類似度の第2の演算方法M2では、
(1)被判別データに応じて、特定層jの特定の部分領域kの出力から得られる特徴スペクトルSpと、その特定層jの特定の部分領域k及び各クラスiに関連付けられたすべての既知特徴スペクトルKSpとの類似度である局所類似度S(i,j,k)を求め、
(2)クラスi毎に、複数の部分領域kについての局所類似度S(i,j,k)の最大値、平均値、又は、最小値を取ることによって、クラス別類似度Sclass(i,j)を求め、
(3)クラスi毎に、クラス別類似度Sclass(i,j)の値の最大値を、特徴スペクトルSpと既知特徴スペクトル群KSpとの類似度値S_valueとして求め、
(4)複数のクラスiに亘って最大となる類似度値S_valueに対応付けられたクラスを判別クラスD_classとして決定する。
この第2の演算方法M2によっても、比較的簡単な演算及び手順により、クラス別類似度Sclass(i,j)と判別結果を求めることができる。
【0055】
図13は、クラス別類似度の第3の演算方法M3を示す説明図である。第3の演算方法M3では、局所類似度S(i,j,k)を求めることなく、特定層であるConvVN1層230の出力からクラス別類似度Sclass(i,j)が算出される。
【0056】
第3の演算方法M3で得られるクラス別類似度Sclass(i,j)は、次式を用いて算出される。
Sclass(i,j)=max[G{Sp(j,k=all), KSp(i,j,k=all,q=all)}] (4)
ここで、
Sp(j,k=all)は、被判別データに応じて、特定層jのすべての部分領域kの出力から得られる特徴スペクトルである。
このクラス別類似度Sclass(i,j)から最終的な判定結果を求める方法は、上述した第1の演算方法M1や第2の演算方法M2と同じである。
【0057】
以上のように、クラス別類似度の第3の演算方法M3では、
(1)被判別データに応じて特定層jの出力から得られるすべての特徴スペクトルSpと、その特定層j及び各クラスiに関連付けられたすべての既知特徴スペクトルKSpとの類似度であるクラス別類似度Sclass(i,j)をクラス毎にそれぞれ求め、
(2)クラスi毎に、複数のクラス別類似度Sclass(i,j)の最大値を、特徴スペクトルSpと既知特徴スペクトル群KSpとの類似度値S_valueとして求め、
(3)複数のクラスiに亘って最大となる類似度値S_valueに対応付けられたクラスを判別クラスD_classとして決定する。
この第3の演算方法M3によれば、更に簡単な演算及び手順により、クラス別類似度Sclass(i,j)と判別結果を求めることができる。
【0058】
上述した3つの演算方法M1~M3は、いずれも個々の特定層iに関してクラス別類似度を演算して判別クラスを決定する方法である。上述したように、本実施形態では、
図3に示した複数のベクトルニューロン層230,240,250のうちの1つ以上を特定層としてクラス別類似度を演算し、そのクラス別類似度から被判別データのクラスを決定することができる。複数の特定層を用いる場合には、例えば、以下のような判別クラスの決定方法を採用することが可能である。
【0059】
図14は、複数の特定層を用いた判別クラスの第1の決定方法MM1を示す説明図である。ここでは、3つの特定層、すなわち、ConvVN1層230とConvVN2層240とClassVN層250に関して、判別結果RD_ConvVN1,RD_ConvVN2,RD_ClassVNがそれぞれ算出されている。最終的な判別クラスD_classは、複数の特定層に関する複数の判別結果RD_ConvVN1,RD_ConvVN2,RD_ClassVNで示される判別クラスD_classのうちで、最も多く現れたクラスが採用される。
図14の例では、クラス3が最も多く現れるので、このクラスが最終的な判別クラスD_classとして採用または導出される。この第1の決定方法MM1によれば、複数の特定層を用いてクラス判別をより精度良く行うことができる。なお、最も多いクラスが複数存在する場合には、それらの複数のクラスをすべて判別クラスとしてユーザーにて提示してもよい。
【0060】
図15は、複数の特定層を用いた判別クラスの第2の決定方法MM2を示す説明図である。この第2の決定方法MM2では、複数の特定層のうち、最も統計的に有意な判定結果を示す特定層を用いて判別クラスを決定する。
図15の例では、ConvVN1層230とConvVN2層240が特定層として使用されている。まず、ConvVN1層230の各部分領域kに関して、局所類似度S(i,j,k)が最大値となるクラスを決定し、そのクラスのクラスパラメーター値iを各部分領域kに割り当てる処理を実行する。なお、クラスパラメーター値iは、複数のクラスの中での順序を示す値である。クラスパラメーター値iは、例えば連続した整数である。本実施形態ではクラスパラメーター値iとクラスiとは同じである。ConvVN2層240についても同様に、局所類似度S(i,j,k)が最大値となるクラスを決定し、そのクラスのクラスパラメーター値iを各部分領域kに割り当てる処理を実行する。
【0061】
また、第2の決定方法MM2において、各部分領域kに関して、クラス間の局所類似度Sに差がない場合、すなわち、或る部分領域kの局所類似度Sに関する複数のクラスにわたる誤差や分散が閾値以内である場合には、その部分領域kにクラスパラメーター値を割り当てないようにしてもよい。クラスパラメーター値の分散を求める際は、クラスパラメーター値が割り当てられていない部分領域kを除外して分散を求める。これにより、特徴的な部分でのみ分散を求めることができるのでクラス判別をより精度よく行うことができる。
【0062】
第2の決定方法MM2では、更に、各特定層において、複数の部分領域kにおけるクラスパラメーター値iの分布に関して分散が算出される。この分散は、クラスパラメーター値iについての統計的な分散の値である。
図15の例では、ConvVN1層230の分散は0.14であり、ConvVN2層240の分散0.22である。これらの特定層230,240のうちで、クラスパラメーター値iの分布の偏りが大きいほど判定結果が明確であることが予想されるので、分散が低い特定層についてのクラス判別結果を採用する。換言すれば、複数の特定層のうち、分散が最も小さい特定層に対して得られていたクラス別類似度を用いて、被判別データのクラスを判別する。この第2の決定方法MM2によれば、複数の特定層を用いてクラス判別をより精度良く行うことができる。
【0063】
なお、クラス判別の方法としては、上述した方法以外の方法を採用してもよい。例えば、複数の特定層のうち、出力層に最も近い層の結果を優先して判別結果として出力してもよい。
【0064】
以上のように、本実施形態では、被判別データの入力に応じた機械学習モデル200の特定層の出力から特徴スペクトルSpを算出し、その特徴スペクトルSpと複数のクラスのそれぞれに関する既知特徴スペクトル群KSpとのクラス別類似度Sclass(i,j)を演算し、そのクラス別類似度Sclass(i,j)に応じて被判別データのクラスを判別するので、クラス判別の精度を高めることができる。
【0065】
C.機械学習モデルの各層の出力ベクトルの演算方法:
図3に示した機械学習モデル200における各層の出力の演算方法は、以下の通りである。
図4に示した機械学習モデル200も、個々のパラメーターの値以外は同じである。
【0066】
PrimeVN層220の各ノードは、Conv層210の1×1×32個のノードのスカラー出力を32次元のベクトルとみなして、このベクトルに変換行列を乗ずることによってそのノードのベクトル出力を得る。この変換行列は、表面サイズが1×1のカーネルの要素であり、機械学習モデル200の学習によって更新される。なお、Conv層210とPrimeVN層220の処理を統合して、1つのプライマリーベクトルニューロン層として構成することも可能である。
【0067】
PrimeVN層220を「下位層L」と呼び、その上位側に隣接するConvVN1層230を「上位層L+1」と呼ぶとき、上位層L+1の各ノードの出力は、以下の式を用いて決定される。
【数1】
ここで、
M
L
iは、下位層Lにおけるi番目のノードの出力ベクトル、
M
L+1
jは、上位層L+1におけるj番目のノードの出力ベクトル、
v
ijは、出力ベクトルM
L+1
jの予測ベクトル、
W
L
ijは、下位層Lの出力ベクトルM
L
iから予測ベクトルv
ijを算出するための予測行列、
u
jは、予測ベクトルv
ijの和、すなわち線形結合、である和ベクトル、
a
jは、和ベクトルu
jのノルム|u
j|を正規化することによって得られる正規化係数であるアクティベーション値、
F(X)は、Xを正規化する正規化関数である。
【0068】
正規化関数F(X)としては、例えば以下の(E3a)式または(E3b)式を使用できる。
【数2】
ここで、
kは、上位層L+1のすべてのノードに対する序数、
βは、任意の正の係数である調整パラメーターであり、例えばβ=1である。
【0069】
上記(E3a)式では、上位層L+1のすべてのノードに関して和ベクトルujのノルム|uj|をソフトマックス関数で正規化することによってアクティベーション値ajが得られる。一方、(E3b)式では、和ベクトルujのノルム|uj|を、上位層L+1のすべてのノードに関するノルム|uj|の和で除算することによってアクティベーション値ajが得られる。なお、正規化関数F(X)としては、(E3a)式や(E3b)式以外の他の関数を用いてもよい。
【0070】
上記(E2)式の序数iは、上位層L+1におけるj番目のノードの出力ベクトルM
L+1
jを決めるために使用される下位層Lのノードに便宜上割り振られるものであり、1~nの値をとる。また、整数nは、上位層L+1におけるj番目のノードの出力ベクトルM
L+1
jを決めるために使用される下位層Lのノードの数である。従って、整数nは次式で与えられる。
n=Nk×Nc (E5)
ここで、Nkはカーネルの表面サイズであり、Ncは下位層であるPrimeVN層220のチャンネル数である。
図3の例ではNk=5、Nc=26なので、n=130である。
【0071】
ConvVN1層230の出力ベクトルを求めるために使用される1つのカーネルは、カーネルサイズ1×5を表面サイズとし、下位層のチャンネル数26を深さとする1×5×26=130個の要素を有しており、これらの要素のそれぞれは予測行列WL
ijである。また、ConvVN1層230の20個のチャンネルの出力ベクトルを生成するためには、このカーネルが20組必要である。従って、ConvVN1層230の出力ベクトルを求めるために使用されるカーネルの予測行列WL
ijの数は、130×20=2600個である。これらの予測行列WL
ijは、機械学習モデル200の学習により更新される。
【0072】
上述した(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を乗じる。
【0073】
なお、アクティベーション値ajは、上位層L+1のすべてのノードに関してノルム|uj|を正規化することによって得られる正規化係数である。従って、アクティベーション値ajは、上位層L+1内の全ノードの中における各ノードの相対的な出力強度を示す指標と考えることができる。(E3)式,(E3a)式、(E3b)式、及び(4)式で使用されるノルムは、典型的な例ではベクトル長さを表すL2ノルムである。このとき、アクティベーション値ajは、出力ベクトルML+1
jのベクトル長さに相当する。アクティベーション値ajは、上述した(E3)式と(E4)式で使用されるだけなので、ノードから出力される必要は無い。但し、アクティベーション値ajを外部に出力するように上位層L+1を構成することも可能である。
【0074】
ベクトルニューラルネットワークの構成は、カプセルネットワークの構成とほぼ同じであり、ベクトルニューラルネットワークのベクトルニューロンがカプセルネットワークのカプセルに相当する。但し、ベクトルニューラルネットワークで使用される上述の(E1)~(E4)式による演算は、カプセルネットワークで使用される演算と異なる。両者の最も大きな違いは、カプセルネットワークでは、上記(E2)式の右辺の予測ベクトルvijにそれぞれ重みが乗じられており、その重みが、動的ルーティングを複数回繰り返すことによって探索される点である。一方、本実施形態のベクトルニューラルネットワークでは、上述した(E1)~(E4)式を順番に1回計算することによって出力ベクトルML+1
jが得られるので、動的ルーティングを繰り返す必要が無く、演算がより高速であるという利点がある。また、本実施形態のベクトルニューラルネットワークは、カプセルネットワークよりも演算に必要とするメモリー量がカプセルネットワークより少なく、本開示の発明者の実験によれば、約1/2~1/3のメモリー量で済むという利点もある。
【0075】
ベクトルを入出力とするノードを使用するという点では、ベクトルニューラルネットワークはカプセルネットワークと同じである。従って、ベクトルニューロンを使用する利点もカプセルネットワークと共通している。また、複数の層210~250は、上位に行くほどより大きな領域の特徴を表現し、下位に行くほどより小さな領域の特徴を表現する、という点は、通常の畳み込みニューラルネットワークと同じである。ここで、「特徴」とは、ニューラルネットワークへの入力データに含まれている特徴的な部分を意味する。ベクトルニューラルネットワークやカプセルネットワークでは、或るノードの出力ベクトルが、そのノードが表現する特徴の空間的な情報を表す空間情報を含む点で、通常の畳み込みニューラルネットワークよりも優れている。すなわち、或るノードの出力ベクトルのベクトル長さは、そのノードが表現する特徴の存在確率を表し、ベクトル方向がその特徴の方向やスケール等の空間情報を表している。従って、同じ層に属する2つのノードの出力ベクトルのベクトル方向は、それぞれの特徴の位置関係を表す。あるいは、当該2つのノードの出力ベクトルのベクトル方向は、特徴のバリエーションを表わすとも言える。例えば、「目」の特徴に対応するノードなら、出力ベクトルの方向は、目の細さ、吊り上がり方、などのバリエーションを表し得る。通常の畳み込みニューラルネットワークでは、プーリング処理によって特徴の空間情報が消失してしまうと言われている。この結果、ベクトルニューラルネットワークやカプセルネットワークは、通常の畳み込みニューラルネットワークに比べて入力データを識別する性能に優れているという利点がある。
【0076】
ベクトルニューラルネットワークの利点は、以下のように考えることも可能である。すなわち、ベクトルニューラルネットワークでは、ノードの出力ベクトルが、入力データの特徴を連続空間内の座標として表現すること、に利点がある。従って、ベクトル方向が近ければ特徴が似ている、というように出力ベクトルを評価できる。また、入力データに含まれている特徴が教師データではカバーできていなくても、補間してその特徴を判別できる、などの利点もある。一方、通常の畳み込みニューラルネットワークは、プーリング処理によって無秩序な圧縮がかかるため、入力データの特徴を連続空間内の座標として表現できない、という欠点がある。
【0077】
ConvVN2層240とClassVN層250の各ノードの出力も、上述した(E1)~(E4)式を用いて同様に決定されるので、詳細な説明は省略する。最上位層であるClassVN層250の解像度は1×1であり、チャンネル数はn1である。
【0078】
ClassVN層250の出力は、既知のクラスに対する複数の判定値Class0~Class2に変換される。これらの判定値は、通常はソフトマックス関数によって正規化された値である。具体的には、例えば、ClassVN層250の各ノードの出力ベクトルから、その出力ベクトルのベクトル長さを算出し、更に、各ノードのベクトル長さをソフトマックス関数で正規化する、という演算を実行することによって、個々のクラスに対する判定値を得ることができる。上述したように、上記(E3)式で得られるアクティベーション値ajは、出力ベクトルML+1
jのベクトル長さに相当する値であり、正規化されている。従って、ClassVN層250の各ノードのそれぞれにおけるアクティベーション値ajを出力して、そのまま各クラスに対する判定値として使用してもよい。
【0079】
上述の実施形態では、機械学習モデル200として、上記(E1)式~(E4)式の演算によって出力ベクトルを求めるベクトルニューラルネットワークを用いていたが、この代わりに、米国特許第5210798号公報や国際公開2009/083553号公報に開示されているカプセルネットワークを用いてもよい。
【0080】
・他の実施形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0081】
(1)本開示の第1の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別する方法が提供される。この方法は、(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの特定層の出力から得られる既知特徴スペクトル群を、複数のクラスのそれぞれについて準備する工程と、(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する工程と、を含む。前記工程(b)は、(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する工程と、(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群とのクラス別類似度を演算する工程と、(b3)前記クラス別類似度に応じて前記被判別データのクラスを判別する工程と、を含む。
この方法によれば、特徴スペクトルに関する類似度を利用して被判別データのクラス判別を実行するので、クラス判別の精度を高めることができる。
【0082】
(2)上記方法において、前記特定層は、第1軸と第2軸の2つの軸で規定された平面に配置されたベクトルニューロンが、前記2つの軸とは異なる方向の第3軸に沿って複数のチャンネルとして配置されている構成を有ずる。前記特定層において、前記第1軸の位置と前記第2軸の位置で規定される平面位置で特定され、前記第3軸に沿った前記複数のチャンネルを含む領域を、部分領域と呼ぶ。このとき、前記特徴スペクトルは、前記特定層に含まれる複数の部分領域のうちの各部分領域について、(i)当該部分領域に含まれる各ベクトルニューロンの出力ベクトルの複数の要素値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第1種の特徴スペクトルと、(ii)前記第1種の特徴スペクトルの各要素値に、前記出力ベクトルのベクトル長さに相当する正規化係数を乗じることによって得られる第2種の特徴スペクトルと、(iii)前記正規化係数を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第3種の特徴スペクトルと、のうちのいずれかとして求められるものとしてもよい。
この方法によれば、特定層の出力ベクトルから得られる3種の特徴スペクトルのいずれかを用いて類似度を求めることができる。
【0083】
(3)上記方法において、前記工程(b2)は、前記被判別データに応じて、前記特定層の特定の部分領域の出力から得られる前記特徴スペクトルと、前記特定層及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度である局所類似度を求めることによって、前記特定層の前記複数の部分領域に関して各クラスに対する類似度を示す複数の局所類似度を求める工程と、前記クラス毎に、前記複数の部分領域に関する前記複数の局所類似度の最大値、平均値、又は、最小値を取ることによって、前記クラス別類似度を求める工程と、を含むものとしてもよい。
この方法によれば、比較的簡単な演算によって、クラス別類似度を求めることができる。
【0084】
(4)上記方法において、前記工程(b2)は、前記被判別データに応じて、前記特定層の特定の部分領域の出力から得られる前記特徴スペクトルと、前記特定層の前記特定の部分領域及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度である局所類似度を求めることによって、前記特定層の前記複数の部分領域に関して各クラスに対する類似度を示す複数の局所類似度を求める工程と、前記クラス毎に、前記複数の部分領域に関する前記複数の局所類似度の最大値、平均値、又は、最小値を取ることによって、前記クラス別類似度を求める工程と、を含むものとしてもよい。
この方法によれば、比較的簡単な演算によって、クラス別類似度を求めることができる。
【0085】
(5)上記方法において、前記工程(b2)は、前記被判別データに応じて、前記特定層の出力から得られるすべての前記特徴スペクトルと、前記特定層及び各クラスに関連付けられたすべての前記既知特徴スペクトルとの類似度をクラス毎にそれぞれ求めることによって、前記クラス別類似度を求める工程を含むものとしてもよい。
この方法によれば、更に簡単な演算によって、クラス別類似度を求めることができる。
【0086】
(6)上記方法において、前記特定層が複数存在する場合に、前記工程(b3)は、各特定層に関する前記クラス別類似度からクラス判別結果を求めることによって、前記複数の特定層に関するそれぞれのクラス判別結果を得る工程と、前記複数のクラス判別結果で示されるクラスのうちで、最も多いクラスを前記被判別データの判別クラスとして決定する工程と、を含むものとしてもよい。
この方法によれば、複数の特定層を用いてクラス判別をより精度良く行うことができる。
【0087】
(7)上記方法において、前記特定層が複数存在する場合に、前記工程(b3)は、各特定層の各部分領域に対して、当該部分領域に関する前記局所類似度に基づいてクラスを決定するとともに、当該クラスの前記複数のクラスの中での順序を示すクラスパラメーター値を当該部分領域に割り当てる工程と、前記複数の部分領域における前記クラスパラメーター値の分布に関する統計的な分散を、前記複数の特定層のそれぞれについて算出する工程と、前記複数の特定層のうち、前記分散が最も小さい特定層に対して得られていた前記クラス別類似度を用いて、前記被判別データのクラスを判別する工程と、を含むものとしてもよい。
この方法によれば、複数の特定層を用いてクラス判別をより精度良く行うことができる。
【0088】
(8)本開示の第2の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別するクラス判別処理を実行する情報処理装置が提供される。この情報処理装置は、前記機械学習モデルを記憶するメモリーと、前記機械学習モデルを用いた演算を実行するプロセッサーと、を備える。前記プロセッサーは、(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの特定層の出力から得られる既知特徴スペクトル群を、複数のクラスのそれぞれについて前記メモリーから読み出す処理と、(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する処理と、を実行するように構成されている。前記処理(b)は、(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、(b3)前記類似度に応じて前記被判別データのクラスを判別する処理と、を含む。
この情報処理装置によれば、特徴スペクトルに関する類似度を利用して被判別データのクラス判別を実行するので、クラス判別の精度を高めることができる。
【0089】
(9)本開示の第3の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、被判別データのクラスを判別するクラス判別処理をプロセッサーに実行させるコンピュータープログラムが提供される。このコンピュータープログラムは、(a)前記機械学習モデルに複数の教師データが入力されたときに前記複数のベクトルニューロン層のうちの特定層の出力から得られる既知特徴スペクトル群を、複数のクラスのそれぞれについてメモリーから読み出す処理と、(b)前記機械学習モデルと前記既知特徴スペクトル群とを用いて、前記被判別データのクラス判別処理を実行する処理と、を前記プロセッサーに実行させるコンピュータープログラムである。前記処理(b)は、(b1)前記機械学習モデルへの前記被判別データの入力に応じて、前記特定層の出力から特徴スペクトルを算出する処理と、(b2)前記特徴スペクトルと、前記複数のクラスのそれぞれに関する前記既知特徴スペクトル群との類似度を演算する処理と、(b3)前記類似度に応じて前記被判別データのクラスを判別する処理と、を含む。
このコンピュータープログラムによれば、特徴スペクトルに関する類似度を利用して被判別データのクラス判別を実行するので、クラス判別の精度を高めることができる。
【0090】
本開示は、上記以外の種々の形態で実現することも可能である。例えば、クラス判別装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
【符号の説明】
【0091】
10…プリンター、20…情報処理装置、30…分光測定器、110…プロセッサー、112…印刷処理部、114…クラス判別処理部、120…メモリー、130…インターフェイス回路、150…表示部、200…機械学習モデル、210…畳み込み層、220…プライマリーベクトルニューロン層、230…第1畳み込みベクトルニューロン層、240…第2畳み込みベクトルニューロン層、250…分類ベクトルニューロン層、310…類似度演算部、320…クラス決定部