E資格合格への計画の立て方

## まえがき
'22年4月に学習をはじめ、2022#2に合格しました。
本試験前にも、認定講座の試験合格等ヤマ場がいくつかあり、かなり計画が立てづらく感じていました。
また、**個人個人の持っている前知識からも計画は変わってくる**ので、計画の立て方がもしかするとお役に立てるかもと思い書いてみました。
基本的には「**しっかり理解して頭に叩き込む**」ことを前提にしていますので、記憶力の良い方、暗記が得意な方はもう少し短縮できる気がします。

## 大雑把な計画の立て方
まずE資格本番までのフェーズとして、下記に分けると考えやすいかなと思います。

1. 認定講座フェーズ(２～４か月)
　・オプション：模試
1. 補強フェーズ(黒本・ゼロつく等、1か月程度)
　・１～2日休憩
1. 復習フェーズ(半月～1か月程度)
1. 本試験(2時間)
1. 試験後(３週間)

計画の立て方として、認定講座を**本試験の1.5~2か月前に修了する**ように計画を立てるというマイルストンが分かりやすいと思います。こうすることで、好きな会場や時間帯に余裕をもってエントリーできます。
私は認定講座3か月(基礎、深層学習、修了試験)、補強1か月、復習1か月としましたが、復習の半月分くらいは余計だったかなと感じています。

## 項目別の計画
### 1. 認定講座フェーズ
#### 応用数学・Python基礎・機械学習: 目安1か月
全て重要です。一部シラバスにありませんが、ここを疎かにすると深層学習を深く理解できない＝丸暗記になるので、結果的にやらざるを得ないです。
基本的には**1か月程度で終わらせたい**ところです。
苦手な部分がある方は、項目ごとに+1週間くらいを目安にしっかりとやり込む計画を立てると良いです。以下、掴むべきポイントも付記します。
- **微分・偏微分**
 勾配の意味をしっかり掴む。分数の微分や合成関数の微分に慣れる
⇒勾配降下法の理解、計算グラフ・誤差逆伝播の理解に必須
- **線形代数**
スカラー・ベクトル・行列・テンソルの違いを掴むことと、
**行列積によって次元がどう変化するのか**理解する
(これができないと、一部のコード穴埋め問題が理解できなくなる可能性があります)
- **情報理論**
KL/JS Divergenceまでの理解がGANの損失関数を理解するために必須
- **確率・統計**
基本は勿論、ベルヌーイ/マルチヌーイ/正規分布は損失関数のベースの考え方になっているため必須
- **Python(Numpy)**
黒本の最後についている付録章が秀逸
numpyのsum関数等々の引数で指定するaxisは、**どの軸にどう作用するのか**、確実な理解が必要
- **機械学習**
SVMの理論と、k-means,k近傍法くらいはゼロから実装できるレベルまで理解しておく

#### 深層学習：目安1か月半
できるだけ丸暗記を避けるよう、ひとつひとつの数式を丁寧に導出するところまで実施したいところです。ここまでの基礎をしっかりやっていればできるはず、できない所は基礎に立ち戻ることも必要です。但し時間のかかり具合により、NN/CNN/RNNの実装と、自然言語処理、強化学習については**補強フェーズの「ゼロから作るDeepLearning①②④」で理解するくらいに割り切る**のも一つの手です。

- **NN基礎**
順伝播、損失計算、逆伝播、重み算出まである程度コーディングできるようになるまでが理想。
最適化手法も数式と実装セットで理解する必要あり。
- **CNN**
**im2col**。使う前のフィルタのreshapeや使った後の行列積演算等まで理解しておきたい。
- **RNN**
RNNユニットとLSTMは実装までできるようになっておく。入力(One-Hot)～Embed～RNN/LSTMユニット～Affine～出力各々の次元遷移を丁寧に確認すると理解が速い。
- **そのほか(画像認識、生成分野等々)**
損失関数の数式はまとめてしっかり頭に入れておく。
また、各モデルは前のモデルに比べて何を工夫したのかも押さえておくとよい。

#### 認定講座修了：目安半月～1か月
課題や試験の重さによって、かける時間が変わってくると思います。
私が受けた講座では特に自由研究のようなプロダクト課題と、基礎科目、深層学習の試験が重かったので、ざっとした復習なども含めて３～４週間くらい使いました。

### この辺りで、模試(1週間)
タイミングが合えば、この辺で模試が受けられるといいですね。
認定講座にもよりますが、オプションで提供しているところがあります。
基礎科目と深層学習合わせて、ざっと1週間程度の復習をこなした後に模試を受けるイメージです。
私はこの1週間を黒本に費やした後、模試を受験しました。

### 2. 補強フェーズ(1か月)
ここは人それぞれ、弱点克服のために<a href="https://www.jdla.org/recommendedbook/">JDLAの推奨している書籍</a>をベースに勉強する形が良いかと思います。
私の場合は、主に黒本の問題を解くことと、オライリー社の「ゼロから作るディープラーニング①②④」をコーディングしながら読み解いていきました。
**1冊1週間**というペースを自分に課して読んでいきましたが、認定講座で大枠の知識が入っているのと、カテゴリによっては講座の説明より分かりやすいため、どんどん進んでいきました。

### 番外：休憩を１～２日入れる
復習に入る前に、少し息抜きすることもお勧めします。
復習フェーズは最も重要な割に、新しいことを学ぶ機会は少なく、モチベーションが低いと「はいはい分かってる」と流し気味になってしまいます。気合を入れなおしましょう。

### 3．復習フェーズ(半月～1か月)
これまでの理解を総復習して、頭に叩き込んでいくフェーズです。
色々なやり方がありますが、

- 認定講座の講義動画や資料を見直す
- 書いたノートを見直す
- 書籍をもう一周コーディングまでやる
- キーワードと、それに対して理解した事項をExcelにまとめておき、「単語帳」のように振り返る(おすすめ)
- 理解が甘い部分や、単語の丸暗記になっている部分を探し、徹底的に調べて深く理解する

などでしょうか。
但し、あまり**復習フェーズに余裕を持たせると間延びしてモチベーションが下がる**ので、少し短いかなくらいがいいです。
### いよいよ当日：2時間
いかに自分の心を乱されないかが重要です。でも乱されます。
試験はピアソンVUEの会場で行いますが、試験用PCの画面遷移が遅かったり、画面スクロールして全て問題文を読まないと次に進めない、メモ用に渡されたペンのうち1本が書けない、隣の人がでかいため息をするなど、**試験以外でもあの手この手で心を乱しにきます**。
そういった情報も頭にいれつつ、**2時間の使い方を事前に決めておくこと**が非常に重要です。
- 計算問題は後回しにする
落ち着いて解けば、知識を問う問題に比べて貴重な得点源になります
- 試験システムでもチェックできるものの、それとは別に迷った問題は△、分からない問題は×と問題番号をメモしておき見直しに活用する
- わからない問題は飛ばす
- 試験日を人が多い休日ではなく、初日・平日を選ぶ

この辺りをできれば認定講座の修了試験や模試、補強フェーズあたりから意識して、
**120分で問題を解く感覚に慣れておく**とベストだと思います。
私は100分程度で(超イライラしながら)解き終わり、20分を△と×印をつけた問題の見直しに充てることができました。

### 試験後：3週間
気持ちよく試験を終える方ばかりではないでしょう。
しかも、合格発表まで約3週間もあります。これが、結構つらいです。
試験後の3週間で何をやるか、できれば事前に決めておくとモヤモヤした気持ちを少しでも楽にしやすいです。

## さいごに
Ｅ資格はまだまだ歴史が浅く、また費用の問題からか参考になる情報が少ない状況と感じます。
振り返って、私が「ああしておけばよかったなあ」と後悔した所をできるだけ盛り込んでおきました。
この記事を参考にして頂いて、不必要に焦らない計画を作って頂き、本番で本来の力を出し切れるよう、願っています。