徹底解説!AIを作るために必要なビッグデータの量とは?!~データセット一覧まとめ

Python大好きなAI研究所のショウと申します。
巷で話題のAI(人工知能)ですが、機械学習や深層学習をする場合に、必ず学習データが必要になってきます。
一般的には「ビッグデータ」と呼ばれるデータとなりますが、どれくらいからがビッグなの? どのくらいの学習データを集めればいいの?という疑問を持っている方も多いでしょう。
今日はそんな学習データについてまとめてみました。

学習に必要なビッグデータってどれくらい?

様々な国内外のネットの記事を漁っていると、 概ねその答えは、
どれぐらいの学習データ量が必要なのかはあなたが解決したい問題の種類による
ということです。

「多くの場合、最善なのは今あるデータでアルゴリズムの取り組みを開始して、必要と思われた時にさらにデータを追加することです。
プロジェクトの成果がある程度見えるようになれば必要なデータ量もいっそう明らかになるでしょう。
それでも具体的な数値を知ってから取り組みを開始したいという方のために、Gengoがインターネット上で探し出したプロジェクトのデータセットの推定規模を以下にいくつか挙げておきます。
これらの具体例は、あなたのプロジェクトで 目指すべき数値のヒントを与えてくれるのではないでしょうか。」

1 顔検出と顔認識 -> 45万サンプル
2 画像アノテーション -> 18万5千件の画像、6万2千件の注釈付き画像、 65万件のラベル付き物体
3 Twitterの感情分析 -> 数万件のツイート
4 Twitterの感情分析調査 -> 全60万データポイントの三コーパスからのセレクション
5 アラビア語フェイスブックページ時の感情分析と分類 -> 6万2千投稿、9千コメント
6 テキスト言語識別 -> 一言語につき3千件の学習サンプルと千件の試験サンプル
7 機械翻訳 -> 400万単語
8 チャットボット学習 -> 20万の質問と対になる200万の回答
9 自然言語処理研究 -> 1万5千学習ポイント、100万以上の機能

引用:gengo ai ダニエル・スミス氏の記事翻訳 機械学習にはどれくらいの学習データが必要か?

上の結論だとあまり納得がいかないと思いますので、とりあえず、1や2に関して、WEB上で用意されている画像用のデータセット(必要なデータをワンセットにしてくれているもの)がどれぐらい画像を提供しているのかを見て、なんとなくこれぐらいあれば学習ができるのではないかとの仮説をたてましょう。

注意
学習データは質も重要であり、不必要であるようなデータの選別や、ある程度の統一性の確保などを、人間の手で振り分けなければ ならない時もあるということを加味して、参考にしてください。

画像系データセットサイトのリスト10

データ1 * Facescrub FaceScrub

Facescrubは海外セレブの画像を集めたデータセット。
大規模顔画像処理の際に頻繁に用いられるデータセットで,カーネギー大学が公開している。
前処理を行ったあとの、530人の海外セレブ、それぞれ一人200枚程度、合計106,863枚の顔画像。

データ2 * THE MNIST DATABASE of handwritten digits(手書きの数字) THE MNIST DATABASE of handwritten digits

手書きの数字を均一化してセンター寄せに直した画像、60,000枚と10,000枚のtestサンプル。

データ3 * The CIFAR-10 dataset THE MNIST DATABASE of handwritten digits

10種類に分類された、32×32ピクセルの、 60,000枚の画像が用意されたデータセット。
(50,000枚のトレーニング用と10,000枚のテスト用) 分類(飛行機、自動車、鳥、猫、鹿、犬、カエル、馬、船、大型トラック)

データ4 * Labeled Faces in the Wild Labeled Faces in the Wild

WEBから収集された、13,000枚の顔の画像。 それぞれの顔には人物画像の名前がラベル付けされている。
1,680人は2枚以上の画像が存在している。

データ5 * Large-scale CelebFaces Attributes (CelebA) Dataset Large-scale CelebFaces Attributes (CelebA) Dataset

20万枚以上のセレブ達の画像を集めたものです。
10,177人分,202,599枚の顔の画像。
それぞれに40の注釈がつけられている。

データ6 * MSRA-CFW: Data Set of Celebrity Faces on the Web MSRA-CFW: Data Set of Celebrity Faces on the Web

WEB上からとってきた20万枚以上のセレブ達の画像を集めたものです。
202,792枚の画像。
少ない10人Verの容量の少ない版のダウンロードもあり。

データ7 * MegaFace Dataset MegaFace Dataset

100万枚!690,572人分、めちゃくちゃ巨大です。

データ8 * Faces in the Wild Faces in the Wild

15,000人分の画像。
86×86ピクセルの画像サイズ

データ9 * MS COCO MS COCO

5,000~120,000枚の画像を集めたものです。
ラベルなしや、トレーニング、テスト画像。 様々な人物、複数人、動物、風景などの画像が枚数ごとにダウンロードできる。

データ10 * Open Images dataset from Google. Open Images

CVDF(Common Visual Data Foundation)から awscli(AWS Command Line Interface) を使い、1,743,042枚の学習データ、41,620枚のvalidationデータ、125,436枚のテストデータを取得できる。
174万。。。 ※他のデータセットに関しては、以前の記事でも紹介しています。

参考記事:AIの機械学習で使われるデータの種類とオープンデータセットのまとめ

データは量だけでなく、質も大事

ざっと見た限り、顔検出と顔認識系は10〜20万枚くらい、それ以外だと1万〜6万枚くらいですね。
ただ上の目安となるデータ量を集めればいいかといったらそういう問題でもなく、上のダニエル・スミスさんの記事の主張通り、トライアンドエラーを繰り返して適切なデータ量に毎回設定し直していく必要があると考えられます。
ここでデータの量と共に大事になってくるのが、データの質です。
正しいデータを集め、与えてあげる必要があり、それは多すぎても、少なすぎても、まったく関連のない情報であってもだめです。
予測するのに邪魔な情報は捨てなければなりません。

データの質を決める特徴量とは?

例えば、特徴量というのがあります。
機械学習における特徴量とは、学習データにどのような特徴があるかを定量化したものです。

簡単に説明します。
あなたが芸能プロダクションのスカウトになった気持ちで考えてください。
大衆が好む芸能人の特徴はなにか、見た目にはどんな「特徴」があるか、性格にはどんな「特徴」があるか、声には、髪型には、etc。。。
予測したいのは、大衆が好む芸能人という人物モデルです。
今まで支持されたきた芸能人は沢山いますが、ある法則があるのではないか、その法則に「強く関係している」人物の特徴を数値化したものが特徴量と考えます。
髪の長さは何センチ、身長は何センチ、声の周波数は何ヘルツ、性格が優しそうなら、誰と誰を比べて標準値を5としたら、4なのか、6なのか。
それだけでなく、その時代の景気が良かったのか、悪かったのか。
良かったなら、日経平均はいくらだったのか。
ただ、髪の長さにはまったく相関性がなかったとか、色々と状況によって時代によって変化する可能性もあります。
そこで、適切な特徴量を学習に反映させるために、特徴選択というものを行っていきます。
これが学習データの質を決める一つの要因で、すべての数値を詰め込めば、適切な予測ができるかといったことではないのです。
アルゴリズムを変え、SVMで解くのか、k近傍法で解くのか、与える特徴量を変えたり、 何も変化がなかったらそこで初めてデータの量を増やしたりしたほうがいいのです。

結局どうすればいいの?

解決したい問題があり、それをどんなアルゴリズムで解くか。
そのために必要になってくるデータの量はどれぐらい集めればいいのか。
どのように情報を取捨選択すれば良いのか。。。

これは迷ってしまいますね。
わたしたちがオススメする、いい方法があります!

  1. どれぐらいのデータ量が必要? まずは、あるものから試してみよう!正解はありません。
  2. データを訓練用とテスト用に分けて学習させて、モデルを作りましょう。
  3. さあ、学習モデルができました。 その結果を見て、どれくらい正解しているか判断しましょう。
  4. もし結果があなたの期待以下なら、新しいデータを集めてテストの値に満足いくまで ②と③を繰り返しましょう。

そして、ここで一番重要なのが、その結果によって最終的な目的が達成できるか?を判断することです。
AIを作る以上、かかっている工数を削減したい、ユーザーに対してのサービスを向上させたい、売上を上げたい、などの目的があるはずです。
これを達成できなければいくら精度のいいAIを作っても意味がないですよね。
どれくらいのデータ量が必要か、というところに対しては、答えはありません。
ただし、データが少なくても、精度は悪いかもしれませんがAIは作れます。
まずはデータを集めないと・・・と言って闇雲にデータを集めて失敗されている会社様をたくさん見てきました。
少ないデータでも、いかに早くスタートできるか、が勝負です。

AIをつくる練習してみよう

まず無料で公開されいるプロジェクトや、上で紹介したようなデータセットを探しましょう。
もちろん解決したい問題がどの分野に属するのかを認識することが重要です。
そして、プログラミングいらずでAIが作れる、Azure MLやNeural Network Consoleなどを使って実際にAIを作ってみましょう!

参考記事: Azure MLに無料登録してみよう
     プログラミング不要!? AI(人工知能)の作り方【Azure ML – 機械学習】
     Azure MLでCNN(畳み込みネットワーク)を使ってディープラーニングさせる方法

独学が不安な方や、AIプロジェクトの進め方や勘所をつかみたい方は、ビジネス向けAI完全攻略セミナーがおすすめですよ!
画像認識のディープラーニングまでわかっちゃいます。
まずは第一歩を踏み出してみてください!

最新情報をチェックしよう!