ABEJAアドベントカレンダー2020の19日目の記事です。
この記事は何?
結局AIって何個データ必要なの?ってよく聞かれると思います。
そんなん知るか この記事では、ある程度精度が出ている既存のタスクにおいて、どんなデータを、どのくらいの量与えているかを調べた結果です。ちなみに、僕自身、すべてのタスクを扱ったことがあるわけでは無いので、ほぼ一部適当な部分もあるかと思いますが、ご容赦ください。あと、このデータが入ってないよ!ってツッコミも歓迎です。
あと、技術は常に進んでいるので、ちゃんと最新技術を追っておけば、より少ないデータで良い結果を出すことが出来ないこともない。が、最新技術とはいえ銀の弾丸ではないのが通常で、例えlightweightGANがでたからと言って、100枚で学習できます!とか勝手に広がると困っちゃう。色んなタスクにおいて、まぁ大体どんなタスクも一般的にはこんなもんよって数値のイメージを持っているのは重要だと思います。
(画像をどこから持ってきたかわからなくなっちゃったので随時、ソースを書いていく予定)
本文がとても長いので先にまとめ
以下に幾つかのドメインに関して、よく使われるであろうベンチマークデータセットと、データ数をリストアップしますが、実用上は、そんな沢山のデータを集めるのは難しいです。ですので、そんな状況でどうするが、機械学習エンジニアの腕の見せどころ。一般的には、より良いモデルを使う、finetuningをするなどが求められます。これ以外に、僕としては、以下のようにして、必要データ量を減らすのが大事かなーとか思っています。
- そもそもビジネスの段階で不要な認識を減らす
- データ収集や前処理を工夫して問題を簡単にする
- ルールベースでのモデリングも一緒に検討して、バリエーションを減らす
では、本文に行ってみましょう!
Computer Vision
まずはComputer Vision。Computer Visionと言っても広いですが、比較的ニーズの大きい画像をターゲットにした基本的なタスクについて調べました。
Image Classification
タスクの概要
画像に写っている対象物のカテゴリを推定するタスク。
ImageNet
1400万枚以上の画像、2万種以上のラベルで示したデータセット。ILSVRCコンペにて、その中の約100万枚、1000ラベルを用いたコンペが行われた。多くの実験ではそのセッティングを用いて実験が行われている。
MNIST
6万枚の訓練データと1万枚のテストデータからなる数字の手書き文字の28x28サイズのグレースケール画像データセット。昔は広く使われていたが、分類タスクのベンチマークとしては簡単すぎるため最近ではあまり使われなくなっている。
Fasion-MNIST
6万枚の訓練データと、1万枚のテストデータからなる衣類の10クラスから成るグレースケール画像データセット。
CIFAR-10/100
それぞれ10クラス、100クラスの32x32サイズのカラー画像データセット。5万枚の訓練データ、1万枚のテストデータからなる。ImageNetと並び、画像の分類タスクでは広く使われているデータセット。
STL-10
スタンフォード大が公開した10クラスのデータセット。学習用データは5000枚、テストデータは8000枚。CIFARデータセットにインスパイアされて作られたらしいが、クラス内ラベルを少なくして、ラベルなしデータを追加するなどの違いがある。ラベルなしデータは、クラス外のデータも含まれる。解像度も96x96と多少大きなものになっている。
SVHN
数字に関するカラー画像データセット。MNISTは数値領域が適切に切り取られているのに対して、SVHNでは、隣の桁も同時に写っているなど現実世界の生の状態に近い状態のデータとなっている。600,000文字を越えるデータが含まれ、訓練用には7万桁、テストには3万桁弱のデータが利用され、追加のデータとして50万桁のデータが含まれる。
Object Detection
タスク概要
画像内において、所定の対象物を囲う矩形を出力するタスク。
Pascal VOC 2007/2012
Pascal VOC 2007では、約5000枚の訓練画像と、同じく約5000枚のテスト画像から構成される。20カテゴリに関する物体の境界バウンディングボックス情報が含まれる。更にdifficultフラグが付与されており、学習時にはdifficultでないものを対象に学習し、テストではdifficultも含めて実施するなどが行われる。Pascal VOC 2012では2007とは別の約1万枚の画像データセット、2007の訓練データを結合して学習に用いられる事が多い。
COCO 2017
12万枚の訓練データセット、4万枚のテストデータセットに対し、境界バウンディングボックスおよびカテゴリーに関する情報がアノテーションされている。カテゴリ数については80種類。Pascal VOCよりもカテゴリ数や画像の複雑さが大きくなり、難しいデータセットとなっている。
KITTI
約7.5千枚ほどの訓練画像、および7.5千枚のテスト画像データセット。車両や歩行者などがタグ付けられている。
Semantic Segmentation
タスク概要
所定のカテゴリに属す対象物の領域を推定
Pascal VOC 2012
約1500枚の訓練画像、約1500枚のバリデーション画像、1500枚のテスト画像、20クラスからなる。さらに、訓練時においては、以下より提供された1万枚のtrain_aug画像を用いるのが一般的となっている。
- B. Hariharan, P. Arbelaez, L. Bourdev, S. Maji and J. Malik, Semantic contours from inverse detectors. In Int'l. Conf. on Computer Vision, 2011.
- リンク
COCO
Object Detectionで紹介したデータセットで、セグメンテーションの情報もラベリングされている。
Cityscapes
都市の街中に関するセグメンテーション用データセット。50の都市において、様々な季節において昼間に撮影されている。5000枚の画像が含まれ、通常は3000枚ほどを学習に利用する。カテゴリ数は30。
ADE20K
各種シーンに関するセグメンテーション用データセット。2万枚ほどの訓練画像、2千枚のバリデーション画像が含まれる。粗い階層(例えば人物)と細かい階層(例えば目・鼻・口)、それぞれに対してアノテーションされており、計150クラスのカテゴリーからなる。
CamVid
車載カメラで撮影された画像に対してのセグメンテーションデータセット。701枚の画像(367枚の訓練データ、101枚のバリデーション、233枚のテスト)から成り、32クラスのカテゴリがアノテーションされている。
- リンク(ドラフトって書いてあるんだけど、これで良いのかな・・・?)
Instance Segmentation
タスク概要
対象物の領域を推定しつつ、個々の対象の見分けも同時に行う
COCO/Cityspace/ADE20K
セマンティックセグメンテーションで紹介済みデータセット。
Pose Estimation
タスク概要
人の姿勢を推定するタスク。各関節にキーポイントを付与する。画面上の2次元的な座標のみを出力するものもあれば、3次元的な座標まで推論するものもある。また、キーポイントだけではなく、体系も含んだ3次元的な形状まで推論するものもある。
MPII Human Pose
約2万5千枚の複数人物の写った画像、その中で約4万人に対して関節点座標がアノテーションされているデータセット。
COCO
検出やセグメンテーションのタスクでお馴染みのデータセット。約6万枚の複数人物の写った画像、その中で約4万人に対して関節点座標がアノテーションされているデータセット。
Action Classification
タスク概要
動画から動作を認識するタスク。なお、ここで紹介するClassificationタスク以外にも、動画内において、いつ所定の動作を行っているかを予測するAction Temporal Localization、さらにどの位置で動作を行っているかを予測するSpatio-Temporal Action Localizationなどのタスクもある。
UCF101
YouTubeから収集された101種類の行動が含まれる動画データセット。1.3万個、計27時間のビデオクリップからなる。多様なアクションを有し、カメラの動き、オブジェクトの外観とポーズ、オブジェクトのスケール、視点、雑然とした背景、照明条件などに大きなバリエーションがある。
HMDB-51
Youtubeなどの公開データベースから収集した動画データ。51種類の行動を映した約7千のクリップが含まれており、各行動は少なくとも101のクリップを含む。
Something-Something V1/V2
人間が日常のオブジェクトに対して行う動作を撮影したビデオクリップのコレクション。V1では8.6万の動画、174ラベルから構成される。V2では17万の動画、174ラベルから構成される。
Anomaly Detection
タスク概要
正常な画像のみから異常を発見するタスク
MVTec AD
計5354枚(3629枚の正常画像、467枚のテスト用正常画像、1258枚のテスト用異常画像)の工業製品や農作物などを含む15カテゴリの異常データ。
Video Classification
タスク概要
動画の属するカテゴリを推定する
YouTube-8M
4800種類のタグが付けされた800万本のYouTube動画のデータセット。タグはKnowledge Graphを用いて自動的に付与されたものを利用。動画の品質を保証するために、再生回数が1000回以上の動画を利用している。
Text Captioning
タスク概要
画像の説明文を生成するタスク
Flickr8K/30K
8千枚/3万枚の画像に対し、クラウドソーシングでそれぞれ5キャプションの文章を付与したデータセット。
COCO
またもや出現、お馴染みのCOCOデータセット。訓練データとして、82,783画像に対して413,915キャプション、バリデーションデータとして、40,504画像に対して202,520キャプション、テストデータとして40,775画像に対して379,249キャプションが付与されている。
Image Retrieval (画像検索)
タスク概要
データベースの中から類似する画像を見つけるタスク
Oxf105k
Flickrからダウンロードされた、オックスフォード関連の建物の画像が5062枚、その他の約10万枚の画像が含まれる。元としてはOxford5kというデータセットと、Flickr100kデータセットを組み合わせて作成したものとなる。似たデータセットとして、Paris6kを利用した、Paris106kというものもある。
Person Re-Identification
タスク概要
画像間で同一人物かどうかを当てるタスク
Market-1501
32,217枚の画像、訓練用に751人のID、テスト用に750人分のIDが含まれた画像セット。
DukeMTMC-reID
16,522枚、702人分の画像で訓練、2,228枚、702人分のIDをクエリとして、17,661枚の中から同じID(クエリに対する702人と408人のクエリ外人物画像)を探索する。
- リンク(公式は既に閉じられているらしい、コード内のgoogle drie参照?)
CUHK03
1360人が含まれる13164枚の画像データセット
Image Generation (画像生成)
タスク概要
その名の通り画像を生成するタスク。ランダムな生成から、特徴を外部から入力して思ったような画像を生成するものなどがある。
MNIST/CIFAR-10/ImageNet
分類タスクで紹介したデータセット。ImageNetについては、そのまま生成に利用するのは難しく、画像サイズを小さくしたり、データを絞って学習させることも多い。
CelebA
CelebaA データセットは有名人の顔画像をカラー178×218ピクセルで202,599枚集めたデータセット。また、画像だけではなく、様々な種類(髪色や表情、メガネ有無等)の属性も付与されている。
LSUN BedRoom
3百万枚ほどのベッドルームの画像データセット。画像生成ではベッドルームを良く見かけるが、データセット自体は別のカテゴリも存在する。
FFHQ
Flickr-Faces-HQ Dataset、70,000枚の1024×1024解像度の顔画像データ
Text Detection
タスク概要
シーン中からテキストの領域を検出する
ICDAR 2015
シーン中のテキスト領域にアノテーションされた、1000枚のトレーニング画像と500枚のテスト画像が含まれる。
Total-Text
シーン中のテキスト領域にアノテーションされた、1255枚の学習データ、300枚のテストデータ。
COCO-Text
やはりCOCOデータセット。約6万4千枚のCOCO2014の画像に対して、約24万のテキスト領域のバウンディングボックスがアノテーションデータとして提供される大規模なデータセット。
NLP
次はNLP、いわゆる自然言語処理です。自然言語は、人間と計算機のインターフェースにもなっており、学習時にも運用時にもデータ化しやすい領域ということで、最近の技術発展もあり、需要はかなり大きくなっていますね。
ただ、もうこの時点で大分纏めるのに疲れているので、そんなに沢山は集められませんでした・・・。なお、去年くらいからのBERTやGPTなどの凄い実験は入ってないですが、数億文とかのあり得ないレベルと思ってくれればと思います。そもそも、データセット公開されてるんだっけ?学習出来るわけないから調べてない・・・。
Machine Translation(機械翻訳)
タスク概要
機械翻訳、異なる言語間で同じ意味になるように文章を変換する。
WMT19
様々な言語感での対訳データを含む。例えば、WMT 2019cs-en変換タスクでは、20,246,548文の学習データと2,983文のバリデーションデータが含まれる。
IWSLT15
サイズに分けた幾つかのデータから成る、英語-ベトナム語間において、13万サンプル、1サンプルにつき20-30words。英語-チェコ語間においては1600万文のデータを持つ。
Question Answering(質問応答システム)
タスク概要
質問文を与えて回答を生成するタスク
SQuAD2.0
Wikipedia の記事の内容に対して、クラウドソーシングによって質問文を作成、100,000の質問文、50,000以上の回答不能な質問を組み合わせたデータ。
NewsQA
ニュース記事の内容からクラウド ソーシングによって質問と正解を作成することで作られた、およそ 12 万件の質問からなる読解データセット。
WikiQA
検索エンジンのクエリログとクリックされたWikiepedia記事から質問文と文のペアを作成し、文の内容が質問の答えとなっているかどうかをクラウドソーシングによってアノテーションしたデータセット。29,258の文書、3,047の質問文、1,473の回答文が含まれる。
Text Summarization
タスク概要
与えられた長い文章を要約する。ざっくりと重要な文章を抽出する方針と、完全に生成する方針がある。
(画像はtowardsdatascienceより)
GigaWord
Gigawordの記事に関する約400万の記事と見出しデータのペアデータ。 300万の学習データ、約20万のバリデーション、約2000のテストデータから構成される。
arXiv
Arxivに載っている学術論文の全文に関するテキストデータセット。20万の学習データ、6千のバリデーション、6千のテストデータ。データの長さとしては、長さ6151(文字数?)が中央値となる。
PubMed
12万の学習データ、6千のバリデーション、6千のテストデータ
BigPatent
120万の学習データ、6.7万のバリデーション、6.7万のテストデータ
Text Classification
タスク概要
- テキストを分類するタスク
AG News
2000以上のニュースソースに4つのラベルを付与したデータセット。
DBpedia
30万のWikipediaの文書に対して、9種類/70種類/219種類、の3段階でラベル付けしたデータ。
Sentiment Analysis
タスク概要
テキストに対して、ネガティブな感情かポジティブな感情かを予想
SST-2/SST-5
1万以上の映画レビューと20万の購入データから構成される。
IMDb
映画のレビューデータセット、学習用に25000、テスト用に25000のそれぞれレビューデータ
Yelp
5百万のユーザによる、60万件のレビューデータ、正/負の感情に関するラベル。星の数に応じてpos/negをタグ付けしている。
その他のフィールド
Speech
音声は最近マイブームになっていて、INTERSPEECHとかICASSPの勉強会にも参加させていただいたり、自分でもモデルを作ってみたりして遊んでます。音声楽しい!
タスク概要
音声からテキストを認識したり、テキストから音声を生成したり、音声変換をしたりなど
LibriSpeech
サンプリングレート16kHzの約1000時間の英語の読み上げのコーパス、1文あたり10秒ほど。
TIMIT
8つの異なるアメリカ英語方言を持つ630人の個人/話者の高品質の録音。
JSUT/JVS
声・歌・音声模倣をつなげるための音声コーパス。日本語テキストと読み上げ音声ペア(10時間分の一人の日本語女性話者の音声)、童謡の歌声データ(27曲分)、音響イベントの音声模倣)の音声データ、100人のプロフェッショナル話者(声優・俳優など)の発話データなど、様々なタスク向けのデータが含まれる。
Recommendation
推薦は機械学習で最もビジネス貢献している分野じゃないでしょうか。精度がそこまで高くなくても価値が出るから良いですね!
タスク概要
- コンテンツへのレーティング等を使ってユーザにお勧めのコンテンツを推薦
MovieLens 25M/20M/10M/1M/100K
映画に関するレーティング・タグデータ。データ量に応じて5種類のバリエーションがある。
一番大きなデータとして、MovieLens 25Mは 16万人のユーザによる2千5万のレーティング、1129種、のべ150万個のタグを、6万の映画に付与したデータがある。
その他として、MovieLens 20Mは 14万人のユーザによる2千万個のレーティング、46万個のタグを、27000の映画に付与したデータ、MovieLens 10Mは10万人のユーザによる1千万個のレーティング、10万個のタグを、10,000の映画に付与したデータ、MovieLens 1M6千人のユーザにより、百万個のレーティング、4,000の映画に付与したデータ、MovieLens 100Kは1000人のユーザにより、10万個のレーティング、1,700の映画に付与したデータとなる。
Netflix
48万のユーザにより、1万8千の映画に対して、5段階のレーティングをしたデータ。
既存ベンチデータにおけるタスクとデータ量の目安
冒頭でも述べたけど、必ずしもこれだけ必要というわけではなく、あくまで研究分野ではこのくらいのデータ量を利用しているという意味ですので!
Vision Task | データ量 |
---|---|
画像認識 | 数千〜数百万 |
物体検出 | 数千〜数万 |
セグメンテーション | 数千〜数万 |
姿勢推定 | 数万 |
動作認識 | 10時間以上 |
異常検知 | 数千 |
キャプショニング | 数千 |
検索 | 数千〜数十万 |
人物同定 | 数千〜数万 |
画像生成 | 数万〜数百万 |
NLP Tasks | 枚数の目安 |
---|---|
機械翻訳 | 数十万〜数千万 |
文章要約 | 数十万〜数百万 |
感情分析 | 数万〜数十万 |
テキスト分類 | 数千〜数万 |
QA | 数万〜数百万 |