(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-08
(45)【発行日】2022-03-16
(54)【発明の名称】データに対するラベル付けの優先順位を決める方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20220309BHJP
【FI】
G06N20/00 130
【外国語出願】
(21)【出願番号】P 2020125751
(22)【出願日】2020-07-22
【審査請求日】2020-09-11
(31)【優先権主張番号】10-2019-0091059
(32)【優先日】2019-07-26
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】520119138
【氏名又は名称】スアラブ カンパニー リミテッド
(74)【代理人】
【識別番号】240000327
【氏名又は名称】弁護士法人クレオ国際法律特許事務所
(72)【発明者】
【氏名】チュ ミンキュ
【審査官】多胡 滋
(56)【参考文献】
【文献】米国特許出願公開第2018/0336481(US,A1)
【文献】特開2015-129988(JP,A)
【文献】Jorg D. Wichard,Model Selection in an Ensemble Framework,[online],IEEE,2006年07月21日,pp.2187-2192,インターネット<URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1716382>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラムであって、前記コンピュータープログラムは1つ以上のプロセッサーに以下の段階を実行させるための命令を含み、
前記段階は、
2つ以上のトレーニングデータセット及びそれに対応するラベル付けの値に基づき学習される、1つ以上のネットワーク関数を含む複数の推論モデルに基づき、任意のデータに対する複数の推論結果を生成する段階、
前記複数の推論結果に基づき前記任意のデータに対する単一の推論結果を生成する段階、及び、
前記単一の推論結果が予め決められた基準を満たしていない場合、前記単一の推論結果及び少なくとも1つのしきい値に基づいて、前記任意のデータに対するラベル付けの優先順位を決める段階、
を含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項2】
請求項1において、
少なくとも、
ラベル付けされていない全体データセットから少なくとも2つ以上のデータを含むデータサブセットを生成する段階、
前記データサブセットから2つ以上のトレーニングデータセットを生成する段階であって、前記2つ以上のトレーニングデータセットは相異する検証データセットを含むサンプリングされたデータサブセットのペアを少なくとも1つ含む、段階、及び、
前記2つ以上のトレーニングデータセット及びそれに対応するラベル付けの値に基づき複数の推論モデルを学習させる段階、
によって前記1つ以上のネットワーク関数を含む前記複数の推論モデルを学習させる、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項3】
請求項
2において、
前記データサブセットから2つ以上のトレーニングデータセットを生成する段階は、
前記トレーニングデータセットに基づき、それぞれ固有の検証データセットを含む複数のトレーニングデータセットを生成する段階、
を含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項4】
請求項
3において、
前記トレーニングデータセットに基づき、それぞれ固有の検証データセットを含む複数のトレーニングデータセットを生成する段階は、
前記トレーニングデータセットをN個のデータ下位サブセットに分割する段階、及び
前記N個のデータ下位サブセットの中から少なくとも1つを検証データセットに割り当てる段階、
を含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項5】
請求項1において、
前記複数の推論モデルは、
互いに相異する形を含む2つ以上のネットワーク関数を含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項6】
請求項1において、
前記任意のデータに対する
前記複数の推論結果を提供する段階を
さらに含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項7】
請求項
1において、
前記複数の推論結果は、
個々の推論モデルが任意のデータに対して推論した分類結果及び個々の前記分類結果に係る確信度スコア(confidence score)を含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項8】
請求項
1において
、
前記単一の推論結果を提供する段階を
さらに含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項9】
請求項
1において
、
前記単一の推論結果が予め決められた基準を満たしている場合、対応する任意のデータに疑似ラベル(pseudo label)を付与する段階、
を
さらに含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項10】
請求項
9において、
前記単一の推論結果が予め決められた基準を満たしている場合、対応する任意のデータに疑似ラベルを付与する段階は、
前記単一の推論結果に含まれた不確実性の値が予め設定されたしきい値以下である場合、前記単一の推論結果に含まれた分類の予測結果を前記任意のデータに対する疑似ラベルにすると決める段階、
を含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項11】
請求項
1において、
前記単一の推論結果が前記予め決められた基準を満たしていない場合、前記単一の推論結果及び前記少なくとも1つのしきい値に基づいて、前記任意のデータに対する前記ラベル付けの優先順位を決める段階は、
前記任意のデータ
の前記単一の推論結果に含まれる不確実性の値が予め設定された第1しきい値以下である場合、前記任意のデータに第1優先順位を付与する段階、
前記任意のデータ
の前記単一の推論結果に含まれる不確実性の値が前記第1しきい値を超過し、予め設定された第2しきい値以下である場合、前記任意のデータに第2優先順位を付与する段階、及び
前記任意のデータ
の前記単一の推論結果に含まれる不確実性の値が前記第2しきい値を超過する場合、前記任意のデータに第3優先順位を付与する段階、
を含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項12】
請求項5において、
前記複数の推論モデルは、
互いに相異する形を含む2つ以上のネットワーク関数を含む、
コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラム。
【請求項13】
ラベル付けの優先順位を決めるためのコンピューティング装置であって、
プロセッサー、
保存部、及び
通信部、
を含み、
前記プロセッサーは、
2つ以上のトレーニングデータセット及び対応するラベル付けの値に基づき学習された、1つ以上のネットワーク関数を含む複数の推論モデルに基づき、任意のデータに対する複数の推論結果を生成し、
前記複数の推論結果に基づき前記任意のデータに対する単一の推論結果を生成し、かつ、
前記単一の推論結果が予め決められた基準を満たしていない場合、前記単一の推論結果及び少なくとも1つのしきい値に基づいて、前記任意のデータに対するラベル付けの優先順位を決める、
コンピューティング装置。
【請求項14】
請求項13において、
前記プロセッサーは
、前記任意のデータに対する複数の推論結果を提供する、
コンピューティング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピューティング装置を利用してデータラベル付けのための工数を減らすことに関し、さらに具体的には、データに対するラベル付けの優先順位を決めるソリューションに関するものである。
【背景技術】
【0002】
マシンラーニングに基づく人工知能技術の発展により、マシンラーニングモデルを学習させるために求められるデータの重要性が高まってきている。例えば、自動運転自動車にはpixel-wise labelの画像が最低1億枚必要だとされている。このようなデータの重要性は、GIGO(Garbage-In Garbage-Out)という言葉で表すことができる。
【0003】
マシンラーニングモデルを学習させるための教師あり学習(supervised learning)では、データに対するラベル付けが必要である。このデータに対するラベル付けは、一般的に人間の手作業によって行われる。ラベル付けが必要なデータの量は、幾何級数的に増える一方、手作業の速度には限界がある。従って、当業界には、ラベル付けを効率的に行えるようにするソリューションに対するニーズが存在し得る。
【0004】
米国特許公開公報16/027161は、マシンラーニングのトレーニングデータ選択のための方法を開示している。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本開示は、前述の背景技術に対応して案出されたものであり、データに対するラベル付けにおいて優先順位を決めるソリューションを提供するものである。
【0006】
本開示の技術的課題は、以上で述べた技術的課題に限定されず、以上で触れていないさらなる技術的課題も、以下の記載から当業者に明確に理解できるものである。
【課題を解決するための手段】
【0007】
前述のような課題を解決するための本開示の一実施例に基づき、コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラムが開示される。前述のコンピュータープログラムは、1つ以上のプロセッサーに以下の段階を実行させるための命令を含み、前述の段階は、ラベル付けされていない全体データセットから少なくとも2つ以上のデータを含むデータサブセットを生成する段階、前述のデータサブセットから2つ以上のトレーニングデータセットを生成する段階-前述の2つ以上のトレーニングデータセットは相異する検証データセットを含むサンプリングされたデータサブセットのペアを少なくとも1つ含む-、前述の2つ以上のトレーニングデータセット及びそれに対応するラベル付けの値に基づき複数の推論モデルを学習させる段階、を含むことができる。
【0008】
また、前述のデータサブセットから2つ以上のトレーニングデータセットを生成する段階は、前述のトレーニングデータセットに基づき、それぞれ固有の検証データセットを含む複数のトレーニングデータセットを生成する段階、を含むことができる。
【0009】
また、前述のトレーニングデータセットに基づき、それぞれ固有の検証データセットを含む複数のトレーニングデータセットを生成する段階は、前述のトレーニングデータセットをN個のデータ下位サブセットに分割する段階、及び前述のN個のデータ下位サブセットの中から少なくとも1つを検証データセットに割り当てる段階、を含むことができる。
また、前述の複数の推論モデルは、互いに相異する形を含む2つ以上のネットワーク関数を含むことができる。
【0010】
前述のような課題を解決するための本開示の一実施例に基づき、コンピューターで読み取り可能な保存媒体に保存されたコンピュータープログラムが開示される。前述のコンピュータープログラムは、1つ以上のプロセッサーに以下の段階を実行させるための命令を含み、前述の段階は、2つ以上のトレーニングデータセット及びそれに対応するラベル付けの値に基づき学習された、1つ以上のネットワーク関数を含む複数の推論モデルに基づき、任意のデータに対する複数の推論結果を生成する段階、及び前述の任意のデータに対する複数の推論結果を提供する段階、を含むことができる。
【0011】
また、前述の複数の推論結果は、個々の推論モデルが任意のデータに対して推論した分類結果と、前述の分類結果個々に係る確信度スコア(confidence score)とを含むことができる。
【0012】
また、前述の任意のデータに対する複数の推論結果を提供する段階は、前述の任意のデータに対する複数の推論結果に基づき任意のデータに対する単一の推論結果を生成する段階、及び前述の単一の推論結果を提供する段階、を含むことができる。
【0013】
また、前述の単一の推論結果を決める段階は、前述の単一の推論結果が予め決められた基準を満たしている場合、対応する任意のデータに疑似ラベル(pseudo label)を付与する段階、を含むことができる。
【0014】
また、前述の単一の推論結果が予め決められた基準を満たしている場合、対応する任意のデータに疑似ラベルを付与する段階は、前述の単一の推論結果に含まれた不確実性の値が予め設定されたしきい値以下である場合、前述の単一の推論結果に含まれた分類の予測結果を前述の任意のデータに対する疑似ラベルにすると決める段階、を含むことができる。
【0015】
また、前述の単一の推論結果を提供する段階は、前述の疑似ラベルが付与されていない任意のデータに対し、前述の単一の推論結果に対応するラベル付けの優先順位を決める段階、をさらに含むことができる。
【0016】
また、前述の疑似ラベルが付与されていない任意のデータに対し、前述の単一の推論結果に対応するラベル付けの優先順位を決める段階は、前述の任意のデータに対する前述の不確実性の値が予め設定された第1しきい値以下である場合、前述の任意のデータに第1優先順位を付与する段階、前述の任意のデータに対する前述の不確実性の値が前述の第1しきい値を超過し、予め設定された第2しきい値以下である場合、前述の任意のデータに第2優先順位を付与する段階、及び前述の任意のデータに対する前述の不確実性の値が前述の第2しきい値を超過する場合、前述の任意のデータに第3優先順位を付与する段階、を含むことができる。
【0017】
また、前述の複数の推論モデルは、互いに相異する形を含む2つ以上のネットワーク関数を含むことができる。
【0018】
前述のような課題を解決するための本開示の一実施例に基づき、ラベル付けの優先順位を決めるためのコンピューティング装置が開示される。前述のラベル付けの優先順位を決めるためのコンピューティング装置は、プロセッサー、保存部、及び通信部、を含み、前述のプロセッサーは、ラベル付けされていない全体データセットから少なくとも2つ以上のデータを含むデータサブセットを生成し、前述のデータサブセットから2つ以上のトレーニングデータセットを生成し-前述の2つ以上のトレーニングデータセットは、それぞれ異なるデータサブセットを含む、サンプリングされたデータサブセットのペアを少なくとも1つ含む-、前述の2つ以上のトレーニングデータセット及びそれに対応するラベル付けの値に基づき複数の推論モデルを学習させることができる。
【0019】
前述のような課題を解決するための本開示の一実施例に基づき、ラベル付けの優先順位を決めるためのコンピューティング装置が開示される。前述のラベル付けの優先順位を決めるためのコンピューティング装置は、プロセッサー、保存部、及び通信部、を含み、前述のプロセッサーは、2つ以上のトレーニングデータセット及びそれに対応するラベル付けの値に基づき学習された、1つ以上のネットワーク関数を含む複数の推論モデルに基づき、任意のデータに対する複数の推論結果を生成し、前述の任意のデータに対する複数の推論結果を提供できる。
【0020】
本開示から得られる技術的解決手段は、以上で述べた解決手段に限られず、以上で述べられていないさらなる解決手段が、以下の記載により、本開示が属する技術分野において通常の知識を持つ者に明確に理解されることができる。
【発明の効果】
【0021】
本開示は、マシンラーニングモデルの学習用データ収集ソリューションに関するものである。
【0022】
本開示から得られる効果は以上で述べた効果に限られず、以上で述べられていないさらなる効果が、以下の記載により、本開示が属する技術分野において通常の知識を持つ者に明確に理解されることができる。
【0023】
これから多様な様相について、図面を参照しながら記載するが、ここで類似の参照番号は、総括的に類似の構成要素を指すために使われる。以下の実施例において、説明目的で、多数の特定の細部事項が1つ以上の様相を総体的に理解できるようにするために提示される。しかし、これらの(複数の)様相がこれらの具体的な細部事項がなくても実施されることができることは明らかである。
【図面の簡単な説明】
【0024】
【
図1】
図1は、本開示の一実施例に係るデータラベル付けの優先順位を決める方法を実行するコンピューティング装置の構成を示すブロック図である。
【
図2】
図2は、本開示の一実施例に係る人工神経網の一部を示す概略図である。
【
図3】
図3は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数の推論モデルを学習させる一例を示すフローチャートである。
【
図4】
図4は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、全体データセットからデータサブセットを生成する一例を示す図面である。
【
図5】
図5は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、データサブセットから複数のトレーニングデータセットを生成する一例を示す図面である。
【
図6】
図6は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数のトレーニングデータセットを生成する一例を示すフローチャートである。
【
図7】
図7は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数の推論モデルを生成する一例を示す図面である。
【
図8】
図8は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数の推論結果を提供する一例を示すフローチャートである。
【
図9】
図9は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数の推論結果を生成する一例を示す図面である。
【
図10】
図10は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、任意のデータに対する単一の推論結果を提供する一例を示すフローチャートである。
【
図11】
図11は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、単一の推論結果を決める一例を示すフローチャートである。
【
図12】
図12は、本開示の複数の実施例が具現化されることのできる例示的なコンピューティング環境を示す簡略で一般的な概略図である。
【発明を実施するための形態】
【0025】
本明細書において、「コンポーネント」、「モジュール」、「システム」等の用語は、コンピューター関連エンティティ、ハードウェア、ファームウェア、ソフトウェア、ソフトウェアとハードウェアとの組み合わせ、またはソフトウェアの実行を指す。例えば、コンポーネントは、プロセッサー(110)上で実行される処理手順(procedure)、プロセッサー(110)、オブジェクト、実行スレッド、プログラム、及び/またはコンピューターになり得るが、これらに限定されるものではない。例えば、コンピューティング装置(100)で実行されるアプリケーションとコンピューティング装置(100)は、両方ともコンポーネントになり得る。1つ以上のコンポーネントは、プロセッサー(110)及び/または実行スレッドの中に常駐することができる。1つのコンポーネントは、1つのコンピューターの中でローカル化されることができる。1つのコンポーネントは、2つ以上のコンピューターに配分されることができる。また、このようなコンポーネントは、その内部に保存された多様なデータ構造を持つ、コンピューターで読み取り可能な多様な媒体で実行することができる。コンポーネントは、例えば1つ以上のデータパケットを持つ信号(例えば、ローカルシステム、分散システムにおいて、他のコンポーネントと相互作用する1つのコンポーネントからのデータ及び/または信号を通じて、他のシステムと、インターネットのようなネットワークを通じて伝送されるデータ)によってローカル及び/または遠隔処理等を通じて通信することができる。
【0026】
さらに、ここで用いられる用語「または」は、排他的な「または」ではなく、内包的「または」を意味する意図で使われる。つまり、特に特定されておらず、文脈上明確ではない場合、「XはAまたはBを利用する」は、自然な内包的置換のうち1つを意味する意図を持つ。つまり、XがAを利用したり、XがBを利用したり、またはXがA及びBの両方を利用する場合、「XはAまたはBを利用する」は、これらのいずれにも当てはまるとすることができる。また、本明細書における「及び/または」という用語は、取り挙げられた関連アイテムのうち、1つ以上のアイテムの可能なすべての組み合わせを指し、それらを含むと理解されるべきである。
【0027】
また、述語としての「含む(含める)」及び/または修飾語として「含む(含める)」という用語は、当該特徴及び/または構成要素が存在することを意味するものと理解されるべきである。ただし、述語としての「含む(含める)」及び/または修飾語として「含む(含める)」という用語は、1つ以上の他のさらなる特徴、構成要素及び/またはこれらのグループが存在すること、または追加されることを排除しないものと理解されるべきである。また、特に特定されていない場合や、単数の形を示すことが文脈上明確でない場合、本明細書と請求範囲において単数は、一般的に「1つまたはそれ以上」を意味するものと解釈されるべきである。
【0028】
当業者は、さらに、ここに開示される実施例に係るものとして説明された多様な例示的論理的ブロック、構成、モジュール、回路、手段、ロジック及びアルゴリズム段階が、電子ハードウェア、コンピューターソフトウェア、またはその両方の組み合わせによって実現できることを認識すべきである。ハードウェアとソフトウェアとの相互交換性を明確に例示するために、多様な例示的コンポーネント、ブロック、構成、手段、ロジック、モジュール、回路及び段階が、それらの機能性の側面から一般的に上述された。そのような機能性がハードウェアとしてまたはソフトウェアとして実装されるか否かは、全般的なシステムに係る特定のアプリケーション(application)及び設計制限によって決まる。熟練した技術者は、個々の特定アプリケーションのために多様な方法で説明された機能を実現できる。ただし、そのような実現に係る決定が本開示内容の領域を逸脱するものと解釈されてはならない。
【0029】
ここに示す実施例に係る説明は、本開示の技術分野において通常の知識を持つ者が本発明を利用したりまたは実施できるように提供される。このような実施例に対する多様な変形は、本開示の技術分野において通常の知識を持つ者には明確である。ここに定義された一般的な原理は、本開示の範囲を逸脱することなく他の実施例に適用されることができる。従って、本発明はここに示す実施例だけに限定されるものではない。本発明はここに示す原理及び新規な特徴と一貫する最広義の範囲で解釈されるべきである。
【0030】
本開示の一実施例におけるサーバーには、サーバーのサーバー環境を実装するための他の構成が含まれることが可能である。サーバーは形を問わずあらゆる装置をすべて含むことができる。サーバーはデジタル機器として、ラップトップコンピューター、ノートパソコン、デスクトップコンピューター、ウェブパッド、携帯電話のようにプロセッサー(110)を搭載しておりメモリーを備えた演算能力を持つデジタル機器になり得る。サーバーはサービスを処理するウェブサーバーになり得る。前述のサーバーの種類は例示に過ぎず、本開示はこれによって限定されない。
【0031】
本明細書におけるネットワーク関数は、人工神経網(200)、ニューラルネットワークと相互交換可能な形で使われることができる。本明細書におけるネットワーク関数は、1つ以上のニューラルネットワークを含むこともでき、この場合、ネットワーク関数の出力は、1つ以上のニューラルネットワークの出力のアンサンブル(ensemble)になり得る。
【0032】
本明細書において、モデルはネットワーク関数を含むことができる。モデルは1つ以上のネットワーク関数を含むこともでき、この場合、モデルの出力は、1つ以上のネットワーク関数の出力のアンサンブルになり得る。
【0033】
図1は、本開示の一実施例に係るデータラベル付けの優先順位を決める方法を実行するコンピューティング装置の構成を示すブロック図である。
【0034】
コンピューティング装置(100)は、プロセッサー(110)と保存部(120)を含むことができる。プロセッサー(110)は、1つ以上のコアで構成されることができ、コンピューティング装置(100)の中央処理装置(CPU:central processing unit)、汎用グラフィック処理装置(GPGPU:general purpose graphics processing unit)、テンサー処理装置(TPU:tensor processing unit)等のラベル付けの優先順位を決める方法を実行するためのプロセッサー(110)を含むことができる。プロセッサー(110)は、保存部(120)に保存されたコンピュータープログラムを読み取り、本開示の一実施例に係るデータに対するラベル付けの優先順位を決める方法を実行することができる。本開示の一実施例に基づき、プロセッサー(110)は、神経網(200)の学習のための計算を実行することができる。プロセッサー(110)は、ディープラーニング(DN:deep learning)において学習のための入力データの処理、入力データからのフィーチャー(feature)抽出、誤差計算、逆伝播(backpropagation)を利用した神経網(200)の重み更新等の神経網(200)の学習のための計算を実行することができる。
【0035】
プロセッサー(110)のCPU、GPGPU及びTPUのうち、少なくとも1つがトレーニングデータセット(500)を生成し、複数の推論モデル(600)の学習を処理することができる。また、本開示の一実施例において、複数のコンピューティング装置(100)のプロセッサー(110)を一緒に使って、学習されたモデルを利用した複数の推論結果(700)を生成し、複数の推論結果(700)、単一の推論結果及び疑似ラベル(pseudo label)を提供できる。また、本開示の一実施例に係るコンピューティング装置(100)で実行されるコンピュータープログラムは、CPU、GPGPUまたはTPUで実行可能プログラムになり得る。
【0036】
保存部(120)は、本開示の一実施例に係るラベル付けの優先順位を決める方法を実行するためのコンピュータープログラムを保存することができ、保存されたコンピュータープログラムは、プロセッサー(110)によって読み取られ実行されることができる。
本開示の実施例に係る保存部(120)は、プロセッサー(110)の動作のためのプログラムを保存することができ、入/出力されるデータ(例えば、サービスへのアクセス情報、ユーザー情報、代替サービスへのアクセス情報等)を一時的または永久に保存することもできる。前述の保存部(120)は、ディスプレイや音響に係るデータを保存することができる。保存部(120)は、フラッシュメモリータイプ(flash memory type)、ハードディスクタイプ(hard disk type)、マルチメディアカードマイクロタイプ(multimedia card micro type)、カードタイプの保存部(例えばSDまたはXDメモリー等)、ラム(random Access Memory、RAM)、SRAM(Static random Access Memory)、ロム(Read-Only Memory、ROM)、EEPROM(Electrically Erasable Programmable Read-Only Memory)、PROM(Programmable Read-Only Memory)、磁気メモリー、磁気ディスク、光ディスクのうち、少なくとも1つのタイプの保存媒体を含むことができる。
【0037】
図2は、本開示の一実施例に係る人工神経網の一部を示す概略図である。
【0038】
本明細書を通して、神経網(200)、ネットワーク関数、ニューラルネットワーク(neural network)は同じ意味で使われることができる。神経網(200)は、一般的に「ノード」と称されることのできる相互連結された計算単位の集合により構成されることができる。このようなノードは、「ニューロン(neuron)」と称されることもできる。神経網(200)は、少なくとも1つ以上のノードを含めて構成される。神経網(200)を構成するノード(またはニューロン)は、1つ以上のリンクによって相互連結されることができる。
【0039】
神経網(200)内部で、リンクによって繋がっている1つ以上のノードは、相対的に入力ノードと出力ノードの関係を形成することができる。入力ノードと出力ノードという概念は、相対的なものであり、あるノードに対し出力ノードの関係にある任意のノードは、他のノードとの関係においては入力ノードになることがあり、その逆のことも成立することができる。前述のように、入力ノードと出力ノードとの関係は、リンクを中心にして生成されることができる。1つの入力ノードに1つ以上の出力ノードがリンクによって繋がることができ、その逆も成立することができる。
【0040】
1つのリンクによって繋がっている入力ノードと出力ノードとの関係において、出力ノードは入力ノードに入力されたデータに基づきその値が決まることができる。ここで入力ノードと出力ノードとを相互連結するノードには重み(weight)が付けられることができる。重みは可変的なものになることもあり、神経網(200)が求める機能を遂行するために、ユーザーまたはアルゴリズムによって変わることができる。例えば、1つの出力ノードに1つ以上の入力ノードのそれぞれが、リンクによって相互連結されている場合、出力ノードは前述の出力ノードと繋がっている複数の入力ノードに入力された値と、各入力ノードに対応するリンクに設定された重みに基づき出力ノードの値を決めることができる。
【0041】
前述のように、神経網(200)は、1つ以上のノードが1つ以上のリンクによって相互連結され神経網(200)の中で入力ノードと出力ノードの関係を形成する。神経網(200)の中でノードとリンクの数、ノードとリンクとの間の相関関係、各リンクに付与された重みの値によって、神経網(200)の特徴が決まることができる。例えば、同じ数のノードとリンクが存在し、リンクの重みの値が異なる2つの神経網(200)が存在する場合、2つの神経網(200)は、異なるものと認識されることができる。
【0042】
図2に示すように、神経網(200)は、1つ以上のノードを含めて構成されることができる。神経網(200)を構成するノードのうち一部は、第1入力ノードからの距離に基づき、1つのレイヤー(layer)を構成することができる。例えば、第1入力ノードからの距離がnであるノードの集合は、nレイヤーを構成することができる。第1入力ノードからの距離は、第1入力ノードから当該ノードにたどり着くために経由しなければならないリンクの最低限の数によって定義されることができる。しかし、このようなレイヤーの定義は説明のための仮のものであり、神経網(200)の中でレイヤーの位置は、前述のものと異なる方法によって定義されることができる。例えば、ノードのレイヤーは、最終出力ノードからの距離によって定義されることもできる。
【0043】
第1入力ノードは、神経網(200)の中のノードのうち他のノードとの関係においてリンクを経由せずにデータが直接入力される1つ以上のノードを意味することができる。または、神経網(200)ネットワークの中で、リンクを基準にしたノード間の関係において、リンクによって綱がっている他の入力ノードを持たないノードを意味することができる。これと同様に、最終出力ノードは、神経網(200)の中のノードのうち、他のノードとの関係において、出力ノードを持たない1つ以上のノードを意味することができる。また、ヒドンノードは、第1入力ノードや最終出力ノードではない、神経網(200)を構成するノードを意味することができる。
図2では出力ノードが省略されている。本開示の一実施例に係る神経網(200)は、入力レイヤーのノードが出力レイヤーに近いヒドンレイヤーのノードより多いことがあり、入力レイヤーからヒドンレイヤーへ展開するにつれノードの数が減っていく形の神経網(200)になり得る。
【0044】
ディープニューラルネットワーク(DNN:deep neural network、深層神経網(200))は、入力レイヤーと出力レイヤー以外に複数のヒドンレイヤーを含む神経網(200)を意味することができる。ディープニューラルネットワークを利用するとデータの潜在的な構造(latent structures)を把握することができる。つまり、写真、文章、ビデオ、音声、音楽の潜在的な構造(例えば、ある物が写真の中にあるのか、文章の内容と感情はどのようなものなのか、音声の内容と感情はどのようなものなのか等)を把握することができる。ディープニューラルネットワークは、畳み込みニューラルネットワーク(CNN:convolutional neural network)、リカレントニューラルネットワーク(RNN:recurrent neural network)、制限ボルツマンマシン(RBM:restricted boltzmann machine)、深層信頼ネットワーク(DBN:deep belief network)、Qネットワーク、Uネットワーク、シャムネットワーク等を含むことができる。
【0045】
図3は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、複数の推論モデルを学習させる一例を示すフローチャートである。
【0046】
図3を参照すると、プロセッサー(110)は、ラベル付けされていない全体データセット(300)から、少なくとも2つ以上のデータを含む、ラベル付けされたデータサブセット(400)を生成することができる(S100)。
【0047】
本開示における全体データセット(300)は、手作業または分類器/分類モデルによるラベル付け作業を経ていないデータを含むことができる。また、本開示の一実施例において全体データセットは、ラベル付けデータを少なくとも一部含むこともできる。
【0048】
プロセッサー(110)は、ラベル付けされていない全体データセット(300)からデータサブセット(400)を生成することができる。プロセッサー(110)は、全体データセット(300)をサンプリングしてラベル付けされたデータサブセット(400)を生成することができる。以下、本開示においてラベル付けされたデータサブセットは、ラベル付けが完了したデータだけを含むデータセットのサブセットを意味することができる。
【0049】
プロセッサー(110)は、ラベル付けされていない全体データセット(300)からラベル付けされていないデータサブセットを生成することができる。ここでラベル付けされていないデータサブセットを生成するためにプロセッサー(110)は、ラベル付けされていない全体データセット(300)からデータをサンプリング(sampling)して、ラベル付けされていないデータサブセットを生成することができる。具体的にプロセッサー(110)は、ラベル付けされていない全体データセット(300)に対してランダムサンプリング(random sampling)手法を適用してラベル付けされていないデータサブセットを生成することができる。
【0050】
プロセッサー(110)は、ラベル付けされていないデータサブセットに対してラベル付け作業を行うことで、ラベル付けされたデータサブセット(400)を生成することができる。前述のように、ラベル付け作業はユーザーによって行われることもできる。また、ラベル付け作業は、ラベル付け作業のためにトレーニングされた分類器/分類モデルによって行われることもできる。さらに、ラベル付け作業は、教師なし学習(Unsupervised learning)またはクラスタリング(Clustering)手法を利用して行われることもできる。
【0051】
本開示におけるデータに対するラベル付けの優先順位を決める方法は、ラベル付けされたデータサブセット(400)でトレーニングさせたモデルを利用して、推論結果を予め設定された基準に基づき分類することで、疑似ラベルを生成したり一部のデータだけに対してラベル付けを行うことにより、ラベル付けにかかる作業の量を減らすソリューションであると言える。
【0052】
ラベル付けされていない全体データセット(300)が十分な量のデータを持っているとしよう。プロセッサー(110)がラベル付けされていない全体データセット(300)をサンプリング(特にランダムサンプリング)して十分な数のデータを含むラベル付けされたデータサブセット(400)を生成すると、ラベル付けされたデータサブセット(400)は、その母集団である全体データセット(300)について代表性を持つことができる。
【0053】
上述の内容に基づき、ラベル付けされたデータサブセット(400)に基づきトレーニングされたモデルは、ラベル付けされていない全体データセット(300)に対しても上手く作動できる。従って、ラベル付けされていない全体データセット(300)に含まれたすべてのデータに対してラベル付け作業を行う必要がない可能性がある。従って、本開示におけるラベル付けの優先順位を決める方法によってラベル付けの対象となるデータの数を減らすことができるためラベル付けにかかる作業量が減ることが可能になる。
【0054】
プロセッサー(110)は、生成されたラベル付けされたデータサブセット(400)に基づき、データサブセットから2つ以上のトレーニングデータセット(500)を生成することができる(S200)。
【0055】
プロセッサー(110)は、相異する検証データセットを含むサンプリングされたデータサブセットのペアを少なくとも1つ含むトレーニングデータセット(500)を生成することができる。
【0056】
本開示の複数の実施例に係るトレーニングデータセット(500)は、ラベル付けされたデータサブセット(400)のデータを少なくとも一部含むことができる。ただし、トレーニングデータセット(500)は、相互排他的(mutually exclusive)な1つ以上のデータサブセットで構成されていることができ、これは検証データセットを含むことができる。ここで、検証データセットは、データサブセット(400)からサンプリング(sampling)されることが可能である。つまり、トレーニングデータセット(500)は、サンプリングされたデータサブセットのペアで構成あれることができる。
【0057】
ここでラベル付けされたデータサブセット(400)は、本開示における複数の推論モデル(600)を学習させるためのデータの集合と定義されることができる。本開示の複数の実施例に係るラベル付けされたデータサブセット(400)は、予めラベル(Label)付けされていることがある。ラベル付けされたデータサブセット(400)を生成するためのラベル付け(Labeling)は、手作業またはラベル付けのためにトレーニングされた分類器/分類モデルによって行われることが可能である。具体的に、ラベル付けされたデータサブセット(400)をラベル付けするための方法として教師なし学習(Unsupervised learning)またはクラスタリング(Clustering)等が利用されることができる。
【0058】
複数の推論モデル(600)を生成するために、複数のトレーニングデータセット(500)は、ラベル付けされたデータサブセット(400)からそれぞれ派生することが可能である。各トレーニングデータセット(500)は、相異するデータを少なくとも一部含むことができる。トレーニングデータセット(500)に関する詳細な内容は
図4で後述する。
【0059】
前述の通り、ラベル付けされたデータサブセット(400)に基づきトレーニングされたモデルは、ラベル付けされていない全体データセット(300)に対しても上手く作動できる。従ってラベル付けされていない全体データセット(300)に含まれたすべてのデータに対してラベル付け作業を行う必要がない可能性がある。従って本開示におけるラベル付けの優先順位を決める方法によってラベル付けにかかる作業量が減ることが可能である。
【0060】
プロセッサー(110)は、生成された2つ以上のトレーニングデータセット(500)及びトレーニングデータセットに含まれた少なくとも一部のデータに対応するラベル付けの値に基づき複数の推論モデル(600)を学習させることができる(S300)。
【0061】
プロセッサー(110)は、複数の推論モデル(600)を学習させることによりラベル付けされたデータサブセット(400)に含まれた個々のデータに対する評価を行う複数の推論モデル(600)を生成することができる。
【0062】
本開示に係るプロセッサー(110)は、複数のトレーニングデータセット(500)に基づき、複数の推論モデル(600)を学習させることができる。後述するが、プロセッサー(110)は、複数の推論モデル(600)から生成された複数の予測結果を総合して個々のデータに対する評価を行うことができる。
【0063】
プロセッサー(110)は、複数の予測結果を総合するためにアンサンブル手法を利用することができる。ここでアンサンブル手法とは、与えられた資料でいくつかの予測モデルを作成し、これらを組み合わせて1つの最終的な予測モデルを作成する方法と定義されることができる。
【0064】
本開示に係るプロセッサー(110)は、平均、多数決、ベイズ推論等をアンサンブル手法を実行するための具体的な方法として利用することができる。
【0065】
上述の複数の推論モデル(600)は、それぞれ複数のトレーニングデータセット(500)に対応する。各推論モデル(600)はそれぞれトレーニングデータセット(500)に含まれたデータサブセットのうち、学習データセットに基づき学習される。1つのトレーニングデータセット(500)から複数の推論モデル(600)が生成されることができ、この場合プロセッサー(110)は、検証データに基づき、どのモデルを本開示に係るデータ収集戦略の策定方法を実行するための複数の推論モデル(600)の一つとして提供するかを決めることができる。決められた複数の推論モデル(600)はそれぞれラベル付けされていない全体データセット(300)に対して推論結果を生成することができる。ここで推論結果は、特定のデータに対する分類結果(つまり、ラベル)や当該分類結果に対する確信度スコアを含むことができる。ただし、分類結果と確信度スコアは、推論結果に関する一例に過ぎず、推論結果に含まれることのできるデータは、これに限定されない。
【0066】
ここで確信度スコアは、任意のデータに対して設定されることのできる個々のラベルに対する確率と定義されることができる。例えば、Aという画像に対し、「犬」と分類される確率が0.4、「猫」と分類される確率が0.6だとすると、画像Aの確信度スコアは、犬に対しては0.4、猫に対しては0.6になり得る。前述の確信度スコアの記載は例示に過ぎず本開示はこれに限定されない。
【0067】
本開示におけるデータに対するラベル付けの優先順位を決める方法を実行するためにはラベル付けされたデータサブセット(400)を生成するためのラベル付けは必要な場合がある。従ってラベル付けされたデータサブセット(400)の大きさが小さければ小さいほどいいとすることができる。本開示の一実施例において、推論モデルは一部だけがラベル付けされたデータを利用して学習されることができる。
【0068】
ここで前述のようにそれぞれ相異する検証データセットを含むトレーニングデータセット(500)に基づき複数の推論モデル(600)を学習させる場合、1つのラベル付けされたデータサブセット(400)から複数のトレーニングデータセット(500)を生成することができる。従ってラベル付けされたデータサブセット(400)が持っているデータの量が比較的少なくても複数の推論モデル(600)を効果的に学習させることができる。
【0069】
図4は本開示の一実施例に係るコンピューティング装置のプロセッサーが全体データセットからデータサブセットを生成する一例を示す図面である。
【0070】
プロセッサー(110)は、ラベル付けされていない全体データセット(300)からラベル付けされていないデータサブセットを生成することができる。ここでラベル付けされていないデータサブセットを生成するために、プロセッサー(110)は、ラベル付けされていない全体データセット(300)からラベル付けされていないデータサブセットをサンプリングすることができる。具体的にプロセッサー(110)は、ラベル付けされていない全体データセット(300)についてランダムサンプリング(random sampling)手法を適用してラベル付けされていないデータサブセットを生成することができる。
【0071】
プロセッサー(110)は、ラベル付けされていないデータサブセットに対してラベル付け作業を実行することでラベル付けされたデータサブセット(400)を生成することができる。前述のように、ラベル付け作業は人間である作業者によって行われることがある。また、ラベル付け作業はラベル付け作業のためにトレーニングされた分類器/分類モデルによって行われることができる。さらに、ラベル付け作業は教師なし学習(Unsupervised learning)またはクラスタリング(clustering)手法を利用して行われることができる。
【0072】
本開示におけるデータに対するラベル付けの優先順位を決める方法はラベル付けされたデータサブセット(400)でトレーニングさせたモデルを利用して、推論結果を予め設定された基準に基づき分類することでラベル付けにかかる作業の量を減らすソリューションであるとすることができる。
【0073】
ラベル付けされていない全体データセット(300)が十分な量のデータを持っていると仮定することができる。プロセッサー(110)がラベル付けされていない全体データセット(300)をサンプリング(特にランダムサンプリング)してラベル付けすることで、十分な数のラベル付けされたデータを含むラベル付けされたデータサブセット(400)を生成すると、ラベル付けされたデータサブセット(400)は、その母集団である全体データセット(300)に対して代表性を持つことができる。
【0074】
上述の内容に基づき、ラベル付けされたデータサブセット(400)に基づきトレーニングされたモデルはラベル付けされていない全体データセット(300)に対しても上手く作動できる。従ってラベル付けされていない全体データセット(300)に含まれたすべてのデータに対してラベル付け作業を行う必要がない可能性がある。従って本開示におけるラベル付けの優先順位を決める方法によってラベル付けにかかる作業量が減ることが可能である。
【0075】
図5は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、データサブセットから複数のトレーニングデータセットを生成する一例を示す図面である。
【0076】
1つのラベル付けされたデータサブセット(400)から複数のトレーニングデータセット(500)を生成するために一般的にK分割交差検証(K-Fold Cross Validation)方式が利用されることができる。K分割交差検証とは、データセットを複数に分けて1つずつテスト(検証)セットとして使い残りをすべて合わせて学習セットとして利用する方法と定義されることができる。これはモデルを学習させるためのデータが十分でないとき有効になり得る。
【0077】
従って、個々のトレーニングデータセット(500)はそれぞれ少なくとも一部が互いに相異する学習データセット(500a)及び検証データセット(500b)を含むことができる。
【0078】
ここで、学習データセット(500a)は、複数の推論モデルを学習させるための少なくとも1つ以上のデータを含むデータの集合を意味することができる。同様に、検証データセット(500b)は、学習データセット(500a)に基づき学習された推論モデル個々の性能を評価するための少なくとも1つ以上のデータを含むデータの集合を意味することができる。
【0079】
ここで、本開示の実施例においてプロセッサー(110)は、ラベル付けされたデータサブセット(400)から2つ以上のトレーニングデータセット(500)を生成するとき、相異するデータを少なくとも一部含むようにランダムに選択された任意のデータを検証データセット(500b)に割り当てることができる。本開示の複数の実施例に係るプロセッサー(110)は、データサブセット(400)から2つ以上のトレーニングデータセット(500)を生成するとき同じデータを含まないようにランダムに選択された任意のデータを検証データセット(500b)に割り当てることができる。
【0080】
本開示におけるデータに対するラベル付けの優先順位を決める方法を実行するためにはラベル付けされたデータサブセット(400)を生成するためのラベル付けは必須である。従ってラベル付けされたデータサブセット(400)の大きさが小さければ小さいほどいいとすることができる。
【0081】
ここで詳述したようにそれぞれ相異する検証データセット(500b)を含む複数のトレーニングデータセット(500)に基づき複数の推論モデル(600)を学習させる場合、1つのラベル付けされたデータサブセット(400)で多くのトレーニングデータセット(500)を生成することができる。従ってラベル付けされたデータサブセット(400)が持っているデータの量が比較的少なくても複数の推論モデル(600)を効果的に学習させることができる。
【0082】
図6は、本開示の一実施例に係るコンピューティング装置のプロセッサーが複数のトレーニングデータセットを生成する一例を示すフローチャートである。
【0083】
図6によると、プロセッサー(110)は、データサブセットをN個のデータ下位サブセットに分割することができる。
【0084】
プロセッサー(110)は、分割されたN個のデータ下位サブセットの中から少なくとも1つを検証データセット(500b)に割り当てることができる(S220)。
【0085】
これはK分割交差検証(K-Fold Cross Validation)を行うための検証データセット(500b)を選択する一例である。従ってトレーニングデータセット(500)を生成するための具体的な方法はこれに限定されない。
【0086】
前述のように、トレーニングデータセット(500)に含まれた個々のデータセットは相互排他的である。つまり、同じ元素を含むことができない。従ってプロセッサー(110)は、先ず検証データセットが決まると、残りの部分を学習データセットに割り当てることができる。
【0087】
図7は、本開示の一実施例に係るコンピューティング装置のプロセッサーが複数の推論モデルを生成する一例を示す図面である。
【0088】
プロセッサー(110)は、2つ以上のトレーニングデータセット(500)に基づき複数の推論モデル(600)を生成することができる。前述のように、トレーニングデータセット(500)1つに対して複数の推論モデルが生成されることができる。この時、前述の複数の推論モデルのうち1つになり得る推論モデル(600)の決定は、検証データセット(500b)に基づいて行われることができる。
【0089】
ここで、複数の推論モデル(600)ぞれぞれのネットワーク関数の形は、互いに相異するものになり得る。周知のように、ディープラーニングを実行するためのネットワーク関数は多様な形になり得る。従って複数の推論モデル(600)はそれぞれ、同じ形や異なる形のネットワーク関数によって実行されることができる。
【0090】
複数の推論モデル(600)のネットワーク関数の形を多様なものに構成する場合、同じデータに対して複数のモデルによる結果を得ることができる。本開示における複数の推論モデルは、相対的に少ない量のデータを含むラベル付けされたデータサブセット(400)によって学習されることができる。従って、後述する不確実性を求めるための推論モデルの個々の性能自体は確実でない場合がある。この場合、相異する学習データ及び相異するネットワークの形を持つ複数の推論モデルを利用してアンサンブル手法を実行すると、少ない量の学習データからでも、ラベル付けされていない全体データセット(300)に対してより一般化した結果を得ることができる。また、特定のデータの類型に偏った結果が発生することを避けられるため、複数のモデルの結果を総合してデータに対する評価を行いやすくなる。従って、相対的に少ない量の学習データを利用してもモデルの性能をより客観化することができる。
【0091】
図8は、本開示の一実施例に係るコンピューティング装置のプロセッサーが複数の推論結果を提供する一例を示すフローチャートである。
【0092】
図8を参照すると、プロセッサー(110)は、2つ以上のトレーニングデータセット(500)及びそれに対応するラベル付けの値に基づき学習された、1つ以上のネットワーク関数を含む複数の推論モデル(600)に基づき、任意のデータに対する複数の推論結果(700)を生成することができる(S300)。
【0093】
段階(S300)によるとラベル付けされていない全体データセット(300)に含まれた個々のデータに対して複数の推論モデル(600)ぞれぞれの分類値に対する推論結果が生成される。つまり、推論モデル#1、推論モデル#2、…、推論モデル#Nのそれぞれが、データ#1、データ#2、データ#3、…、データ#Nに対する分類値に対する推論結果を生成することができる。ここで推論結果は、予測ラベル及びラベルの予測結果に対する確信度スコアを含むことができる。図面に示す画像は、データの一類型に過ぎず、本開示におけるデータはこれらの画像に限定されない。
【0094】
ここで、任意のデータとは、ラベル付けされていない全体データセット(300)に含まれたデータのうち任意に選択された1つのデータと定義されることができる。
【0095】
プロセッサー(110)は、生成された任意のデータに対する複数の推論結果(700)を提供することができる(S400)。
【0096】
プロセッサー(110)は、複数の推論モデル(600)のそれぞれが、ラベル付けされていない全体データセット(300)に含まれた個々のデータに対して生成した複数の推論結果(700)をコンピューティング装置(100)に係るユーザーに提供できる。つまり、プロセッサー(110)は、個々の推論モデル(600)が個々のデータに対して生成した分類の予測結果及び個々の分類の予測結果に対する確信度スコアを提供できる。ただし、これは複数の推論結果(700)に含まれる情報に関する一例に過ぎず、複数の推論結果(700)は、これに限定されない。
【0097】
前述の複数の推論結果(700)が、コンピューティング装置(100)に係るユーザーに提供されると、ユーザーはこれに基づきデータ類型別のモデルの分類の予測の度合いを把握できる。つまり、ユーザーは、分類の予測が上手くできない類型のデータに対し、データラベル付け係る高い優先順位を付与することができる。従って、ユーザーのデータラベル付けが効率よく行われることができる。
【0098】
図9は、本開示の一実施例に係るコンピューティング装置のプロセッサーが複数の推論結果を生成する一例を示す図面である。
【0099】
プロセッサー(110)が生成する複数の推論結果(700)は、複数の推論モデル(600)のそれぞれが、ラベル付けされていない全体データセット(300)に含まれた個々のデータについて推論した分類結果と定義されることができる。つまり、推論モデル#1、推論モデル#2、…、推論モデル#Nのそれぞれが、データ#1、データ#2、データ#3、…、データ#Nに対する推論結果を生成することができる。ここで推論結果は予測ラベル及びラベルの予測結果に対する確信度スコアを含むことができる。
【0100】
プロセッサー(110)は、生成された推論結果を総合して単一の推論結果を生成することができる。これについては
図11で詳しく後述する。
【0101】
図10は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、任意のデータに対する単一の推論結果を提供する一例を示すフローチャートである。
【0102】
図10を参照すると、プロセッサー(110)は、任意のデータに対する複数の推論結果(700)に基づき任意のデータに対する単一の推論結果を生成することができる(S410)。
【0103】
プロセッサー(110)は、決定された単一の推論結果を提供することができる(S420)。
【0104】
ここで単一の推論結果は、複数の推論結果(700)に基づき(またはこれを総合して)任意のデータに対して生成される1つの結果を意味する。単一の推論結果は、特定のデータに対する分類の予測結果を含むことができる。単一の推論結果は、当該データの分類の予測結果に対する推論信頼度スコアになり得る。また、単一の推論結果は、推論信頼度スコアに基づき演算される不確実性の値になり得る。推論信頼度スコアが高いほど、不確実性の値が低いほど、特定のデータに対する推論結果について確信できると理解されることができる。
【0105】
例えば、複数のモデルのすべてにおいて、特定の画像に写っているオブジェクトに対して子犬という分類の予測結果が生成された場合、複数の推論モデル(600)が当該データに図示されたオブジェクトを犬と予測する確率(信頼度)スコアの平均が0.88としたら、単一の推論結果(700)は、0.88になり得る。
【0106】
不確実性の値は、推論信頼度スコアに基づき演算される。従って、この場合において、例えば不確実性の値は1から推論信頼度スコアを引いた「0.12」になり得る。前述の不確実性の値の演算方法に対する記載は、例示に過ぎず、本開示はこれに限定されない。
【0107】
ここでアンサンブル手法とは、与えられた資料でいくつかの予測モデルを作成し、これらを組み合わせて1つの最終的な予測モデルを作成する方法と定義されることができる。
【0108】
本開示に係るプロセッサー(110)は、平均、多数決、ベイズ推論等をアンサンブル手法を実現するための具体的な方法として利用することができる。
【0109】
上述のようにアンサンブル手法等を利用して単一の推論結果を生成する場合、単一のモデルによる推論に比べ、より良い性能が得られるとされている。
【0110】
図11の説明で後述するが、プロセッサー(110)は、推論信頼度スコアまたは不確実性の値を含む単一の推論結果に基づき、疑似ラベル及びラベル付けの優先順位を決めることができる。これによってラベル付けが必要なデータとそうでないデータの区別が可能になり得る。またラベル付けに利用されることのできる可用資源が限られている場合、優先的にラベル付けが必要なデータを区別することができる。従ってラベル付け作業が効率化されることができる。
【0111】
図11は、本開示の一実施例に係るコンピューティング装置のプロセッサーが、単一の推論結果を提供する一例を示すフローチャートである。
【0112】
ここで単一の推論結果は、複数の推論結果(700)に基づき(またはこれを総合して)任意のデータに対して生成される1つの結果を意味する。単一の推論結果(700)は、当該データのラベルに対する推論信頼度スコアになり得る。また、単一の推論結果は、推論信頼度スコアに基づき演算される不確実性の値になり得る。推論信頼度スコアが高いほど、不確実性の値が低いほど、特定のデータに対する推論結果に確信があると理解されることができる。
【0113】
図11を参照すると、プロセッサー(110)は、任意のデータに対する複数の推論結果に基づき、任意のデータに対する単一の推論結果を決めることができる。
【0114】
プロセッサー(110)は、決定された単一の推論結果が予め決められた基準を満たしている場合、対応する任意のデータに疑似ラベル(pseudo label)を付与することができる(S421)。
【0115】
疑似ラベルは、本開示におけるプロセッサー(110)が、ラベル付けされていない全体データセット(300)に含まれた個々のデータに対して、予め設定された方法で付与する分類結果になり得る。疑似ラベルが付与されたデータは、ラベル付けされたものと同様に扱われ、改めてラベル付けする必要がなくなる場合がある。
【0116】
プロセッサー(110)は、単一の推論結果が予め決められた基準を満たしていれば、疑似ラベルを付与することができる。一例として、プロセッサー(110)は、単一の推論結果の一例である推論信頼度スコアが予め設定されたしきい値以上の場合、予め決められた基準が満たされたと認識することができる。さらに他の一例として、プロセッサー(110)は、単一の推論結果の他の一例は、不確実性の値が予め設定されたしきい値未満の場合、予め決められた基準が満たされたと認識することができる。
【0117】
ここで、プロセッサー(110)は、単一の推論結果に含まれた不確実性の値が、予め設定されたしきい値以下の場合、単一の推論結果に含まれた分類の予測結果を任意のデータに対する疑似ラベルにすると決めることができる。
【0118】
例えば、プロセッサー(110)は、不確実性の値が0.15以下であるデータについては疑似ラベルを付与するように設定されることができる。任意のデータに対して単一の推論結果によると、前述の任意のデータに対する分類の予測結果が猫であり、これに対する不確実性の値が0.1である場合、プロセッサー(110)は、当該任意のデータに対して猫という疑似ラベルを付与することができる。
【0119】
プロセッサーは、疑似ラベルが付与されていない任意のデータに対し、単一の推論結果に対応するラベル付けの優先順位を決めることができる(S422)。
【0120】
本開示の複数の実施例に係るプロセッサー(110)は、例示的に、以下のような方法で任意のデータに対するラベル付けの優先順位を決めることができる。
【0121】
プロセッサー(110)は、任意のデータに対する単一の推論結果に含まれた不確実性の値を、少なくとも1つ以上のしきい値と比較して、ラベル付けの優先順位を決めることができる。
【0122】
具体的に、プロセッサー(110)は、任意のデータに対する不確実性の値が予め設定された第1しきい値以下である場合、任意のデータに第1優先順位を付与することができる。そして、プロセッサー(110)は、任意のデータに対する不確実性の値が、第1しきい値を超過し、第2しきい値以下である場合は、任意のデータに第2優先順位を付与することができる。さらに、プロセッサー(110)は、任意のデータに対する不確実性の値が第2しきい値を超過する場合、任意のデータに第3優先順位を付与することができる。
【0123】
ここで、例えば第1しきい値が第2しきい値より小さいと仮定することができる。この場合、第1しきい値より不確実性の値が低ければ、これは、不確実性の値が疑似ラベルを付与するほど低くはないとしても相当低いと判断できる。従って、このような場合は、推論モデルについて、当該類型のデータに対する学習が上手く行われたと判断できる。従って、このような類型に対して、低いラベル付けの優先順位を付与することができる。従って、前述の例示において、第1優先順位は、低いラベル付けの優先順位を意味することができる。
【0124】
また、第1しきい値より不確実性の値が高く、第2しきい値より不確実性の値が低ければ、これは不確実性の値が中間程度であると判断できる。従ってこのような場合、推論モデルの当該類型データに対する学習が、上手く行われたとみることはできないだろう。従ってこのような類型については、中間の優先順位を付与することができる。従って、前述の例示において第2優先順位は中間のラベル付けの優先順位を意味することができる。
【0125】
最後に、第2しきい値より不確実性の値が高い場合は、不確実性の値が高いと判断できる。従ってこのような類型のデータに対する学習が上手く行われていない判断できる。従って、このような類型については高いラベル付けの優先順位を付与することができる。従って、前述の例示において第3優先順位は高いラベル付けの優先順位を意味することができる。
【0126】
決定された優先順位はデータにタグ(tag)されユーザーに提供されることができる。データにタグされた優先順位とともに、以下のような情報がともに提供されることがある。
【0127】
不確実性が第1しきい値より低くて第1優先順位がタグされた類型のデータは、疑似ラベルが相当信憑性があると推定されることができる。従って、ラベル付けの優先順位情報を提供するとき、疑似ラベルの信憑性が高いという情報を一緒に含めることができる。従ってこのような情報の提供を受けたユーザーが、ラベル付け資の源が十分でないとき、第1優先順位がタグされた類型のデータについては、疑似ラベルをそのまま利用するようにすることが可能である。
【0128】
不確実性が第1しきい値と第2しきい値との間に位置する、第2優先順位がタグされた類型のデータは、疑似ラベルの信頼度が疑わしいと理解されることができる。従って、ラベル付けの優先順位情報を提供するとき、疑似ラベルの信憑性が疑わしいとの情報を含めることができる。従って、このような情報の提供を受けたユーザーが、疑似ラベルを信頼するか、手作業によるラベル付けを行うかを決定するようにすることができる。
【0129】
不確実性が第2しきい値を上回り、第3優先順位がタグされた類型のデータに対しては、疑似ラベルの信頼度が低いと理解されることができる。従って、ラベル付けの優先順位情報を提供するとき、疑似ラベルの信頼度が低いとの情報を含めることができる。従って、これの伝達を受けたユーザーが、手作業によるデータラベル付けが必須であり、ラベル付けのための資源を最優先的に当該類型のデータに投入するようにすることができる。
【0130】
前述の例示は、ラベル付けの優先順位の決定及びラベル付けの優先順位に係るしきい値の臨界的意義に対する一例に過ぎないため、ラベル付けの優先順位を決める方法はこれに限定されない。
【0131】
疑似ラベルの提供及びラベル付けの優先順位の提供により、全体データセット(300)の一部のデータについてのみラベル付けの作業が必要な場合があり得る。また、ラベル付けの優先順位が提供されるため、ラベル付けのために配分された資源が有効に使われることができる。
【0132】
図12は、本開示の複数の実施例が実現されることのできる例示的なコンピューティング環境を示す簡略で一般的な概略図である。
【0133】
図12に示すコンピューター(1102)は、本開示に係るデータ収集戦略方法が行われるコンピューティング装置(100)のうち少なくとも1つに対応されることができる。
【0134】
本開示の内容が一般的に1つ以上のコンピューター上で実行されることのできるコンピューターで実行可能な命令に着目して前述されているが、当業者なら本開示の内容が、他のプログラムモジュールと結合して及び/またはハードウェアとソフトウェアとの組み合わせによって実現されることができることをよく理解するだろう。
【0135】
一般的に、本明細書におけるモジュールは、特定のタスクを実行したり特定の抽象的なデータ類型を実装するルーティン、プロシージャ、プログラム、コンポーネント、データ構造、その他等々を含む。また、当業者なら本開示の方法がシングルプロセッサー(110)またはマルチプロセッサー(110)コンピューターシステム、ミニコンピューター、メインフレームコンピューターはもちろん、パーソナルコンピューター、ハンドヘルドコンピューティング装置(100)、マイクロプロセッサー(110)-基盤、またはプログラム可能な家電製品、その他等々(これらは、それぞれ1つ以上の関連する装置と繋がって動作することができる)をはじめとする、他のコンピューターシステムの構成によって実施されることができることをよく理解できるだろう。
【0136】
本開示の説明された実施例は、さらに、あるタスクが通信ネットワークを通じて繋がっている遠隔処理装置によって行われる分散コンピューティング環境で実施されることができる。分散コンピューティング環境において、プログラムモジュールは、ローカルや遠隔メモリー保存装置の両方に位置することができる。
【0137】
コンピューターは、通常コンピューターで読み取り可能な多様な媒体を含む。コンピューターによってアクセス可能な媒体として、揮発性及び非揮発性媒体、一時的(transitory)及び非一時的(non-transitory)媒体、移動式及び非移動式媒体を含む。制限ではなく例として、コンピューターで読み取り可能な媒体は、コンピューターで読み取り可能な保存媒体及びコンピューターで読み取り可能な伝送媒体を含むことができる。
【0138】
コンピューターで読み取り可能な保存媒体は、コンピューターで読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータのような情報を保存する任意の方法または技術によって実装される揮発性及び非揮発性の媒体、一時的及び非一時的媒体、移動式及び非移動式媒体を含む。コンピューターで読み取り可能な保存媒体は、RAM、ROM、EEPROM、フラッシュメモリーまたはその他のメモリー技術、CD-ROM、DVD(digital video disk)またはその他の光ディスク保存装置、磁気カセット、磁気テープ、磁気ディスク保存装置またはその他の磁気保存装置、またはコンピューターによってアクセスされることができ、必要な情報を保存するのに使われることのできる任意のその他の媒体を含むが、これに限定されない。
【0139】
コンピューターで読み取り可能な伝送媒体は、通常、搬送波(carrier wave)またはその他の伝送メカニズム(transport mechanism)のような被変調データ信号(modulated data signal)にコンピューターで読み取り可能な命令、データ構造、プログラムモジュールまたはその他のデータ等を実装し、すべての情報伝達媒体を含む。被変調データ信号という用語は、信号の中で情報をエンコードするように、その信号の特性のうち一つ以上を設定または変更した信号を意味する。制限ではなく例として、コンピューターで読み取り可能な伝送媒体は、有線ネットワークまたは直接配線接続(direct-wired connection)のような有線媒体、そして音響、RF、赤外線、その他の無線媒体のような無線媒体を含む。前述の媒体のうち、いずれかによる任意の組み合わせもまたコンピューターで読み取り可能な伝送媒体の範囲に含まれるものとする。
【0140】
コンピューター(1102)を含む本開示の多様な側面を実現する例示的な環境(1100)が示されており、コンピューター(1102)は、処理装置(1104)、システムメモリー(1106)、システムバス(1108)を含む。システムバス(1108)は、システムメモリー(1106)(これに限定されない)をはじめとするシステムコンポーネントを処理装置(1104)につなげる。処理装置(1104)は、多様な商用プロセッサー(110)のうち任意のプロセッサー(110)になり得る。デュエルプロセッサー(110)とその他のマルチプロセッサー(110)アーキテクチャもまた処理装置(1104)として利用されることができる。
【0141】
システムバス(1108)は、メモリーバス、周辺装置バス、そして多様な商用バスアーキテクチャの中から、任意のものを使用するローカルバスにさらに相互連結されることのできる複数の類型のバス構造のうちいずれかになり得る。システムメモリー(1106)は、読み取り専用メモリー(ROM)(1110)やランダムアクセスメモリー(RAM)(1112)を含む。基本的な入出力システム(BIOS)は、ROM、EPROM、EEPROM等の非揮発性メモリー(1110)に保存され、このBIOSは、起動中の時等にコンピューター(1102)の中の複数の構成要素間の情報のやりとりをサポートする基本的なルーティンを含む。RAM(1112)は、またデータをキャッシュするための静的RAM等の高速RAMを含むことができる。
【0142】
コンピューター(1102)においては、また、内蔵型ハードディスクドライブ(HDD)(1114)(例えば、EIDE、SATA)―この内蔵型ハードディスクドライブ(1114)はまた適切なシャシー(図示は省略)の中で外付け型の用途で構成されることができる―、磁気フロッピーディスクドライブ(FDD)(1116)(例えば、移動式ディスケット(1118)から読み取ったりそれに書き込むためのものである)及び光ディスクドライブ(1120)(例えば、CD-ROMディスク(1122)を読み取ったり、DVD等のその他の高容量光媒体から読み取ったり、それに書き込むためのものである)を含む。ハードディスクドライブ(1114)、磁気ディスクドライブ(1116)及び光ディスクドライブ(1120)は、それぞれハードディスクドライブインターフェース(1124)、磁気ディスクドライブインターフェース(1126)及び光ドライブインターフェース(1128)によってシステムバス(1108)に繋がることができる。外付け型ドライブの実装のためのインターフェース(1124)は、例えば、USB(Universal Serial Bus)やIEEE1394インターフェース技術のうち、少なくとも1つまたはその両方を含む。
【0143】
これらのドライブ及びこれらに係るコンピューターで読み取り可能な媒体は、データ、データ構造、コンピューターで実行可能な命令、その他等々の非揮発性保存を提供する。コンピューター(1102)の場合、ドライブ及び媒体は、任意のデータを適切なデジタル形式に保存することに対応する。前述におけるコンピューターで読み取り可能な保存媒体に係る説明が、HDD、移動式磁気ディスク及びCDまたはDVD等の移動式光媒体について触れているが、当業者ならジップドライブ(zip drive)、磁気カセット、フラッシュメモリーカード、カートリッジ、その他等々のコンピューターにより読み取り可能な他の類型の保存媒体もまた例示的な運営環境で使われることができ、さらに、このような媒体のうち任意のある媒体が、本開示の方法を実行するためのコンピューターで実行可能な命令を含むことができることをよく理解できるだろう。
【0144】
運営システム(1130)、1つ以上のアプリケーションプログラム(1132)、その他のプログラムモジュール(1134)及びプログラムデータ(1136)をはじめとする多数のプログラムモジュールが、ドライブ及びRAM(1112)に保存されることができる。運営システム、アプリケーション、モジュール及び/またはデータの全部またはその一部分がまたRAM(1112)にキャッシュされることができる。本開示が商業的に利用可能な様々な運営システムまたは複数の運営システムの組み合わせにより実装されることができることをよく理解できるだろう。
【0145】
ユーザーは、1つ以上の有線・無線の入力装置、例えば、キーボード(1138)及びマウス(1140)等のポインティング装置を通じてコンピューター(1102)に命令及び情報を入力することができる。その他の入力装置(図示は省略)としてはマイク、IRリモコン、ジョイスティック、ゲームパッド、スタイラスペン、タッチスクリーン、その他等々があり得る。これら及びその他の入力装置が、よくシステムバス(1108)に繋がっている入力装置インターフェース(1142)を通じて処理装置(1104)に繋がることがあるが、並列ポート、IEEE1394直列ポート、ゲームポート、USBポート、IRインターフェース、その他等々のその他のインターフェースによって繋がることができる。
【0146】
モニター(1144)または他の類型のディスプレイ装置も、ビデオアダプター(1146)等のインターフェースを通じてシステムバス(1108)に繋がる。モニター(1144)に加えて、コンピューターは一般的にスピーカー、プリンター、その他等々のその他の周辺出力装置(図示は省略)を含む。
【0147】
コンピューター(1102)は、有線及び/または無線通信による(複数の)遠隔コンピューター(1148)等の1つ以上の遠隔コンピューターへの論理的接続を利用し、ネットワーク化された環境で動作することができる。(複数の)遠隔コンピューター(1148)は、ワークステーション、サーバーコンピューター、ルーター、パーソナルコンピューター、携帯用コンピューター、マイクロプロセッサー基盤の娯楽機器、ピア装置またはその他の通常のネットワークノードになることができ、一般的にコンピューター(1102)について述べられた構成要素のうち、多数またはその全部を含むが、簡略化するために、メモリー保存装置(1150)のみ図示されている。図示されている論理的接続は、近距離通信網(LAN)(1152)及び/または、より大きいネットワーク、例えば、遠距離通信網(WAN)(1154)における有線・無線の接続を含む。このようなLAN及びWANのネットワーキング環境は、オフィスや会社では一般的なもので、イントラネット等の全社的コンピューターネットワーク(enterprise-wide computer network)を容易にし、これらはすべて全世界のコンピューターネットワーク、例えば、インターネットに繋がることができる。
【0148】
LANネットワーキング環境で使われるとき、コンピューター(1102)は、有線及び/または無線通信ネットワークインターフェース、または、アダプター(1156)を通じてローカルネットワーク(1152)に繋がる。アダプター(1156)は、LAN(1152)への有線または無線通信を容易にすることができ、このLAN(1152)は、また無線アダプター(1156)と通信するためにそれに設置されている無線アクセスポイントを含む。WANネットワーキング環境で使われるとき、コンピューター(1102)は、モデム(1158)を含むことができたり、WAN(1154)上の通信サーバーに繋がったり、またはインターネットを通じる等、WAN(1154)を通じて通信を設定するその他の手段を持つ。内蔵型または外付け型、そして、有線または無線装置になり得るモデム(1158)は、直列ポートインターフェース(1142)を通じてシステムバス(1108)に繋がる。ネットワーク化された環境において、コンピューター(1102)について説明されたプログラムモジュールまたはその一部分が、遠隔メモリー/保存装置(1150)に保存されることができる。図示されたネットワーク接続が例示的なものであり、複数のコンピューター間で通信リンクを設定する他の手段が使われることができるということはよく理解できるだろう。
【0149】
コンピューター(1102)は、無線通信で配置されて動作する任意の無線装置またはユニット、例えば、プリンター、スキャナー、デスクトップ及び/または携帯用コンピューター、PDA(portable data assistant)、通信衛星、無線で検出可能なタグに係る任意の装備または場所及、及び電話と通信する動作をする。これは、少なくともWi-Fi(登録商標)及びブルートゥース(登録商標)無線技術を含む。従って、通信は、従来のネットワークのように予め定義された構造であったり、単純に少なくとも2つの装置の間でのアドホック通信(adhoc communication)になり得る。
【0150】
Wi-Fi(Wireless Fidelity)は、有線で繋がっていなくても、インターネット等への接続を可能にする。Wi-Fiは、このような装置、例えば、コンピューターが室内及び室外で、つまり基地局の通話圏内のどこからでもデータを送受信できるようにするセル電話のような無線技術である。Wi-Fiネットワークは、安全で信頼性があり、高速である無線接続を提供するためにIEEE802.11(a、b、g、その他)という無線技術を使う。コンピューターを互いに、インターネットに及び有線ネットワーク(IEEE802.3またはイーサネットを使う)に接続するためにWi-Fiが使われることができる。Wi-Fiネットワークは、非認可2.4や5GHzの無線帯域において、例えば、11Mbps(802.11a)または54Mbps(802.11b)のデータレートで動作したり、両帯域(デュエル帯域)を含む製品で動作することができる。
【0151】
本開示の技術分野において通常の知識を持つ者は、ここに開示された実施例に係る説明で取り挙げられた多様な例示的な論理ブロック、モジュール、プロセッサー(110)、手段、回路、アルゴリズム段階が電子ハードウェア、(利便性のために、ここでは「ソフトウェア」と称される)多様な形のプログラムまたは設計コード、またはこれらすべての結合により実装されることができることを理解できるだろう。ハードウェア及びソフトウェアのこのような相互互換性を明確に説明するために、多様な例示的なコンポーネント、ブロック、モジュール、回路、段階がこれらの機能に着目して上記で一般的に説明された。このような機能がハードウェアやソフトウェアで実装されるかどうかは、特定のアプリケーション及び全体システムに対して付与される設計上の制限によって決まる。本開示の技術分野において通常の知識を持つ者は、個々の特定のアプリケーションについて多様な手法で説明された機能を実現することができるが、このような実現の決定は、本開示の範囲を逸脱するものと解釈されてはならない。
【0152】
ここに示された多様な実施例は、方法、装置、または標準プログラミング及び/またはエンジニアリング技術を使った製造物品(article)によって実現できる。用語「製造物品」は、任意のコンピューターで読み取り可能な装置からアクセス可能なコンピュータープログラム、キャリアー、または媒体(media)を含む。例えば、コンピューターで読み取り可能な保存媒体は、磁気保存装置(例えば、ハードディスク、フロッピーディスク、磁気ストリップ等)、光学ディスク(例えば、CD、DVD等)、スマートカード及びフラッシュメモリー装置(例えば、EEPROM、カード、スティック、キードライブ等)を含むが、これらに限定されるものではない。用語「機械で読み取り可能な媒体」は、(複数の)命令及び/またはデータを保存、保持、及び/または伝達できる無線チャンネル及び多様な他の媒体を含むが、これらに限定されるものではない。
【0153】
示されたプロセスにおける複数の段階の特定の順番または階層構造は、例示的なアプローチの一例であることを理解すべきである。設計上の優先順位に基づき、本開示の範囲内で、プロセスにおける段階の特定の順番または階層構造が見直されるとができることを理解すべきである。添付の方法請求項は、サンプルとしての順番で、多様な段階のエレメントを提供するが、示された特定の順番または階層構造に限定されることを意味するわけではない。
【0154】
示された実施例に対する説明は、任意の本開示の技術分野において通常の知識を持つ者が、本開示を利用したりまたは実施できるように提供される。このような実施例に対する多様な変形は、本開示の技術分野において通常の知識を持つ者にとっては明確であり、ここに定義された一般的な原理は、本開示の範囲を逸脱することなく他の実施例に適用されることができる。従って、本開示はここに示す実施例によって限定されるものではなく、ここに示す原理及び新規な特徴と一貫する最広義の範囲で解釈されるべきである。