以下、本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
また、以下の説明では、情報の一例として「xxxデータ」といった表現を用いる場合があるが、情報のデータ構造はどのようなものでもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxデータ」を「xxxテーブル」と言うことができる。さらに、「xxxデータ」を単に「xxx」と言うこともある。そして、以下の説明において、各情報の構成は一例であり、情報を分割して保持したり、結合して保持したりしても良い。
図1は、実施例1に係る画像判定システムの機能構成を示す機能ブロック図である。
本実施例の画像判定システムSは、複数のモバイル端末100、共通サーバ200及び単一のまたは複数の専門サーバ300を有する。モバイル端末100は本実施例の画像判定システムSの複数のユーザ(図示例ではUSER−1〜USER−X)により携帯され、使用される。以下の説明では、USER−Xのモバイル端末100について主に説明する。
モバイル端末100と共通サーバ200とは、互いの通信部160、230により相互に情報の送受信が可能になっている。同様に、共通サーバ200と専門サーバ300とは、互いの通信部230、330により相互に情報の送受信が可能になっている。モバイル端末100と共通サーバ200との間の通信手段に特段の限定はないが、好ましくは、一部が無線通信手段により構成される。また、通信手段はいわゆるLAN(Local Area Network)またはインターネットや移動体通信網に代表されるWAN(Wide Area Network)の少なくとも一方または両方でありうる。
モバイル端末100、共通サーバ200及び専門サーバ300は、いずれも各種情報処理が可能な装置、一例としてコンピュータ等の情報処理装置である。情報処理装置は、少なくとも演算素子、記憶媒体を有する。特に、モバイル端末100は、ユーザが携帯可能なスマートフォン、タブレット端末等が好ましい。
演算素子は、例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)等である。記憶媒体は、例えばHDD(Hard Disk Drive)などの磁気記憶媒体、RAM(Random Access Memory)、ROM(Read Only Memory)、SSD(Solid State Drive)などの半導体記憶媒体等を有する。また、DVD(Digital Versatile Disk)等の光ディスク及び光ディスクドライブの組み合わせも記憶媒体として用いられる。その他、磁気テープメディアなどの公知の記憶媒体も記憶媒体として用いられる。
記憶媒体には、ファームウェアなどのプログラムが格納されている。モバイル端末100、共通サーバ200及び専門サーバ300の動作開始時(例えば電源投入時)にファームウェア等のプログラムをこの記憶媒体から読み出して実行し、これらモバイル端末100等の全体制御を行う。また、記憶媒体には、プログラム以外にも、モバイル端末100等の動作に必要なデータ等が格納されている。
なお、本実施例の共通サーバ200、専門サーバ300は、それぞれ、情報処理装置が通信ネットワークを介して通信可能に構成された、いわゆるクラウドにより構成されてもよい。特に、専門サーバは、自社が用意したサーバに限らず、公開されたネットワークAI(人工知能機能の提供を目的にAPI(アプリケーションプログラムインターフェース)を公開して他者に利活用を許可している)サーバを含む。
モバイル端末100は、制御部110、記憶部120、撮像部130、入力部140、表示部150及び通信部160を有する。
制御部110は主に演算素子から構成され、モバイル端末100全体の制御を行う。また、記憶部120に格納された図略のファームウェアがモバイル端末100の起動時に実行されることで、各種機能部としての機能を実行する。このような機能部として、本実施例の制御部110は、モバイル用画像判定部111、撮像制御部112、データ送受信部113及びデータ収集部114を有する。
モバイル用画像判定部111は、後述する記憶部120に格納されたモバイル用軽量学習モデル121及びモバイル用軽量MC学習モデル122に基づいて、人工知能(含む機械学習、深層学習)手法に基づいて、撮像部130により撮像された被写体の判定を行う。モバイル用画像判定部111により行われる被写体判定手法については周知のものであるので、ここでの詳細な説明は省略する。
撮像制御部112は、撮像部130の制御を行う。データ送受信部113は、通信部160を介したデータの送受信を制御する。
データ収集部114は、撮像部130が出力する画像を共通サーバ200に送信する。また、データ収集部114は、入力部140が受け入れた被写体の分類候補または、その修正あるいは追加入力情報を画像情報にラベルとして付加し、記憶部120にモバイル用MC教師データセット123として格納・蓄積する。
記憶部120は主に記憶媒体から構成され、上述したファームウェア等のプログラム以外に、モバイル端末100の動作に必要なデータ等が一時的または定常的に格納されている。
記憶部120には、モバイル用軽量学習モデル121、モバイル用軽量MC学習モデル122及びモバイル用MC教師データセット123が格納されている。これらモバイル用軽量学習モデル121等は、人工知能手法による被写体の判定に用いられて好適なデータ構造を有する。データ構造は周知のものであるので、ここでの説明は省略する。
撮像部130は、CMOS等の撮像素子によりモバイル端末100の周囲にある被写体を撮像し、被写体を含む画像として出力する。入力部140はタッチパネル等を有し、ユーザからの各種操作入力を受け入れる。表示部150は液晶ディスプレイ等を有し、制御部110からの指令に基づいて表示面に表示画面を表示する。通信部160は共通サーバ200及び専門サーバ300との間での各種データの送受信を制御する。
次に、共通サーバ200は、共通制御部210、共通記憶部220及び通信部230を有する。
共通制御部210は主に演算素子から構成され、共通サーバ200全体の制御を行う。また、共通記憶部220に格納された図略のファームウェアが共通サーバ200の起動時に実行されることで、各種機能部としての機能を実行する。このような機能部として、本実施例の共通制御部210は、共通画像判定部211、共通学習モデル生成部212、共通データ送受信部213及び共通データ収集部214を有する。
共通画像判定部211は、モバイル端末100から送信された画像に基づいて被写体の分類を判定する。共通学習モデル生成部212は、共通記憶部220に格納されている共通教師データセット222を用いて共通学習モデル221を生成し、さらに、共通学習モデル221を軽量化してモバイル用軽量学習モデル121を生成し、このモバイル用軽量学習モデル121をモバイル端末100に送信する。
また、共通学習モデル生成部212は、共通記憶部220に格納されたUSER−X用のMC教師データセット224(X)単独または、共通教師データセット222と合体したデータセットを用いてMC学習モデル223(X)を生成し、さらに、MC学習モデル223(X)を軽量化してモバイル用軽量MC学習モデル122(X)を生成し、このモバイル用軽量MC学習モデル122(X)をモバイル端末100に送信する。
これら共通学習モデル221等の生成手法については周知のものであるので、共通学習モデル221を軽量化してモバイル用軽量学習モデル121を生成する手法(詳細は後述)以外の説明は省略する。
共通データ送受信部213は、通信部230を介したデータの送受信を制御する。
共通データ収集部214は、モバイル端末100から送信された画像と、入力部140が受け入れた被写体の分類候補を画像情報にラベルとして付加し、共通教師データセット222に追加・蓄積する。また、共通データ収集部214は、USER−Xが表示部150に表示された被写体の分類候補を受け入れなかった場合は、USER−Xの修正あるいは追加入力情報を画像情報にラベルとして付加し、モバイル端末100の記憶部120にモバイル用MC教師データセット123に追加・蓄積する。その際、蓄積されたデータ件数が、N件を超えた場合、モバイル端末100は、共通サーバ200にモバイル用MC教師データセット123をまとめて送信し、MC教師データセット224(X)として追加・蓄積する。
共通記憶部220は主に記憶媒体から構成され、上述したファームウェア等のプログラム以外に、共通サーバ200の動作に必要なデータ等が一時的または定常的に格納されている。
共通記憶部220には、共通学習モデル221、共通教師データセット222、MC学習モデル223及びMC教師データセット224が格納されている。これら共通学習モデル221等は、人工知能手法による被写体の判定に用いられて好適なデータ構造を有する。データ構造は周知のものであるので、ここでの説明は省略する。
通信部230はモバイル端末100及び専門サーバ300との間での各種データの送受信を制御する。
次に、専門サーバ300は、専門制御部310、専門記憶部320及び通信部330を有する。
専門制御部310は主に演算素子から構成され、専門サーバ300全体の制御を行う。また、専門記憶部320に格納された図略のファームウェアが専門サーバ300の起動時に実行されることで、各種機能部としての機能を実行する。このような機能部として、本実施例の専門制御部310は、専門画像判定部311、専門学習モデル生成部312、専門データ送受信部313及び専門データ収集部314を有する。
専門画像判定部311は、モバイル端末100のモバイル用画像判定部111による判定や、共通サーバ200の共通画像判定部211による判定より、詳細な専門的判定が求められた場合、モバイル端末100から送信された画像に基づいて専門記憶部320に格納された専門学習モデル321を用いて被写体を判定する。
専門学習モデル生成部312は、専門記憶部320に格納された専門教師データセット322を用いて専門学習モデル321を生成する。専門学習モデル321等の生成手法については周知のものであるので、ここでの説明は省略する。
専門データ送受信部313は、通信部330を介したデータの送受信を制御する。
専門データ収集部314は、モバイル端末100から送信された被写体の分類の修正または追加入力を用いて専門教師データセット322に追加・蓄積する。
通信部330はモバイル端末100及び共通サーバ200との間での各種データの送受信を制御する。
なお、図1に示す各機能実行部及びデータの詳細については後述する。
次に、図2〜図7Dを参照して、本実施例の画像判定システムSによる画像判定動作について説明する。まず、図2は、実施例1に係る画像判定システムSの初期学習モデルとモバイル用軽量MC学習モデルの生成処理の一例を示すフローチャートである。
複数のユーザが、初期学習のためにモバイル端末100の撮像部130を用いて学習モデル構築用の被写体を撮像して画像を出力し、各ユーザに分類カテゴリ情報を入力させてラベルとし、モバイル端末100のデータ送受信部113は、撮像部130から出力された画像に当該ラベルを付加して共通サーバ200に送信する。共通サーバ200の共通データ収集部214は、モバイル端末100から送信された画像とラベルのセットを収集し、共通教師データセット222として追加、蓄積する(ステップS200)。生成された共通教師データセット222は共通記憶部220に格納される。
モバイル端末によるデータ収集で十分なデータが集まらない場合または、全くデータの収集ができない場合は、別の手段でデータを収集する。例えば、システム開発者が独自に人海戦術で学習用データを撮影して集めたり、動画像から切り出したり、インターネット上に複数存在している画像コンテンツをボットなどの手段で機械的に収集し、アノテーションツール等を駆使して教師用の画像の切り出しやラベルづけを行い、共通教師データセット222として追加、蓄積する(ステップS200)。
共通サーバ200の共通学習モデル生成部212は、共通教師データセット222を用いて共通学習モデル221を生成する(ステップS201)。生成された共通学習モデル221も共通記憶部220に格納される。
次いで、共通学習モデル生成部212は、生成した共通学習モデル221を軽量化してモバイル用軽量学習モデル121を生成する(ステップS202)。生成したモバイル用軽量学習モデル121は共通データ送受信部213によりモバイル端末100に送信され、モバイル端末100のデータ送受信部113はモバイル用軽量学習モデル121を記憶部120に格納する。
学習モデルの軽量化の手法としては、蒸留(Distillation)、枝刈り(Pruning)、量子化(Quantize)などが知られている。蒸留とは、深く、何層にも広がったニューラルネットワークで十分なデータを使って学習したモデルを教師モデルとして、その出力(最終/中間)結果を正解データとして生徒モデルを学習させてより浅いノード数の少ない計量モデルでも高い精度が得られるようにしたものである。また、枝刈りとは、ニューラルネットの関係の薄い部分を0にしてネットを断ち切ることで階層を浅く/希釈することで、必要な計算量、メモリ量の節約をするものである。量子化とは、学習済みネットワークの浮動小数型の重みを、±1のどちらかに寄せて計算が簡単にできるようにしたものである。
このような既知の軽量化手法により共通学習モデル221を軽量化してモバイル用軽量学習モデル121を生成し、このモバイル用軽量学習モデル121を用いてモバイル端末100において被写体の判定を行うことで、処理能力やメモリに制限のあるモバイル端末100によっても被写体の判定処理を行うことができる。
次に、ステップS200で収集した教師データセットのラベルを分類カテゴリ別に整理し、カテゴリに階層構造を見いだせる場合であって、標準的な共通カテゴリより詳細なサブカテゴリに分類されるような教師データセットの場合は、共通教師データセットから削除し、専門サーバ300の専門データ収集部314に送って、専門教師データセット322に追加・蓄積する(ステップS203)。生成した専門教師データセット322は専門記憶部320に格納される。
専門サーバ300の専門学習モデル生成部312は、専門教師データセット322に基づいて専門学習モデル321を生成する(ステップS204)。生成した専門学習モデル321も専門記憶部320に格納される。
一方、USER−Xが、表示部150に表示された被写体の分類候補を受け入れなかった場合は、USER−Xの修正あるいは追加入力情報を画像情報にラベルとして付加し、モバイル端末100の記憶部120のモバイル用MC教師データセット123に追加・蓄積する(ステップS205)。その際、蓄積されたデータ件数が、N(Nは自然数)件を超えた場合(ステップS206においてYES)、モバイル端末100は、共通サーバ200にモバイル用MC教師データセット123をまとめて送信し、MC教師データセット
224(X)として追加・蓄積する(ステップS207)。生成したMC教師データセット224は共通記憶部220に格納される。
共通サーバ200の共通学習モデル生成部212は、USER−X用のMC教師データセット224(X)単独または、共通教師データセット222と合体したデータセットを用いてMC学習モデル223(X)を生成するとともに、このMC学習モデル223(X)を軽量化してモバイル用軽量MC学習モデル122を生成し、このモバイル用軽量MC学習モデル122をUSER−Xのモバイル端末100に送信する(ステップS208)。ステップS108の詳細については図3及び図4を参照して後に詳述する。
以降、モバイル端末100のモバイル用画像判定部111は、モバイル用軽量学習モデル121とモバイル用軽量MC学習モデル122とを用いて被写体の判定を行う(ステップS209)。
従って、被写体の詳細な分類の判定を必要とするユーザについては、MCをしたモバイル用軽量MC学習モデル122も用いて被写体の判定を行うことにより、ユーザ毎にカスタマイズした判定処理を行うことができる。
図3は、実施例1に係る画像判定システムSの軽量MC学習モデルの生成処理の一例を示すフローチャートである。図3に示すフローチャートは、図2に示すフローチャートのステップS208の詳細を示すものである。
まず、共通学習モデル生成部212は、MC教師データセット224を訓練データに用いてMC学習モデル223を生成する(ステップS300)。
次に、共通学習モデル生成部212は、MC学習モデル223と共通学習モデル221とのアンサンブル学習を行う(ステップS301)。ここで、アンサンブル学習とは、複数の学習モデルを組み合わせて(多数決などの方法により)最終的な答えを導く方法である。
そして、共通学習モデル生成部212は、アンサンブル学習により得られた学習モデルを元に、学習モデルの軽量化手法によりモバイル用軽量MC学習モデル122を生成する(ステップS302)。
なお、図3に示すフローチャートにおいて、学習モデルの軽量化手法によりモバイル用軽量MC学習モデル122を生成した後、モバイル端末100においてモバイル用軽量学習モデル121とアンサンブル学習を行うことで最終的にモバイル用軽量MC学習モデル122を生成することも可能である。
図4は、実施例1に係る画像判定システムSの軽量MC学習モデルの生成処理の他の例を示すフローチャートである。図4に示すフローチャートも、図2に示すフローチャートのステップS208の詳細を示すものである。
まず、共通学習モデル生成部212は、MC教師データセット224と共通教師データセット222とを用いてMC学習モデル223を生成する(ステップS400)。
MC教師データセットが共通教師データセットに比べ極端に少ない(例えば、1/100)場合は、MC教師データセットのデータを水増し(Augmentation)する(ステップS401)。
そして、共通学習モデル生成部212は、MC学習モデル223を元に、学習モデルの軽量化手法によりモバイル用軽量MC学習モデル122を生成する(ステップS402)。
次に、図5A及び図5Bは、実施例1に係る画像判定システムSの逐次学習プロセス処理の一例を示すフローチャートである。図5A及び図5Bに示すフローチャートは、図2に示す初期学習モデルの生成処理が行われた後に実行される。
まず、モバイル用画像判定部111は、モバイル用軽量学習モデル121を用いて、ユーザが撮像して得られた画像に対して被写体の判定処理を行う(ステップS500)。判定処理結果は、画像に写っている被写体の分類(例えば「犬」「猫」)が、その確からしさ(「確度」)とともに得られる。
そして、この確度が上位n位(nは自然数)の判定結果について、それぞれの確度を合計したものがx%(0≦x≦100であり、例えばx=80)以上であるか否かが判定される(ステップS501)。そして、判定が肯定されたらプログラムはステップS402に移行し、モバイル端末100の表示部150に上位n位の候補である被写体の分類を確度とともに表示する。一方、判定が否定されたらプログラムはステップS505に移行する。
ステップS502に次いで、モバイル用画像判定部111は、モバイル端末100の表示部150に表示された候補のうち、最も確度が高い=トップカテゴリの分類の確度がz%(0≦z≦100であり、例えばz=50)であって、しかも、この分類をさらに細分化した細分類=サブカテゴリを持つか否かが判定される(ステップS503)。ここに、サブカテゴリ=細分類は、例えば分類が「犬」であれば「柴犬」「チワワ」など、分類「犬」に属する犬種である。そして、判定が肯定されたらプログラムはステップS511に移行し、判定が否定されたらプログラムはステップS504に移行する。
すなわち、モバイル用画像判定部111は入力部140を介したユーザの分類指定入力を待ち、この分類指定入力がされたら、ユーザの分類指定入力がステップS502で表示された候補の中にあったか否かが判定される(ステップS504)。そして、判定が肯定されたらプログラムはステップS510に移行し、判定が否定されたらプログラムはステップS505に移行する。
一方、ステップS505では、モバイル端末100のデータ送受信部113が、ユーザが撮像して得られた画像を共通サーバ200に送信する。共通サーバ200の共通制御部210は、共通学習モデル221を用いて画像の判定を行い、その結果をモバイル端末100に送信する(ステップS506)。次いで、モバイル用画像判定部111は、ステップS406における画像判定の結果をもってしても確度が上がらない場合を想定して、ステップS501における判定基準であるxをy(例えば5%)だけ減算する(ステップS507)。
そして、モバイル用画像判定部111は、上位n位以内の判定結果の確度の合計であるxがa%(0≦a≦100であり、例えばa=50)を下回ったか否かが判定される(ステップS508)。そして、判定が肯定されたらプログラムはステップS509に移行し、判定が否定されたらプログラムはステップS501に移行する。
ステップS509では、モバイル用画像判定部111が、ユーザに対して画像に対する正解となる分類の入力を促す。そして、ステップS410では、モバイル端末100のデータ収集部114が、ユーザの選択をモバイル用MC教師データセット123に一時的に格納後、一定数蓄積されたら、MC教師データセット224として共通サーバ200に送信する。
図5Bにおいて、専門サーバ300の専門画像判定部311は、専門学習モデル321を用いて画像判定を行い、その結果をモバイル端末100に送信する(ステップS511)。次いで、上位n位の判定結果について、それぞれの確度を合計したものがx%以上であるか否かが判定される(ステップS512)。そして、判定が肯定されたらプログラムはステップS513に移行し、モバイル端末100の表示部150に上位n位の候補である被写体の分類を確度とともに表示する。一方、判定が否定されたらプログラムはステップS515に移行する。
ステップS513では、モバイル用画像判定部111は入力部140を介したユーザの分類指定入力を待ち、この分類指定入力がされたら、ユーザの分類指定入力がステップS502で表示された候補の中にあったか否かが判定される。そして、判定が肯定されたらプログラムはステップS516に移行し、判定が否定されたらプログラムはステップS515に移行する。ステップS515では、モバイル端末100のモバイル用画像判定部111は、ステップS506で得られた共通サーバ200の画像判定結果を表示する。
そして、ステップS516では、モバイル端末100のデータ収集部114が、ユーザの選択入力をMC教師データセット224として共通サーバ200に送信する。
図6は、実施例1に係る画像判定システムSのMC学習モデルの生成処理を説明するための図、図7A〜図7Cは、実施例1に係る画像判定システムSのMC学習モデルの生成処理の一例を示すフローチャートである。
これら図において、USER−Xは、モバイル端末100の撮像部130で被写体を撮像し、(1)モバイル用軽量学習モデル121(共通)を使って画像判定する(ステップS700)。画像判定による候補は、モバイル端末100の表示部150の画面の大きさに合わせて、上位T位まで表示する。
次に、データ収集部114は、USER−Xが選択した答えが上位n位以内の候補にあり、かつ確度a%以上かどうかを判定する(ステップS701)。上位n位以内の候補にあり、かつ確度a%以上だった場合は(ステップS701においてYES)、データ収集部114はMCの必要性がないものと判断し、被写体画像データに選択した候補(ラベル)を付加して、共通サーバ200に送信し、共通サーバ200はこのデータを共通教師データセット222に追加・蓄積する(ステップS702)。
一方、ステップS701において判定が否定されたら、データ収集部114は、USER−Xが選択した答えが上位n位以内の候補にあるが、確度a%未満だったか否かを判定する(ステップS703)。そして、判定が肯定されたら(ステップS503でyes)、モバイル用軽量学習モデル121(共通)のお勧めとは違う候補を選択したものと考え、データ収集部114は当該USER−X固有のこと、すなわちMCが必要な判定と判断し、当該被写体画像データに選択した候補(ラベル)を付加して、モバイル用MC教師データセット123(X)に追加・蓄積する(ステップS705)。
一方、上位n位以内の候補になかったが、候補上位T位以内に表示された候補と一致した場合(ステップS703においてNO)は、データ収集部114は、モバイル用軽量学習モデル121(共通)のお勧めとは違う候補を選択したものと考え、当該USER−X固有のこと、すなわちMCが必要な判定と判断し、当該被写体画像データに選択した候補(ラベル)を付加して、モバイル用MC教師データセット123(X)に追加・蓄積する(ステップS504でYES)。
さらに、上位T位以内の候補になく、その他を選択した場合(ステップS704においてNO)、USER−Xの(2)モバイル用軽量MC学習モデル122(X)を使って画像判定をやり直す(ステップS706)。画像判定による候補は、モバイル端末100の表示部150の画面の大きさに合わせて、上位T位まで表示する。
その際、判定結果の中に、ステップS700で判定した、上位T位以内の候補が重複してあった場合は、その候補を排除して、新たに判定されたものだけで、Max上位T位まで、その他のプルダウン候補として再提示する。
次に、データ収集部114は、USER−Xが選択した答えが上位m位以内の候補にあり、かつ確度b%以上かどうかを判定する(ステップS707)。上位m位以内の候補にあり、かつ確度b%以上だった場合(ステップS707においてYES)は、データ収集部114は(2)モバイル用軽量MC学習モデル122(X)が適した判定を行ったものと判断し、当該被写体の画像に選択した候補(ラベル)を付加して、モバイル用MC教師データセット123(X)に追加・蓄積する(ステップS708)。
一方、ステップS707において判定が否定されたら、データ収集部114は、USER−Xが選択した答えが上位m位以内の候補にあるが、確度b%未満だったか否かを判定する(ステップS709)。そして、判定が肯定されたら(ステップS709でYES)は、データ収集部114は、モバイル用軽量MC学習モデル122(X)のお勧めとは違う候補を選択したものと考えられるが、あくまでも当該USER−X固有のこと、すなわちMCが必要な判定であることには変わりはないものと判断し、当該被写体画像データに選択した候補(ラベル)を付加して、モバイル用MC教師データセット123(X)に追加・蓄積する(ステップS711)。
上位m位以内の候補になかったが、T位以内に表示された候補と一致した場合(ステップS710においてYES)は、モバイル用軽量MC学習モデル122(X)特有であると考え、当該被写体画像データに選択した候補(ラベル)を付加して、モバイル用MC教師データセット123(X)に追加・蓄積する(ステップS711)。
上位T位以内の候補になく(ステップS710でNO)、その他を選択した場合、データ収集部114は被写体画像を共通サーバ200に送信して、(3)共通学習モデル221を使って画像判定をやり直す(ステップS712)。画像判定による候補は、モバイル端末100の表示部150の画面の大きさに合わせて、上位T位まで表示する。
その際、判定結果の中に、ステップS700で判定した、上位T位以内の候補や、ステップS706で判定した上位T位以内の候補が重複してあった場合は、その候補を排除して、新たに判定されたものだけで、Max上位T位まで、その他のプルダウン候補として再提示する。
次に、データ収集部114は、USER−Xが選択した答えが、上位?位以内の候補にあった場合、あるいは、確度c%以上かどうかを判定する(ステップS713)。上位L位以内の候補にあり、かつ確度c%以上だった場合(ステップS713においてYES)は、(3)共通学習モデル221が適した判定を行ったものと判断し、データ収集部114は当該被写体の画像に選択した候補(ラベル)を付加して、共通教師データセット222に追加・蓄積する(ステップS714)。
ステップS713の判定が否定され、USER−Xが選択した答えが上位L位以内の候補にあるが、確度c%未満だった場合(ステップS715でYES)は、データ収集部114は、共通学習モデル221のお勧めとは違う候補を選択したものと考え、当該USER−X固有のこと、すなわちMCが必要な判定であると判断し、当該被写体画像データに選択した候補(ラベル)を付加して、USER−XのMC教師データセット224(X)に追加・蓄積する(ステップS717)。
上位L位以内の候補になかったが、T位以内に表示された候補と一致した場合(ステップS716においてYES)は、データ収集部114はUSER−XのMC学習モデル223(X)特有であると考え、当該被写体画像データに選択した候補(ラベル)を付加して、USER−XのMC教師データセット224(X)に追加・蓄積する(ステップS717)。
上位T位以内の候補になく(ステップS716でNO)、USER−Xにその他を選択させた場合、データ収集部114は、被写体画像にあった分類(ラベル)を(4)自由入力により、モバイル端末100の入力部140を通じて入力させる(ステップS718)。
入力されたデータを図6に示す、同義語辞書(シノニムDB)680と照らし合わせて、同義語としての登録があった場合、データ収集部114は代表表記語に置換して、表記の揺らぎを防止する(ステップS719)。
次に、データ収集部114は、入力された分類(ラベル)が、サブカテゴリ辞書(シソーラスDB)690に登録された分類カテゴリに該当するかチェックする(ステップS720)。
USER−Xが入力した答えが、既存のカテゴリと合致した場合、(1)モバイル用軽量学習モデル(共通)、(2)モバイル用軽量MC学習モデル(USER−X用)、(3)共通学習モデルのいずれの学習モデルでも、予測できなかった新しい被写体画像であったということで、とりあえず、データ収集部114はUSER−X固有のMC対象情報として、USER−XのMC教師データセットに追加・蓄積する(ステップS721)。
入力された分類(ラベル)が、サブカテゴリ辞書(シソーラスDB)690に登録された分類カテゴリに該当するものがなかった(ステップS720でNO)場合、次に、データ収集部114は、サブカテゴリに該当するものがあるかチェックする。(ステップS722)。
USER−Xが入力した答えが既存のサブカテゴリと合致した場合(ステップS722においてYES)、(1)モバイル用軽量学習モデル(共通)、(2)モバイル用軽量MC学習モデル(USER−X用)、(3)共通学習モデルのいずれの学習モデルでも予測できなかった新しい被写体画像ではあるが、詳細な分類の知識に該当するため、専門教師データセット322に追加・蓄積する(ステップS723)。
入力された分類(ラベル)が、サブカテゴリ辞書(シソーラスDB)690に登録された分類サブカテゴリにも該当するものがなかった(ステップS722でNO)場合、既存のカテゴリにもサブカテゴリにも存在しない新たな分類カテゴリを入力されたということで、データ収集部114は、サブカテゴリ辞書(シソーラスDB)690に新たなカテゴリとして当該ラベルを追加し、被写体画像データに入力された分類(ラベル)を付加して、USER−XのMC教師データセット224(X)に追加・蓄積する(ステップS723)。
図7Cにおいて、(1)モバイル用軽量学習モデル(共通)、(2)モバイル用軽量MC学習モデル(USER−X用)、(3)共通学習モデルで、被写体画像データに選択した候補(ラベル)を付加して、各々の教師データセットに追加・蓄積した(ステップS702、S705、S708、S711、S714、S717)後、および(4)自由入力の分類(ラベル)が既存のカテゴリに存在した場合(ステップS721)は、データ収集部114は、当該カテゴリに、サブカテゴリ辞書(シソーラスDB)690に登録された分類サブカテゴリがあるかどうかをチェックする(ステップS725)。
サブカテゴリを持つ場合(ステップS725においてYES)、データ収集部114は、USER−Xにサブカテゴリ化(詳細化)を望むかどうか問合せる(ステップS726)。
USER−Xが詳細化を望む場合(S727でYES)、データ収集部114は、被写体画像を専門サーバ300に送って(エスカレーションし)、(5)専門学習モデル321を使って画像を判定し、サブカテゴリに詳細化した確度の上位T位までの候補をモバイル端末100の表示部150に表示する(ステップS728)。
次に、データ収集部114は、USER−Xが選択した答えが、上位k位以内の候補にあり、かつ確度d%以上かどうかを判定する(ステップS729)。上位k位以内の候補にあり、かつ確度d%以上だった場合(ステップS729においてYES)は、(5)専門学習モデル321が適した判定を行ったものと判断し、当該被写体の画像に選択した候補(ラベル)を付加して、専門教師データセット322に追加・蓄積する(S730)。
また、USER−Xにとって、当該被写体のような場合に、サブカテゴリに詳細化することが当該USER−X固有のこと、すなわちMCが必要な判定でもあるものと判断し、当該被写体の画像に選択した候補(ラベル)を付加して、USER−XのMC教師データセット224(X)にも追加・蓄積する(ステップS731)。
一方、USER−Xが選択した答えが、上位k位以内の候補にあるが、確度d%未満だった場合(ステップS732でYES)は、専門学習モデル321のお勧めとは違う候補を選択したものと考え、当該USER−X固有のこと、すなわちMCが必要な判定であると判断し、当該被写体画像データに選択した候補(ラベル)を付加して、USER−XのMC教師データセット224(X)に追加・蓄積する(ステップS737)。
さらに、上位k位以内の候補になかったが、T位以内に表示された候補と一致した(ステップS733でYES)場合は、専門学習モデル321のお勧めとは違う候補を選択したものと考え、当該USER−X固有のこと、すなわちMCが必要な判定であると判断し、当該被写体画像データに選択した候補(ラベル)を付加して、USER−XのMC教師データセット224(X)に追加・蓄積する(ステップS737)。
USER−Xが選択した答えが、上位T位以内の候補になかった(ステップS733でNO)場合、その他を選択してもらって、図6の例に示すサブカテゴリ辞書(シソーラスDB)690を参照して、当該カテゴリのサブカテゴリ候補を全て、スクローリング等の手法で、1画面に収まらない候補まですべてを提示し、USER−Xには、その中から自由に選択してもらうようにする。(ステップS734)
そして、USER−Xの選択肢がその中になかった場合は、USER−Xに自由にキー入力にて詳細なサブカテゴリを入力してもらう(ステップS735)。この際、コンボボックスタイプの入力方法(プルダウンとキー入力の両方が可能)を用いる。
このようにして入力されたデータを図6に示す、同義語辞書(シノニムDB)680と照らし合わせて、同義語としての登録があった場合、代表表記語に置換して、表記の揺らぎを防止する(ステップS736)。
USER−Xが選択した候補や、自由にキー入力してもらったサブカテゴリは、サブカテゴリ辞書(シソーラスDB)690に新たなレコードとして追加する。なお、シソーラスDB690の正式更新には、管理者の承認を必要とすることも可能である。この後、MCが必要な場合と判断し、当該被写体の画像に入力した候補(ラベル)を付加して、USER−Xのモバイル用MC教師データセット123(X)に追加・蓄積する(ステップS737)。このデータは、まだ新しくUSER−X固有のことである可能性が高いため、この時点では専門教師データセット322には追加しない。
従って、本実施例によれば、モバイル端末100のデータ収集部114は、分類の修正または追加入力を専門サーバ300に送信し、専門サーバ300は、モバイル端末100から送信された修正または追加入力を用いて専門教師データセット322を生成する専門データ収集部314と、専門教師データセット322を用いて専門学習モデル321を生成する専門学習モデル生成部312と、モバイル端末100のモバイル用画像判定部111による判定が困難な場合、画像に基づいて専門学習モデル321を用いて被写体を判定する専門画像判定部311とを有する。
従って、本実施例によれば、被写体の分類(カテゴリ)に詳細な分類(サブカテゴリ)を設定して詳細な判定を行うことができるので、画像の類似判定作業をより精密に行うことができる。
さらに、本実施例によれば、共通サーバ200の共通データ収集部214は、モバイル端末100から送信された修正または追加入力を用いてMC教師データセット224を生成し、共通サーバ200の共通学習モデル生成部212は、MC教師データセット224を用いてMC学習モデル223を生成し、さらに、MC学習モデル223を軽量化してモバイル用軽量MC学習モデル122を生成し、このモバイル用軽量MC学習モデル122をモバイル端末100に送信し、モバイル端末100のモバイル用画像判定部111は、モバイル用軽量学習モデル121とモバイル用軽量MC学習モデル122とを用いて被写体を判定している。
従って、本実施例によれば、モバイル端末100を使用する個々のユーザ毎にMCされたモバイル用軽量MC学習モデル122を用いて画像判定を行うことができるので、ユーザが好む詳細な分類の判定を的確に行うことができる。
なお、本実施例では、人工知能を構成する端末やサーバ群が多段構造(モバイル端末100、共通サーバ200、専門サーバ300)を形成し、求める精度に応じてエスカレーションしている(モバイル端末100(ローカル処理)→共通サーバ200(オンプレミス)→専門サーバ30(オンプレミスまたはネットワークAI))。
そして、この専門サーバ300(オンプレミス)でもわからなければ、その後ろにある複数のネットワークAI(インターネット検索エンジンがベースの自社/他社提供AI)に問合せて、多数意見を回答とする方式も考えられる。将来的には、より高度な知見を持ったネットワークAIが無償(一部有償)で提供されるようになることが予想される。ネットワークAIは、高度であればあるほど提供されるサービス数は少なくなり、逆に全世界からエスカレーショントランザクションが上がって来るので、バランスの取れたシステム(AI−WiKi)となる。そうしたネットワークAI体系を含めて、専門サーバ300と呼ぶことも可能である。
以下の説明において、実施例2では、画像判定動作を主に共通サーバ200で行っているものとして説明するが、上述の実施例1のように、画像判定動作を主にモバイル端末100で行うことも可能である。
本実施例の画像判定システムSと実施例1の画像判定システムSとの相違点は、共通サーバ200、専門サーバ300の機能構成及びモバイル端末100の動作にある。
すなわち、共通サーバ200の共通制御部210は、共通画像判定部211及び共通成熟度算出部215を有し、専門サーバ300の専門制御部310は専門成熟度算出部315を有する。
共通成熟度算出部215、または、専門成熟度算出部315は、各学習済みモデルの学習(訓練)の経験の深さを表す指標を数値化するための計算機構であり、初期または、収集されて纏まった共通教師データセット222や、専門教師データセット322を使って、共通学習モデル221や、それを軽量化して生成するモバイル用軽量学習モデル(共通)121、専門学習モデル321を生成するタイミングで動作し、分類ごとに成熟度が計算される。
また、共通成熟度算出部215、または、専門成熟度算出部315は、画像判定システムSが動作(運用)しながら、モバイル端末100等から収集された、各USER−Xのモバイル用MC教師データセット123(X)に追加・蓄積されたデータや、共通教師データセット222に追加・蓄積されたデータ、MC教師データセット224(X)、専門教師データセット322に追加・蓄積されたデータを用いて、または加えて、再学習により、共通学習モデル221や、それを軽量化して生成するモバイル用軽量学習モデル(共通)121、専門学習モデル321、MC学習モデル(X)223(X)、モバイル用軽量MC学習モデル122(X)の新規生成またはリニューアル版の学習モデルを生成するタイミングで動作し、分類ごとに成熟度が計算される。
共通成熟度算出部215、または、専門成熟度算出部315による成熟度の算出手順について説明する。
まず、成熟度における学習データ量因子の算出方式について説明する。被写体画像のカテゴリ、またはサブカテゴリ(以下、クラスという。)cに関する、訓練データ数がnの時の学習データ量因子関数volは、訓練データ数nの関数であり、その値域は[0,1]である。一例として、アークタンジェント関数を用いて、学習データ量因子関数volを次のように定義する。
なお、パラメータNは標準学習データ量で1以上の整数であり、パラメータaはアークタンジェント関数の係数で、正の実数値とする。あくまでも例だが、標準学習データ量の半量で学習するとほぼ50%の成熟度に成長するものとし、aの値によって、成熟度曲線の立ち上がりがなだらかになったり(例えば、0<a<1.0)、急な立ち上がりを示す(例えば、a>1.0)。すなわち、教師データが充分少ない場合、成熟度は低い(人間の赤ちゃんがものごとを理解/認知するためには一定量の教師データが必要と言うことに近似)。充分多い場合でも100%にはならず、成熟度=100%の漸近線に近づくのみ(人間のその道のエキスパート(博士)であっても、非常に多くの教師データを学習しても、完全な理解/認知が可能となるわけではないことに近似)となる。
次に、学習成熟度における学習データ類似性因子の算出方式について説明する。クラスcに関する学習データ類似性因子関数simは、クラスcに属する訓練データX={x1,x2,…、xn}の関数であり、その値域は[0,1]である。この関数は、データの類似性が最低のとき最小値を取り、類似性が最大のとき最大値を取る。
一例として、類似度関数SIMを用いて、学習データ類似性因子関数simを次のように定義する。bは、類似度関数の係数で、値域[0,1]とする。
ただし、
なお、類似度関数SIM(x
1,x
2)は、データペアx
1,x
2の類似度が最高のとき1、最低のとき0となる値域[0,1]の関数である。
学習成熟度は、学習データ量因子と学習データ類似性因子の関数とする。一般には、次の式で表せる。
学習成熟度のうち、学習データ量因子と学習データ類似性因子で定義されるものを、単純学習成熟度と呼ぶ。すなわち、
である。本実施例では、共通成熟度算出部215は単純学習成熟度を算出する。
そして、モバイル端末100の表示部は、画像と、共通画像判定部211により判定された被写体の分類と、共通成熟度算出部215、または、専門成熟度算出部315により算出された成熟度を各学習モデルが判定した確度とともに提示する。提示方法は、成熟度を数値のまま%表示することでも構わないが、学習モデルのクラスcに関する成熟度を例えば、幼児レベルから、小学生、大人、博士レベルまで、イメージをつかみやすいようにイラスト表示することなどが考えられる。(図13)
図8は、実施例2に係る画像判定システムSの逐次学習プロセス処理の一例(通常時)を示すフローチャートである。
まず、ユーザはモバイル端末100の撮像部130を用いて被写体を撮像して画像を取得する(ステップS800)。
画像判定システムSは、各学習モデル(モバイル用軽量学習モデル121→モバイル用軽量MC学習モデル122→共通学習モデル221→MC学習モデル223→専門学習モデル321)に基づき、順次必要に応じてエスカレーションしながら当該画像を判定する(ステップS801)。
判定処理結果である被写体の分類は、その分類の確度とともにモバイル端末100の表示部150に表示される。(ステップS802)。そして、表示された候補の中に正しいカテゴリがあるか否かがUSER−Xにより判定される(ステップS803)。判定が肯定されたらプログラムはステップS804に移行し、判定が否定されたらプログラムはステップS807に移行する。
ステップS804では、表示部150に表示されている候補の中から正しいカテゴリを選択する。
次に、選択されたクラスcの学習成熟度がθ以上で確度がκ以下であるか否かが判定される(ステップS805)。判定が肯定されたら、ステップS806において成熟後フィードバックプロセス1を実行する。その後、プログラムはステップS809に移行する。
一方、ステップS807では、USER−Xは正しいカテゴリを入力し、ステップS808において成熟後フィードバックプロセス2を実行する。
次いで、共通サーバ200は、モバイル端末100により撮像された画像データとUSER−Xが選択/入力したカテゴリとを共通記憶部220に蓄積する(ステップS809)。そして、共通サーバ200の共通学習モデル生成部212は、ステップS809で蓄積されたデータに基づいて共通学習モデル221を生成する(ステップS810)。
図8のステップS806である成熟後フィードバックプロセス1について、図9を参照して説明する。
まず、ステップS900で、当該クラスcの成熟度が高い(θ以上)であるにもかかわらず、確度が低い(κ以下)の事態が、極めてまれなケースでそれほど頻度が多くはない場合は、学習成熟度関数を直す必要がないので、このような事象になった回数をカウントアップする。すなわち、初期値CNT(c)=0の、CNT(c)の値を1加算する。
次に、CNT(c)の値が、一定値M(例えば、Mは5件とか、10件と言った自然数でも良いし、標準学習量Ncのm%として計算される値でも良い)を超えたかどうかを判定する(ステップS901)。Mを超えた場合(ステップS901においてYES)は、この事態がまれにある場合(例外ケース)ではないものと判断し、学習成熟度関数を調整するステップS903〜905へ進む。M以下であった場合は、終了する(何もしない)。
ステップS902ではCNT(c)に0を代入して、初期化する。
学習習熟度関数の変更のため、ステップS903では標準学習データNcを増やし(例えば2倍)、ステップS904ではvolの係数aを減らし(例えば1/2)、ステップS905ではsimの係数bを減らし(例えば1/2)、学習習熟度を再計算する。この3つのステップは、どれか一つでも構わないし、2つを選択して実施しても構わないし、3つ全てのステップを同時に行っても構わない。
一般的には、S903でNcを増やす。学習曲線の立ち上がりが早すぎたと判断される場合は、S904を実行し、曲線をなだらかに寝かせる。成熟度の数字そのものが、イメージイラストとずれていると感じた場合は、S905を実行し成熟度そのものの絶対値を減らす。どのケースに当てはまるかを自動的に判断する機構については、S903でNcを増やす行為を何度か繰り返しても効果がなかった場合は、S904を試すなど、自動的に試行錯誤しながら成長する機構を組み込めばよい。
次に、図8のステップS808である成熟後フィードバックプロセス2について、図10を参照して説明する。
USER−Xにより入力されたクラスcは、画像判定システムsが選んだ候補ではないため、当該クラスcの学習成熟度が登録されているかどうかをチェックする必要がある。学習成熟度は、学習モデルを生成するごとにそれぞれで計算されるため、該当する学習モデルの学習成熟度を参照する。(ステップS1000)
次に、学習成熟度が登録済みであって、一定値θ以上であるかどうかを判定する(ステップS1001)。θ以上であった場合(ステップS1001においてYES)、充分な成熟をしているにもかかわらず、確度が低かったということになる(高い確度なら選択候補にあるはず)ので、ステップS1002へ進み、成熟後フィードバックプロセス1を実行して、学習成熟度関数を修正する。θ未満であった場合は、当該クラスcについては学習がまだ進んでいないと判断し、何もしない。
このように構成される本実施例によれば、共通サーバ200は、モバイル端末100から送信された画像に基づいて被写体の分類を判定する共通画像判定部211と、分類毎の共通学習モデル221の量及び多様性を示す成熟度を算出する共通成熟度算出部215とを有し、モバイル端末100の表示部150には、画像と、共通画像判定部211により判定された被写体の分類と、共通成熟度算出部215により算出された成熟度とが提示される。
従って、本実施例によれば、共通学習モデル221を用いた被写体の画像判定の推論が正しいものであるかどうかを判断することができる。
つまり、本実施例では、訓練データの量、及び訓練データの多様性に基づき、クラス別のデータ成熟度を算出して、ユーザに提示している。これにより、ユーザは共通学習モデル221が偶然正しい(または誤った)推論をしているのか、十分な学習の上で正しい(または誤った)推論をしているのかを知ることができる。そして、データ成熟度と推論精度(確度)により、ユーザは当該分類タスクへのAIの適用可能性を判断できる。
一例として、図11に示すように、当初の共通学習モデル221(学習モデルA)では被写体を撮像した画像に対する判定において正解となる分類「鳥」の確度は0.10、成熟度は0.03であったが、その後学習が進展した共通学習モデル221(学習モデルB)では正解となる分類「鳥」の確度が0.50に向上するとともに成熟度も0.50に向上している。従って、学習の進展により正しい推論ができていることがわかる。
一方、図12に示すように、当初の共通学習モデル221(学習モデルA)では被写体を撮像した画像に対する判定において正解となる分類「鳥」の確度は0.10、成熟度は0.03であったが、その後学習が進展した共通学習モデル221(学習モデルB)では正解となる分類「鳥」の確度が0.10のまま進展しない一方、成熟度は0.50に向上している。従って、学習の進展により正しい推論ができていないことがわかる。この場合、学習モデルを用いた推論が難しいタスクである可能性が高い。
図13に示すように、本実施例では、学習対象物ごとに人工知能の学習の成熟度(知見の深さ)をビジュアルに提示し、人工知能の判断結果を人間がどの程度参考にすればよいのかの指標を与えることで、人間の最終判断に寄与することができる。
つまり、人工知能も人間のアドバイザーやコンサルタントと同じように得意不得意分野がある。確度のみの提示では、自信の有無を表現できていない。どれだけ勉強してきたかの指標を成熟度として示すことで、信用のおける人工知能かどうかをユーザに理解させた上で、人間の最終判断を仰ぐことができる。
次に、図14を参照して、実施例1及び実施例2が適用されるアプリケーションについて説明する。
図14に示すアプリケーションは、覆面調査員を使ったレストランメニューの評価である。例えば数千人の覆面調査員に対して3ヶ月間様々なレストランのメニューを評価する業務を依頼する。
まず、インターネットの募集を見て覆面調査員として登録する。次に、好きなレストランに行って好きなメニューを注文し、運ばれてきたメニューを撮影する。画像判定システムSは撮影された画像に基づいてそのメニュー(分類)を判定する。覆面調査員は、画像判定システムSの判定結果を参照して、メニューを選択、登録する。その後、覆面調査員は食事をして評価を入力し、サーバ(共通サーバ200/専門サーバ300またはそれ以外のサーバ)に送信する。評価項目としては、例えばメニューの名前、写真、値段、見た目の評価、味、満足感(量)、個人的感想などである。
その後、既定の評価の量や情報に応じて調査手数料(食事代補助を含む)が覆面調査員に支払われる。
本実施例では、学習モデルの更新/再学習/保守プロセスについて一つの例を示す。共通学習モデル221の作成時の共通教師データセット222が十分なデータ量が収集できている場合、共通学習モデル221のメンテナンスは通常は必要がないが、データに時系列性(経年変化)が存在する場合、共通学習モデル221の陳腐化が発生してきて精度が落ちる可能性がある。これを防止するため、最新のデータで再学習(学習モデルの保守)するプロセスを組み込む。すなわち、日々の運用で判定した結果(学習モデルが判定した通りの結果か、ユーザが手入力で修正した結果)を共通教師データセット222に追加していく。
図14に示すアプリケーションを例にとって考えると、3千人の覆面調査員(アルバイト)が外食レストランの画像とメニュー名をアップロードする業務の場合、例えば、1日当たり500人が稼働し、一人1〜3件(平均して2件)のデータをアップロードすると1日当たり1,000件のデータが集まる。100日運用すると10万件のデータが蓄積されることになるが、学習モデルの生成にはCPU(GPU)やメモリ/実行時間の制限があり全データを処理できない。そこで、共通学習モデルを作る(再作成する)ためのデータ数の上限を(例えば、1万件と)設定する。
共通学習モデル生成部212は、モバイル用軽量学習モデル(共通)121作成時の共通教師データセット222のデータ件数をn件(例えば10,000件)とすると、日々の運用で新たに追加されたデータ件数が一定数m件(例えば10%:1,000件)を超えるのを待ち(ステップS1700においてYES)、超えた時点で、n+m件の教師データで共通学習モデル221の再作成に必要な時間(t1)が、日々の運用で新たにm件のデータが蓄積される時間(t2)を超えたか否かを判定する(ステップS1701)。
そして、判定が肯定されたら(ステップS1701においてYES)、共通学習モデル生成部212は、n+m件のオリジナルデータを間引くことで、t1<t2に収まる程度のデータ数にして、再学習プロセスを走らせる(ステップS1702)。再学習プロセスの詳細については、図18及び図19を参照して後述する。一方、判定が否定されたら(ステップS1701においてNO)、共通学習モデル生成部212は、n件のオリジナルデータを間引かず、再学習プロセスを走らせる(ステップS1703)。
図18、19は、実施例5に係る画像判定システムSの学習モデル更新処理、すなわち再学習プロセスの例を示すフローチャートである。図18に示すフローチャートは、共通教師データセット222のカテゴリ毎の出現頻度に準拠して、再学習用教師データを用意する方式であり、図19に示すフローチャートは、共通教師データセット222のカテゴリ毎に極力一定数の再学習用教師データを用意する方式である。
図18において、新しいデータは、出現頻度が正規分布等に従って頻度が多いものから少ないものに分散することが予測される。この頻度のまま共通教師データセット222に加えていくと、マイノリティ(出現頻度の少ない)のデータが学習に活かされなくなる。これを避けるため、出現頻度の高いラベルでは約半数、出現頻度の少ない(ロングテール)のデータはほぼ全数が教師データに加えられるように逓減しながらサンプリングしていく。
まず、共通学習モデル生成部212は、日々の運用のデータが一定量(例えば1,000件)蓄積されたら、判定した結果が、共通学習モデル221が予測した結果と同じだった場合(例えば950件)、カテゴリごとに出現頻度の高い順に並べる(ステップS1800)。
次に、共通学習モデル生成部212は、出現頻度の最も高いカテゴリのデータが、一定割合(例えば半数)になって、最も低いカテゴリのデータが0%になるようにサンプリングから排除するデータの割合を頻度の多い方から順に比率を逓減しながら、共通教師データセット222に組み込むサンプルデータをランダムに抽出する(例えば950件中450件に削減)(ステップS1801)。
さらに、共通学習モデル生成部212は、日々の運用で判定した結果が共通学習モデル221通りとは違うと判定(例えば50件)された結果は、実施例3のサンプリング回答補正方式、または実施例4のMC学習モデル補正方式で、共通教師データセット222に組み込むかどうかを判定し、その結果残ったデータ(例えば30件)は、全数共通教師データセット222に組み込むサンプルデータとして抽出する(ステップS1802)。
そして、共通学習モデル生成部212は、計算時間が許容される範囲に収まる共通教師データセット222の母数の上限をn件 (例えば10,000件)として設定し、共通データに新たに追加されるデータ(例えば450件+30件の480件)を加えると上限n件を超える場合、超える量のデータをランダムに元の共通教師データセット222から削除して、新たなデータを加え(置き換え)、再学習プロセスを回し、新たな共通学習モデル221を作成する(ステップS1803)。
図19において、新しいデータは、出現頻度が正規分布等に従って頻度が多いものから少ないものに分散することが予測される。一方、共通学習モデル221で使用する共通教師データセット222は、データ量が多いクラスに引きずられないよう、各クラス一定数に制限することが多い。この場合、追加するデータも一定数でカットする方式が良い。もともと少ないデータ(ロングテール)は、徐々に蓄積されるようそのまま加える。
まず、共通学習モデル生成部212は、日々の運用のデータが一定量(例えば1,000件)蓄積されたら、判定した結果が、共通学習モデル221が予測した結果と同じだった場合(例えば950件)、カテゴリごとに出現頻度の高い順に並べる(ステップS1900)。
次に、共通学習モデル生成部212は、出現頻度が一定数(例えば20件)以上のカテゴリのデータは、一定数(例えば20件)をランダムに選んで、共通教師データセット222に組み込むサンプルデータを抽出する。一定数に満たない少数データ(ロングテールデータ)は、そのままサンプルデータとする(例えば950件中450件に削減)(ステップS1901)。
さらに、共通学習モデル生成部212は、日々の運用で判定した結果が、共通学習モデル221通りとは違うと判定(例えば50件)された結果は、実施例3のサンプリング回答補正方式、または実施例4のMC学習モデル補正方式で、共通教師データセット222に組み込むかどうかを判定し、その結果残ったデータ(例えば30件)は、全数共通教師データセット222に組み込むサンプルデータとして抽出する(ステップS1902)。
そして、共通学習モデル生成部212は、計算時間が許容される範囲に収まる共通教師データセット222の母数の上限をn件(例えば10,000件)に設定し、共通教師データセット222に新たに追加されるデータ(例えば450件+30件の480件)を加えると上限n件を超える場合、超える量のデータをランダムに元の共通教師データセット222から削除して、新たなデータを加え(置き換え)、再学習プロセスを回し、新たな共通学習モデルを作成する(ステップS1903)。
なお、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラムまたはスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段またはCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。