応用情報技術者試験(AP)平成30年度春期午前問題を振り返ってみた パート①

2018/04/19
 

平成30年度春期 午前問1

AIにおけるディープラーニングに最も関連が深いものはどれか。

ア 試行錯誤しながら条件を満たす解に到達する方法であり、場合分けを行い深さ優先で探索し、
解が見つからなければ一つ前の場合分けの状態に後戻りする。

イ 神経回路を模倣した方法であり、多層に配置された素子とそれらを結ぶ信号線で構成され、
信号線に付随するパラメタを調整することによって入力に対して適切な解が出力される。

ウ 生物の進化を模倣した方法であり、与えられた問題の解の候補を記号列で表現してそれを遺伝子に
見立てて突然変異、交配、とう汰を繰り返して逐次的により良い解に近づける。

エ 物質の結晶ができる物理現象を模倣した方法であり、温度に見立てたパラメタを制御して
大ざっぱな解の候補から厳密な解の候補に変化させる。

解答

正解:イ

AI(人工知能)とは何か

まずはAIとは何かについてなのですが、チェスとか将棋とかで人と戦ったりするあれが
人工知能だなっていうのはなんとなく分かるんですけど、いざ言葉にしろと言われると難しいので、Wikipediaで調べてみました。
 

AIとは「人間の知的能力をコンピュータ上で実現する、
様々な技術・ソフトウェア・コンピューターシステム
」(Wikipediaより引用)だそうです。

 
問題文の中にあるディープラーニングは、このAIに含まれるものでAIの中にある
マシンラーニングの中にディープラーニングが含まれているという位置付けなります。

・AI(人工知能)
⇒マシンラーニング(機械学習)
∟ディープラーニング(深層学習)

 

マシンラーニング(機械学習)とは何か

 

マシンラーニング(機械学習)とは「人間が自然に行っている学習能力と
同様の機能をコンピュータで実現しようとする技術・手法のこと。」(
Wikipediaより引用)だそうです。

 
例えば、迷惑メールが届いたとき、人間は突然「私の夫がオオアリクイに食べられてしまったので、
遺産を全部あなたに譲ります!」みたいな一時流行したクレイジーなスパムメールを受信してしまった
時なども、ちゃんと迷惑メールフォルダに振り分ける等の対応が自然にできるのですが、このような
パターンをコンピュータに学習させることにより実現したのが迷惑メールフィルタだったりするみたいです。

他にも大量の顔写真をコンピュータに学習させ、顔認識をさせるといった顔認証技術にも応用されています。

身近なものだとデジタルカメラなどに使われていますよね。
 

ディープラーニング(深層学習)

 
ディープラーニング(深層学習)とは、

多層のニューラルネットワーク(神経回路網)による機械学習手法である。」(Wikipediaより引用)だそうです。

先ほどの迷惑メールフィルタの例を使って違いを説明すると、
「私の夫がオオアリクイに食べられてしまったので、わたしの遺産全部譲ります!」
なんてクレイジーなメールだという感覚を人間が学習させるのではなく、コンピュータ自ら
「目のつけどころ(特徴量)」を探すように学習していきます。

SF的に考えれば、映画「ターミネーター」シリーズのように機械が自ら意思を持って学習し、
人間に反乱を起こしたりしてしまう、そんな時代がすぐそこまで来ているということなんですかね。
 

正解を導き出すキーワード

「神経回路」
このキーワードが入っていれば、ニュートラルネットワークのことで
ディープラーニングを指すと覚えておけばOKだと思います。



平成30年度春期 午前問2

表は、文字A~Eを符号化したときのビット表記と、それぞれの文字の出現確率を表したものである。

1文字あたりの平均ビット数は幾らか。

ア:1.6
イ:1.8
ウ:2.5
エ:2.8

解答

正解:イ

正解を導き出すキーワード

「確率」

確率という言葉が出てきたら、大抵掛け算をして100%に直すだけで
ほとんど解答に近づけると思います。

今回の問題は、ビット表記をビットの個数に直すことから始めます。

A→1個、B→2個、C→3個、D→4個、E→4個 ただ1と0の数字を数えるだけです。

あとは出現確率を%から1を100%とした値に直してそれぞれ掛けていくと完了です。

ビットの個数×出現確率

A→1×0.5=0.5
B→2×0.3=0.6
C→3×0.1=0.3
D→4×0.05=0.2
E→4×0.05=0.2

0.5+0.6+0.3+0.2+0.2=1.8

これで一文字あたりの平均ビット数は1.8だと分かります。




平成30年度春期 午前問3

ハミング符号とは,データに冗長ビットを付加して, 1ビットの誤りを訂正できるようにしたものである。

ここでは,X1,X2,X3,X4の4ビットから成るデータに,3ビットの冗長ビットP3,P2,P1を付加した
ハミング符号X1X2X3P3X4P2P1 を考える。

付加ビットP1,P2,P3は,それぞれ

X1⊕X3⊕X4⊕P1=0
X1⊕X2⊕X4⊕P2=0
X1⊕X2⊕X3⊕P3=0

となるように決める。ここで⊕は排他的論理和を表す。

ハミング符号 1110011 には1ビットの誤りが存在する。

誤りビットを訂正したハミング符号はどれか。
 

解答

正解:ア
 

正解を導き出すキーワード

「1ビットの誤り」
 
このキーワードが出てきたときは、問題文に書いてある式に、各ビットをそれぞれ当てはめると答えが分かります。

X1X2X3P3X4P2P1にハミング符号1110011をそれぞれ当てはめます。

式に当てはめると、
X1⊕X3⊕X4⊕P1=0 → 1+1+0+1=1
X1⊕X2⊕X4⊕P2=0 → 1+1+0+1=1
X1⊕X2⊕X3⊕P3=0 → 1+1+1+0=1
すべて異なる解になってしまいます。

ということは、すべての式に含まれているX1が誤りのため、訂正が必要となります。



平成30年度春期 午前問4

サンプリング周波数40kHz、量子化ビット数16ビットでA/D変換したモノラル音声の1秒間のデータ量は、何kバイトとなるか。
ここで、1kバイトは1,000バイトとする。

ア:20
イ:40
ウ:80
エ:640
 

解答

正解:ウ
 

正解を導き出すキーワード

「バイトとビットの関係」
 
サンプリング周波数40kHzは、1秒間に40000回データを取得できるという数値になっています。

なのでこの数字に16ビットを掛けるだけで答えは出ます。

40k×16=640kバイト

これをビットに変換するのが、この問題の肝になります。

やり方はとても簡単で、1ビットは8バイトなので8で割るだけです。

640kビット÷8=80kバイト

答えは80kバイトとなります。




平成30年度春期 午前問5

非負の整数m,nに対して次のとおりに定義された関数Ack(m,n)がある。Ack(1,3)の値はどれか。

ア:3
イ:4
ウ:5
エ:6
 

解答

正解:ウ
 



(adsbygoogle = window.adsbygoogle || []).push({});

平成30年度春期 午前問6

相異なるn 個のデータが昇順に整列された表がある。この表をm 個のデータごとのブロックに分割し、
各ブロックの最後尾のデータだけを線形探索することによって、目的のデータの存在するブロックを探し出す。

次に、当該ブロック内を線形探索して目的のデータを探し出す。このときの平均比較回数を表す式はどれか。

ここで、m は十分大きく、n はm の倍数とし、目的のデータは必ず表の中に存在するものとする。

解答

 
正解:イ

正解を導き出すキーワード

「線形探索」
 
問題文の中に線形探索を2回していると書いてあるので、線形探索をそれぞれ式にして合わせることで答えが出ます。

各ブロックの最後尾のデータだけを線形探索平均比較回数は
→n/m÷2=n/2m回

当該ブロック内を線形探索平均比較回数は
→m/2回

この2つの式を合わせると、イの答えを導き出すことが出来ます。




平成30年度春期 午前問7

オブジェクト指向プログラミングにおいて、同一クラス内に、メソッド名が同一であって
引数の形、個数又は並び順が異なる複数のメソッドを定義することを何と呼ぶか。

ア:オーバーライド
イ:オーバーロード
ウ:カプセル化
エ:汎化
 

解答

正解:イ
 

正解を導き出すキーワード

「同一」
 
それぞれの説明は以下の通りです。

オーバーライド
スーパークラスで定義されたメソッドをサブクラスで再定義すること
オーバーロード
同一クラス内に、メソッド名が同一で、引数の型、個数、並び順が異なる複数のメソッドを定義すること
カプセル化
オブジェクト内の詳細な仕様や構造を外部から隠蔽すること
汎化
複数のクラスの共通する性質をまとめて、抽象化したクラスを作ること

大体この4つがセットで選択肢になっている事が多いので、
同一」と問題文に入っていれば、オーバーロードだくらい決め打ちで問題ないと思います。



平成30年度春期 午前問8

再帰的な処理を実現するためには、再帰的に呼び出したときのレジスタ及びメモリの内容を保存しておく必要がある。

そのための記憶管理方式はどれか。

ア:FIFO
イ:LFU
ウ:LIFO
エ:LRU
 

解答

正解:ウ
 

正解を導き出すキーワード

「再帰的」
 
FIFO(First In First Out)
先入れ先出しの記憶管理方式
LFU(Least Frequently Used)
参照頻度が最も少ないデータを置換え対象とする記憶管理方式
LIFO(Last In First Out)
後入れ先出しの記憶管理方式
LRU(Least Recently Used)
最後に参照されてから最も時間が経過しているデータを置換え対象とする記憶管理方式

再帰的な処理というキーワードから
後に入れたものを先出するFIFOが答えだと分かります。

この記事を書いている人 - WRITER -
東京でシステムエンジニアをしています。 話題になっていることや気になるガジェット、 趣味の野球、競馬、競輪について書いていきます。










- Comments -

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Copyright© システムエンジニアに就職してみた , 2018 All Rights Reserved.