タグ付け(アノテーション)

AIを導入・運用・実装するときの3段階のうち、PaaS(Software as a Service)を導入する場合について、一般に9つのサブプロセス(❶データの取得→❷データの蓄積→❸データの確認→❹教師データの作成→❺モデルの設計→❻学習→❼デプロイ→❽推論→❾再学習)のうち、❹教師データの作成があります。データを取得し、溜めたデータは、ただ集めただけのことが多く、「この画像は犬だ」といったことすらわかりません。学習のフェーズでは「この画像は犬」「この画像は猫」「これはイルカ」と、人力でタグ付け(アノテーション)をした教師データを用意して、モデルを構築するための準備をしなければなりません。以前は本当に手入力だったのですが、最近のAI企業の中には、比較的簡単にアノテーションするためのツールを用意する企業もあります。とはいえ、それでも大変な労力がかかりますので、ここはアルバイ卜を頼むなどの予算を見ておいたほうがよいでしょう。次に❺モデルの設計があります。画像データを扱う場合はCNN(Convolutional Neural Network 畳み込みニューラルネットワーク)がよく使われ、テキス卜データや音声データ、時系列データのような系列データを扱う場合にはRNN(Recurrent Neural Network :再帰型ニューラルネッ トワーク)がよく使われます。また、CSVなどに格納された表形式のデータを扱う場合は「全結合なニューラルネッ卜ワーク」がしばしば使われます。じつは、一口にCNNといってもその実現方法はさまざまです。よく知られたネッ卜ワーク構成としては、VGG、Inception、ResNet、DenseNetなどがあり、それぞれニューラルネットワークの深さに応じて種類が異なります(VGG11,VGG13, VGG16, VGG19, ResNet18, ResNet34, ResNet50,ResNet101,R esNet152など)。さらに、ネットワークごとに計算量(メモリ使用量、実行速度)や精度が異なるため、要件に合わせて適切なネットワークを選ぶ必要があります。計算量を優先させたいときにはSqueezeNetやMobileNetなどの計算効率に優れたネットワークも選択可能です。このように、実運用まで見据えると、それぞれのネットワークの特性に対する知識と、運用時の要件との聞のトレードオフを考える必要があります。もちろん自分でネットワークを設計することもできますが、ディープラーニングに関する深い理解を要する場合もあるので、まずは既存のネットワークを使うことをおすすめします。また、学習する際には、ロス関数という学習の目標となる指標も決める必要があります。たいていの場合、Cross Entropy LossやMean Squared Errorなど、用途ごとによく使われるものを選んで、おけば大丈夫なことが多いですが、これをうまく工夫することでより効率的に学習できることもあるので、隠れた腕の見せどころです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です