(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-31
(45)【発行日】2022-02-08
(54)【発明の名称】データ拡張方策の学習
(51)【国際特許分類】
G06N 20/00 20190101AFI20220201BHJP
G06N 3/08 20060101ALI20220201BHJP
【FI】
G06N20/00
G06N3/08
(21)【出願番号】P 2020544457
(86)(22)【出願日】2019-05-20
(86)【国際出願番号】 US2019033091
(87)【国際公開番号】W WO2019222734
(87)【国際公開日】2019-11-21
【審査請求日】2020-10-20
(32)【優先日】2018-05-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ヴィジェイ・ヴァスデヴァン
(72)【発明者】
【氏名】バレット・ゾフ
(72)【発明者】
【氏名】エキン・ドガス・キュブック
(72)【発明者】
【氏名】クォク・ヴィー・レ
【審査官】久保 光宏
(56)【参考文献】
【文献】米国特許出願公開第2012/0288186(US,A1)
【文献】Alexander J. Ratner, et al.,"Learning to Compose Domain-Specific Transformations for Data Augmentation",arXiv:1709.01643v3,version v3,[online], arXiv (Cornell University),2017年09月30日,Pages 1-18,[令和3年12月16日検索], インターネット, <URL: https://arxiv.org/abs/1709.01643v3>.
【文献】榎堀 優(外1名),「Data Augmentationを用いた少数寝姿体圧データからの高精度姿勢識別DNN構築」,情報処理学会研究報告,日本,[online], 情報処理学会,2017年08月17日,Vol.2017-ASD-9, No.11,第1~8頁,[平成29年8月17日検索], インターネット, <URL: http://id.nii.ac.jp/1001/00183011/>,ISSN: 2188-8698.
【文献】木村 宇任(外2名),「Fully Convolutional Networkを用いたインフラ点検におけるひび割れの自動検出」,情報処理学会論文誌 数理モデル化と応用(TOM),日本,[online], 情報処理学会,2018年03月14日,Vol.11, No.1,第12~20頁,[平成30年3月14日検索], インターネット, <URL: http://id.nii.ac.jp/1001/00186619/>,ISSN: 1882-7780.
【文献】クジラ飛行机,「Pythonによるスクレイピング&機械学習 開発テクニック」,初版,日本,ソシム株式会社,2016年12月19日,第348~352頁,ISBN: 978-4-8026-1079-7.
【文献】比戸 将平(外9名),「Software Design plusシリーズ データサイエンティスト養成読本 機械学習入門編」,初版,日本,株式会社技術評論社,2015年10月10日,第168頁,ISBN: 978-4-7741-7631-4.
【文献】Jason Wang, et al.,"The Effectiveness of Data Augmentation in Image Classification using Deep Learning",arXiv:1712.04621v1,version v1,[online], arXiv (Cornell University),2017年12月13日,Pages 1-8,[令和3年12月21日検索], インターネット, <URL: https://arxiv.org/abs/1712.04621v1>.
(58)【調査した分野】(Int.Cl.,DB名)
G06N3/00-99/00
G06T7/00
CSDB(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
特定の機械学習タスクを実行するように機械学習モデルをトレーニングするためのトレーニングデータを受け取るステップであって、前記トレーニングデータが複数のトレーニング入力を備える、ステップと、
複数のデータ拡張方策を決定するステップであって、各データ拡張方策が複数のデータ拡張方策パラメータを有し、前記複数のデータ拡張方策パラメータは、トレーニング入力が機械学習モデルのトレーニングに使用される前に前記トレーニング入力を変換するための手順を定め、前記決定するステップが、複数の時間ステップのそれぞれにおいて、
以前の時間ステップにおいて生成されたデータ拡張方策のクオリティ判断基準に基づいて、現在のデータ拡張方策を生成するステップであって、データ拡張方策のクオリティ判断基準が、前記データ拡張方策を使用して機械学習モデルをトレーニングした結果としての、特定の機械学習タスクに対する前記機械学習モデルの性能を表す、生成するステップと、
前記現在のデータ拡張方策を使用して前記トレーニングデータに対して機械学習モデルをトレーニングするステップであって、データ拡張方策を使用して機械学習モデルをトレーニングするステップが、
トレーニングデータバッチを選択するステップ、
前記データ拡張方策に従って前記トレーニングデータバッチ内のトレーニング入力を変換することによって、拡張後トレーニングデータバッチを決定するステップ、および
前記拡張後トレーニングデータバッチに基づいて、機械学習モデルパラメータの現在の値を調整するステップ
を含む、トレーニングするステップと、
前記現在のデータ拡張方策を使用して前記機械学習モデルがトレーニングされた後でその機械学習モデルを使用して、前記現在のデータ拡張方策のクオリティ判断基準を決定するステップと
を含む、前記複数のデータ拡張方策を決定するステップと、
前記決定されたデータ拡張方策の前記クオリティ判断基準に基づいて、最終データ拡張方策を選択するステップと、
前記最終データ拡張方策を使用して最終機械学習モデルをトレーニングすることによって、最終のトレーニング済み機械学習モデルを生成するステップと
を含む、
コンピュータ実装方法。
【請求項2】
前記特定の機械学習タスクが、分類または回帰を含む画像処理タスクである、請求項1に記載の
コンピュータ実装方法。
【請求項3】
各データ拡張方策が、1つまたは複数の下位方策を備え、
各下位方策が、一連の1つまたは複数の変換タプルを備え、各変換タプルについて、前記データ拡張方策パラメータが、(i)変換操作、および(ii)前記変換操作の強度を定め、
前記データ拡張方策に従って前記トレーニングデータバッチ内のトレーニング入力を変換することが、各トレーニング入力について、
前記データ拡張方策内に含まれる下位方策を特定すること、および
前記特定された下位方策に従って、前記特定された下位方策内に含まれる各変換タプルを前記トレーニング入力に順次適用することによって、前記トレーニング入力を変換すること
を含む、請求項1または2に記載の
コンピュータ実装方法。
【請求項4】
前記トレーニング入力について前記データ拡張方策内に含まれる下位方策を特定することが、前記データ拡張方策内に含まれる下位方策をランダムにサンプリングすることを含む、請求項3に記載の
コンピュータ実装方法。
【請求項5】
変換タプルを前記トレーニング入力に適用することが、
前記変換タプルからの前記変換操作および前記変換タプルからの前記変換操作の強度を、前記トレーニング入力に適用すること
を含む、請求項3または4に記載の
コンピュータ実装方法。
【請求項6】
各変換タプルについて、前記データ拡張方策パラメータがさらに、前記変換操作を適用する確率を定め、
変換タプルを前記トレーニング入力に適用することが、
前記変換タプルからの前記変換操作および前記変換タプルからの前記変換操作の強度を、前記変換タプルからの前記変換確率とともに、前記トレーニング入力に適用すること
を含む、請求項3または4に記載の
コンピュータ実装方法。
【請求項7】
前記機械学習モデルがニューラルネットワークであり、前記拡張後トレーニングデータバッチに基づいて、機械学習モデルパラメータの前記現在の値を調整するステップが、
前記拡張後トレーニングデータバッチを使用して、損失関数の勾配を決定するステップ、および
前記勾配を使用して、機械学習モデルパラメータの前記現在の値を調整するステップ
を含む、請求項1から6のいずれか一項に記載の
コンピュータ実装方法。
【請求項8】
以前の時間ステップにおいて生成されたデータ拡張方策のクオリティ判断基準に基づいて、前記現在のデータ拡張方策を生成するステップが、方策ニューラルネットワークを使用して、方策ニューラルネットワークパラメータの現在の値に従って、前記現在のデータ拡張方策を生成するステップを含み、
前記方策ニューラルネットワークが、強化学習技法によってトレーニングされ、各時間ステップにおいて、強化学習報酬信号が、前記時間ステップにおける現在のデータ拡張方策のクオリティ判断基準に基づく、
請求項1から7のいずれか一項に記載の
コンピュータ実装方法。
【請求項9】
各データ拡張方策パラメータについて、方策ネットワーク出力が、前記データ拡張方策パラメータの可能な値にわたるスコア分布を定める、請求項8に記載の
コンピュータ実装方法。
【請求項10】
前記方策ネットワーク出力から前記現在のデータ拡張方策を決定するステップが、各データ拡張方策パラメータについての値を、前記データ拡張方策パラメータについての前記スコア分布を使用してサンプリングするステップを含む、請求項9に記載の
コンピュータ実装方法。
【請求項11】
前記方策ニューラルネットワークが再帰型ニューラルネットワークである、請求項8から10のいずれか一項に記載の
コンピュータ実装方法。
【請求項12】
以前の時間ステップにおいて生成されたデータ拡張方策のクオリティ判断基準に基づいて、現在のデータ拡張方策を生成するステップが、
遺伝的プログラミング法を使用して、前記現在のデータ拡張方策を生成するステップ
を含む、請求項1から7のいずれか一項に記載の
コンピュータ実装方法。
【請求項13】
前記現在のデータ拡張方策を使用して機械学習モデルがトレーニングされた後でその機械学習モデルを使用して、前記現在のデータ拡張方策の前記クオリティ判断基準を決定するステップが、
複数のトレーニング入力を備える検証データを使用して、特定の機械学習タスクに対する前記機械学習モデルの性能判断基準を決定するステップ、および
前記性能判断基準に基づいて、前記クオリティ判断基準を決定するステップ
を含む、請求項1から12のいずれか一項に記載の
コンピュータ実装方法。
【請求項14】
前記検証データ内に含まれる前記トレーニング入力が、前記トレーニングデータ内に含まれない、請求項13に記載の
コンピュータ実装方法。
【請求項15】
前記決定されたデータ拡張方策の前記クオリティ判断基準に基づいて、前記最終データ拡張方策を選択するステップが、
決定された、最も高いクオリティスコアを有するデータ拡張方策を選択するステップ
を含む、請求項1から14のいずれか一項に記載の
コンピュータ実装方法。
【請求項16】
前記トレーニング入力が画像である、請求項1から15のいずれか一項に記載の
コンピュータ実装方法。
【請求項17】
1つまたは複数のコンピュータと、前記1つまたは複数のコンピュータによって実行されると請求項1から16のいずれか一項に記載の方法を前記1つまたは複数のコンピュータに実行させる命令を記憶した、1つまたは複数の記憶デバイスとを備える、システム。
【請求項18】
1つまたは複数のコンピュータによって実行されると請求項1から16のいずれか一項に記載の方法を前記1つまたは複数のコンピュータに実行させる命令を記憶した、1つまたは複数のコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、機械学習モデルを使用したデータの処理に関する。
【背景技術】
【0002】
機械学習モデルは、入力を受け取り、受け取った入力に基づいて、出力、例えば予測された出力を生成する。一部の機械学習モデルは、パラメトリックモデルであり、受け取った入力およびモデルのパラメータの値に基づいて、出力を生成する。
【0003】
一部の機械学習モデルは、受け取った入力に対する出力をモデルの複数の層を用いて生成する、深層モデルである。例えば、深層ニューラルネットワークは、出力層と、受け取った入力にそれぞれが非線形変換を適用して出力を生成する1つまたは複数の隠れ層とを含む、深層機械学習モデルである。
【先行技術文献】
【非特許文献】
【0004】
【文献】H. Mania、A. Guy、およびB. Recht、「Simple random search provides a competitive approach to reinforcement learning」、arXiv:1803.07055v1、2018
【文献】E. Real、A. Aggarwal、Y. Huang、およびQ. V. Le:「Regularized evolution for image classifier architecture search」、arXiv:1802.01548、2018
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書では、1つまたは複数の位置にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるトレーニングシステムについて説明する。
【0006】
第1の態様によれば、特定の機械学習タスクを実施するように機械学習モデルをトレーニングするためのトレーニングデータを受け取ることを含む方法が提供される。トレーニングデータは複数のトレーニング入力を含む。機械学習モデルのトレーニングにトレーニング入力が使用される前にそのトレーニング入力を変換するための手順を定めた複数のデータ拡張方策パラメータを各データ拡張方策が有する、複数のデータ拡張方策が決定される。
【0007】
複数の時間ステップのそれぞれにおいて、以前の時間ステップにおいて生成されたデータ拡張方策のクオリティ判断基準に基づいて、現在のデータ拡張方策が生成される。データ拡張方策のクオリティ判断基準は、そのデータ拡張方策を使用して機械学習モデルをトレーニングした結果としての、特定の機械学習タスクに対するその機械学習モデルの性能を表す。機械学習モデルは、現在のデータ拡張方策を使用したトレーニングデータに対してトレーニングされる。データ拡張方策を使用して機械学習モデルをトレーニングするステップは、トレーニングデータバッチを選択するステップ、データ拡張方策に従ってトレーニングデータバッチ内のトレーニング入力を変換することによって、拡張後トレーニングデータバッチを決定するステップ、および拡張後トレーニングデータバッチに基づいて、機械学習モデルパラメータの現在の値を調整するステップを含む。現在のデータ拡張方策を使用して機械学習モデルがトレーニングされた後でその機械学習モデルを使用して、現在のデータ拡張方策のクオリティ判断基準が決定される。
【0008】
決定されたデータ拡張方策のクオリティ判断基準に基づいて、最終データ拡張方策が選択される。最終データ拡張方策を使用して最終機械学習モデルをトレーニングすることによって、最終のトレーニング済み機械学習モデルが生成される。
【0009】
いくつかの実装形態では、特定の機械学習タスクが、分類または回帰を含む画像処理タスクである。
【0010】
いくつかの実装形態では、各データ拡張方策が、1つまたは複数の下位方策(sub-policy)を含む。各下位方策は、一連の1つまたは複数の変換タプルを含み、各変換タプルについて、データ拡張方策パラメータは、(i)変換操作、および(ii)変換操作の強度(magnitude)を定める。データ拡張方策に従ってトレーニングデータバッチ内のトレーニング入力を変換することは、各トレーニング入力について、データ拡張方策内に含まれる下位方策を特定すること、および特定された下位方策に従って、特定された下位方策内に含まれる各変換タプルをトレーニング入力に順次適用することによって、トレーニング入力を変換することを含む。
【0011】
いくつかの実装形態では、トレーニング入力についてデータ拡張方策内に含まれる下位方策を特定することが、データ拡張方策内に含まれる下位方策をランダムにサンプリングすることを含む。
【0012】
いくつかの実装形態では、変換タプルをトレーニング入力に適用することが、変換タプルからの変換操作および変換タプルからの変換操作強度を、トレーニング入力に適用することを含む。
【0013】
いくつかの実装形態では、各変換タプルについて、データ拡張方策パラメータがさらに、変換操作を適用する確率を定め、変換タプルをトレーニング入力に適用することが、変換タプルからの変換操作および変換タプルからの変換操作強度を、変換タプルからの変換確率とともに、トレーニング入力に適用することを含む。
【0014】
いくつかの実装形態では、機械学習モデルがニューラルネットワークであり、拡張後トレーニングデータバッチに基づいて、機械学習モデルパラメータの現在の値を調整するステップが、拡張後トレーニングデータバッチを使用して、損失関数の勾配を決定するステップ、およびその勾配を使用して、機械学習モデルパラメータの現在の値を調整するステップを含む。
【0015】
いくつかの実装形態では、以前の時間ステップにおいて生成されたデータ拡張方策のクオリティ判断基準に基づいて、現在のデータ拡張方策を生成するステップが、方策ニューラルネットワークを使用して、方策ニューラルネットワークパラメータの現在の値に従って、現在のデータ拡張方策を生成するステップを含み、方策ニューラルネットワークは、強化学習技法によってトレーニングされ、各時間ステップにおいて、強化学習報酬信号は、その時間ステップにおける現在のデータ拡張方策のクオリティ判断基準に基づく。
【0016】
いくつかの実装形態では、各データ拡張方策パラメータについて、方策ネットワーク出力が、データ拡張方策パラメータの可能な値にわたるスコア分布を定める。
【0017】
いくつかの実装形態では、方策ネットワーク出力から現在のデータ拡張方策を決定するステップが、各データ拡張方策パラメータについての値を、そのデータ拡張方策パラメータについてのスコア分布を使用してサンプリングするステップを含む。
【0018】
いくつかの実装形態では、方策ニューラルネットワークが再帰型ニューラルネットワークである。
【0019】
いくつかの実装形態では、以前の時間ステップにおいて生成されたデータ拡張方策のクオリティ判断基準に基づいて、現在のデータ拡張方策を生成するステップが、遺伝的プログラミング法を使用して、現在のデータ拡張方策を生成するステップを含む。
【0020】
いくつかの実装形態では、現在のデータ拡張方策を使用して機械学習モデルがトレーニングされた後でその機械学習モデルを使用して、現在のデータ拡張方策のクオリティ判断基準を決定するステップが、複数のトレーニング入力を備える検証データを使用して、特定の機械学習タスクに対する機械学習モデルの性能判断基準を決定するステップ、およびその性能判断基準に基づいて、クオリティ判断基準を決定するステップを含む。
【0021】
いくつかの実装形態では、検証データ内に含まれるトレーニング入力が、トレーニングデータ内に含まれない。
【0022】
いくつかの実装形態では、決定されたデータ拡張方策のクオリティ判断基準に基づいて、最終データ拡張方策を選択するステップが、決定された、最も高いクオリティスコアを有するデータ拡張方策を選択するステップを含む。
【0023】
いくつかの実装形態では、トレーニング入力が画像である。
【0024】
第2の態様によれば、1つまたは複数のコンピュータと、1つまたは複数のコンピュータによって実行されると第1の態様の動作を含む動作を1つまたは複数のコンピュータに実施させる命令を記憶した、1つまたは複数の記憶デバイスとを含む、システムが提供される。
【0025】
第3の態様によれば、1つまたは複数のコンピュータによって実行されると第1の態様の動作を含む動作を1つまたは複数のコンピュータに実施させる命令を記憶した、1つまたは複数のコンピュータ記憶媒体が提供される。
【0026】
本明細書において説明する本主題の特定の実施形態は、以下の利点のうちの1つまたは複数を実現するように実装することができる。
【0027】
本明細書において説明するトレーニングシステムは、機械学習モデルを、手動で設計されたデータ拡張方策ではなく「学習済み」データ拡張方策を使用してトレーニングすることができる。本トレーニングシステムは、可能なデータ拡張方策の空間を自動的に探索して、それを使用してトレーニングされる機械学習モデルが機械学習タスクを効果的に実施できるようにする特定のデータ拡張方策を特定することによって、データ拡張方策を学習することが可能である。
【0028】
学習済みデータ拡張方策を使用してトレーニングされる機械学習モデルは、手動で設計されたデータ拡張方策を使用してトレーニングされる機械学習モデルよりも(例えば高い予測精度を達成することによって)良好に機能することができる。さらに、学習済みデータ拡張方策を使用することにより、機械学習モデルが、普通なら必要とされるよりも少ないトレーニングデータを使用して許容可能な性能レベルを達成するようにトレーニングされることが可能になり、したがって、計算リソース(例えばメモリ)のより効率の良い使用が可能になり得る。
【0029】
本明細書において説明するトレーニングシステムによって学習されるデータ拡張方策は、いくつかの場合には、トレーニングデータセット間で移行可能である。すなわち、第1のトレーニングデータセットに関して学習されたデータ拡張方策を使用して、機械学習モデルを第2のトレーニングデータセットに対して(すなわち、たとえデータ拡張方策が第2のトレーニングデータセットに関して学習されていなくても)効果的にトレーニングすることができる。トレーニングシステムによって学習されたデータ拡張方策が移行可能であることにより、例えば、新たなトレーニングデータセットのために新たなデータ拡張方策を学習するのではなく学習済みデータ拡張方策を新たなトレーニングデータセットに対して再使用できるようにすることによって、計算リソースの消費が減少し得る。
【0030】
本明細書の本主題の1つまたは複数の実施形態の詳細は、添付の図面および下の説明中に記載されている。本主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0031】
【
図1】例示的なトレーニングシステムを示す図である。
【
図4】データ拡張方策のさまざまな下位方策をオリジナル画像に適用する効果を示した図である。
【
図5】本トレーニングシステムを使用することによって達成することのできる性能向上の一例を示す図である。
【
図6】画像に適用することのできるさまざまなタイプの変換操作について説明する図である。
【
図7】データ拡張方策を自動的に選択し、そのデータ拡張方策を使用して機械学習モデルをトレーニングするための、例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0032】
さまざまな図面中の同様の参照番号および名称は、同様の要素を示す。
【0033】
本明細書では、データ拡張方策を使用してある機械学習タスクを実施するように機械学習モデルをトレーニングする、1つまたは複数の位置にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるトレーニングシステムについて説明する。データ拡張方策を使用して、機械学習モデルのトレーニングの際に使用されるトレーニング入力の量および多様性を増大させ、それにより機械学習タスクをより効果的に(例えばより高い予測精度で)実施するトレーニング済み機械学習モデルをもたらすことができる。本トレーニングシステムは、可能なデータ拡張方策の空間を自動的に探索して、特定のデータ拡張方策を特定し、次いで、その特定のデータ拡張方策を使用して、機械学習モデルをトレーニングする。
【0034】
図1は、例示的なトレーニングシステム100を示す。トレーニングシステム100は、1つまたは複数の位置にある1つまたは複数のコンピュータ上にコンピュータプログラムとして実装されるシステムの一例であり、下で説明するシステム、コンポーネント、および技法を実装することができる。
【0035】
トレーニングシステム100は、トレーニング済み機械学習モデル102を生成するように構成され、このトレーニング済み機械学習モデル102は、機械学習モデル104を(i)トレーニングデータ106のセット、および(ii)「最終」データ拡張方策108を使用してトレーニングすることによって、ある機械学習タスクを実施するようにトレーニングされる。下でより詳細に説明するように、トレーニングシステム100は、可能なデータ拡張方策の空間を探索することによって、最終データ拡張方策108を特定する。
【0036】
機械学習タスクには、画像を処理して、その画像に基づく予測値を生成することが関与し得る。すなわち、機械学習モデル104は、画像を含む入力を処理して、対応する出力、例えば分類出力、回帰出力、またはそれらの組合せを生成するように構成され得る。機械学習タスクのほんの数例が次に続く。
【0037】
一例では、機械学習モデルは、画像を処理して、複数のカテゴリのそれぞれに対応するそれぞれのスコアを含む分類出力を生成するように構成される。カテゴリのスコアは、画像がそのカテゴリに属する可能性を示す。いくつかの場合には、カテゴリは、オブジェクトのクラス(例えば犬、猫、人物など)とすることができ、画像は、カテゴリに対応するオブジェクトクラス内に含まれるオブジェクトを描いたものである場合、そのカテゴリに属することができる。いくつかの場合には、カテゴリは、大域的な画像特性(例えば画像が日中のシーンを描いたものであるか、それとも夜間のシーンを描いたものであるか、または画像が夏のシーンを描いたものであるか、それとも冬のシーンを描いたものであるか)を表すことがあり、画像は、カテゴリに対応する大域的特性を有している場合、そのカテゴリに属することができる。
【0038】
別の例では、機械学習モデルは、画像を処理して、各画素について複数のカテゴリのそれぞれに対応するそれぞれのスコアを含む、画素レベル分類出力を生成するように構成される。所与の画素について、カテゴリのスコアは、画素がそのカテゴリに属する可能性を示す。いくつかの場合には、カテゴリは、オブジェクトのクラスとすることができ、画素は、カテゴリに対応するオブジェクトクラス内に含まれるオブジェクト上の部分である場合、そのカテゴリに属することができる。すなわち、画素レベル分類出力は、セマンティックセグメンテーション出力とすることができる。
【0039】
別の例では、機械学習モデルは、画像を処理して、その画像を特徴付ける1つまたは複数の連続変数を推定する(すなわち無限に多くの可能な数値を仮定することのできる)回帰出力を生成するように構成される。特定の例では、回帰出力は、画像内に描かれたそれぞれのオブジェクトを囲むバウンディングボックスの座標を推定することができる。バウンディングボックスの座標は、バウンディングボックスの頂点のx-y座標によって画定することができる。
【0040】
便宜上、本明細書では、主として機械学習タスクを、画像を処理して、その画像に基づく予測値を生成するものとして説明している。より一般には、機械学習タスクは、入力を処理して、その入力に基づく予測値を生成することが関与する、どんなタスクとすることもできる。機械学習タスクのさらなるほんの数例について次に説明する。
【0041】
一例では、機械学習タスクは音声認識タスクとすることができ、その場合、機械学習モデルは、オーディオ波形の表現物を処理して、そのオーディオ波形に対応する一連の音素、文字、または語を特徴付ける出力を生成するように構成される。
【0042】
別の例では、機械学習タスクはビデオ解析タスクとすることができ、その場合、機械学習モデルは、一連のビデオフレームを処理して、例えばそのビデオフレームが特定の行動をしている人物を描いたものであるかどうかを特徴付けることによって、そのビデオフレームを特徴付ける出力を生成するように構成される。
【0043】
別の例では、機械学習タスクは自然原語処理タスクとすることができ、その場合、機械学習モデルは、テキストの一部分を処理して、例えばテキストのその一部分の別の自然言語への変換を特徴付けることによって、テキストのその一部分を特徴付ける出力を生成するように構成される。
【0044】
トレーニングデータ106は、各トレーニング例がトレーニング入力および対応するターゲット出力を指定する複数のトレーニング例からなる。トレーニング入力は画像を含む。ターゲット出力は、機械学習モデルがトレーニング入力を処理することによって生成すべき出力を表す。例えば、ターゲット出力は、入力画像に対応するカテゴリ(例えばオブジェクトクラス)を指定する分類出力とすることもでき、あるいは入力画像に対応する1つまたは複数の連続変数(例えばオブジェクトバウンディングボックス座標)を指定する回帰出力とすることもできる。
【0045】
機械学習モデル104は、任意の適切な機械学習モデルアーキテクチャを有することができる。例えば、機械学習モデルは、ニューラルネットワークモデル、ランダムフォレストモデル、サポートベクタマシン(SVM)モデル、線形モデル、またはそれらの組合せとすることができる。
【0046】
システム100は、トレーニングデータ106、および機械学習モデル104を画定するデータを、多様な方途のいずれかにおいて受け取ることができる。例えば、システム100は、トレーニングデータ106、および機械学習モデル104を画定するデータを、例えばシステム100によって提供されるアプリケーションプログラミングインターフェース(API)を使用して、データ通信ネットワークを経由したシステム100の遠隔ユーザからのアップロードとして受け取ることができる。
【0047】
データ拡張方策は、機械学習モデルのトレーニングにトレーニング入力(すなわちトレーニング例内に含まれた)が使用される前にそのトレーニング入力を変換するための手順を指定する、パラメータ(本文献では「データ拡張方策パラメータ」と呼ぶ)のセットによって定められる。データ拡張方策および対応するデータ拡張方策パラメータの例については、
図3を参照してより詳細に説明する。
【0048】
トレーニング入力を変換するための手順は一般に、トレーニング入力内に含まれる画像に、1つまたは複数の操作(本文献では「変換操作」と呼ぶ)を適用することを含む。この操作は、任意の適切な類の画像処理操作、例えば平行移動操作、回転操作、せん断操作、色反転操作、またはそれらの組合せとすることができる。データ拡張方策パラメータは、どの変換操作をどの強度でどんな確率で適用すべきかを指定することができる。可能な変換操作の例については、
図6を参照してより詳細に説明する。
【0049】
システム100は、可能なデータ拡張方策の空間から「クオリティ判断基準」の高いデータ拡張方策を特定するための探索アルゴリズムを実装している。データ拡張方策のクオリティ判断基準は、そのデータ拡張方策を使用してトレーニングされた機械学習モデルの性能(例えば予測精度)を特徴付ける。便宜上、クオリティ判断基準が高いほうが、本文献では、性能がより良好である(例えば予測精度がより高い)ことを意味するものと理解される。
【0050】
システム100は、データ拡張方策のクオリティ判断基準を、そのデータ拡張方策を使用してトレーニングされた機械学習モデルの性能を「検証セット」に対して評価することによって決定することができる。検証セットは、機械学習モデルをトレーニングする際に使用されなかった1つまたは複数のトレーニング例からなる。例えば、システム100はクオリティ判断基準110を、検証セットに対するトレーニング済み機械学習モデルの任意の適切な性能判断基準、例えばF1スコアもしくはマシューズ相関関数(分類タスクの場合)、または2乗誤差もしくは絶対誤差(回帰タスクの場合)に基づいて、決定することができる。値が低いほうがトレーニング済み機械学習モデルの性能がより良好であることを示す性能判断基準(例えば2乗誤差性能判断基準)の場合、データ拡張方策のクオリティ判断基準は、性能判断基準に反比例し得る(すなわち、そのためクオリティ判断基準の高いほうがやはり性能がより良好であることを意味する)。
【0051】
システム100は検証セットを、例えばより大きなトレーニングデータセットをランダムにパーティショニングして、トレーニングデータ106(すなわち機械学習モデルをトレーニングする際に使用される)と検証セット(すなわちトレーニング済み機械学習モデルの性能を評価する際に使用される)を生成することによって、取得することができる。
【0052】
本文献全体を通して、可能なデータ拡張方策の空間は、データ拡張方策パラメータの可能な値によってパラメータ化される空間を指す。
【0053】
トレーニングシステム100は、トレーニングエンジン112および方策生成エンジン114を含む。
【0054】
本明細書では「時間ステップ」と呼ぶ複数回の反復のそれぞれにおいて、方策生成エンジン114が、1つまたは複数の「現在の」データ拡張方策116を生成する。現在のデータ拡張方策116のそれぞれについて、システム100は、トレーニングエンジン112を用い現在のデータ拡張方策を使用して機械学習モデル104をトレーニングし、その後、現在のデータ拡張方策のクオリティ判断基準110を決定する。方策生成エンジン114は、現在のデータ拡張方策の116のクオリティ判断基準110を使用して、次の時間ステップ用に生成されるデータ拡張方策の期待されるクオリティ判断基準を向上させる。
【0055】
機械学習モデルをトレーニングすることは、機械学習モデルのパラメータの初期値から機械学習モデルのパラメータのトレーニング後の値を確定することを意味する。トレーニングエンジン112は、機械学習モデル104を、例えば機械学習モデルパラメータのランダムに選択された初期値またはデフォルトの初期値から開始してトレーニングすることができる。
【0056】
一般に、機械学習モデルは、データ拡張方策を使用して、既存のトレーニング例のトレーニング入力を変換して「新たな」トレーニング例を生成し、(既存のトレーニング例の代わりにまたはそれに加えて)その新たなトレーニング例を使用して、機械学習モデルをトレーニングすることによって、トレーニングすることができる。例えば、トレーニング例のトレーニング入力内に含まれる画像は、データ拡張方策によって指定される1つまたは複数の画像処理操作をその画像に適用することによって変換することができる。
【0057】
いくつかの場合には、(例えばデータ拡張方策に従って)トレーニング例のトレーニング入力を変換するとともに、同じ対応するターゲット出力を維持することができる。例えば、トレーニング入力内に描かれたオブジェクトのタイプをターゲット出力が指定する画像分類タスクの場合、トレーニング入力内に含まれる画像に画像処理操作(例えば回転、せん断など)を適用しても、画像内に描かれたオブジェクトのタイプには影響が及ばない。したがって、この例では、変換後のトレーニング入力が、オリジナルのトレーニング入力と同じターゲット出力に対応することになる。
【0058】
しかし、ある特定の状況下では、トレーニング例のトレーニング入力を変換すると、トレーニング例のターゲット出力も変更することが必要になる場合がある。一例では、トレーニング入力に対応するターゲット出力が、トレーニング入力の画像内に描かれたオブジェクトを囲むバウンディングボックスの座標を指定する場合がある。この例では、トレーニング入力の画像に平行移動操作を適用すると、ターゲット出力によって指定されるバウンディングボックス座標に同じ平行移動操作を適用することが必要になる。
【0059】
データ拡張方策を使用して機械学習モデル104をトレーニングするためにトレーニングエンジン112によって実施される特定の操作は、機械学習モデル104のアーキテクチャ、例えば機械学習モデル104がニューラルネットワークモデルであるかそれともランダムフォレストモデルであるか、によって決まる。データ拡張方策を使用してニューラルネットワークモデルをトレーニングする一例については、
図7を参照してより詳細に説明する。
【0060】
方策生成エンジン114は、多様な技法のいずれかを使用して、可能なデータ拡張方策の空間を探索することができる。一実装形態では、方策生成エンジン114はデータ拡張方策を、本文献では「方策」ネットワークと呼ぶニューラルネットワークを使用して生成する。方策ネットワークは、強化学習技法を使用してトレーニングすることができ、その場合、報酬(すなわち方策ネットワークがそれを最大化するようにトレーニングされる)が、方策ニューラルネットワークによって生成されたデータ拡張方策に対応するクオリティ判断基準によって与えられる。強化学習技法を使用してトレーニングされる方策ネットワークを使用した方策生成エンジン114の例示的な一実装形態については、
図2を参照してより詳細に説明する。
【0061】
他の実装形態では、方策生成エンジン114は、可能なデータ拡張方策の空間を探索するための多様な他の技法のいずれかとすることができる。例えば、方策生成エンジン114は、例えばH. Mania、A. Guy、およびB. Recht、「Simple random search provides a competitive approach to reinforcement learning」、arXiv:1803.07055v1、2018に関して記載されているランダム探索技法を使用することができる。別の例として、方策生成エンジン114は、例えばE. Real、A. Aggarwal、Y. Huang、およびQ. V. Le:「Regularized evolution for image classifier architecture search」、arXiv:1802.01548、2018に関して記載されている進化的探索技法(すなわち「遺伝的プログラミング法」)を使用することができる。
【0062】
システム100は、データ拡張方策の生成を、探索終了基準が満たされるまで続けることができる。例えば、トレーニングシステム100は、データ拡張方策が所定数の時間ステップにわたって生成された場合、探索終了基準が満たされたとの判断をすることができる。別の例として、トレーニングシステム100は、生成されたデータ拡張方策のクオリティ判断基準が所定のしきい値を満たす場合、探索終了基準が満たされたとの判断をすることができる。
【0063】
探索終了基準が満たされたとの判断をした後で、システム100は、生成されたデータ拡張方策のそれぞれのクオリティ判断基準110に基づいて、最終データ拡張方策を選択する。例えば、システム100は、トレーニングシステム100によって生成された、最も高いクオリティスコアを有するデータ拡張方策を、最終データ拡張方策として選択することができる。別の例として、それについては
図3を参照してより詳細に説明するが、システム100は、トレーニングシステムによって生成された、最も高いクオリティスコアを有する所定数(例えば5つ)のデータ拡張方策を組み合わせて、最終データ拡張方策108を生成することもできる。
【0064】
システム100は、最終データ拡張方策108を使用したトレーニングデータ106に対して機械学習モデル104をトレーニングすることによって、トレーニング済み機械学習モデル102を生成し、その後、トレーニング済み機械学習モデル102を画定するデータを出力することができる。
【0065】
いくつかの実装形態では、トレーニング済み機械学習モデル102を出力する代わりにまたはそれに加えて、システム100は、トレーニング済み機械学習モデル102を使用して、例えばシステム100によって提供されるAPIを通じてユーザが受け取った要求を処理する。すなわち、システム100は、処理すべき入力を受け取り、トレーニング済み機械学習モデル102を使用してその入力を処理し、トレーニング済み機械学習モデル102によって生成された出力、または生成された出力から抽出されたデータを、受け取った入力に応答して提供する。
【0066】
トレーニングシステム100は、トレーニングデータ106の特定のセットに関して最終データ拡張方策108を決定するが、最終データ拡張方策108は(いくつかの場合には)他のトレーニングデータセットに移行可能とすることができる。すなわち、トレーニングデータ106に関して決定された最終データ拡張方策108は、他の機械学習モデルを異なるトレーニングデータセットに対して効果的にトレーニングするのに使用することができる。
【0067】
図2は、例示的な方策生成エンジン114を示す。方策生成エンジン114は、方策ニューラルネットワーク202を含み、これは、方策ネットワーク202のパラメータに従って方策ネットワーク出力を生成するように構成されており、方策生成エンジン114はまた、方策ネットワークパラメータ値を調整するように構成されたパラメータ更新エンジン204を含む。方策ネットワーク202によって生成された各方策ネットワーク出力206が、それぞれに対応するデータ拡張方策116を定める。
【0068】
具体的には、各方策ネットワーク出力206は、複数の出力位置のそれぞれにおけるそれぞれに対応する出力を含み、各出力位置は、異なるデータ拡張方策パラメータに対応する。したがって、各方策ネットワーク出力は、各出力位置における、対応するデータ拡張方策パラメータのそれぞれに対応する値を含む。まとめると、所与の方策ネットワーク出力によって指定されるデータ拡張方策パラメータの値が、データ拡張方策を定める。
【0069】
各時間ステップにおいて、方策生成エンジン114は、方策ネットワーク202を使用して、方策ネットワークパラメータの現在の値に従って、1つまたは複数の方策ネットワーク出力206を生成し、そのそれぞれが、それぞれに対応するデータ拡張方策116を定める。
【0070】
方策ネットワーク202は、1つまたは複数の再帰型ニューラルネットワーク層、例えば長短期記憶(LSTM)層またはゲート付き再帰型ユニット(GRU)層を含む、再帰型ニューラルネットワークである。方策ネットワーク202は、方策ネットワーク出力206の一連の出力位置における各出力位置に対応するそれぞれのデータ拡張方策パラメータを順次生成することによって、方策ネットワーク出力206を生成する。具体的には、各出力位置について、方策ネットワーク202は、方策ネットワーク出力206における先行する出力位置に対応するデータ拡張方策パラメータの値を入力として受け取り、その入力を処理して、方策ネットワーク202の現在の隠れ状態を更新する。方策ネットワーク出力における一番初めの出力位置の場合、先行する出力位置がないので、方策ネットワーク202は、予め定められたプレースホルダ入力を処理することができる。
【0071】
方策ネットワーク202はまた、方策ネットワーク出力206における各出力位置について、それぞれに対応する出力層を含む。出力位置に対応する出力層は、方策ネットワーク202の、その出力位置に対応する更新された隠れ状態を処理して出力を生成し、その出力は、その出力位置に対応するデータ拡張方策パラメータの可能な値にわたるスコア分布を定める。例えば、出力層は最初に、方策ネットワーク202の更新された隠れ状態を、対応するデータ拡張方策パラメータの可能な値の数に適した次元に投影することができる。次いで、出力層は、投影された隠れ状態にsoftmaxを適用して、対応するデータ拡張方策パラメータの複数の可能な値のそれぞれについて、それぞれに対応するスコアを生成することができる。
【0072】
各出力位置について、方策ネットワーク202は、対応するデータ拡張方策パラメータの値を、データ拡張方策パラメータの可能な値にわたるスコア分布(すなわち対応する出力層によって生成された)からサンプリングすることによって生成する。所与のデータ拡張方策パラメータが取ることのできる可能な値は、トレーニング前に決定され、データ拡張方策パラメータが異なれば、可能な値の数は異なることがある。
【0073】
一般に、方策ネットワークパラメータの値は、時間ステップ内で変化しない。しかし、データ拡張方策パラメータの値を、可能な値にわたるスコア分布からサンプリングすることによって、方策ネットワーク202は、複数の別個の方策ネットワーク出力206(すなわちそれぞれが異なるデータ拡張方策116に対応する)を生成することが可能である。
【0074】
時間ステップにおいて生成された各データ拡張方策116について、トレーニングシステム100は、そのデータ拡張方策116を使用して機械学習モデルをトレーニングし、その後、(先に説明したように)トレーニング済み機械学習モデルのそれぞれのクオリティ判断基準110を決定する。
【0075】
次いで、パラメータ更新エンジン204が、クオリティ判断基準110を報酬信号として使用して、方策ネットワークパラメータの現在の値を、強化学習技法を使用して更新する。すなわち、パラメータ更新エンジン204は、方策ネットワークパラメータの現在の値を、強化学習技法を使用して、対応するデータ拡張方策のクオリティ判断基準の向上をもたらす方策ネットワーク出力を生成するように方策ネットワークをトレーニングすることによって、調整する。より具体的には、パラメータ更新エンジン204は、対応するデータ拡張方策のクオリティ判断基準に基づいて決まる受け取った報酬を最大化する方策ネットワーク出力を生成するように、方策ネットワークをトレーニングする。具体的には、所与の方策ネットワーク出力の報酬は、所与の方策ネットワーク出力によって定められたデータ拡張方策のクオリティ判断基準の関数である。例えば、報酬は、クオリティ判断基準、クオリティ判断基準の2乗、クオリティ判断基準の3乗、クオリティ判断基準の平方根などのうちの1つとすることができ、またはそのうちの1つに正比例することができる。
【0076】
いくつかの場合には、パラメータ更新エンジン204は、方策勾配技法を使用して期待される報酬を最大化するように方策ネットワーク202をトレーニングする。例えば、方策勾配技法は、REINFORCE技法または近位方策最適化(Proximal Policy Optimization)(PPO)技法とすることができる。例えば、所与の時間ステップにおいて、パラメータ更新エンジン204は、方策ネットワークパラメータの現在の値を、
【数1】
によって与えられる方策ネットワークパラメータの勾配の組合せを使用して更新し、ここで、kは、その時間ステップにおいて生成された方策ネットワーク出力を示し、Kは、その時間ステップにおいて生成された方策ネットワーク出力の合計数であり、tは、方策ネットワーク出力における出力位置を示し、Tは、方策ネットワーク出力における出力位置の合計数であり、∇
θは、方策ネットワークパラメータに関する勾配演算子であり、P(a
k,t)は、方策ネットワーク出力kにおける出力位置tにおいて生成されたデータ拡張方策パラメータに対応するスコアであり、R
kは、方策ネットワーク出力kに関する報酬であり、bは、ベースライン関数、例えば以前の報酬の指数移動平均である。
【0077】
方策ネットワークパラメータの値を繰り返し更新することによって、パラメータ更新エンジン204は、機械学習タスクに対する性能の向上したトレーニング済み機械学習モデルをもたらすデータ拡張方策を定める方策ネットワーク出力を生成するように、方策ネットワーク202をトレーニングすることができる。すなわち、方策ネットワークパラメータの値をこのようにして更新すると、方策ネットワークによって提案されたデータ拡張方策を使用してトレーニングされる機械学習モデルの、検証セットに対する期待される精度が向上し得る。
【0078】
図3は、例示的なデータ拡張方策300の図である。データ拡張方策300は、1つまたは複数の「下位方策」302-A~302-Nからなる。各下位方策は、一連の変換操作(例えば304-A~304-M)、例えば画像処理操作、例えば平行移動操作、回転操作、またはせん断操作を指定する。各変換操作は、関連する強度(例えば306-A~306-M)、および関連する確率(例えば308-A~308-M)を有する。
【0079】
変換操作の強度は、変換操作がトレーニング入力にどのように適用されるべきかを指定する、1つまたは複数の数値の順序付き集合である。例えば、平行移動操作の強度は、画像がx方向およびy方向に平行移動されるべき画素数を指定することができる。別の例として、回転操作の強度は、画像が回転されるべきラジアン数を指定することができる。
【0080】
データ拡張方策300を使用してトレーニング入力を変換するには、データ拡張方策内に含まれる下位方策のセットから、例えば下位方策をランダムにサンプリングすることによって、下位方策が選択される。次いで、選択された下位方策によって指定される一連の変換操作のうちの各変換操作について、変換操作が変換操作に関連する確率でトレーニング入力に適用される。変換操作は、トレーニング入力に適用される場合、その変換操作に関連する強度で適用される。トレーニング入力に適用される変換操作は、下位方策によって指定される変換操作の順序付けに従って適用される。さまざまな下位方策を画像に適用する効果を示した図を、
図4に示す。
【0081】
例示的なデータ拡張方策300のパラメータは、各下位方策の各変換操作について、(i)変換操作のタイプ(例えば平行移動、回転、せん断など)、(ii)変換操作の強度、および(iii)変換操作を適用する確率を含む。
【0082】
各データ拡張方策パラメータは、可能な値の所定のセットを有することができる。例えば、変換操作のタイプは、可能な変換タイプの所定のセットから選択することができる。変換操作の強度は、所定数の可能な値を有することができ、それらは、例えば、許容値の連続範囲全体にわたって等間隔をあけられている。例えば、回転操作の場合、許容値の連続範囲は[0, 2π]ラジアンとすることができ、回転操作の強度の可能な値は、
【数2】
とすることができる。変換操作を適用する確率は、所定数の可能な値を有することができ、それらは、例えば、範囲[0, 1]全体にわたって等間隔をあけられている。一例では、変換操作を適用する確率の可能な値は、{0, 0.2, 0.4, 0.6, 0.8, 1}とすることができる。
【0083】
データ拡張方策は、所定数の下位方策を有することができ、各下位方策は、所定数の変換操作を指定することができる。いくつかの場合には、変換操作を適用する確率を0とすることができ、その結果、その変換操作は決してトレーニング入力に適用されないことになる。データ拡張方策の空間をこのように設計すると、見出されるデータ拡張方策の多様性を増大させることができる。
【0084】
一具体例では、データ拡張方策が、2つの変換操作をそのそれぞれが指定する5つの下位方策を有することができる。各変換操作は、それぞれに対応する強度および確率のスカラー値を有し、16の異なる変換タイプのいずれかとすることができる。この例では、データ拡張方策は合計で5×2×2×16=320パラメータを有することになる。変換操作の強度が10個の可能な値を有し、かつ変換操作を適用する確率が11個の可能な値を有する場合、可能なデータ拡張方策の空間は、およそ2.9×1032個のデータ拡張方策を含むことになる。
【0085】
図1を参照して説明したように、トレーニングシステム100は、トレーニングシステム100によって生成された、最も高いクオリティスコアを有する所定数のデータ拡張方策を組み合わせて、最終データ拡張方策を生成することができる。
図3を参照して説明した形態を有するデータ拡張方策の場合、複数のデータ拡張方策を、それらのそれぞれに対応する下位方策を集めて単一の組み合わせたデータ拡張方策にすることによって、組み合わせることができる。組み合わせたデータ拡張方策をトレーニング入力に適用するには、下位方策の組み合わせた集合からの下位方策のうちの1つをランダムに選択することができ、トレーニング入力を、(先に説明したように)ランダムに選択された下位方策によって指定される一連の変換操作に従って変換することができる。
【0086】
図4は、さまざまな下位方策をオリジナル画像400に適用する効果を示した図である。例えば、「下位方策1」は、(i)対応する確率が0.4かつ強度が4の等化操作、および(ii)対応する確率が0.8かつ強度が8度の回転操作を含む、一連の変換操作を指定している。等化操作および回転操作については、
図6を参照してより詳細に説明する。下位方策1をオリジナル画像400に3回に分けて適用する効果が、402、404、および406によって示されている。
図4は、「下位方策2」、「下位方策3」、「下位方策4」、および「下位方策5」をオリジナル画像400に適用する効果も示す。
【0087】
図5は、本明細書において説明したトレーニングシステムを使用して達成することのできる性能向上の一例を示す。複数のトレーニングデータセット(すなわち「CIFAR-10」、「CIFAR-100」、「SVHN」、「Stanford Cars」、および「ImageNet」)のそれぞれについて、トレーニングシステム100によって選択された(すなわち対応する検証セットに対して評価された)データ拡張方策を使用してトレーニングされたニューラルネットワークモデルの誤り率が、そのトレーニングデータセットについて公表されている最良の結果のいくつかに勝っている。
【0088】
図6は、画像に適用することのできるさまざまなタイプの変換操作について説明している。任意の所与の拡張方策のパラメータのうちの1つのパラメータの値が、
図6に示す変換タイプのセットからのどの変換タイプがその所与の拡張方策内に含まれているかを定めることができる。
【0089】
図7は、データ拡張方策を自動的に選択し、そのデータ拡張方策を使用して機械学習モデルをトレーニングするための、例示的なプロセス700の流れ図である。便宜上、プロセス700については、1つまたは複数の位置にある1つまたは複数のコンピュータのシステムによって実施されるものとして説明する。例えば、本明細書に従って適切にプログラムされたトレーニングシステム、例えば
図1のトレーニングシステム100は、プロセス700を実施することができる。
【0090】
システムは、特定の機械学習タスクを実施するように機械学習モデルをトレーニングするためのトレーニングデータを受け取る(702)。例えば、システムは、システムによって提供されるAPIを通じて、トレーニングデータを受け取ることができる。トレーニングデータは、そのそれぞれがトレーニング入力および対応するターゲット出力を指定する複数のトレーニング例を含む。
【0091】
システムは、複数の時間ステップのそれぞれにおいて、プロセス700のステップ704~708を実施する。便宜上、ステップ704~708のそれぞれについては、「現在の」時間ステップにおいて実施されるものとして説明する。
【0092】
システムは、以前の時間ステップにおいて生成されたデータ拡張方策のクオリティ判断基準に基づいて、1つまたは複数の現在のデータ拡張方策を生成する(704)。現在の時間ステップが最初の時間ステップである場合、システムはデータ拡張方策を、多様な方途のいずれかにおいて、例えば各データ拡張方策を定めるパラメータ値をランダムに選択することによって、生成することができる。一実装形態では、システムは、現在のデータ拡張方策を、(例えば
図2を参照して説明したように)以前の時間ステップにおいて生成されたデータ拡張方策のクオリティ判断基準によって定まる報酬に基づく強化学習技法を使用してトレーニングされる方策ネットワークを使用して、生成することができる。他の実装形態では、システムは、現在のデータ拡張方策を、多様な適切な探索技法、例えばランダム探索技法または進化的探索技法、のいずれかを使用して、生成することができる。
【0093】
現在のデータ拡張方策のそれぞれについて、システムは、現在のデータ拡張方策を使用したトレーニングデータに対して機械学習モデルをトレーニングする(706)。一例では、機械学習モデルはニューラルネットワークモデルであり、システムはそのニューラルネットワークモデルを複数回のトレーニング反復にわたってトレーニングする。各トレーニング反復において、システムは、現在の1つまたは複数のトレーニング例「バッチ」(すなわちセット)を選択し、次いで、現在のトレーニング例バッチ内のトレーニング入力を現在のデータ拡張方策を使用して変換することによって、「拡張後」トレーニング例バッチを確定する。オプションで、システムは、(先に説明したように)トレーニング入力に適用された変換を補償するために、現在のトレーニング例バッチ内のターゲット出力を調整することもできる。システムは、機械学習モデルの現在のパラメータ値に従って変換後のトレーニング入力を処理して、対応する出力を生成する。システムは次いで、(i)機械学習モデルによって生成された出力と(ii)トレーニング例によって指定されたターゲット出力との間の類似性を測定する目的関数の勾配を決定し、その勾配を使用して、機械学習モデルパラメータの現在の値を調整する。システムは勾配を、例えば誤差逆伝搬法を使用して決定することができ、システムはその勾配を使用して、機械学習モデルパラメータの現在の値を、任意の適切な勾配降下最適化法、例えばRMSprop法またはAdam法を使用して調整することができる。
【0094】
現在のデータ拡張方策のそれぞれについて、システムは、現在のデータ拡張方策を使用して機械学習モデルがトレーニングされた後でその機械学習モデルを使用して、現在のデータ拡張方策のクオリティ判断基準を決定する(708)。例えば、システムは、機械学習モデルのトレーニングに使用されていない複数のトレーニング例からなる検証データのセットに対するトレーニング済み機械学習モデルの性能判断基準(例えばF1スコアまたは平均2乗誤差)となるべきクオリティ判断基準を決定することができる。
【0095】
システムは、ステップ704~708を、探索終了基準が満たされる(例えばステップ704~708が所定の回数実施された場合)まで繰り返し実施することができる。
【0096】
システムは、探索終了基準が満たされたとの判断をした後で、ステップ704~708の間に生成されたデータ拡張方策のクオリティ判断基準に基づいて、最終データ拡張方策を選択する(710)。例えば、システムは、ステップ704~708の間に生成された、最も高いクオリティスコアを有する所定数のデータ拡張方策を組み合わせることによって、最終データ拡張方策を生成することができる。
【0097】
システムは、最終データ拡張方策を使用したトレーニングデータに対して機械学習モデルをトレーニングすることによって、最終のトレーニング済み機械学習モデルを生成する(712)。システムは、最終のトレーニング済み機械学習モデルを、システムのユーザに提供することができる。その代わりにまたはそれと組み合わせて、システムは、トレーニング済み機械学習モデルを使用して、ユーザから受け取った要求を処理することもできる。
【0098】
いくつかの場合には、システムは、最終データ拡張方策を使用して最終機械学習モデルを、システムがステップ704において生成された「現在の」データ拡張方策を使用して機械学習モデルをトレーニングするときよりも多数のトレーニング反復にわたって、トレーニングすることができる。例えば、システムは、最終データ拡張方策を使用して最終機械学習モデルを、収束基準が満たされるまで、例えば検証セットに対して評価された最終機械学習モデルの予測精度が最小値に到達するまで、トレーニングすることができる。他方では、システムは、ステップ704において生成された現在のデータ拡張方策のそれぞれを、より少ない(例えば固定)数のトレーニング反復にわたってトレーニングすることもできる。
【0099】
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して「構成される」という用語を使用している。1つまたは複数のコンピュータからなるシステムが、特定の動作またはアクションを実施するように構成されるとは、システムがその上に、動作の際にシステムにその動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールされる、ということを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実施するように構成されるとは、1つまたは複数のプログラムが、データ処理装置によって実行されると装置にその動作またはアクションを実施させる命令を含む、ということを意味する。
【0100】
本明細書において説明した本主題および機能的動作の実施形態は、デジタル電子回路として、有形に具現化されたコンピュータソフトウェアもしくはファームウェアとして、本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアとして、またはそれらのうちの1つもしくは複数の組合せとして、実装することができる。本明細書において説明した本主題の実施形態は、データ処理装置によって実行できるように、またはデータ処理装置の動作を制御するために、有形の非一時的記憶媒体上に符号化された、1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の組合せとすることができる。その代わりにまたはそれに加えて、プログラム命令は、情報をデータ処理装置によって実行する目的で適切なレシーバ装置に送信できるように符号化するために生成される、人工的に生成された伝搬信号、例えば機械により生成された電気信号、光信号、または電磁信号上に、符号化することもできる。
【0101】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)とすることもでき、あるいはそれをさらに含むこともできる。装置はオプションで、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含むこともできる。
【0102】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれ、または説明されることのあるコンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態でデプロイすることができる。プログラムは、その必要はないが、ファイルシステム内のファイルに対応してよい。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分、例えばマークアップ言語ドキュメント内に格納された1つもしくは複数のスクリプト内に、当該のプログラムに専用の単一のファイル内に、または複数の連係されたファイル、例えばコードの1つもしくは複数のモジュール、サブプログラム、もしくは部分を格納するファイル内に、格納することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように、デプロイすることができる。
【0103】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実施するようにプログラムされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広義に使用される。一般に、エンジンは、1つまたは複数の位置にある1つまたは複数のコンピュータ上にインストールされた1つまたは複数のソフトウェアモジュールまたはソフトウェアコンポーネントとして実装される。いくつかの場合には、1つまたは複数のコンピュータが、特定のエンジンに専用であり、他の場合には、複数のエンジンが、同じ1つまたは複数のコンピュータ上にインストールされ、その上で実行されていてよい。
【0104】
本明細書において説明したプロセスおよび論理フローは、機能を実施するための1つまたは複数のコンピュータプログラムを入力データに作用し出力を生成することにより実行する、1つまたは複数のプログラマブルコンピュータによって実施することができる。プロセスおよび論理フローは、専用論理回路、例えばFPGAもしくはASICによって、または専用論理回路と1つもしくは複数のプログラムされたコンピュータとの組合せによって、実施することもできる。
【0105】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサ、もしくは専用マイクロプロセッサ、もしくはその両方、または他の任意の種類の中央処理装置に基づいていてよい。一般に、中央処理装置は、読出し専用メモリ、またはランダムアクセスメモリ、またはその両方から、命令およびデータを受け取る。コンピュータの必須要素は、命令を実施または実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完するか、またはそれに組み込むことができる。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはそこからデータを受け取り、もしくはそこにデータを転送し、もしくはその両方を行うために動作可能に結合される。しかし、コンピュータは、そのようなデバイスを有している必要はない。さらに、コンピュータは、別のデバイス、例えば、ほんの数例を挙げると、モバイル電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオプレーヤもしくはモバイルビデオプレーヤ、ゲームコンソール、グローバルポジショニングシステム(GPS)レシーバ、またはポータブル記憶デバイス、例えばユニバーサルシリアルバス(USB)フラッシュドライブに埋め込むことができる。
【0106】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体としては、例として半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性のメモリ、媒体、およびメモリデバイスがある。
【0107】
ユーザとの対話を可能にするために、本明細書において説明した本主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力することのできるキーボードおよびポインティングデバイス、例えばマウスまたはトラックボールとを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を可能にすることもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受け取ることができる。加えて、コンピュータはユーザと、ユーザが使用するデバイスにドキュメントを送り、そこからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザに、そのウェブブラウザから受信した要求に応答してウェブページを送ることによって、対話することができる。また、コンピュータはユーザと、パーソナルデバイス、例えばメッセージングアプリケーションを実行しているスマートフォンに、テキストメッセージまたは他の形態のメッセージを送り、ユーザから返信として応答メッセージを受信することによって、対話することもできる。
【0108】
機械学習モデルを実装するためのデータ処理装置は、例えば、機械学習のトレーニングまたは実稼働の共通の計算集約的部分、すなわち推論、作業負荷を処理するための、専用ハードウェアアクセラレータユニットを含むこともできる。
【0109】
機械学習モデルは、機械学習フレームワーク、例えばTensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実装し、デプロイすることができる。
【0110】
本明細書において説明した本主題の実施形態は、例えばデータサーバとしてのバックエンドコンポーネントを含むか、またはミドルウェアコンポーネント、例えばアプリケーションサーバを含むか、またはフロントエンドコンポーネント、例えば本明細書において説明した本主題の実装形態とそれを通じてユーザが対話することのできるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含む、コンピューティングシステム内に実装することができる。システムのコンポーネント同士は、任意の形態または媒体のデジタルデータ通信、例えば通信ネットワークによって、相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)、および広域ネットワーク(WAN)、例えばインターネットがある。
【0111】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは一般に、互いに遠隔にあり、典型的には通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれに対応するコンピュータ上で実行され、互いにクライアント-サーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、データ、例えばHTMLページをユーザデバイスに、例えばクライアントとしての役割を果たすデバイスと対話しているユーザにデータを表示し、そのユーザからユーザ入力を受け取る目的で、送信する。ユーザデバイスにおいて生成されたデータ、例えばユーザ対話の結果は、デバイスからサーバにおいて受信され得る。
【0112】
本明細書は、実装形態の多くの具体的な詳細を含んでいるが、これらは、任意の発明の範囲に対する、または特許請求され得るものの範囲に対する限定と解釈するのではなく、特定の発明の特定の実施形態に固有であり得る特徴についての説明と解釈すべきである。本明細書において別々の実施形態の文脈の中で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実施することもできる。反対に、単一の実施形態の文脈の中で説明されるさまざまな特徴は、複数の実施形態において別々に、または任意の適切な部分組合せで、実施することもできる。さらに、特徴については上で、ある特定の組合せで作用するものとして説明されていることがあり、最初にそのようなものとして特許請求されていることすらあるが、特許請求された組合せからの1つまたは複数の特徴を、場合によっては、その組合せから削除することができ、特許請求された組合せが、部分組合せまたは部分組合せの変形を対象としていてよい。
【0113】
同様に、動作は、特定の順序で図面中に描かれ、特許請求の範囲において記載されているが、これは、望ましい結果を達成するために、そのような動作が図示の特定の順序で、もしくは順番に実施されること、または示された全ての動作が実施されることを要求するものと理解すべきではない。ある特定の状況下では、マルチタスキングおよび並列処理が有利となることがある。さらに、上で説明した実施形態におけるさまざまなシステムモジュールおよびシステムコンポーネントの分離は、そのような分離を全ての実施形態において要求するものと理解すべきではなく、説明したプログラムコンポーネントとシステムとは一般に、単一のソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化できる、ということを理解されたい。
【0114】
以上、本主題の特定の実施形態について説明してきた。他の実施形態が、添付の特許請求の範囲に記載の範囲に含まれる。例えば、特許請求の範囲において記載されたアクションを、異なる順序で実施し、それでもなお望ましい結果を達成することができる。一例として、添付の図中に描いたプロセスは、望ましい結果を達成するために、図示の特定の順序、または順番を必ずしも要求するとは限らない。場合によっては、マルチタスキングおよび並列処理が有利となることがある。
【符号の説明】
【0115】
100 トレーニングシステム
102 トレーニング済み機械学習モデル
104 機械学習モデル
106 トレーニングデータ
108 最終データ拡張方策
110 クオリティ判断基準
112 トレーニングエンジン
114 方策生成エンジン
116 現在のデータ拡張方策
202 方策ニューラルネットワーク、方策ネットワーク
204 パラメータ更新エンジン
206 方策ネットワーク出力
300 データ拡張方策
302-A 下位方策
302-N 下位方策
304-A 変換操作
304-M 変換操作
306-A 強度
306-M 強度
308-A 確率
308-M 確率
700 プロセス