No Code, No Life

データサイエンティストを目指すしがないエンジニアのブログ

Day 44 NN構築できるようになった / Batch Normalizationについて

本日の学習プランと結果

内容 分量 結果
キカガク: 機械学習の基礎3 完了 O
キカガク: Streamlitの基礎 完了 O
キカガク: ディープラーニングの基礎1 完了 O
キカガク: ディープラーニングの基礎2 完了 O

Github

github
10/8 草

キカガク
10/8 キカガク

ひとこと

PyTorchを使用してニューラルネットワークをついに自分で構築できるようになった.

(そして、これまで理解できていなかったコードの意味についても、きちんと理解できるようになった)

次はOptunaによるNN構造そのものの探索にチャレンジする.

Kaggleにも挑戦していくが、DLが必ずしも最適とは限らない.

XGBoostのようなアンサンブル学習も改めておさえつつ、機械学習の基本からさらにステップアップしていきたい.

Batch Normalizationについて

キカガクで、ここの説明は非常に浅かったため、自分で色々と調査した.

  • ミニバッチ1の学習が終わり、ミニバッチ2の入力が始まったとき. ミニバッチ2とミニバッチ1のデータ分布があまりに違うと、全く違うパラメータで更新されてしまう. さらにミニバッチ3がミニバッチ2と全く違う分布だったら...学習が大変非効率になる. (内部共変量シフト)
  • この問題を解決するために、各ミニバッチごとに平均と標準偏差をもとめ、下記のようにx^へ各変数ごとに変換して、入力するデータ分布をある程度一定にしようとするのがbatch normalization.

BN

明日の計画

内容 分量 結果
キカガク: OptunaによるNN構造探索 完了
キカガク: 画像認識 入門

振り返りメニュー

向き合ったら○をつける。

課題克服メニュー クリア 理由
1. 優先順位を設定する -
2. 考えすぎずに手を動かす・気付いたことはすぐにメモする C ちょっと悩んだら、手を止める前に調べて実装する流れにしている.
3. 振り返る O このブログ
4. 継続する O このブログ
5. 気づき・考えたこと・思ったことをまとめる O このブログ
6. 嘘をつかない・見栄を張らない O
7. 収支の把握 O
8. 没頭する O