2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

E試験 2024#2 シラバスメモ③-3 深層学習の基礎 汎化性能向上

Last updated at Posted at 2024-08-22

E試験のシラバスとその概要をメモしたものです。
各サイトや生成AIに聞いたもののツギハギです。

シラバスは2024#2に準拠しています

本記事は3.深層学習の基礎のうち

  • 汎化性能向上のためのテクニック

についてとなります。
試験範囲外部分は割愛しています。

他の項目はこちらから展開

数学的基礎
https://qiita.com/hokutoh/items/4114c996ec0f82e4c8c0

機械学習
https://qiita.com/hokutoh/items/c170d0c3447d01e57186

深層学習の基礎-最適化/正則化
https://qiita.com/hokutoh/items/15a18d098b1d08892d3f

深層学習の基礎-CNN/RNN/Transformer
https://qiita.com/hokutoh/items/4b6aa3483757a655c559

深層学習の基礎-汎化性能向上
https://qiita.com/hokutoh/items/b691f91c7c1a84fbad59

深層学習の応用-画像処理
https://qiita.com/hokutoh/items/d893449521abed0231e2

深層学習の応用-自然言語処理
https://qiita.com/hokutoh/items/d58a4162f24ebac9dcc1

深層学習の応用-生成モデル
https://qiita.com/hokutoh/items/8d65f29f24a97df2579c

深層学習の応用-深層強化学習
https://qiita.com/hokutoh/items/0a04cb703b8f6ea2d710

深層学習の応用-様々な学習方法
https://qiita.com/hokutoh/items/93f8f89d41792a7b6981

深層学習の応用-深層学習の説明性
https://qiita.com/hokutoh/items/b5b53e28e2820631decc

汎化性能向上のためのテクニック

データ集合の拡張(Data Augmentation)

既存のデータを変形させる等して別の形のデータを作る
image.png
(出所:https://medium.com/secure-and-private-ai-writing-challenge/data-augmentation-increases-accuracy-of-your-model-but-how-aa1913468722)

  • データ数が水増しできることによる精度の向上
  • 同じデータに対しても別の形での学習をさせることによって汎化性能があがる

画像のデータ拡張

  • ノイズ付与(Gaussian Filter)、
  • Random Flip(向きの入れ替え)
  • Erase(一部消去)
  • Crop(切り抜き)
  • Contrast(コントラスト)
  • Brightness(明るさ)
  • Rotate(回転)、
  • RandAugument(複数フィルタN個をMの強さでかける)
  • AugMix(複数フィルタをかけたものを元の画像とα(透過)合成)

image.png
https://medium.com/lunit/photometric-data-augmentation-in-projection-radiography-bed3ae9f55c3
image.png
https://paperswithcode.com/method/randaugment
image.png
https://pytorch.org/vision/main/auto_examples/transforms/plot_transforms_illustrations.html#sphx-glr-auto-examples-transforms-plot-transforms-illustrations-py
image.png
https://arxiv.org/pdf/1912.02781

自然言語のデータ拡張

  • EDA:Easy Data Augmentation
    • SR: synonym replacement 単語を類義語に入れ替え
    • RI: random insertion ランダム位置に単語挿入
    • RS: random swap 文章内で単語入れ替え
    • RD: random deletion ランダム位置の文章を削除

image.png
(出所:https://aclanthology.org/D19-1670.pdf)

音声のデータ拡張

ノイズ付与(Gaussian Noise)、ボリューム変更、ピッチシフト、
MixUp、SpecAugment

試験範囲外の為割愛します

正規化

正規化:Normalizationはデータをデータスケールの単位を扱いやすいようにそろえたもの。
代表的なものとして最小値0~最大値1にスケーリングするMin-Max normalizationが使用される。
また平均0,標準偏差1となるようにデータ調整をしたZ-score normalizationを特に 標準化:Standardization と呼ぶ。
image.png

標準化された $x'_i=\cfrac{x_i-\mu}{\sigma}$
※$\mu=平均値:\cfrac{1}{n}\sum{x_i}$ $\sigma =標準偏差:\sqrt{\cfrac{1}{n}\sum{(x_i - \mu)^2}}$

正規化をかけるデータ単位による違い

image.png
いずれもZ-score normalization(標準化)が使われる。

  • Batch Normalization
    チャンネル毎 にまとめる
    (N:バッチサイズ, C:チャンネル数, H,W:画像の高さ,幅)
    $\mu = \cfrac{1}{NHW}\sum_{n=1}^N{\sum_{h=1}^H{\sum_{w=1}^W{x_{nchw}}}}$
    $\sigma = \sqrt{\cfrac{1}{NHW}\sum_{n=1}^N{\sum_{h=1}^H{\sum_{w=1}^W{(x_{nchw}-\mu)^2}}}}$
    image.png

  • Layer Normalization
    データ毎 にまとめる
    $\mu = \cfrac{1}{CHW}\sum_{c=1}^C{\sum_{h=1}^H{\sum_{w=1}^W{x_{nchw}}}}$
    $\sigma = \sqrt{\cfrac{1}{CHW}\sum_{c=1}^C{\sum_{h=1}^H{\sum_{w=1}^W{(x_{nchw}-\mu)^2}}}}$
    image.png

  • Instance Normalization
    データ毎のチャンネル毎 にまとめる
    $\mu = \cfrac{1}{HW}\sum_{h=1}^H{\sum_{w=1}^W{x_{nchw}}}$
    $\sigma = \sqrt{\cfrac{1}{HW}\sum_{h=1}^H{\sum_{w=1}^W{(x_{nchw}-\mu)^2}}}$
    image.png
    (出所:https://i-main.net/emmanote-ai-normalization/)

  • Group Normalization
    チャンネルを適当なG個に区切ってデータ毎にまとめる
    Instance NormalizationをG個まとめて行うイメージ。
    Layer NormalizationとInstance Normalizationの中間的な動きとなる。

アンサンブル手法

アンサンブル学習とは複数のモデルを組み合わせることで、精度の高い学習モデルを生成する手法。

バギング

バギングでは、学習データから複数のサンプルデータを作り、各サンプルデータを元にモデルを作成していきます。
たくさん作ったモデルにそれぞれ推論させた結果を多数決して、最終的な出力結果となります。
image.png
(出所:https://nisshingeppo.com/ai/whats-ensemble/)

ブースティング

モデルを直列に組み合わせて、間違えた部分を集中的に学習する手法
データ重みづけの方法によって様々な手法があり、代表的なものはアダブーストや勾配ブースティング
image.png

ブートストラップ

バギングを行うときの学習データからランダムにデータを抽出して、サンプルデータを作成する手法です。
image.png

スタッキング

学習データに対して様々なモデルを作り、その出力結果を入力として更にモデルを作ります。
image.png

ハイパーパラメータの選択

基本的なハイパーパラメータ調整

学習率、隠れ層の数 (レイヤー層数)、ユニット数、
ドロップアウトの割合、バッチサイズ、正則化項の係数

ハイパーパラメータの最適化

ハイパーパラメータを(半)自動で最適化

  • グリッドサーチ
    ハイパーパラメータを複数個設定し、モデルを構築、全組み合わせの中から最適なパラメータを見つけ出す網羅的検索手法。
    パラメータ数が多いと計算コストが高くなる。
    image.png
    https://medium.com/@cjl2fv/an-intro-to-hyper-parameter-optimization-using-grid-search-and-random-search-d73b9834ca0a

  • ランダムサーチ
    ある一定の分布(平均0, 標準偏差1の正規分布など)を指定して、そこからランダムに取り
    出したハイパーパラメータを複数個設定し、モデルを構築、最適なパラメータを見つけ出
    す手法。

  • ベイズ最適化
    ハイパーパラメータの評価結果に基づいて事前確率分布を更新して事後確率分布を取得し、次の試すべきハイパーパラメータを決定する

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?