E資格の勉強(8ヶ月間)を振り返る

人工知能、AIの第3世代に登場したディープラーニングについて、その全範囲の理解と実装力を測る試験に「JDLA Deep Learning for ENGINEER」、通称「E資格」があります。

私eの人は、この資格試験に2020年6月19日から取り組みを開始し、そこから8ヶ月4日間(249日間)を勉強して2021年2月20日にCBT試験を受け、合格しました。

そこで、今回は土台となるG検定を含めたE資格についての取り組みについて、振り返ってみます。


1.ディープラーニングへの気づき
ディープラーニングへの最初の興味はAlphaGoだったと思います。
AIでは複雑すぎて人間に勝つのは無理とされていた囲碁で、プロ囲碁棋士とハンデなしで勝負してAIが勝利した、というニュースに興味を持っていました。

その後、ディープラーニングは単なる研究では留まらず、実際に社会に組み込まれて人間以上の成果を上げている、という事実を知るにあたり、このまま何もしないわけにはいかないという思いが募り、2019年8月にとうとうディープラーニングの勉強を始めました。
それがG検定への取り組みです。

ディープラーニングG検定の勉強を始めた

G検定では数学の知識も必要ということで、そのときに中学数学の復習から始めて勾配降下法までを勉強しました。
数学の他は認定テキストや問題集も使って、2019年8月25日から2019年11月9日の2ヶ月15日間(76日間)の勉強でG検定の試験に臨み、合格しました。

G検定合格の軌跡


2.E資格への挑戦
G検定の合格の後、しばらく何もしない日々が続きます。E資格にはすでに興味はありましたが、E資格の受験資格を得るために必須となるE資格認定プログラムへの参加には高額の受講料がかかることもあって、当時の自分のやる気と比べて割に合わないと判断していたからです。

しかし、ディープラーニングの社会への浸透がますます本格化していることから、やはり何もしないわけにはいかないと思って、意を決してE資格認定プログラムに参加することに決めたのです。

ディープラーニングE資格を取得してみることにした


3.文系というハンデ
E資格の勉強を始めて気づいたのは、この資格はそもそも理系大卒や理系学生を対象としているということです。
E資格認定プログラムの多くは文系の人向きの講座も用意しているのですが、正直、その基礎講座であってすらも、普段の仕事で中学程度の四則演算しか使ってこなかった文系の私にはハードルが高すぎました。

そこで、時間がかかることを承知で、認定プログラムの教材とは別に、線形代数と統計学のテキストを購入して2ヶ月3日間(64日間)は、他のE資格の勉強はせず、大学教養の数学のみに絞って勉強しました。

勉強に使った数学のテキスト(左から5冊目まで)
20210313-1a.jpg

この取り組みは遠回りだと思う方もおられると思います。
しかし、これまでの人生で数学を避け続けてきた自分にとっては、「数学脳」を身に着けるために必須の期間だったと思います。

こういう複雑な数式を見ても脳がフリーズしないようにするためには、

徹底攻略ディープラーニングE資格問題集から引用
20210313-1.JPG

事前に数学に慣れ親しんでおかないと、後でディープラーニングそのものの勉強に取り組んだ時に数式の圧に押されて詰むことになると思います。


4.ディープラーニングは全てが数式
人間が、猫や犬の画像を認識して判別したり、知っている単語を組み合わせて文章を作成したり、ゲームで次の一手や動作を決めるときには、これまでの経験の記憶を元にして行いますが、これを数学で近似しているのがディープラーニングです。

人間の視覚と脳をモデル化したものに「パーセプトロン」というものがあり、これはディープラーニングの最も基礎となるアルゴリズムなのですが、もうここからして数式です。

ディープラーニングには大きく、画像認識、自然言語処理、生成モデル、強化学習というジャンルの学習があるのですが、そのいずれもが数式によって人間に近い認識、判別、選択や生成をさせているので、いやまあ、ほんと文系には辛い話です><

しかし、裏を返せば、たかだかいくつかの数式をpythonに組み込ませるだけで人間に近い処理ができてしまうので、すごいものだなと私はディープラーニングの勉強中にいつも感心してきました。

なお、前処理としての正規化には統計学、AIの学習のコアとなるところには微分、線形代数、統計学と情報理論、学習結果の正則化には統計学、pythonを使った合理的な処理には線形代数(行列)が用いられます。この理由で、ディープラーニングに取り組む事前要件として応用数学(線形代数、統計学、情報理論)に対する知識と計算力が求められているのです(微分はG検定ですでに理解している前提)。


5.python
E資格では、ディープラーニングの実装はpythonのみで行います。そして、E資格ではオブジェクト指向でコードを組むので、ディープラーニングに取り組む前にはpythonでのオブジェクト指向による実装力をすでに身に着けておく必要があります。

E資格認定プログラムでは、pythonの基礎講座を用意しているところもありますが、その教材だけでは足りないと思います。
私の場合は仕事でC言語での開発経験があったり、Javaの勉強でオブジェクト指向の考え方をすでに理解していた、ということがあったので、追加でpythonのテキストを勉強することはしませんでしたが、もし、pythonの経験とかオブジェクト指向での経験がなければ、認定プログラムに参加する前に事前にpythonの初心者・初級者向けテキストをこなしておく必要があると思います。

もちろん、認定プログラムの参加中にpythonを1から学んでもいいのですが、それだけで1、2ヶ月かかるとしたら、たぶん認定プログラムでの参加期限(3~6ヶ月)を超えてしまって、期間継続のための追加料金を払うことになると思います。
私はE資格合格まで8ヶ月かかってるので本来なら追加料金を支払うはずが、私が参加した認定プログラムではコロナ禍で2020#2が中止になったことを受けて、継続のための追加料金不要となっていたのでした。

pythonには、行列に関してnumpyという便利すぎるモジュールが用意されていて、これがディープラーニングにおける現実的な処理速度を実現していると言っても過言ではありません。

しかし、実装として行列を駆使するのはなかなかに難しく、特に行列を軸単位(axis)で処理する、というのには最後まで悩まされました。
模擬問題では、行列処理をaxis=0で行うのか、axis=1で行うのかを問う問題が頻出するのですが、勉強時間が足りなくて未だに完全に自分のものにはできていなかったりします。


6.実装課題
認定プログラムでは、ディープラーニングの各単元ごとにコードの穴あきをpythonのセンテンスで埋めるというものと、認定プログラムで勉強した内容を使って独自のディープラーニングプログラムを作り上げるという自作プロダクト課題があったのですが、後者の課題にはかなり苦労しました。

この課題の難易度はE資格認定プログラムによって大きく異なると思いますが、私が参加していた認定プログラムだと、認定プログラムや書籍に書いてある基本的なプログラムのレベルではだめで、より複雑な処理(半分にした画像から残り半分の画像を生成する、日本語を外国語に翻訳する等)を行うプログラムを開発する必要があったので大変でした。
私はこの課題で2回差し戻しとなり、3回目の提出で合格するまで80日間もかかってしまったのでした。

でも、この課題でpythonを使ったディープラーニングの実装に本気で取り組むことができてその分の実力もついたと思うので、結果としては良かったと思います(でも、この課題のためにE資格のCBT試験の対策にかける時間が少なくなってしまったので、ちょっと辛い思いをしたのも事実です)。


7.CBT試験対策
各種の修了試験をクリアして認定プログラムを修了すると、いよいよCBT形式のE資格試験に向けての勉強に臨むことになるのですが、結果からすると、暗記だけで8割くらいは占めていたと思います。そして、試験では暗記はかなり有効でした。
つまり、暗記さえできれば合格してしまうのです。

現に、2021#1の全受験者における合格率は約78%にものぼるのですが、これはディープラーニングの全範囲をとにかく暗記できていたからだと思います。

とは言うものの、何十個もあるディープラーニングの数式を暗記するのは大変なことです。しかも数式の示し方は人によって微妙に異なるので、丸暗記だけでは足りません。
結局のところは、暗記するといってもある一定の理解がなければ、暗記作業はとても辛いものになるし、そもそもそれだとE資格を取る意味もなくなってしまうので、結果としては暗記がモノをいうとしても、それはこれまでのディープラーニングの勉強による理解があってこそだ、と言えると思います。

模擬試験は参加している認定プログラムに限定されないものが2つありましたし、今後はそういうオープンな模擬試験を実施する認定プログラムがさらに増えてくると思いますが、できるだけ受けてみるのがよいと思います。
なぜなら、一般向けには開示されていないE資格試験の例題が認定プログラムには提供されているようで、模擬試験はそうした問題から出題されているみたいだからです。

そして、これまでの通例として、JDLAが認定プログラムに提供している例題はCBT試験でも出題される傾向がある(らしい)ので、模擬試験は有料だけの価値はあると言えるでしょう。

黒本は、JDLAの試験にしては珍しく2021#1において非常に役に立ったと言えます。
というのは、最近のG検定試験では、認定テキストや黒本だけでは合格しにくいらしいからです。
しかし、今回のE試験における黒本は非常にありがたい存在となりました。

となると、今後はJDLAも対策するでしょうから、次回以降の試験では黒本とかぶらない問題を出してくる可能性が高いです。
しかも今回は78%もの合格率となったので、ただでさえ難易度の高い出題内容が次回はさらに難しくなるかも? と思わないでもないです。

でも、結局は認定プログラムで理解した内容が実力となるのですから、丸暗記ではなく、ディープラーニングの各内容を実装を通じて自分のものにしておけばそう恐れる必要もないと思います。


8.試験当日
久々のCBT試験だったので、緊張しました。新宿のテストセンターには初めて行ったのですが、めちゃくちゃ広いですね。
さすがは新宿です。都心です。

私の試験は11:00からだったので、遅刻しないように早めの10:20にはテストセンターに到着したのですが、もうこの時点から手続きが始まって、すべての荷物はロッカーにしまうことになり、10:40には試験を受けることになってしまいました。

私の考えでは10:45ごろまでは出題範囲の復習をするつもりでいたので意表を突かれたし、出題範囲の最終確認はできないままになったので少し動揺もしました。ただ、前日までに一応は復習を終えていたので、気を取り直して冷静な気持ちで試験を受けることができました。

振り返ると、ぎりぎりにテストセンターに到着してしまうと下手すると遅刻扱いになって試験が受けられなくなってしまうので、やはり早めに到着してよかったと思います。そうなると、勉強は前日までで済ませておくのがよいということになりますね。


9.今後
インフラ系のベンダー試験だと、関連する機器の理解に直結するので資格の有用性はとても高いのですが、E資格はベンダー資格ではないので、そこまでの有用性はないと思います。

しかし、E資格の難易度の高さはIT業界では知られている(と思う)ので、若ければ若いほどAI業界への就職・転職に有利になると思います。
私のように歳がいってると、さすがに転職の武器にはならないし、文系の人間が理系中心の仕事に就くというのはその後がかなり苦労することになる予感がします。

でも、ディープラーニングの全般的な実装力は身に着けたのですから、趣味でAIアプリを作ることは当然できるし、AIではないIT職に転職するときも高度な技術への理解力があるということでアピールの材料にはなるでしょう。

資格の利用だけではなく、実力はこれからさらに身に着けていくものなので、AIの勉強は継続して続けていきます。それが自分にどう役に立つかは知りませんが、ディープラーニングはこれからさらに社会に浸透していくものなので、そうした社会で生きていくうえで助けになってくれるものと思いますし、またそうなるように努力していきます。


文系の方の中には、ディープラーニングに興味を持ち、G検定やE資格にも食指が伸びそうな方もおられると思います。
文系の方にとっては、G検定はともかくE資格への取り組みはかなりハードなものになるのは間違いありませんが、今の世の中において取り組むだけの価値は十分にあると思うので、一度取得を検討してみるのもありだと思いますよ。


余談
AIアプリには面白いものもありますよね。大喜利人工知能とか発想が面白いし、生成される大喜利もかなりの切れ味があります(AIらしい? インモラルな文章には思わずクスッとさせられます)。そういうアプリを自分でも作れるようになります。

この記事へのコメント

この記事へのトラックバック