社会と情報及び情報の科学

ア

次の説明文の空欄

1

コ～に入る最も適切な言葉を選択肢から選び，それぞれ番号で答えなさい。
，主記憶装置，一般的なコンピュータを構成する装置を機能ごとに制御装置， ア入力装置，出力装置，外部記憶装置などに大まかに分けることができる。広く普及している PC もその構造は同じでイは入力装置で， ウは出力装置であるが，その両方の機能を持ち合わせるような機能を持つエ

メインメモリは主記憶装置である。 オは制御装置とは入力装置でもあり出力装置でもある。
アの機能が一体化している。しかし最近の PC はグラフィック機能に関しては処理の分岐は少ないが多数のデータオを扱うので演算の規模が大きくすべての演算をカでは行わずと呼ばれる専用の部品に代行させてグラフィック機能の処理は行われている。多数のデータを使った規模の大きい演算を実行する能力が注目されて，近年ではグラフィック用の演算だけでなく汎用的な演算ができるようにカの機能が進化した。そのため多数のデータを使った規模の大きい演算の需要が大きい AI 分野を中心にカをグラフィック機能以外で活用するという取り組みが広がっている。
スマートフォンもその構造は基本的に同じで前述したようにと出力装置を構成しているがキエによって入力装置も搭載しており画像を入力することもできる。また電話の機能を持つため当然ながら音声を入力する

クと音声を出力する載しているため音声の入出力をさせることもできる。近年のスマートフォンは能力が向上しているためそれらの入力と
コ

カ

ケ

も搭
カのの能力を活用した，AI 分野の高機能なが登場しつつある。

選択肢⓪

タッチパネル①

マウス②

ディスプレイ③

マイク④スピーカー

⑤

アプリ

⑥

CPU

⑦

GPU

⑧

カメラ

⑨

演算装置

情－1

2

二分探索木に関する説明文をまとめた下記の文章を読み，次の各問い（問 1 ～
問 4 ）に答えなさい。

二分探索木は，二分木の各ノードにデータを持たせることにより探索を行えるようにした木である。各ノードが持つデータは，そのデータから出る左部分木にあるどのデータよりも大きく，右部分木のどのデータよりも小さいという条件がありこれを利用して効率的に探索することが可能となっている。
ここで簡単な二分木を作ってみることにする。例えば， 1 ， 3 ， 5 ， 7 ， 8 ，10，14，16，18という数があったとする。二分木は
1 ．新しいノードの値が現在のノードよりも小さい場合，左の子ノードとして追加
2 ．新しいノードの値が現在のノードよりも大きい場合，右の子ノードとして追加という単純なメカニズムで作ることができる。
最初は単純にランダムに「 8 」を選んだとする。「 8 」の次に「14」を選んだ場合，「 8 」よりも「14」の方が大きいため，「 8 」の右の子ノードとして追加される。その状態を図 1 に示す。
814
図1二分木の作り方 1

その次に「 3 」が選ばれたとする。「 3 」は「 8 」よりも小さいノードであるため，「 8 」の左ノードとして追加する。その状態を図 2 に示す。
83
図214二分木の作り方 2情－2この操作を繰り返せば，図 3 のような二分木を構築することが可能である。
81431510167
図317二分木の作り方 3

次に，二分探索木の探索方法について示す。
1 ．根（一番上のノード）からスタート
2 ．探索したい値と現在のノード（着目ノード）を比較（ア）探索したい値と現在のノードが等しい場合，そのノードを返す（イ）探索したい値が現在のノードよりも小さい場合，左の子ノードに移動し 2 ．
を行う（ウ）探索したい値が現在のノードよりも大きい場合，右の子ノードに移動し 2 ．
を行う
これらについて，値を見つけるかノードがなくなるまで続ける。

情－3

問1

下記①～④のうち，二分探索木になっている二分木はどれか選び，番号をマークしなさい。 ア選択肢①1715101914②191717162015③21171491916④18211719920161418

情－4

問2

10個のノードからなる下記の図 4 の二分木の各ノードに 1 から10までの値を一意に対応するように割り振ったとき，ノード a，b の値の組み合わせとして最も適切なものを選び，番号をマークしなさい。 イ175a4b

図41 ～10を配置した二分木

選択肢①a= 6 ，b= 7②

a= 6 ，b= 8③

a= 6 ，b= 9④

a= 6 ，b=10⑤

a= 7 ，b= 6⑥

a= 7 ，b= 8⑦

a= 7 ，b= 9情－5

問3

図 3 の二分木について 7 を探索する際，何回のノードの移動が必要かその回数を数字で答えなさい。 ウ

空の二分木に「 8 」，「13」，「 4 」，「 2 」，「 9 」，「 7 」，「 6 」の順にデータを与え問4たときにできる二分探索木はどれか選び，番号をマークしなさい。 エ選択肢①②17842178967421397136③④17842178136429776情－6139近年流行している ChatGPT の仕組みを知りたく，鈴木さんは，GPT は，Genera-3

tive Pretrained Transformer の略であり，特に，その Transformer と呼ばれる部
分の Attention という機構が非常に有効に働いているということを書籍で読んだ。
それをまとめた下記の文章を読み，次の各問い（問 1 ～ 問 4 ）に答えなさい。

鈴木さんはインターネットを検索した結果，文献［ 1 ］の Attention is all you need という論文に Attention と呼ばれる機構がどのように計算されるのかが記述してあることがわかった。
Attention は注意機構と呼ばれ，重要な部分を取り出すための計算手法で，次のような式で表されると記述があった。

（Attention（Q, K, V）= softmax）

QKTVdkQ は queries，K は keys，V は values とあり，dk は K の次元数と記述があった。
［ 1 ］Vaswani, Ashish, et al. “Attention is all you need.” Advances in neural information processing systems 30（2017）.
しかし，鈴木さんは全く理解ができなかったため，その分野に詳しい先生にざっくりとしたイメージを持つための解説を受けた。
Attention の中でも Q，K，V を全く同じものに置いて計算する Self Attention（自己注意）を理解すると，イメージしやすいと教わった。
まず，この Q，K，V は行列と呼ばれ，列ベクトルと集めたものと考えればよい。列ベクトルを集めたものである行列を作る意味としては，言葉を扱うためには，コンピュータの中で数値に変換する必要があることと教わった。例えば，ある単語と決められた次元数の列ベクトルで表現するのだが，その単語同士の意味が近ければ，変換した列ベクトル同士が近くなるように学習をして割り当てることを Embedding と呼ぶ。
今回は，Self Attention（自己注意）を理解するために，「私の好きな食べ物はカレーです」という文章の中で，それぞれの単語がどのように関係しているか計算するために，上（ d ）を計算して，この計算の効果を実感するこ記 Attention（Q, K, V）の式の softmaxととした。

QKTk

まずは，「私の好きな食べ物はカレーです」を「私」「の」「好きな」「食べ物」「は」「カレー」「です」という 7 つの単語に分解をした。これらの単語の Embedding する必要があるのだが，本来はこれについても学習をして，適切な列ベクトルに変換すべきである。
しかしながら，今回は簡単化のために，Self Attention の結果がうまく出るよう，事前に計算をした結果，次のように各単語を 2 次元の列ベクトルであるとした。

情－7私=3124322,の =, 好きな =, 食べ物 =,は =, カレー =, です =1442312Attention の式の中の Q, K, V は行列と呼ばれ，列ベクトルと集めたものであることと，Self Attention（自己注意）を計算する場合，Q, K, V は全く同じ行列となることか
3 1 2 4 3 2 2ら，上記の列ベクトルを集めた行列，Q = K= V = 1 4 4 2 3 1 2 ということになる。
Attention（Q, K, V）の式の中にある QKT の式だが（KT の T は転置を表すが，この意味を分からなくても下記の説明で解ける），下記のような図 1 を作ることと同義となる。
私の好きな

食べ物

はカレーです私

10710ア1279の717181215610

好きな1018イ1618812

食べ物

1412ウ2018エ12は1215181818912カレー76810956です8101212126オ

図1QKT の計算結果

この具体的な計算方法だが，（1）式としては以下のようなベクトル同士の内積と同値となる。
v1 =x1y1v1・v2 =, v2 =
x1y1・x2y2x2y2= x1 × x2 + y1 ×y2

例えば行が「私」，列が「好きな」の数値を計算する場合，答えは10となっているが計算方法は以下のようになる。

私 ・好きな =31・24= 3 × 2 + 1 × 4 = 10

各ベクトル同士で上記の計算を行い，図 1 が完成することが結果的に，QKT を計算したことになる。

情－8さらに，プログラミングを行うことによって，（2）上記の値に1dkをかけた上で softmax（ d ）を計算したことになる。この計算結果をヒーを計算した。これによって，softmax

TQKk

トマップで示したものを図 2 に示す。の0.4

食べ物 好きな私

0.50.3です カレー

は0.20.1

私の図2

好きな 食べ物（ ）softmax

はカレー です

QKTの計算結果のヒートマップdk

図 2 の結果から，「私の好きな食べ物はカレーです」という文章の中の単語同士の重要（3）な部分が導出できていることが分かる。

問1

図1のア～オについて，適切な数値を下記の選択肢から選び，それぞれ番号をマークしなさい（同じ数値を選択しても構わない）。
選択肢⓪8①9②10③12④13⑤14⑥15⑦16⑧18⑨20情－9問2

下線部（1）について，このようにそれぞれのベクトル同士の内積の計算をすることは何を意味しているのか最も正しいものを下記の選択肢から選び，番号をマークしなさい。 カ選択肢①

単語の分割した分割の方法の妥当さを表現しようとしている②

分割した単語を Embedding した値の妥当性を表現しようとしている③

分割した単語同士の近さ，遠さを数値で表現しようとしている④

分割した単語に付与された重みを総量として同様の値に調整しようとしている

問3

下線部（2）について，このような計算をすることは何を意味しているのか最も正しいものを下記の選択肢から選び，番号をマークしなさい。 キ
選択肢①

単語の分割した分割の方法の妥当さを表現しようとしている②

分割した単語を Embedding した値の妥当性を表現しようとしている③

分割した単語同士の近さ，遠さを数値で表現しようとしている④

分割した単語に付与された重みを総量として同様の値に調整しようとしている

問4

下線部（3）について，図 2 のヒートマップから何が導出され，文章生成にいかされているかの考察について正しく述べられていないものを下記の選択肢から選び，番号をマークしなさい。 ク
選択肢① 「カレー」行で一番大きい値が「食べ物」であるため，‌「カレー」と「食べ物」が近いという単語の意味的なものを抽出できた② 「カレー」行で小さな値が「の」であるため，‌「カレー」と「の」が遠いという単語の意味的なものを抽出できた③‌この計算は，周辺の単語しか計算ができず，長い文章に含まれる単語同士の関係性を抽出することができない④ 「私」の行の「私」‌，「の」の行の「の」など同じ単語同士は対角上に配置され，比較的大きな値を取ることが多い

情－10

コンピュータでの画像の基礎的な描画のプログラミングに関する以下の文章を読

4

み，次の各問い（問 1 ～ 問 4 ）に答えなさい。

コンピュータの画面について x 座標と y 座標を用いた x y 平面を用いて画面上の位置を定義する。コンピュータの画面の左上の角を原点（ 0 ， 0 ）とし，左下の角を（ 0 ，100），右上の角を（100， 0 ），右下の角を（100，100）とする。ただしコンピュータの画面の縦と横の比は 1 ： 1 の正方形の画面とする。
コンピュータの画面に対する描画に使える命令は以下とする。
・座標（a，b）から座標（c，d）に黒い直線を引く
コンピュータの画面に対する描画のプログラムは以下のように記述するものとする。
例 1 ：画面の 4 つの角について対角同士を直線でつないだ×を描画する場合
・座標（ 0 ， 0 ）から座標（100，100）に黒い直線を引く
・座標（ 0 ，100）から座標（100， 0 ）に黒い直線を引く
例 2 ：‌画面の 1 辺の大きさの半分の大きさの辺をもつ正方形を画面の中心に描画する
場合
・座標（25，25）から座標（25，75）に黒い直線を引く
・座標（25，75）から座標（75，75）に黒い直線を引く
・座標（75，75）から座標（75，25）に黒い直線を引く
・座標（75，25）から座標（25，25）に黒い直線を引く

問1

次の文章を読み，空欄に入る最も適切な語句を選択肢の中から選び，その番号を， イマークしなさい。 ア， ウ

一般に，写真などの画像は，平面空間上で色の濃淡が連続的に分布したアナログデータである。画像はまず画像を画素という小さな区画に分割し，それぞれの濃淡をよみとる
アを行い，次に区画の濃淡を数値に変換する
ウ

値を 2 進法に変換する

イをする。最後に量子化②した数を行うことでディジタルデータに変換することができる。

選択肢
①イ符号化

③暗号化

情－11

④標本化

描画プログラム A を以下のように定義する。
・座標（25，75）から座標（75，75）に黒い直線を引く
・座標（25，75）から座標（25，25）に黒い直線を引く
・座標（75，75）から座標（75，25）に黒い直線を引く

問2

描画プログラム A はロの字型のうち一辺が閉じていないコの字型の図形が表示されるが閉じていない辺として正しいものを選択肢の中から選び，その番号をマークしなさい。 エ①

ロの字型の上の辺②

ロの字型の下の辺③

ロの字型の左の辺④

ロの字型の右の辺描画プログラム B を以下のように定義する。
・座標（25，75）から座標（75，75）に黒い直線を引く
・座標（75，25）から座標（25，25）に黒い直線を引く
・座標（25，75）から座標（75，25）に黒い直線を引く

問3

描画プログラム B はアルファベットに近い図形を表示する。文字の回転や反転をしていないとして，選択肢の中からもっとも近い形状の文字を選び，その番号をマークしなさい。 オ①

N

②

S

③Z

④Y

情－12

問4

90度回転したり上下反転したりしていない正しい向きのアルファベットの「M」に近い図形を描画する描画プログラムとしてもっとも適切なものを選択肢の中から選び，その番号をマークしなさい。 カ①
・座標（25，75）から座標（25，25）に黒い直線を引く
・座標（75，75）から座標（75，25）に黒い直線を引く
・座標（25，75）から座標（50，25）に黒い直線を引く
・座標（75，75）から座標（50，25）に黒い直線を引く②・座標（25，75）から座標（25，25）に黒い直線を引く
・座標（75，75）から座標（75，25）に黒い直線を引く
・座標（50，75）から座標（25，25）に黒い直線を引く
・座標（50，75）から座標（75，25）に黒い直線を引く③
・座標（75，25）から座標（25，25）に黒い直線を引く
・座標（75，75）から座標（25，75）に黒い直線を引く
・座標（75，50）から座標（25，25）に黒い直線を引く
・座標（75，50）から座標（25，75）に黒い直線を引く④
・座標（75，25）から座標（25，25）に黒い直線を引く
・座標（75，75）から座標（25，75）に黒い直線を引く
・座標（75，25）から座標（25，50）に黒い直線を引く
・座標（75，75）から座標（25，50）に黒い直線を引く

情－13