(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-22
(45)【発行日】2023-10-02
(54)【発明の名称】分類システム、プログラム及び学習システム
(51)【国際特許分類】
G06N 20/00 20190101AFI20230925BHJP
【FI】
G06N20/00
(21)【出願番号】P 2020118635
(22)【出願日】2020-07-09
【審査請求日】2022-03-25
(31)【優先権主張番号】202011020392
(32)【優先日】2020-05-14
(33)【優先権主張国・地域又は機関】IN
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】301063496
【氏名又は名称】東芝デジタルソリューションズ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】平山 剛史
(72)【発明者】
【氏名】小林 賢治
(72)【発明者】
【氏名】クリシュナ ラオ カキララ
【審査官】青木 重徳
(56)【参考文献】
【文献】中国特許出願公開第107480690(CN,A)
【文献】特表2018-528525(JP,A)
【文献】特開2013-196045(JP,A)
【文献】米国特許出願公開第2019/0392260(US,A1)
【文献】岡本 拓巳 ほか,大腸内視鏡診断支援のためのSupport Vector Machineを用いたタイプ識別ハードウェアの設計,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2014年11月19日,Vol.114 No.329,p.39-44
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
予め定められたクラスそれぞれのスコアを入力データから算出するスコア算出部と、
前記スコア算出部により算出された前記クラスそれぞれのスコアに基づいて、前記入力データが前記クラスのいずれかに属するか否かを判定する判定部と、
前記入力データが前記クラスのいずれかに属すると前記判定部が判定した場合に、算出された前記クラスごとのスコアに基づいて、前記入力データが属するクラスを決定し、前記入力データが前記クラスのいずれにも属しないと前記判定部が判定した場合に、前記入力データが未知のクラスに属すると決定する分類部と、
を備え
、
前記判定部は、
前記クラスそれぞれに対応する判定モデルであって、前記クラスごとのスコアからなるベクトルが判定モデルに対応するクラスに属するか否かを判定する学習済みの判定モデルと、
前記スコア算出部により算出される前記クラスそれぞれの前記スコアのうち、最も大きいスコアのクラスに対応する判定モデルへ、前記入力データから算出された前記スコアからなるベクトルを供給する選択部と、
を備え、
前記ベクトルが供給される判定モデルの判定結果が前記分類部へ供給される、
分類システム。
【請求項2】
前記スコア算出部は、
前記入力データから前記クラスごとの確信度を算出する学習済みの算出モデルと、
前記算出モデルが算出する前記クラスごとの前記確信度を所定の範囲内の値にシグモイド関数を用いて変換し、前記確信度それぞれを変換した値を前記スコアとして出力する変換部と、
を備える、
請求項1に記載の分類システム。
【請求項3】
前記判定部は、前記スコア算出部により算出される前記クラスそれぞれの前記スコアのうち、最も大きいスコアに基づいて、前記入力データが前記クラスのいずれかに属するか否かを判定する、
請求項1又は請求項2に記載の分類システム。
【請求項4】
前記判定部は、前記判定モデルとして1クラスサポートベクターマシンを備える、
請求項1に記載の分類システム。
【請求項5】
前記クラスそれぞれに対応する前記判定モデルは、前記スコア算出部により算出される前記クラスのスコアからなる複数のベクトルのうち、前記判定モデルに対応するクラスのスコアが最も大きいベクトルの集合を用いた学習により得られる、
請求項1又は請求項4に記載の分類システム。
【請求項6】
分類システムが備えるコンピュータを
予め定められたクラスそれぞれのスコアを入力データから算出するスコア算出部と、
前記スコア算出部により算出された前記クラスそれぞれのスコアに基づいて、前記入力データが前記クラスのいずれかに属するか否かを判定する判定部と、
前記入力データが前記クラスのいずれかに属すると前記判定部が判定した場合に、算出された前記クラスごとのスコアに基づいて、前記入力データが属するクラスを決定し、前記入力データが前記クラスのいずれにも属しないと前記判定部が判定した場合に、前記入力データが未知のクラスに属すると決定する分類部と、
として機能させるためのプログラム
であって、
前記判定部は、
前記クラスそれぞれに対応する判定モデルであって、前記クラスごとのスコアからなるベクトルが判定モデルに対応するクラスに属するか否かを判定する学習済みの判定モデルと、
前記スコア算出部により算出される前記クラスそれぞれの前記スコアのうち、最も大きいスコアのクラスに対応する判定モデルへ、前記入力データから算出された前記スコアからなるベクトルを供給する選択部と、
を備え、
前記ベクトルが供給される判定モデルの判定結果が前記分類部へ供給される、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、分類システム、プログラム及び学習システムに関する。
【背景技術】
【0002】
分類対象となるデータを、機械学習によって得られたモデルを用いて分類する技術が広く利用されている。教師有り学習によって得られるモデルを用いた分類器は、学習に用いられた教師データで定義されているクラスのいずれかに入力されたデータを分類する。そのため、定義されているクラスのいずれにも該当しないデータが入力される場合であっても、分類器は、いずれかのクラスに当該データを分類してしまう。このように、分類器に入力されるデータが教師データで定義されているいずれのクラスに該当しない場合、入力されるデータに対する誤った分類が行われ、分類精度が低下するという問題があった。
【先行技術文献】
【特許文献】
【0003】
【非特許文献】
【0004】
【文献】Alex Krizhevsky et al., "ImageNet Classification with Deep Convolutional Neural Networks", Communication of the ACM, May 2017, https://doi.org/10.1145/3065386
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、予め定められたクラスに属さないデータが分類対象に含まれる場合においても、分類精度の低下を抑制できる分類システム、プログラム及び学習システムを提供することである。
【課題を解決するための手段】
【0006】
実施形態の分類システムは、スコア算出部と、判定部と、分類部と、を持つ。スコア算出部は、予め定められたクラスそれぞれのスコアを入力データから算出する。判定部は、スコア算出部により算出されたクラスそれぞれのスコアに基づいて、入力データがクラスのいずれかに属するか否かを判定する。分類部は、入力データがクラスのいずれかに属すると判定部が判定した場合に、算出されたクラスごとのスコアに基づいて、入力データが属するクラスを決定し、入力データがクラスのいずれにも属しないと判定部が判定した場合に、入力データが未知のクラスに属すると決定する。
【図面の簡単な説明】
【0007】
【
図1】第1の実施形態における分類システムの構成例を示す図。
【
図2】第1の実施形態における分類装置の構成例を示すブロック図。
【
図3】第1の実施形態におけるスコア算出部の構成例を示すブロック図。
【
図4】第1の実施形態における判定部の構成例を示す図。
【
図5】第1の実施形態の分類システムが行う分類処理の動作例を示すフローチャート。
【
図6】第1の実施形態における学習システムの構成例を示す図。
【
図7】第1の実施形態の学習システムが行う学習処理の動作例を示すフローチャート。
【
図8】第2の実施形態における分類システムの構成例を示す図。
【
図9】第2の実施形態における判定部の構成例を示す図。
【発明を実施するための形態】
【0008】
以下、実施形態の分類システム、プログラム及び学習システムを、図面を参照して説明する。以下の実施形態では、同一の符号を付した構成は同様の動作を行うものとして、重複する説明を適宜省略する。
【0009】
第1及び第2の実施形態で説明する分類システムは、分類対象の画像を入力データとして取得し、分類対象の画像が予め定められた複数のクラスのいずれにも属しない未知のクラスに属するか否かを判定する。分類システムは、分類対象の画像が未知のクラスに属すると判定した場合、画像を複数のクラスのいずれかに分類せずに、画像が未知のクラスに属するという判定結果を出力する。未知のクラスに属する画像を複数のクラスのいずれかに属するという判定を行わないことで、分類システムは、画像に対する誤った分類を避けて分類精度の低下を抑制する。以下、分類システムを適用した例について説明する。
【0010】
(第1の実施形態)
図1は、第1の実施形態における分類システム1の構成例を示す図である。分類システム1は、板や棒、管などの形状に加工された鋼材の品質が、予め定められた品質等級のいずれに属するかを判定し、鋼材の品質を分類する。第1の実施形態における品質等級がクラスの一例である。品質等級として、標準化団体で定められた規格や、業界団体により定められた規格が用いられる。例えば、JIS(Japan Industrial Standards)で定められた規格の一つに「JIS G0551 鋼-結晶粒度の顕微鏡試験方法」がある。この規格では、品質等級が22等級に分けられている。等級は、-1,0,0.5,1.0,1.5,2.0,…,9.0,9.5,10.0の数値で表される。
【0011】
分類システム1は、撮像装置2、分類装置3及び表示装置4を備える。撮像装置2は、分類対象の鋼材又は鋼材から採取した試料Sを撮像し、得られた画像を入力データとして分類装置3へ供給する。撮像装置2は、鋼材又は試料Sの表面や断面を撮像する。光学顕微鏡に取り付けられたカメラを撮像装置2として用いてもよい。分類装置3は、機械学習で得られたモデルを用いて、分類対象の鋼材が予め定められた品質等級のいずれに属するか判定し、鋼材の品質を分類する。分類装置3は、分類対象の鋼材の品質等級を示す分類結果を表示装置4に出力し、分類結果を表示装置4に表示させる。なお、分類対象の鋼材が予め定められた品質等級のいずれにも属さない場合、分類装置3は、分類対象の鋼材が未知の品質等級に属するという分類結果を表示装置4に出力する。
【0012】
品質等級は、モデルの学習時に定められる。モデルの学習に用いる学習データセットは、鋼材を撮像した複数の画像と、画像それぞれに対応する品質等級を示すラベルとが含まれる。すなわち、学習データセットは、画像とラベルとの組み合わせを複数含む。学習データセットに含まれるラベルが示す品質等級が、分類結果として得られる品質等級である。また、学習データセットに含まれるラベルの種類の数が、分類システム1により分類される品質等級の数となる。以下、第1の実施形態の分類システム1が、分類対象の鋼材がN種類の品質等級のいずれに属するかを分類する場合について説明する。モデルの学習に用いられる学習システムについては、分類システム1による分類処理を説明した後に説明する。
【0013】
図2は、第1の実施形態における分類装置3の構成例を示すブロック図である。分類装置3は、データ取得部31、スコア算出部32、判定部33、分類部34及び出力部35を備える。データ取得部31は、撮像装置2により撮像された鋼材の画像を受け付け、画像をスコア算出部32へ供給する。スコア算出部32は、画像からスコアベクトルを算出し、算出したスコアベクトルを判定部33及び分類部34へ供給する。判定部33は、スコアベクトルを用いて、鋼材を撮像して得られた画像が予め定められた品質等級のいずれかに属するか否かを判定し、判定結果を分類部34へ供給する。分類部34は、スコアベクトル及び判定結果に基づいて画像が示す鋼材を分類し、分類結果を出力部35へ供給する。出力部35は、分類結果を表示装置4へ出力し、表示装置4に分類結果を表示させる。例えば、鋼材を撮像して得られる画像のサイズは512×512ピクセルであり、各ピクセルは赤、緑、青それぞれに対応する値(0から255までの値)を有する。また、画像のサイズは、W×H×Cで示されてもよい。ここで、Wは幅を示し、Hは高さを示し、Cはチャネル数を示す。カラーモデルは、RGB、グレースケール、HSVなどで表される。
【0014】
スコアベクトルは、品質等級の数と同じ数の要素を有する。品質等級それぞれに対応する要素は、要素に対応する品質等級に画像が示す鋼材が属する度合いを示す。判定結果は、画像が示す鋼材が、予め定められた品質等級のいずれかに属するか否かを示す。分類結果は、画像が示す鋼材が属する品質等級を示すか、あるいは、画像が示す鋼材がいずれの品質等級にも属さないことを示す。例えば、ベクトル[1.1,0.2,…,-1.5]が確信度ベクトルとして算出される。ベクトル[0.1335,0.5465,…,0.6663]や[0.75,0.55,…,0.18]がスコアベクトルとして算出される。
【0015】
分類装置3は、バスで接続されたCPU(Central Processing Unit)やGPU(Graphics Processing Unit)、一時記憶メモリ、記憶装置などを備えるコンピュータを、データ取得部31、スコア算出部32、判定部33、分類部34及び出力部35として機能させてもよい。CPU又はGPUが記憶装置に記憶されたプログラムを実行することにより、データ取得部31、スコア算出部32、判定部33、分類部34及び出力部35が行う動作を実行してもよい。また、CPU又はGPUは、記憶装置に記憶されたプログラムを実行することにより、分類装置3が行う一部又は全ての動作を行ってもよい。また、分類装置3が行う動作の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)などのハードウェアを用いて、電子回路として実現されてもよい。プログラムは、コンピュータ読み取り可能な非一時的な記録媒体に記録されてもよい。
【0016】
図3は、第1の実施形態におけるスコア算出部32の構成例を示すブロック図である。スコア算出部32は、特徴抽出部321と変換部323とを備える。特徴抽出部321は、データ取得部31から受け付ける画像の特徴を抽出する算出モデル322を備える。算出モデル322として畳み込みニューラルネットワーク(Convolution Neural Network:CNN)を用いる場合について説明するが、RNN(Recurrent Neural Network)などの他の機械学習モデルが算出モデル322として用いられてもよい。
【0017】
算出モデル322は、入力層と隠れ層と出力層とを備える。隠れ層は、少なくとも2つの畳み込み層と、プーリング層と、全結合層とを備える。隠れ層は、2つ以上のプーリング層及び全結合層を備えてもよい。入力層は、スコア算出部32に入力される画像を受け付ける。入力層のサイズは、画像の画素数及び各画素のチャネル数で定められる。チャネル数は、画像のフォーマットに応じて決定される。例えば、各画素が赤、緑、青それぞれに対応する値を有する場合、チャネル数は3に定められる。
【0018】
畳み込み層は、入力される画像又はプーリング層の出力(特徴マップ)に対するフィルタリング処理を行う。プーリング層は、畳み込み層によるフィルタリング処理の結果(特徴マップ)のサイズを縮小する。隠れ層の数、各隠れ層が含む畳み込み層の数、畳み込み層において用いられるフィルタの数、フィルタのサイズ、フィルタのストライド幅、プーリング層における圧縮サイズは、入力される画像の大きさや、分類装置3が備えるコンピュータの演算処理能力、分類装置3に要求される処理時間に応じて予め定められる。
【0019】
全結合層は、画像から抽出された特徴マップに含まれる複数の特徴量に対して重み付け加算を行い、更なる特徴の抽出を行う。出力層は、全結合層により抽出された特徴から、品質等級ごとの確信度を算出し、算出した確信度を要素とする確信度ベクトルを出力する。確信度ベクトルの要素の数は、分類システム1が鋼材を分類する品質等級の数と一致する。算出モデル322は、画像から確信度ベクトルを算出する。
【0020】
変換部323は、算出モデル322により算出される確信度ベクトルをスコアベクトルに変換する。変換部323は、シグモイド関数を用いて、確信度ベクトルの要素それぞれを、0から1の範囲の値に変換する。シグモイド関数として、例えば、y=1/(1+exp(-x)が用いられる。変換して得られる値がスコアベクトルの要素となる。変換部323は、シグモイド関数を用いた変換により得られるスコアベクトルを判定部33及び分類部34へ供給する。
【0021】
図4は、第1の実施形態における判定部33の構成例を示す図である。判定部33は、N種類の品質等級それぞれに対応する判定モデル331(331-A,331-B,…,331-N)と、選択部332と、スイッチ333及び334とを備える。判定モデル331は、スコア算出部32から供給されるスコアベクトルに基づいて、スコアベクトルに対応する鋼材が判定モデル331に対応する品質等級に属するか否かを判定する。判定モデル331には、1クラスサポートベクターマシンが用いられる。例えば、品質等級-Aに対応する判定モデル331-Aは、スコアベクトルに対応する鋼材が品質等級-Aに属するか否かを判定する。判定モデル331-Aは、スコアベクトルが外れ値でないと判定される場合に、鋼材が品質等級-Aに属すると判定し、スコアベクトルが外れ値であると判定される場合に、鋼材が品質等級-Aに属さないと判定する。
【0022】
選択部332は、スコアベクトルに基づいて、複数の品質等級に対応するN個の判定モデル331のうちいずれの判定モデル331を用いるかを選択する。選択部332は、スコアベクトルに含まれる各要素のうち最も大きい要素を検出し、検出した要素に対応する品質等級を特定する。選択部332は、特定した品質等級に対応する判定モデル331を選択する。選択部332は、選択結果に応じて、スイッチ333及び334を切り替える。スイッチ333は、選択部332の制御に応じて、選択部332に選択された判定モデル331にスコアベクトルを供給する。スイッチ334は、選択部332の制御に応じて、選択部332に選択された判定モデル331の出力を判定結果として分類部34へ供給する。
【0023】
例えば、スコアベクトルとしてベクトル[0.75,0.55,…,0.18]が判定部33に与えられ、0.75が要素の最大値である場合、選択部332は、「0.75」に対応する品質等級-A用の判定モデル331-Aを選択する。判定モデル331-Aは、スコアベクトル[0.75,0.55,…,0.18]が品質等級-Aに属するか否かを判定し、判定結果を出力する。判定モデル331-Aは、鋼材が品質等級-Aに属すると判定した場合、「1」を判定結果として出力し、鋼材が品質等級-Aに属さないと判定した場合、「-1」を判定結果として出力する。判定結果「-1」は、鋼材が未知の品質等級に属することを表す。
【0024】
図5は、第1の実施形態の分類システム1が行う分類処理の動作例を示すフローチャートである。分類システム1において分類処理が開始されると、分類対象となる鋼材の試料Sを撮像した画像を撮像装置2からデータ取得部31が取得する(ステップS101)。スコア算出部32において、データ取得部31により取得された画像が算出モデル322に供給され、算出モデル322は、画像から確信度ベクトルを算出する(ステップS102)。変換部323は、算出モデル322により算出された確信度ベクトルの各要素を変換してスコアベクトルを取得する(ステップS103)。
【0025】
判定部33において、スコア算出部32から供給されるスコアベクトルが選択部332に供給され、選択部332は、スコアベクトルの要素のうち最大の要素を特定し(ステップS104)、特定した要素に対応する品質等級の判定モデル331をN個の判定モデル331から選択する(ステップS105)。選択された判定モデル331は、スイッチ333を介してスコアベクトルを受け付け、自モデルに対応する品質等級にスコアベクトルが属するか否かを判定する(ステップS106)。選択された判定モデル331による判定結果は、スイッチ334を介して分類部34へ供給される。
【0026】
スコアベクトルが品質基準に属することを判定結果が示す場合(ステップS107:YES)、分類部34は、スコア算出部32から供給されるスコアベクトルの要素のうち最大の要素に対応する品質等級に、分類対象の鋼材が属すると分類し、分類結果を出力部35へ供給する(ステップS108)。スコアベクトルが品質基準に属さないことを判定結果が示す場合(ステップS107:NO)、分類部34は、分類対象の鋼材がN個の品質等級のいずれにも属さず、分類対象の鋼材が未知の品質等級に属すると分類し、分類結果を出力部35へ供給する(ステップS109)。
【0027】
出力部35は、分類部34から供給された分類結果を表示装置4に出力して分類結果を表示装置4に表示させ(ステップS110)、分類処理を終了する。
【0028】
なお、分類システム1は、撮像装置2において試料Sが撮像される都度、分類処理を実行してもよいし、複数の画像を一度に取得し、各画像で示される鋼材の分類結果を表示装置4に表示させてもよい。また、分類システム1は、記憶装置を更に備え、分類結果を記憶装置に記憶させてもよい。また、分類システム1は、分類対象の鋼材の画像と分類結果とを組み合わせて記憶装置に記憶させてもよい。
【0029】
[学習システムについて]
分類装置3において用いられる算出モデル322及びN個の判定モデル331を得るための学習システムについて説明する。
図6は、第1の実施形態における学習システム5の構成例を示す図である。学習システム5は、記憶部6、第1の学習部7及び第2の学習部8を備える。記憶部6は、算出モデル322の学習において用いる算出モデル用学習データセットを予め記憶する。算出モデル用学習データセットは、鋼材を撮像して得られた画像と当該鋼材が属する品質等級を示すラベルとからなる複数の学習データを含む。
【0030】
第1の学習部7は、学習データ取得部71、算出モデル322、変換部73、誤差算出部74、重み係数更新部75及び終了判定部76を備える。学習データ取得部71は、記憶部6から算出モデル用学習データを取得する。学習データ取得部71は、算出モデル用学習データに含まれる画像を算出モデル322へ供給し、算出モデル用学習データに含まれるラベルを変換部73及び誤差算出部74へ供給する。
【0031】
変換部73は、算出モデル322により画像から算出される確信度ベクトルをスコアベクトルに変換する。変換部73は、確信度ベクトルからスコアベクトルへの変換に、変換部323が用いる関数と同じ関数を使用する。変換部73は、スコアベクトルを誤差算出部74に供給する。また、変換部73は、算出モデル322の学習が終了した後に、算出モデル322により算出されるスコアベクトルと、スコアベクトルの算出に用いられた画像に対応するラベルとの組み合わせを判定モデル用学習データとして記憶部6に記憶させる。
【0032】
誤差算出部74は、学習データ取得部71から供給されるラベルから正解ベクトルを生成する。誤差算出部74は、変換部73から供給されるスコアベクトルと正解ベクトルとの差分を算出し、算出した差分を重み係数更新部75へ供給する。正解ベクトルは、例えば、ラベルが示す品質等級に対応する要素の値を1とし、他の要素の値を-1としたベクトルである。
【0033】
重み係数更新部75は、誤差算出部74から供給される誤差を用いて算出モデル322におけるフィルタの重み係数と、全結合層の重み係数とを更新する。重み係数更新部75は、フィルタの重み係数及び全結合層の重み係数の更新に、誤差逆伝搬法(Backpropagation)などの公知の手法を用いる。重み係数更新部75は、学習データ取得部71に学習データが取得される都度、重み係数の更新を行う。終了判定部76は、算出モデル322の学習を終了するか否かを判定する。終了判定部76は、学習を終了させると判定したときに、算出モデル322の各重み係数を、算出モデルパラメータとして記憶部6に記憶させる。
【0034】
第2の学習部8は、変換部73が記憶部6に記憶させた複数の判定モデル用学習データを含む学習データセットを用いて、N個の判定モデル331それぞれのパラメータを決定する。第2の学習部8は、同じ品質等級を示すラベルを含む判定モデル用学習データを記憶部6から読み出す。第2の学習部8は、読み出した判定モデル用学習データそれぞれに含まれるスコアベクトルを正常値として判定する識別境界を決定する。第2の学習部8は、決定した識別境界を表すパラメータを判定モデルパラメータとして記憶部6に記憶させる。第2の学習部8は、N個の品質等級ごとに識別境界を決定し、N個の判定モデル331それぞれのパラメータを決定する。
【0035】
1クラスサポートベクターマシンを判定モデル331として用いる場合、第2の学習部8は、正常値として用いる全てのスコアベクトルSi,(i=1,2,…,N)に対して、識別境界(y=wTSi-b)が0より大きい値となるベクトルw及びスカラbを決定する。なお、ベクトルwの要素数は品質等級の数(N)であり、wTはベクトルwの転置を表す。第2の学習部8は、判定モデル331ごと、すなわち品質等級ごとにベクトルw及びスカラbを決定する。
【0036】
図7は、第1の実施形態の学習システム5が行う学習処理の動作例を示すフローチャートである。学習システム5において学習処理が開始されると、記憶部6から学習データを学習データ取得部71が取得する(ステップS201)。学習データ取得部71は、取得した学習データに含まれる画像を算出モデル322に与えて、算出モデル322に確信度ベクトルを算出させる(ステップS202)。誤差算出部74は、変換部73により確信度ベクトルから変換されたスコアベクトルと正解ベクトルとの差分を算出する(ステップS203)。重み係数更新部75は、差分に基づいて算出モデル322の各重み係数を更新する(ステップS204)。終了判定部76は、算出モデル322の学習終了条件が満たされているか否かを判定する(ステップS205)。
【0037】
学習終了条件が満たされてない場合(ステップS206:NO)、終了判定部76は処理をステップS201に戻し、算出モデル322の学習が継続する。学習終了条件が満たされている場合(ステップS206:YES)、終了判定部76は、算出モデル322に含まれる全ての重み係数を算出モデルパラメータとして記憶部6に記憶させる(ステップS207)。学習終了条件として、例えば、学習データセットに含まれる画像とラベルとの全ての組み合わせを用いて重み係数を更新した回数(エポック数)が所定の回数に達することを用いてもよい。また、CNNの学習において用いられる公知の終了条件を、学習終了条件として用いてもよい。
【0038】
算出モデル322の学習が終了すると、学習データ取得部71は、記憶部6から算出モデル用学習データを取得する(ステップS211)。学習データ取得部71は、取得した算出モデル用学習データに含まれる画像を学習済みの算出モデル322に与えて、算出モデル322に確信度ベクトルを算出させる(ステップS212)。変換部73は、確信度ベクトルをスコアベクトルに変換する(ステップS213)。変換部73は、スコアベクトルとラベルとの組み合わせを、判定モデル用学習データとして記憶部6に記憶させる(ステップS214)。算出モデル322の学習が終了した後に、第1の学習部7は、ステップS211~S214の動作を、算出モデル用学習データセットに含まれる算出モデル用学習データそれぞれに対して行う。各算出モデル用学習データから算出されるスコアベクトルは、判定モデル用学習データとして用いられる。
【0039】
ステップS211~S214の動作が繰り返されることによって算出モデル用学習データセットから判定モデル用学習データセットが得られると、第2の学習部は、品質等級-n(n=A,B,…,N)ごとに対応するスコアベクトルの集合を記憶部6から取得する(ステップS221)。第2の学習部8は、取得したスコアベクトルの集合から、判定モデル331としての1クラスサポートベクターマシンにおける識別境界を表すパラメータを算出する(ステップS222)。第2の学習部は、算出したパラメータを品質等級-nに対応する判定モデル331のパラメータとして記憶部6に記憶させる(ステップS223)。第2の学習部8は、ステップS221~S223の動作を、品質等級-Aから品質等級-Nそれぞれに対して行う。品質等級ごとのスコアベクトルの集合から算出される識別境界を表すパラメータが、各品質等級に対応する判定モデル331のパラメータとして得られる。
【0040】
第2の学習部8は、各品質等級に対応する判定モデル331のパラメータを記憶部6に記憶させると、学習処理を終了させる。
【0041】
記憶部6が記憶する算出モデルパラメータと判定モデルパラメータとを、分類装置3に含まれる算出モデル322と判定モデル331とに適用することで、学習結果を反映した各モデルを得ることができる。算出モデルパラメータ及び判定モデルパラメータを算出モデル322及び判定モデル331にそれぞれ適用した後に、分類システム1による分類処理が行われる。
【0042】
第1の実施形態の分類システム1は、学習処理で得られる品質等級ごとの判定モデル331を備え、スコアベクトルが示す最も確からしい品質等級に対応する判定モデル331の判定結果を利用して鋼材を分類する。このような分類を行うことにより、分類システム1は、いずれの品質等級にも属さない鋼材の画像が与えられた場合であっても、鋼材に対する誤った分類を避けることができ、分類精度の低下を抑制できる。
【0043】
また、変換部323は、シグモイド関数を用いて確信度ベクトルに含まれる要素それぞれを独立に変換してスコアベクトルを得ることにより、鋼材が属する最も確からしい品質等級を推定する精度を高めることができる。また、変換部323と同様にシグモイド関数を用いて、変換部73が判定モデル331の学習に用いる判定モデル用学習データを算出することにより、他の品質等級の影響を受けずに各品質等級に対応する判定モデル331を決定することができる。このように、各判定モデル331を決定することで、スコアベクトルが外れ値であるか否かの判定精度を向上させることができる。すなわち、分類システム1は、鋼材が未知の品質等級に属するか否かを高い精度で分類でき、分類システム1の分類精度の低下を抑制できる。
【0044】
また、判定部33は、スコアベクトルの要素のうち最も大きい要素(スコア)に基づいて、判定に用いる判定モデル331を複数の判定モデル331から選択することにより、スコアベクトルに対応する鋼材が品質等級に属するか否かの判定精度を高めることができ、分類システム1の分類精度の低下を抑制できる。
【0045】
また、判定モデル331として1クラスサポートベクターマシンを用いることにより、判定モデル用学習データとして外れ値を用意せずとも、判定モデル331の学習が可能となり、分類システム1を利用するユーザが学習データを用意する負担を軽減できる。また、算出モデル322の学習に用いる算出モデル用学習データセットから、判定モデル用学習データが算出されるので、分類システム1を利用するユーザが学習データを用意する負担を更に軽減できる。
【0046】
また、品質等級の判定において不良品と分類すべき鋼材の画像を学習データとして用意することが困難であっても、分類システム1が不良品であると分類すべき鋼材をいずれの品質等級にも属さないという分類結果を出力できる。したがって、分類システム1は、不良品であると分類すべき鋼材の画像を学習データとして用意できずとも、不良品に対して未知の品質等級に属するという分類結果を出力でき、不良品の検出が可能になる。
【0047】
また、算出モデル用学習データセットから算出されるスコアベクトルのうち、品質等級ごとに対応するスコアベクトルを判定モデル331の学習に利用することで、外れ値を考慮した学習が不要となり、判定モデル331の判定精度を向上できる。また、第2の学習部8による判定モデル331のパラメータを決定する際の演算負荷を低減できる。
【0048】
(第2の実施形態)
図8は、第2の実施形態における分類システム1Aの構成例を示す図である。分類システム1Aは、手書きの文字が、数字(0,1,2,…,9)のいずれであるかを判定し、文字を分類する。また、分類システム1Aは、文字が数字以外の文字である場合、文字が数字ではないと分類する。分類システム1Aは、第1の実施形態の分類システム1と同様に、撮像装置2、分類装置3及び表示装置4を備える。撮像装置2は、文字を撮像し、得られた画像を入力データとして分類装置3へ供給する。分類装置3は、学習済みの算出モデル322及び判定モデル331を用いて、文字が0から9のいずれに該当するか判定し、文字を分類する。第2の実施形態では「0」から「9」のそれぞれがクラスの一例である。分類装置3は、文字が0から9のいずれであるかを示す分類結果を表示装置4に出力し、分類結果を表示装置4に表示させる。なお、文字が0から9のいずれでもない場合、分類装置3は、文字が数字でないという分類結果を表示装置4に出力する。
【0049】
なお、第2の実施形態における分類システム1Aでは、算出モデル322及び判定モデル331の学習における算出モデル用学習データセットが、第1の実施形態の算出モデル用学習データセットと異なる。算出モデル用学習データセットに含まれる各学習データは、0から9のいずれかの文字を表す画像と、画像が表す数字を示すラベルとの組み合わせを含む。画像に含まれる数字は、手書きの数字だけでなく、任意の手法で得られる数字であってもよい。
【0050】
第2の実施形態における分類システム1Aにおいて判定部33の構成が第1の実施形態の判定部33の構成と異なるので、判定部33の構成を説明し、他の説明を省略する。
図9は、第2の実施形態における判定部33の構成例を示す図である。判定部33は、0から9それぞれの数字に対応する判定モデル331(331-0,331-1,331-2,…,331-9)と、選択部332と、スイッチ333及び334とを備える。第1の実施形態の判定部33が品質等級ごとの判定モデル331を備えるのに対して、第2の実施形態の判定部33は0から9の数字ごとの判定モデル331を備える。
【0051】
選択部332は、文字を表す画像から算出されるスコアベクトルに基づいて、0から9の数字に対応する10個の判定モデル331のうちいずれの判定モデル331を用いるかを選択する。第2の実施形態において判定モデル331を選択する基準は、第1の実施形態における基準と同様であり、スコアベクトルに含まれる各要素のうち最も大きい要素に対応する判定モデル331が選択される。
【0052】
第2の実施形態における分類システム1Aが備える算出モデル322及び判定モデル331の学習は、第1の実施形態における学習システム5と同じ学習システムにより行う。第2の実施形態では、算出モデル用学習データセットに含まれる学習データそれぞれは、0から9の数字のいずれかを撮像した画像と、画像に撮像された数字を示すラベルとの組み合わせを含む。このような算出モデル用学習データセットを用いて学習した算出モデル322及び判定モデル331を用いることで、分類システム1Aは、鋼材に対する品質等級の分類と同様に、画像に含まれる文字に数字以外の文字が含まれる場合であっても、文字に対する誤った分類を避けることができ、分類精度の低下を抑制できる。また、分類システム1Aが数字以外の文字を含む画像を入力データとして取得した場合、分類システム1Aは、画像に含まれる文字を数字以外の未知の文字として分類できる。
【0053】
(変形例)
第1の実施形態では鋼材の品質等級を分類する分類システム1を説明し、第2の実施形態では文字が0から9のいずれの文字であるかを分類する分類システム1Aを説明した。第1及び第2の実施形態では、分類対象を撮像した画像を入力データとして用いる場合を説明したが、分類対象となる入力データは、センサーで測定された測定値を含むセンサーデータや、音響データであってもよい。センサーデータを取得するセンサーとして、圧力センサー、温度センサー、湿度センサー、光センサー、超音波センサー、加重センサーなどを用いてもよい。実施形態の分類システムは、センサーデータ又は音響データを入力データとして取得する場合においても、入力データが属するクラスを示す分類結果、又は入力データが未知のクラスに属することを示す分類結果を出力できる。分類システムは、センサーデータ又は音響データを入力データして取得する場合においても、分類精度の低下を抑制できる。
【0054】
例えば、分類システムは、製品の製造ラインに備えられたセンサーで得られるデータを入力として受け付け、データに基づいて製品に不良品であるか否かを判定する。更に、分類システムは、製品を不良と判定した場合、不良の種類を分類する。製造ラインに溶接工程が含まれる場合、分類システムは、圧力センサー及び温度センサーで取得される圧力及び温度の測定値を入力として受け付け、製品が不良品であるか否かを判定する。更に、分類システムは、製品が不良品であると判定した場合、不良の種類を分類する。例えば、分類システムは、不良の種類として、製品のひび割れや溶接不良を分類する。また、分類システムは、製品のひび割れ又は溶接不良のいずれにも分類できない不良を、未知の不良として分類する。分類システムを製造ラインに適用することで、製品の外観を検査するだけでは検出が難しい不良の有無を判定できる。また、分類システムは、製品に未知の不良が生じている場合を検出するので、不良の種類を高い精度で分類できる。
【0055】
第1及び第2の実施形態において、変換部323が確信度ベクトルの各要素の変換に、シグモイド関数を用いる場合を説明したが、双曲線正接関数(y=tanh(x))、ReLU関数(ランプ関数)又は線形関数を用いてもよい。また、変換部323は、判定部33へ供給するスコアベクトルへの変換と、分類部34へ供給するスコアベクトルへの変換とに異なる関数を用いてもよい。例えば、変換部323は、判定部33へ供給するスコアベクトルへの変換にシグモイド関数を用い、分類部34へ供給するスコアベクトルへの変換にソフトマックス関数を用いてもよい。
【0056】
第1及び第2の実施形態の分類システム1、1Aが撮像装置2を備える構成について説明した。しかし、分類システム1、1Aは、分類装置3に入力データとしての画像を供給する記憶装置や通信装置を撮像装置2に代えて備えてもよい。
【0057】
以上説明した少なくともひとつの実施形態によれば、スコア算出部32により算出されたクラスそれぞれのスコアに基づいて、入力データがクラスのいずれかに属するか否かを判定する判定部33と、入力データがクラスのいずれかに属すると判定部33が判定した場合に、算出されたクラスごとのスコアに基づいて、入力データが属するクラスを決定し、入力データがクラスのいずれにも属しないと判定部が判定した場合に、入力データが未知のクラスに属すると決定する分類部34と、を持つことにより、いずれのクラスにも属さない入力データが与えられた場合であっても、入力データに対する誤った分類を避けることができ、分類精度の低下を抑制できる。
【0058】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0059】
1,1A…分類システム、2…撮像装置、3…分類装置、4…表示装置、5…学習システム、6…記憶部、7…第1の学習部、8…第2の学習部、31…データ取得部、32…スコア算出部、33…判定部、34…分類部、35…出力部、71…学習データ取得部、73…変換部、74…誤差算出部、75…重み係数更新部、76…終了判定部、321…特徴抽出部、322…算出モデル、323…変換部、331…判定モデル、332…選択部、333,334…スイッチ