IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電信電話株式会社の特許一覧

特許7389389処理装置、処理方法および処理プログラム
<>
  • 特許-処理装置、処理方法および処理プログラム 図1
  • 特許-処理装置、処理方法および処理プログラム 図2
  • 特許-処理装置、処理方法および処理プログラム 図3
  • 特許-処理装置、処理方法および処理プログラム 図4
  • 特許-処理装置、処理方法および処理プログラム 図5
  • 特許-処理装置、処理方法および処理プログラム 図6
  • 特許-処理装置、処理方法および処理プログラム 図7
  • 特許-処理装置、処理方法および処理プログラム 図8
  • 特許-処理装置、処理方法および処理プログラム 図9
  • 特許-処理装置、処理方法および処理プログラム 図10
  • 特許-処理装置、処理方法および処理プログラム 図11
  • 特許-処理装置、処理方法および処理プログラム 図12
  • 特許-処理装置、処理方法および処理プログラム 図13
  • 特許-処理装置、処理方法および処理プログラム 図14
  • 特許-処理装置、処理方法および処理プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-21
(45)【発行日】2023-11-30
(54)【発明の名称】処理装置、処理方法および処理プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20231122BHJP
【FI】
G06N20/00 130
【請求項の数】 8
(21)【出願番号】P 2022528384
(86)(22)【出願日】2020-06-05
(86)【国際出願番号】 JP2020022366
(87)【国際公開番号】W WO2021245924
(87)【国際公開日】2021-12-09
【審査請求日】2022-11-11
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100129230
【弁理士】
【氏名又は名称】工藤 理恵
(72)【発明者】
【氏名】税所 修
(72)【発明者】
【氏名】大黒 毅
(72)【発明者】
【氏名】孫 晶玉
(72)【発明者】
【氏名】今村 浩士
(72)【発明者】
【氏名】竹内 亨
(72)【発明者】
【氏名】横関 大子郎
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2020-86519(JP,A)
【文献】特開2018-106662(JP,A)
【文献】特開2017-27227(JP,A)
【文献】国際公開第2019/202941(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
入力データセットにラベル付けを行う、あるいはラベル付けができない場合は棄権するラベリング関数を含む関数データを参照して、
入力データセットを、前記ラベリング関数でラベル付けした結果から、各入力データセットに各ラベルに該当する確率を対応づける第1の出力データを出力する第1の処理部と、
各入力データセットのうち、前記第1の出力データにおいて各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを特定する特定部を備え、
前記特定部によって、前記第1の出力データから特定された入力データセットに対して新たに作成されたラベリング関数が、前記関数データに挿入される
処理装置。
【請求項2】
新たに作成されたラベリング関数が、前記関数データに挿入された後に、前記第1の処理部を実行して得られた第1の出力データにおいて、各入力データセットに最も高い確率に対応するラベルを対応づけて出力する出力部
をさらに備える請求項1に記載の処理装置。
【請求項3】
各入力データセットに、前記第1の出力データにおいて最も高い確率に対応するラベルを対応づけた複数の訓練データセットを識別器に入力して、各入力データセットに各ラベルに該当する確率を対応づける第2の出力データを出力する第2の処理部をさらに備え、
前記特定部は、各入力データセットのうち、前記第2の出力データにおいて各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを特定し、
前記特定部によって、前記第2の出力データから特定された入力データセットに対して新たに作成されたラベリング関数が、前記関数データに挿入される
請求項1に記載の処理装置。
【請求項4】
前記特定部は、各入力データセットのうち、前記第1の出力データにおける各ラベルに該当する確率のベクトルと、前記第2の出力データにおける各ラベルに該当する確率のベクトルとの距離が閾値以上の入力データセットを特定し、
前記特定部によって、前記第1の出力データにおける各ラベルに該当する確率のベクトルと前記第2の出力データにおける各ラベルに該当する確率のベクトルとの距離から特定された入力データセットに対して新たに作成されたラベリング関数が、前記関数データに挿入される
請求項3に記載の処理装置。
【請求項5】
新たに作成されたラベリング関数が、前記関数データに挿入された後に、前記第1の処理部および前記第2の処理部を実行して得られた第2の出力データにおいて、各入力データセットに最も高い確率に対応するラベルを対応づけて出力する出力部
をさらに備える請求項3または4に記載の処理装置。
【請求項6】
前記ラベルに該当する確率に、信頼度の高いラベリング関数が前記ラベルに該当すると判断した場合、高い値が付与され、信頼度の低いラベリング関数が前記ラベルに該当すると判断した場合、低い値が付与される
請求項1ないし5のいずれか1項に記載の処理装置。
【請求項7】
コンピュータが、入力データセットにラベル付けを行う、あるいはラベル付けができない場合は棄権するラベリング関数を含む関数データを参照して、
入力データセットを、前記ラベリング関数でラベル付けした結果から、各入力データセットに各ラベルに該当する確率を対応づける第1の出力データを出力するステップと、
前記コンピュータが、各入力データセットのうち、前記第1の出力データにおいて各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを特定するステップを備え、
前記特定するステップにおいて、前記第1の出力データから特定された入力データセットに対して新たに作成されたラベリング関数が、前記関数データに挿入される
を備える処理方法。
【請求項8】
コンピュータを、請求項1ないし請求項6のいずれか1項に記載の処理装置として機能させるための処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、処理装置、処理方法および処理プログラムに関する。
【背景技術】
【0002】
機械学習、特にいわゆる教師あり学習が、幅広い分野で普及している。教師あり学習は、入力データセットに正解を付した訓練データセットを事前に用意し、訓練データセットをもとに識別器が学習する。正解を付した訓練データセットの作成に要するコストが、機械学習における問題となる。
【0003】
コンピュータ処理により訓練データセットを追加する能動学習と弱教師あり学習が、提案される。
【0004】
能動学習では、既存の訓練データセットと識別器を用いて、正解なし入力データセット群のうち、正解がわかると識別子の性能が上がるデータセットを提示する。提示されたデータセットに正解が付されて、訓練データセットに追加する。
【0005】
弱教師あり学習は、正解を付す主体が持つ知見をルールに対応した関数をシステムに実装し、システムが関数に従って入力データセットに正解を付す。正解が付されたデータセットが訓練データセットに追加される。
【0006】
弱教師あり学習において、能動学習に類似する方法でルールを追加する技術もある(非特許文献1)。非特許文献1は、実装済みのルールを入力データセット群に適用した際、出力の多数決が割れる、または無投票な入力データセットを抽出する。抽出された入力データセットからランダムに選択された入力データセットについて、正解に導くためのルールを追加する。
【先行技術文献】
【非特許文献】
【0007】
【文献】Benjamin Cohen-Wang、外3名、" Interactive Programmatic Labeling for Weak Supervision"、2019年8月4日-8日、Workshop at KDD
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら非特許文献1に記載の方法は、ルール間の重複および矛盾への対応を考慮した弱教師あり学習の手法を生かしていない。出力の多数決が割れる、または無投票な入力データセットのうちランダムに抽出された入力データセットに対してルールが追加されるので、適切にルールが追加されるのに時間を要するなど、効率的な学習の実現が困難な場合がある。
【0009】
本発明は、上記事情に鑑みてなされたものであり、本発明の目的は、弱教師あり学習において正解を付すべき入力データセットを適切に提示可能な技術を提供することである。
【課題を解決するための手段】
【0010】
本発明の一態様の処理装置は、入力データセットにラベル付けを行う、あるいはラベル付けができない場合は棄権するラベリング関数を含む関数データを参照して、入力データセットを、ラベリング関数でラベル付けした結果から、各入力データセットに各ラベルに該当する確率を対応づける第1の出力データを出力する第1の処理部と、各入力データセットのうち、第1の出力データにおいて各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを特定する特定部を備え、特定部によって、第1の出力データから特定された入力データセットに対して新たに作成されたラベリング関数が、関数データに挿入される。
【0011】
本発明の一態様の処理方法は、コンピュータが、入力データセットにラベル付けを行う、あるいはラベル付けができない場合は棄権するラベリング関数を含む関数データを参照して、入力データセットを、ラベリング関数でラベル付けした結果から、各入力データセットに各ラベルに該当する確率を対応づける第1の出力データを出力するステップと、コンピュータが、各入力データセットのうち、第1の出力データにおいて各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを特定するステップを備え、特定するステップにおいて、第1の出力データから特定された入力データセットに対して新たに作成されたラベリング関数が、関数データに挿入される。
【0012】
本発明の一態様は、上記処理装置として、コンピュータを機能させる処理プログラムである。
【発明の効果】
【0013】
本発明によれば、弱教師あり学習において正解を付すべき入力データセットを適切に提示可能な技術を提供することができる。
【図面の簡単な説明】
【0014】
図1図1は、第1の実施の形態に係る処理装置の機能ブロックを説明する図である。
図2図2は、入力データのデータ構造の一例を説明する図である。
図3図3は、関数データのデータ構造の一例を説明する図である。
図4図4は、第1の実施の形態に係る処理装置による処理の概要を説明するフローチャートである。
図5図5は、ラベルあり入力データのデータ構造の一例を説明する図である。
図6図6は、第1の出力データのデータ構造の一例を説明する図である。
図7図7は、第1の実施の形態に係る第1の処理部による処理の概要を説明するフローチャートである。
図8図8は、第2の実施の形態に係る処理装置の機能ブロックを説明する図である。
図9図9は、第2の実施の形態に係る処理装置による処理の概要を説明するフローチャートである。
図10図10は、訓練データのデータ構造の一例を説明する図である。
図11図11は、第2の実施の形態に係る第2の処理部による処理の概要を説明するフローチャートである。
図12図12は、第3の実施の形態に係る処理装置の機能ブロックを説明する図である。
図13図13は、第3の実施の形態に係る処理装置による処理の概要を説明するフローチャートである。
図14図14は、処理装置による処理結果を説明する図である。
図15図15は、処理装置に用いられるコンピュータのハードウエア構成を説明する図である。
【発明を実施するための形態】
【0015】
以下、図面を参照して、本発明の実施形態を説明する。図面の記載において同一部分には同一符号を付し説明を省略する。
【0016】
(第1の実施の形態)
第1の実施の形態に係る処理装置1は、弱教師あり学習において、既存のラベリング関数による出力結果に基づいて、ラベリング関数を与える対象となる入力データセットを特定する。処理装置1は、特定された入力データセットに対してラベルを付すためのラベリング関数を既存のラベリング関数に追加することで、効率的にラベリング関数を生成することができる。
【0017】
図1に示す処理装置1は、入力データ5、関数データ6、第1の処理部10、特定部31、参照データセット32、新規ラベリング関数33、更新部34および出力部40を備える。これらの各要素のうち、処理部は、CPU901に実装され、データは、メモリ902またはストレージ903に記憶される。
【0018】
入力データ5は、ラベリング関数によってラベル付けされる対象となるデータである。入力データ5は、図2に示すように、複数の入力データセットの集合である。本発明の実施の形態において入力データ5が含む入力データセットの数は、|D|である。
【0019】
関数データ6は、入力データ5の各入力データセットをラベル付けするラベリング関数のデータである。ラベリング関数は、入力データセットにラベル付けを行う、あるいはラベル付けができない場合は棄権する関数である。関数データ6は、図3に示すように、複数のラベリング関数の集合である。本発明の実施の形態において関数データ6が含むラベリング関数の数は、|F|である。
【0020】
第1の処理部10は、入力データセットを、ラベリング関数でラベル付けした結果から、各入力データセットに各ラベルに該当する確率を対応づける第1の出力データ14を出力する。ここで、ラベルに該当する確率に、信頼度の高いラベリング関数が前記ラベルに該当すると判断した場合、高い値が付与され、信頼度の低いラベリング関数がラベルに該当すると判断した場合、低い値が付与される。第1の処理部10が、第1の出力データ14を出力する処理は、後に詳述する。
【0021】
特定部31は、各入力データセットのうち、第1の出力データ14において各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを、参照データセット32として特定する。各ラベルに該当する確率のばらつきが、所定の指標で表現される場合、特定部31は、ばらつきが、所定の閾値よりも大きい入力データセットを特定する。各ラベルに該当する確率のばらつきが大きい入力データセットは、参照データセット32として特定される優先度が高く、各ラベルに該当する確率のばらつきが小さい入力データセットは、参照データセット32として特定される優先度が低い。参照データセット32にラベルを付すための新規ラベリング関数33が生成される。参照データセット32の入力データセットの数および新規ラベリング関数33の関数の数は、任意である。
【0022】
新規ラベリング関数33、任意の主体Eによって生成される。例えば、特定部31が提示した参照データセット32に対して、ドメインエキスパートが、手動でラベリング関数を生成しても良い。既存の機械学習などコンピュータが、所定のプログラムによりラベリング関数を生成しても良い。既存のオントロジーなどの外部知識が、ラベリング関数を生成しても良い。
【0023】
更新部34は、特定部31によって、第1の出力データ14から特定された入力データセットに対して新たに作成されたラベリング関数が、関数データ6に挿入される。具体的には更新部34は、新規ラベリング関数33を関数データ6に挿入する。これにより、関数データ6が含むラベリング関数の数は、|F|よりも、新規ラベリング関数33の関数の数だけ増える。
【0024】
新規ラベリング関数33が追加された関数データ6を参照して、再度、第1の処理部10は、入力データ5の各入力データセットをラベル付けし、各入力データセットに各ラベルに該当する確率を対応づける第1の出力データ14を出力する。
【0025】
第1の処理部10および特定部31等による関数データ6の更新処理が、所定条件を満たすまで繰り返される。所定条件は、関数データ6に適切なラベリング関数が収容されたことを示す条件が設定される。所定条件は、例えば、参照データセット32のデータセット数がゼロになるまで、繰り返し回数、処理時間等で定められる。
【0026】
出力部40は、所定条件を満たした後に得られた第1の出力データ14に基づいて、学習結果を出力する。出力部40は、新たに作成されたラベリング関数が、関数データ6に挿入された後に、第1の処理部10を実行して得られた第1の出力データ14において、各入力データセットに最も高い確率に対応するラベルを対応づけて出力する。
【0027】
図4を参照して、第1の実施の形態に係る処理装置1の処理の概要を説明する。図4に示す処理は一例であって、これに限るものではない。
【0028】
まずステップS1において処理装置1は、第1の処理部10による処理で、第1の出力データ14を生成する。第1の出力データ14は、各入力データセットに各ラベルに該当する確率を対応づけるデータである。
【0029】
ステップS2において処理装置1は、関数データ6に適切な関数が収容され、学習結果を出力するタイミングであるか否かを判断する。例えばステップS1の処理が1回目である、または参照データセット32のデータセット数がゼロでないなど、ラベリング関数の追加の検討が必要で、学習結果を出力するタイミングでない場合、ステップS3に進む。一方ステップS1の処理を複数回繰り返した、または前回処理時の参照データセット32のデータセット数がゼロなど、ラベリング関数の追加が必要なく、学習結果を出力するタイミングの場合、ステップS6に進む。
【0030】
ステップS3において処理装置1は、第1の出力データ14において、各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを、参照データセット32として特定する。ステップS4において処理装置1は、ステップS3において特定された参照データセット32に対して生成された新規ラベリング関数33を取得する。ステップS5において処理装置1は、ステップS4で取得した新規ラベリング関数33を、既存のラベリング関数を収容する関数データ6に追加する。その後、ステップS1に戻って処理装置1は、新規ラベリング関数33を追加した関数データ6を参照して、第1の出力データ14を生成する。
【0031】
ステップS6において処理装置1は、学習結果として、各入力データセットに、第1の出力データ14において最も確率の高いラベルを対応づけて、出力する。
【0032】
(第1の処理部)
次に、第1の処理部10を説明する。第1の処理部10は、ラベル付け部11、ラベルあり入力データ12、モデル処理部13および第1の出力データ14を備える。
【0033】
ラベル付け部11は、入力データ5の各入力データセットを、関数データ6の各ラベリング関数で、ラベル付けして、その結果を、ラベルあり入力データ12として記憶する。ラベルあり入力データ12は、図5に示すように、入力データセットを特定する識別子と、ラベリング関数を特定する識別子に対応して、値が設定される。図5に示す例において、アルファベットvの後の1つ目の文字が、入力データセットを特定する識別子で、2つめの文字が、その入力データセットを処理したラベリング関数の識別子である。
【0034】
対応するラベリング関数で対応する入力データセットのラベルを判別できた場合、値に、その判別されたラベルの識別子が設定される。一方、対応するラベリング関数で対応する入力データセットのラベルを判別できない場合、値に、判別できなかったことを示す値が設定される。判別できなかったことを示す値は、例えば、0などで、ラベルの識別子で設定されない値が設定される。
【0035】
ラベルあり入力データ12が生成されると、モデル処理部13は、第1の出力データ14を生成する。第1の出力データ14は、各入力データセットに各ラベルに該当する確率を対応づける。第1の出力データ14は、図6に示すように、入力データセットを特定する識別子と、ラベルを特定する識別子に対応して、値が設定される。図6に示す例において、アルファベットvの後の1つ目の文字が、入力データセットを特定する識別子で、2つめの文字が、その入力データセットに対応するラベルの識別子である。なお図6に示す例は、入力データセットを、|L|個のラベルのいずれかを割り当てる場合を説明する。
【0036】
モデル処理部13は、ラベリングモデルにより、各ラベリング関数がどの程度信用できる投票しているか、ラベリング関数間で生じる重複および矛盾を元に、各入力データセットについて、各ラベルに該当する確率を算出する。モデル処理部13は、各ラベリング関数の信頼度を考慮して、信頼度の高い関数が付したラベルに対してより確率が高く、信頼度の低い関数が付したラベルに対してより確率が低くなるように、各入力データセットについて、各ラベルに該当する確率を返す。ラベリングモデルは、例えばSnorkelである。
【0037】
ここで、3ラベル{1,2,3}の識別問題において、3つのラベリング関数について、モデル処理部13の処理の一例を説明する。3つのラベリング関数は、それぞれ第1のラベルを判別する第1のラベリング関数、第2のラベルを判別する第2のラベリング関数および第3のラベルを判別する第3のラベリング関数である。各ラベリング関数の信頼度は、第1のラベリング関数が最も高く、第3のラベリング関数が最も低いとする。また各ラベリング関数は、ラベルを判別できた場合、判別したラベルの識別子を返し、ラベルを判別できず棄権する場合、0を返すとする。モデル処理部13は、1つの入力データセットについて、第1ないし第3のラベルに該当するそれぞれの確率を出力する。
【0038】
例えば、ある入力データセットについて、3つのラベリング関数がそれぞれ判別した結果が、{1,0,0}である場合、各ラベリング関数の信頼度を考慮して、モデル処理部13は、各ラベルに該当する確率として、{0.7,0.15,0.15}の確率を出力する。別の入力データセットについて、3つのラベリング関数がそれぞれ判別した結果が、{0,0,1}である場合、モデル処理部13は、各ラベルに該当する確率として、{0.25,0.25,0.5}の確率を出力する。信頼度が高いラベリング関数が判別した結果に対して、高い確率が設定され、信頼度が低いラベリング関数が判別した結果に対して、低い確率が設定される。
【0039】
判別した結果が{1,0,3}となるなど、1つの入力データセットについて、第1のラベリング関数が第1のラベルと判別し、第3のラベリング関数が第3のラベルと判別するような矛盾が起きる場合を説明する。モデル処理部13は、例えば{0.55,0.1,0.35}の確率を出力する。矛盾が生じた場合でも、信頼度が高いラベリング関数が判別した結果に対して、高い確率が設定され、信頼度が低いラベリング関数が判別した結果に対して、低い確率が設定される。
【0040】
判別した結果が{0,0,0}の場合、具体的には、各ラベリング関数が判別できないと判断した場合を説明する。モデル処理部13は、各ラベルに該当する確率を判断する材料がないので、例えば{0.33,0.33,0.33}の確率を出力する。
【0041】
このように、モデル処理部13は、各ラベリング関数の信頼度を考慮して、ラベリング関数の出力について、各データセットが各ラベルに該当する確率を算出する第1の出力データ14を生成する。
【0042】
図7を参照して、第1の処理部10による第1の処理を説明する。図7に示す処理は一例であって、これに限るものではない。
【0043】
第1の処理部10は、入力データ5の各入力データセットについて、ステップS51からS54の処理を繰り返す。
【0044】
第1の処理部10は、対象入力データセットおよび関数データ6の各ラベリング関数についてステップS51ないしステップS53の処理を繰り返す。ステップS51において第1の処理部10は、対象入力データセットを、対象ラベリング関数で判別できるかを判定する。判別できる場合、ステップS52において第1の処理部10は、対象入力データセットおよび対象ラベリング関数に、判別されたラベルの識別子を対応づける。判別できない場合、ステップS53において第1の処理部10は、対象入力データセットおよび対象ラベリング関数に、判別されないことを示す値を対応づける。
【0045】
対象入力データセットおよび各ラベリング関数について、ステップS51ないしステップS53の処理が終了すると、ステップS54に進む。ステップS54において第1の処理部10は、対象入力データセットについて、ラベリングモデルを用いて、各ラベルに該当する確率を対応づける。対象入力データセットについて、ステップS51ないしステップS54の処理が終了すると、新たな対象入力データセットについて、ステップS51ないしステップS54を処理する。
【0046】
入力データ5の各入力データセットについて、ステップS51ないしステップS54の処理が終了すると、ステップS55において第1の処理部10は、第1の出力データ14を出力する。第1の出力データ14は、ステップS54で生成した、入力データセットと各ラベルに該当する確率の対応付けの集合である。
【0047】
第1の処理部10によって第1の出力データ14が生成されると、特定部31は、各入力データセットのうち、第1の出力データ14において各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを特定する。各ラベルに該当する確率のばらつきが、所定の指標で表現される場合、特定部31は、ばらつきが、所定の閾値よりも大きい入力データセットを特定する。
【0048】
ここで、各ラベルに該当する確率が{1,0,0}である場合、確率のばらつきが最も低い。3つのラベリング関数の信頼がいずれも高く、1つのデータセットに対して、第1のラベリング関数のみがラベルを判別し、そのほかのラベリング関数が判別できないことを示すので、このデータセットが、第1のラベルに該当する確率は大変高く、確率のばらつきは低い。一方、各ラベルに該当する確率が{0.33,0.33,0.33}である場合、確率のばらつきが最も高い。いずれのラベリング関数も判別できないことを示すので、このデータセットについて、いずれかのラベルに該当する確率は大変低く、確率のばらつきは大きい。
【0049】
そこで特定部31は、各ラベルに該当する確率のばらつきが所定条件を満たすデータセットを、参照データセット32として特定する。所定条件は、例えば、ある入力データセットに対して、各ラベリング関数が棄権し、各ラベルに該当する確率が同率の場合、信頼性の低いラベリング関数が用いられ、各ラベルに該当する確率の差が少ない場合など、確率のばらつきが大きいことを示す。特定部31は、このような条件に予め合う入力データセットを、参照データセット32として特定する。
【0050】
所定条件は、各ラベルに該当する確率のばらつきの指標で設定されても良い。例えば所定条件は、エントロピーにより設定される。ある入力データセットについて各クラスに該当する確率が、{p1,p2,p3}の場合、特定部31は、エントロピーとして、-{p1log(p1)+p2log(p2)+p3log(p3)}を算出する。ある入力データセットについて算出されたエントロピーが所定の閾値よりも高い場合、その入力データセットを参照データセット32として特定する。特定部31は、各入力データセットのうち、各ラベルに該当する確率から算出されたエントロピーが所定の閾値よりも高い入力データセットを、参照データセット32として特定する。
【0051】
このように第1の実施の形態に係る処理装置1において、第1の処理部10が入力データセットをラベリング関数でラベル付けし、ラベリングモデルを用いて、各ラベリング関数の信頼度を考慮して、入力データセットが、各ラベルに該当する確率を算出して、第1の出力データ14を出力する。特定部31が、第1の出力データ14を参照して、各ラベルに該当する確率のばらつきが大きい入力データセットを特定する。特定された入力データセットにラベルを付すための新たなラベリング関数が生成される。
【0052】
処理装置1は、弱教師あり学習において作成するラベリング関数について、学習精度の向上につながるものを主体Eが作成できるように、主体Eに、ラベリング関数を作成すべき参照データセット32を提示する。主体Eは、その提示された参照データセット32をもとにラベリング関数を作成し、関数データ6に追加することにより、少ないコストで、効果的なラベリング関数を作成することができる。
【0053】
第1の実施の形態に係る処理装置1は、ラベリング関数の信頼性を考慮して算出された各ラベルに該当する確率から、新たにラベリング関数を生成する対象となる入力データセットを適切に特定することができる。新たにラベリング関数を生成する主体Eは、特定された入力データセットにラベルを付すためのラベリング関数を生成すればよいことから、処理装置1は、効果的なラベリング関数を増やすことができる。
【0054】
また第1の実施の形態に係る処理装置1は、入力データセットに対して、複数のラベリング関数により複数のラベルが付されるなど、ラベリング関数間で矛盾が生じる場合において、ラベリングモデルにより信頼性の高いラベリング関数により高い確率を付す。処理装置1は、ラベリング関数の信頼性も考慮して、ラベリング関数の出力結果連続値で評価するので、新たにラベリング関数を生成する際に参照される入力データセットを、より適切に、特定することができる。
【0055】
このように第1の実施の形態に係る処理装置1は、弱教師あり学習において正解を付すべき入力データセットを適切に提示することができるので、ラベリング関数の生成のコストを軽減と、ラベリング関数の品質の向上を実現することができる。
【0056】
(第2の実施の形態)
図8を参照して、第2の実施の形態に係る処理装置1aを説明する。処理装置1aは、図1に示す第1の実施の形態にかかる処理装置1と比べて、第2の処理部20を備える点、特定部31aおよび出力部40aが、第1の出力データ14でなく第2の出力データ24を参照する点が異なる。
【0057】
第2の処理部20は、各入力データセットに、第1の出力データ14において最も高い確率に対応するラベルを対応づけた複数の訓練データセットを識別器23に入力して、各入力データセットに各ラベルに該当する確率を対応づける第2の出力データ24を出力する。ここで、ラベルに該当する確率に、信頼度の高いラベリング関数が前記ラベルに該当すると判断した場合、高い値が付与され、信頼度の低いラベリング関数がラベルに該当すると判断した場合、低い値が付与される。第2の出力データ24は、第1の出力データ14と同様のデータ形式を有し、第1の出力データ14とは異なる方法で生成される。
【0058】
第2の実施の形態に係る特定部31aは、各入力データセットのうち、第2の出力データ24において各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを特定する。各ラベルに該当する確率のばらつきが、所定の指標で表現される場合、特定部31aは、ばらつきが、所定の閾値よりも大きい入力データセットを特定する。各ラベルに該当する確率のばらつきが大きい入力データセットは、参照データセット32として特定される優先度が高く、各ラベルに該当する確率のばらつきが小さい入力データセットは、参照データセット32として特定される優先度が低い。特定部31aによって、第2の出力データ24から特定された入力データセットに対して新たに作成された新規ラベリング関数33が、関数データ6に挿入される。
【0059】
新規ラベリング関数33が追加された関数データ6を参照して、再度、第1の処理部10は、入力データ5の各入力データセットをラベル付けし、各入力データセットに各ラベルに該当する確率を対応づける第1の出力データ14を出力し、第2の処理部20は、第1の出力データ14から第2の出力データ24を生成して出力する。
【0060】
第1の処理部10、第2の処理部20および特定部31a等による関数データ6の更新処理が、所定条件を満たすまで繰り返される。所定条件は、関数データ6に適切なラベリング関数が収容されたことを示す条件が設定される。所定条件は、例えば、参照データセット32のデータセット数がゼロになるまで、繰り返し回数、処理時間等で定められる。
【0061】
出力部40aは、所定条件を満たして得られた第2の出力データ24に基づいて、学習結果を出力する。出力部40aは、新たに作成されたラベリング関数が、関数データ6に挿入された後に、第2の処理部20を実行して得られた第2の出力データ24において、各入力データセットに最も高い確率に対応するラベルを対応づけて出力する。
【0062】
図9を参照して、第2の実施の形態に係る処理装置1aの処理の概要を説明する。図9に示す処理は一例であって、これに限るものではない。
【0063】
まずステップS101において処理装置1aは、第1の処理部10による処理で、第1の出力データ14を生成する。ステップS102において処理装置1aは、第2の処理部20による処理で、第2の出力データ24を生成する。第1の出力データ14および第2の出力データ24は、各入力データセットに各ラベルに該当する確率を対応づけるデータである。
【0064】
ステップS103において処理装置1aは、関数データ6に適切な関数が収容され、学習結果を出力するタイミングであるか否かを判断する。学習結果を出力するタイミングでない場合、ステップS104に進む。学習結果を出力するタイミングの場合、ステップS107に進む。
【0065】
ステップS104において処理装置1aは、第2の出力データ24において、各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを、参照データセット32として特定する。ステップS105において処理装置1aは、ステップS104において特定された参照データセット32に対して生成された新規ラベリング関数33を取得する。ステップS106において処理装置1aは、ステップS105で取得した新規ラベリング関数33を、既存のラベリング関数を収容する関数データ6に追加する。その後、ステップS101に戻って処理装置1aは、新規ラベリング関数33を追加した関数データ6を参照して、第1の出力データ14および第2の出力データ24を生成する。
【0066】
ステップS107において処理装置1aは、学習結果として、各入力データセットに、第2の出力データ24において最も確率の高いラベルを対応づけて、出力する。
【0067】
(第2の処理部)
次に、第2の処理部20を説明する。第2の処理部20は、生成部21、訓練データ22、識別器23および第2の出力データを備える。
【0068】
生成部21は、第1の出力データ14から訓練データ22を生成する。訓練データ22は、例えば図10に示すように、各入力データセットに、ラベルを対応づけたデータである。生成部21は、第1の出力データ14において、各入力データセットについて、最も確率の高いラベルを対応づけて、訓練データ22を生成する。
【0069】
識別器23は、学習済みの機械学習モデルである。識別器23は、訓練データ22を参照して、各入力データセットに各ラベルに該当する確率を対応づける第2の出力データ24を出力する。識別器23は、訓練データ22を参照して、各入力データセットについて、各ラベルに該当する確率を算出する。
【0070】
図11を参照して、第2の処理部20による第2の処理を説明する。図11に示す処理は一例であって、これに限るものではない。
【0071】
第2の処理部20は、入力データ5の各入力データセットについて、ステップS151からS152の処理を繰り返す。
【0072】
ステップS151において第2の処理部20は、対象入力データセットについて、第1の出力データにおいて最も高い確率を付けたラベルの識別子を対応づける。ステップS152において第2の処理部20は、対象入力データセットについて、識別器23で各ラベルに該当する確率を対応づける。対象入力データセットについて、ステップS151ないしステップS152の処理が終了すると、新たな対象入力データセットについて、ステップS151ないしステップS152を処理する。
【0073】
入力データ5の各入力データセットについて、ステップS151ないしステップS152の処理が終了すると、ステップS153おいて第2の処理部20は、第2の出力データ24を出力する。第2の出力データ24は、ステップS152で生成した、入力データセットと各ラベルに該当する確率の対応付けの集合である。
【0074】
第2の処理部20によって第2の出力データ24が生成されると、第2の実施の形態に係る特定部31aは、第1の実施の形態にかかる特定部31と同様に、各入力データセットのうち、第2の出力データ24において各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットを特定する。所定条件は、例えば、ある入力データセットに対して、各ラベリング関数が棄権し、各ラベルに該当する確率が同率の場合、信頼性の低いラベリング関数が用いられ、各ラベルに該当する確率の差が少ない場合など、確率のばらつきが大きいことを示す。特定部31aは、このような条件に予め合う入力データセットを、参照データセット32として特定する。
【0075】
所定条件は、各ラベルに該当する確率のばらつきの指標で設定されても良い。例えば所定条件は、エントロピーにより設定される。特定部31aは、各入力データセットのうち、各ラベルに該当する確率から算出されたエントロピーが所定の閾値よりも高い入力データセットを、参照データセット32として特定する。
【0076】
第2の実施の形態において処理装置1aは、第1の出力データ14から、第1の処理部10とは異なる処理を行う第2の処理部20によって、第2の出力データを生成し、第2の出力データ24において各ラベルに該当する確率のばらつきが所定条件を満たす入力データセットについて生成された新規ラベリング関数33を関数データ6に追加する。処理装置1aは、第2の処理部20における識別器23による結果を考慮して、新規ラベリング関数33を生成するために、識別器23の学習結果の向上に有効な入力データセットを特定することができる。
【0077】
(第3の実施の形態)
図12を参照して、第3の実施の形態に係る処理装置1bを説明する。処理装置1bは、図8に示す第2の実施の形態にかかる処理装置1aと比べて、特定部31bが、第1の出力データ14と第2の出力データ24の両方を参照する点が異なる。
【0078】
第1の実施の形態において、第1の出力データ14における各ラベルに該当する確率のばらつきから、参照データセット32が特定される。第2の実施の形態において、第2の出力データ24における各ラベルに該当する確率のばらつきから、参照データセット32が特定される。第3の実施の形態において、第1の出力データ14と第2の出力データ24との確率のばらつきに差のある入力データセットが、参照データセット32として特定される。
【0079】
特定部31bは、各入力データセットのうち、第1の出力データ14における各ラベルに該当する確率のベクトルと、第2の出力データ24における各ラベルに該当する確率のベクトルとの距離が閾値以上の入力データセットを、参照データセット32として特定する。特定部31bによって、第1の出力データ14における各ラベルに該当する確率のベクトルと第2の出力データ24における各ラベルに該当する確率のベクトルとの距離から特定された入力データセットに対して新たに作成された新規ラベリング関数33が、関数データ6に挿入される。
【0080】
特定部31bは、ある入力データセットについて、第1の処理部10によって得られた結果と第2の処理部20によって得られた結果に違いが見られる場合、関数データ6に適切なラベリング関数が収容されていないと考えられる。そこで、第1の処理部10によって得られた結果と第2の処理部20によって得られた結果に違いがある入力データセットを、参照データセット32として特定し、参照データセット32についての新規ラベリング関数を、関数データ6に収容する。
【0081】
図13を参照して、第3の実施の形態に係る処理装置1bの処理の概要を説明する。図13に示す処理は一例であって、これに限るものではない。
【0082】
まずステップS201において処理装置1bは、第1の処理部10による処理で、第1の出力データ14を生成する。ステップS202において処理装置1bは、第2の処理部20による処理で、第2の出力データ24を生成する。第1の出力データ14および第2の出力データ24は、各入力データセットに各ラベルに該当する確率を対応づけるデータである。
【0083】
ステップS203において処理装置1bは、関数データ6に適切な関数が収容され、学習結果を出力するタイミングであるか否かを判断する。学習結果を出力するタイミングでない場合、ステップS204に進む。学習結果を出力するタイミングの場合、ステップS207に進む。
【0084】
ステップS204において処理装置1bは、各入力データセットのうち、第1の出力データ14において、各ラベルに該当する確率のベクトルと、第1の出力データ14において、各ラベルに該当する確率のベクトルとの距離が、閾値以上の入力データセットを、参照データセット32として特定する。ステップS205において処理装置1bは、ステップS204において特定された参照データセット32に対して生成された新規ラベリング関数33を取得する。ステップS206において処理装置1bは、ステップS205で取得した新規ラベリング関数33を、既存のラベリング関数を収容する関数データ6に追加する。その後、ステップS201に戻って処理装置1bは、新規ラベリング関数33を追加した関数データ6を参照して、第1の出力データ14および第2の出力データ24を生成する。
【0085】
ステップS207において処理装置1bは、学習結果として、各入力データセットに、第2の出力データ24において最も確率の高いラベルを対応づけて、出力する。
【0086】
第3の実施の形態において処理装置1bは、第1の出力データ14と第2の出力データ24の出力結果の差に着目して、新規ラベリング関数33を特定するための参照データセット32を特定する。処理装置1bは、第1の実施の形態および第2の実施の形態と異なる視点で、参照データセット32を特定することができる。
【0087】
(第4の実施の形態)
参照データセット32とする入力データセットを特定する方法として、3つの方法を説明した。第1の実施の形態において、第1の出力データ14における各ラベルに該当する確率のばらつきから特定する方法を説明した。第2の実施の形態において、第2の出力データ24における各ラベルに該当する確率のばらつきから特定する方法を説明した。第3の実施の形態において、第1の出力データ14における各ラベルに該当する確率と第2の出力データ24における各ラベルに該当する確率の距離から特定する方法を説明した。
【0088】
第4の実施の形態において、これら3つの特定方法のうち、2つ以上の特定方法を統合して、入力データセットを特定しても良い。
【0089】
例えば、特定部31は、2つまたは3つの特定方法でのそれぞれの指標を統合した指標を算出して、統合した指標に従って、参照データセット32とする入力データセットを特定しても良い。統合した指標は、3つの特定方法で算出されるそれぞれの指標と正の相関を持つ。特定部31は、統合した指標の高い順に特定される各入力データセットを、参照データセット32として出力する。
【0090】
第4の実施の形態により、複数の観点で選択された入力データセットに対して新たなラベリング関数を生成することにより、関数データ6の多様性を効率的に実現することができる。
【0091】
(検証)
ここで、本発明の実施の形態に係る処理装置1の検証を説明する。ここでは、第4の実施の形態に示すように、第1の実施の形態ないし第3の実施の形態でそれぞれ説明した指標と正の相関を持つ指標を用いる。
【0092】
検証として、疑問文分類を例に説明する。疑問文分類は、疑問文に対して何を問われているかを分類する問題である。TREC6(TREC:Text REtrieval Conference)データセットは、ABBR(略語)、DESC(記述)、ENTY(もの)、LOC(場所)、HUM(人または組織)、NUM(数)の6つのラベルに分類する。入力データ5の入力データセットは、疑問文で始まる文章である。
【0093】
ラベリング関数の例を以下に示す。表1に示すラベリング関数は、疑問文が“Where”で始まれば“LOC”という正解付けを行い、それ以外の場合は棄権することを示す。
def lf_where:
if sentence.startswith(‘Where’):
return ‘LOC’
return ‘ABSTAIN’
【0094】
モデル処理部13が参照するラベリングモデルに、オープンソースソフトウェアのSnorkelを用いる。識別器23に、Bidirectional LSTM(Long Short Term Memory)を用いる。
【0095】
特定部31が、入力データ5の入力データセットから参照データセット32を特定する際の優先度の算出方法を説明する。TREC6データセットは、6つに分類されるため、ラベリングモデルの出力は、6ラベルのそれぞれの確率となる。特定部31は、第1の出力データ14における各ラベルに該当する確率のばらつきとして、第1の出力データ14を参照して、各入力データセットについて、その確率のエントロピーを算出する。
【0096】
各データに対する識別器23の出力も6クラスそれぞれの確率となる。特定部31は、第2の出力データ24における各ラベルに該当する確率のばらつきとして、第2の出力データ24を参照して、各入力データセットについて、その確率のエントロピーを算出する。
【0097】
第1の出力データ14における各ラベルに該当する確率と第2の出力データ24における各ラベルに該当する確率の距離として、特定部31は、各入力データセットについて、両確率をベクトルとしたコサイン類似度cosθから、1-cosθを算出する。
【0098】
検証において優先度は、第1の出力データ14から算出されたエントロピー、第2の出力データ24から算出されたエントロピー、および第1の出力データ14および第2の出力データ24の確率の類似度cosθから算出された1-cosθの各指標の、積または対数和が用いられる。
【0099】
特定部31が、参照データセット32として、入力データ5から、優先度が上位10個の疑問文を特定し、特定された疑問文を主体Eに提示する。主体Eは、提示された疑問文の中で、各疑問文に付された優先度を考慮しつつ、多くの疑問文に適用できる新規ラベリング関数33を生成する。新規ラベリング関数33は、関数データ6に挿入される。
【0100】
例えば、参照データセット32として、表2に示す10文が提示されたとする。表2は、優先度の高い順に、文章を並べる。表2に示す10文から、“How many”および“How far”等の“How + 数量を表す形容詞”で始まる文を、ラベル“NUM”と判別するラベリング関数が生成されれば良いことがわかる。
【0101】
How many yards are in 1 mile?
How many questions are on this thing?
Tell me what city the Kentucky Horse Park is near?
How many cullions does a male have?
How many horses are there on a polo team?
How far is the longest hole in 1 on any golf course and where did it happen?
Which city has the oldest relationship as a sister city with Los Angeles?
How many events make up the decathlon?
How many neurons are in the human brain?
How many types of cheese are there in France?
【0102】
ここで、検証のため、事前に追加しうるラベリング関数を予め用意した上で、関数データ6に6つのラベリング関数を設定し、その後、ラベリング関数を1つずつ追加する場合を説明する。主体Eの作業を模するため、コンピュータが、特定部31が提示した参照データセット32で示された10の文章に対して、ラベリング関数を追加することで正解を出せる文章の優先度を算出し、最大の優先度となるラベリング関数を、関数データ6に追加した。ラベリング関数の候補が、参照データセット32として提示された各疑問文に対してそれぞれ棄権した場合、参照データセット32の次に優先度が高い疑問文に対して、同様の処理を行う。
【0103】
ここで検証として、実施の形態に係る提案手法を用いた場合のほか、非特許文献1に記載の方法を用いた場合、ランダムに文章を追加する場合、およびランダムにラベリング関数を追加した場合を用いる。どの手法においても、関数データ6に最初に設定される6つラベリング関数は、同じである。
【0104】
非特許文献1に記載の方法において、多クラス識別に拡張し、全てのラベリング関数に棄権された疑問文を優先度1位、投票されているが同点トップが複数あれば優先度2位とする。優先度1位の数が10より多い場合、優先度1位のなかからランダムで10文を選択し、不足する場合、優先度2位の疑問文を合わせて、ランダムに10文が選択される。それら10文に対して全ラベリング関数候補について適用できる文数が多いものが、新規ラベリング関数として追加される。適用可能文数が同数であれば、その中からランダムに選択される。
【0105】
ランダムに文章を追加する方法において、主体Eに提示する10文がランダムに選択され、選択された10文に対して、全ラベリング関数候補を適用できる文数が多い文章が、新規ラベリング関数として追加される。適用可能文数が同数であれば、その中からランダムに選択される。
【0106】
このように4つの方法でラベリング関数を追加した結果を、図14に示す。縦軸は、検証の指標であるマクロF値であって、横軸は、ラベリング関数の数である。
【0107】
実施の形態に係る提案手法を用いた場合、ラベリング関数の追加が少ない状態において、他の方法よりもF値が高い。従って、本発明の実施の形態に係る処理装置1は、高精度かつ効率的にラベリング関数を追加できる。
【0108】
上記説明した本実施形態の処理装置1は、例えば、CPU(Central Processing Unit、プロセッサ)901と、メモリ902と、ストレージ903(HDD:Hard Disk Drive、SSD:Solid State Drive)と、通信装置904と、入力装置905と、出力装置906とを備える汎用的なコンピュータシステムが用いられる。このコンピュータシステムにおいて、CPU901がメモリ902上にロードされた処理プログラムを実行することにより、処理装置1の各機能が実現される。
【0109】
なお、処理装置1は、1つのコンピュータで実装されてもよく、あるいは複数のコンピュータで実装されても良い。また処理装置1は、コンピュータに実装される仮想マシンであっても良い。
【0110】
処理装置1プログラムは、HDD、SSD、USB(Universal Serial Bus)メモリ、CD (Compact Disc)、DVD (Digital Versatile Disc)などのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。
【0111】
なお、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【符号の説明】
【0112】
1 処理装置
5 入力データ
6 関数データ
10 第1の処理部
11 ラベル付け部
12 ラベルあり入力データ
13 モデル処理部
14 第1の出力データ
20 第2の処理部
21 生成部
22 訓練データ
23 識別器
24 第2の出力データ
31 特定部
32 参照データセット
33 新規ラベリング関数
34 更新部
901 CPU
902 メモリ
903 ストレージ
904 通信装置
905 入力装置
906 出力装置
E 主体
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15