機能2024年9月7日にG検定を受けましたので、今回の経験についてここで記録しておきたいです。
試験を受けたきっかけ
日本でAIプログラマーに就職した話は以前の記事で書きました。
4月入社してからもう5ヶ月経ちました。今でもAIの仕事を楽しんでやっています。
入った会社は小さなベンチャー企業ですが、AI技術を重視して沢山AI関連の仕事を受けています。ここで私はG検定のことを知ることになりました。
会社側はG検定を受けることを推奨しています。もし受かったら受験料(13200円)を奢って貰えるだけでなく、ご褒美もあります。会社の中で数人受かった人もいますから、色々アドバイスとかも貰いました。
勿論これがなければAIの仕事ができないというわけではありません。会社内でAI関連の仕事をしているみんなが受けたわけでもありません。だから受けると決めたのは私自身の興味でもあります。
試験を受けることが好きってわけではないが、試験勉強自体は意味あると感じます。G検定の内容は機械学習関連の幅広い知識なので勿論そもそもいつか勉強したいことです。
私も長い間機械学習をやっていて、ある程度知識を持っているつもりですが、当然知らないことの方が多いです。やっているのは主に画像分析の方ですが、自然言語処理や強化学習などはあまり馴染んでしません。いつか勉強したいとは思っていましたが、まだ時間がなかったです。
でもG検定を受けることによってこの辺のことを勉強するきっかけになります。ただ大雑把な概要を覚える程度で、実践に使うにはまだ物足りないような浅い内容ですが、知っておいて良かったと思います。
それに機械学習の歴史の内容もちゃんと纏めておいて興味深いと思います。殆どは今まで知らなかったです。
こうやってシラバスに載っている内容を調べることで本当に沢山勉強になりました。
たとえ不合格になって台無しになったとしても努力して勉強してきた時間は無駄にはならないでしょう。
準備
私は4月入社したばかりの時からG検定のことを聞いて、そこで試験を受けてみると決心したので、5月や7月の試験を受けることも可能ですが、流石に勉強の時間は足りないだろうと思って結局実際に受けるのは9月になりました。(それでもやはりまだ早いと思って後悔してしまいましたが)
本を買って勉強を始めたのは2024年4月23日です。最初に勉強のために買ったのはこの本。(あの時丁度半額1200円で買えた)
そしてyoutubeで色んな動画を見ました。その中で一番上手く説明してとても参考になったのはこのシリーズの動画です。
ずんだもん達の会話で試験の基本も内容も対策もしっかりと説明して本当によくできた動画です。私は試験の前に全部見ました。
その他にもやはり欠かせないのは公式の本です。
ただここで留意する必要があるのは、この「第3版」の内容は2024年11月の試験から出題する内容も含まれているというところです。
私が受けた9月の試験ではまだ古いシラバスのままなので、この本の内容の一部は今回の試験に必要ないということになります。
例えば「マルチモーダル」(CLIP、DALL-Eなど)です。面白い内容ですが、やはり今回の試験では全然出てきません。
でも別に幅広い内容を読んでもまず損はないでしょう。受験のためだけに読むわけでもないですし。
最後に問題集です。公式の本にも問題集が含まれていますが、まだ足りないので、個別の問題集の本も買って一部やってみました。
又、公式の本は確かにシラバスに載っている殆どのキーワードが網羅されていますが、詳しく説明していないものが多いので、キーワードでググる必要があります。
ただどれくらい詳しく読む必要があるかよくわからないので、必要以上に深く読みすぎるかもしれません。特に自分が興味を持っていること。
このように色々読んで勉強してきたけど、結局まだ全然足りない気がします。だから本番になって上手くいかなくて色々後悔しています。
後悔と足りないこと
2時間で191問は無理ゲー
この試験はどうやら主に速さ重視ですね。質問の数が191と非常に多いのに2時間しか時間がない。2時間って長いように聞こえますが、この数の問題の前ですぐ終わってしまいます。1つの質問に対して$2×60×60/191$つまり38秒しかないです。まともに読む時間すらないですね。知識を測る前にまずは日本語の読解力が測られるでしょう。
G検定は外国人も受けることができますが、勿論内容は全部日本語なのでこれが多少ハンデになるでしょう。逆にもし受かったら日本語能力の証明にもなりますね。
今回の試験前半は呑気すぎて、残り時間を見てもうこのまま駄目だと気づいたら後半は焦って長い質問をスキップしたが、それでも10問残っている時点で時間が尽きてしまいました。
法律と倫理関連の問題は時間の無駄
「法律と倫理」の部分の内容は公式の本を読んだ時も眠くてあまり頭に入らなかったです。そもそも苦手ですね。ずんだもんの動画を見たおかげで漸く大体わかってきた気がします、が……本番ではやはり無理です。
この辺の質問は大体説明はわかりにくくて、技術の問題よりも読解力が必要で、しかもたとえ読み終わったとしても選択肢は微妙で結局どっちが正しいか判断できません。
序盤はまず頑張ってみましたが、折角時間を費やして読んだのに結局無駄になったと後悔してしまいました。だから後半でこれが出てきたらすぐ適当に答えてスキップすることにしました。
もし次回があったらこれを全部スキップすることにします。少ない時間を自分が解ける可能性が高い問題にかけた方が効率的ですね。
数学問題は余裕ない
計算する問題は少ないながらも出題されています。しかしこんな限られた時間で解くのはあまり現実ではありません。
例えば今回はサイコロの確率の質問が出てきました。質問自体は難しいわけではなく、鉛筆を持って時間をかけたらできるはずですが、どうしても1分以上かかるでしょう。結局数学問題はスキップすることにしました。
恐らく数学が得意な人でもこの試験で計算問題に時間をかけるのは効率的ではないと思います。
十分に問題集をやっていない
試験の対策としては内容を読むだけでなく、模擬問題を解いてみることも重要だとわかっています。ただし正直いうと私はこういうのあまり好きではないので、かなりつまらなくてやりづらい作業です。
一応公式の本の問題集もやって、その上に問題集の本も一冊買ってやってみましたが、所謂「黒本」と「赤本」と呼ばれた本の方がいいと言われました。だからこれを買って読んだ方が良かったかもしれません。
ただやはり値段は全然違いますね。買った本は500円で、黒本と赤本は2000円以上です。
カンペを作っていない
この試験はカンペを作っておいた方がいい、とずんだもんの動画でもそう言いました。本番ではカンペなんて読む時間があるわけではないので、これを作る目的は実際に使うのではなく、ただカンペを作る過程はいい勉強になるそうです。
私もそう思って実は作ってみたいが、結局そこまでの余裕はなかったですよね。
実際に勉強にかけた時間は足りない
4月から準備を始めたといっても、この4ヶ月の間は殆ど呑気で、会社の仕事が忙しいこともあって、実際に焦って受験勉強に時間を注いできたのは9月に入ってからです。本当に油断しました。
それに私が各キーワードに関する勉強する時につい、出題されそうな範囲よりも深く調べて時間をかけてしまったのです。一般勉強としてはいいことだと思いますが、受験勉強としては、そんなことをしたら数ヶ月があっても足りないですね。
しくじったところ
ここをしっかり読んだら良かったのに、と後悔して印象に残った出題についても書いておきます。
1段階モデルと2段階モデル
最初の質問からいきなり物体検出が出てきました。聞かれたのは「1段階モデル」か「2段階モデル」かの質問です。物体検出のことは私の仕事に近いから沢山読んでいましたが、これについては本当に見落としました。
それだけでなく、「1段階モデル」と「2段階モデル」の質問は2問も出てきました。その意味はわからないから答えられずに悶々としただけでした。
正解はSSDとYOLOは「1段階モデル」で、R-CNNとFPNは「2段階モデル」ですね。
シラバスのキーワードには直接入っていないが、物体検出の大事な概念の一つらしくて覚える必要があるみたいですね。
AdaBound
勾配降下法の話で沢山モーメンタムから派生した手法がキーワードに出てきます。その中で今回出題されたのはAdaBoundです。
色んな手法があってそれぞれ覚える必要がないと思って油断してしまいました。この部分の内容は公式の本でもただ羅列するだけで全然説明はないですし。
モーメンタムよりさらに効率的な手法が立て続けに考えられました。古いものからAdaGrad、Adadelta、RMSprop、Adam、AdaBound、AMSBoundなどがあります。
(公式の本から引用)
私が深層学習を初めて勉強したのは2018年で、読んだのは「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」という本でした。あの時AdaGradとAdamは実装したこともあって、AdadeltaとRMSpropもついでに勉強しましたが、AdaBoundとAMSBoundはまだ登場していなかったです。
AdaBoundは確かにAdamから派生したものですが、結局Adamほどの人気はなくて、pytorchでもAdaBoundの実装が含まれていません。だからそこまで重要だと思わなかったです。
今回の出題はAdaBoundとAdamの違いが聞かれたから、「Adamがモーメンタム関連」か「AdaBoundはAdamと似ている」だけのぼやっとした理解ではまず足りません。
たとえ重要そうには見えなくても、シラバスに載っている限り、出題される可能性があるでしょうね。見落とした結果はこれです。
ビッグデータの5V
ビッグデータの話では5Vという、vで始まった英単語5つがあると何となく覚えていますが、全部覚えていません。それなのにこのことは2問も出てきました。こんなに重要内容だとは。
その5つは:
- variety(多様性)
- velocity(速さ)
- volume(量)
- value(価値)
- veracity(真実性)
引っ掛け選択肢として「vague」や「vision」が出てきました。どれもそれっぽいので、騙されました。
chatGPT
なぜかchatGPT関連の質問はやけに多いです。公式の本もchatGPTが沢山言及されています。
でも私はchatGPTを使ったことないし、あまり詳しくないから、聞かれても上手く答えられなかったです。
たとえ自分自身が使わなくても、世界に衝撃を与えると言われるchatGPTに関することは、AI開発者としてやはり知っておく必要がありますね。
CTC と CEC
CEC(Constant Error Carousel)とCTC(伊藤忠ではないConnectionist temporal classification)、名前が似ていますし、どれもRNN関連ですが、全然別のものです。同じ質問に出てきたので混乱しました。
きっとこういう混同しやすいものはよく出題されるので、注意しないといけないでしょうね。
バッチ正規化と過学習対策
バッチ正規化について適切なものを聞く質問が出てきました。その中で「過学習が減る」という選択肢があります。
最初は関係ないかと思っていましたが、他の選択肢は正しいものがないから結局この選択肢を答えました。
どうやら正解みたいですが、実は知らなかったことです。そもそもバッチ正規化の主な目的は「勾配消失問題」の対策です。実際に私もそのつもりでいつも使っていましたが、過学習対策の効果もあるとは知らなかったです。新しい発見でした。公式の本もこのようなことを書いているので間違いないですね。
今回は結果として正解を答えて良かったのですが、必要以上に時間かかってしまったのはちょっと後悔です。
いつも使って馴染んでいるつもりのことでも、そのものの全てを細かく覚えているわけではないから、受験する際に理解を改めて整理する必要がありますね。そしてそのおかげで新しい発見もできて良かったです。
今後
試験が終わったばかりで結果はまだわからないが、恐らく不合格だと思います。
合格ラインは70%くらいだと言われていますが、今顧みた感じだと60%くらいしかできていません。
だからもう一度受験することになるでしょう。そうしたら今度はもっとしっかり準備したいです。対策は今色々考えています。
一回目で落ちても仕方ないことですね。大事なのは今回の試験で何が学習できて、次回でどうしたらいいかです。
まずもっと読む時間が必要です。ただ公式の本を読んで何となくこれがこんなものだ、って感じだけでは足りない場合が多いとわかりました。特に応用例の部分は意外と細かいことまで出題されます。
シラバスに載っていないキーワードでも、載っているキーワードに関連がある概念なら出題されることもありますね。物体検出の「1、2段階モデル」やビッグデータの「5V」などもそうです。
だからキーワードを中心として勉強するのもいいけど、そのキーワードに関わるキーワードも覚える必要があります。でもどれくらい必要か、結局覚える範囲って曖昧ですね。
(範囲が広すぎてどこを重視するかわからない……これはフレーム問題ですね。そういえばフレーム問題の質問も今回出てきました)
法律と倫理の設問は更に曖昧でしんどいです。読んでも時間の無駄だからまず放棄。時間内に全部の質問をまともに解くのは無理だとわかったから、時間かかりそうな質問と苦手な部分はとりあえずスキップ。
それより、速く問題を解くための対策も必須ですね。読解力を上げるのもいいが、恐らくそれだけでは足りないので、やはりもっと問題集をやる必要もあるから黒本なども買ってみようかと思います。
時間の余裕ができたらカンペも作っておいてみたいです。そうしたらqiitaにも載せるかもしれません。
qiitaには既にそのような纏めを載せている人も沢山いますし。私も一部読んで勉強しました。このような記事も自分なりに書いてみたいです。
それに次回の試験は新しいシラバスになりますし。来年から受験する人にも役に立つでしょう。
でも今はまだそこまで考えなくてもいいですね。とりあえず合格の確率は0ではないからまず結果発表が出てから考えます。
最後に、今回はただ文句が多くて無駄に長い記事ですが、ここまで読んでいただいてありがとうございます。
結果(2024年9月24日発表)
2024年9月24日に結果発表が送られました。どうやら無事に合格したようです!
最初はもう駄目だと思って覚悟しましたが、結局合格になって嬉しいです。今回は意外と合格ラインが低いかもしれません。
では受験のための勉強はここで終了となりますが、これからも人工知能に関する勉強は続いていきます。