E資格 (2021#2) の合格体験記(導入・試験対策・講座受講)
2021年8月27日(金)・28日(土)に開催されたE資格 (2021#2) に、20代の新米エンジニアが無事合格しました。
ディープラーニング技術者を目指すにあたって、登竜門の一つとなっています。多くの人が、キャリアアップを目的に、E資格を受験しようかなと思いを巡らせていると思います。
この記事では、E資格の受験を検討している人に向けて、E資格を合格するまでの体験談を紹介します。
E資格とは??
E資格とは、日本ディープラーニング協会 (JDLA) が主催するエンジニア向けの「ディープラーニングを実装するエンジニアの技能を認定する資格試験」となります。
2021#2 の受験結果は??
JDLAが2021年9月17日に発表した結果によると、2021年8月27日(金)・28日(土)に開催されたE資格 (2021#2)は
総受験者:1,170名
合格者数:872名
試験終了後、Twitterでは「難化した」のツイートがたくさん見受けられました。
JDLA認定講座の問題集や通称黒本の問題と比較すると、少し難化したのではという印象を、私も受けました。
しかし、結果的に合格率は例年とあまり変わらず、約75%となりました。
私の各分野の得点率は以下のような感じでした。
応用数学:7割前半
機械学習:6割後半
深層学習:7割後半
開発環境:7割前半
正直、各分野8割前半は取れている自信はあったので、すこしがっかりしました。(合格していたらOKなので、気にしない)
JDLAから公式に合格ラインは発表されていません。他のE資格のブログやTwitterを参考にしてもらうと、ある程度の合格ラインが見えてくるのかなと思います。
合格者・不合格者を含めた各科目の平均得点率は以下です。
応用数学:67.16%
機械学習:73.49%
深層学習:63.84%
開発環境:66.54%
私の点数と比較すると、「機械学習」は平均を下回っていますね。問題・回答をほとんど忘れてしまったので、何が悪かったのかはわかっていません。
個人的には、情報処理技術者試験の応用情報技術者試験と同等レベルの難易度のように感じました。
合格までの道のり
受験前のスペック
E資格の講座を受講する前の、私のスペックは以下です。
大学院修士卒
研究室では画像処理と機械学習が専門
企業エンジニアとしても、画像処理と機械学習が専門
時系列データ処理と強化学習は全くの素人、数学的知識も所々忘れかけている
ディープラーニングのフレームワークの使用経験有(主にPytorch)
画像処理に関わる知見は、プログラム実装ができるレベルで習得をしていました。
大学の研究室で、画像処理をC++(OpenCV)、機械学習をPython(Pytorch・Caffe)で実装した経験がありました。
現在も、大学院での専門領域での知見・技術を生かして、業務を進めています。
そのため、画像処理に関わる機械学習の範囲は、ある程度の事前知識を持っていました。
一方で、時系列データ処理や強化学習に関しては、実装したこともなければ、理論もさっぱり知りませんでした。「Alpha Goは強化学習らしい」ぐらいの知見しか持ち合わせていませんでした。完全に素人に近い状況です。
また、数学的知識も、多くの部分が消え去りかけていました。
(最適化手法を数学的に説明しきるのは、自信がないレベル。)
そのため、特に自分が実装したことがない・知見がない部分に集中して、勉強を進めました。
一方で、機械学習の事前知識は持っていたので、分野別得点率が8割を超えなかったのは、残念としか言いようがありません。
試験当日までの勉強は?
試験当日に向けて、以下の流れで勉強を進めました。
JDLA認定講座にて、オンライン講座を受講する
JDLA認定講座に付属していた、問題集で勉強する
「徹底攻略ディープラーニングE資格エンジニア問題集(通称、黒本)」で勉強をする
JDLA認定講座の受講後は、「徹底攻略ディープラーニングE資格エンジニア問題集」を徹底的に復習することで、試験対策を進めました。
E資格の合格で得られたものは?
E資格の合格で得られたものは以下です。
ディープラーニングフレームワークの背後で動いている数学的挙動がわかる
画像処理以外の機械学習の知見・事例
JDLAの合格者コミュニティへの参加権
ディープラーニングフレームワークの背後で動いている数学的挙動がわかる
PytorchやTensorflowのディープラーニングフレームワークを活用すると、それらの背後で動作している数学的知識を完全に把握している必要性はありません。フレームワークが内部で勝手に小難しい計算を自動で行ってくれます。
ただし、機械学習を実際の現場で運用するエンジニアには、それらの数学的背景知識が必要とされます。一例ですが、運用面において、考慮すべき点が多数存在します。
機械学習モデルの性能を改善させるために、次に取るべき手段は?
機械学習モデルを正しく評価するための手法・知識
機械学習モデルがなぜそのような挙動を行うかの説明(説明性担保)
これらを考えるうえで、「なんとなくフレームワークが行ってくれるから」の断片的な知識だけでは不十分です。きちんと理論・数学的知識を把握したうえで、機械学習を用いたシステム・アプリケーションを運用する必要性があると思います。
E資格では、機械学習の基本となっている知識についても学習することができるため、「エンジニア向け」の資格試験であるのであろうなと感じました。
画像処理以外の機会学習の知見・事例
E検定では、画像処理だけではなく、時系列データ処理や強化学習についても、学びを深めることができました。
私は画像処理を専門分野にしていたエンジニアであり、「画像処理向けの機械学習は知っているが、その他の機械学習はよくわからない」という状況でした。
「機械学習」を軸に知識の幅を広げるには適していると感じました。
JDLAの合格者コミュニティへの参加権
E資格に合格すると、CDLE (Community of Deep Learning Evangelists) のSlackへ招待されます。私は参加したばかりなので、まだ実情がよく掴み切れていません。
CDLE内には、G検定/E資格試験の合格者がいらっしゃるので、AI界隈の横のつながりを広げるには、最適なコミュニティなのではと感じました。
一方で、合格から4日経過時点で得られていないものは以下です。
昇給(超重要!)
AIエンジニアに関する仕事の紹介
JDLA認定プログラムを受けないといけない?
E資格の受験のためには、「JDAL認定プログラム」の受講が必要です。
JDLA認定プログラムの中から、自分に合ったものを選択して、受講する形となります。
zero to one のオンライン講座を受講した感想
JDLA認定プログラムの中でも私は、「zero to one」のオンライン講座を受講しました。
講座受講・演習課題・E資格試験対策のすべてをオンラインにて実施しました。
もし、不明点や聞きたいことがあれば、お問い合わせフォームから質問を投げることができる体制が整えられています。
ただ、実際にお問い合わせフォームを活用することはなかったため、使用感はわかりません。
「機械学習」コースと「ディープラーニング」コースを受講する
「zero to one」では、「機械学習」と「ディープラーニング」の2つに分けて、学習を進めます。
1ステップ当たり3~4時間程度かかりました
一つのステップに対して、動画と演習問題がセットになっています。
私は、動画で途中で止めて、ノートにメモを取りながら進めていたため、動画視聴に90~120分程度かかりました。ステップ毎に動画の量や負担感は異なります。
演習課題は60~120分程度かかりました。これもステップ毎に演習量が異なります。
演習課題は後半のステップの方が難易度と負担感が上がる印象でした。
前半の演習がそこまで負担感がなかったため、油断していました。
「機械学習」コース:線形代数と確率の基本知識は必須なのか
機械学習コースでは、主に機械学習に関わる数学の基礎知識と機械学習基礎を学習しました。
特に、イントロダクションでは、機械学習に必要な「線形代数」と「確率」の基礎知識に関する講座が用意されています。
ただし個人的には、線形代数と確率の基本的知識をこの講座内だけで習得しきるのは難しいと思いました。
「大学等で線形代数基礎や確率基礎を学んだことがある!」ぐらいの基礎知識を持ち合わせていれば、問題はないかと思います。
もし、線形代数や確率の知識がない場合は、この講座受講前に別途学習をする必要性があると思います。ここの基礎知識を疎かにすると、後々の講座で不明点が多発してしまうと思います。
線形代数は「プログラミングのための線形代数」が非常にわかりやすい本だと思っています。
イントロダクション以降の章に関しては、線形代数と確率の基本知識を持ち合わせていれば、講座内の講義ですべての内容を把握することができると思います
特段、他の教材で事前学習に取り組む必要性はないと思います。
「ディープラーニング」 コース:最新の論文やトレンドを調べる必要性はある?
ディープラーニングコースでは、機械学習編の内容の発展的内容として、近年流行しているディープラーニングの基礎を学びます。
「ディープラーニング」と聞くと、超最新の技術を学ぶと思う方もいらっしゃるかもしれません。本講座では、「ディープラーニング」コースには2つのレベルがあります
ディープラーニングの基礎技術に関して、実装レベルで詳細に学習する
ディープラーニングの応用技術に関して、知識レベルで学習する
例えば、「ニューラルネットワーク」の誤差逆伝搬法や最適化手法に関しては、実装レベルで学習をします。
一方で、GANの派生形である「InfoGAN」や「ConditionalGAN」は実装レベルでの習得は求められず、知識レベルで学習をします。
実際のE資格の試験でも、基礎知識は実装レベル・応用技術は知識レベルで問われていると感じました。
私の中では、以下のように対策するのが良いのかなと感じました。
ディープラーニングの基礎技術の勉強の進め方
基礎技術とは、ディープラーニングに広く使われている計算・学習アルゴリズムを指す
具体的にはフィルタ処理や最適化手法が該当する
基礎技術は自分で実装できるレベルで習得をする
試験でも実装問題として出題される
追加勉強は書籍やネット記事で進めるのが良い
ディープラーニングの応用技術の勉強の進め方
応用技術とは、ディープラーニングの基礎技術を発展させた手法
具体的にはGANの発展系等が該当する
応用技術は自分で説明できるレベルで習得をする(実装レベルまでは問われない)
試験でも知識の4択問題として出題される
追加勉強はネット記事中心で、和訳されていない最新論文まで追う必要はない
各Step毎に講座とJupyter notebookを活用した演習問題
各Stepが終わると、Jupyter notebookを活用した演習問題に取り組みます。
この演習問題の取り組みが非常に時間がかかり、大変でした
演習問題が大変だと感じた理由
Python & Jupyterの基礎知識がないと詰まってしまう(私は問題なかった)
穴埋め式のソースコードの意図を理解する必要性がある
回答の正解 or 不正解の確認に15秒程度かかる
午前2~5時がメンテナンス
大変だからこそ、知識が実装レベルで身についた
Python & Jupyterの基礎知識がないと詰まってしまう
本講座は「Python基礎講座」ではないため、PythonとJupyterの基礎知識がない場合、演習が全く進められないと思います。Pythonの基礎知識は別途学習する必要性があると思います。
ライブラリとして、numpyの勉強も別途進めるとよいと感じました。
穴埋め式のソースコードの意図を理解する必要性がある
演習課題は、事前に記述されたソースコードの一部が虫食いになっており、穴埋め式に回答をする必要性があります。私はこのやり方に非常に苦戦しました。
「他人が書いたコードは別の言語」ではありませんが、始めに事前に用意されたソースコードの意図を把握する必要があります。既存のコードの意図を理解するのに苦しみ、前に進められない場面が幾度かありました。(私の「他人のコードを読む力」が欠如していることが、この演習で思い知らされました。)
回答の正解 or 不正解の確認に15秒程度かかる
穴埋め式のコードを記述した後に、回答の正誤確認が自動的に行われます。(内部的には、テスト用コードが用意されていると予想)
この正誤確認が各問題毎に15秒程度かかります。
時間をロスしないために、私は正誤確認が返ってくる前に、次の設問への取り組みを進め、正誤結果は後で確認する形式を取りました。
午前2~5時がメンテナンス、演習課題を進められなくて困る
午前2~5時はメンテナンスであるため、ビデオ視聴・演習課題を進めることができなくなります。
演習課題を問いている途中でメンテナンスに入ってしまい、作業を中断せざる負えなくなるパターンがありました。
私自身、E資格の講座受講は夜に進める必要性がありました。そのため、以下のような取り組み方をすると、途中で中断せざる負えないパターンがありました。夜型人間の方は注意が必要かもしれません。
メンテナンスで演習課題を中断してしまったパターン
午後11時:講座を受講し始める
午前 1時:講座を受講し終える、演習課題に取り組む
午前 2時:メンテナンス時間に突入し、演習課題が終わらずに中断。
大変だからこそ、知識が実装レベルで身についた
色々書きましたが、「大変だ」と感じるぐらい演習課題に取り組んだため、機械学習・ディープラーニングに関する知識が実装レベルで習得できたと実感できています。
実際、E資格の試験本番でも、実装問題はスラスラ解き進めることができました。
zero to oneの講座の演習課題は下記のような人におすすめかもしれません。
zero to oneの演習課題がおすすめの人
E資格の勉強と兼ねて、Pythonの実装力を向上させたい
楽な道を選ばずに、機械学習・ディープラーニングの基礎技術の実装力を得たい
機械学習のフレームワークの内部で行われている技術を実装レベルで学習したい
E資格の試験対策をどのように進めたのか
今回の記事では、下の3つの構成要素に分けて、私がどのようにE資格の試験対策を進めたかを紹介します。
どのような教材を使って試験対策を進めたのか
どのように試験対策の勉強を進めたのか
実際,どのくらいの勉強量で試験に挑んだのか
どのような教材を使ったのか? → 黒本と「zero to one」の演習問題
E資格の試験対策のために、使った教材は以下の2つです
徹底攻略ディープラーニングE資格エンジニア問題集(通称、黒本)
zero to one の演習課題
主に徹底攻略ディープラーニングE資格エンジニア問題集を使って、勉強を進めました。
JDLA認定講座に付属している演習課題で進めていくのも良いと思います。
ただし、E資格の受験料が約3万円程かかることもあり、黒本での学習も進めて、確実に合格できるように試験対策を進めました。
黒本はE資格試験対策に最も適している教材だが注意点もあり
徹底攻略ディープラーニングE資格エンジニア問題集は私がE資格を受験した時点では、唯一のE資格問題集となります。
私が購入した時点では、「徹底攻略ディープラーニングE資格エンジニア問題集 第2版」(2021年6月1日初版)として、販売されていました。
構成は以下のようになっています。第1~9章までが機械学習基礎、第10~18章がディープラーニング、第19章が総仕上げとなっています。
黒本が優れいてる点は以下です。
E資格試験対策の唯一の書籍ベースの問題集であること
解説が非常に丁寧
実際の試験と同様の多肢選択式であること
2021年8月の「2021#2」受験時では、唯一の書籍ベースの問題集であります。
私のような、「勉強は本で進めていきたい!」という方には非常におすすめです。
PCでの勉強の場合、YouTubeやSNSの誘惑と隣り合わせの状況で勉強を進める必要性があります。
私自身、そこまで根気強い人間ではないため、PCベースでの勉強では効率が悪いことを重々理解していました。
そんな中、黒本は書籍ベースで学習を進めることができるツールであるため、非常に重宝しました。
付箋をつける、書き込みを入れる、マーカーで強調させるなど、受験勉強風に学習を進めたい人にはおすすめです。
黒木の特徴として、「設問に対する解説が非常に丁寧」が挙げられます。
JDLA認定講習に付属している課題演習の場合、設問に対する解説が簡単すぎることがしばしばありました。
間違えた設問の深堀は、自分自身で再度調べて直すことが必要でした。
一方で、黒本は設問に対する解説が非常に丁寧です。
問題集の本来の使い方とは異なりますが、設問と解説をセットで読み進めて、E資格のシラバスの内容を理解することも十二分に可能だと思います。
例えば、ある設問に対する解説を述べる際に、黒本では回答の下になる単語だけではなく、その単語の解説までを含めて行っています。
例えば、「GAN」にまつわる解説を行う際に、まずはじめに言葉と式ベースで、GANの詳細を説明したのちに、本題である問題の解説を記述しているような流れです。
JDLAの認定講座では学ばなかったが、黒本に書いてあることで、初めて理解できた点も多々ありました。
JDLAの認定講座で十分に学んだ、それらの再確認・見落としている点の確認という意味においても、黒本は絶大な効果を発揮すると思いました。
実際の試験と同様の多肢選択式であること
これは、JDLAの演習課題でも同様のことが多いと思いますが、E資格の試験と同様の多肢選択式での問題設定となっています。
E資格の試験スタイルに慣れるという意味においても、黒本で慣れておくことが大事かと思います。
黒本が優れていない点
黒本はE資格の試験対策において、非常に有用な本であると感じました。
一方で、黒本を使っている中で、優れていないなと思う点がありました。
値段が高い
誤植が多い
ディープラーニングの最新技術のフォローは難しい
「徹底攻略ディープラーニングE資格エンジニア問題集 第2版」(2021年6月1日初版) は定価6,050円です。非常に高いです。重ねて言います、非常に高いです。
一方で、高い講座費用と受験料を既に支払っている状況で、合格率を上げるための約6千円の投資と考えると、安いのかもしれません。
E資格の試験に落ちてしまい、サンクコストの沼にハマることとは避けたいので。
今後、黒本も新しい版が発売されるかもしれませんが、価格が安くなっていくことを願っています。
E資格受験者が増えて、黒本の売り上げ冊数があがると、価格は下げられる方向に向かうのでしょうか?
それとも、黒本が唯一のE資格の問題集である限りは、価格は維持されるのでしょうか??
誤植が多い → 黒本を買ったら、最初に正誤表の反映を
「徹底攻略ディープラーニングE資格エンジニア問題集 第2版」(2021年6月1日初版) は初版であったこともあり、誤植が非常に多いです。
実際に演習問題を進める中で、誤植に気付いた後に、正誤表の内容を私の書籍に反映を行いました。
また、正誤表に記載されているもの以外でも、数か所誤植があったりしました。
例えば、私が見つけたものでは、p53の連続型確率分布のKLダイバージェンスの式が誤っていたり。
本は版を重ねるごとに質が上がっていくかと思います。
今後黒本を購入される方は、新しい版の購入と買ってすぐに正誤表の反映することをおすすめします。
ディープラーニングの最新技術のフォローは難しい → JDLA認定講座かネット記事を参考
書籍特有の課題ですが、ディープラーニングの最新技術周りを黒本でカバーしようとすると、抜け漏れが発生することがあります。
書籍の場合、執筆・校正・出版と情報の更新に時間を要します。
そのため、書籍でディープラーニング周りの最新技術の試験対策をすると、情報や知識の抜けもれが発生する可能性があります。
実際、2021#2の回では、Twitter上で、「黒本の載っていないディープラーニング周りの知見を問われて、回答できなかった」という声が散見されました。私自身もそのように感じました。
ディープラーニング周りの最新技術の知見を獲得するためには、情報の更新速度が速い、ネットベースの学習方法、JDLAのオンライン演習課題やネット記事を参考にする方が良いと感じました。
どのように試験対策の勉強を進めたのか→最初に敵を知る
私は以下のように、E資格の勉強を進めました。
黒本の総仕上げ問題で、E資格の試験内容とレベル感を掴む
黒本の各章問題を反復学習することで、内容理解を進める
JDLAの演習課題で最終確認をする
最初に総仕上げ問題を解くことで、敵(=試験問題)を知ることから始めました。
機械学習とディープラーニング知見は事前に持ち合わせていたものの、「E資格の試験スタイル」は十分把握していませんでした。
最初に総仕上げ問題を解くことで、E資格の「レベル感の把握」を行いました。
敵を知った後に、対策を立てていくイメージです。
「レベル感の把握」を進めることで、特にディープラーニングの範囲では下記の2つの事項が大事であることを掴みました。
ディープラーニングの基礎技術に関して、実装レベルで詳細に学習する
ディープラーニングの応用技術に関して、知識レベルで学習する
ディープラーニングの基礎技術の勉強の進め方
基礎技術とは、ディープラーニングに広く使われている計算・学習アルゴリズムを指す
具体的にはフィルタ処理や最適化手法が該当する
基礎技術は自分で実装できるレベルで習得をする
試験でも実装問題として出題される
追加勉強は書籍やネット記事で進めるのが良い
ディープラーニングの応用技術の勉強の進め方
応用技術とは、ディープラーニングの基礎技術を発展させた手法
具体的にはGANの発展系等が該当する
応用技術は自分で説明できるレベルで習得をする(実装レベルまでは問われない)
試験でも知識の4択問題として出題される
追加勉強はネット記事中心で、和訳されていない最新論文まで追う必要はない
また、E資格特有のプログラミングの穴埋め問題のレベル感・出題形式も把握することができました。
総仕上げ問題で、何となく「E資格」のスタイルになれた後に、各章問題でJDLA認定講座で学んだことの復習・アウトプットを進めました。
総仕上げ問題と比較すると、各章問題の設問難易度は上がっています。各テーマに対して、深堀りがされています。
中には難易度が高いものもあると感じました。最初から完璧に答えられなくても、問題はないかと思います。
各章問題の難易度設定は、本番のE資格の試験と比較すると、少し高めになっていると思います。
最後に反復学習で黒本の内容を頭に叩き込ました。私はこの黒本を合計で4周しました。
1周目:すべての問題を解く
2周目:1周目で間違えたところ & 自分の苦手分野を解く
3周目:2周目で間違えたところを解く
4周目:(テスト前日)1度でも誤答した設問 & 自分の苦手分野を復習
4周目にもなってくると、完全に黒本の内容が頭に入っていました。
ただし、この勉強方法はかなりの部分を黒本に頼るため、「黒本の心中する」という強い覚悟が必要です。
書籍ベースでプログラミング問題を解くことに慣れておく
注意点として、黒本を使って、「書籍ベースでプログラミング問題を解くことに慣れておく」とことが大事です。
JDLA認定講座では、プログラミング演習課題を通じて、E資格の試験対策ができました。
しかし、E資格の本番では、デバッガーなしで、頭の中でイメージを持ちながら、設問に回答していく必要性があります。
特に、普段からPythonを使用していない人は、numpyの配列の次元がどのように扱われているかを注意する必要性があるかと思いました。黒本の設問では、np.sum(xxx, axis=?)のような、axisの方向も問われている設問が散見されます。
デバッガーなしで、すべてのプログラムの流れを把握したうえで、配列の次元を意識することは、普段からPythonを使用している私も、頭の整理をしないといけない場面が多々ありました。
黒本の内容をすべて写経して確認する必要はないかと思いますが、気になったソースコードの一部だけをPythonの対話モードで確認する等を心がけるとよいのではと感じました。
JDLA認定講座の演習課題で最終確認をする
最終仕上げとして、私は受講していた「zero to one」の演習課題で確認を行っていました。
「zero to one」のE資格対策向け演習課題はそこまで解説が充実していないものの、課題数は豊富に用意されていました。
そこで、黒本で固めきった試験対策の内容を「zero to one」で最終確認をするという形で進めました。
もし、JDLA認定講座の演習課題の解説が充実していない場合は、黒本での勉強成果の仕上げ確認として活用するのが良いかと思いました。
実際,どのくらいの勉強量で試験に挑んだのか
JDLA認定講座の受講時間を除いて、E資格の試験対策には9日間費やしました。1日当たり、4時間ぐらいをE資格の試験対策に充てていました。
試験対策のために確保した時間は40時間弱となります。
E資格の試験対策に費やした日数
8月11日(水):黒本の総仕上げ問題を解く
8月12日(木):黒本の各章問題を解く(1周目)
8月13日(金):黒本の各章問題を解く(1周目)
8月14日(土):黒本の総仕上げ問題の間違えた設問を解く(2周目)
8月15日(日):黒本の各章問題の間違い設問を解く(2周目)
8月16日(月):黒本の各章問題の間違い設問を解く(2周目)
8月21日(水):黒本の各章問題の間違い設問を解く(3周目)
8月22日(水):「zero to one」のE資格対策演習課題を解く
8月27日(金):黒本の各章問題の間違い設問を解く(4周目)
8月28日(土):E資格の試験日
E資格の試験日前にお盆休みがあったこともあり、運良くE資格のための勉強時間を確保することができました。
私自身、情報処理技術者試験の応用情報技術者に合格しているのですが、同程度の勉強量が必要であるなと感じました。
正直、黒本がなかったら、ここまで効率的に試験対策勉強は進めることができなかったと思います。黒本様様です。
まとめ
今回の記事では、2021年#2のE資格に向けて取り組んだ、試験対策の内容を紹介しました。
E資格の試験対策の体験談を紹介
E資格の試験対策には、黒本がおすすめ。ただし、使い方・使い分けには注意が必要
E資格の試験対策には、40時間弱を費やした
E資格を受験しようか迷っている方が、「挑戦してみようかな!」と思っていただければ、幸いです。