📒

CNN、RNNについて(超基礎)

2023/05/24に公開

CNN、RNNについて学習する

こんにちは!わいわわです。
ニューラルネットワークを学習しておりますが
今回はその中のディープラーニングの1つであるCNNとRNNについて、まとめていきます。

CNN(畳み込みニューラルネットワーク)とは

畳み込みニューラルネットワークといい、画像認識の分野で利用されるニューラルネットワーク
現在では画像認識以外にも…
セグメンテーション、物体検出、姿勢推定、自然言語処理、ゲームAIなど
様々なタスクの基礎として用いられている
2012年のAlexNetの開発により、精度がよくなり爆発的人気となった

  • 活用事例
    車の自動運転
    曲がっているきゅうりの自動選別
    類似したネイルの検索
    SNSの写真の顔認識...などなど
    それらにはCNNの物体検出やセグメンテーション、画像生成が役立っている!

物体検出とは…物体のクラス(人や動物など)と領域を検出する
セグメンテーションとは…画像のぷくセル単位で、どのクラスに属するかを推定する
画像生成とは…与えられたがデータに類似した画像を生成できる

CNN(畳み込みニューラルネットワーク)の仕組み

ここからは仕組みを勉強していきます!
画像の情報量は膨大のため、CNNでは「畳み込み層」と「プーリング層」という
2つの中間層で画像の特徴を抽出し、学習を行う
入力層…画像を入力
中間層…畳み込み層とプーリング層を繰り返す
出力層…データの整理・分類、結果を出力する

入力層では

画像データを入力する際、画像を「高さ×幅」の行列に変換する
また、色を数値をとって変換する

畳み込み層では

畳み込み層…画像の膨大な情報量をフィルタを使用することで重要な特徴だけを抽出する
畳み込み層では最終的に「特徴マップ」と呼ばれるものをフィルタを用いて生成する

特徴マップ…畳み込み層の出力結果のことで、画像データから抽出した特徴の塊
フィルタ…画像の特徴を検出するためのもので、複数枚あり、それぞれ検出パターンを持っている

  • フィルタの深度…フィルタの数、大体は2の累乗の値がとられる
  • フィルタのサイズ…使用するフィルタの大きさ(高さ×幅)
  • フィルタのストライド…フィルタを移動させる幅
  • フィルタのパディング…入力画像の余白をある値で埋める

プーリング層では

プーリング層…重要な情報を残しながら、入力画像データを圧縮する層
イメージとして、畳み込み層で特徴を検出し、プーリング層で圧縮する感じ!
代表的な手法にMaxプーリング、Averageプーリングがある

RNNとは

####RNN
Recurrent Neural Networkの略で、
時系列データ自然言語処理などの分析に用いられる
時系列データ…典型的なものとしては、年度ごとのA社の売上高、1時間ごとの東京都の降水量など

通常のNNと比較して
...再帰的構造を持っていることが特徴
連続データを、人間が文章を理解するように処理を行っていく
Embedding層…文字ベクトルをコンピュータへ認識させるための層
ある層の出力は次の層の入力として利用されるだけでなく
一般的なニューラルネットワークの最後の層のような
(中間データではないユーザーが利用可能な)出力としても利用される
また各層の入力として、前の層の入力のみではなく、時系列のデータポイントも入力する

簡単に言えば…
1.ある時点の入力が、それ以降の出力に影響を及ぼす!
2.過去の情報を元に予測できる!

所感

今回は基礎の部分ですがCNN、RNNを学習しました。
基本的な考え方は同じで、構造や中間層・出力層などが違うので
役割が変わってくるようなイメージですね。
奥が深いですし、新しい活性化関数が出てくればさらに可能性があがる!ということでしょうか。
引き続き学習を続けていきます!

Discussion