JDLA　E資格（2019年第１回）受験報告（仮）

2/23に<a href="https://www.jdla.org/business/certificate/">JDLA Deep Learning for ENGINEER 2019 #1</a>を受験してきたのでその報告です。この試験は今回で通算２回目、情報も少ないので、少しでも今後受験される方の参考になれば幸いです。

# 1.E資格とは
## 1.1　概要
㈳日本ディープラーニング協会が定義する「ディープラーニングの理論を理解し、適切な手法を選択して実装する能力を持つ人材に必要なスキルセット」を習得しているかどうかを測る試験。なお、このスキルセットの明確な定義・範囲は本稿執筆時点では公開されていません。（シラバスは公開されていますがここに明記されていない内容も出題されます）

## 1.2　試験方式
会場で受験するCBT方式。<a href="https://cbt-s.com/">CBTS</a>経由で申し込み・受験を行う。受験会場はパソコン教室など。試験時間120分。

## 1.3　実施頻度
年2回。次回は8/31予定。以降は未発表。
「日進月歩する技術であることから、検定・資格実施年毎に実施年号を付与する。」とされていますが、名前だけじゃなくて試験範囲とかいろいろ毎年変えるんじゃなかろうかと思っています。

## 1.4　受験料
32,400円（税込）、 学生 21,600円 (税込)

## 1.5 受験資格
<a href="https://www.jdla.org/business/certificate/?id=certificate_No04">JDLA認定プログラム</a>を試験日の過去2年以内に修了していること。
G検定の合格は要件ではありません。

## 1.6　出題形式
- 多肢選択式。今回は大問36問、各大問あたり小問1～8問、小問数計107問。
 - ディープラーニングの実装に必要な数学・（ニューラルネットワーク以外の）機械学習の知識を問う問題。
 - ディープラーニングの理論およびモデルに関する知識を問う問題。
 - pythonで実装を問う（一連のコードの穴埋め）問題。<br>なお、TensorFlow等のフレームワークは使わないがnumpyは必須。

## 1.7　合否通知・合格ライン
- 試験日から10日前後で合否がメールで通知される。今回は3/4（月）の予定。
- 合否と各分野（応用数学、機械学習、深層学習）の得点率が通知されるらしい。
- 前回の合格率は7割弱。60%ぐらいの得点率で合格できた方もいたらしい。

## 1.8　公式教材等
- G検定公式テキストに相当する教材は今のところありません。
- <a href="https://www.jdla.org/recommendedbook/?id=recommendedbookAnchor_No03">G検定合格者推薦図書</a>のうち「実装」「数学」「理論」の項で挙げられているものはE資格を目指す人にもおすすめ。
- JDLAが非公式に（？）作成して認定講座向けに配布した例題集があります。なお有志の手によって数々の誤植が発覚している模様。

## 1.9　E資格は取得するべきか？
下記の理由により、<b>現時点では</b>、取得する意味はあるが価値はないです。<a href="https://www.jdla.org/business/certificate/?id=certificate_No05">G検定も同じです</a>。
※（3/1追記）　G検定については、社員に取得を推奨している企業が産業界にも存在するようです。（2018/7/20　日経新聞より）手当や昇進に反映されるかは不明ですが・・・

- 「ディープラーニングを勉強するのに何からどう手を付けていいかわからない人」や、<br>「Keras等でなんとなく実装できちゃってるけどパラメーターチューニングやモデルの挙動の説明ができなくて困ってる人」<br>が理論をある程度体系的に効率よく学ぶのにはよい。
- すでに現場でディープラーニングをバリバリ使っている諸先輩方の場合は、認定講座で教える内容は知ってることばかりだろうし、↓の理由もあって敢えて取りに行く必要性は絶無。
- 合格したからと言って士業のように特定の業務が解禁されるわけでもなく、昇給や転職で有利になったという話も寡聞にして聞かない。JDLAも会員企業もE資格保有者に対するインセンティブを何も用意していない（少なくとも公表されていない）。
- というわけで、E資格を目指して知識をつけることには大いに意味があると思うが、認定証自体には3万円の受験料に見合う価値（見返り）はない。

# 2.JDLA Deep Learning for ENGINEER 2019 #1 受験報告
ここからは、今回出題された問題についてのレポートです。大問ごとにトピックなどを思い出せる範囲でご紹介します。カッコ内は小問数です。全問網羅はしていますがうろ覚えのところもあります。ご容赦ください。

### 1.行列分解(1問)
行列分解に関する問題です。固有値分解・特異値分解だけでなく、NMF(非負値行列因子分解)やLSI(Latent Semantic Indexing)に関する選択肢もありました。

### 2.特異値分解の計算(1問)
3×2の行列を特異値分解した行列のマスクされた部分に入る数値を答える問題。試験前にペンとA4の計算用紙１枚が配られるのでそれを使って計算します。

### 3.ノルム(2問)
ノルムの定義と式、L2ノルムの別名を問う問題。

### 4.確率分布(3問)
正規分布の応用版（等分散正規分布？）の式などに関する問題。

### 5.情報量(5問)
自己情報量・平均情報量・エントロピー・KLダイバージェンスなどに関するわりと基礎的な問題。

### 6.サポートベクターマシン
SVMというよりカーネル法の理論・数式を問う問題。数学的理解を深めておかないと解けないものもありました。

### 7.ロジスティック回帰(4問)
シグモイド関数等に関する理論と実装に関する問題。

### 8.主成分分析（3問）
PCAの性質に関する問題。

### 9.k-means++(5問)
k-meansとの違い、実装にあたっての乱数の設定の仕方など。

### 10.多層パーセプトロン(8問)
基本的なMLPの理論（順伝播・誤差関数・逆伝播等）と実装に関する問題。認定講座の修了試験に合格した人なら問題なく解けるはず。

### 11.MatMulレイヤの計算グラフ(3問)
「例題」に収録されている問題の類題。出力＝入力・重み＋バイアスの計算グラフを使った、逆伝播の数式と実装に関する問題。

### 12.正則化(3問)
L1・L2の正則化の違いや正則化項を加えた誤差関数の勾配に関する計算式・実装等に関する問題。

### 13.DropOut(3問)
ドロップアウトの性質（アンサンブル学習との関係等）に関する理論と実装の問題。実装では乱数とdropout_ratioを使ってDropOutするユニットを選択する箇所が問われました。実装部分は「例題」に収録されている問題の類題。

### 14.勾配降下法(3問)
RMSPropの理論・数式とAdamの実装に関する問題。

### 15.バッチ正規化(3問)
BatchNormalizationの特徴・正規化の計算方法に関する問題。

### 16.畳み込みニューラルネットワーク(2問)
CNNの数式と特徴に関する問題。1問目が数式の問題だったのですが、式中のm,n,i,jなどの小文字が指すものが定義されておらず、与式が何を意味しているのかさっぱりでした。思わぬところが勉強不足でした。

### 17.プーリングとim2col(4問)
プーリング前のテンソルサイズおよびプーリングサイズ・ストライド幅が与えられたときのプーリング後のテンソルサイズを計算する問題や、im2colの実装におけるテンソルのreshapeに関する問題。実装部分は「例題」に収録されている問題の類題。

### 18.GoogLeNet(1問)
GoogLeNetの特徴（1×1の畳み込みに次元削減の効果があるか、など）に関する問題。一部選択肢は「例題」に収録されている問題のものでした。

### 19.ResNet(3問)
ImageNetとCifer-10を用いた画像認識タスクについて、ResNetとほかの手法を比較。横軸にエポック数・縦軸に誤認識率をとったグラフを読んで、異なるモデル同士の比較・同じモデルで層数を変えたときの変化等の考察する問題。

### 20.物体検知(8問)
IOUの計算方法や、mAP(mean Average Precision)、NMS(Non-Maximum Suppression)に関する問題、Faster-RCNN・SSDの特徴・YOLOとの比較などに関する問題。
まさかこんなに出題されるとは思いませんでしたorz

### 21.GRU(4問)
GRUのゲート名やLSTMとの比較、実装（全ゲートの重みパラメータをまとめて更新するための重み行列のサイズの設定）に関する問題。「例題」にはLSTMに関する問題がありましたが、そのGRU版です。

### 22.双方向RNN(4問)
双方向RNNの正しい模式図を選択する問題および双方向RNNの性質と実装（内容は失念しました、すみません）に関する問題。

### 23.Google Neural Machine Translation(5問)
GMNTの模式図が与えられ、その性質（GPUの性能を生かして並列計算するために施されている工夫など）や組み込まれているAttentionに関する問題。まさかこんなに(ry

### 24.生成モデル(3問)
条件付確率に基づく識別モデルと生成モデルの違い等、生成モデルの基礎知識を問う問題。「例題」に収録されている問題の類題。

### 25.オートエンコーダー(4問)
「不完備な自己符号化器」などの概念や数式、情報検索への応用（セマンティックハッシング）等に関する問題。Goodfellow本の14章がしっかり勉強できていた方は比較的簡単だったでしょう。なお私は(ry

### 26.GAN(4問)
GeneraterとDiscriminatorの学習が進んだときにG(z)やD(G(z))がどう変化するか問う問題や、GANの派生モデルとその特徴に関する問題。

### 27.方策勾配法(3問)
方策勾配法の式や性質に関する問題。

### 28.DQN(3問)
Experience Replayの特徴や、Target-Q-Networkの固定の仕方（２つある価値観数のどちらを固定するか）等に関する問題。

### 29.～36. その他(1問づつ)
以降は大問1つにつき小問1つ。『次の記述の中から正しいもの（もしくは誤っているもの）を選べ』となっています。

29.Holdout法とk分割交差検証法。「例題」に収録されている問題ほぼそのまま。
30.勾配爆発、鞍点の性質
31.ReLU、AdaGradの性質
32.半教師あり学習、マルチタスク学習等の性質
33.回帰結合型ネットワーク、EchoStateNetwork等の性質
34.Seq-to-Seqの模式図
35.Conditional Ganの性質
36.汎化誤差（教師データ・テストデータとの関係、過学習との関係等）

# 3.まとめ
思い出せる限りの情報をまとめてみました。
コメントいただければ随時追記・修正いたします。
ここまで読んで下さりありがとうございました。

~~では次回受験される方は8/31の試験でお会いしましょう（泣）~~

(3/6追記)なんとか合格してました。次回の受験は未定です。スキルを維持するには2年に1回ぐらいは受けた方がいいのでしょうが・・・