2018年11月18日日曜日

画像認識の追加とアノテーションの検証が難しい…

流石にコンテストに出る為の準備期間が短く当初の予定をこなすのに手一杯です。

簡単にモデルを追加するのは難しい。

なぜか?

CNN(畳み込みニューラルネットワーク)の仕組みにあります。
動画から画像を分割して学習データを作ってモデルを作るのはそう簡単ではありません。
なぜか、コンピュータがそう都合よく学習してくれない…
モデルを作る為に画像データは最低でも5000枚は必要でAさんの写真を色々な角度や背景や条件で撮ってその画像のAさんを四角で囲ってテキストデータにその座標と”Aさん”と2つ1組のデータセットを作ってフレームワークで学習させます。
その計算根拠は
そのイメージは度々お見せしている下記神経ネットワークを模したものです。

入力層(l-1層)から隠れ層(l層)を経て出力層(l+1層)を行ったり来たりしながら
機械学習します。

もう少し具体的にはそれぞれのピクセル単位で行列演算をします。YOLOの場合32の倍数で416x416でこれに画像の濃淡で仮に8ビットで256階調で1枚あたり44,302,336回(=416x416x256)の行列演算x5000枚(2.21512e11回)22京回?をGPUで処理してモデルを作ります。その後学習が正しいか検証します。
学習中にパラメーターで大体の数値が良いかは出ますが、モデルを使って実際にテストして推論の確率を出さないと分からないのが現状です。
行列演算

じゃあ機械は何をみてるのかというとその特徴量を計算しています。
人間に分かりやすく可視化すると、
その可視化されたフィルタリングはというと
分かる人が見ないと分からない…

これで機械が正しく推論を行なっているかの検証は今の私には無理です。
私場合は学習データを撮り直してやり直しし続けて認識率を上げるしか出来ないです。
それで率が上がるかも定かではありません。コンテストの期日に間に合うかも分からない状況です。
この学習データを作る事をアノテーションと言います。
これを専門にする業者があるくらいです。
データサイエンティストと呼ばれる研究者は出てきた計算結果や上記の表を検証する方法を知っているでしょうしそれにあわせて修正するでしょうが、今の私のレベルでは難しいです。因みにこれを理解して作業を出来る人は現在世界中で争奪戦です。年収1000万以上で引く手あまただそうです。それくらい出来る人が不足しています。

作業自体は時間があればやってみようとは思います。数日では到底無理でかなりの時間掛かりっきりになります。

今回は画像認識の機械学習ですが、それ以外の機械学習も同じ様な事をしています。
論文(和訳)自体見ていますが理解出来ていません。
このリンクは元の論文の和訳をされています。
もとの論文です。これは画像認識の可視化についてだけです。CNNの仕組みはまた別です。

なんとかしようと思いましたが、この週末煮詰まって何もする気になりませんでした。
これだけ短期間にこれだけのものを理解し実践するのは難しいです。
これをみてそれを理解して頂けるとありがたいです。

0 件のコメント:

コメントを投稿