資格系 AI(人工知能) AI資格 python 資格

【E資格 2020#1】実際に出題された内容を振り返ります(過去問対策にどうぞ)

こんにちは、ちくたっく(@tic_tac_tictak)です。

先日、E資格(JDLA Deep Learning for ENGINEER 2020 #1)を受験してきたので、実際に出題された内容を受験後記として紹介したいと思います。

ちくたっく
ちくたっく

これからE資格を受験する予定の方は、過去問対策として傾向把握に利用してみてください。記憶頼りに書いてるので網羅的じゃないかもだけど許してね。

当日の受験雰囲気については、下記で紹介しています。

E資格(2020#1) | 出題内容の振り返り

前提

・問題は大問34問程度
・大問1問につき、小問が1~5つ前後問われる形となっていた。
・そのため、合計問題数としては102問程度あったと思います。
・2020年より2日間(2/21金と2/22土)にわけて開催された。
・僕は前半の2/21(金)を受験
・出題内容自体は同じだが、出題のされ方はランダムだった模様

固有値と固有ベクトル

・これはやっぱり定番問題として出ましたね。
・それぞれ計算して回答したので、2問分は確実に得点したい問題でした。
・特異値分解は出題されませんでした。

自己情報量とエントロピー

・基本的な問題
・数式が問われ、自己情報量と平均情報量(エントロピー)を選択する問題でした

ホールドアウト法とk-分割法の比較

・機械学習分野からの出題
・選択肢4-5個の中から誤った選択肢を選ぶもの
・機械学習で実装経験があれば、一般的な知識で回答可能だったと思います。

回帰タスクにおける評価指標の比較

・絶対誤差(MAE/MSE)や相対誤差(MAPE)、決定係数(R2)等の知識が問われた問題
・R2を算定する数式も選択肢の中にあった気がします。

シグモイド関数

・シグモイド関数の実装問題が出題されました。
・ロジスティック回帰の流れで出題されていたような気がします。
・また、ロジット変数がオッズ比の対数であることがわかっていれば答えられた問題もありました。

混同行列(Confusion Matrix)

・機械学習分野からの出題
・各種指標の理解が問われた問題
・Accuracy(正解率)、適合率(Precision)、再現率(Recall)が出題(※F値は出なかった気がします)
・ROC曲線で用いられるFPR(False Positive Rate)も出題
・こちらは受験時に自分用に作成したまとめ図ですが、良ければ参考にしてください。

誤差逆伝播における計算グラフの理解

・誤差逆伝播における計算グラフの役割を理解しているかを問う問題
・連鎖率を用いて各ノード(4つ程)の勾配がどうなるかを、合計8-10個の選択肢から各ノードごとに答える問題
・落ち着いて答えれば全問正答出来るようなレベルの問題でした。

Auto-EncoderとPCA(主成分分析)

・同じ大問として出題された気がしますが、「次元削減の手法」として問われました。
・機械学習でも使われる次元削減の手法として「PCA」を回答
・ニューラルネットワークで使われる次元削減の手法として「オートエンコーダ」を回答
・オートエンコーダのネットワーク図が示され、ネットワークの出力数式を選択する問題もあったはず
・印象的だったのが、「不完備な自己符号化器」とはどのようなオートエンコーダを意味するかを選択する問題。これは帰って調べたら、Goodfellowの本にそのままの記述があり、「中間層の次元数が入力層の次元数より小さい」というニュアンスが理解出来ていれば(不安抱えつつも)回答出来た問題

GRUとLSTMに関する問題

・GRUの概念図が示されて、ゲート名を答える問題(確かリセットゲートが穴埋め)
・LSTMとの比較で正しい内容を選択する問題
・GRUはLSTMの簡易版ではあるが、性能やスピード著しく落ちるわけではない点や、GRUにCECがない点などを理解していれば回答出来たはず。
・あとは、GRUの出力値を正しく実装出来ているものを選択する内容も

Lpノルムの数式

・Lpノルムの数式として正しいものを選択する問題

L1正則化とL2正則化

・特徴に関する正誤問題が問われたような気がします。
・また、L2正則化のコード実装問題もありました。
・具体的には、損失関数に組み込んだ場合の実装(順伝播)と、勾配計算時の実装(逆伝播)が問われました。
・JDLAプログラムでも対応している内容かと思うので、落ち着いて解けば解けると思います。
・こちらも受験時に自分用に作成したまとめ図ですが、良ければ参考にしてください。

ResNetとDenseNet

・CNN分野で成果を出してきた有名なモデルに関する問題
・ResNet(2015)とDenseNet(2016)の特徴が問われるような問題
・ResNetは「Residual Block」のIdentity Mappingにより入出力の残差を学習する点がわかっていればOK
・DenseNetは「Dense Block」と「Transition層」があり、それぞれの特徴を理解出来ていれば答えられる印象でした。

物体検出アルゴリズム

・YOLOやR-CNNに関する問題が出た気がします。
・別途計算問題として「IoU」を算定する問題もありました。
・セマンティックセグメンテーションに関する記述もあったと思います。

識別モデルと生成モデル

・入力値がどのクラスに属するかをモデリングする「識別モデル」と、入力(訓練)データを生成する確率分布をモデリングする「生成モデル」に関する問題も出題されました。
・識別モデルと生成モデルの各々に適した数式を選択する問題もありました。
・ベイズの定理含めて理解していれば、さほど難しくなかった気がします。

k-近傍法

・機械学習分野からの出題
・確か実装込みで出題されました。k=1の時やk=4の時にどのような結果になるかを図から選択する問題もあったはずです。
・これはあまり対策していない内容でもあり、自信持っての回答は出来なかったですね。

クロスエントロピー誤差とソフトマックス関数

・コスト関数の話の流れで出題された論点です。
・実装含めて出題されたので、pythonのコードは確認しておいた方がいいですね。

強化学習

・方策勾配定理を答えさせるような問題がありました。
・AlphaGoに関する出題は全くなかったです。
・Q学習にExperience Replayを適用した損失の定義式が出題されました。
・あとは数式が与えられて、REINFORCEアルゴリズムかActor-Criticかを答えさせるような問題もありました。
・ほかにも出題されていた可能性はあるのですが、難しかったからか記憶から飛んでてスミマセン。笑

VAEとGAN

・VAEは上記Auto-Encoderの繋がりで出題されていたかもしれません。
・GANはGenerator(生成器)とDiscriminator(識別器)に関する記述や適切な数式を答えさせる問題があったような気がしています。
・GANに関する種類も出題され、確かLAPGAN(ラプラシアンピラミッドを用いて低解像度⇒高解像度へ)を回答する問題もありました。Conditional GANは出なかったはず。

転移学習

・これは定かではないのですが、転移学習に関する記述も出題されたような記憶があります。
・違ってたらゴメンナサイ。。。

WaveNet

・音声処理分野からの出題
・音声波形の生成モデルに関する数式を答えさせる出題がありました。
・Convolution型アーキテクチャの「Dilated casual Convolution」を回答させる問題もありました。
・また、Dilated casual Convolutionの特徴に関して正誤問題も問われましたね。

Normalization(正規化)

・確かBatch NormalizationとLayer Normalizationが出題されました。
・BNはバッチ数が少ないと機能しないという問題を起点に、LNが問われたようなイメージです。
・LNの特徴だけでなく、実装も含めて出題された気がします。
・RNNへの適用可能性についても言及していました。
・Instance NormalizationやGroup Normalizationについては出題されませんでした。
・こちらも受験時に自分用に作成したまとめ図ですが、良ければ参考にしてください。

Mobile Net

・計算資源が限定されているモバイル環境下でも、従来精度を落とすことなく実現したCNN有名モデル
・具体的に計算量削減のために工夫されている「Depthwise Separable Convolution」が問われました。
・「Depthwise Convolution」と「Pointwise Convolution」が理解出来ていれば回答出来た問題です。

U-Net

・U-Netの特徴について正誤問題が問われました。
・具体的には、アップサンプリング時にスキップコネクションで、局所的に空間情報を補完しているような内容が問われました。
・pix2pixは出題されませんでした。

Transformer

・「Attention is All You Need」という有名論文で注目が集まったTransformerに関する問題です。
・Transformerで採用されている、「Source-target-attention」と「Self-attention」を図から選択するような問題がありました。
・pythonによる実装問題もあったのですが、これは難しかったですね。。
・Query、Key、Valueを辞書オブジェクトとみなした場合のソフトマックス関数を絡めた問題もあり、これもしっかり勉強していないと回答出来ない問題だったと思います。

最適化アルゴリズム(Adam)

・パラメータ最適化の代表アルゴリズムに関する実装問題が出題されました。
・2019年にも一部穴埋め形式で実装が問われたらしいですが、穴埋め箇所が数か所あって得点出来たのが印象的でした。
・AdaGradやRMSPropに関する出題はなかったと思います。
・モメンタムやネステロフのモメンタムも出題されなかった気がします。
・Adamの前には、SGD(確率的勾配降下法)の実装問題もあったかもしれません。
・こちらも受験時に自分用に作成したまとめ図ですが、良ければ参考にしてください。

E資格の試験対策方法

以上が、特に印象に残っている出題された問題です。

ちくたっく
ちくたっく

モデル圧縮化や分散深層学習が出題されなかったのは、個人的に予想が外れてちょっとビックリでした。

続いて、E資格対策として僕がしていた勉強法を紹介します。

【勉強法①】全体像を理解

E資格の試験範囲はかなり広いです。

応用数学、機械学習、深層学習の基本(順伝播、逆伝播、パラメータ最適化)から、CNNやRNN、生成モデル(VAEやGAN)と強化学習、さらには最新の論文モデルとかなり学ぶことが多いです。

なので、僕みたいな文系の非エンジニアにとっては、すべて100%本質理解するのは厳しいでしょう。

そこで僕が意識していたのが、全体像のつながりの把握です。

深層学習も色々な代表モデルが出てきますが、先人たちの努力と歴史を経て、どんどん最新のモデルやアルゴリズムが開発されています。

「今自分がどの論点にいるのか?」といった視点で学習するとつながりを意識出来るようになるハズです。

ちくたっく
ちくたっく

論点ごとにマインドマップを作るのもオススメだよ。

僕はスマホアプリを使って、色んな論点のつながりを意識していました。

【勉強法②】インプットは「認定プログラム」と「有名書籍」

続いてインプット。
インプットはJDLA認定プログラムが出す課題をしっかり理解した上でこなすことが大切です。

また、認定プログラムの講義だけでは(基本的な内容であっても)今一つ理解出来ないことがありました。

そのような場合、有名なディープラーニングに関する書籍を読んでインプットしていくこともかなり重要になると思います。自分のインプットや理解を手助けしてくれるので、一読しておくことをオススメします。


ゼロから作るDeep Learning①
・ 深層学習の基本からCNNまでをわかりやすく扱った書籍
・ 難解で理解しにくい論点もわかりやすく言語化してくれている本なので、理解補助に最適


<ゼロから作るDeep Learning②>
・ 自然言語処理やRNN(LSTM/GRU/Attention等)について、基本から説明してくれている書籍
・ 前シリーズ同様、わかりやすくまとまっている一冊

ちくたっく
ちくたっく

個人的にはRNN周りの理解に役立ちました。

認定プログラムだけではわからなかった方は、一度目を通してみてください。


<深層学習|Goodfellow)>
・ Goodfellow本として、かなり有名で難解な書籍
・ 難解だが、実際にここから試験問題も出題されているので、目を通しておく価値はアリ

ちくたっく
ちくたっく

僕も購入しましたが、辞書代わりに使っていた程度です。

それでも、一読した文章が実際に出題されたので、購入してよかったと思っています。本当はガッツリ理解したいとこでしたが、僕にはそこまでの力はなかったです。。。

あとは、(当然ですが)どの認定プログラムを受講するかも大切です。

自分の環境やレベルにもよりますが、ある程度知識がある方にはAidemyが良いと思います。
無料のビデオカウンセリングもしているので、興味のある方は一度話を聞いてみてください。

>> Aidemy|3ヶ月でAI人材を目指す

プログラミング未経験からAI人材を目指したいと考えている方は、以下記事を参考にしてください。

【勉強法③】アウトプット重視

インプットも大事ですが、やはりアウトプットも大事になります。

僕はインプットした後、時間を決めて何も見ないでノートに論点を書いていく練習をしてました。

また、買い物やお風呂に入っている時間を利用して、「勉強した論点についてどれだけスムーズに話せるか」といったセルフプレゼンもしていました。

ちくたっく
ちくたっく

pythonの実装も定期的に行うことが大切。

理論とのつながりを意識しながらpythonするといいですよ。

以上が、僕が実践していた基本的な勉強法です。

E資格を受験した後にすべきこと

最後に、E資格を受験した後にすべきことを簡単に紹介しておきます。

ポイントだけお伝えすると、以下2つに取り組むのがオススメです。
・ 個人のポートフォリオを作る
・ AI専門エージェントに登録する

個人ポートフォリオの作成は、自分の実力を見える化するためにも重要なので、GitHubなどを利用して学習したことを是非まとめてみてください。

そしてAI専門エージェントへの登録ですが、これは情報収集や転職/フリーランスを目指す方には必須のアクションと言えます。無料で登録できる案件単価が高い&案件数が豊富なエージェントとしては「BIGDATA NAVI」がオススメなので、キャリアアップを検討している方はチェックしてみてください。

以下記事でも解説しているので、転職を視野に入れている方は良ければご参考ください。

さいごに

今回は、僕が受験したE資格の出題内容と勉強法について紹介してきました。

途中で少し出てきた図ですが、僕がTwitterでセルフアウトプットの一環としてもつぶやいていた内容でもあります。個人のTwitterアカウントで学習した内容を発信するのも勉強になるので、結構オススメです。

ちくたっく
ちくたっく

次回受けられる方の合格を陰ながら応援しています!

追記|2020.3.3

今日試験合格発表があり、無事「合格」することが出来ました。
応援してくれた皆様、ありがとうございました!