文系学部出身、プログラミング歴1年半の会社員がE資格に合格した話  


# 文系学部出身、プログラミング歴1年半の会社員がE資格に合格した話  

## E資格とは

- 概要
  JDLA(日本ディープラーニング協会)が運営するAIに関する資格試験。筆者が受験した試験は第2回 E資格試験だった。※2019年8月31日開催

- 受検資格
  JDLA認定プログラム※を試験日の過去2年以内に修了していること ※認定プログラムに関しては後述
- 費用
    - 受験料 一般：32,400円（税込）、学生：21,600円（税込）
    - 認定プログラム受講料 ¥486,000 (受講プログラムにより変動)
    - [JDLAの公式ページ](https://www.jdla.org/business/certificate/)

## 認定プログラム
- JDLAが認定しているプログラムは11講座ほどあり、どれを受講しても良い。
[JDLA認定プログラム一覧](https://www.jdla.org/business/certificate/?id=certificate_No04)
受講スタイルはプログラムによりけり。筆者はハンズオンで学習ができ、通うスタイルのプログラムを受講した。
受講した認定プログラム→[現場で潰しが効くディープラーニング講座](http://study-ai.com/jdla/)
- 受講日程
    - 4月~7月の期間中に２週間に1回の講義で実施した。筆者は応用数学・機械学習も受講したため全6回だった。ディープラーニングの講義は全4回だった。
- 課題
    - 講義後に配布される修了テストを実施し、合格点以上で合格。全ての講義の修了テストに合格するとE資格の受検資格を得ることができる。
- 感想
    - 良かった点
        - 授業の進捗が受講生に合わせて進む。講義中に確認をしながら進めるため、わからない箇所やエラーで詰まっている時には解決して進むことができる。
        - 応用数学・機械学習・深層学習で先生が異なり、応用数学・機械学習の先生の資料や説明はとてもわかりやすく数学ⅠAⅡBまでしかやったことのない筆者にとってはすごくよかった。
    - 直してもらいたいと思った点
        - 講義資料がわかりにくい。CNNやRNNのような代表的なモデルの解説はされているものの、E資格で問われるような今まで有名になったモデル(GoogleNetやResNetなど多数あります)の解説は無し。コードの解説や数式の説明があっさりとされていて、筆者は参考図書を中心に学習した。
        - 自分で実装する機会が少ない。講義中で扱うコードはすでに全て書かれており、手元のPCで実行するのみ。一部コメントアウトの付け外しはあるがその程度。先生が前で写しているものを見るのと対して変わらなかった。
        - 配布される練習問題の質が低い。解答が間違っていたり、解説がないものもある。解答の間違いは解説動画などで訂正はあるが問題配布と動画の公開にタイムラグが長かったため苦労した。

## 学習方法

- 応用数学
    - 講義の復習とテストの解き直し。[人工知能プログラミングのための数学がわかる本](https://www.amazon.co.jp/%E4%BA%BA%E5%B7%A5%E7%9F%A5%E8%83%BD%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE%E6%95%B0%E5%AD%A6%E3%81%8C%E3%82%8F%E3%81%8B%E3%82%8B%E6%9C%AC-%E7%9F%B3%E5%B7%9D-%E8%81%A1%E5%BD%A6-ebook/dp/B079TLRZ8K)を必要な箇所に限定して読み込んだ。
    - ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422261/23c39988-d94d-4f2c-18f2-258d1e653ba8.png)

- 機械学習
    - 講義の復習とテストの解き直し。
    - [Pythonで動かして学ぶ！ あたらしい機械学習の教科書](https://www.amazon.co.jp/Python%E3%81%A7%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81-%E3%81%82%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E4%BC%8A%E8%97%A4-%E7%9C%9F/dp/4798144983)
 
　　　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422261/819fd75e-a7d3-1f3c-ca6c-e3e7b444696f.png)

- 深層学習
    - 筆者が受講した認定プログラムでは手を動かすことが少なかったため、自主学習で実装をすることにした。認定プログラムで配布されたコードを使用したりもしたが、基本的には[ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装(https://www.oreilly.co.jp/books/9784873117584/)と[ゼロから作るDeep Learning ❷ ―自然言語処理編](https://www.oreilly.co.jp/books/9784873118369/)
    を参考に実装した。この本は本当に良書で大変お世話になりました。(無かったら絶対に落ちてた。)

　　　　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422261/7e0c8a02-7ee8-c89c-4dc3-733a43371aac.png)    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/422261/58544392-bee3-da85-3bcf-e37b7bc11d0e.png)

- 学習時間 ※ 4/10~8/30
    - 講義 6時間*6 計36時間
    - 自主学習 300時間くらい
　　
- 出題範囲
    - [シラバス通り](https://www.jdla.org/business/certificate/?id=certificate_No06)だった。次回以降は環境系が追加されるよう。時事的なモデルの問題が出されていた気がする。(自信はあまりない。)

- 当日の問題のレベル
    - 応用数学、機械学習、深層学習共に基本的な問題は出題されていた。応用数学なら固有値・固有ベクトルの求め方や機械学習では学習データの分割法、深層学習なら３層NNの順伝播・逆伝播など。
    - 練習問題として配布されていた問題がそのまま出ているものが(1,2問くらい)あり、全て選択肢形式なので答えることができた。
    - 深層学習の問題では各モデルや手法によって大問が用意される形式で全く知らないものが出題されるとかなり厳しい。筆者は当日大問1つがわからず結構焦りました。

- 今後について
    - モデルの実装はNumpyのみで行ってきたため、KerasやChainer,sckit-learnなどを使う機会はほとんど無かった。今後便利なモジュールを使って実装していきたいと思いました。

かなり殴り書きになりましたが、読んでくださりありがとうございます。
随時改編していきますので、指摘事項などありましたらコメントいただけると幸いです。