(57)【要約】【課題】識別の精度の向上を図る。【解決手段】識別装置１００は、入力データの属するクラスを識別する各クラスの予測値を出力する識別器１１と、識別器１１の出力する各クラスの予測値をクラス毎の補正パラメータを用いて補正した補正予測値で識別したクラスに基づいて作成した混同行列の対称性を高める補正パラメータを取得する補正部１２と、識別器１１の出力する予測値を補正部１２が取得した補正パラメータを用いて補正して最終的な識別結果を取得する結果取得部１３と、を備える。【選択図】図１
2020101958.tif 000002
【特許請求の範囲】
【請求項１】
入力データの属するクラスを識別する各クラスの予測値を出力する識別器と、
前記識別器の出力する各クラスの予測値をクラス毎の補正パラメータを用いて補正した補正予測値で識別したクラスに基づいて作成した混同行列の対称性を高める前記補正パラメータを取得する補正部と、
前記識別器の出力する予測値を、前記補正部が取得した補正パラメータを用いて補正して、最終的な識別結果を取得する結果取得部と、
を備える識別装置。
【請求項２】
前記補正部は、前記混同行列の各クラスの正解データ数が１になるように前記混同行列を正規化した時の、前記正規化後の混同行列の各クラスの予測率合計が、できるだけ１に近づく前記補正パラメータを取得する、
請求項１に記載の識別装置。
【請求項３】
前記補正部は、
前記補正パラメータによって定まる単調非減少関数であって、０以上１以下の入力値を０以上１以下の出力値に変換する前記単調非減少関数を用いて前記識別器の出力する予測値を補正して補正予測値を取得し、
前記補正予測値で識別したクラスに基づいて前記混同行列を作成し、
前記作成した前記混同行列の各クラスの正解データ数が１になるように前記混同行列を正規化した時の、前記正規化後の混同行列の各クラスの予測率合計が、できるだけ１に近づく前記補正パラメータを取得する、
請求項２に記載の識別装置。
【請求項４】
前記単調非減少関数は、前記識別器の出力する予測値を、前記補正パラメータでべき乗する演算を行う関数である、
請求項３に記載の識別装置。
【請求項５】
前記補正部は、前記各クラスの正解率を平均した平均正解率を取得し、前記混同行列の対称性を高める前記補正パラメータの中で、前記平均正解率が最大となる前記補正パラメータを取得する、
請求項１から４のいずれか１項に記載の識別装置。
【請求項６】
識別器の出力する各クラスの予測値をクラス毎の補正パラメータを用いて補正した補正予測値で識別したクラスに基づいて作成した混同行列の対称性を高める前記補正パラメータを取得する補正パラメータ取得ステップと、
前記識別器の出力する予測値を、前記補正パラメータ取得ステップで取得した補正パラメータを用いて補正して、最終的な識別結果を取得する結果取得ステップと、
を含む識別方法。
【請求項７】
識別器を備える識別装置のコンピュータに、
前記識別器の出力する各クラスの予測値をクラス毎の補正パラメータを用いて補正した補正予測値で識別したクラスに基づいて作成した混同行列の対称性を高める前記補正パラメータを取得する補正パラメータ取得ステップ、及び、
前記識別器の出力する予測値を、前記補正パラメータ取得ステップで取得した補正パラメータを用いて補正して、最終的な識別結果を取得する結果取得ステップ、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、識別装置、識別方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、ニューラルネットワーク（Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）、ＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）等を用いて、入力データが複数のクラスの中のどのクラスに属するかを判定する識別器（分類器とも呼ばれる）が知られており、様々な分野で利用されている。例えば、花の種類をクラスとして、花の画像を入力すると、その花の種類を出力する識別器が存在する。また、皮膚疾患の名称をクラスとして、皮膚の画像を入力すると、その皮膚の疾患名を出力する識別器が存在する。
【０００３】
このような識別器は、クラスが既知である多数の学習データを用いて学習させることにより作成される。しかし、学習データに含まれているクラスの構成比率が極端に偏っている（クラス毎のサンプル数の不均衡が大きい）と、比率の高いクラス（サンプル数が多いクラス）にバイアスされてしまって、識別の精度が落ちるという問題がある。この問題を解決するために、特許文献１では、一方のクラスに属する学習データの個数が他方のクラスの個数より極端に少ない場合でも、少数クラスの学習データの一部を複製して増やしたり（オーバーサンプリング）、多数クラスの学習データの一部を除いて減らしたり（アンダーサンプリング）して、学習データのバランスを調整することにより、高精度な識別を行う技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１６１２９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、学習データのバランスを調整する尺度として、各クラスの識別結果をまとめた混同行列が用いられており、従来技術においては、混同行列の要素間の値の対称性が高くなるように、クラス間の個数のバランスが調整されている。しかし、適正なバランスは、各クラスに属するデータの個数だけでなく、クラス間の境界付近のデータの分布状況にも大いに影響されるため、オーバーサンプリングやアンダーサンプリングによって、学習データを適正なバランスに調整するのは容易ではない。
【０００６】
本発明は、上記問題を解決するためになされたものであり、識別の精度の向上を図ることができる識別装置、識別方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の識別装置は、
入力データの属するクラスを識別する各クラスの予測値を出力する識別器と、
前記識別器の出力する各クラスの予測値をクラス毎の補正パラメータを用いて補正した補正予測値で識別したクラスに基づいて作成した混同行列の対称性を高める前記補正パラメータを取得する補正部と、
前記識別器の出力する予測値を、前記補正部が取得した補正パラメータを用いて補正して、最終的な識別結果を取得する結果取得部と、
を備える。
【発明の効果】
【０００８】
本発明によれば、識別の精度の向上を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態１に係る識別装置の機能構成を示す図である。
【図２】実施形態１に係る補正パラメータ取得処理のフローチャートである。
【図３】実施形態１に係る識別器学習処理のフローチャートである。
【図４】実施形態１に係る識別処理のフローチャートである。
【図５】混同行列を説明する図である。
【図６】補正パラメータを取得する処理を説明する図である。
【図７】予測値を補正パラメータで補正した値での混同行列を説明する図である。
【図８】補正パラメータを修正する処理を説明する図である。
【図９】予測値を他の補正パラメータで補正した値での混同行列を説明する図である。
【図１０】補正パラメータをさらに修正する処理を説明する図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態に係る識別装置等について、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【００１１】
（実施形態１）
本発明の実施形態１に係る識別装置１００は、サンプルデータの数にクラス間で偏りがあっても、識別器の出力を補正することよって、サンプル数の偏りの影響を軽減して、精度の高い識別を行うことができる。このような識別装置１００について、以下に説明する。
【００１２】
実施形態１に係る識別装置１００は、図１に示すように、制御部１０、記憶部２０、データ入力部３１、出力部３２、通信部３３、操作入力部３４、を備える。
【００１３】
制御部１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等で構成され、記憶部２０に記憶されたプログラムを実行することにより、後述する各部（識別器１１、補正部１２、結果取得部１３）の機能を実現する。
【００１４】
記憶部２０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、制御部１０のＣＰＵが実行するプログラム及び必要なデータを記憶する。
【００１５】
データ入力部３１は、学習用のデータ、試験用のデータ又は識別する（未知の）データを入力するためのデバイスである。制御部１０は、データ入力部３１を介してデータを取得する。データ入力部３１としては、制御部１０がデータを取得できるなら、任意のデバイスを使用することができる。例えば、記憶部２０にデータを記憶させておき、制御部１０が記憶部２０を読み出すことによってデータを取得する場合は、記憶部２０がデータ入力部３１を兼ねることになる。また、制御部１０が通信部３３を介して外部のサーバ等からデータを取得する場合は、通信部３３がデータ入力部３１を兼ねることになる。
【００１６】
出力部３２は、制御部１０が、データ入力部３１から入力したデータを識別した結果等を出力するためのデバイスである。例えば、出力部３２は、液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｏｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイである。この場合、出力部３２は、表示部として機能する。ただし、識別装置１００は、出力部３２としてこのようなディスプレイ（表示部）を備えてもよいし、外部のディスプレイを接続するためのインタフェースとしての出力部３２を備えてもよい。識別装置１００は、インタフェースとしての出力部３２を備える場合は、出力部３２を介して接続した外部のディスプレイに識別結果等を表示する。出力部３２は、出力手段として機能する。
【００１７】
通信部３３は、外部の他の装置（例えば、学習データや試験データのデータベースが格納されているサーバ等）とデータの送受信を行うためのデバイス（ネットワークインタフェース等）である。制御部１０は、通信部３３を介してデータを取得することができる。
【００１８】
操作入力部３４は、識別装置１００に対するユーザの操作入力を受け付けるデバイスであり、例えば、キーボード、マウス、タッチパネル等である。識別装置１００は、操作入力部３４を介して、ユーザからの指示等を受け付ける。操作入力部３４は、操作入力手段として機能する。
【００１９】
次に、制御部１０の機能について説明する。制御部１０は、識別器１１、補正部１２、結果取得部１３、の機能を実現する。
【００２０】
識別器１１は、ロジスティク回帰やＤＮＮ（Ｄｅｅｐ  Ｎｅｕｒａｌ Ｎｅｔｗｏｒｋ）等で構成され、与えられた入力データの属するクラスを識別する各クラスの予測値を出力することにより、該入力データが複数のクラスの何れに属するかを識別する。ここでは、識別器１１が識別するクラスの数はＮ（識別器１１は、Ｎクラス識別器）とする。識別器１１は、入力データが与えられると、各クラスの予測値を０以上１以下の数で出力する。予測値はＮ（識別するクラス数）個出力されるので、各クラスの予測値をまとめて、Ｎ次元のベクトルとして予測値を扱うこともできる。そして、Ｎ個の予測値（ベクトルの各要素）のうち、最大の予測値に対応するクラスが、該入力データの識別結果（予測クラス）になる。なお、ロジスティク回帰やＤＮＮによる識別器は、これらを実現するプログラムを制御部１０が実行することにより実現することができ、この場合、制御部１０は識別器１１としても機能することになる。なお、識別器１１は、各クラスの予測値を０以上１以下の数で出力するため、識別器１１としてＳＶＭを直接用いることはできないが、ＳＶＭの出力をシグモイド関数等で０以上１以下の数に変換するようにすれば、ＳＶＭを用いた識別器１１を構成することも可能である。
【００２１】
補正部１２は、識別器１１が出力する各クラスの予測値を、混同行列の対称性を高めるように補正する補正パラメータを取得する。なお、混同行列とは、正解のわかっている入力データ（ここでは試験データと言う）を識別器１１に入力させた時の、クラス識別の結果をまとめた表のことである。識別器１１が識別したクラス（予測クラス）を横方向に、正解クラスを縦方向に取った時に、それぞれの位置に対応するサンプル数が混同行列の要素となる。また、混同行列の対称性が高いとは、入力データの各クラスのサンプル数が均等になるように入力した場合に、列毎の合計値の偏りが少ないことを意味する。
【００２２】
より詳しく説明すると、補正部１２は、識別器１１が識別する各クラスに対応する（Ｎ個の）補正パラメータを取得し、識別器１１が出力する各クラスの予測値を当該クラスに対応する補正パラメータを用いて補正することにより、補正予測値を取得する。そして、補正予測値で識別したクラスに基づいて混同行列を作成する。そして、混同行列を行方向で（各クラスの正解データ数が１になるように）正規化した時の、列方向の合計（各クラスの予測率合計）ができるだけ１に近づくように当該Ｎ個の（各クラスに対応する）補正パラメータを修正する。そして、最終的に各クラスの予測率合計が最も１に近づいた時の補正パラメータを取得する。
【００２３】
結果取得部１３は、識別器１１が出力する各クラスの予測値を、補正部１２が取得した各クラスの補正パラメータを用いて補正して、最終的な識別結果を取得する。結果取得部１３は、結果取得手段として機能する。
【００２４】
以上、識別装置１００の機能構成について説明した。次に、識別装置１００の補正部１２が補正パラメータを取得する処理（補正パラメータ取得処理）について説明する。この処理は、補正パラメータを取得する際に実行される。また、この処理を実行する前に、正解ラベルが付いている所定の量（ここではＭ個とする）の試験用の入力データ（試験データ）を記憶部２０等に予め用意しておく必要がある。
【００２５】
正解ラベルとは、その正解ラベルが付いたデータがどのクラスに属するものかを示すものである。例えば、疾患画像を入力データとして入力すると疾患名を出力する識別装置１００を用意したいのであれば、「疾患名」を正解ラベルとして各試験データに付けておく必要がある。別の例として、花の画像の画像を入力するとその花の名称を出力する識別装置１００を用意したいのであれば、「花の名称」を正解ラベルとして各試験データに付けておく必要がある。では、識別装置１００の補正部１２が補正パラメータを取得する処理（補正パラメータ取得処理）について、図２を参照して説明する。
【００２６】
まず、制御部１０は、後述する識別器学習処理により、予め正解ラベルが付いている大量の学習用の入力データ（学習データ）で識別器１１を機械学習させる（ステップＳ１０１）。識別器１１が既に学習済みである場合は、ステップＳ１０１はスキップしてよい。
【００２７】
次に、制御部１０は、試験データを識別器１１に入力して識別器１１の出力である予測値を取得する（ステップＳ１０２）。試験データがＭ個用意されているなら、Ｍ個の予測値（それぞれがＮ（クラス数）次元ベクトル）が取得される。
【００２８】
そして、補正部１２は、各クラスの補正パラメータを１に初期化し、カウンタ変数ＣＴを０に初期化する（ステップＳ１０３）。
【００２９】
次に、補正部１２は、ステップＳ１０２で取得した各予測値を、各クラスの補正パラメータで補正して、補正予測値を取得する（ステップＳ１０４）。具体的には、各クラスの予測値を該クラスの補正パラメータでべき乗した値に変換し、それを補正予測値とする。そして、補正予測値から混同行列を作成し（ステップＳ１０５）、混同行列の各行を合計が１になるように正規化する（ステップＳ１０６）。
【００３０】
次に、補正部１２は、正規化して混同行列の各列の合計値を各クラス予測率合計として取得する（ステップＳ１０７）。そして、各クラス予測率合計と１との差分絶対値が最大となるクラスを検索し、検索されたクラスを変数ＭＣに、差分絶対値の最大値（当該クラスのクラス予測率合計と１との差分絶対値）を変数ＭＤにセットし、カウンタ変数ＣＴをインクリメントする（ステップＳ１０８）。
【００３１】
そして、補正部１２は、変数ＭＤ（差分絶対値の最大値）が基準値ＳＤ（例えば０．０２）以下か否かを判定する（ステップＳ１０９）。変数ＭＤが基準値ＳＤ以下なら（ステップＳ１０９；Ｙｅｓ）、現在の補正パラメータで混同行列の対称性は十分上がっていると考えられるので、補正部１２は現在の補正パラメータを後述の識別処理で用いる補正パラメータとして確定させ（ステップＳ１１４）、補正パラメータ取得処理を終了する。ステップＳ１１４は、補正パラメータ取得ステップとも呼ばれる。
【００３２】
変数ＭＤが基準値ＳＤより大きければ（ステップＳ１０９；Ｎｏ）、補正部１２は、カウンタ変数ＣＴが最大検索回数ＬＩＭＩＴ（例えば１００）以上か否かを判定する（ステップＳ１１０）。カウンタ変数ＣＴが最大検索回数ＬＩＭＩＴ以上なら（ステップＳ１１０；Ｙｅｓ）、補正部１２は現在の補正パラメータを後述の識別処理で用いる補正パラメータとして確定させ（ステップＳ１１４）、補正パラメータ取得処理を終了する。この補正パラメータ取得処理では、変数ＭＤの値が基準値ＳＤ以下にならずに振動してしまう場合等があるため、ある程度の回数（ＬＩＭＩＴの回数）検索を繰り返しても変数ＭＤが基準値ＳＤ以下にならなければ、補正パラメータ取得処理を終了させるためにステップＳ１１０での判定を行っている。
【００３３】
カウンタ変数ＣＴが最大検索回数ＬＩＭＩＴ未満なら（ステップＳ１１０；Ｎｏ）、補正部１２は、変数ＭＣのクラスのクラス予測率合計が１より大きいか否かを判定する（ステップＳ１１１）。変数ＭＣのクラスのクラス予測率合計が１より大きければ（ステップＳ１１１；Ｙｅｓ）、変数ＭＣのクラスの補正パラメータを増やし（ステップＳ１１２）、ステップＳ１０４に戻る。補正パラメータを増やす量は、例えば０．０５のような定数としてもよいし、変数ＭＤ（差分絶対値の最大値）の値に応じて変化させてもよい（ＭＤの値が大きければ補正パラメータを増やす量も大きくし、ＭＤの値が小さければ補正パラメータを増やす量も小さくする）。ただし、この値が大きいと、変数ＭＤの値が振動したり発散したりし易くなるため、計算時間がかかってもよければ、基本的に増やす量はできるだけ小さい値にする方がよい。
【００３４】
変数ＭＣのクラスのクラス予測率合計が１以下なら（ステップＳ１１１；Ｎｏ）、変数ＭＣのクラスの補正パラメータを減らし（ステップＳ１１３）、ステップＳ１０４に戻る。ステップＳ１１２と同様、補正パラメータを減らす量は、例えば０．０５のような定数としてもよいし、変数ＭＤ（差分絶対値の最大値）の値に応じて変化させてもよい（ＭＤの値が大きければ補正パラメータを減らす量も大きくし、ＭＤの値が小さければ補正パラメータを減らす量も小さくする）。ただし、この値が大きいと、変数ＭＤの値が振動したり発散したりし易くなるため、計算時間がかかってもよければ、基本的に減らす量はできるだけ小さい値にする方がよい。
【００３５】
以上の補正パラメータ取得処理を説明した。次に、上記ステップＳ１０１で行われる識別器学習処理について、図３を参照して説明する。
【００３６】
まず、制御部１０は、データ入力部３１を介して正解ラベルが付いている学習データを取得する（ステップＳ２０１）。そして、制御部１０は、学習データを識別器１１に入力し、学習データに付いている正解ラベルに基づいて、識別器１１を学習させる（ステップＳ２０２）。
【００３７】
そして、制御部１０は、学習を終了するか否かを判定する（ステップＳ２０３）。例えば、学習データを予め決められた個数（例えばＭ個）学習させたら学習を終了する。学習させていない学習データが残っている場合等、学習を終了しないなら（ステップＳ２０３；Ｎｏ）、ステップＳ２０１に戻って、次の学習データを取得して識別器１１を学習させる。学習を終了するなら（ステップＳ２０３；Ｙｅｓ）、識別器学習処理を終了する。
【００３８】
以上、説明した補正パラメータ取得処理（図２）が終了した時点での補正パラメータを、補正部１２は取得し、識別装置１００は、この補正パラメータで識別器１１の出力（予測値）を補正して、入力データの識別を行う。では、識別装置１００の識別処理について、図４を参照して説明する。
【００３９】
まず、制御部１０は、データ入力部３１を介して未知データ（識別するデータ）を取得する（ステップＳ３０１）。そして、制御部１０は、当該未知データを識別器１１に入力し、識別器１１が出力した各クラスの予測値を取得する（ステップＳ３０２）。
【００４０】
次に、結果取得部１３は、各クラスの予測値を、補正部１２が補正パラメータ取得処理（図２）で取得した補正パラメータで補正する（ステップＳ３０３）。具体的には、各クラスの予測値を該クラスの補正パラメータでべき乗した値に変換し、それを補正予測値とする。そして、結果取得部１３は、補正予測値が最大となるクラスを識別結果として取得し、出力部３２を介して出力する（ステップＳ３０４）。そして識別処理を終了する。ステップＳ３０４は、結果取得ステップとも呼ばれる。
【００４１】
以上の識別処理により、未知データが識別される。そして、この識別は、識別器１１の出力した予測値を補正した補正予測値に基づいて行われているため、学習データのクラス毎の数が不均衡だったとしても、その影響を極力排除して、高精度な識別を行うことができる。
【００４２】
次に、識別装置１００による補正パラメータ取得処理（図２）について、具体例で説明する。ここでは、識別器１１は、「Ａ」、「Ｂ」、「Ｃ」の３つのクラスを識別する３クラス識別器であり、図２のステップＳ１０１で学習済みであるとする。また、図５の左に示すような正解ラベルが付けられた２４個の試験データが用意されているものとする。そして、２４個の試験データを図２のステップＳ１０２で識別器１１に入力して得られた出力値（予測値）が、正解ラベルの右に記載されている。図２のステップＳ１０３で、各クラスの補正パラメータは３つのクラスとも１．０に初期化されるので、これを３次元ベクトル（１．０，１．０，１．０）で表すことにする。また、カウンタ変数ＣＴ＝０となる。
【００４３】
例えば一番上の試験データの場合、正解ラベルは「Ｃ」であり、識別器１１で得られた予測値は（０．７，０．２，０．６８）である。この場合、予測値のベクトルの要素の最大値が０．７であり、０．７は最初の要素（Ａに対応）なので、識別器１１による識別結果は「Ａ」となる。また、補正パラメータの初期値は上述したように、（１．０，１．０，１．０）であり、図２のステップＳ１０４で、予測値をこの補正パラメータで補正すると、（０．７＾１．０，０．２＾１．０，０．６８＾１．０）で、元の予測値と同じ（０．７，０．２，０．６８）が補正予測値として得られ、この補正予測値による識別結果も、予測値による識別結果と同じ「Ａ」となる。
【００４４】
図２のステップＳ１０５で、２４個の試験データ全てについて、正解ラベルと補正予測値による識別結果との関係を表にまとめたものが、図５の右に記載されている混同行列である。この混同行列を見ると、正解ラベルが「Ａ」の試験データのうち、識別結果が「Ａ」となったものが１０個、識別結果が「Ｂ」となったものが２個、識別結果が「Ｃ」となったものが０個あることがわかる。同様に、正解ラベルが「Ｂ」の試験データのうち、識別結果が「Ａ」となったものが３個、識別結果が「Ｂ」となったものが５個、識別結果が「Ｃ」となったものが１個あることがわかる。さらに、正解ラベルが「Ｃ」の試験データのうち、識別結果が「Ａ」となったものが２個、識別結果が「Ｂ」となったものが０個、識別結果が「Ｃ」となったものが１個あることがわかる。
【００４５】
次に、この混同行列を正規化して、補正パラメータを取得する処理について、図６を参照して説明する。まず、図２のステップＳ１０６で、混同行列を正規化するために、まず、図６の上にあるように各正解ラベルの付いた試験データの個数の合計を求める。そして、図６の上から２番目の表にあるように、混合行列の各行について、要素を合計の値で割ることにより、合計を１に正規化する。
【００４６】
そして、図２のステップＳ１０７で、この正規化された混同行列の各列について縦方向に要素の合計値（各クラスの予測率合計）を計算すると、図６に示すように、クラス「Ａ」の予測率合計は１．８３３、クラス「Ｂ」の予測率合計は０．７２２、クラス「Ｃ」の予測率合計は０．４４４となり、これらの値にはかなりばらつきがあることがわかる。この例では、識別結果が「Ａ」となる割合がかなり高く、混同行列の対称性が低くなっている。また平均正解率も０．５７４とかなり低い。なお、ここで、平均正解率とは、正解がクラス「Ｘ」である試験データのうち、識別結果（予測クラス）が「Ｘ」になったものの割合を全てのクラスについて平均した値である。図６においては、上から２番目の表の対角線上に存在している値を平均して、（０．８３３＋０．５５６＋０．３３３）÷３＝０．５７４が得られ、この表の右下にこの平均正解率の数値が記載されている。
【００４７】
混同行列の対称性を高くするには、各列の縦方向の合計値が大きいクラスの予測値を小さい値に補正するか、又は、この合計値が小さいクラスの予測値を大きい値に補正すればよいと考えられる。上述したように識別器１１が出力する予測値は０以上１以下の値であり、この値は１より大きな数でべき乗すると（０以上１以下の範囲内で）元の値より小さな値になり、１より小さな値でべき乗すると（０以上１以下の範囲内で）元の値より大きな値になる。したがって、この性質を利用すると、混同行列の対称性を高くするには、各列の縦方向の合計値が大きいクラスの予測値を１より大きな数でべき乗するか、又は、この合計値が小さいクラスの予測値を１より小さな数でべき乗すればよいことになる。
【００４８】
図６の例では、クラス「Ａ」の予測率合計は１．８３３で最も大きく、クラス「Ｃ」の予測率合計は０．４４４で最も小さい。そこで、クラス「Ａ」の予測値を小さくするために１より大きな数でべき乗し、クラス「Ｃ」の予測値を大きくするために１より小さな数でべき乗することが考えられる。ただし、同時に複数のパラメータを変化させると、各クラスの予測値が急激に変化して、識別結果が予想外に変化してしまう可能性がある。そこで、本実施形態１では、一度に１つのパラメータだけを変化させることとしている。この例では、図２のステップＳ１０８で、基準値１との差分絶対値が最大となるクラスとして、クラス「Ａ」が検索されて、ＭＣ＝「Ａ」となり、差分絶対値の最大値ＭＤ＝｜１．８３３−１｜＝０．８３３となる。そして、カウンタ変数ＣＴはインクリメントされて１となる。
【００４９】
次に図２のステップＳ１０９では、変数ＭＤ（ここでは０．８３３）が基準値ＳＤ（例えば０．０２）以下か否かが判定されて判定はＮｏとなり、ステップＳ１１０に進む。ステップＳ１１０でカウンタ変数ＣＴ（ここでは１）が最大検索回数ＬＩＭＩＴ（例えば１００）以上か否かが判定されて判定はＮｏとなり、ステップＳ１１１に進む。ステップＳ１１１では、クラス「Ａ」のクラス予測率合計である１．８３３が１より大きいか否かが判定されて判定はＹｅｓとなり、ステップＳ１１３でクラス「Ａ」の補正パラメータが増やされる。ここでは増やす量は０．０５であるとする。すると、クラス「Ａ」の補正パラメータは１．０５となり、クラス「Ｂ」及びクラス「Ｃ」の補正パラメータは１のままなので、補正パラメータをベクトルで表すと（１．０５，１．０，１．０）となる。
【００５０】
図示しないが、ステップＳ１１３からステップＳ１０４に戻って、補正パラメータ（１．０５，１．０，１．０）で図５にある識別器の予測値を補正しても、識別結果に変化は生じないので、また同じ混同行列が得られ、ステップＳ１１３まで同じように進み、ステップＳ１１３でクラスＡの補正パラメータは１．１となる。そして、またステップＳ１０４に戻って、補正パラメータ（１．１，１．０，１．０）で図５にある識別器の予測値を補正して補正予測値を取得すると、図７に示すように一部の識別結果が変化する。そして、ステップＳ１０５で混同行列を作成すると、図７の右にあるような混同行列が作成される。
【００５１】
そして、ステップＳ１０６で正規化すると、図８の上から２番目の表にあるような正規化した混同行列が得られる。そして、ステップＳ１０７で各クラスの予測率合計を計算すると、クラス「Ａ」の予測率合計は１．１６７、クラス「Ｂ」の予測率合計は１．０５６、クラス「Ｃ」の予測率合計は０．７７８となり、前回の混同行列よりも対称性が高くなったことがわかる。平均正解率も０．７９６と、前回よりも上昇している。
【００５２】
そして、今回の場合は、ステップＳ１０８で、基準値１との差分絶対値が最大となるクラスとして、クラス「Ｃ」が検索されて、ＭＣ＝「Ｃ」となり、差分絶対値の最大値ＭＤ＝｜０．７７８−１｜＝０．２２２となる。そして、ステップＳ１１１で、クラス「Ｃ」のクラス予測率合計である０．７７８が１より大きいか否かが判定されて判定はＮｏとなり、ステップＳ１１２でクラス「Ｃ」の補正パラメータが減らされる。ここでは減らす量は０．０５であるとする。すると、クラス「Ｃ」の補正パラメータは０．９５となり、補正パラメータをベクトルで表すと（１．１，１．０，０．９５）となる。
【００５３】
そして、またステップＳ１０４に戻って、補正パラメータ（１．１，１．０，０．９５）で図５にある識別器の予測値を補正して補正予測値を取得すると、図９に示すように一部の識別結果が変化する。そして、ステップＳ１０５で混同行列を作成すると、図９の右にあるような混同行列が作成される。
【００５４】
そして、ステップＳ１０６で正規化すると、図１０の上から２番目の表にあるような正規化した混同行列が得られる。そして、ステップＳ１０７で各クラスの予測率合計を計算すると、クラス「Ａ」の予測率合計は０．８３３、クラス「Ｂ」の予測率合計は１．０５６、クラス「Ｃ」の予測率合計は１．１１１となり、前回の混同行列よりも対称性が高くなったことがわかる。平均正解率も０．９０７と、前回よりもさらに上昇している。
【００５５】
そして、今回の場合は、ステップＳ１０８で、基準値１との差分絶対値が最大となるクラスとして、クラス「Ａ」が検索されて、ＭＣ＝「Ａ」となり、差分絶対値の最大値ＭＤ＝｜０．８３３−１｜＝０．１６６となる。そして、ステップＳ１１１で、クラス「Ａ」のクラス予測率合計である０．８３３が１より大きいか否かが判定されて判定はＮｏとなり、ステップＳ１１２でクラス「Ａ」の補正パラメータが減らされる。ここでは減らす量は０．０５であるとする。すると、クラス「Ａ」の補正パラメータは１．０５となり、補正パラメータをベクトルで表すと（１．０５，１．０，０．９５）となる。このようにして、クラス予測率合計と１との差分絶対値の最大値ＭＤが基準値ＳＤ以下になるか、カウンタ変数ＣＴが最大検索回数ＬＩＭＩＴ以上になるまで処理が繰り返され、最終的に補正パラメータが求まることになる。
【００５６】
以上説明した識別処理により、識別装置１００は、混同行列の対称性を高めるように識別器１１の予測値を補正することにより、サンプルデータがクラス間で偏っていても、偏りの影響を軽減して、精度の高い識別を行うことができる。
【００５７】
（変形例１）
実施形態１では、補正部１２は、識別器１１の予測値を補正する際に、予測値を補正パラメータでべき乗する演算を行ったが、補正部１２が予測値を補正する際に用いる演算（補正パラメータによって定まる関数）はこれに限られない。予測値は０以上１以下の値であり、予測値を補正パラメータで補正した後の値（補正予測値）も０以上１以下の値である必要があるという前提があるが、補正パラメータを固定した場合に元の予測値の大小関係が、補正した後も（補正予測値でも）保たれることと、補正パラメータの値の大小に応じて予測値が補正された時の変化方向及び変化度合いが定まることとが満たされるなら、補正部１２は、他の関数を用いて識別器１１の予測値を補正してもよい。
【００５８】
つまり、補正部１２は、入力値（予測値）として０以上１以下の値を０以上１以下の値の出力値（補正予測値）に変換する単調非減少関数（広義の単調増加関数）であって、当該単調非減少関数（広義の単調増加関数）は補正パラメータによって定まる関数であって、入力値（予測値）を固定した場合に補正パラメータによる出力値（補正予測値）の変化も単調非減少又は単調非増加となるような関数であれば、任意の関数を用いて予測値を補正することが可能である。例えば、入力値を補正パラメータによってべき乗する関数は、これらの条件を満たす関数である。
【００５９】
（変形例２）
実施形態１では、補正パラメータ取得処理（図２）において、差分絶対値の最大値ＭＤが基準値ＳＤ以下にならなかったら、カウンタ変数ＣＴが最大検索回数ＬＩＭＩＴ内以上になった時の補正パラメータを最終的な補正パラメータとしている。しかし、これに限られない。例えば、ステップＳ１０７とステップＳ１０８の間で、差分絶対値の最大値ＭＤの値がそれまでで最も小さくなった時の補正パラメータを保存しておき、ステップＳ１０９でカウンタ変数ＣＴが最大検索回数ＬＩＭＩＴ以上になった場合には、ステップＳ１１４でその保存した補正パラメータを最終的な補正パラメータとして確定させるようにしてもよい。このようにすることで、差分絶対値の最大値ＭＤの値が振動したり発散したりしてしまうような場合でも、補正部１２は、混同行列の対称性が最も高くなった時の補正パラメータを取得することができる。
【００６０】
（変形例３）
実施形態１では、補正パラメータ取得処理（図２）において、各クラスの識別正解率の高低によらずに、混同行列の対称性のみを高くする処理を行っているが、識別正解率の高さを考慮してもよい。例えば、ステップＳ１０５で混同行列を正規化した時に、平均正解率（上述したように、正解がクラス「Ｘ」である試験データのうち、識別結果（予測クラス）が「Ｘ」になったものの割合を全てのクラスについて平均した値であり、図６、図８及び図１０の２番目の混同行列の表の右下の数値）も求めておき、この値がそれまでで最大となる時の補正パラメータを保存する。そして、ステップＳ１０９でカウンタ変数ＣＴが最大検索回数ＬＩＭＩＴ以上になった場合には、ステップＳ１１４でその保存した補正パラメータを最終的な補正パラメータとして確定させるようにしてもよい。このようにすることで、差分絶対値の最大値ＭＤの値が振動したり発散したりしてしまうような場合でも、補正部１２は、平均正解率が最も高くなった時の補正パラメータを取得することができる。
【００６１】
（変形例４）
識別器１１に与えられる入力データ（学習データ及び試験データ）によっては、補正パラメータ取得処理（図２）において、混同行列の対称性の高さと平均正解率の高さとがトレードオフの関係になることがある。そのため、補正パラメータ取得処理（図２）において、補正パラメータを１つに決定してしまうのではなく、ステップＳ１１４において、補正パラメータの候補をいくつかユーザに提示して、ユーザに補正パラメータを選択してもらってもよい。
【００６２】
そのような処理を行うために、制御部１０は、混同行列の対称性が高い（差分絶対値の最大値ＭＤの値が差分基準値（例えば０．１）以下である）時の補正パラメータや、平均正解率が高い（平均正解率が正解率基準値（例えば９０％）以上である）時の補正パラメータを、補正パラメータの候補として記憶部２０に保存しておき、ステップＳ１１４では、これら保存した補正パラメータを用いて作成した混同行列及び平均正解率を、出力部３２を介してユーザに提示する。そして、制御部１０は、ユーザから操作入力部３４を介して補正パラメータを選択してもらい、ユーザが選択した補正パラメータを、補正部１２が取得するようにする。
【００６３】
混同行列の対称性の高さと平均正解率の高さとがトレードオフの関係になる場合であっても、変形例４に係る識別装置１００では、ユーザに補正パラメータの候補の中から採用する補正パラメータを選択してもらうことにより、妥当な補正パラメータを用いて識別を行うことができる。
【００６４】
なお、上述の実施形態及び変形例では、学習データと試験データは別のデータであるものとして説明したが、学習データの全部又は一部を試験データとして用いて上述の識別器学習処理（図３）及び補正パラメータ取得処理（図２）を行ってもよい。
【００６５】
なお、上述の実施形態及び変形例では、識別器１１を実現するプログラムを制御部１０が実行することにより、制御部１０は識別器１１としても機能することとしていたが、これに限られない。識別装置１００は、制御部１０とは別に（例えば、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や、専用のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の）識別器１１の機能を実現するデバイスを備えてもよい。
【００６６】
また、上述の実施形態及び変形例は適宜組み合わせることができる。例えば、変形例２と変形例３とを組み合わせ、混同行列の対称性を平均正解率よりも重要視する処理とする場合には、ステップＳ１０９でカウンタ変数ＣＴが最大検索回数ＬＩＭＩＴ以上になった時に、ステップＳ１１４で、差分絶対値の最大値ＭＤの値がそれまでで最も小さくなった時の補正パラメータを識別処理で用いる補正パラメータとして確定させるが、そのような補正パラメータが複数ある場合（複数の補正パラメータにおいて、差分絶対値の最大値ＭＤの値が最小になる場合）には、それぞれの補正パラメータにおける平均正解率を比較し、平均正解率が最も高くなる補正パラメータを識別処理で用いる補正パラメータとして確定させる処理にすればよい。
【００６７】
なお、識別装置１００の各機能は、通常のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のコンピュータによっても実施することができる。具体的には、上記実施形態では、識別装置１００が行う識別処理のプログラムが、記憶部２０のＲＯＭに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｃ）、メモリカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【００６８】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００６９】
（付記１）
入力データの属するクラスを識別する各クラスの予測値を出力する識別器と、
前記識別器の出力する各クラスの予測値をクラス毎の補正パラメータを用いて補正した補正予測値で識別したクラスに基づいて作成した混同行列の対称性を高める前記補正パラメータを取得する補正部と、
前記識別器の出力する予測値を、前記補正部が取得した補正パラメータを用いて補正して、最終的な識別結果を取得する結果取得部と、
を備える識別装置。
【００７０】
（付記２）
前記補正部は、前記混同行列の各クラスの正解データ数が１になるように前記混同行列を正規化した時の、前記正規化後の混同行列の各クラスの予測率合計が、できるだけ１に近づく前記補正パラメータを取得する、
付記１に記載の識別装置。
【００７１】
（付記３）
前記補正部は、
前記補正パラメータによって定まる単調非減少関数であって、０以上１以下の入力値を０以上１以下の出力値に変換する前記単調非減少関数を用いて前記識別器の出力する予測値を補正して補正予測値を取得し、
前記補正予測値で識別したクラスに基づいて前記混同行列を作成し、
前記作成した前記混同行列の各クラスの正解データ数が１になるように前記混同行列を正規化した時の、前記正規化後の混同行列の各クラスの予測率合計が、できるだけ１に近づく前記補正パラメータを取得する、
付記２に記載の識別装置。
【００７２】
（付記４）
前記単調非減少関数は、前記識別器の出力する予測値を、前記補正パラメータでべき乗する演算を行う関数である、
付記３に記載の識別装置。
【００７３】
（付記５）
前記補正部は、前記各クラスの正解率を平均した平均正解率を取得し、前記混同行列の対称性を高める前記補正パラメータの中で、前記平均正解率が最大となる前記補正パラメータを取得する、
付記１から４のいずれか１つに記載の識別装置。
【００７４】
（付記６）
識別器の出力する各クラスの予測値をクラス毎の補正パラメータを用いて補正した補正予測値で識別したクラスに基づいて作成した混同行列の対称性を高める前記補正パラメータを取得する補正パラメータ取得ステップと、
前記識別器の出力する予測値を、前記補正パラメータ取得ステップで取得した補正パラメータを用いて補正して、最終的な識別結果を取得する結果取得ステップと、
を含む識別方法。
【００７５】
（付記７）
識別器を備える識別装置のコンピュータに、
前記識別器の出力する各クラスの予測値をクラス毎の補正パラメータを用いて補正した補正予測値で識別したクラスに基づいて作成した混同行列の対称性を高める前記補正パラメータを取得する補正パラメータ取得ステップ、及び、
前記識別器の出力する予測値を、前記補正パラメータ取得ステップで取得した補正パラメータを用いて補正して、最終的な識別結果を取得する結果取得ステップ、
を実行させるためのプログラム。
【符号の説明】
【００７６】
１０…制御部、１１…識別器、１２…補正部、１３…結果取得部、２０…記憶部、３１…データ入力部、３２…出力部、３３…通信部、３４…操作入力部、１００…識別装置
【図１】
2020101958.tif 000003
【図２】
2020101958.tif 000004
【図３】
2020101958.tif 000005
【図４】
2020101958.tif 000006
【図５】
2020101958.tif 000007
【図６】
2020101958.tif 000008
【図７】
2020101958.tif 000009
【図８】
2020101958.tif 000010
【図９】
2020101958.tif 000011
【図１０】
2020101958.tif 000012