スキルアップしたい

AI実装検定のサンプル問題を解説します

2020年3月18日

 

「AI実装検定」のサンプル問題、答えがないんだけど・・・

 

「AI実装検定」とは、千代田区に本社を置くStudy-AI株式会社が主催するAI関連の検定。

同社はE検定の公式認定プログラムを手掛けるなど、JDLA(日本ディープラーニング協会)とつながりの深い企業です。

 

公式サイトで紹介されている検定問題サンプルを試しに解いてみました。

学習の参考にして頂けますと幸いです。

 

本記事の信頼性

 

大手IT企業所属の、自称「ビジネス支援型データサイエンティスト」。

元営業という異色の経歴を活かしながら、金融・製造・流通業のお客様を中心にAI活用コンサルや定着支援・人材育成・講演活動など、幅広く活動しています。

ヤエリ(@yaesuri_man

普段のお客様との会話の中でよく話題に上る内容。

名だたるデータサイエンティストの先輩を差し置いてあまり大それたことは言えませんが、ド素人である文系営業出身の私ならではの視点での紹介は喜んで頂けることが多いです。

 

AI実装検定とは

 

改めて、「AI実装検定」とは何か?

簡単に振り返ります。

 

◀スマホは左スクロールで表示できます

AI実装検定
対象者 ディープラーニングの基礎能力を判定したい人
受験資格 制限なし
試験概要 60分60問 (多肢選択式)オンライン実施(自宅受験)
受験料 3,500円(税込)

 

ポイントは

自宅受験(webやテキスト参照可能)だが、時間が少ないのでじっくり調べる時間は無点。

60分で60問。

1問あたり60秒以内、見直しの時間を考えると、40秒~45秒で解きたいところ。

サンプル問題を解く際は、回答時間を意識すると良いでしょう。

 

AI実装検定のサンプル問題を解説します

 

「AI実装検定」の公式サイトは以下。

こちらに12題のサンプル問題が掲載されています。

1問あたり40秒、8分以内に解くことを目標に、まずはやってみましょう。

 

問題その1:AI編

 

入力層と出力層

 

ニューラルネットワークとは生物の脳の神経回路網を参考に考案された数理モデルである。ニューラルネットワークには「順伝播」と呼ばれる処理がある。下記はこのニューラルネットワークの基本的な構造と順伝播の仕組みについて図示したものである。それぞれの設問に答えよ。

 

 

一番最初に情報を受け取るニューロンの集合を(ア)層と呼ぶ。(ア)に当てはまる選択肢は次のうちどれか。

  • 一次
  • 認識
  • 入力
  • 初期

 

答え:入力(層)

 

ニューラルネットワークにおける順伝播の処理は、

  • 入力層でデータを受け取る
  • 隠れ層で重み処理
  • 出力層に結果吐き出し

となりますので、「入力(層)」が答えです。

なお(イ)は出力層。

この設問には表示されていませんがが、(ア)と(イ)の間で学習に応じて重みを変える役割をするのが「隠れ層」です。

 

順伝播の計算

 

ニューラルネットワークにおける順伝播の処理はPythonなどのプログラミング言語を用いることで比較的簡単に実装することができる。下記は2つのニューロンを用いた順伝播の処理を図示している。それぞれの設問に回答せよ。

 

 

小問①:コンピュータは画像を認識するためには、画像を構成する最小要素「ピクセル」がもつ(ウ)の値を受け取る。(ウ)は各色に対応した0〜255の値をとる。(ウ)に当てはまる選択肢は次のうちどれか。

  • ソースコード
  • カラーコード
  • イメージコード
  • ユニコード

 

答え:カラーコード

 

設問に合う答えは「カラーコード」。

よく「R:255 G:255 B:255」などで表記されるアレです。

なおその他選択肢はそれぞれ以下。

  • ソースコード:コンピュータプログラムを表現する文字列のこと
  • イメージコード:この言葉は存在しません。おそらく「カラーコード」のひっかけ。
  • ユニコード:コンピュータが使う「『文字』と『文字に割り当てた番号』の対応表」。「符号化文字集合」とも呼ばれる。

 

小問②:x1 , x2 , Weightが下図に示された値をとるとき、a2の値として正しいものは次のうちどれか。

 

 

  • 140
  • 27
  • 20
  • 73

 

答え:27

 

weightの計算ですが、以下のように単純に掛ければ良いです。

  • a1 = x1 * w11 + x2 * w21
  • a2 = x1 * w12 + x2 * w22

つまりa2は、

  • 10 * 2 + 7 * 1 = 27

となります。

 

行列の掛け算

 

ニューラルネットワークにおける順伝播の処理は、numpyで表現した行列計算を用いることで実装することができる。下記の図1は順伝播の処理を簡易的に図示したもの、図2は図1の処理をnumpyを用いて行なったものである。それぞれの設問に答えよ。

 

 

図2において、(ク)に当てはまる正しい選択肢は次のうちどれか。

  • 2
  • 2.8
  • 8
  • 8.3

 

答え:2.8

 

numpyの配列の中で重みを定義してあげる方法です。

w = np.array([[2,8],[7,3]])

ですね。

なお、2と8、7と3の間にそれぞれあるのは、「.(ピリオド)」ではなく「,(カンマ)」です。

「,(カンマ)」で区切って複数の値を指定しています。

 

バイアス項の導入

 

ニューラルネットワークにおける順伝播の処理には伝播された情報の認識精度を向上させる役割の「バイアス項」がある。バイアス項は行列の足し算を用いることで実装することができる。それぞれの設問に答えよ。

下図はバイアス項を含む順伝播の処理を図示したものである。a1の値を求める計算式として正しいものは次のうちどれか。

 

 

 

  • 選択肢1 x1 × w11 + x2 × w21 + b1
  • 選択肢2 x1 + w11 + x2 + w21 + b1
  • 選択肢3 ( x1 × w11 + x2 × w21 ) × b1
  • 選択肢4 x1 × w11 + x2 × w21 + b1 × b2

 

答え:選択肢1 x1 × w11 + x2 × w21 + b1

 

設問に書いてある通り「バイアス項は行列の足し算を用いることで実装することができる」です。

2つ前の設問の通り、

x1 × w11 + x2 × w21

を計算した上で、最後にバイアス項を足す(+ b1 する)、選択肢1が正答となります。

 

問題その2:プログラミング

 

Numpy

 

大問①:ニューラルネットワークでは、各層に重みをかけて次の層の値を求める。各々の計算が大量にあるため、行列を利用することで一度に計算を行っている。Pythonでは、行列の計算は、Numpyというモジュールを利用するが、Numpyについて下記の設問に答えよ

w=numpy.array([[w1,w2],[w3,w4]])、x=numpy.array([[x1],[x2]])とする時、w.dot(x)について正しく述べたものを選べ

  • 選択肢1 w.dot(x)=[[x1*w1+x2*w2],[x3*w1+x4*w2]]
  • 選択肢2 w.dot(x)=[[x1*w1+x2*w1],[x3*w2+x4*w2]]
  • 選択肢3 w.dot(x)=[[x1*w1+x2*w2],[x3*w2+x4*w1]]
  • 選択肢4 w.dot(x)=[[x1*w1,x2*w2],[x3*w1,x4*w2]]

 

答え:選択肢4 w.dot(x)=[[x1*w1,x2*w2],[x3*w1,x4*w2]] ※設問ミス?

 

これは恐らく設問ミスで、「x」と「w」が逆になってしまっている気がしますね。

(そもそも「x3」「x4」は設問内で定義されていないですし)

意図としては、以下でしょう。

 

 

大問②: ニューラルネットワークの順伝播では、活性化関数としてシグモイド関数を利用することが多い。シグモイド関数を利用すると、すべての実数を0~1の値に変換するため、確率として表現することが可能となる。Pythonでシグモイド関数を定義した下記の図について以下の設問に答えよ。

シグモイド関数のグラフを選べ

 

 

  • (ア)
  • (イ)
  • (ウ)
  • (エ)

 

答え:(ウ)

 

設問にもありますが、「シグモイド関数」は、入力した値を0から1の間に収めてくれる関数の1つ。

多くの自然界に存在する事柄は、このようなS字曲線を取ります。

また特徴として、1に近づくほど1そのものにならない性質があります。

ちなみに機械学習でよく使われるアルゴリズム「ロジスティック回帰」は、このシグモイド関数が利用されています。

シグモイド関数にフィットさせるような予測モデルが「ロジスティック回帰」。

詳細は以下のサイトをご参照ください。

 

Pandas

 

ニューラルネットワークにおいて、直接的な計算はnumpyやscipyで行うのが一般的であるが、Pandasは、データの取り込みや事前のデータ加工あるいは、最終データの出力に利用される。以下Pandasについて設問に答えよ

下記図は、CSVからデータを取り込み、加工したのちに、numpyのarrayへと変換を行っているものである。空欄(ア)に当てはまるものを選べ。

 

 

  • read_csv
  • to_csv
  • read_txt
  • to_txt

 

答え:read_csv

 

pandasの関数「pd.read_csv()」ですね。

kaggleにチャレンジしたことのある方は余裕でしょう。

なお以下の書籍を一読すれば、この手の設問は簡単にクリアすることができるのでおすすめです。

超簡単!AIの作り方「機械学習のための前処理入門」の素晴らしさを語る

続きを見る

 

Sciket-learn

 

Pythonにはたくさんの機械学習モジュールがあるが、その一つがScikit-Learnである。Scikit-Learnは、数値計算ライブラリのNumPyとSciPyとやり取りするよう設計されており、実用面では、Evernoteで利用されている。Scikit-learnについて設問に答えよ

下図は、Scikit-learnを利用して、サポートベクターマシーンによる教師あり学習を行っている図である。(エ)で行っている作業について正しく述べたものを選べ

 

 

  • トレーニングを行っている
  • trainデータとtestデータに分割している
  • チューニングを行っている
  • trainデータとtestデータをそれぞれ加工している

 

答え:trainデータとtestデータに分割している

 

教師あり機械学習を行う際は、トレーニングデータ(学習に使うデータ)と、テストデータ(学習結果の検証に使うデータ)を分けてあげる必要があります。

(そうしないと、学習した結果が正しく検証できない)

「train」「test」というデータセットそれぞれを

  • trainのうちの説明変数
  • trainのうちのターゲット変数
  • testのうちの説明変数
  • testのうちのターゲット変数

に分割する処理を行っているわけです。

 

問題その3:数学

 

数列と行列

 

大問①:主成分分析とは?

多次元データのもつ情報をできるだけ損なわずに低次元空間に情報を縮約する方法!

多次元データを2次元・3次元データに縮約できれば、データ全体を視覚化することができる。視覚化によって、データが持つ情報を解釈しやすくなる。

(例:BMIは体重÷(身長)^2という式で表されるが、体重と身長の2つの成分からBMIという1つの成分になる)

次の選択肢の内、当てはまるものを選びなさい。

 

 

  • 4,9
  • 5,9
  • 6,9
  • 5,6

 

答え:分かりません

 

恐らく設問ミスではないかと思われます。

一応、行列は以下の方向で計算できます。

 

 

大問②:線形変換とは?

線形変換とは数学的な意味でベクトルに行列をかけて行列を作る関数のこと!

また、線形変換を行うことでベクトルの次元を変更し、ベクトルの回転、拡大・縮小を行う。次元を下げる場合は、元々のベクトルに格納されている成分が冗長な情報を有している、あるいはノイズを含んでいる場合に、それらを取り除く効果が期待できます。次元を上げる場合は、元々のベクトル(データ点)の表現では線形分離ができないが、高次元に埋め込むことで分離できる表現を見つける効果が期待できます。

次の選択肢の内、当てはまるものを選びなさい。

 

 

  • ア:10 イ:22
  • ア:5 イ:4
  • ア:-5 イ:-4
  • ア:3 イ:7

 

答え:ア:10 イ:22

 

なるほど。一つ前の問題と画像が重複してしまっているのですね。

解法としては再度掲載しますが、以下。

行列の計算方法を間違わなければ簡単です。

 

 

大問③:ベクトルを使えるとこんなことに繋がる!

コンピュータが言語を扱うときに、単語をベクトル化するWord2Vecという概念があり、これは単語の意味や文法を捉えるために単語をベクトル表現化して次元を圧縮したものである。メリットとしては、単語間の意味に基いて関係性を理解することができるようになる。具体的に言うと、「王様」- 「男」+ 「女」= 「女王」、「パリ」- 「フランス」+ 「日本」= 「東京」といった演算が可能になる。さらに、この手法の延長線としてfacebookよりfasttextという手法が提案された。

次のベクトル計算で、(ア),(イ),(ウ)に当てはまるものを選びなさい。

 

 

  • ア:6 イ:10 ウ:14
  • ア:8 イ:10 ウ:14
  • ア:8 イ:24 ウ:48
  • ア:6 イ:24 ウ:48

 

答え:ア:6 イ:10 ウ:14

 

行列同士の足し算は、そのまま同じ位置同士を足し込んであげればokです。

 

AI実装検定のサンプル問題を解説します やってみた感想

 

以下、実際にやってみた感想です。

 

意外と基礎的な問題に時間を取られる

 

例えば行列計算などは義務教育?(高校数学?)で習っているので誰でも解ける問題です。

が、久しぶりにやると、思いのほか時間を取られてしまいます。

試験前に数Ⅰ、数Ⅱあたりは一周しておいた方が良さそうです。

 

pythonのコーディングをやっておくべき

 

基礎中の基礎ですが、pythonのコーディングをやっておくべきだなと思いました。

今回のサンプル問題クラスのpythonコードであれば、普段kaggleに接している人であれば瞬殺できるレベルです。

逆に「コードすら書いた事が無い」という人はそうとう厳しいと思います。

文末に紹介している書籍やオンライン講座がおすすめです。

 

まずは設問(選択肢)から読むべき

 

試験テクニックの一つとも言えますが、問題ではなく設問(回答の選択肢)から読むのがおすすめです。

最後のサンプル問題「問題その3:数学 大問③」を見て頂ければ一目瞭然。

結局この問題は、

 

 

という単純な行列同士の足し算を行えれば良いのであって、直前の

大問③:ベクトルを使えるとこんなことに繋がる!

コンピュータが言語を扱うときに、単語をベクトル化するWord2Vecという概念があり、これは単語の意味や文法を捉えるために単語をベクトル表現化して次元を圧縮したものである。メリットとしては、単語間の意味に基いて関係性を理解することができるようになる。具体的に言うと、「王様」- 「男」+ 「女」= 「女王」、「パリ」- 「フランス」+ 「日本」= 「東京」といった演算が可能になる。さらに、この手法の延長線としてfacebookよりfasttextという手法が提案された。

のくだりは、正直読む必要が無いわけです。

馬鹿正直に問題文の頭から順に読み進めるのは時間の無駄。

まずは設問を見て、問題文を読むかどうかの判断をしましょう。

 

設問ミスに時間を取られる可能性あり

 

今回の12問のサンプル問題であっても、2問も設問ミス?がありました。

まだまだ歴史の浅い試験なのでしょうがないのかもしれませんが、本番の60問中、数問は設問ミスがあるものと考えておいた方が良いでしょう。

さらに厄介なのが、ある程度の知識が無いと、自信を持って「これは設問ミスだ!」と言いきれない点。

分からない問題は潔く飛ばすくらいの覚悟が必要かもしれません。

 

AI実装検定の効果的な試験対策は?

 

ここからは合格するためにおすすめの図書をご紹介します。

 

G検定(ジェネラリスト) 公式テキスト

 

言わずと知れた、G検定の公式テキスト。

ご紹介の通り「AI実装検定」はG検定・E検定の下位資格になりますので、こちらのテキストを理解できれば十分合格可能です。

また公式本と並行し、「徹底攻略 ディープラーニングG検定 ジェネラリスト問題集」、通称「黒本」もおさらいしておくと良いでしょう。

こちらも、試験合格へのエッセンスがギュッと詰まっています。

 

機械学習のための「前処理」入門

 

もう、多くは語りません。

これ一冊さえやれば、とりあえずkaggleに挑戦することができます。

私の人生を変えてくれた本のうちの一つ。

 

超簡単!AIの作り方「機械学習のための前処理入門」の素晴らしさを語る

続きを見る

 

Udemy「みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習」

 

 

ベネッセが主催する、プログラミング未経験者を対象にしたコース。

数学や統計的な知識はそこそこに、文字通り人工知能と機械学習をゼロから学習できます。

受講生2万人以上、4千人以上の評価者から、5段階中4.0の評価を得ている、万人におすすめできる優良講座。

キャンペーンの有無にもよりますが、1,000円から受講できるので、高額なAIオンライン講座の中では一番現実的な選択肢です。

当然ですが、環境はWindowsでもMacでも大丈夫。

 

それでも不安な人は、試験中に検索可能な電子書籍がおすすめ~無料で入手可能~

 

実質、試験中の調べ物が許されているこの資格。

kindle unlimitedに対応している有志の電子書籍を準備し、試験中に検索できるようにしておくのがベストです。

しかもkindle unlimitedは、初回登録日から30日間は無料。

30日以内に解約すれば、実質タダで利用できてしまいます。

 

 

なおAI実装検定は、まだ歴史が浅いため、専門の書籍が発売されていません。

そこで、上位資格であり種類が豊富なG検定の書籍を活用しましょう。

いずれも、kindle unlimitedに登録すればタダで読むことができます。

 

まずは神草 経知/Keiji Kamigusa @chqBYIOmA0SYl1F さんという方がまとめている問題集。

 

 

 

またこちらは、ゆき @yuki2028boc さんという方の書籍。

できるだけ楽に合格するための、完全特化した書籍です。

シラバスに完全特化しており、かつkindle版なので、用語をまとめたりする必要がありません。

 

 

これらの電子書籍は、全てkindle unlimitedに登録すれば無料で読めます。

30日以内であればタダで解約できますので、試験のお守りとして準備しておくことをおすすめします。

 

 

AI実装検定のサンプル問題を解説します まとめ

 

JDLA G検定やE検定と比べて、当資格の認知度はまだまだこれから。

サンプル問題の追加など、追加情報がありましたら随時こちらの記事を更新させて頂きます。

 

G検定「手抜き」合格テクニック


 

約一週間、計20時間の勉強時間で合格した私。

当サイトで紹介しているG検定「手抜き」合格テクニックをnoteの記事にまとめました。

時間の無い方は是非こちらをご覧ください。

 

 

その他、G検定関連のまとめ記事とおすすめ書籍はこちら。

合格ラインや過去問、勉強法、過去の合格発表タイミングなどなど、G検定関連だけで20本近くの記事があります。

是非これらを読んで合格して頂いて、次のレベルを目指してください。

 

【2020年版】G検定関連の記事まとめ(JDLA ディープラーニング ジェネラリスト検定)

続きを見る

 

おすすめ参考書


 

 

 

 

時間があるならオンライン講座


 

 

 

-スキルアップしたい

Copyright© 営業アップデート , 2020 All Rights Reserved.