第1回 AI実装検定【A級】に合格したので色々まとめてみた

:warning: 以下の内容は2020年3月当時の内容です。[参考](https://kentei.ai/a)の情報からも分かる様に試験運営元が変わったことの影響で2022年から受験料が高額な試験となります。。。:scream: :scream_cat:

[日本ディープラーニング協会主催のE資格](https://www.jdla.org/business/certificate/?id=certificate_No01)対策の[JDLA認定プログラム](https://www.jdla.org/business/certificate/?id=certificate_No04)を提供していることで知られるStudy-AI株式会社がAI実装検定実行委員会を立ち上げ、E資格にチャレンジするためのスキルを身に付ける資格として「[AI実装検定](http://kentei.ai/)」を開始しました。受験してみたところ:cherry_blossom:無事合格:cherry_blossom:しました。故に、記憶が薄れないうちに実際に取り組んだ試験対策等の情報をdumpしておこうと思います。

<details><summary>実際に届いた合格通知のメール</summary><div>

Pythonの問題は何かケアレスミスをしてしまった様ですね。。。

<img width="752" alt="合格通知" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/f6d3d58b-d581-02aa-fb41-9cb87eb03fb7.png">

</div></details>

この資格は[過去記事](https://qiita.com/y-vectorfield/items/36fc6d773f01ae33cd2c)を取り上げて下さった@kazzy0099 さんの記事[【随時更新予定】データサイエンス・機械学習関連資格まとめ](https://qiita.com/kazzy0099/items/d423491bda6fedbce196)で見つけて受験に至りました。随時更新とのこと。今後の更新も楽しみにしたいと思います。

# 受験の動機
以下の様な動機で受験しました。

* 機械学習、Deep Learningに関心が有り、勉強しているため
* 将来的にE資格を受験したいと思っているため
* 実装にスポットライトを当てた資格を受験することで実装力強化に繋がると思ったため
* 資格取得が趣味だからetc...

# AI実装検定とは？
詳細は以下のリンクに記載されています。

* [AI実装検定の紹介](http://kentei.ai/introduction)
* [検定レベルの詳細 A級](http://kentei.ai/introduction/detail)
* [2020年03月21日(土) 実施試験受験要項](http://kentei.ai/application/requirements/2020a1)

http://kentei.ai/ に試験の位置付けを略図にした物が掲載されていました。

![AIexam.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/c876b3fd-c9c9-eb09-9c36-4eb60557e09e.jpeg)

今後A級以外の級も策定される可能性が有りますが、今回はA級のみの募集でした。また、この試験は<font color="RED">自宅のPC上で受験できる試験</font>です。数学、プログラミング、ディープラーニングの各々の分野について20題ずつ計60題出題されます。試験時間は60分であるため、じっくり考える余裕は有りません。合格点については試験回毎に発表される合格点に合計点が達している必要が有る様です。受験料は￥3,500.です。最近は高額な受験料の資格試験が多い中、良心的な価格設定です。(あくまで筆者の見解）

:warning: <font color="RED">AI実装検定 A級に合格＝E資格の受験資格ではありません。別途受験資格要件として[JDLA認定を受けた研修](https://www.jdla.org/certificate/engineer/#certificate_No04)の受講が必要です。</font>

# 2020/3/30追記 合格率・合格点について
[ご報告：AI実装検定【A級】第1回実施結果](http://kentei.ai/info/1319)より、合格率は約8割です。合格点は公表されていませんので断言できませんが、平均得点率を見る限り8割以上は欲しいところかもしれません。

# 試験範囲
[検定問題サンプル](http://kentei.ai/introduction/subjecttrend)が試験の出題範囲も兼ねています。全60問の構成比についての言及も有ります。

# 試験対策
実際に試験対策に使用した教材を紹介したいと思います。勉強期間としては断続的だったので正確なことは言えませんが、ある程度ニューラルネットワークやDeep Learningに関する知識が有るなら２週間ぐらいで公式教材の動画を2周出来るのではないかと思います。

:warning: 知識ゼロから合格を目指す場合、それなりの学習期間は必要だと思います。(特に数学など)
:warning: 筆者は理系で、NNやDeep Learningは院時代の授業や研究で少しかじった程度の知識です。

## 公式教材

![bambi.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/9e53374f-cde5-5416-5d47-b0a57053d6ac.jpeg)

[AI実装検定公式教材](http://kentei.ai/introduction/howto)に掲載されています。今回は期間限定で￥3,000.[^text]でした。講師の解説無し(動画解説＋ソース付き)で、受験エントリー者のみ購入が可能な教材です。今後動画解説が付いた正式版がリリースされる様です。価格は￥45,000.となるとのことです。今回の教材の動画は6月30日まで限定で視聴が出来る様です。

:warning: <font color="RED">この教材は主に試験範囲のAI,プログラミングの対策教材となります。数学や公式教材未収録の範囲は別途自己学習による対策が必要です。</font>

### 公式教材概要
http://kentei.ai/introduction/howto より

★Bambiβ-Taurus(Section1 基礎編)
Pythonの基礎やパソコンの操作から進めたい方はここからスタート。ニューラルネットに必須な関数の描画や数値計算に必要なライブラリ、NumpyやMatplotlib の扱いも学ぼう。

★Bambiβ-Gemini(Section2 基礎編)
ニューラルネットワークの順伝播の基礎はここからスタート。

★Bambiβ-Cancer1(Section3 応用編)
ニューラルネットワークの逆伝播。ここまで踏み込めば初級者は卒業。

★Bambiβ-Cancer2(Section3 応用編)
ニューラルネットワークの連鎖律。ここが理解できていれば中級者。

★Bambiβ-Leo(Section4 応用編)
中間層を導入した更新式の実装です。ソースコードも配布するので実際に手を動かして「習得」してください。ここが出来ればかなりの実力者です。

★Bambiβ-Virgo1(Section4 応用編)
手書き文字データでディープラーニングを実装します。ここまでできれば中級者は卒業。この先独学でもディープラーニングを学んでいけるレベルに到達することができます。

★Bambiβ-Virgo2(Section5 応用編)←<font color="RED">Section5の内容は試験範囲外ですが、興味深い内容なのでじっくり取り組む価値有り</font>
手書き文字データでディープラーニングを実装します。ここまでできれば中級者は卒業。この先独学でもディープラーニングを学んでいけるレベルに到達することができます。為替データを例に,5つの言語とフレームワークで実装します。（Chainer,NumPy,PyTorch,TensorFlow ,Keras）為替データはRNNという時系列を扱う概念も登場し、Bambiの世界を超えて上級の域に入ります。

## サンプル問題
公式サイトの[検定問題サンプル](http://kentei.ai/introduction/subjecttrend)の問題も解きました。答えが無かったので、参考までに略解を作成しました。

### AI
* 入力層と出力層: (ア) 入力
* 順伝搬の計算: 小問1 カラーコード, 小問2 27
* 行列の掛け算: (ク) 2, 8
* バイアス項の導入: 選択肢1

### プログラミング
* Numpy 1問目: 選択肢1(但し、wとｘが入れ替わっている誤植有り)
* Numpy 2問目: (ウ)
* Pandas: read_csv
* scikit-learn: trainデータとtestデータに分割している

### 数学
* 数列と行列 1問目: 問題文ミス？
* 数列と行列 2問目: ア:10 イ:22
* 数列と行列 3問目: ア:6 イ:10 ウ:14

## 市販の書籍
[ニューラルネットワーク自作入門(Tariq Rashid 著, 新納 浩幸 監訳)](https://www.amazon.co.jp/Tariq-Rashid/dp/4839962251)

Make Your Own Neural Networkという書籍の日本語版です。

![makenn](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/3fecba95-7fd9-ba37-72e9-ac90061b7767.png)

公式教材をやってから改めて読み返してみると、この書籍がいかに理論理屈の説明の分かりやすさに腐心し、厳密さを失わない様にしつつ、かみ砕いた説明で読者に分かり易い説明でニューラルネットワークを解説した優れた書籍だと改めて実感しました。この書籍は邦訳版なので原書も読んでみたいと思います。

# 実際受験してみての感想
実際の試験は数学、プログラミング、AIの順に20題ずつ出題されます。最初の数学では主に線形代数学の知識が問われます。最初は面食らってしまうかもしれませんが、60分で60題というあまりじっくり考えて解く時間の無い試験である為、時間が掛かりそうな計算問題などは潔く後回しにするか、捨てるという選択も必要になります。プログラミング問題では範囲にscikit-learnと有ることから結構な割合で出題されていました。AI部分は公式教材と粗同じと言う感じの出題でした。(勾配降下法大好き)E試験対策を意識した資格だからかもしれませんが、試験ページでも言及が有る様に実装や理屈に重きを置いた試験という印象を強く受けました。後、計算問題は手で書いて計算をして解ける様に紙とペンは用意しておく方が良いでしょう。筆者は数多くの資格試験を今まで受験しましたが、自宅で受験する試験は初めて受験しました。今のご時世にはピッタリの形式やもしれません。

@PoppeDwarf さんの[AI実装検定の感想と備忘録](https://qiita.com/PoppeDwarf/items/bf548f53b92ed982867f)という記事が投稿さていました。この記事の筆者の方も私とほぼ同じことを感想で述べています。

:warning: 試験システムへの事前ログイン・動作確認依頼のメールが試験日の数日前に送られてきます。事前に正常にログイン、動作するか確認することをお勧めします。加えてそれに先立ち<font color="RED">唐突にStudy-AIから学習コンテンツ利用ページとログイン情報[^studyai]が送付されてきますが、試験システムへのログイン情報です。</font>このご時世ですから最初はスパムかと思って開くのを躊躇してしまいました。

# まとめ
AI実装検定 A級についてまとめました。今回改めてNeural Networkについて再学習してみて自分の理解が甘い点を再確認出来たという点でこの受験は大変意味の有る物だったと思います。今後も機械学習、Deep Learning、そして理論が難しく理解が追いついていない量子コンピュータ、量子機械学習など最新のトピックを継続的に学んでいきたいと思います。昨年8月から始めた記事投稿はこの記事で20報目となりました。今後も積極的な情報発信に努めたいと思います。

# 2020/4/13追記 合格証が届きました
合格証が届きました。ディープラーニング実装士の称号を授与とのことです。資格を取って称号を貰ったのは生まれて初めてかもしれません。

![合格証.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469079/c9a76cc4-94c0-c319-2627-17a034b2516a.png)

合格ロゴも2種類添付されていたのでQiitaのアイコンは本日から合格ロゴの画像に差し替えることにしました。

# 今後の目標

* S級が登場したら受験してみたい。
* ゼロから作るDeep Learningの再読
* ゼロから作るDeep Learning2の読了
* 線形代数を再学習(主に機械学習で必要な部分だけ)
* Tensor Flow, PyTorchでモデル実装のマスター
* E資格受験要件を確保
* Make Your Own Neural Network(英語の勉強も兼ねて)
* 量子コンピュータを作る本が出版されたら作ってみるetc...

[^text]: 2回目用の限定教材も￥3,000.で販売されています。こちらも受験エントリー者のみ購入可能で視聴期間も限定期間になっています。

[^studyai]: メールの件名は「AIを学ぶコンテンツ（Study-AI）からのお知らせ」です。