AI実装検定S級に合格したので勉強方法と試験内容を振り返る

  • このエントリーをはてなブックマークに追加

AI系の検定として最近新しく生まれた「AI実装検定」。A級に続きAI実装検定の最高峰であるS級も合格しました。ここではこの検定の概要と、合格までに何をしたか、どんな問題が出たか、これから受ける人へのアドバイスをまとめておきます。

こんにちは。wat(@watlablog)です。AI実装検定S級に合格してしまったので、忘れないうちに内容をまとめておきます

ちなみにAI実装検定S級に合格すると、以下の合格証2種類のロゴが発行されます。僕自信はこれらそのものには価値が無く、学習の過程で得た知識の方が重要と思っているので特に名刺とかには印字しない予定です。

AI実装検定S級の合格証

AI実装検定S級の概要

AI実装検定とは?

AI実装検定とは、Study-AI株式会社が認定している検定で、AI、特にディープラーニング関係に特化した問題が出題されます。
公式ページ:AI実装検定

僕は2020年9月26日のA級を受検し合格しました。A級については「【朗報】G検定取得者がノー勉でAI実装検定A級に合格した件」にまとめましたので是非ご覧下さい。

上記記事にもあるように、A級はG検定に合格した方であれば、ちょっと数学とプログラミングを練習しておけば苦も無く合格できるレベルと思います。ちなみに、G検定については以下の記事でまとめていますので是非参考にしてみて下さい。

【G検定】G2020#1に合格したので対策方法と感想を書いてみた

A級とS級の違いと試験範囲

A級の内容は数学(線形代数・確率/統計・微分)、Pythonプログラミング(基礎+ライブラリ知識)、ディープラーニング(ニューラルネットの構造や各種演算)でした。

S級の場合は画像処理技術のアルゴリズム、NLP(自然言語処理)画像認識の既存ディープラーニングモデルに関する内容が試験範囲となります。

A級は概要だけだったものが、S級では実際にSoTA(State of The Art)の結果を出しているモデルを題材に、よりプログラミングに特化した内容というイメージです。

今回僕は2020年12月26日のS級を受検しました。この日がS級の第一回試験だったので、過去問から傾向と対策を検討するといった事はできませんでした。

試験日までに公開されていた公式からの情報では、他検定とAI実装検定A級の位置付けは載っていましたが(下図引用)、S級に関してはプロットがありませんでした。

AI実装検定の難易度

公式ページにはS級に関しては以下の文章がありました。そのためS級に合格したという事は、E資格に挑戦できる準備が出来た事になる…というイメージです。

現在AI資格試験の最高峰であるE資格(日本ディープラーニング協会主催)に比べるとカバーする範囲は狭いですが、各項目で求められる実装レベルは同程度です。

AI実装検定「各級の紹介」:https://kentei.ai/introduction/detail

S級合格までにやったこととか

受検前の気持ち

AI実装検定A級はちょっと軽く見ていましたが、S級に対して抱いていた気持ちは以下。

PyTorchもまだまともにいじれないので多分落ちるだろうな。S級とか、名前からしてめっちゃハードル高そう!

正直ディープラーニングに関してはG検定でジェネラリストとしての知識を得た程度で、自分でディープラーニングプログラムを最初から構築するという事は出来ていません。かなりびびっていました。

しかし、ブログを書いている立場から…

仮に落ちても「AI実装検定に落ちた!ダメな勉強方法3選と本試験の感想」とかいう記事を書けばブログのアクセスを稼げるだろうし、どっちに転んでも良いかな!

…という気持ちが勝り、Twitterで受検を宣言して退路を塞いでみました。

ブロガー心理最強。

画像処理100本ノック®️を動かして記事にまとめた

AI実装検定S級の出題範囲「画像処理技術」は、imori_imori(yoyoyo-yo)さんのGitHubコンテンツである「画像処理100本ノック」が公式シラバスに設定されています。

なので、まずはこの100問をやってみました。

…やってみましたといっても、このコンテンツはかなり内容が濃く真面目にやっているとものすごく時間がかかります。

僕は申込みこそ10月でしたが、本試験をちょっと甘くみており12月入るまではQ10くらいまでしかやってませんでした(その後から徐々に難しくなってくる)。

本来は答えを見ずに、自力で各種画像処理アルゴリズムをPythonでプログラミングできるようになるのが理想ですが、今回は妥協して答えを見つつ自分の環境と自分で用意した画像を使ってGitHubのコードを動かしてみる事に徹しました。

内容は以下の記事にまとめました。

AI実装検定S級対策!「画像処理100本ノック」学習記録・カンペ

12月の試験一週間前まではTwitterでマンドリルの画像を大量生成するマンドリルブロガーとなっていました。

ディープラーニング∞Cheat®️のカンペを作った

画像処理100本ノックのトレースだけで試験一週間前になってしまったので、ディープラーニング∞Cheatの勉強時間はほぼありませんでした。

S級のディープラーニング問題は既存のモデルの実装です。今回はオンライン試験という事で、カンペ作りに徹していました。

PyCharmでコードのカンペを作成

まず作成したのはPyCharm(Pythonの統合開発環境)でカンペを作りました。GitHubをブラウザに表示させて検索する事も出来ますが、PyCharmの検索は普段から慣れており、結構サクサク動くのでオススメです。
結果的に、これが最も役立ちました。邪道ですが…。

PyCharmのカンペ(チートシート)

PyCharmについては「Pythonの統合開発環境(IDE)はPyCharmで良い?(Windows)」や「macOSにPython統合開発環境PyCharmをインストール(Mac)」に記載していますので、是非ご覧下さい。

ディープラーニングモデルの概要カンペをスライドで作成

単純にコードだけをコピペするのでは何も勉強にならないので、今回は各種ディープラーニングのモデル概要(特徴やネットワーク構造等)をスライド(MacのKeynote)で作成しました。

検定を受ける醍醐味は知識の習得なので、コードの意味をできる限り知るという勉強です。

本当はブログにまとめたかったのですが、試験前数日(の仕事後)で作成したので間に合いませんでした。

そのため既に世の中で出回っている論文の図やブログの絵を参考にしました。

やった事はこれだけです。

S級ってどんな出題形式?

多分この記事を見ている人の多くが気になるのは、S級の問題がどんなものかでしょうか。

何せまだ第1回しか終わっていないので、情報が無い状況で不安だと思います。

問題は画像処理30題、ディープラーニング20題が出題され、全てPythonコードを読んで答える形式です(G検定のような用語の知識を問うものは無し)。

問題をここに載せてしまうと著作権等の問題があるので出来ませんが、以下にイメージを記載しておきます。

コードの実行結果予測

例えばある画像処理を行い、コードの最後にprint(out.shape)と記載されている問題があるとします。そのshapeの数値がどれかを選択肢から選ぶという問題がありました。

以外とこれ系は迷いました。カラー画像、グレースケール画像、直前に何か操作していないか…といった事を考えて答えないといけません。

もっとNumpyと友達になっておけばよかったと思いました。

コードの穴埋め問題

最も多かったのはコードの穴埋め問題です。例えば、HSVスケールはRGBスケールの画像と違い、青系、赤系と色がグラデーションでまとまっているのが特徴です。問題では「HSV画像で青系を抽出したい。lower, upper=○○。○○には何が入るか?」といった事が出題されます。

ちなみに画像処理100本ノックのコードを丸々使ってはいなかったと思います。つまり各画像処理アルゴリズムの式や概要、実装方法を詳細に知っておく必要があります

ディープラーニングモデルについては、GitHubコードが丸ごとでました

逆の意味で驚き思わず噴き出しました。多分ディープラーニング問題の穴埋めは20問全問できたと思います。

PyCharmのカンペがフルパワーで機能しました。…でもこれ検定問題として良いのか??

問題には「Web検索をして論文を参照して答えても良い」とありましたが、GitHubを参照した方が良いです。論文から読み解くのは大変なので。

ちなみにディープラーニング問題はモデルの層数、パディング、ストライド数、カーネルサイズ…といった所が穴になっている事が多い印象でした(これ勉強十分やっても暗記できないかも)。

てっきりもっと大枠のネットワーク構造に関する問題が多いと思いきや、割と細かい問題が多かったです。

まとめとこれから受ける人へのコメント

AI実装検定A級に合格したので、S級も受けてみたら合格しました。後日送付されたメールによると得点率は64%との事で、6割ほどできていれば良さそうです。

AI実装検定S級の結果メール

ディープラーニング問題はカンペによりほぼ全問正解していたと思いますので、画像処理で30問中18問ほど落としていたのではと思います(これは体感と一致。落ちたと思っていた)。

これから受ける人へのアドバイス、コメントとしては、試験に受かるだけであればカンペを作りましょう…となるのですが、この試験が受かったからといって何か就職等に有利かと言うと、そんな事は無いと思います(E資格は別だと思いますが)。

そのため、シラバスの画像処理100本ノックといったかなり優良な教材から得られる知識がこの検定を受ける意義となると思います。僕も検定を受けなければ多分やらなかったと思います。

今回は検定のために早足でこなしてしまいましたが、これからじっくり復習もかねて再度画像処理100本ノックを勉強してみようと思います。

ディープラーニングのモデルに関してはまずはPyTorchを満足に使えるようにするにはどうするかを考えてからもう一度GitHubのコードを見てみようと思います。

今回は全く勉強しなかったディープラーニング問題の方がとれてしまったという皮肉な結果でしたが、今後の学習のきっかけにはなったと思います。

ディープラーニング実装師S級…の称号を得てしまった…!けどまだ実力が伴っていないので名乗るのはやめとこうと思います!
Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*