以下、図面を参照して、実施形態にかかる機械学習プログラム、機械学習方法および情報処理装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する機械学習プログラム、機械学習方法および情報処理装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
図1は、実施形態の概要を説明する説明図である。図1に示すように、本実施形態では、文章中の各単語(部分文字列)に対して固有表現を示す「固有表現ラベル」を割り当てる分類タスクを、スタッキングの手法を用いて機械学習された第1機械学習モデルM1および第2機械学習モデルM2により解く際の、第1機械学習モデルM1および第2機械学習モデルM2が、訓練データセットDを用いた機械学習で生成される。
なお、分類タスクは、上記の例に限定するものではなく、単語の品詞推定や語義判定でもよい。また、分類タクスは、機械学習によって生成された機械学習モデルを用いて解くものであればよく、文書中の単語に関する分類以外にも、血圧、心拍数等の生体データより身体異常の有無を分類するものや、各教科の評価および中間・期末試験の得点などの成績データより対象者(受験者)の合否を分類するものであってもよい。よって、機械学習モデルの生成に用いる訓練データセットに含まれるデータ(以下、事例)については、分類タスクに応じて学習対象とする事例であればよい。例えば、身体異常の有無を分類する機械学習モデルを生成する場合は、学習対象ごとの生体データと、その生体データに対する正解(身体異常の有無)などが各事例に含まれることとなる。
訓練データセットDには、各事例(例えば文章中の各単語)について、その事例における正解の「固有表現ラベル」を示す正解ラベルが付与されている。本実施形態では、訓練データセットDを用いて教師あり学習を行うことで、勾配ブースティング木(GBT)、ニューラルネットワークなどの第1機械学習モデルM1および第2機械学習モデルM2が生成される。
具体的には、本実施形態では、訓練データセットDに含まれる各事例について、全事例の中で同じ正解ラベルが付与された同じ内容の事例が出現する頻度(出現頻度)をもとに、訓練データセットDを用いた機械学習モデルによる判定の安定性を推定する(S1)。頻度は、絶対頻度、相対頻度、累積頻度のいずれかであっても良い。また、出現頻度に基づいて算出される割合をもとに、各事例の安定性が推定されても良い。また、「同じ内容の事例」は、同一のラベルが付された同一のデータであり、本実施形態では、このようなデータ毎の出現頻度をもとに安定性を推定するものとする。
訓練データセットDに含まれる各事例についての、訓練データセットDを用いた機械学習モデルによる判定の安定性とは、各事例が訓練データセットDを用いた機械学習モデルで安定的に判定可能であるか否かを意味する。例えば、安定的に判定可能な事例では、k分割交差検定においてどのように訓練データセットDを分割・学習して得られた機械学習モデルであっても同じ判定結果が得られると推定される。この安定的に判定可能な事例は、訓練データセットDにおいて同一の正解ラベルが付与された同じ内容の事例が多いものや、分類先カテゴリの曖昧性が低いものが相当することから、同じ正解ラベルが付与された同じ内容の事例の出現頻度をもとに推定可能である。逆に、判定結果が不安定な事例は、k分割交差検定における分割方法によっては異なる判定結果が得られると推定される事例である。この判定結果が不安定な事例は、訓練データセットDにおいて同じ内容の事例が少ないものや、分類先カテゴリの曖昧性が高いものが相当することから、同じ正解ラベルが付与された同じ内容の事例の出現頻度をもとに推定可能である。
本実施形態では、S1での推定結果をもとに、訓練データセットDより、安定的に判定可能な事例を選択した訓練データセットD1と、訓練データセットD1以外の訓練データセットD2とに分ける。次いで、本実施形態では、安定的に判定可能と判断されたデータ(訓練データセットD1)で機械学習を行って第1機械学習モデルM1を生成する(S2)。次いで、本実施形態では、訓練データセットDに含まれる各データを第1機械学習モデルM1に入力して、第1機械学習モデルM1が出力した第1の判定結果を訓練データセットDに追加し、訓練データセットD3を生成する(S3)。次いで、本実施形態では、訓練データセットD3を用いた機械学習を行って第2機械学習モデルM2を生成する。
出現頻度をもとに安定的に判定可能と推定されたデータを用いた機械学習により生成した第1機械学習モデルM1では、訓練データセットDを入力データとして推論した場合の第1の判定結果において、不安定になると推定された事例で正解ラベルとは異なる結果(判定結果の誤り)が得られやすくなる。このため、訓練データセットDに第1の判定結果を追加した訓練データセットD3は、第1機械学習モデルM1の判定結果の誤りを修正するように最終判定結果を出力する第2機械学習モデルM2の生成に適したものとなる。
図2は、従来例を説明する説明図である。図2に示すように、従来例では、訓練データセットD100をk個のサブセット(D1001…D100k-1、D100k)に分割し(S101)、k-1個のサブセットで訓練して第1機械学習モデルM101を生成する(S102)。次いで、従来例では、残り1個のサブセットを入力として第1機械学習モデルM101が推論して得られた判定結果をそのサブセットに追加する(S103)。従来例では、このようにして判定結果を追加するデータを入れ替えながらS102、S103をk回繰り返すことで第2機械学習モデルM102の訓練データセットD101を生成する(S104)。次いで、従来例では、作成した訓練データセットD101を用いた機械学習によって第2機械学習モデルM102を作成する(S105)。
このように、従来例では、第2機械学習モデルM102の訓練データセットD101を生成する過程で、分割したk個のサブセット(D1001…D100k-1、D100k)を入れ替えながらk回繰り返すことから、第1機械学習モデルM101をk個作ることとなる。これに対し、本実施形態では、例えば、機械学習モデルM1を複数作成することなく、第2機械学習モデルM2の訓練データセットD3を効率的に作成することができ、効率的な機械学習を実行することができる。また、第1機械学習モデルM1および第2機械学習モデルM2それぞれの訓練データセットを事前に用意する単純な手法と比較しても、正解フラグを付与するデータ量が少なくて済むことから、効率的に機械学習を実行することができる。
図3は、ノイズを加える場合の実施形態の概要を説明する説明図である。図3に示すように、訓練データセットDに第1機械学習モデルM1を適用した第1の判定結果を訓練データセットDに追加し、第2機械学習モデルM2の訓練データセットD3を生成する際には、ノイズを加えてもよい。具体的には、第1機械学習モデルM1の入力にノイズを加えて得られた第1の判定結果を訓練データセットDに追加してもよい(S5a)。または、訓練データセットDに第1機械学習モデルM1を適用して第1機械学習モデルM1が出力する結果にノイズを加えて訓練データセットDに追加してもよい(S5b)。
このようにノイズを加えた場合、ノイズを加えても結果が変化しにくい事例は第1機械学習モデルM1で安定的に判定可能であり、ノイズを加えると結果が変化しやすい事例は第1機械学習モデルM1では判定結果が不安定となる。したがって、第1機械学習モデルM1による第1の判定結果を訓練データセットDに追加することで、第1機械学習モデルM1の判定結果の誤りを修正するように第2機械学習モデルM2を生成するための訓練データセットD3を生成することができ、第2機械学習モデルM2による最終判定結果の精度を向上させることができる。
図4は、実施形態にかかる情報処理装置の機能構成例を示すブロック図である。図4に示すように、情報処理装置1は、入出力部10と、記憶部20と、制御部30とを有する。例えば、情報処理装置1は、PC(Personal Computer)などを適用できる。
入出力部10は、制御部30が各種情報の入出力を行う際の入出力インタフェースを司る。例えば、入出力部10は、情報処理装置1に接続されるキーボードやマイク等の入力装置や液晶ディスプレイ装置などの表示装置との入出力インタフェースを司る。また、入出力部10は、LAN(Local Area Network)等の通信ネットワークを介して接続する外部機器との間でデータ通信を行う通信インタフェースを司る。
例えば、情報処理装置1は、入出力部10を介して訓練データセットDなどの入力を受け、記憶部20に格納する。また、情報処理装置1は、生成した第1機械学習モデルM1および第2機械学習モデルM2に関する第1機械学習モデル情報21および第2機械学習モデル情報22を記憶部20より読み出し、入出力部10を介して外部に出力する。
記憶部20は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置によって実現される。記憶部20は、訓練データセットD、出現頻度データSf、エントロピーデータSh、自己情報量データSi、スコアデータSd、訓練データセットD3、第1機械学習モデル情報21および第2機械学習モデル情報22などを格納する。
訓練データセットDは、学習対象とする事例(例えば複数の文章それぞれに含まれる各単語)と、その事例に付与された正解ラベル(例えば「固有表現ラベル」)の組(事例と正解ラベルとのペア)についての複数の訓練データの集合である。なお、訓練データは、1文章単位のデータであって、複数の事例と正解ラベルとのペアを含むものとする。
図5Aは、訓練データセットDの一例を説明する説明図である。図5Aに示すように、訓練データセットDには、複数の文章それぞれの訓練データに対応するデータIDごとに、文章に含まれる単語と、その単語に付与された正解ラベル(「固有表現ラベル」)との組、すなわち事例と正解ラベルとのペアが含まれる。
「固有表現ラベル」については、「O」、「General」、「Molecular」がある。「O」は、固有表現(一部を含む)ではない単語を意味するラベルである。「General」は、「General」という型の固有表現(一部を含む)の単語を意味するラベルである。「Molecular」は、「Molecular」という型の固有表現(一部を含む)の単語を意味するラベルである。なお、「General」および「Molecular」では、先頭の単語には「B-」という接頭辞を付与し、2番目以降の単語には「I-」という接頭辞を付与するものとする。
例えば、図示例における訓練データセットDにおいて、「solvent mixture」という事例は、「General」という型の固有表現が正解となる。また、「n-propyl bromide」という事例は、「Molecular」という型の固有表現が正解となる。
図4に戻り、出現頻度データSfは、訓練データセットDに含まれる事例と正解ラベルとのペアの出現頻度を集計したデータである。
図5Bは、出現頻度データSfの一例を説明する説明図である。図5Bに示すように、出現頻度データSfは、訓練データセットDに含まれる各事例について、正解ラベルごとに集計した出現頻度が含まれる。より具体的には、出現頻度データSfは、同じ内容の事例と、同じ正解ラベル毎に集計した出現頻度が含まれる。例えば、「solvent mixture」という事例ついて、正解ラベルが「General」の出現頻度は3である。同様に、「n-propyl bromide」という事例について、正解ラベルが「Molecular」の出現頻度は5である。また、「water」という事例について、正解ラベルが「Molecular」の出現頻度は2083であり、正解ラベルが「General」の出現頻度は5である。
図4に戻り、エントロピーデータShは、訓練データセットDに含まれる各事例について、訓練データセットDに含まれる事例の総事例数、同じ内容の事例と、同じ正解ラベル毎に集計した出現頻度などをもとに計算した情報理論におけるエントロピーを示す。
図5Cは、エントロピーデータShの一例を説明する説明図である。図5Cに示すように、エントロピーデータShは、「solvent mixture」、「n-propyl bromide」、「water」等の各事例のエントロピーを示す。
図4に戻り、自己情報量データSiは、訓練データセットDに含まれる事例の総事例数、同じ内容の事例と、同じ正解ラベル毎の出現頻度などをもとに計算した自己情報量を示す。
図5Dは、自己情報量データSiの一例を説明する説明図である。図5Dに示すように、自己情報量データSiは、「solvent mixture」と「General」、「n-propyl bromide」と「Molecular」等の同じ内容の事例と、同じ正解ラベル毎の自己情報量を示す。
図4に戻り、スコアデータSdは、訓練データセットDに含まれる文章それぞれついて、前述した判定の安定性をスコア化したデータである。
図5Eは、スコアデータSdの一例を説明する説明図である。図5Eに示すように、スコアデータSdは、訓練データセットDに含まれる複数の文章それぞれに対応するデータIDごとの、判定の安定性についてのスコアを示す。
図4に戻り、第1機械学習モデル情報21は、教師あり学習を行うことで生成した第1機械学習モデルM1に関する情報である。第2機械学習モデル情報22は、教師あり学習を行うことで生成した第2機械学習モデルM2に関する情報である。この第1機械学習モデル情報21および第2機械学習モデル情報22は、例えば勾配ブースティング木、ニューラルネットワークなどのモデルを構築するためのパラメータ等である。
制御部30は、第1機械学習モデル生成部31、訓練データ生成部32および第2機械学習モデル生成部33を有する。制御部30は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部30は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
第1機械学習モデル生成部31は、訓練データセットDを用いて第1機械学習モデルM1を生成する処理部である。具体的には、第1機械学習モデル生成部31は、訓練データセットDに含まれる同じ正解ラベルが付された同じ内容の事例毎の出現頻度に基づいて、訓練データセットDから複数の事例を選択する。これにより、第1機械学習モデル生成部31は、訓練データセットDより安定的に判定可能な事例を選択した訓練データセットD1を得る。次いで、第1機械学習モデル生成部31は、訓練データセットD1に含まれる複数の事例を用いた機械学習により第1機械学習モデルM1を生成する。次いで、第1機械学習モデル生成部31は、生成した第1機械学習モデルM1に関する第1機械学習モデル情報21を記憶部20に格納する。
訓練データ生成部32は、第2機械学習モデルM2を生成するための訓練データセットD3を生成する処理部である。具体的には、訓練データ生成部32は、第1機械学習モデル情報21をもとに第1機械学習モデルM1を構築する。次いで、訓練データ生成部32は、訓練データセットDに含まれる各事例を構築した第1機械学習モデルM1に入力した場合に第1機械学習モデルM1が出力する結果を訓練データセットDに追加して訓練データセットD3を生成する。
第2機械学習モデル生成部33は、訓練データセットD3を用いて第2機械学習モデルM2を生成する処理部である。具体的には、第2機械学習モデル生成部33は、訓練データセットD3に含まれる各事例と、その事例に対する第1機械学習モデルM1の判定結果(第1機械学習モデルM1が出力した結果)とを用いた機械学習により第2機械学習モデルM2を生成する。次いで、第2機械学習モデル生成部33は、生成した第2機械学習モデルM2に関する第2機械学習モデル情報22を記憶部20に格納する。
ここで、第1機械学習モデル生成部31および訓練データ生成部32の処理の詳細を説明する。先ず、第1機械学習モデル生成部31では、訓練データセットDの中の各事例の出現頻度をもとに、各事例の判定結果の安定性を示すスコアを算出して訓練データセットD1を得る訓練データ安定性判定処理を行う(S10)。
図6A、図6Bは、訓練データ安定性判定処理の一例を示すフローチャートである。図6Aに示すように、処理が開始されると、第1機械学習モデル生成部31は、事例と正解ラベルとのペアを訓練データセットDから収集してその出現頻度を集計する処理(S20)を行う。
具体的には、第1機械学習モデル生成部31は、訓練データセットD中のデータIDの集合を処理用の配列(I)等に格納する(S21)。次いで、第1機械学習モデル生成部31は、配列(I)内のデータIDが空であるか否かを判定し(S22)、空と判定(S22:Yes)されるまでS23~S25の処理を繰り返す。
配列(I)内のデータIDが空でないと判定された場合(S22:No)、第1機械学習モデル生成部31は、配列(I)からデータIDを1つ取得し、処理用の変数(id)に格納する(S23)。このとき、第1機械学習モデル生成部31は、取得したデータIDを配列(I)から消去する。次いで、第1機械学習モデル生成部31は、訓練データセットD中の変数(id)に対応するデータから同じ内容の事例と、同じ正解ラベルのペアを取得し(S24)、取得した数(出現頻度)をもとに出現頻度データSfを更新する(S25)。
配列(I)内のデータIDが空と判定された場合(S22:Yes)、第1機械学習モデル生成部31は、収集した事例ごとのエントロピーと、同じ内容の事例と、同じ正解ラベル毎の自己情報量を計算する処理(S30)を行う。
具体的には、第1機械学習モデル生成部31は、出現頻度データSf中の事例集合を処理用の配列(E)等の格納する(S31)。次いで、第1機械学習モデル生成部31は、配列(E)内の事例が空であるか否かを判定し(S32)、空と判定(S32:Yes)されるまでS33~S35の処理を繰り返す。
配列(E)内の事例が空でないと判定された場合(S32:No)、第1機械学習モデル生成部31は、第1機械学習モデル生成部31は、配列(E)から事例を1つ取得し、処理用の変数(ex)に格納する(S33)。このとき、第1機械学習モデル生成部31は、取得した事例を配列(E)から消去する。次いで、第1機械学習モデル生成部31は、訓練データセットD中の変数(ex)に対応する事例を検索し、正解ラベルごとに該当数を集計する(S34)。次いで、第1機械学習モデル生成部31は、S34の集計結果をもとに、処理対象の事例と正解ラベルとのペアについて、公知の情報理論におけるエントロピーと自己情報量を計算し、計算結果をもとにエントロピーデータShおよび自己情報量データSiを更新する(S35)。
配列(E)内の事例が空と判定された場合(S32:Yes)、図6Bに示すように、第1機械学習モデル生成部31は、同じ内容の事例と、同じ正解ラベル毎の、前述した判定の安定性を推定する処理を行う(S40)。
具体的には、第1機械学習モデル生成部31は、訓練データセットD中のデータIDの集合を処理用の配列(I)等に格納する(S41)。次いで、第1機械学習モデル生成部31は、配列(I)内のデータIDが空であるか否かを判定し(S42)、空と判定(S42:Yes)されるまでS43~S46の処理を繰り返す。
配列(I)内のデータIDが空でないと判定された場合(S42:No)、第1機械学習モデル生成部31は、配列(I)からデータIDを1つ取得し、処理用の変数(id)に格納する(S43)。このとき、第1機械学習モデル生成部31は、取得したデータIDを配列(I)から消去する。
次いで、第1機械学習モデル生成部31は、訓練データセットD中の変数(id)に対応するデータから同じ内容の事例と、同じ正解ラベルのペアを取得する(S44)。すなわち、第1機械学習モデル生成部31は、データIDの文章に関する同じ内容の事例と、同じ正解ラベル毎のペアを取得する。次いで、第1機械学習モデル生成部31は、取得した同じ内容の事例と、同じ正解ラベル毎のペアの出現頻度データSf、エントロピーデータSh、自己情報量データSiをもとに、同じ内容の事例と、同じ正解ラベル毎における前述した判定の安定性について、安定・不安定を判定する(S45)。
例えば、第1機械学習モデル生成部31は、出現頻度が閾値(f)未満であり、訓練データセットDにおいて稀な事例と正解ラベルとのペアを不安定な事例とする。または、第1機械学習モデル生成部31は、自己情報量が閾値(i)より大きく、かつ、エントロピーが閾値(h)未満の曖昧性が高い事例と正解ラベルとのペアを不安定な事例とする。また、上記の条件に該当しない事例と正解ラベルとのペアについては、安定な事例とする。なお、この判定に関する閾値(f)、(i)、(h)については、例えばユーザが任意に設定してもよい。
一例として、閾値それぞれがf=4、i=1.0、h=0.8とすると、図5Bの出現頻度データSfにおいては、「solvent mixture」・「General」が不安定な事例となる。同様に、図5CのエントロピーデータShおよび図5Dの自己情報量データSiにおいては、「water」・「General」が不安定な事例となる。
次いで、第1機械学習モデル生成部31は、データIDの文章に関する同じ内容の事例と、同じ正解ラベル毎について判定した安定・不安定の結果をもとに、変数(id)に対応するデータ(文章)の安定性を示すスコアを計算し、計算結果をスコアデータSdに追加する(S46)。例えば、第1機械学習モデル生成部31は、不安定な事例の数または全数に対する不安定な事例の割合を指標値とし、その指標値に応じた重み付けを行うことでスコアの計算を行う。
配列(I)内のデータIDが空と判定された場合(S42:Yes)、第1機械学習モデル生成部31は、スコアデータSdをもとに、安定性の低い文章を除外した残りの文章のデータセットを第1機械学習モデルM1を生成するための訓練データセットD1とする処理を行う(S50)。
具体的には、第1機械学習モデル生成部31は、スコアデータSdをソートし、スコアが低い不安定なデータ(文章)を訓練データセットDから除外する(S51)。次いで、第1機械学習モデル生成部31は、残ったデータセットを訓練データセットD1として出力し(S52)、処理を終了する。なお、第1機械学習モデル生成部31は、スコアが低い不安定なデータ(文章)を除外する以外に、文章に含まれる一部の事例(例えば不安定な事例と判定された事例と正解ラベルとのペア)を選択して除外してもよい。
なお、前述したS30、S40については別の処理(別の選択方法)を行うことで、訓練データセットDの中から第1機械学習モデルM1を生成するための訓練データセットD1を選択してもよい。
具体的には、第1機械学習モデル生成部31は、収集した各事例と正解ラベルとのペアの安定性を表すスコアの初期値として、それぞれの自己情報量を設定し、以下の(・)の手順を予め指定した回数繰り返す。次いで、第1機械学習モデル生成部31は、残った訓練データセットを第1機械学習モデルM1用の訓練データセットD1とする。
・各文章について、出現する各事例のスコアの総和をその文章のスコアとし、スコアが最大となる文章を安定性の低い文章として除外する。
・除外した文章に含まれる事例のスコアを、「自己情報量/(N+1)」とする(Nは、これまでに除外した全ての文章中で該当事例が出現した回数)。
この別の選択方法において、第1機械学習モデル生成部31は、予め指定した回数繰り返す代わりに、各文章のスコアの中の最大値が、予め指定した閾値を下回るまで繰り返してもよい。
上述した別の選択方法では、除外した文章に含まれる事例のスコアを下げることにより、同じ事例を含む文章が除外されにくくなる。すなわち、同じ事例が、除外される側の文章と残される側の文章の両方に含まれるようにする。なお、スコアの計算方法について、上記の例ではN+1で自己情報量を割っているが、除外される度にスコアが小さくなるようなスコア更新方法であれば、いずれの計算方法であってもよい。
図7は、訓練データ安定性判定処理の変形例を示すフローチャートであり、上記の別の選択方法の一例である。図7に示すように、処理が開始されると、第1機械学習モデル生成部31は、(出現)頻度を集計する処理(S20)と、自己情報量を計算する処理(S30)とを行った後、別の選択方法に関する処理(S30a)を行う。
具体的には、第1機械学習モデル生成部31は、訓練データセットD中のデータIDの集合を処理用の配列(I)等に格納する(S41)。次いで、第1機械学習モデル生成部31は、配列(I)内のデータIDが空であるか否かを判定し(S42)、空と判定(S42:Yes)されるまでS43~S46aの処理を繰り返す。
配列(I)内のデータIDが空でないと判定された場合(S42:No)、第1機械学習モデル生成部31は、配列(I)からデータIDを1つ取得し、処理用の変数(id)に格納する(S43)。このとき、第1機械学習モデル生成部31は、取得したデータIDを配列(I)から消去する。
次いで、第1機械学習モデル生成部31は、訓練データセットD中の変数(id)に対応するデータから事例と正解ラベルとのペアを取得する(S44)。すなわち、第1機械学習モデル生成部31は、データIDの文章に関する同じ内容の事例と、同じ正解ラベル毎のペアを取得する。次いで、第1機械学習モデル生成部31は、前述したスコアの計算方法を用いて各事例と正解ラベルとのペアにおけるスコアSiを求め、その総和をスコアデータSdに加える(S46a)。
配列(I)内のデータIDが空と判定された場合(S42:Yes)、第1機械学習モデル生成部31は、スコアデータSdが最大のデータdを訓練データセットDから除外する(S53)。次いで、第1機械学習モデル生成部31は、除外したデータd中の各事例と正解ラベルとのペアに対応するスコアSiを更新し(S54)、前述した繰り返しの終了条件を満たすか否かを判定する(S55)。
繰り返しの終了条件(例えば、予め指定した回数繰り返す、文章のスコアの中の最大値が予め指定した閾値を下回る等)を満たさない場合(S55:No)、第1機械学習モデル生成部31は、S41に処理を戻す。繰り返しの終了条件を満たす場合(S55:Yes)、第1機械学習モデル生成部31は、残ったデータセットを訓練データセットD1として出力し(S56)、処理を終了する。
図4に戻り、第1機械学習モデル生成部31は、S10に次いで、複数の判定手法の中からいずれかの判定手法を選択する判定手法選択処理を行う(S11)。具体的には、判定手法選択処理では、S10において前述した複数通りの選択方法のうち、どの方法を採用するかを決定する。なお、判定手法選択処理は、S10において前述した複数通りの選択方法を実施している場合に行われる処理であり、S10において一通りの選択方法を実施している場合にはスキップされる。
図8は、判定手法選択処理の概要を説明する説明図である。図8に示すように、判定手法選択処理では、訓練データセットDをk個のサブセット(D1…Dk-1、Dk)に分割し(S71)、k-1個のサブセットで学習して第1機械学習モデルM1を生成する(S72)。次いで、残り1個のサブセットに第1機械学習モデルM1を適用して得られた判定結果と正解とを比較し(S73)、各文章のスコアを計算してソートする(正解との一致率、正解のスコア等)。次いで、ソートした結果と、複数の判定手法による判定結果とを比較し、average percision等を用いて最適な判定手法を選択する。
図9は、判定手法選択処理の一例を示すフローチャートである。図9に示すように、処理が開始されると、第1機械学習モデル生成部31は、訓練データセットDをk個のサブセットに分割する(S61)。次いで、第1機械学習モデル生成部31は、{D1…Dk-1}で第1機械学習モデルM1を生成し、生成した第1機械学習モデルM1にDkを適用する(S62)。
次いで、第1機械学習モデル生成部31は、適用結果をもとにDkの各データのスコアを計算してソートする(S63)。次いで、第1機械学習モデル生成部31は、各訓練データにおける安定性判定手法(S10における選択方法)それぞれの結果と比較し、一致の度合をスコア化する(S64)。次いで、第1機械学習モデル生成部31は、S10において実施した複数通りの選択方法の中で、最も一致の度合の高い手法(選択方法)の結果を採用する(S65)。
図4に戻り、S11に次いで、第1機械学習モデル生成部31は、訓練データセットD1に含まれる複数の事例を用いた機械学習により第1機械学習モデルM1を生成し(S12)、生成した第1機械学習モデルM1の関する第1機械学習モデル情報21を記憶部20に格納する。
次いで、訓練データ生成部32は、第1機械学習モデル情報21をもとに第1機械学習モデルM1を構築し、訓練データセットDに含まれる各事例を構築した第1機械学習モデルM1に入力した場合に第1機械学習モデルM1が出力する判定結果を訓練データセットDに追加する(S13)。これにより、訓練データ生成部32は、訓練データセットD3を生成する。
ここで、第2機械学習モデルM2の訓練データセットD3を生成する際にノイズを加える場合を説明する。図10Aは、判定結果の追加に関する処理例を示すフローチャートであり、第1機械学習モデルM1が出力する結果にノイズを加える場合の一例である。
図10Aに示すように、処理が開始されると、訓練データ生成部32は、訓練データセットD中のデータIDの集合を処理用の配列(I)等に格納する(S81)。次いで、訓練データ生成部32は、配列(I)内のデータIDが空であるか否かを判定し(S82)、空と判定(S82:Yes)されるまでS83~S86の処理を繰り返す。
配列(I)内のデータIDが空でないと判定された場合(S82:No)、訓練データ生成部32は、配列(I)からデータIDを1つ取得し、処理用の変数(id)に格納する(S83)。このとき、訓練データ生成部32は、取得したデータIDを配列(I)から消去する。
次いで、訓練データ生成部32は、訓練データセットD中の変数(id)に対応するデータに第1機械学習モデルM1を適用する(S84)。次いで、訓練データ生成部32は、第1機械学習モデルM1より得られた判定結果について、各単語(事例)に割り当てられる各ラベルのスコアをランダムに変化させる(S85)。次いで、訓練データ生成部32は、変化後のスコアをもとに、各単語に割り当てるラベルを決定する(S86)。
図10Bは、結果データの一例を説明する説明図である。図10Bの結果データK1は、S85によりスコアをランダムに変化させた後にラベルを決定した場合のデータ例である。
図10Bに示すように、結果データK1では、第1機械学習モデルM1より得られた判定結果に含まれる推定スコアにランダムなノイズが加えられているため、スコア値が変化している。このため、S86において、一部の事例では、スコアを変化させない場合とは異なる判定結果が得られる。例えば、「mixture」では、スコアの変化前では「I-General」と判定されるところ、スコアの変化により「O」と判定されている。
図10Aに戻り、配列(I)内のデータIDが空と判定された場合(S82:Yes)、訓練データ生成部32は、各事例について決定したラベルを訓練データセットDに追加した訓練データセットD3を出力し(S84)、処理を終了する。
図11Aは、判定結果の追加に関する処理例を示すフローチャートであり、第1機械学習モデルM1が出力する結果にノイズを加える場合の一例である。
図11Aに示すように、処理が開始されると、訓練データ生成部32は、訓練データセットD中のデータIDの集合を処理用の配列(I)等に格納する(S81)。次いで、訓練データ生成部32は、配列(I)内のデータIDが空であるか否かを判定し(S82)、空と判定(S82:Yes)されるまでS83~S86aの処理を繰り返す。
配列(I)内のデータIDが空でないと判定された場合(S82:No)、訓練データ生成部32は、配列(I)からデータIDを1つ取得し、処理用の変数(id)に格納する(S83)。このとき、訓練データ生成部32は、取得したデータIDを配列(I)から消去する。
次いで、訓練データ生成部32は、訓練データセットD中の変数(id)に対応するデータに第1機械学習モデルM1を適用する(S84)。次いで、訓練データ生成部32は、第1機械学習モデルM1より得られた判定結果について、各単語(事例)に割り当てられる各ラベルのスコアを確率値に変換する(S85a)。具体的には、スコアが高ければ選択されやすくなるような確率値となるように、スコアに応じた確率値に変換する。次いで、訓練データ生成部32は、変換した確率値をもとに、各単語に割り当てるラベルを決定する(S86a)。
図11Bは、結果データの一例を説明する説明図である。図11Bの結果データK2は、スコアから変換した後の確率値をもとにラベルを決定した場合のデータ例である。
図10Bに示すように、結果データK2では、確率値に変換された推定スコアをもとに、確率的にラベルを決定(選択)している。このため、確率値が均衡する一部の事例では、スコアの大小を元にした判定結果とは異なる判定結果が得られる場合がある。例えば、「propyl」では、スコアの大小では「I-Molecular」と判定されるところ、確率的な選択により「B-Molecular」とされている。
図12Aは、判定結果の追加に関する処理例を示すフローチャートであり、第1機械学習モデルM1の入力にノイズを加える場合の一例である。
図12Aに示すように、処理が開始されると、訓練データ生成部32は、訓練データセットD中のデータIDの集合を処理用の配列(I)等に格納する(S81)。次いで、訓練データ生成部32は、配列(I)内のデータIDが空であるか否かを判定し(S82)、空と判定(S82:Yes)されるまでS83~S84cの処理を繰り返す。
配列(I)内のデータIDが空でないと判定された場合(S82:No)、訓練データ生成部32は、配列(I)からデータIDを1つ取得し、処理用の変数(id)に格納する(S83)。このとき、訓練データ生成部32は、取得したデータIDを配列(I)から消去する。
次いで、訓練データ生成部32は、訓練データセットD中の変数(id)に対応するデータの一部の単語をランダムに選択し、選択した単語を別の単語に置換する(S84a)。なお、置換対象の単語は、データの中からランダムに選んだり、推定結果の確信度(スコア)をもとに選んだりしてもよい。また、別の単語への置換は、任意の単語への置換であってもよい。または、類義語・関連語辞書を利用して置換対象の単語の類義語・関連語への置換であってもよいし、単語分散表現を利用して選択した単語への置換であってもよい。
次いで、訓練データ生成部32は、置換後のデータに第1機械学習モデルM1を適用し(S84b)、第1機械学習モデルM1より得られた判定結果より各単語に割り当てるラベルを決定する(S84c)。
図12Bは、結果データの一例を説明する説明図である。図12Bの結果データK3は、置換後の単語(2列目の単語)をもとにラベルを決定した場合のデータ例である。
図12Bに示すように、結果データK3では、一部の事例(単語)において、その内容が別の内容に置換されている。例えば、上から6段目の「mixture」は「compound」に置換されている。このように、第1機械学習モデルM1に入力するデータに対してノイズを付加する構成であってもよい。
以上のように、情報処理装置1は、第1機械学習モデル生成部31と、訓練データ生成部32とに関する処理を実行する制御部30を有する。第1機械学習モデル生成部31は、訓練データセットDに含まれる各事例の出現頻度に基づいて、訓練データセットDから複数の事例を選択する。また、第1機械学習モデル生成部31は、選択した複数の事例を用いた機械学習により第1機械学習モデルM1を生成する。訓練データ生成部32は、訓練データセットDと、訓練データセットDに含まれる各事例を入力した場合に第1機械学習モデルM1が出力する結果とを合わせた訓練データセットD3を生成する。また、制御部30は、訓練データセットD3を用いて第2機械学習モデルM2を生成する第2機械学習モデル生成部33に関する処理を実行する。制御部30では、分類対象のデータを分類する分類タスクにおいて、第1機械学習モデルM1に分類対象のデータを入力し、第1機械学習モデルM1の出力結果を得る。次いで、制御部30では、第1機械学習モデルM1の出力結果を第2機械学習モデルM2に入力して、第2機械学習モデルM2より分類結果を得る。これにより、単一の機械学習モデルの分類精度よりも精度の良い分類結果を得ることができる。
このように、情報処理装置1では、訓練データセットDに含まれる各事例の出現頻度に基づいて選択した複数の事例を用いた機械学習により第1機械学習モデルM1を生成するので、第2機械学習モデルM2を学習するための訓練データセットD3を生成する際に、例えば第1機械学習モデルM1をk回繰り返して生成することがない。したがって、情報処理装置1では、第2機械学習モデルM2を学習するための訓練データセットD3を効率的に生成することができ、効率的な機械学習を実行することができる。
また、第1機械学習モデル生成部31は、訓練データセットDのうち出現頻度が閾値未満の事例を選択対象から除外する。このように、情報処理装置1では、訓練データセットDうち、出現頻度が閾値未満であり、第1機械学習モデルM1による判定結果が不安定になると推定される事例を選択対象から除外した上で第1機械学習モデルM1を生成する。このため、訓練データセットDに含まれる各事例を入力した場合に第1機械学習モデルM1が出力する結果において、不安定になると推定される事例では、訓練データセットDの正解ラベルとは異なる結果が得られやすくなる。したがって、情報処理装置1では、第1機械学習モデルM1の判定結果の誤りを修正するように第2機械学習モデルM2を生成するための訓練データセットD3を生成することができ、第2機械学習モデルM2による最終判定結果の精度を向上させることができる。
また、第1機械学習モデル生成部31は、出現頻度に基づいて各事例のエントロピーおよび自己情報量を計算し、訓練データセットDのうち、自己情報量が閾値より大きく、かつ、エントロピーが閾値未満の事例を選択対象から除外する。このように、情報処理装置1では、訓練データセットDのうち、自己情報量が閾値より大きく、かつ、エントロピーが閾値未満の事例であり、第1機械学習モデルM1による判定結果が不安定になると推定される事例を選択対象から除外した上で第1機械学習モデルM1を生成する。このため、訓練データセットDに含まれる各事例を入力した場合に第1機械学習モデルM1が出力する結果において、不安定になると推定される事例では、訓練データセットDの正解ラベルとは異なる結果が得られやすくなる。したがって、情報処理装置1では、第1機械学習モデルM1の判定結果の誤りを修正するように第2機械学習モデルM2を生成するための訓練データセットD3を生成することができ、第2機械学習モデルM2による最終判定結果の精度を向上させることができる。
また、訓練データ生成部32は、訓練データセットDと、訓練データセットDに含まれる各事例の一部の事例の内容を変更した後のデータセットに含まれる各事例を入力した場合に第1機械学習モデルM1が出力する結果とを合わせて第2機械学習モデルM2用の訓練データセットD3を生成する。このように、訓練データセットDに含まれる各事例の一部の事例の内容を変更し、訓練データセットDにノイズを加えることで、第1機械学習モデルM1の判定結果が変化しやすい事例では、第1機械学習モデルM1が出力する結果において、訓練データセットDの正解ラベルとは異なる結果が得られやすくなる。したがって、情報処理装置1では、第1機械学習モデルM1の判定結果の誤りを修正するように第2機械学習モデルM2を生成するための訓練データセットD3を生成することができ、第2機械学習モデルM2による最終判定結果の精度を向上させることができる。
また、訓練データ生成部32は、第1機械学習モデルM1が出力する結果に特定の割合でノイズを加えて訓練データセットD3を生成する。このように、情報処理装置1では、第1機械学習モデルM1が出力する結果に特定の割合でノイズを加え、第1機械学習モデルM1の判定結果の誤りを修正するように第2機械学習モデルM2を生成するための訓練データセットD3を生成してもよい。
また、制御部30は、第2機械学習モデル生成部33に関する処理を実行する。第2機械学習モデル生成部33は、生成した訓練データセットD3に基づいた機械学習により第2機械学習モデルM2を生成する。これにより、情報処理装置1では、生成した訓練データセットD3により第2機械学習モデルM2を生成することができる。
また、訓練データセットDに含まれる各事例は、教師とする複数の文章それぞれに含まれる単語である。これにより、情報処理装置1では、文章に含まれる各単語の品詞推定、固有表現抽出、語義判定等を最終結果として出力する第2機械学習モデルM2を生成するための訓練データセットD3を効率的に生成することができる。
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、情報処理装置1で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)あるいはGPU(Graphics Processing Unit)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)あるいはGPUで解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、情報処理装置1で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ(ハードウエア)の一例を説明する。図13は、コンピュータ構成の一例を示すブロック図である。
図13に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、画像処理や機械学習処理等の所定の演算処理に特化したGPU201aと、データ入力を受け付ける入力装置202と、モニタ203と、スピーカ204とを有する。また、コンピュータ200は、記憶媒体からプログラム等を読み取る媒体読取装置205と、各種装置と接続するためのインタフェース装置206と、有線または無線により外部機器と通信接続するための通信装置207とを有する。また、コンピュータ200は、各種情報を一時記憶するRAM208と、ハードディスク装置209とを有する。また、コンピュータ200内の各部(201~209)は、バス210に接続される。
ハードディスク装置209には、上記の実施形態で説明した制御部30における第1機械学習モデル生成部31、訓練データ生成部32および第2機械学習モデル生成部33等における各種の処理を実行するためのプログラム211が記憶される。また、ハードディスク装置209には、プログラム211が参照する訓練データセットD等の各種データ212が記憶される。入力装置202は、例えば、操作者から操作情報の入力を受け付ける。モニタ203は、例えば、操作者が操作する各種画面を表示する。インタフェース装置206は、例えば印刷装置等が接続される。通信装置207は、LAN(Local Area Network)等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
CPU201あるいはGPU201aは、ハードディスク装置209に記憶されたプログラム211を読み出して、RAM208に展開して実行することで、第1機械学習モデル生成部31、訓練データ生成部32および第2機械学習モデル生成部33等に関する各種の処理を行う。なお、プログラム211は、ハードディスク装置209に記憶されていなくてもよい。例えば、コンピュータ200が読み取り可能な記憶媒体に記憶されたプログラム211を読み出して実行するようにしてもよい。コンピュータ200が読み取り可能な記憶媒体は、例えば、CD-ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこのプログラム211を記憶させておき、コンピュータ200がこれらからプログラム211を読み出して実行するようにしてもよい。