今回紹介するのは、機械学習を使用したAIプロジェクトに欠かすことの出来ない「アノテーション」についてです。
必要十分なデータ数を用意しアノテーションをすることで、精度が見込めるAI(予測モデル)が出来上がります。
今回は、そのアノテーションについて、どのような作業なのかや実際にどういう風にアノテーションをするのかを解説していきます。
アノテーションとは
アノテーションとは、AIを機械学習させる際のデータに記載する「説明を入れること」を指します。
上記画像のように、食べ物が現れたら「それは食べ物である」や、人間が現れたら「これは人間である」とAIに教えてあげるための説明です。
その「説明」のことは「ラベル」と言ったり「注釈」と言ったりしますので、専門用語として覚えておくと良いでしょう。この説明を挿入することを総じて「アノテーション」と呼びます。
特に機械学習の使用を検討しているビジネスの場面においては、そのビジネスの成功の鍵を握っているといっていいほど、アノテーションが重要なポイントになってきます。
データをどの程度まで精査できていたのか、そもそもそのデータはプロジェクトに使えるものなのかどうかなど、データの特徴や意味を分析しデータの全体像を把握することで、何の変哲もないデータが価値のあるデータへと変貌していきます。
何の変哲もないデータを価値のあるデータへ導くのがこの「アノテーション」なのです。
アノテーションをする理由
AI作成や機械学習では先程の膨大なデータをただ単に使えばいいのかというと、そういうわけではありません。
上記にも記したように「教師データ」を使用して学習させていくことで、何かを予測できるなどといったモデルというものが完成するわけですが、機械学習を使用したビジネスシーンやプロジェクトにおいては、特に「綺麗に整えられたデータ」というものが必要不可欠になってきます。
ここで言う「綺麗なデータ」とは、データに対するアノテーションが見違っていないこと、アノテーションが1つも欠損していないことなどが挙げられます。
このきちんと整えられたデータがAIの精度に大きく関係してくるのです。
このようにアノテーションと言われる工程は機械学習において非常に重要なプロセスであり、AIプロジェクトに大きな影響を与える要因となります。
使うデータがしっかりアノテーションされているかどうかはきちんと確認する必要があるでしょう。
アノテーションには6種類ある?
AIプロジェクトにおいて、画像や動画・音声・テキストなどさまざまなデータをアノテーションしていくため、アノテーションの種類もそれに応じてさまざまです。
画像及び動画のアノテーション・音声のアノテーション・テキストのアノテーション・矩形付与のアノテーションなどデータの形態に対するアノテーションの種類が存在します。
これらのアノテーションの種類について、画像とともに詳しく見ていきましょう。
画像分類(クラシフィケーション)のアノテーション
画像分類のアノテーションでは、それぞれの画像が何の画像であるのかをカテゴリー別に分類していきます。
ここでポイントになるのは、「画像と注釈を1つずつ付与する」という点です。上記図のように、1枚の馬の画像に対して、『これは馬です』という1つの注釈を付与していきます。
このように、単純に画像を見てどのカテゴリーに当てはまるのかを判別するのが画像分類のアノテーションです。
物体検出(オブジェクトディテクション)のアノテーション
物体検出のアノテーションとは、画像の対象を「バウンディングボックス」と呼ばれる矩形領域で囲み、カテゴリー毎に注釈を付与していくアノテーションです。
画像分類では、画像が何なのかを示すだけでしたが、物体検出では画像の「どこに何があるか」までを付与していきます。
また、画像内に複数の対象があった場合にも対応しており、それぞれのカテゴリーを判別することが可能です。
物体検出のアノテーションについてはこちらの記事で詳しく解説しています。
領域検出(セマンティックセグメンテーション)のアノテーション
セマンティックセグメンテーションは、画像の1ピクセルずつカテゴリー別に分類してくれる機械学習です。
カテゴリー毎の領域に色塗りしていくイメージで、上の図のように人間や馬・芝生などを1ピクセルごとにカテゴリー分けをしていきます。
1ピクセルごとに判別していくため、高精度になる反面アノテーションにかかる工数が増えていきます。
キーポイントのアノテーション
キーポイントは画像の対象を線として捉え、カテゴリー毎に「キーポイント」と呼ばれる線分を用いてアノテーションをしていきます。
画像分類やセグメンテーションでは、画像を面で捉えた判別を行っていました。
線で対象を捉えることにより、表情の認識やポーズのような姿勢制御など細かな特徴を判別することが出来るアノテーションです。
音声データのアノテーション
こちらは音声データを文章として書き起こし、それぞれの単語について意味を付与していくアノテーションです。
主に音声認識の分野で利用され、たとえばコールセンターでのやりとりや議事録などさまざまなシーンで活用されています。
文章(テキスト)へのアノテーション
アノテーションは大量の文章に行うこともできます。AIや機械学習の目的に応じて「これが重要な文章である」と紐づけたり、「この文章は不要である」と差別を付与します。
これを利用すると「この文章は目的にあっている文章なのか」をAIが判別することも可能です。
逆に、「ここの文章は不要である」と必要がない文章を抜き出すことも可能になります。
アノテーションをするメリットとデメリット
データにアノテーションをわざわざ行わなくても、そのまま使用できると考える人はまだまだ多いです。
それでは、AIやロボットに使うデータにアノテーション作業を行うのはどのようなメリットがあるのでしょうか。
アノテーションのメリット
アノテーションを行うと、画像認識・動画認識・音声認識の精度が段違いで変わります。
事前にAIが「これは人間だ」と認識しておくことにより、応用が効いた認識を始めから行うことが可能です。
また、アノテーションの数が多ければ多いほどAIの精度も変わるので、できるだけたくさんの情報をアノテーションで付与できると良いでしょう。
アノテーションのデメリット
一方アノテーションを行う場合のデメリットは、「アノテーションの作業は手作業で行わなくてはいけないこと」です。
データにアノテーションをするのはAIや機械のためなので、人間の認識機能をそのまま教えなくてはなりません。人間の目視判断と同じ機能をAIに搭載するために、まずは人間が確認してラベルをつける必要があります。
また、画像や動画を見てラベルをつけることはどんな作業者でも簡単にできると思って適当な人に依頼してしまうと、思った効果が得られない場合があります。
必ずアノテーションの知識がある人間に依頼した方が良いという難易度の高さもアノテーションのデメリットとなるでしょう。
アノテーション作業のやり方
それでは具体的にアノテーションをするにはどうしたら良いのでしょうか。
アノテーション作業をする方法は下記の2通りあります。
1.自分でアノテーションを行う
まずは自分でアノテーションを行う場合です。
人件費を削減している場合以外は自身で行うケースは少ないですが、一度自身でやり方を試してみたいという人は挑戦してみてください。
AI作成や機械学習にツールを使用している場合は「注釈」や「ラベル」といったヘッダーを探して、そこにアノテーションを行ってください。
もし自分が使っているAIツールにアノテーションの機能がない場合は、アノテーションを付与できるツールやアノテーションライブラリを探す必要があります。
元々csvで表を作っている場合はそこに「注釈」や「ラベル」の欄を追加して入力していきましょう。
その際はAI化した際に、「注釈」や「ラベル」の欄がアノテーションであることを紐づける必要があります。
アノテーションを自分でやってみたいという人は、こちらの記事でも詳しくやり方を解説しています。
2.アノテーション代行サービスを利用する
アノテーションは基本的に代行サービスを利用するのもおすすめです。
外注したいと思っている方は利用してみてください。
もしPythonの知識があれば、ライブラリを導入した上でアノテーションを行うことができます。Python初心者であればPython基礎セミナーでスキルを学ぶといいでしょう。
おすすめなアノテーション代行サービスの紹介
アノテーションは自力でも行うこともできますが、アノテーションサービスを提供している企業を活用するケースが多いです。
最近注目を浴びているアノテーション代行サービスを紹介します。
Appen(アッペン)のアノテーション代行サービス
Appenのアノテーション代行サービスの特徴は、世界トップレベルのデータ品質で、短納期且つ比較的安価だということです。
さらに、様々なデータのアノテーションに対応していて、音声データでは170カ国、235以上の言語や方言への対応実績があり、音声データの収録、文字起こしなどを行ってくれます。
また、画像・動画についても人物や建物、故障や異常検知のための対象物の収録、各種パラメーターのアノテーションやラベルの付加も可能です。
Appenについては下記記事でも詳しく解説しているので、どのようなサービスかもっと詳しく知りたい場合は参考にしてください。
アノテーションについてよくある質問
それではアノテーションについてよくある質問に回答してみました。
動画やタイトルだけでは説明しきれない部分を補足して、動画をさらに分かりやすくすることをYoutubeアノテーションと言います。
補足情報をつけることで、それを見るユーザーやデータを分析するAIに分かりやすくデータを教え込むことができます。
アノテーションについてまとめ
今回はアノテーションについて解説しましたが、いかがでしたでしょうか。
AIプロジェクトにおいてアノテーションは非常に重要な工程となります。
データとその答えが常に静的な「教師データ」を綺麗に整えることで、価値のあるデータへと変貌し機械学習をスムーズに進行することが出来ます。
アノテーションの需要が高まっている現在では、この工程を円滑に進めるために先ほどご紹介した代行サービスなどもあるので、ぜひ活用してみてはいかがでしょうか。
この機会に自社のデータが綺麗にアノテーションされているのか確認してみるのも良いでしょう。
もし自分でアノテーションしたい場合は、必要な機能が揃っているPythonで行うのがおすすめです。
ProSkilllのPython基礎セミナーなら2日間でPythonをマスターできます。