ぶっきーの超・雑記ブログ

「より良く生きる」を模索する。


JDLA E資格の受験体験記(試験問題・勉強法・難易度・感想など)

こんにちは、ぶっきーです。

 

JDLAという人工知能関係の団体が提供している資格「JDLA Deep Learning for ENGINEER 」、通称「E資格」を2019/2/23(土)に受験してきました。

運よく合格してました。

 

今回はその体験記です。

今後受験を考えている方々の参考になるかと思います。

最後の方は書くのがめんどくさくなってます。

 

E資格を受けての感想

まず総括代わりの感想を。

 

「受けて良かったけど、受けなくても良かったな」

「時間を巻き戻せたら、多分受けないんじゃないかな」

 

これが正直な気持ち。

理由は以下。

 

受けて良かったと思う理由

1.勉強の機会が得られた

逆に言えば、E資格なんて受けなくても自分を追い込んで勉強できる人は受けなくて良い。

ぶっちゃけこの記事で紹介するE資格対策の本を独学すれば、E資格合格レベルのスキルは身に付きます。

それでKaggle(※)にでも取り組んで実績を積んだ方が機械学習エンジニアとしては実りが多い気がします。

 

※Kaggleとは、機械学習エンジニアやデータサイエンティストが賞金を懸けて課題に取り組む海外のサイトです。機械学習を一通り勉強した人は必ず登録しておきましょう。

 

2.認定講座の一部内容が秀逸だった

僕が受講した認定講座はジョブカレ

E資格取得希望者向けパッケージプランというオンライン学習コースを選びました。

 

スクールに通うのではなく動画を視聴するタイプなので自分のペースで学べます。

 

このコースには3つの講座(Python&数学、機械学習、深層学習)が含まれていますが、その中でも特に機械学習講座が秀逸でした。

「どのアルゴリズムはよく使われる」「現場ではこのような説明ができないといけない」といった感じの現場感覚を頻繁に交えて教えてくれます。

 

Python&数学と深層学習の講座は可もなく不可もなくといったところ(ぶっちゃけ本を独学すれば身に付くような内容だった)。

まあとにかく機械学習講座が良すぎた。

 

受けなくても良かったと思う理由

1.受験するための金額が高い

ご存知の通りE資格は認定講座を受講しなければ受験できません。

僕の場合は認定講座の中でも比較的安いジョブカレで約20万円、受験料で3万円強、本代で約1万5千円、全部合わせて約25万円かかりました。

これをすべて自腹は結構痛かったっす。

 

2.E資格を取得したところで、年収が上がるか不明

E資格は僕が受験した2019年の段階では認知度の低い資格なので、持っていてどの程度のご利益があるかは完全に未知数。

「Kaggleで入賞しました」みたいな実績の方がまだ就職市場では評価される気がする…(2019年時点での個人的な感想)。

ぜひともJDLAには頑張ってもらってこの資格の価値を高めていってほしいところ。

 

なおこの記事ではE資格や認定講座に対して結構批判的なコトも書いてますが、それは上述のように「頑張ってE資格を普及させてほしい」と願う気持ちがあるからですのでお気に障った関係者の方がもしいらっしゃったらご容赦ください。

僕も「流石E資格取得者!」と言われるように頑張りますので。

 

E資格を受けるか迷っている人へ

というわけでE資格を受けるかどうか迷っている人に僭越ながらアドバイスすると、勉強の機会が欲しい&お金があるならば受けてみれば良いのではないでしょうか。

正直積極的におすすめはしません。

 

また、認定講座でしか得られないもの、あるいは認定講座を受けることで効率的に学べるものも間違いなくあります(上述したジョブカレの機械学習講座で得られる現場感覚とか)。

 

お金に関しては会社から出してもらえるパターンもあるでしょうし、ジョブカレを使って転職すれば受講料の分だけは返金してもらえたりもするようです。

この辺の制度を利用できるのならカジュアルに受験してみても良いのでは?

 

「資格なんていらん。人工知能/機械学習のスキルだけよこせ」という方は後述するE資格対策用の本を独学するのが最もコスパが良いと個人的には思います。

もちろんKaggleが楽しい人はそっちに集中するって選択肢も全然アリだと思います。

日本ローカルのE資格とは違い、Kaggleの実績は全世界でアピールできますし!

 

E資格の難易度は?

正直そんなに難易度は高くないです。

認定講座修了者でないと受験資格がないとは言え、受験者の7割弱が受かっているので。

 

認定講座も普通に勉強していれば普通に修了できます。

ジョブカレの場合は機械学習講座の試験が少し難しかったかな、程度でした。

 

勉強開始前の僕のスキル

  1. 数学:微積、線型、確率統計は分かる(理系院卒程度)
  2. プログラミング:FORTRANを数年
  3. Python:0年
  4. 機械学習/人工知能の知識:『深層学習(岡谷)』を読んだことアリ

 

勉強法

ジョブカレの各講座をメインに勉強しました。

各講座の最後にある試験をクリアしてすべて修了しないとE資格の受験資格は得られないので注意です。

 

以下、各講座での勉強法。

 

Python

2019年元旦からPython入門者向けの本を独学開始。

ところどころ手を動かしながら3日程度で終了。

ジョブカレのPython講座は2倍速で1回流し見した程度。

 

プログラミング経験者ならPython未経験であってもこの程度の勉強で良いのではないでしょうか。

以降の講座でもPythonはコーディングのたびに出てくるので、この時点で習熟してなくても大丈夫ですよ。

 

数学

ジョブカレの数学講座の資料と講座2倍速をまず流し見。

理系だったので数学にあまり不安は無いつもりだったが、自分が知らない内容が講座の中で結構出てきたので、穴を埋めるような形でネットで調べながら勉強。

参考書などは特に購入せず。たまに学生時代の統計や線形代数の本を参照したくらい。

 

修了のための試験問題は簡単でした。

 

文系出身の方はもっとじっくり講座を利用して勉強するか、機械学習/人工知能向けの参考書(後述)を1冊買って腰を据えて取り組むべきだと思います。

 

機械学習

機械学習を学ぶこと自体が初めてだったのと講座の内容が秀逸だったこともあり、2倍速で3周も視聴。

資料は6周くらい読んだ。

特に参考書などは使わず。たまに『深層学習(岡谷)』や『Python 機械学習プログラミング(S. Raschka)』を参照したくらい。

 

1月30日頃に修了。試験問題はコーディングが半分近くあり、時間的に結構厳しかったです。受験の時は気合を入れて臨まないと普通に落ちる人もいると思われます。

再試験にはお金がかかっちゃいますし、準備万端で臨んでください。

 

深層学習

資料の作りが若干雑でガッカリしながらも講座を2倍速で2周、資料を10周ほどして2月10日頃に修了。試験問題自体は簡単でした。

 

こうしてジョブカレの全ての講座を修了して安心したのもつかの間、「E資格合格のためには認定講座の内容だけでは足りない」という噂をこのタイミングで耳にして焦る。

これはジョブカレの内容が他の講座と比べて劣っているとかではなく、どの認定講座もE資格の範囲を完全にカバーできてはいないらしい…

 

この時点でE資格本番まで残り2週間弱。

 

急いで『深層学習(Ian)』を手に取るも分厚い上に日本語が読みにく過ぎて投げる。2日ほど浪費。

 

ワラにもすがる思いで『ゼロ作1・2』(後述)を購入、2/23のE資格試験本番まで必至で取り組みなんとか2周読む。

本当は読みながらコーディングもしたかったが時間が無さ過ぎてできず。

 

僕が行った勉強法は以上。

 

E資格試験本番の雰囲気

某テストセンターで受験。

TOEFLとか就活の筆記試験(SPIだっけ)とかを受けるあそこです。

 

漢検などの他の資格を受ける人たちも同じ会場で同時刻に試験開始となります。

だから他の人が速攻で終わっても焦らないように!

 

どんな問題が出たか

覚えている範囲でメモしておきます。

本当にメモ書き程度なので参考まで。

 

・特異値分解
実際は固有値さえ出せればOKだった。
でも特異値はAA.Tの固有値の平方根になることを忘れずに。

 

・ノルムの一般式

 

・KLダイバージェンス
KLダイバージェンスと交差エントロピーの関係とか、KLダイバージェンスの派生とか押さえておきたい。

JSダイバージェンスなるものも選択肢に出てきた。

 

・情報エントロピーの定義

 

・正規分布の定義
どこにマイナスが付いてるかとか、どこが2乗になってるかとか忘れがちなので注意。

 

・im2col
第1回E資格試験でも問われたらしいヤツ。
今回はcol2imの方が出るかと思ったけど外れた(でもそのうち出ると思うので勉強しとくべき。『ゼロ作』に載ってます)。

 

・ベルヌーイ分布

 

・オッズ
ある確率pに対して、p/(1-p)をオッズと呼ぶらしい。
そこでインプットxや重みW等でオッズを表すとどうなるか問われた。

知らんがな。

 

・Batch Normalizationレイヤー
このレイヤーを入れるのは活性化の前?後?それとも両方?

 

・k-means++
k-meansしか覚えてなかったので意味不明だった。
実装までできるようになっておくこと。

 

・error-iterationの図の読解
複数モデルについて学習が進むにつれてのerrorの推移が示され、そこから読み取れることなどを選ぶ問題。
結構ボリュームがあったのでerror-iteration(エポック数)の図は読み慣れておいた方が良い。

 

・交差エントロピー
定義式を問われた気がする(tとyどっちがどっちか忘れがちなので注意)
また逆伝播の式も覚えておくこと。

 

・Momentum, AdaGrad, RMSProp

このくらいは式まで覚えましょう。

Adamになると大変だけど…

 

・IOU
物体検知の一手法らしいけど全く知らない単語だった。何それ美味しいの?
しかも5問前後問われた気がする。

壊滅。

 

・ワンショット学習
ワンショット学習を表すグラフ図はどれか問われた。

知らんがな。
ワンショット学習の特徴を問う出題も。

 

・シグモイド
直接問われたかは忘れたが、シグモイドユニットの逆伝播の表式は押さえておく必要があった記憶。
同様にtanhユニットについても。

 

・L1,L2正則化
それぞれの特徴、正則化を導入した時に損失関数の勾配がどうなるか。

 

・双方向RNN
計算グラフで表すとどうなるか。実装するとどうなるか。

 

・GRU
GRUのグラフを見てリセットゲートと更新ゲートがどれか言えるように。
重みのサイズを選ぶ問題も。(INPUT_SIZE + HIDDEN_SIZE, HIDDEN_SIZE*2)だよね?
あとGRUにCECは含まれてる?とかも問われた。

 

GRUについては色んな図がありますが、以下の図が覚えやすいのでおすすめ。

 

f:id:book_buku:20190304222207p:plain

 

この図を覚えた後にrやzなどの数式を図と対応付けながら覚えた方が良い。個人的には。

いきなり数式は多分頭に入らない。

 

・逆伝播の計算
掛け算のユニットに対して逆伝播で微分を計算するとどうなる?みたいなやつ。

 

・SVN
カーネル法についてかなり深く問われた。
数式レベルでの理解が必要。

僕は分からなかった。

 

・識別モデルと生成モデル
xを入力データ、Cをクラスとすると、識別モデルは条件付き確率で表すとP(x|C)とP(C|x)のどっち?じゃあ生成モデルは?
NNを用いた生成モデルの例は?とか聞かれて答えられるように。

 

・GAN
派生のやつも。
選択肢にはLAP GAN、Cycle GANなど知らない奴らが出てきた。
DCGANが提案した指針が何かも問われた。
Conditional GANとかいうやつのグラフ図も問われた。

知らんがな。

 

・GoogLeNet
Inceptionモジュールの特徴が問われた気がする。

 

・プーリング
Convolution層への入力やフィルター数、ストライド等が与えられた上で、
プーリング層の出力サイズはどうなる?みたいな問題。

 

・R-CNN
特にFaster R-CNNについて詳しく問われた。
Region Proposal部分のアルゴリズムなんか知らんよ…

 

・YOLO
どんな特徴があるか。検出速度は速いのかどうかとか。

 

・DQN
価値反復法の式を問うところから始まり、DQNに至るという流れで出題。
固定するパラメータは第一項だけ?第二項だけ?それとも両方?みたいなとこまで問われた。

 

・Attention, GNMT
特にGNMTについてかなり詳しく問われた。
ゼロ作2の一節でも説明されていて読んで覚えていたが解けなかった。

 

・方策勾配法

なんか式まで問われた気がする。

解けなかった。

 

使うと良い参考書

ゼロから作るDeep Learning1、2

人工知能のライブラリを使わず、numpyのような基本的なライブラリだけで機械学習プログラミングを行っていくというコンセプトの本。

 

実はE資格でも人工知能系のライブラリは問われないので(少なくとも2019年2月の試験までは)、対策本としてはうってつけだと思う。

 

解説もこの上なく分かりやすく、じっくり取り組めば詰まるところはほとんど無いと思う。

数学も基本から説明してくれるので高校数学さえ分かっていれば文系の方でも読めます。

Pythonの文法程度の知識は必要だけれど。 

 

だいたい2週間あれば1巻と2巻両方を一通り理解できるかな、くらいのボリューム。割ける時間次第ですが。

 

なおE資格を受けるにあたって僕が腰を据えて取り組んだ本はこの本だけでした。

おそらく理系の人がE資格合格を狙うなら認定講座に加えてこの本をやるだけでOKです。

 

人工知能プログラミングのための数学がわかる本

僕は使わなかったけど、数学に不安がある人や時間がある人は読んだ方がいい。

特に大学で数学を使わなかった人。

 

機械学習には線型代数、微分積分、確率統計あたりの数学が必要になってきますが、それぞれの科目に対して1冊ずつ本を用意して学ぶのは社会人にはきつ過ぎます。

なのでこの1冊で済ませるのが現実的な選択肢になるかと。

 

Python 機械学習プログラミング

これは辞書的に使った本。

ジョブカレの機械学習講座やディープラーニング講座を学んでいてもっと詳しく知りたくなった時や、別の角度からの説明を読んでみたい時に参照していました。 

 

認定講座と比べると、アルゴリズムを数式レベルで詳しく解説してあります。

日本語も読みやすくて良い。

 

辞書的に使うと言うと以下の本を連想する方もいるかもしれません。

 

この本はJDLAのサイトでも紹介されてますよね。

しかし個人的にはE資格合格を目指す上でこの本は不要です(少なくとも2019/2実施分については)。

もちろん理解しておけばより高得点を狙えはするでしょうが、日本語訳が読み難く、とにかく社会人が取り組むにはコストパフォーマンスが悪すぎます。高いし。

 

研究者を目指す、或いはじっくり取り組むための時間がある方はこの本を使ってみるのも良いでしょう。しかしそれだけ本気で深層学習に取り組むのならば原著である以下の英語版を読むべきかなと。

日本語訳の方が特別読みやすいわけでもない上に、英語版を読んでおけば論文や海外サイトを読むためのリテラシー(この技術は英語でこう表すんだ!といった知識など)が身に付き一石二鳥です。

 

とりあえずここまででおすすめした4冊を読めば、認定講座と同等か以上の内容を学べます。

合計で1万円程度であり、軽く20万以上する認定講座を受けるよりもずっとお得なので、E資格の受験資格が不要な方は本を読んで自学した方が良いです。

 

持っておくと役に立つ本

僕の場合はさらに以下の3冊を時折参照しながら学習しました。

ご参考まで。

一番下の『深層学習(岡谷)』はJDLAのサイトでも紹介されている良著。

コンパクトにまとまっていて、数式を追うのが苦にならない人にとっては知識を整理するために打ってつけな本と言えます。

仕事をしながらでも1週間程度で読めるボリュームです(最後の章のボルツマンマシンについては第2回E資格試験では出なかったので読まなくてよいかも)。

 

認定講座受講前に予習として取り組むも良し、講座と並行して理解を深めるも良し、講座後に知識を整理するために使っても良し。

 

E資格や認定講座に改善してほしい所

以下はE資格や認定講座に対する愚痴僕の考える改善点。

 

受験費用を安くしてほしい

資格一つ取るのに最低でも約25万円とか高すぎるっぴ。

 

特に認定講座に20万の価値があったかと言われると正直微妙なんですよね…上で紹介した参考書を読んでおけば、認定講座でえられた知識はほとんど身に付いちゃいます。

上述の通り機械学習講座だけは良かったけど。それ以外は本当に微妙と言わざるを得なかった。

 

結果的にはE資格の受験資格を得るためだけに20万払ったような形になってしまった感。

 

定義不明な単語を試験本番で出すのはやめてほしい

これはE資格試験本番の話。

特に実装問題で定義不明な単語がたびたび出てきたと記憶している。

雰囲気で分かるのも一応あったけど試験問題としていかがなものかと…

 

あと試験問題の文字や画像の解像度が部分的に統一されておらず、とてもお粗末な作りで所々読みづらかった。

論文などからキャプチャしてそのまま切り貼りしただけ、と言う感じです。

なんというか受験者に対する誠意を感じられませんでした。

 

受験料3万円も払っておいてなんでこんなお粗末な試験をうけさせられてるんだ、体裁を整える人件費も確保できないのだろうか、人一人が半日程度作業すればもっとずっとマシになりそうなものだが、と試験中に疑問が拭えず、また同時にわびしい気持ちになった。

改善を願います。

 

事前に配布された例題集からほとんどそのまま本番で出題するのはやめてほしい

これをやってしまうと資格試験としての意味が無いでしょう。

受験者が例題集にover fittingしてしまう可能性に問題作成者は思い至らなかったのだろうか

人工知能においては「汎化誤差は小さくしなきゃだめ」ってさんざん言われてるはずだけど、人間でも同じですよね。

現場で役に立たない合格者を量産することに繋がりかねないと思うので、JDLAには改善を望みます。

 

なおこのJDLAから配られていると言われる例題集には誤りがいくつも含まれています。

つまり学習者が例題集に対して過学習するどころか、誤った知識を覚えてしまう可能性があるわけです。

第1回試験の時に例題集の誤りについては指摘されていた(らしい)にも関わらず、約半年後となった今回の時点でも全く修正されておらず、曰く付きのまま受験者たちに配布するというのはちょっと杜撰過ぎませんか。

 

まあとにかく、前項とも関連するけど今のE資格の試験問題等は手抜き感で溢れてるんですよ。

JDLAの今の仕事には「日本に良質の機械学習エンジニアを増やす」という熱意が全く感じられない。

なのにいっちょ前に高額な受験料や講座費用を要求してくる。

このお粗末さじゃ「E資格はただの資格ビジネス」なんて揶揄されてもしょうがないんじゃないですかね、というのが受験後の率直な印象なのです。

 

まとめ

最後は厳しいことも言いましたけど、こんな感じかな。

僕自身合格者として「E資格の格がもっと上がってほしいな」と心から思っているわけなのでご了承ください。

まあとにかく、スキルや実績が欲しい人は本を独学した上でKaggleに取り組むのが現状では無難な選択に思えます。

 

「もっとこういう情報よこせ」とかあればコメントお願いします。

思い出せる限りで対応します。

 

おしまい。

ぶっきーでした。