【E資格】5週目〜CNN、RNN〜【AI】
こんにちは
サラリーマンのゆゆです。
AidemyでE資格の勉強を始めて1ヶ月が経ちました。
AIみたいに繰り返しで学習するスタイルをとっているために、学習一回の理解度よりも先に進める方を優先にしており、勉強時間に対し早い進捗になってきました。
進捗が早いのは、添削課題をすっ飛ばしているのもあります。Aidemyではコースごとに添削課題があって、それを解かないと修了証明書をもらえないのですが、それを解かずに先に進めています。
自分としては全コースの学習が終わってから復習がてらやろうと思ってたのですが、Aidemyから課題提出されてませんと連絡があったのと、一ヶ月も経てばかなり忘れている可能性が高いので、次週は添削課題を解く週にしたいと思います。
※以下タイトル横の難易度はAidemyの表記です
理論から学ぶCNN(難易度★★★☆)
先週に引き続きとなります。
このコースではCNNの実例がいくつか紹介されておりました。大きく分けると、「画像認識モデル」と「物体検出」です。
<画像認識モデル>
ILSVRCと呼ばれる2010年から始まった大規模画像認識の大会があるのですが、その大会で優勝や有名になった下記4つのモデルの紹介がありました。
「AlexNet」(2012年, 8層)
「VGGNet」(2014年,19層)
「GoogLeNet」(2014年, 22層)
「ResNet」 (Residual Network ,2015年, 152層)
1つ目の「AlexNet」ですら、
こんな感じでよくわからなかったため、AIcia Solid Projectさんの動画(下記動画)を見て追加勉強させて頂きました。
どのモデルも天才達が工夫に工夫を凝らして出来上がった感があります。ディープラーニングというのは基礎的なニューラルネットワークの理解や小手先のテクニックだけではダメなんでしょうねぇ。もちろん何を作るかによると思いますが。
AIcia Solid Projectさんの動画はこれらの他にも色々勉強させてもらっていて、CNNの畳み込み層の意味など理解の助けになりました。AI関連動画だけでも全部見たいのですがなかなか時間が取れず・・・
ちなみに「ILSVRC」は残念ながら2017年を最後に終わってしまったようです。
<物体検出>
物体検出は私のレベル(物体検出初学者)に対してなかなかいい参考となる動画や記事がなく概要を把握するもの苦労しました。
コースでは下記5つの学習モデルを勉強するのですが、歴史的な話で概要を抑えるといいのかなと思います。こういう感じでモデルを作ったけど、この部分のアルゴリズムはニューラルネットワークとは違う従来の機械学習手法を使っているから何か微妙→ニューラルネットワーク化、でもまだここが微妙→ニューラルネット化・・・みたいな感じです。あとは何回も見ずに一回で理解できるようにして高速化とかですかね。
「R-CNN」(2014)
「SPPnet」(2014)
「Fast R-CNN」(2015)
「YOLO(You Only Look Once)」(2016)
「SSD(Single Shot MultiBox Detecter)」(2016)
参考スライドです↓。R-CNNなどの流れがわかります。
当たり前かもしれませんが、物体検出は画像からモノを検知して、それが何かを当てる方法となります。なのでざっくり言えばどのモデルでも、
1.どれが物体かを検出する
2.CNNで特徴量を求める
3.分類する
となり、それをどうやってやるかの違いです。すみませんが、詳しい話は先程のスライドをご参考にしてください。
ちなみに、2年くらい前にYOLO3(だったかな?)で転移学習を使って、自前の画像を認識できるようにしたことがあります。画像は水増しはしたものの、十数枚という少ない画像しか使っていなかったのですが、そこそこいい精度が出ていた記憶があります。(YOLOって何かは全く理解してませんでしたが(笑))
ただ物体検出に限らずですが、答えとなるラベルを付けるのが大変で、そこを何とか簡単にできないと実用化のハードルは下げられないのかなと思いました。
理論から学ぶRNN(難易度★★★☆)
RNNとはリカレントニューラルネットワークの略で、一般的に時系列データに用いるニューラルネットワークです。通常のディープニューラルネットワークでは、りんごのデータに次にみかんのデータが来ようが関係ないのですが、RNNは過去のデータの記憶を持たせることができるので、りんご→みかんの順に意味を持たせることができます。(例が悪い・・・)
そして、次のステップにどうなるかを返答します。
よく使われるのは翻訳の分野になるのですが、過去の時系列データを理解して次のステップ(未来)をアウトプットするのであれば株予測などに使いたいですよね(笑)。
ゲートなど細かい説明はしてないので、詳しい内容は下記の動画参考にしてください。(今週の参考動画はAIcia Solid Projectさんばっかですね)
5週目の感想
今週はCNNにしてもRNNにしても手を動かす実装というよりかは、応用例のモデルの説明が多ったので単純に記憶しないといけないことが多かったです。記憶もしっかりできた訳でもなく、急に「GoogLeNet」って何?って言われてもなんだっけ?となってしまいますので、復習するときにはしっかり覚えていきたいと思います。
この記事が気に入ったらサポートをしてみませんか?