【感想・ネタバレ】画像認識のレビュー

\ レビュー投稿でポイントプレゼント / ※購入済みの作品が対象となります
レビューを書く

感情タグBEST3

Posted by ブクログ

ネタバレ

RCNNの勉強で利用。
とてもわかりやすかった。

R-CNN, Fast R-CNN, Faster R-CNNの違い

ポイント
バウンディングボックス提案のインプットと方法とアウトプット先
●R-CNN
インプット:入力画像
方法:一般的方法
アウトプット先:畳み込み層の前

●Fast R-CNN
インプット:入力画像
方法:一般的方法
アウトプット先:畳み込み層の後

●Faster R-CNN
インプット:特徴マップ
方法:RPN
アウトプット先:畳み込み層の後

fasterでendtoend学習が可能になった。

0
2020年01月25日

Posted by ブクログ

ネタバレ

今まで画像認識=ディープラーニングという認識だったが実際は全くそんなことはなく、従来の画像認識の局所特徴抽出や記述子についてや画像検索についてなども学ぶことができた 結局ここら辺はCNNの中で勝手に処理してくれるところにはなるが背景としてわかっていくことは非常に重要だと感じた
また機械学習をよく知らない人にとっても、基本的な機械学習のアルゴリズムは説明されているので親切だと感じた


1章 画像認識の概要
画像認識の歴史、画像認識がなぜ難しいのか、画像認識の種類について主に説明されていた
またDNNではない基礎的な画像認識のクラス分類の手順についても書かれていた


2章 局所特徴
このあたりからしばらくDNNではない話が続き、しかもほとんど数式なので機械学習としての画像認識本と思って購入した自分にはかなり難しい話が続く 大きく分けて検出器と記述子の2つの概念が出てきてこれが難しい
まず検出器の話の前に、局所特徴というものは画像認識にあたって画像の中で重要になる小領域である図形の角や辺をどのように認識し数値化するかという話である ざっくり言うと画像は画素ベクトルで表現されるのでその数値を微分すると境界である物体の辺や角が分かるという寸法である その際にCNNでもおなじみ畳み込みカーネルによる画像の平滑化が必要である 角や辺を見つけるには検出器が必要でこれは微分した値を分析するだけであるが、ここにも線形代数が出てくる ただ見つけるだけでなく画像が回転した時にも対応できるような工夫も必要となる
次に記述子について、局所特徴ででてきたベクトルを分析に有利な形に変換するものが記述子というベクトルである(計算コスト削減とか) その中にSIFT記述子とSURF記述子という2つの有名なものがあり、まずSIFT記述子は局所特徴を強度と傾きで表現するように変換する それにより3つの変数(2つは強度1つは角度)で画像の輝度勾配強度の分布を表現できる なのでSIFT記述子は3次元テンソル(のはず、、本内のベクトルとか次元とかん表現が自分の認識と少し異なるように感じた)次にHOG記述子はSIFTと違って30度と210度の角度は同じになる SURF記述子はSIFTの改良版で計算を高速にした
もちろんCNNで学習させて局所記述子を得ることもできる(CNNの中間層から得られる)


3章 統計的特徴抽出
これは画像に含まれる外乱やノイズをどのようにして統計的に取り除くき画像認識に有利な形へと画像を変換するのかというお話 ほぼ線形代数のお話
まずは教師なし状態を想定したものとして、主成分分析により次元削減や白色化(異なる変数を無相関化してスケールを揃える)
次に教師あり状態を想定したLDAで教師データを基にしていい感じの射影を見つけて次元削減する 他にも複数の画像によくみられる情報を抽出するCCAやPLSなどについて


4章 コーディングとプーリング
名前は聞き慣れた2つだがCNNのそれとは微妙に異なっているので少しややこしい ちなみにかなり数式や概念が難しくここで挫折する人も多そう 先輩曰くライブラリ使ってCNNのモデル作る過程ではそこまで気にしない話らしいので飛ばしてもいいのかも
コーディングはカーネルSVMみたいに一旦画像の次元を高次元にしてその中で有意な特徴を見つける感じ このための射影に使うコーディング関数にいろんなものがあって4章の大半はそれぞれの説明に使われている
プーリングはそうやって膨らませたたくさんのコーディング後の情報を1本のベクトルにまとめあげる作業
コーディングの手法は①データが確率分布を推定してコーディング関数を設計するもの コードワードを作るBoVWやフィッシャーベクトルもここで使う ②コードワードを利用した局所特徴の再構築によるコーディング関数の設計 ③非線形関数を訓練データから生成 ④カーネル関数を特徴写像の線形内積に近似する手法
プーリングする際に画像内の空間情報が失われることを留意して空間情報をプーリング後ベクトルに埋め込むkとが行われている


5章 分類
これは画像分類の際の分類手法のお話で、機械学習目的でこの本にたどり着いた人にとってはおそらく簡単な部類に入る章
まずベイズ決定則について、決定則により得られる損失を最小にすることを目指して設計すべきという説明から入り最適化する際の学習係数や目的関数、勾配降下法についてのおなじみの話に入った
次に識別に用いる関数として線形回帰やSVM、局所領域ごとに学習システムを適用させる局所学習、全部まとめて非線形に処理する集団学習(バギング、ブースティング、決定木)など
最後に分類結果をどう評価するというやはりおなじみの話についても


6章 CNN
今回の肝であり、本書を購入した一番の目的でもあるCNNについての章
まずはパーセプトロンの話で非線形をどう評価するかの話、それぞれの層に役割があるという話、順伝播・逆伝播について
CNNについてはそれぞれのカーネルが4章のコーディング関数に相当するという話から始まり各チャネル(特徴マップ)は高さ・幅・チャンネルの3次元構造を持っているとか、ストライド・ゼロパディング・プーリング層について CNNは中間層にて畳み込みとプーリングが何回も何回も繰り返し行われていると理解した
次に実装する上での活性化関数やドロップアウト、重み減衰の話や、確率的勾配降下法以外のパラメータ調整の方法(たとえばAdamによるパラメータ更新)など


7章 物体検出
これもCNNと同じく自分が前から気になっていた部分
物体検出ではバウンディングボックスが登場 画像内でスライドさせて1つ1つクラス認識していくのは計算量がやばすぎるので物体らしさを基にして画像を絞ったり、いきなり認識せずにハードルをいくつか用意していく手法などがある バウンディングボックス自体のパラメータは計4つなのでこの4つの最適化と考えることも可能
次にバウンディングボックスを1つに絞る方法としてのNMS これは実装上とても大事だがアルゴリズムはとてもシンプルだった
CNNの活用としてはR-CNNが主流でクラス認識とバウンディングボックスの各パラメータの回帰を同時に行なっていく この2つをまとめた回帰問題として解くのがYOLO
物体検出の評価は簡単で予想したボックスと正のボックスと2つの長方形があるが、この積面積を和面積
で割るだけである また画像全体でみたときの評価法としてmAPがある(PR曲線の下の面積を利用)


8章 インスタンス認識
これは画像検索とかの話でCNNからは少し外れる
局所特徴→BoVWのベクトル化を利用して検索しやすい形にする 検索サーバの中には大量の画像が入っててBoVWによるIDと紐づけられている ベクトル同士の内積を利用して検索結果をランキングしている 画像の局所特徴の数は膨大なのでK-meansを使って効率的に局所特徴→コードワード変換を行う
検索する時は総当りだと大変なのでハッシュ化を使う
画像検索の適合率も7章と同じくmAPを使うっぽい


9章 その他
最後にセグメンテーションとかその他についての説明
まずセグメンテーションについて、セグメンテーションを行うにはCNNで一回エンコードしたあとにデコードする作業が加わる(エンコーダ・デコーダネットワーク)普通の畳み込みでなく転置畳み込みを使う
次にキャプション作成 これは画像に関連するキャプションをつけるというものでNLPやRNNが関わってくる NIC(Neural Image Caption)が肝となっており機械翻訳の基盤らしい 要するに画像を言語に翻訳するモデルで、RNNとしてたくさんのLSTM層を使う LSTMの各パラメータはSGDの最適化手法で求められる
次に画像生成 これはGANってやつで生成器と識別器を戦わせる つまり訓練画像を基にして、識別器を騙せるような画像を新しく生成器が作成する ここで重要なのはそれぞれが評価関数を最小化する際に操れるパラメータが2つのうち1つずつしかないことで、結果的にナッシュ均衡が生まれる GANにCNNを適用したものをDCGANという

0
2019年12月18日

Posted by ブクログ

ディープラーニングが流行ったタイミングで購入した本の1つ。
画像認識に特化した本。カラーで非常に分かりやすく、好印象。

結局、この本を参考に実装したりは私はしなかったので、勿体なかったかもしれない。

0
2022年09月08日

「IT・コンピュータ」ランキング