深層学習の判別精度を向上させるコツとActive Learningいまさら聞けないDeep Learning超入門(終)(2/2 ページ)

» 2015年12月16日 05時00分 公開
[石川信行リクルートテクノロジーズ]
前のページへ 1|2       

判別精度向上のシンプルな落とし穴

 ところで、このチューニング履歴を見て皆さんは思ったのではないでしょうか?「精度の上り幅が少ないなあ」あるいは、「あれ? 飽和してないか?」と。私たちもハイパーパラメーターのチューニングをし続けている途中で、同様の不安に襲われました。

 このハイパーパラメーターのチューニング作業は「データサイエンティストの花形」の意味合いを持ち、センスが発揮されるところです。しかしながら、そのチューニングに入る前に実はもう一つ、単純ですが重要な考慮点があります。

訓練データは本当に「正解」?

 それは、「モデルの作成に使う訓練データに本当に正しいラベルが付いているか」という点です。

 例えば、人間の赤ちゃんに、「カブトムシ」という生き物を覚えさせるために100枚の画像を用意し、「これがカブトムシだよ!」と教えることにします。その際に用意した100枚の画像の中に実はカブトムシの画像、クワガタムシの画像、テントウムシの画像が混在して入っていれば、赤ちゃんは間違ってクワガタムシ、テントウムシの特徴をカブトムシとしてひも付けてしまい、結果として「クワガタムシの画像を見せられた際にカブトムシと判断してしまう」といった現象が起きることが予想されます。

 実は、初期のネイルデザイン判別においても同じ事象が起こっていました。

 例えば下記はマーブル(左)、タイダイ(右)というデザインなのですが、見た通り、人が目で見ても間違うレベルのデザインであり、案の定、マーブルとしてラベル付された画像の中にタイダイの画像が大きな割合で入っていたり、さらにその逆も起こっていたりしました。そのため、この2つがくい合い、それぞれ判別精度が著しく低かったのです。ここでこのまま、精度を上げるためにパラメーターチューニングを始めてしまっては、精度が思うように上がらないというのは当たり前のことだと分かります。

 よって地味な作業ではありますが、ラベルに100%合致した画像を訓練データとして与えるために、訓練データの中身をきちんと精査することが重要となるわけです。Deep Learningにおいても先進的なイメージとは裏腹に、このような地味で泥臭い作業が大事であることは驚きでした。

ラベルの細分化

 また、ラベルの細分化というのも重要な手段でした。例えば、「アニマル」というデザインラベルがありますが、その中には、ヒョウ柄もあれば、ゼブラ柄も存在します。そのためより正確に判別するために、「アニマル」というラベルではなく、「ゼブラ柄」「ヒョウ柄」などとラベルを細分化すると精度が向上したことを確認できています。

泥臭い作業で精度改善した結果

 これにより、最終的にネイルの画像判別では80%程度まで精度改善しました。また、第3回で紹介したキュレーションメディア「ギャザリー」(リクルートライフスタイル運営)においては95%前後まで精度が改善しました。

学習を自動化する――Active Learning

 モデルを一度作った後は、基本的には未知画像の予測作業を機械で行っていくことになります。しかしこれだけではモデル自身は一切更新されませんので、判別精度は上がらないばかりか、未知画像のバリエーションが増えていくにつれて判別精度が下がっていくことも考えられます。そのため、筆者たちはモデルの継続的精度改善、運用にも力を入れています。その一つが「Active Learning」という手法です。

 基本的には、モデルに対して訓練データを追加して再学習を行っていけば精度は上がっていくものですが、毎日何百枚、何千枚とインプットされる画像に対して全て人手でラベルを付けて学習させるというのは非常に負荷が掛かる作業となります。この負荷を軽減させるために、「これを加えたら精度改善に貢献できそうだ」という必要最低限の画像をレコメンドしてくれる機能を実装・運用しており、これを「Active Learning」と呼んでいます。

 このActive Learning手順は以下のようになります。

  • ある未知画像をConvolutional Neural Netで判別
  • 各ラベルへの推定確率が例えば(ラベル1:0.3、ラベル2:0.3、ラベル3:0.2……)という結果が得られた
  • 最も高いスコアと2番目に高いスコアを抽出
  • 上記スコアの差を算出
  • スコアの差が閾値以内(例えばギャザリーの事例の場合は0.1)の場合は現在のモデルが単独の特定ラベルとして認識できなかった(ラベル付けを迷った)と判断
  • これらを「モデルに加えた方が良い画像」として決定し、GUIでの判別対象とする

 その後、下記のようなGUIの画面から人手でラベル付けの見直しを行いコミット(モデル作成のボタンを押下)すると自動的にモデルが再構築されます。これにより、人の意思を必要最低限の労力で加えた形で、効率的に精度改善ができるようになります。

Active Learningの運用GUI

誰でも単純作業を機械化できるようになる世界へ

 Deep Learningは、リクルートグループにおけるデータ利活用のキーテクノロジとなり得るものです。

 Deep Learningといえば、時に「黒魔術」「銀の弾丸」などと呼ばれ、「これ一つで何でもできる」「あたかも人間のように何かを認識・判断できる」と思われがちです。しかしながら現在のところ何事にも「100%」という精度はなく、「まだまだ人間の介在、すなわちきちんとした知識を持って運用を行う必要がある」ことが、この施策実装で分かってきました。

 一方で、これまで紹介してきた事例のように、Deep Learningはその表現力の高さからさまざまな施策に応用が期待されています。現在リクルートグループにおいても「施策・機能開発に関してのコアテクノロジ、すなわちこのDeep Learning使って何かできないか?」という観点で要件検討がなされるシーンも多くなりました。

 特に、一種の人の代替作業という意味合いを持つ施策実装・検討が多くなっており、「単純作業で機械化できるところは機械で」「肝心なところ、クリエイティブな箇所は人で」という線引きがより明確になりました。さらに、この「機械でできる範囲が広がってきた」事実に、このDeep Learningという技術の多大な影響力を感じ取れます。

 昨今、グーグルによって、「TensorFlow」というDeep Learningを実装可能な機械学習ライブラリが公開されました。これにより、Deep Learningを実装するハードルが一層下がることで、今後誰でも簡単にDeep Learningに触れることができる世界が広がりつつあります。

 筆者たちはオープンソースライブラリやクラウドなどの環境を積極的に利用することで施策展開と運用の簡略化などの検証を行い、それら広く公開していくことでDeep Learningのさらなる発展に寄与していきたいと考えています。

筆者紹介

石川 信行(いしかわ のぶゆき)

リクルートテクノロジーズ ITソリューション統括部 ビッグデータ部 シニアアーキテクト兼アドバンスドテクノロジーラボ

2009年リクルートに新卒入社し、現リクルートテクノロジーズの前身となる組織に配属。Javaを用いたシステム開発に参加し、その後Hadoopの導入検証に従事。主要事業にHadoopを導入したのちビッグデータ専門部隊に合流し、13年10月より現職。

現在は、事業対応リーダー、画像解析など技術開発に従事。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。