E資格（2022#2）に合格するため、残り1ヶ月でできること

## これはなに

2022年8月にE資格（2022#2）を受験します。無事、JDLA認定プログラムは修了できたものの、E資格の黒本をやった結果、正答率が4割程度かつ、回答を見ても理解するのにすごい時間がかかるといった絶望的な状況でした。

そこで試験日まで残り1ヶ月を切っているので、合格するための学習方針を備忘録としてまとめてみました。

## 前提

- エンジニア歴は1ヶ月です。pythonの基礎知識はありますが、numpyのあれこれはそんなに分かりません
- 大学の研究ではRで重回帰分析を扱っていたため、数式まわりには多少は馴染みがあります
- G検定保有済みで、JDLA認定プログラムのラビットチャレンジも修了したため、全体をフワッと理解しているという状態です

## 方針
1. 学習すべき項目を洗い出して、現時点で何が理解できていそうかを把握する
2. 学習の優先度を決めて、試験日1週間前まで理解できている項目を埋めていく
3. その時理解してもすぐ忘れてしまうので、雑でもいいので言語化をして備忘録として残す
4. 最終週は黒本・ラビットチャレンジの練習問題を解きまくる

### 1. 学習項目の洗い出しと理解度・重要度の把握

- Lv.1: 概念が理解できている（基本的な文章問題が解ける）
- Lv.2: 数式が理解できている（計算・式変形問題が解ける）
- Lv.3: プログラムが理解できている（穴埋め問題が解ける）

※なお重要度は独断と偏見

| 項目 | Lv.1: 概念理解 | Lv.2: 数式理解 | Lv.3: コード理解 |
| --- | --- | --- | --- |
| ベルヌーイ分布 | 理解済み／重要・中 | 理解済み／重要・大 | ー |
| 多項分布 | 理解済み／重要・中 | 理解済み／重要・大 | ー |
| ガウス分布 | 怪しい／重要・中 | 怪しい／重要・中 | ー |
| ベイズ即 | 怪しい／重要・中 | 怪しい／重要・中 | ー |
| 情報量 | 理解済み／重要・大 | 怪しい／重要・大 | ー |
| 教師あり学習 | 理解済み／重要・大 | ー | ー |
| 教師なし学習 | 理解済み／重要・大 | ー | ー |
| 半教師あり学習 | 怪しい／重要・小 | ー | ー |
| 転移学習 | 理解済み／重要・大 | ー | 怪しい／重要・小 |
| 能力・過剰 / 過小適合 | 理解済み／重要・中 | ー | ー |
| 次元の呪い | 怪しい／重要・小 | ー | ー |
| ハイパーパラメータ | 理解済み／重要・大 | ー | ー |
| データ検証 | 理解済み／重要・大 | ー | ー |
| ホールドアウト法 | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| k-分割交差検証法 | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| 最尤推定法 | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| 性能評価 | 理解済み／重要・中 | 理解済み／重要・大 | 怪しい／重要・中 |
| グリッドサーチ | 理解済み／重要・中 | ー | 怪しい／重要・中 |
| ランダムサーチ | 怪しい／重要・中 | ー | 怪しい／重要・中 |
| 強化学習 | 怪しい／重要・大 | ー | ー |
| 方策勾配法 | 怪しい／重要・大 | 怪しい／重要・大 | 怪しい／重要・中 |
| 価値反復法 | 怪しい／重要・大 | 怪しい／重要・大 | 怪しい／重要・中 |
| 全結合型NN | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| 損失関数 | 理解済み／重要・大 | 理解済み／重要・大 | 理解済み／重要・大 |
| シグモイド関数 | 理解済み／重要・大 | 理解済み／重要・大 | 理解済み／重要・大 |
| Softmax関数 | 理解済み／重要・大 | 怪しい／重要・中 | 怪しい／重要・中 |
| ReLU, Leaky ReLU | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| tanh | 理解済み／重要・中 | 怪しい／重要・中 | 怪しい／重要・中 |
| 計算グラフ | 理解済み／重要・大 | 理解済み／重要・大 | ー |
| 誤差逆伝播法 | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・大 |
| L1正則化 | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| L2正則化 | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| データ拡張 | 理解済み／重要・中 | ー | ー |
| マルチタスク学習 | 理解済み／重要・中 | ー | ー |
| スパース表現 | 理解済み／重要・中 | ー | 怪しい／重要・小 |
| アンサンブル学習 | 理解済み／重要・中 | ー | 怪しい／重要・小 |
| ドロップアウト | 理解済み／重要・中 | ー | 怪しい／重要・小 |
| バッチ学習 | 理解済み／重要・大 | ー | 怪しい／重要・小 |
| ミニバッチ学習 | 理解済み／重要・大 | ー | 怪しい／重要・中 |
| 確率的勾配降下法 | 理解済み／重要・大 | 怪しい／重要・中 | 怪しい／重要・中 |
| モメンタム | 怪しい／重要・中 | 怪しい／重要・中 | 怪しい／重要・中 |
| AdaGrad | 怪しい／重要・中 | 怪しい／重要・中 | 怪しい／重要・中 |
| RMSProp | 怪しい／重要・中 | 怪しい／重要・中 | 怪しい／重要・中 |
| Adam | 怪しい／重要・中 | 怪しい／重要・中 | 怪しい／重要・中 |
| バッチ正規化 | 理解済み／重要・中 | 怪しい／重要・中 | 怪しい／重要・小 |
| Layer正規化 | 理解済み／重要・中 | 怪しい／重要・中 | 怪しい／重要・小 |
| Instance正規化 | 理解済み／重要・中 | 怪しい／重要・中 | 怪しい／重要・小 |
| 教師あり事前学習 | 怪しい／重要・小 | ー | ー |
| 畳み込み処理 | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| プーリング | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| RNN | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| 双方向RNN | 理解済み／重要・大 | 理解済み／重要・大 | 怪しい／重要・中 |
| Encoder-Decoder | 理解済み／重要・大 | 理解済み／重要・中 | 怪しい／重要・小 |
| Seq2Seq | 理解済み／重要・大 | 怪しい／重要・中 | 怪しい／重要・小 |
| LSTM | 理解済み／重要・大 | 怪しい／重要・大 | 怪しい／重要・中 |
| GRU | 理解済み／重要・中 | 怪しい／重要・中 | 怪しい／重要・小 |
| 勾配クリッピング | 怪しい／重要・中 | 怪しい／重要・中 | 怪しい／重要・中 |
| Attention | 怪しい／重要・大 | 怪しい／重要・小 | 怪しい／重要・小 |
| 識別モデルと生成モデル | 怪しい／重要・大 | 怪しい／重要・中 | 怪しい／重要・小 |
| VAE | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| VQ-VAE | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| DCGAN | 怪しい／重要・大 | 怪しい／重要・中 | 怪しい／重要・小 |
| Conditional GAN | 怪しい／重要・中 | 怪しい／重要・中 | 怪しい／重要・小 |
| AlphaGo | 理解済み／重要・中 | ー | ー |
| A3C | 怪しい／重要・中 | ー | ー |
| グラフ畳み込み | 怪しい／重要・中 | ー | ー |
| GoogLeNet | 怪しい／重要・中 | ー | 怪しい／重要・小 |
| ResNet, WideNet | 理解済み／重要・大 | 怪しい／重要・小 | 怪しい／重要・小 |
| DenseNet | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| EfficientNet | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| FasterR-CNN | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| YOLO | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| SSD | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| MaskR-CNN | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| FCOS | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| WordEmbedding | 理解済み／重要・中 | 怪しい／重要・小 | 怪しい／重要・中 |
| Transformer | 理解済み／重要・大 | 怪しい／重要・小 | 怪しい／重要・小 |
| BERT | 理解済み／重要・大 | 怪しい／重要・小 | 怪しい／重要・小 |
| GPT-n | 理解済み／重要・大 | 怪しい／重要・小 | 怪しい／重要・小 |
| WaveNet | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| 音声処理 | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| CTC | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| pix2pix | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| SiameseNet | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| TripletNet | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| MAML | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| Grad-CAM | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| LIME | 理解済み／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| SHAP | 理解済み／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| MobileNet | 怪しい／重要・中 | 怪しい／重要・小 | 怪しい／重要・小 |
| プルーニング | 理解済み／重要・中 | ー | ー |
| 蒸留 | 理解済み／重要・中 | ー | ー |
| 量子化 | 理解済み／重要・中 | ー | ー |
| モデル並列 | 理解済み／重要・大 | ー | ー |
| データ並列 | 理解済み／重要・大 | ー | ー |
| CPU / GPU / TPU | 理解済み／重要・中 | ー | ー |
| Docker | 理解済み／重要・中 | ー | ー |


### 2. 学習の優先度を決めて、試験日1週間前まで理解できている項目を埋めていく
- まずは確実に得点を狙える応用数学、機械学習、開発運用パートの網羅を目指す。
[参考: 【JDLA E資格】合格ラインと合格のための戦略](https://qiita.com/fridericusgauss/items/98497e96c03d99cba327#%E5%90%88%E6%A0%BC%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%88%A6%E7%95%A5)

- その上で優先度が高いところとしては、次の領域。
    - 強化学習の基礎知識・数学知識
    - 最適化パラメータの基礎知識・数学知識・実装知識
    - LSTM,GRUの数学知識
    - 残りの時間でさまざまな深層学習モデルの基礎知識


### 3. その時理解してもすぐ忘れてしまうので、雑でもいいので言語化をして備忘録として残す


### 4. 最終週は黒本・ラビットチャレンジの練習問題を解きまくる