40歳エンジニア管理職が「Deep Learning for ENGINEER(E資格)」に合格した話

## Deep Learning for ENGINEER（E資格）とは
この記事は2020年1月時点の情報であることをご了承ください。
現在、この日本においてAIのスキルを証明する公的資格として下記が挙げられます。

- JDLA Deep Learning for GENERAL（G検定）
- JDLA Deep Learning for ENGINEER（E資格）

です。

位置付けとしては、G検定がAI関連技術に関する一般教養を問う試験。
E資格がAI関連技術に関する理論を理解し、AIを実装できるスキルを問う試験。
という理解です。
詳細というか、正確な定義については、[日本ディープラーニング協会（JDLA）](https://www.jdla.org)のサイトをご参照ください。

## E資格の受験方法とJDLA認定プログラム
とういうわけで、ここからはE資格のことを中心に話を進めていきたいと思います。
E資格を受験するチャンスは年に2回あり、2月と8月に実施されています。
ただ、E資格を受験するためには、JDLA認定プログラムを受講して受験資格を得る必要があり、これがスキル的にも金銭的にもハードルが高いです。本試験自体は全て選択式なので、それほど実務能力が問われるという試験ではありません。
ですので、認定プログラムにお金を支払う勇気があり、認定プログラムを修了させる努力ができれば、E資格取得への道のりは8割くらい達せられるのではないかと思います。

## E資格受験までの流れ
E資格は試験を受けるための資格が必要となりますので、受験に至るまでのプロセスを紹介します。

1. 認定プログラムの説明会に参加する。（既に決まっているなら不要）
2. どの認定プログラムを受講するか決める。
3. 認定プログラムに申し込む。（お金を払う勇気が必要）
4. 認定プログラムの講座を受講する。
5. **認定プログラムの講座内で出される課題に合格する。**（Pythonの知識が必要）
6. **認定プログラム内の基礎力確認テストに合格する。**
7. **認定プログラム内の自作プロダクト課題を提出する。**
8. **認定プログラム内の修了試験に合格する。**（出題形式は選択式、試験時間は180分）
9. 本試験に申し込む。
10. 本試験を受ける。（出題形式は選択式、試験時間は120分）

※**太字箇所**が認定プログラム内で達成しなければならない部分です。

## ケーススタディ
私の場合、[AVILEN](https://avilen.co.jp)の認定プログラムを受講しましたので、それを例に説明していきます。
ここではAVILENを例に挙げていますが、自分に合う認定プログラムを是非探してください。

### 1. 認定プログラムの説明会に参加する。
繰り返しになりますが、E資格を受験するためには、JDLAの認定プログラムを受講し、修了証をゲットしなければなりません。
現在、JDLAから認定プログラムとして認可されているものは12種あるようです。
（2019年6月の時点では6種でした。）
[TECH PLAY](https://techplay.jp)からの案内でAVILENの説明会のことを知りました。説明会自体は無料でした。
説明会に関する案内の中で、何々に10数万円、何々に数万円みたいな記述があったので、説明会にも参加費が必要なのかなと思ってしまいましたが、そんなことはありませんでした。

### 2. どの認定プログラムを受講するか決める。
説明会に参加し、以下を見極めます。

 - 金額は？
 - 教室通いとオンライン講座のどちらが合っているか？
 - 講座の頻度に無理がないか？
 - 学習サポートのスタイルは即時対応してもらえそうか？
 - 全講座終了後、修了試験までのスケジュールに無理がないか？

#### 金額
AVILENは、必須受講の部分がオンライン受講であれば136,000円です。
任意受講の基礎講座が100,000円です。
基礎講座は過去の教室授業の動画のリンクが送られてきて、それで自習するというスタイルでした。

#### 教室通い？オンライン？
通える距離であれば多少の差額を支払ってでも教室通いの方が良いと思います。
私は地方暮らしでしたので、オンライン講座しか選択肢がありませんでした。

#### 講座の頻度
私は8月末の本試験でした。
認定プログラムの講座は6月開講と7月開講があり、私は7月開講を受講しました。7月7日(日)から8月11日(日)までの毎週日曜日に授業があり（全6回）、その授業に対する課題提出が必要でした。最後の授業が8月11日(日)でしたので、全ての課題の提出期限が実質的に8月13日(火)という過密スケジュールでした。
6月開講であれば1ヶ月スケジュールに余裕があるので、そちらの方が良かったと思います。

#### 学習サポート
SlackでのQ&A対応というスタイルでした。質問に対しては的確に答えて頂けましたが、即時性という点では若干不満はありました。
その点でも教室通いにアドバンテージがあるかなと思います。

#### 修了試験までのスケジュール
8月14日(水)の23時59分59秒が修了試験の完了期限でした。
上記同様、最後の講座から日がなかったこともありギリギリでの受験でした。

### 3. 認定プログラムに申し込む。
勇気を出してお金を払うのみです。
私は236,000円払いました。

- 任意の基礎講座：100,000円
- 必須講座をオンライン受講：136,000円

### 4. 認定プログラムの講座を受講する。
週1回程度の頻度で講座を受けることになると思います。
AVILENでは1回の講座は4時間でした。回によっては4時間で終わらず、30分くらい延長になることもありましたし、講義資料の後半は結構駆け足になることもありました。
教室で講座を受けている方は、講座後に質問をしている様子でしたので、さらに終了時間が遅くなっていたものと思います。

### 5. 認定プログラムの講座内で出される課題に合格する。
毎回の講座の中で、プログラミング課題が課せられます。正しい動きをするようになるまで再提出を求められます。
AVILENの場合は全6講座分の6個の課題が課せられました。
プログラミング言語は全てPythonでした。

### 6. 認定プログラム内の基礎力確認テストに合格する。
基礎力確認テストの出題科目は、

 - Python基礎
 - 機械学習基礎
 - 情報理論
 - 線形代数
 - 統計学

です。
オンラインで自宅で受験できます。
出題形式は選択式で、試験に制限時間はありませんが、合格基準が8割以上の正解だったか厳しめだったと思います。(すいません、うろ覚え。)
それぞれ過去の講座の動画リンクが送られてきますので、それを見て自習します。
自習後、修了試験の受験前までに各科目のテストに合格する必要があります。
講座の中で説明されている内容以上のことは出題されなかったので、ここは案外すんなりとクリアできました。
ただ、情報理論はエントロピーとかそんな話が出てきて、前提知識がほぼ無かったので苦戦しました。
線形代数と統計学は、高校〜大学1年2年くらいのレベル感ですが、入試のようなトリッキーな問題は出題されません。
あくまでも基礎の確認という感じなので、講座をちゃんと見れば何とかなります。


### 7. 認定プログラム内の自作プロダクト課題を提出する。
ニューラルネットワークを使用した何らかのソフトウェアを作成します。
私は「ゼロから作るDeep Learning」の手書き文字認識を改造し、アルファベット26文字の手書き文字認識プログラムを作成しました。
他の受講生では、LSTMを使用して株価予測をするといった別次元のプロダクトを作成している方もいらっしゃいました。

### 8. 認定プログラム内の修了試験に合格する。
- 毎週の講座で課される課題
- 自作プロダクト課題
- 基礎力確認テスト

これら全てに合格すると修了試験が受けられるようになります。
出題形式は選択式で試験時間は180分です。オンラインで自宅で受験できます。
認定プログラムが全6講座ありましたが、1講座=1科目という試験科目の割り振りとなっており、1科目の試験時間は30分でした。(30分×6科目=180分)
30分×6科目を連続して受ける必要があり、体力的にもかなりきついです。受験後にお尻が相当痛くなりました。
また、各科目で6割以上の正解が必要となっており、極端な例ですが5科目満点でも1科目が6割に達しないと不合格となります。
修了試験は1回のみ再受験が認められていますので、可能であれば修了試験期限の1週間前に1回目を受けるくらいの余裕があると良いです。1回目の修了試験に不合格でも再受験に向けて勉強する時間も取れますし。

### 9. E資格試験に申し込む。
修了試験に合格すると認定プログラムの主催者（私の場合はAVILEN）から申込コードが送られてきます。
そのコードを本試験の申し込みの際のどこかのタイミングで入力します。
また、受験費用として30,000円（税抜き）が必要です。

### 10. E資格試験を受ける。
本試験は指定の試験会場で受験する必要があります。
東京は受験する方が多く、試験会場が満席で試験を予約できないという状況になっていたようです。私は地方だったので、その辺の苦労はありませんでした。
試験会場はパソコンスクールで、指定されたパソコンを使用します。基本的に私物は持ち込めず、ペンやメモ用紙もパソコン脇に用意されているものを使用するように指示されました。
本試験の試験問題では、機械学習関係が結構出題されたなあという印象です。プログラミングでは、im2colとかcol2im、勾配降下法の最適化アルゴリズムが出題された感じです。案外、強化学習関係も出題されていたように思います。また、numpy.sum()のaxisの値がどちらが列ごとの合計値で、どちらが行ごとの合計値になるのかを良く確認しておいた方が良いです。
試験対策としては、認定プログラムで配布される資料や修了試験問題（3種類）、本試験の例題、「ゼロから作る～」の1巻・2巻を中心に勉強しました。最後の1週間は修了試験問題と本試験の例題を繰り返しやってました。

## 参考書籍
- [深層学習](https://www.amazon.co.jp/深層学習-Ian-Goodfellow/dp/4048930621/ref=sr_1_1?__mk_ja_JP=カタカナ&keywords=深層学習&qid=1580534278&sr=8-1) (出版社：KADOKAWA)
正直、この本はあまり身になっていないのですが、認定プログラムで教科書的な位置づけで扱われてますので、必要なところを適宜参照するという使い方ですね。

- [ゼロから作るDeep Learning](https://www.amazon.co.jp/ゼロから作るDeep-Learning-―Pythonで学ぶディープラーニングの理論と実装-斎藤-康毅/dp/4873117585/ref=sr_1_1?__mk_ja_JP=カタカナ&keywords=ゼロから作る&qid=1580534435&sr=8-1) (出版社：オライリージャパン)
この本は絶対買った方が良いです。
相当読みましたし、各種課題の対策としても大いに活用しました。
誤差逆伝播の理解にもスーパー役立ちました。
全勉強時間の50％はこの本に費やした気がします。

- [ゼロから作るDeep Learning 2 自然言語処理編](https://www.amazon.co.jp/ゼロから作るDeep-Learning-―自然言語処理編-斎藤-康毅/dp/4873118360/ref=sr_1_2?__mk_ja_JP=カタカナ&keywords=ゼロから作る&qid=1580534435&sr=8-2) (出版社：オライリージャパン)
この本も絶対買った方が良いです。
LSTM、GRUの順伝播、逆伝播は押さえておいた方が良いですし、それらの理解に役立ちます。
自然言語処理はほぼこの本のみ勉強しました。

- 認定プログラムの講義資料
こちらは書籍ではありませんが、本試験に向けた勉強の際に活用しましたのでリストアップしました。
各種計算式や関数の導出方法を動画での解説とともに確認しておくと良いと思います。

- 認定プログラムの修了試験問題と解説資料（各3種類）
こちらも書籍ではありませんが、本試験に向けた勉強の際に活用しましたのでリストアップしておきます。
各種計算式や関数の導出方法を問題を解きながら確認すると定着が早いと思います。

- 本試験の例題
こちらも書籍ではありませんが、本試験の勉強用に活用しました。
認定プログラムの第4講辺りで配布されました。

## 認定プログラム受講前の筆者のスペック
- C言語で組込み系のソフトウェア開発をしていた。
- ゼロから作るDeep Learningを発売直後（2016年10月頃）に購入するが、順伝播のところで挫折する。
- 物体認識関係のセミナーにいくつか参加していたので、物体認識の何となくの仕組みは知っていた。
- G検定は取得済みだったので、CNNとかLSTMとかの用語は知っていた。
- 機械学習の知識はほぼゼロ。
- Pythonは基本的な文法が分かっている程度でnumpyやpandasはかじった程度。
- 情報理論は何のこっちゃ。
- 線形代数は行列の掛け算が分かるくらい。固有値とか固有ベクトルは何のこっちゃ。
- 統計学は高校レベルの確率の計算ができていたのと、分散と標準偏差の計算式は知っていた。ベイズ統計とかの大学レベルの話は何のこっちゃ。

## E資格受験後の感想
"E資格を取った直後にGAFAからスカウトが！"とは当然なりません。（笑）
ただ、結構な試験範囲と結構な課題提出をクリアしたという自信には繋がりました。少なからずAIに関する知見があるという証明にもなりますし。
認定プログラムの授業は楽しかったですね。新しいことを頭の良い人たちから教わっているということに非常にワクワクしました。
認定プログラムの受講開始が遅くてスケジュール的にはギリギリでしたが、2019年は運良くお盆休みが9連休でした。その9連休の間、1日10時間以上勉強時間を確保することができたので、それも合格できた要因と思います。
自分でもがんばったなと思えるし、それが結果に繋がったという経験が何よりの財産になりました。
受験しようかどうか迷っているという方は、まずは認定プログラムの説明会に参加してみてください。

## 参考サイト
- [日本ディープラーニング協会](https://www.jdla.org)
- [AVILEN](https://avilen.co.jp)
- [TECH PLAY](https://techplay.jp)