見出し画像

G検定試験忘備録⑤(畳み込みニューラルネットワーク)

初めまして、みずぺーといいます。
このnoteを機に初めて私を知った方のために、箇条書きで自己紹介を記述します。

  • 年齢:28歳

  • 出身:長崎

  • 大学:中堅国立大学

  • 専門:河川、河川計画、河道計画、河川環境

  • 転職回数:1回(建設(2年9か月)→IT系年収100万up(現職3か月))

  • IT系の資格:R5.4基本情報技術者試験合格💮

今日はG検定に向けた語彙を忘れぬうちにアウトプットしておく。

ディープラーニングの手法について今日はインプットします。

畳み込みニューラルネットワーク

画像データに適した構造として考えられたのが畳み込みニューラルネットワーク(CNN)

通常のニューラルネットワークは画像データを分解して、縦一列の情報に変換するため適さない。

その一方で縦横の位置関係を保存しながら学習を実施することが可能なモデルがCNN

CNNの基本形

単純型細胞(S細胞):画像の濃淡パターン(特徴)を検出する
複雑型細胞(C細胞):特徴の位置が変動しても同一の特徴であるとみなす

ネオコング二トロン:二つの細胞の働きを組み込んだモデルで福島邦彦らによって考えられる

LeNet:1998年にヤン・ルカンによって考案されたモデル。畳み込み層とプーリング層の2種類の層を複数組み合わせた構造を有する。

ネオコング二トロンとLeNetの共通点
S細胞=畳み込み層、C細胞=プーリング層という立ち位置と同じ。

ネオコング二トロンとLeNetの相違点
ネオコング二トロンは微分を用いない、add-if silent
LeNetでは誤差逆伝搬法

畳み込み層

フィルタ(またはカーネル)をもちいて画像から特徴を抽出する操作

画像とフィルタを掛け合わせて総和を取っていく処理となる。

位置のずれに強いモデルを作ることができる層

プーリング層

画像サイズを決められたルールに従って小さくしていく作業。

最大値プーリング:ある小領域の最大値を抽出する
平均値プーリング:ある小領域ごとの平均を抽出する

画像のずれに対する頑健性を持つ

全結合層

特徴量を二次元から一次元に変換する層

全結合層はCNNではない通常のニューラルネットワーク(多層パーセプトロン)に用いられている層と同じ構造をしている。

全結合層の例であるGlobal Average Pooling:分類したいクラスと特徴マップを1対1対応させ、各特徴マップに含まれる値の平均を取る

データ拡張(data augmentation)

あらゆるパターンを想定した画像を準備する必要があるが現実不可能。

手元にある画像から疑似的に別の画像を生成するアプローチ

・上下左右にずらす
・上下左右に反転する
・拡大・縮小する
・回転する
・斜めにゆがめる
・一部を切り取る
・コントラストを変える

ほかにも
Cutout,Random Erasing(画像の一部分に対して画素値を0またはランダムにする)
Mixup(2枚の画像を合成する)
CutMix(上二つを組み合わせる)

CNNの発展形

画像認識においてさらに高い精度を取るために行われたこと

AlexNetのような2012年に画像認識を競うコンペで圧倒的な精度を誇ったモデル

VGGやGoogLeNetなどのさらに深いモデル

Inceptionモジュールによる様々なフィルタサイズで畳み込みを可能にするモデル

ここで壁にぶつかる。深くしすぎると誤差が逆伝搬しにくくなった。

Skip connectionと呼ばれる「層を飛び越えた結合」を導入したResNetによって
・層が深くなっても、層を飛び越える部分は伝搬しやすくなる
・様々な形のネットワークのアンサンブル学習になっている
ことが学習をうまくいかせる要因になった

学習コストがかかる。
そのため畳み込み層のパラメータを削減するMobileNetも登場
(Depthwise Separable Convolution)によって計算量を1/8にした

Dilated Convolution

カーネルのパラメータは変わらず、カーネルの間隔を広げることによって広範囲の情報を畳み込む。

CNNモデルの解釈

XAI(Explainable AI)

ディープラーニングは非線形で多層なためモデル自体の振る舞いを理解することが難しい。

そのためそれを解消するための分野として登場したのがXAI。

解釈手法の種類

  • 大局的な解釈:モデル自体がどの特徴量を重視しているか

  • 局所的な解釈:モデルの予測結果(ある特定のデータ)がどの特徴量を重視しているか

LIME

AIが予測する非線形の結果を解釈可能なモデルに変換すること。

非線形な分類を切り取って線形な解釈に置き換える

SHAP

ブラックボックスなモデルを解釈する一つの手法として2016年にLundberg and Leeによって発表された、協力ゲーム理論を応用

ある特徴量がどのくらい値に貢献しているのかを表す手法

シャープレイ値(引用:https://datadriven-rnd.com/shap/)

CAM

LIMEやSHAPのように近似をしたり重要度を再計算する必要がなく、学習したモデルをデータに流し、そこで得られる最後の畳み込み層の特徴マップにGAP後の全結合層の重みを加えてデータの注力箇所を可視化する。

ドメインアダプテーション

ドメインアダプテーションではソースデータとターゲットデータの違いによる精度の低下を抑えるために分布を揃えるアプローチをとる。Maximum Mean Discrepancyや共分散の指標を使用して分散間の距離を測る。
敵対的学習を用いることによって分布を揃える。

教師ありのほかにも教師なしドメインアダプテーションが提案されている。

NAS(Neural Architecture Search)

最適なモデルのアーキテクチャを自動で探索するタスクのこと。

NASNet

CNNのみの焦点をおいて探索されたモデル

MnasNet

強化学習の考え方を取り入れ、モデルの精度とモバイル端末上での実際の実行速度を見ながら、より良いモデルを探索したモデル

EfficientNet

深さ、広さ、解像度のスケールアップのバランスを重要視して探索したモデル

画像認識分野での応用

画像認識タスクおよび代表的モデル

物体クラスの名称を出力するタスク

AlexNet ,GoogleNet ,VGG,ResNetの変遷

wideResNet

ResNetによって層を飛ばすことにより多層化に成功したが、幅も重要でないかと考えた研究もある。

その一つとしてwideResNetが挙げられる。
wideと層の幅を広くし深さを浅くする。

これによって出力チャネル数は上がるものの精度が上がり、計算速度を上げることにつながった

Resnetの種類

  • wideResNet:幅方向に出力チャネル数を増やして精度を向上

  • DenseNet:Dense block内の全ての畳み込み層の出力をそれ以降の畳み込み全てに直接連結

  • SENet:特徴マップの各チャネル情報の重みを考慮することで重要なチャネルを際立たせること

resnetおよびdensenetの構造

物体検出タスク

入力画像に映る物体クラスの識別とその物体の位置を特定するタスク

物体検出には2段階モデルと1段階モデルの二種類が存在する

2段階モデル:大まかな物体の位置を特定した後、その物体クラスを識別
1段階モデル:同時に位置とクラスを識別

1段階モデルは高速に実現を行うことが可能。

2段階モデルの例:R-CNN、FPN
1段階モデルの例:YOLO、SSD

HOGからCNN,R-CNN,Fast R-CNNに至るまでの変遷

セグメンテーションタスク

画像の画素ごとに識別を行うタスク

セマンティックセグメンテーション:画像全体を対象とする
インスタンスセグメンテーション:物体検出した領域を対象とする
パノプティックセグメンテーション:個々の物体を分離しつつ、道路や建物などはひとまとめにする

FCN:全ての層が畳み込み層で構築されている。

セマンティックセグメンテーションの分類

姿勢推定タスク

人の頭や足、手などの関節位置を推定するタスク

複数の人の骨格を同時に推定できるようにした手法をOpen Poseがある。

Open poseはParts Affinity Fieldsと呼ばれる骨格間の位置関係を考慮した処理を実施。

マルチタスク

複数のタスクを一つのモデルで対応すること

音声処理

データの扱い方

ある時刻の状態が前の時刻の状態を受けている

音声データの扱い

変換処理をA-D変換と呼び音声はパルス符号変調(PCM)という方法でデジタルデータに変換されることが一般的

PCMは

  1. 音波を一定時間ごとに観測する標本化

  2. 観測された波をあらかじめ決められた値に近似する量子化

  3. 量子化された値をビット列で表現する符号化

高速フーリエ変換

無限に続く、連続的な信号にどのような周波数が、どれほどの強さで含まれているのかを分析する際に使用される手法がフーリエ変換。

  • 離散フーリエ変換:音声という離散的なデジタルデータを離散的な信号に適応できるような変換を施したもの

  • 高速フーリエ変換:演算量を減らして高速化した離散フーリエ変換のこと

メル尺度とメル周波数

人間の音の高さの知覚特性を考慮した尺度のこと。
さらにメル尺度に対応する周波数をメル周波数とよぶ。

隠れマルコフモデル(HMM:Midden Markov Model)

マルコフ過程に従って内部状態が遷移し、取得できる情報から状態遷移を推定する確率モデル。

Wave net (音声合成)

2016年にDeepMind社によって開発されたモデルで、非常に自然な発音の音声を合成することができ、コンピュータによる音声合成・音声認識に対して大きな衝撃を与えた技術。

自然言語処理分野

自然言語処理には形態素解析、構文解析、意味解析、文脈解析の4つの工程がある。

自然言語処理の4つの工程と特徴

トピックモデル

文書や単語に潜む潜在的なカテゴリを説明するモデルである。
例えば通販サイトにおいて顧客の購買履歴から商品の潜在的なカテゴリ分けを知ることができる。

LDA(Latent Dirichlet Allocation)

トピックモデルの代表的なモデル。

一つの文書には複数の潜在的なトピックが存在すると仮定する。また具体的な単語などのデータがそれぞれ生成される確率はトピックごとに異なる。

GPT(Generative Pre-trained Tranformer)

OpenAIは2019年2月にGPT-2を発表しましたが、発表当初は危険すぎるとしてGPT-2の小規模なモデルのみしか公開をしなかった。

テキストデータ

単語n-garamを複数個並べたものとして表現する。

Bag-of-Words(BoW):ばらばらに単語を集合としてとらえる

Bag-of-n-grams:組み合わせて出現順序と組み合わせを考慮する

TF-IDF

自然言語の特徴量エンジニアリングの一つ。
単語の文書内での出現頻度(Term Frequency:TF)とその単語が存在する文書の割合の逆数の対数(Inverse Document Frequency:IDF)の頭文字に由来

bag of words に比べレアな単語に注目できるようになるものの、依然として文書の長さによる影響が残る。

単語埋め込み(word embedding)

word2vec

単語の意味は、その周辺の単語によって決まる。
単語の分散表現を獲得する、ニューラルネットワークを用いた推論ベースの手法

  1. スキップグラム:ある単語を与えて、周辺の単語を予測するモデル

  2. CBOW:周辺の単語を与えてある単語を予測するモデル

doc2vec

文章の分散表現を獲得するニューラルネットワークを用いた推論ベースの手法。

Transformer

Google者が2017年に発表した「Attention Is All You Need」という論文で登場した言語モデル

BERT

Google社が2018年に発表した双方向Transformerを使ったモデルで事前学習に特徴がある。

Masked language Model(MLM)

BERTにも用いられている事前学習のタスクで、文中の複数個所の単語をマスクし、本来の単語を予測する。

Next Sentence Prediction(NSP)

BERTにも用いられている事前学習のタスクで2文で渡され、連続した文かどうかを判定する

fastText

word2vecの延長上のライブラリ。単語埋め込みの学習時に部分文字列を考慮することで訓練データに存在しない単語の計算や活用する単語の語幹と語尾を分けて学習することを可能にした。

ELMo

文脈を考慮した分散表現を得る方法

ViT(Vision Transformer)

画像処理の分野に持ち込まれたTransformerでCNNを使わないモデルとして提案されている。

RNN(リカレントニューラルネットワーク)

RNNは過去に入力された文字列から次に来る単語を予測する

ニューラルネットワークとの違い:過去の隠れ層から現在の隠れ層に対してつながりがあること

このように勾配降下法によって時間軸に沿って誤差を反映していく手法のことをBPTT:BackPropagation Thorough-Time(BPTT)と呼ぶ。

CTC(Connectionist Temporal Classificaiton)

入力データと出力データで違う数を出力したいときに行う方法

LSTM(Long Short Term Memory)

RNNの弱点は以下の二つであった。

  1. 時間軸を深くした場合に起きる勾配消失問題

  2. 現在の情報に過去の情報は必要ないが、将来の情報には必要となる問題

このために考えられたのがLSTMである。

LSTMはCECという情報を記憶する構造と、データの伝搬量を調整する3つのゲート(忘却ゲート、入力ゲート、出力ゲート)をもつ構造

GRU(Gated Recurrent Unit)

リセットゲートと更新ゲートという2つのゲートを用いた構造のブロックから構成

LSTMのように3つの構造でかつ情報を保存することが必要ない、シンプルな構造となっている。

双方向RNN

過去と未来の両方の情報を踏まえた出力が可能となる。

RNN Encoder-Decoder

これまでのRNNは時系列データから一つの予測を出力するものである。
一方で入力の時系列に対して出力も時系列として予測した場合にはRNN Encoder-Decoderを用いる。

Attention

RNN Encoder-Decoderでは固定長のベクトルに圧縮を行う必要がある。

一方でAttentionは入力データと出力データにおける重要度のようなものを計算する手法であり入力と出力で対応するものを選択するということになる。

つまり過去の入力のどの時点がどれクリアの影響を持っているかを直接的に求めている。

Transformer

通常のAttentionとself-Attentionの2つを組み合わせてEncoder-Decoderとし、時系列データの予測や言語の翻訳などのタスクの精度を上げた。

Attentionは文章間の関連度を測る。

self-Attentionは自身の文章内の各単語間の関連度を計算できる。

強化学習

強化学習はエージェントが環境上の状態において行動する。次の状態に遷移し報酬を得るという相互作用の枠組みを設定する。

強化学習では行動を行い状態が遷移した後に報酬が得られない問題でも、方策を進めることができる。

例えば囲碁の場合。

勝敗が決した状態の時にのみ報酬が得られる場合、このような報酬を疎な報酬といい、学習には時間がかかる。

強化学習の4つの種類と特徴

状態表現学習

関連するタスクにおいては同じような状態表現が効果的に利用できる。

従って関連したタスクを事前に学習するといった転移学習の手法が適する。

AlphaGo&Alphazero

AlphaGo:初めて人間に勝利したバージョン

Alphazero:AlphaGo Zeroのアルゴリズムを将棋と囲碁も解けるように発展させたもの

深層強化学習

深層強化学習は、状態や組み合わせが多い場合の学習を可能にした。

強化学習は方策や状態価値に対する直接的な正解ラベルではなく、サンプリングによって得られた報酬に選択された行動を元に方策や状態行動価値の評価精度を改善していく。

通常の強化学習では膨大なパターンがある中でパターン数を減らす縮約表現が必要となる。

その中でパターンを減らせる深層強化学習の価値が高まってきている。

DQN(Deep Q Network)

Q学習は価値ベースの強化学習であり価値推定を行う部分と推定した価値を参考にして行動選択する部分に分かれる。

状態sと行動aの組みの価値を、状態s行動aを選んだ後、得られる報酬和の期待値で表現する。これをQ関数と呼ぶ

Doubule DQN

推論したQ値がノイズによって偏るとQ値を過大に評価してしまう。Double DQNではtarget networkにonline networkとは別のノイズが乗ったネットワークを利用することでノイズによる過大評価を改善している。

Dueling network

dueling networkではQ値(状態行動価値)を状態価値とアドバンテージに分解している。

  • 状態価値:その状態にいるのがどれだけ価値あることかを測る

  • アドバンテージ:それぞれの行動の重要性を相対的に測る

この手法は行動選択が報酬の獲得にほとんど影響を与えない状態が多く存在することを目的に作られた

Noisy Network

通常のDQNではε-greedy手法が用いられている。

それはランダムな行動選択を行うことができるハイパーパラメータでありモデルの重要なパラメータとなっているが設定が難しい。

そのためNoisy Networkはランダムにパラメータを出力しモデルが新たな行動を行うことを助けてくれる。

平均と標準偏差を学習しつつ、ガウス分布による乱数をネットワークの重みとして用いることによってノイズを発生させる。

AlpaGoに用いられているニューラルネットワーク

教師ありフェーズ
Supervised Learning Policy Network(SL Policy)

  • 入力データ:現在の盤面

  • 出力データ:次の盤面

  • 教師データ:人間の棋譜

Rollout Policy

  • 入力データ:現在の盤面

  • 出力データ:次の盤面

  • 教師データ:人間の棋譜

Reinforcement Learning Policy Network(RL Policy):

  • 入力データ:現在の盤面

  • 出力データ:次の盤面

  • 教師データ:自己対戦によるエピソードと報酬

Value Network:

  • 入力データ:現在の盤面

  • 出力データ:次の盤面

  • 教師データ:自己対戦による局面と勝敗

深層生成モデル

新たなデータを生成するタスクが活発に研究が行われており、ディープラーニングを生成タスクに用いたモデルを深層生成モデルという。

元の画像と似たような画像を生成する手法

  • VAE(変分オートエンコーダ):オートエンコーダに工夫を加え、新たなデータを生成可能にしたモデル

  • GAN(敵対的生成ネットワーク):偽データとそれを判別するモデルの交互学習で偽データが本物に近いデータを生成可能にしたアーキテクチャ

  • Wavenet:音声生成分野に影響を与えたモデルで、最初の入力から次の出力を次々に予測していくアプローチをベースに構成

この二種類が好成績を残している

深層生成モデルの動向

OpenAIのDALL・E、DALL・E2やGoogle社のImagen
これらは自然言語のモデルを用いてテキスト情報を潜在空間に埋め込み、それを加味して画像生成を行う。

例えば、「犬の散歩をしているチュチュを履いた大根」などの文章でさえも画像化を行うことが可能。

またDALL・Eで使用されるアーキテクチャはCLIPと呼ばれ、テキストと画像の関係性を強く学習するため、zero-shot learning(そのクラスの画像を見なくても分類可能とするタスク)においても高精度を出した。

VAE(Variational Autoencoder:変分オートエンコーダー)

オートエンコーダーに改良を加えて新たなデータを生成することができるモデル。

GAN(Generative Adversarial Network:敵対的生成ネットワーク)

ジェネレータとディスクリミネータの二種類によって学習を行う。

ジェネレータ:ディスクリミネータが間違えるような画像を生成
ディスクリミネータ:偽物を見分けるように学習

この二種類を用いることで精度を向上させる

CycleGAN

馬とシマウマのような画像を行ったり来たりしながらドメインの変換を可能にするアーキテクチャ


この記事が気に入ったらサポートをしてみませんか?