(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-23
(45)【発行日】2024-10-31
(54)【発明の名称】機械学習装置、機械学習方法、機械学習プログラム、評価装置、評価方法、及び評価プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20241024BHJP
G01N 21/88 20060101ALI20241024BHJP
【FI】
G06T7/00 350C
G06T7/00 610B
G01N21/88 Z
(21)【出願番号】P 2020219579
(22)【出願日】2020-12-28
【審査請求日】2023-06-28
(73)【特許権者】
【識別番号】000005186
【氏名又は名称】株式会社フジクラ
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】黒澤 公紀
(72)【発明者】
【氏名】大▲高▼ 巌
(72)【発明者】
【氏名】劉 青
【審査官】山田 辰美
(56)【参考文献】
【文献】特開2020-149209(JP,A)
【文献】米国特許出願公開第2019/0102675(US,A1)
【文献】特開2012-141862(JP,A)
【文献】特表2007-536644(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G01N 21/88
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを備え、
前記プロセッサは、予め定められた複数のクラスの何れか、及び、予め定められた複数のタイプの何れかを示すラベルが付与された画像データからなるデータセットから、学習用データセットを作成するセット作成処理と、前記セット作成処理にて作成された学習用データセットを用いて、画像データを入力とし、前記複数のクラスの何れかを出力とするモデルを構築するモデル構築処理と、を実行し、
前記セット作成処理において、前記プロセッサは、前記学習用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、各グループの要素数を均等化すること、及び、グループ毎に各サブグループの要素数を均等化することを目標として、前記データセットから前記学習用データセットの要素を選択する
ために、前記データセットをクラスに応じてグループに分け、各グループをタイプに応じてサブグループに分け、各グループについて閾値を設定し、該グループの各サブグループについて、(1)該サブグループの要素数が前記閾値以下であれば、該サブグループの全ての要素を前記学習用データセットの要素として選択し、(2)該サブグループの要素数が前記閾値よりも大きければ、該サブグループから前記閾値の値と同数の要素を前記学習用データセットの要素として選択する、
ことを特徴とする機械学習装置。
【請求項2】
前記モデル構築処理は、パラメータ設定用データセットを用いて、前記モデルのネットワーク構造を規定するハイパーパラメータを設定するパラメータ設定処理を含み、
前記プロセッサは、
前記パラメータ設定用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、各グループの要素数を均等化すること、及び、グループ毎に各サブグループの要素数を均等化することを目標として、前記学習用データセットから前記パラメータ設定用データセットを選択する
ために、前記学習用データセットをクラスに応じてグループに分け、各グループをタイプに応じてサブグループに分け、各グループについて第2の閾値を設定し、該グループの各サブグループについて、(1)該サブグループの要素数が前記第2の閾値以下であれば、該サブグループの全ての要素を前記パラメータ設定用データセットの要素として選択し、(2)該サブグループの要素数が前記第2の閾値よりも大きければ、該サブグループから前記第2の閾値の値と同数の要素を前記パラメータ設定用データセットの要素として選択する、
ことを特徴とする請求項1に記載の機械学習装置。
【請求項3】
前記プロセッサは、評価用データセットを用いて、前記モデルの性能を評価するモデル評価処理を更に実行し、
前記セット作成処理において、前記プロセッサは、前記データセットに属する画像データのうち、前記学習用データセットの要素として選択されなかった画像データを、前記評価用データセットの要素として選択する、
ことを特徴とする請求項1又は2に記載の機械学習装置。
【請求項4】
前記モデル評価処理は、タイプ別評価用データセットを用いて、前記モデルの性能をタイプ別に評価するタイプ別評価処理を含み、
前記プロセッサは、
前記タイプ別評価用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、グループ毎に各サブグループの要素数を均等化することを目標として、前記評価用データセットから前記タイプ別評価用データセットの要素を選択する
ために、前記評価用データセットをクラスに応じてグループに分け、各グループをタイプに応じてサブグループに分け、第3の閾値を設定し、各サブグループについて、(1)該サブグループの要素数が前記第3の閾値以下であれば、該サブグループの全ての要素を前記タイプ別評価用データセットの要素として選択し、(2)該サブグループの要素数が前記第3の閾値よりも大きければ、該サブグループから前記第3の閾値の値と同数の要素を前記タイプ別評価用データセットの要素として選択する、
ことを特徴とする請求項3に記載の機械学習装置。
【請求項5】
前記モデルの入力は、特定の物品を被写体として含む画像データであり、前記モデルの出力は、その物品の特定の部位の良否を示すクラスであり、
前記タイプは、背景、前記物品、及び前記部位の一部又は全部の属性に注目して定義されたタイプである、
ことを特徴とする請求項1~4の何れか一項に記載の機械学習装置。
【請求項6】
少なくとも1つのプロセッサが、予め定められた複数のクラスの何れか、及び、予め定められた複数のタイプの何れかを示すラベルが付与された画像データからなるデータセットから、学習用データセットを作成するセット作成処理と、
前記プロセッサが、前記セット作成処理にて作成された学習用データセットを用いて、画像データを入力とし、前記複数のクラスの何れかを出力とするモデルを構築するモデル構築処理と、を含み、
前記セット作成処理において、前記プロセッサは、前記学習用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、各グループの要素数を均等化すること、及び、グループ毎に各サブグループの要素数を均等化することを目標として、前記データセットから前記学習用データセットの要素を選択する
ために、前記データセットをクラスに応じてグループに分け、各グループをタイプに応じてサブグループに分け、各グループについて閾値を設定し、該グループの各サブグループについて、(1)該サブグループの要素数が前記閾値以下であれば、該サブグループの全ての要素を前記学習用データセットの要素として選択し、(2)該サブグループの要素数が前記閾値よりも大きければ、該サブグループから前記閾値の値と同数の要素を前記学習用データセットの要素として選択する、
ことを特徴とする機械学習方法。
【請求項7】
コンピュータを請求項1~5の何れか一項に記載の機械学習装置として動作させるための機械学習プログラムであって、前記コンピュータが備えるプロセッサに前記各処理を実行させる機械学習プログラム。
【請求項8】
少なくとも1つのプロセッサを備え、
前記プロセッサは、予め定められた複数のクラスの何れか、及び、予め定められた複数のタイプの何れかを示すラベルが付与された画像データからなるデータセットから、評価用データセットを作成するセット作成処理と、前記セット作成処理にて作成された評価用データセットを用いて、画像データを入力とし、前記複数のクラスの何れかを出力とするモデルの性能を評価するモデル評価処理と、を実行し、
前記モデル評価処理は、タイプ別評価用データセットを用いて、前記モデルの性能をタイプ別に評価するタイプ別評価処理と、包括的評価用データセットを用いて、前記モデルの性能を包括的に評価する包括的評価処理と、を含み、
前記プロセッサは、
前記タイプ別評価用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、グループ毎に各サブグループの要素数を均等化することを目標として、前記評価用データセットから前記タイプ別評価用データセットの要素を選択する
ために、前記評価用データセットをクラスに応じてグループに分け、各グループをタイプに応じてサブグループに分け、閾値を設定し、各サブグループについて、(1)該サブグループの要素数が前記閾値以下であれば、該サブグループの全ての要素を前記タイプ別評価用データセットの要素として選択し、(2)該サブグループの要素数が前記閾値よりも大きければ、該サブグループから前記閾値と同数の要素を前記タイプ別評価用データセットの要素として選択する、
ことを特徴とする評価装置。
【請求項9】
少なくとも1つのプロセッサが、予め定められた複数のクラスの何れか、及び、予め定められた複数のタイプの何れかを示すラベルが付与された画像データからなるデータセットから、評価用データセットを作成するセット作成処理と、
前記プロセッサが、前記セット作成処理にて作成された評価用データセットを用いて、画像データを入力とし、前記複数のクラスの何れかを出力とするモデルの性能を評価するモデル評価処理と、を含み、
前記モデル評価処理は、タイプ別評価用データセットを用いて、前記モデルの性能をタイプ別に評価するタイプ別評価処理と、包括的評価用データセットを用いて、前記モデルの性能を包括的に評価する包括的評価処理と、を含み、
前記プロセッサは、
前記タイプ別評価用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、グループ毎に各サブグループの要素数を均等化することを目標として、前記評価用データセットから前記タイプ別評価用データセットの要素を選択する
ために、前記評価用データセットをクラスに応じてグループに分け、各グループをタイプに応じてサブグループに分け、閾値を設定し、各サブグループについて、(1)該サブグループの要素数が前記閾値以下であれば、該サブグループの全ての要素を前記タイプ別評価用データセットの要素として選択し、(2)該サブグループの要素数が前記閾値よりも大きければ、該サブグループから前記閾値と同数の要素を前記タイプ別評価用データセットの要素として選択する、
ことを特徴とする評価方法。
【請求項10】
コンピュータを請求項8に記載の評価装置として動作させるための評価プログラムであって、前記コンピュータが備えるプロセッサに前記各処理を実行させる評価プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データを入力とし、予め定められた複数のクラスの何れかを出力とするモデルを構築する機械学習装置、機械学習方法、及び機械学習プログラムに関する。また、そのようなモデルを評価する評価装置、評価方法、及び評価プログラムに関する。
【背景技術】
【0002】
機械学習により構築されたモデル(学習済モデル)を用いて、物品の検査を行う方法が知られている。例えば、特許文献1には、物品を被写体として含む画像データを入力とし、その物品のクラスを出力とするモデルを用いて、物品の検査を行う検査装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
機械学習に用いられる学習用データセットには、様々なタイプの画像データが含まれている。しかも、それぞれのタイプの画像データが均等に含まれていることは稀であり、特定のタイプの画像データが突出して多く含まれていることもある。このように、学習用データセットに含まれている画像データのタイプに偏りがあると、機械学習により構築されるモデルの性能(例えば汎化能力)が低下することがある。例えば、突出して多く含まれる特定のタイプの画像データにより、そのタイプに対する過学習が生じると、他のタイプの画像データに対する精度が低下する。
【0005】
本発明の一態様は、上記の問題に鑑みてなされたものであり、その目的は、学習用データセットに含まれている画像データのタイプの偏りに起因するモデルの性能低下が生じ難い機械学習技術を実現することにある。
【課題を解決するための手段】
【0006】
本発明の態様1に係る機械学習装置は、少なくとも1つのプロセッサを備え、前記プロセッサは、予め定められた複数のクラスの何れか、及び、予め定められた複数のタイプの何れかを示すラベルが付与された画像データからなるデータセットから、学習用データセットを作成するセット作成処理と、前記セット作成処理にて作成された学習用データセットを用いて、画像データを入力とし、前記複数のクラスの何れかを出力とするモデルを構築するモデル構築処理と、を実行し、前記セット作成処理において、前記プロセッサは、前記学習用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、各グループの要素数を均等化すること、及び、グループ毎に各サブグループの要素数を均等化することを目標として、前記データセットから前記学習用データセットの要素を選択する、という特徴を有している。
【0007】
上記の構成によれば、学習用データセットに含まれている画像データのタイプに偏りが生じ難くなる。したがって、画像データのタイプの偏りに起因するモデルの性能低下が生じ難くなる。
【0008】
本発明の態様2に係る機械学習装置においては、態様1に係る機械学習装置の構成に加えて、前記モデル構築処理は、パラメータ設定用データセットを用いて、前記モデルのネットワーク構造を規定するハイパーパラメータを設定するパラメータ設定処理を含み、前記プロセッサは、パラメータ設定用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、各グループの要素数を均等化すること、及び、グループ毎に各サブグループの要素数を均等化することを目標として、前記学習用データセットから前記パラメータ設定用データセットを選択する、という構成が採用されている。
【0009】
上記の構成によれば、パラメータ設定用データセットに含まれている画像データのタイプに偏りが生じ難くなる。したがって、ハイパーパラメータが特定のタイプの画像データに特化されてしまうことによるモデルの性能低下が生じ難くなる。
【0010】
本発明の態様3に係る機械学習装置においては、本発明の態様1又は2に係る機械学習装置の加えて、前記プロセッサは、評価用データセットを用いて、前記モデルの性能を評価するモデル評価処理を更に実行し、前記セット作成処理において、前記プロセッサは、前記データセットに属する画像データのうち、前記学習用データセットの要素として選択されなかった画像データを、前記評価用データセットの要素として選択する、という構成が採用されている。
【0011】
上記の構成によれば、データセットに含まれる画像データを有効に活用して、モデルの性能を評価することができる。
【0012】
本発明の態様4に係る機械学習装置においては、態様3に係る機械学習装置の構成に加えて、前記モデル評価処理は、タイプ別評価用データセットを用いて、前記モデルの性能をタイプ別に評価するタイプ別評価処理を含み、前記プロセッサは、タイプ別評価用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、グループ毎に各サブグループの要素数を均等化することを目標として、前記評価用データセットから前記タイプ別評価用データセットの要素を選択する、という構成が採用されている。
【0013】
上記の構成によれば、データセットに含まれる画像データを有効に活用して、モデルの性能を画像データのタイプ別に評価することができる。
【0014】
本発明の態様5に係る機械学習装置においては、態様1~4の何れかに係る機械学習装置の構成に加えて、前記モデルの入力は、特定の物品を被写体として含む画像データであり、前記モデルの出力は、その物品の特定の部位の良否を示すクラスであり、前記タイプは、背景、前記物品、及び前記部位の一部又は全部の属性に注目して定義されたタイプである、という構成が採用されている。
【0015】
上記の構成によれば、特定の物品を被写体として含む画像データを入力とし、その物品の特定の部位の良否を示すクラスを出力とするモデルに関して、画像データのタイプの偏りに起因するモデルの性能低下が生じ難くなる。
【0016】
本発明の態様6に係る機械学習方法は、少なくとも1つのプロセッサが、予め定められた複数のクラスの何れか、及び、予め定められた複数のタイプの何れかを示すラベルが付与された画像データからなるデータセットから、学習用データセットを作成するセット作成処理と、前記プロセッサが、前記セット作成処理にて作成された学習用データセットを用いて、画像データを入力とし、前記複数のクラスの何れかを出力とするモデルを構築するモデル構築処理と、を含み、前記セット作成処理において、前記プロセッサは、前記学習用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、各グループの要素数を均等化すること、及び、グループ毎に各サブグループの要素数を均等化することを目標として、前記データセットから前記学習用データセットの要素を選択する、という特徴を有している。
【0017】
上記の構成によれば、学習用データセットに含まれている画像データのタイプに偏りが生じ難くなる。したがって、画像データのタイプの偏りに起因するモデルの性能低下が生じ難くなる。
【0018】
本発明の態様7に係る機械学習プログラムは、コンピュータを態様1~5の何れかに係る機械学習装置として動作させるためのプログラムであって、前記コンピュータが備えるプロセッサに前記各処理を実行させるプログラムである。
【0019】
上記の構成によれば、コンピュータを用いて上記の機械学習装置を実現することができる。
【0020】
本発明の態様8に係る評価装置は、少なくとも1つのプロセッサを備え、前記プロセッサは、予め定められた複数のクラスの何れか、及び、予め定められた複数のタイプの何れかを示すラベルが付与された画像データからなるデータセットから、評価用データセットを作成するセット作成処理と、前記セット作成処理にて作成された評価用データセットを用いて、画像データを入力とし、前記複数のクラスの何れかを出力とするモデルの性能を評価するモデル評価処理と、を実行し、前記モデル評価処理は、タイプ別評価用データセットを用いて、前記モデルの性能をタイプ別に評価するタイプ別評価処理と、包括的評価用データセットを用いて、前記モデルの性能を包括的に評価する包括的評価処理と、を含み、前記プロセッサは、タイプ別評価用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、グループ毎に各サブグループの要素数を均等化することを目標として、前記評価用データセットから前記タイプ別評価用データセットの要素を選択する、という特徴を有している。
【0021】
上記の構成によれば、データセットに含まれる画像データを有効に活用して、モデルの性能を画像データのタイプ別に評価すること、及び、モデルの性能を包括的に評価することができる。
【0022】
本発明の態様9に係る評価方法は、少なくとも1つのプロセッサが、予め定められた複数のクラスの何れか、及び、予め定められた複数のタイプの何れかを示すラベルが付与された画像データからなるデータセットから、評価用データセットを作成するセット作成処理と、前記プロセッサが、前記セット作成処理にて作成された評価用データセットを用いて、画像データを入力とし、前記複数のクラスの何れかを出力とするモデルの性能を評価するモデル評価処理と、を含み、前記モデル評価処理は、タイプ別評価用データセットを用いて、前記モデルの性能をタイプ別に評価するタイプ別評価処理と、包括的評価用データセットを用いて、前記モデルの性能を包括的に評価する包括的評価処理と、を含み、前記プロセッサは、タイプ別評価用データセットをクラスに応じてグループに分け、更に、各グループをタイプに応じてサブグループに分けたときに、グループ毎に各サブグループの要素数を均等化することを目標として、前記評価用データセットから前記タイプ別評価用データセットの要素を選択する、という特徴を有している。
【0023】
上記の構成によれば、データセットに含まれる画像データを有効に活用して、モデルの性能を画像データのタイプ別に評価すること、及び、モデルの性能を包括的に評価することができる。
【0024】
本発明の態様10に係る評価プログラムは、コンピュータを態様8に係る評価装置として動作させるためのプログラムであって、前記コンピュータが備えるプロセッサに前記各処理を実行させるプログラムである。
【0025】
上記の構成によれば、コンピュータを用いて上記の評価装置を実現することができる。
【発明の効果】
【0026】
本発明の一態様によれば、学習用データセットに含まれている画像データのタイプの偏りに起因するモデルの性能低下が生じ難い機械学習技術を実現することができる。
【図面の簡単な説明】
【0027】
【
図1】本発明の一実施形態に係る機械学習装置の構成を示すブロック図である。
【
図2】
図1の機械学習装置が実施する機械学習方法の流れを示すフロー図である。
【
図3】背景、物品、及び部位の属性に注目して定義したタイプについて、各タイプに分類される画像データの表す画像を例示した図である。
【
図4】本発明の一実施例を示す図である。(a)は、クラスC1(正常)を示すラベルが付与された画像データが表す画像の一例である。(b)は、クラスC1(正常)を示すラベルが付与された別の画像データが表す画像の一例である。(c)は、クラスC2(異常)を示すラベルが付与された画像データが表す画像の一例である。
【
図5】本発明の一実施例を示す図である。クラスがC1(正常)である画像データについて、各タイプに分類される画像データの個数を示すヒストグラムである。
【
図6】本発明の一実施例を示す図である。クラスがC2(異常)である画像データについて、各タイプに分類される画像データの個数を示すヒストグラムである。
【発明を実施するための形態】
【0028】
(機械学習装置の構成)
本発明の一実施形態に係る機械学習装置1の構成について、
図1を参照して説明する。
図1は、機械学習装置1の構成を示すブロック図である。
【0029】
機械学習装置1は、データセットDを用いてモデルMを構築及び評価する機械学習方法Sを実施するための装置である。機械学習装置1は、
図1に示すように、メモリ11と、プロセッサ12と、ストレージ13と、バス14と、を備えている。メモリ11、プロセッサ12、及びストレージ13は、バス14を介して互いに接続されている。
【0030】
メモリ11は、機械学習方法Sを実施するための機械学習プログラムP、及び、機械学習方法Sにおいて構築及び評価されるモデルMを記録するための構成である。なお、メモリ11としては、例えば、半導体RAM(Random Access Memory)等を用いることができる。
【0031】
プロセッサ12は、メモリ11に記憶された機械学習プログラムPに従って、機械学習方法Sを実行するための構成である。プロセッサ12としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、マイクロプロセッサ、デジタルシグナルプロセッサ、マイクロコントローラ、TPU(Tensor Processing Unit)等のASIC(Application Specific Integrated Circuit)又は、これらの組み合わせ等を用いることができる。
【0032】
ストレージ13は、機械学習方法Sにおいて参照されるデータセットDを格納するための構成である。ストレージ13としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又は、これらの組み合わせ等を用いることができる。
【0033】
なお、ここでは、機械学習方法Sを単一のコンピュータに設けられた単一のプロセッサ12が実行する構成について説明したが、これに限定されない。すなわち、機械学習方法Sを単一のコンピュータに設けられた、或いは、複数のコンピュータに分散して設けられた複数のプロセッサが共同して実行する構成を採用することも可能である。
【0034】
また、ここでは、データセットDを単一のコンピュータに設けられた単一のストレージ13に格納する構成について説明したが、これに限定されない。すなわち、データセットDを単一のコンピュータに設けられた、或いは、複数のコンピュータに分散して設けられた複数のストレージに分散して格納する構成を採用することも可能である。
【0035】
なお、プロセッサ12に機械学習方法Sを実行させるための機械学習プログラムPは、コンピュータ読み取り可能な一時的でない有形の記録媒体に記録され得る。この記録媒体は、メモリ11であってもよいし、ストレージ13であってもよいし、その他の記録媒体であってもよい。例えば、テープ、ディスク、カード、半導体メモリ、プログラマブル論理回路が、その他の記録媒体として利用可能である。
【0036】
(機械学習方法の流れ)
機械学習装置1が実施する機械学習方法Sの流れについて、
図2を参照して説明する。
図2は、機械学習方法Sの流れを示すフロー図である。
【0037】
機械学習方法Sは、上述したように、データセットDを用いてモデルMを構築及び評価する方法である。機械学習方法Sは、
図2に示すように、セット作成処理S1と、モデル構築処理S2と、モデル評価処理S3と、を含んでいる。
【0038】
データセットDは、予め定められたn個のクラスC1,C2,…,Cnの何れか、及び、予め定められたm個のタイプT1,T2,…,Tmの何れかを示すラベルが付与された画像データの集合である。モデルMは、画像データを入力とし、n個のクラスC1,C2,…,Cnの何れかを出力とするアルゴリズムである。なお、本実施形態においては、CNN(Convolutional Neural Network)をモデルMとして用いるが、CNN以外のニューラルネットワーク、ロジスティック回帰モデル、サポートベクトルマシン、ランダムフォレストなどをモデルMとして用いてもよい。
【0039】
セット作成処理S1は、データセットDから、モデル構築処理S2において参照される学習用データセットDLと、モデル評価処理S3において参照される評価用データセットDTと、を作成する処理である。セット作成処理S1は、プロセッサ12により実行され、作成された学習用データセットDL及び評価データセットTは、メモリ11に記憶される。
【0040】
学習用データセットDLは、データセットDの部分集合、すなわち、データセットDから選択された画像データの集合である。学習用データセットDLの要素の選択は、学習用データセットDLをクラスに応じてグループDL1,DL2,…,DLnに分け、更に、各グループDLi(i=1,2,…,n)をタイプに応じてサブグループDLi1,DLi2,…,DLimに分けたときに、(a)各グループDLiの要素数を均等化すること、及び、(b)グループ毎に各サブグループDLij(j=1,2,…,m)の要素数を均等化することを目標として行われる。一方、評価用データセットDTは、データセットDにおける学習用データセットDLの補集合、すなわち、データセットDに属する画像データのうち、学習用データセットDLの要素として選択されなかった画像データの集合である。
【0041】
データセットDから学習用データセットDLの要素を選択するアルゴリズムの一例を挙げれば、以下のとおりである。まず、データセットDをクラスに応じてグループD1,D2,…,Dnに分ける。次に、各グループDiをタイプに応じてサブグループDi1,Di2,…,Dimに分ける。次に、各グループDiについて、閾値αiを設定し、そのグループDiの各サブグループDijについて、(1)そのサブグループDijの要素数が閾値αi以下であれば、そのサブグループDijの全ての要素を選択し、(2)そのサブグループDijの要素数が閾値αiよりも大きければ、そのサブグループDijからαi個の要素をランダムに選択する。ここで、閾値α1,α2,…,αnは、学習用データセットDLの要素として各グループDiから選択される画像データの個数の分散が十分に小さくなるように(理想的には最小化するように)設定する。
【0042】
モデル構築処理S2は、セット作成処理S1にて作成された学習用データセットDLを用いてモデルMを構築する処理である。モデル構築処理S2は、プロセッサ12により実行され、構築されたモデルMは、メモリ11に記憶される。
【0043】
本実施形態に係るモデル構築処理S2は、係数設定処理と、パラメータ設定処理と、を含んでいる。係数設定処理は、係数設定用データセットDLaを用いて、モデルMのノード間結合を規定する重み係数を設定する処理である。パラメータ設定処理は、パラメータ設定用データセットDLbを用いて、モデルMのネットワーク構造を規定するハイパーパラメータを設定する処理である。
【0044】
パラメータ設定用データセットDLbは、学習用データセットDLの部分集合、すなわち、学習用データセットDLから選択された画像データの集合である。パラメータ設定用データセットDLbの要素の選択は、パラメータ設定用データセットDLbをクラスに応じてグループDLb1,DLb2,…,DLbnに分け、更に、各グループDLbiをタイプに応じてサブグループDLbi1,DLbi2,…,DLbimに分けたときに、(a)各グループDLbiの要素数を均等化すること、及び、グループ毎に各サブグループDLbijの要素数を均等化することを目標として行われる。一方、係数設定用データセットDLaは、学習用データセットDLにおけるパラメータ設定用データセットDLbの補集合、すなわち、学習用データセットDLに属する画像データのうち、パラメータ設定用データセットDLbの要素として選択されなかった画像データの集合である。
【0045】
学習用データセットDLからパラメータ設定用データセットDLbの要素を選択するアルゴリズムの一例を挙げれば、以下のとおりである。まず、学習用データセットDLをクラスに応じてグループDL1,DL2,…,DLnに分ける。次に、各グループDLiをタイプに応じてサブグループDLi1,DLi2,…,DLimに分ける。そして、各グループDLiについて、閾値βi=cαiを設定し、そのグループDLiの各サブグループDLijについて、(1)そのサブグループDLijの要素数が閾値βi以下であれば、そのサブグループDLijの全ての要素を選択し、(2)そのサブグループDLijの要素数が閾値βiよりも大きければ、そのサブグループDLijからβi個の要素をランダムに選択する。ここで、cは、1未満の実数であり、例えば、0.2である。
【0046】
モデル評価処理S3は、セット作成処理S1にて作成された評価用データセットDTを用いて、モデル構築処理S2にて構築されたモデルMの性能を評価する処理である。モデル構築処理S2は、プロセッサ12により実行され、評価結果は、メモリ11に記憶される。
【0047】
本実施形態に係るモデル評価処理S3は、タイプ別評価処理と、包括的評価処理と、を含んでいる。タイプ別評価処理は、タイプ別評価用データセットDTaを用いて、モデルMの性能を、画像データのタイプ別に評価する処理である。包括的評処理は、包括的評価用データセットDTbを用いて、モデルMの性能を、画像データのタイプに依らず包括的に評価する処理である。
【0048】
タイプ別評価用データセットDTaは、評価用データセットDTの部分集合、すなわち、評価用データセットDTから選択された画像データの集合である。タイプ別評価用データセットDTaの要素の選択は、タイプ別評価用データセットDTaをクラスに応じてグループDTa1,DTa2,…,DTanに分け、更に、各グループDTaiをタイプに応じてサブグループDTai1,DTai2,…,DTaimに分けたときに、グループ毎に各サブグループDTaijの要素数を均等化することを目標として行われる。一方、包括的評価用データセットDTbは、評価用データセットDTにおけるタイプ別評価用データセットDTaの補集合、すなわち、評価用データセットDTに属する画像データのうち、タイプ別評価用データセットDTaの要素として選択されなかった画像データの集合である。
【0049】
評価用データセットDTからタイプ別評価用データセットDTaの要素を選択するアルゴリズムの一例を挙げれば、以下のとおりである。まず、評価用データセットDTをクラスに応じてグループDT1,DT2,…,DTnに分ける。次に、各グループDTiをタイプに応じてサブグループDTi1,DTi2,…,DTimに分ける。そして、閾値γを設定し、各サブグループDTijについて、(1)そのサブグループDTijの要素数が閾値γ以下であれば、そのサブグループDTijの全ての要素を選択し、(2)そのサブグループDTijの要素数が閾値γよりも大きければ、そのサブグループDTijからγ個の要素をランダムに選択する。
【0050】
(タイプの具体例)
モデルMの入力が、特定の物品を被写体として含む画像を表す画像データであり、モデルMの出力が、その物品の特定の部位の良否を示すクラスC1,C2,…,Cnである場合、タイプT1,T2,…,Tmは、例えば、背景、物品、及び部位の属性に注目して定義することができる。例えば、表1に示す属性及び属性値に注目した場合、
図3に示すように、2×2×2=8個のタイプT1,T2,…,T8が定義される。
【表1】
【0051】
なお、タイプT1,T2,…,Tmを定義するために注目する属性は、背景、物品、及び部位の全部の属性であってもよいし、背景、物品、及び部位の一部の属性であってもよい。背景、物品、及び部位の全部又は一部の属性に代えて、又は、背景、物品、及び部位の全部又は一部の属性に加えて、カメラ、製造者、製造時期、製造環境(例えば温度)、画像の品質(例えば解像度)、製品、及び光源の全部又は一部の属性に注目してタイプT1,T2,…,Tmを定義してもよい。
【0052】
(適用例)
データセットDとして、線状部品を被写体として含む画像データの集合を用意した。データセットDに属する各画像データには、クラス及びタイプを示すラベルを付与した。クラスは、線状部品に印刷された、数値を表現する記号が正常であることを示すクラスC1、及び、同記号が異常であることを示すクラスC2の何れかである。タイプは、表2に示す属性及び属性値に注目して定義された3×2×2×3×9×2=648個のタイプT1,T2,…,T648の何れかである。
【表2】
【0053】
図4の(a)は、クラスC1(正常)を示すラベルが付与された画像データが表す画像の一例である。この画像データは、背景の黒ずみ=無、被写体の色=白、白飛びの有無=無、線ブレ=なし、記号の表示数値=3、記号の個数=6に対応するタイプに分類される。
図4の(b)は、クラスC1(正常)を示すラベルが付与された画像データが表す画像の一例である。この画像データは、背景の黒ずみ=全体、被写体の色=白、白飛びの有無=無、線ブレ=なし、記号の表示数値=3、記号の個数=6に対応するタイプに分類される。
図4の(c)は、クラスC2(異常)を示すラベルが付与された画像データが表す画像の一例である。この画像データは、背景の黒ずみ=無、被写体の色=白、白飛びの有無=有、線ブレ=なし、記号の表示数値=3、記号の個数=1に対応するタイプに分類される。
【0054】
上述したアルゴリズムに従って、データセットDから、係数設定用データセットDLa、パラメータ設定用データセットDLb、タイプ別評価用データセットDTa、及び包括的評価用データセットDTbを作成した。なお、学習用データセットDLを作成する際に利用する閾値α1,α2は、α1=10,α2=50とした。また、パラメータ設定用データセットDLbを作成する際に利用する閾値β1,β2は、β1=2、β2=10とした。また、タイプ別評価用データセットDTaを作成する際に利用する閾値γは、γ=2とした。得られた係数設定用データセットDLa、パラメータ設定用データセットDLb、タイプ別評価用データセットDTa、及び包括的評価用データセットDTbの要素数をクラス毎に示せば、表3のとおりである。
【表3】
【0055】
図5は、クラスがC1(正常)である画像データについて、各タイプの画像データの個数を示すヒストグラムである。
図6は、クラスがC2(異常)である画像データについて、各タイプの画像データの個数を示すヒストグラムである。
図5及び
図6においては、実際にデータセットDSに含まれていた121個のタイプについて、各タイプに属する画像データの個数を用途別に示している。
図5及び
図6によれば、学習用データセットDL(係数設定用データセットDLa及びパラメータ設定用データセットDLb)をクラスに応じてグループL1,L2に分け、更に、各グループLiをタイプに応じてサブグループLi1,Li2,…,Li648に分けたときに、(a)各グループLiの要素数が概ね均等化されており、(b)グループ毎に各サブグループLijの要素数が概ね均等化されていることが分かる。また、パラメータ設定用データセットDLbをクラスに応じてグループDLb1,DLb2に分け、更に、各グループDLbiをタイプに応じてサブグループDLbi1,DLbi2,…,DLbi648に分けたときに、(a)各グループDLbiの要素数が概ね均等化されており、(b)グループ毎に各サブグループDLbijの要素数が概ね均等化されていることが分かる。また、タイプ別評価用データセットDTaをクラスに応じてグループDTa1,DTa2に分け、更に、各グループDTaiをタイプに応じてサブグループDTai1,DTai2,…,DTai648に分けたときに、グループ毎に各サブグループDTaijの要素数が概ね均等化されていることが分かる。
【0056】
タイプ別評価及び包括的評価の結果を表4に示す。表4によれば、タイプ別にみても包括的にみても実際(ラベルが示すクラス)と予測(モデルMが出力したクラス)とが完全に一致しており、正解率100%が実現されていることが分かる。
【表4】
【0057】
なお、学習用データセットの選択に際して、各グループLiの要素数を均等化することのみを目的として、グループ毎に各サブグループLijの要素数を均等化することを目標としなかった場合、タイプ別評価及び包括的評価の結果は、表5のようになる。表5によれば、タイプ別に見ても包括的に見ても実際と予測とが一致しておらず、正解率100%が実現されていないことが分かる。
【表5】
【0058】
(付記事項)
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても、本発明の技術的範囲に含まれる。
【符号の説明】
【0059】
1 機械学習装置
11 メモリ
12 プロセッサ
13 ストレージ
14 バス
S 機械学習方法
S1 セット作成処理
S2 モデル構築処理
S3 モデル評価処理
D データセット
DL 学習用データセット
DLa 係数設定用データセット
DLb パラメータ設定用データセット
DT 評価用データセット
DTa タイプ別評価用データセット
DTb 包括的評価用データセット