【応用情報技術者】第1章 基礎理論について

応用情報技術者
この記事は約23分で読めます。

2025年11月より応用情報技術者の勉強をしておりましたが、テキストを1巡したので、次はブログにまとめながら学習を進めて行こうという段階に入りました。

応用情報技術者の資格取得を目指す皆さまの力になれればいいなと思い作成しております。

方針としては、基本情報技術者の資格を取った私でも知らない用語が圧倒的に多いということから、暗記を中心に話を進めて行こうと思っております。

暗記を行うにあたり、Ankiアプリの併用を進めます。Ankiアプリのインストール方法・及び使い方については以下のブログを参考にしていただければと思います。

また、暗記をするためのワード選出は、中国製の生成AI「Qwen」を使用しました。理由として、検索ワードが多いため無制限に使える生成AIが望ましかったからです。

それではいってみよー!

スポンサーリンク

第1章 基礎理論

集合と論理

単語意味
集合論理集合:「条件を満たすもの」の集まり。
例:
A={1,2,3}
「偶数の集合」→ E={xx は整数で xmod2=0}

論理:命題(真か偽かが決まる文)の真偽を扱うもの。
例:
「2は偶数である」→ 真(T)
「3 > 5」→ 偽(F)
部分集合とべき集合部分集合ABA のすべての要素が B にもある
例:{1,2}{1,2,3}
べき集合(Power Set):ある集合のすべての部分集合を集めた集合 A={a,b} のべき集合:P(A)={, {a}, {b}, {a,b}}
→ 要素数が nの集合のべき集合の要素数は 2n
差集合と対称差差集合AB={xxAxB}
例:{1,2,3}{2,4}={1,3}
対称差(XOR集合):どちらか片方だけに属する要素AB=(AB)(BA)
例:{1,2}{2,3}={1,3}
→ 集合版の「排他的論理和(XOR)」
集合の要素数AB∣=∣A∣+∣B∣−∣AB

3集合なら:
ABC=A+B+CABBCCA+ABC
🔍 重複して数えた分を引いて・足して調整。
命題命題:真(T)か偽(F)かはっきり決まる文
×「おいしい!」→ 主観的 → 命題ではない
○「東京は日本の首都である」→ 真 → 命題
複合(合成)命題基本命題(p,q)を論理演算子でつなげたもの:
条件文(含意命題)pq

p ならば q
p が真で q が偽のときだけ偽(他は全部真!)

💡 「嘘をつかない」=「約束(pq)を守る」
→ 約束「テストで100点(p)ならゲーム買ってあげる(q)」
→ 100点取っても買わない(T→F)=約束破り(偽)
→ 100点取らなければ、買っても買わなくても約束は破れていない(真)
条件文の逆・裏・対偶元: pq
qp
¬p¬q
対偶¬q¬p

元と対偶は常に真偽が一致(同値)
→ 証明でよく使う!
例:
元:「犬なら哺乳類」(T)
対偶:「哺乳類でないなら犬でない」(T)
逆:「哺乳類なら犬」(F!ネコもいる)
論理演算と集合演算
→ 論理と集合は「同じ構造」! ベン図で可視化可能。
演算則を用いた簡略化よく使う法則:

📌 例:
(pq)(p¬q)=p(q¬q)=pTrue=p
→ 共通因子でくくって、q¬q は常に真(排中律)。
カルノー図を用いた簡略化真理値表を図で整理し、論理式を最小化する手法。
特に2~4変数の論理式で有効。

手順(2変数例:p,q):
2×2 のマスに、(p,q)=(0,0),(0,1),(1,1),(1,0) の順(グレイコード)で配置
出力が1のマスを「囲む」(2のべき乗個:1,2,4マス)
囲んだ中で変化しない変数だけ残す

🔹 例:出力が

(p=0,q=1),(1,0),(1,1) の3マスが1
→ 「p=1 の列(2マス)」+「q=1p=0 のマス(1マス)」
→ でも「L字」は囲めない! → 正しくは:
p=1 の列:p
q=1 の行:q
→ 全体:pq

✅ カルノー図 → 論理回路のゲート数削減 → 高速・省電力化!

情報理論と符号化

単語意味
情報量(I)情報量=「その出来事がどれだけ“意外”か」の尺度。
→ 起こりにくいことほど、情報量が大きい。

数学的に(シャノンの定義):
I(x)=log2P(x)
P(x):事象 x の起こる確率
単位:ビット(bit)

🔹 例:
コインで「表が出る」: P=12I=log212=1 ビット
サイコロで「1が出る」: P=16I=log2162.58 ビット
✅ 確率が小さい → 情報量大(「えっ、1?珍しい!」)

💡 1ビット=「はい/いいえ」で答えられる最小情報の大きさ。
情報量の加法性独立な事象が同時に起こったときの情報量は、足し算で求められる。
I(x かつ y)=I(x)+I(y)x と y が独立のとき)
🔹 例:
コインで「表」:1ビット
サイコロで「1」:≈2.58ビット
→ 同時に起きる情報量:1+2.58=3.58 ビット

✅ なぜ?



対数の性質logab=loga+logb が根拠。
平均情報量(H)→ 「1回の試行で得られる平均的な情報量
つまり:不確実性の大きさ(乱雑さ・予測しにくさ)
H=i=1nP(xi)log2P(xi)
🔹 例:偏ったコイン(表:75%、裏:25%)
H=(34log234+14log214)0.81 ビット
→ 公平コイン(H=1 ビット)より小さい → 予測しやすい=情報量小。

📌 最大エントロピー:全ての事象が等確率のとき
(例:6面サイコロ:H=log262.58

💡 エントロピーは「圧縮の限界」を示す:
→ 平均 H ビット/記号より短くは理論上無理
ハフマン符号化出現確率が高い記号に短い符号、低い記号に長い符号を割り当てる可変長符号
特徴
瞬時復号可能(接頭辞なし:どの符号も他の符号の先頭と一致しない)
エントロピーに近い効率(最適符号化)

🔹 例:文字と出現確率


→ ハフマン木で符号化:
A: 0(1ビット)
B: 10(2ビット)
C: 110(3ビット)
D: 111(3ビット)

平均符号長:
0.5×1+0.25×2+0.125×3+0.125×3=1.75 ビット
エントロピー H1.75理論限界に到達!

✅ ZIP・JPEG・MP3など、実世界で広く使われている。
ランレングス符号化同じ記号が連続(ラン)している部分を「記号+繰り返し数」で圧縮
例:AAAABBBCCDAAA4 B3 C2 D1 A2

🔹 特徴:
単純・高速
連続が多いデータに強い(画像の白黒、ログファイルなど)
逆に、ランが少ないと伸びるABABABA1 B1 A1 B1 A1 B1

📌 実用:ファクシミリ(G3/G4)、PCX画像形式、TIFFなど。

💡 ハフマンとは補完関係:
→ RLCで「A×100」→「A,100」にし、100をハフマン符号化(数字の分布を圧縮)など、組み合わせて使う。
デジタル符号化アナログ情報(音・光)を、0/1のデジタルデータに変換する一連の流れ:

標本化(サンプリング)
 → 時間軸で一定間隔で値を「切り取る」
 → ナイキストの定理:周波数 f の信号を正確に再現するには、2f より高い周波数で標本化
 例:CD音声(20kHzまで)→ 44.1kHzでサンプリング
量子化
 → サンプル値を有限の整数(ビット数)で近似
 例:16ビット量子化 → 216=65536 段階
 → 量子化誤差=ノイズ(ビット数↑ → 誤差↓)
符号化
 → 量子化値を2進数に変換(+ 圧縮:ハフマンなど)
 → 例:16ビット値 40960001000000000000

📌 全体像:
音(連続)→ 標本化(離散時間)→ 量子化(離散値)→ 符号化(2進列)
→ これで「0と1」だけでも音楽・映像が扱える!

オートマトン

単語意味
順序機械→ 「入力に応じて、内部の状態を変えて、出力するマシン」の総称。
時間とともに状態が遷移し、順序(タイミング)が重要

2種類:


・数式モデル(Mealy):
{次状態=δ(現在状態, 入力)出力=λ(現在状態, 入力)
δ: 状態遷移関数, λ: 出力関数)

💡 「順序」が鍵
「A入力→B入力」と「B入力→A入力」で結果が違う → 時系列を追う必要あり。
有限オートマトン順序機械の“出力なし”特殊版
「入力列を受け取って、『受理(OK)』か『拒否(NG)』を判定するマシン
→ 文字列のパターン認識に使う。

主な2種:

・DFAの例:偶数個の a を含む文字列を受理
・状態:q0​:a が偶数個(受理状態
q1a が奇数個

・遷移:
q0aq1,q0bq0
q1aq0,q1bq1

✅ 入力 "aba"q0q1q1q0​ → 最後が q0​ ⇒ 受理a は2個=偶数)

📌 DFAとNFAは等価(どんなNFAもDFAに変換可能)
→ ただ、NFAの方が記述が簡単(人間向き)、DFAの方が実行が高速(コンピュータ向き)。
正規表現文字列のパターンを“短く書く記法”。
DFA/NFAと完全に等価
「正規表現で書ける ⇔ 有限オートマトンで認識できる」

基本文法(高校生向けミニ版):

・例:
・「a が偶数個」→ (b*ab*ab*)*
a を2個ずつ挟んで、好きなだけ繰り返し)
・電話番号(簡易)→ 0[0-9]-[0-9]{3,4}-[0-9]{4}
(例:03-1234-5678

✅ 重要事実:
正規表現 ⇄ NFA(Thompson構成法) ⇄ DFA(部分集合構成法)
→ 実際の検索エンジン・プログラミング言語は、これを裏でやっている!

形式言語

単語意味
形式文法と言語処理形式文法:「どんな文字列が正しいか」をルール(生成規則)で定義するもの。
言語処理:そのルールに従って、プログラムを「理解」し、「実行可能な形」に変える一連の作業(→ コンパイラ/インタプリタの中身)。

🔹 例:
英語の文法: 文 → 主語 + 述語
プログラムの文法: if文 → "if" "(" 条件 ")" 文

💡「言語」とは、文法で生成できる正しい文字列の集合
文脈自由法(形式文法)ほとんどのプログラミング言語を記述できる強力な形式文法。
特徴
左辺は1つの非終端記号(例:<式>
右辺は終端記号(実際の文字)と非終端記号の並び

🔹 例(四則演算):


✅ この文法で "2 + 3 * 4" は生成可能(→ 構文的に正しい)
"2 +" は生成不能(→ エラー)
言語処理プログラム(テキスト)→

1.字句解析(Lexer):文字列 → トークン列
2.構文解析(Parser):トークン列 → 構文木
3.意味解析・コード生成:→ 実行可能な形式(機械語/中間コード)
字句解析プログラムを“単語”に分割する段階。
出力:トークン列(種類+値)

🔹 例:
if (x > 5) y = 10;



🔍 内部で使われる:正規表現有限オートマトン
→ 例:[0-9]+ で数字トークンを認識。
構文解析→ トークン列を、文法に従って“文の構造”に組み立てる
出力:構文木(次テーマ)

🔹 2種の手法:


📌 必須知識:再帰下降パーサは、文法の再帰をそのまま関数で表現
BNF記法→ 文脈自由文法を形式的に書く標準記法

<非終端記号>< > で囲む(例:<式>
::=:定義(“〜はこうなる”)
|:選択(OR)

🔹 例(if文):
BNF記法(再帰)繰り返し構造を簡潔に表現する鍵。

🔹 例:リスト(カンマ区切り)


"1,2,3" は:
<数リスト> → <数リスト> "," 数字 → (<数リスト> "," 数字) "," 数字 → (数字) "," 数字 "," 数字

✅ 再帰=自分自身を含む定義 → ループ/階層構造を表現。
構文木→ 構文解析の結果を木構造で可視化したもの。
:トークン(終端記号)
節点:非終端記号(構文要素)

🔹 例:2 + 3 * 4


* が先に計算されること(演算子の優先順位)が木の深さで表現!
構文木の利用意味解析:型チェック(例:文字列 + 数字 はエラー)
最適化2 + 35 に事前計算(定数畳み込み)
コード生成:木をたどって機械語命令を出力
デバッガ/IDE:構文ハイライト・エラー位置表示の根拠

✅ 構文木=プログラムの“設計図
逆ポーランド記法→ 演算子を被演算子の後ろに置く記法。括弧が不要!


特徴
スタックで簡単に計算
 1.2 3 4 * +2, 3, 4 をプッシュ
 2.* → 3,4をポップ→12をプッシュ
 3.+ → 2,12をポップ→14をプッシュ

✅ コンパイラで中間表現として使われる(実行が単純)。
正規表現の短縮冗長な正規表現を簡潔・効率的に書き直す。


・応用:整数(符号付き)
・冗長:\-?[0-9]+
→ OKだが、-0 など不正値もマッチ。
・高度版:
-?([1-9][0-9]*|0)
→ 「- あり/なし」+「1〜9で始まる数字列」または「0

グラフ理論

単語意味
有向グラフ辺に「向き」があるグラフ。
記号:G=(V,E)V:頂点集合,EV×V順序対の辺集合。

🔹 例:
頂点:A, B, C
辺:(AB), (BC), (CA)
A→B はOK、B→A はNG(片道)

📌 応用:Webリンク(ページAがBをリンク)、タスク依存関係(A終わってからB)。
無向グラフ辺に向きがない(双方向)。
辺は集合(順序なし):{A,B}={B,A}

🔹 例:友達関係、道路網(双方向通行)
→ AとBがつながっていれば、行き来自由。

✅ 無向グラフは「対称な有向グラフ」と見なせる(AB
サイクリックグラフ閉路(サイクル)を持つグラフ。
有向:有向閉路(例:A→B→C→A)
無向:長さ≧3の閉じたパス(例:A–B–C–A)

🔹 逆:非巡回グラフ(DAG)
→ 有向で閉路なし。順序・依存関係の表現に最適(例:Makefile、トポロジカルソート対象)
多重グラフ同じ頂点間に複数の辺(多重辺)や自己ループ(自分→自分)を許す。

🔹 例:
航空路線:羽田⇄成田(直行便×3社)→ 3本の辺
自己ループ:「再起処理」の状態遷移

✅ 通常のグラフ(単純グラフ)ではこれらは禁止
完全グラフ全頂点対が辺でつながっているグラフ。
記号:Knn 頂点)

🔹 頂点数 n のときの辺数:
E=n(n1)2(無向),n(n1)(有向、自己ループなし)
例:K4(無向)→ 6辺
2部グラフ→ 頂点を2グループ(X, Y)に分け辺はグループ間だけに存在。

🔹 条件:
同じグループ内に辺がない
すべての辺は XY

✅ 判定法:2色塗り可能(隣接頂点が同じ色にならない)
→ 偶数長閉路はOK、奇数長閉路があると×

📌 応用:マッチング問題(求人/応募者、商品/購入希望者)
オイラーグラフすべての辺を1回ずつ通り、出発点に戻れる閉路(オイラー閉路)があるグラフ。

🔹 条件(無向グラフ):
連結
全頂点の次数が偶数

🔹 例:
A–B–C–A(三角形)→ 各頂点次数=2(偶数)→ ○
A–B–C(パス)→ A,Cの次数=1(奇数)→ ×

📌 有向グラフでは:入次数=出次数(全頂点)
ハミルトングラフすべての頂点を1回ずつ通り、出発点に戻れる閉路(ハミルトン閉路)があるグラフ。

⚠️ オイラーとは逆
オイラー:を全部1回
ハミルトン:頂点を全部1回

🔹 判定はNP完全(簡単な条件なし)
→ 例:完全グラフ Kn (n3) は常にハミルトン。

💡 覚え方:
オイラー=郵便配達員(道を全部通る)
ハミルトン=世界一周旅行者(都市を全部訪れる)
正則グラフ全頂点の次数が等しいグラフ。
k-正則:全頂点の次数=k

🔹 例:
2-正則:サイクル(例:三角形、四角形)
3-正則:完全グラフ K4​(各頂点次数=3)

📌 完全グラフ Kn​ は (n1)-正則。
行列表現n×n 行列 A でグラフを表現。
Aij={1if 辺 ij あり0otherwise
🔹 無向グラフ → 行列は対称(Aij=Aji​)
🔹 重み付きグラフ → 1/0でなく重みの値を入れる

例(無向3頂点パス:A–B–C):
A=[010101010]
✅ 利点:辺の有無を O(1) で判定
❌ 欠点:疎なグラフでメモリ無駄(n2
リスト表現→ 各頂点ごとに「隣接頂点リスト」を保持。

🔹 例(上記と同じパス):


✅ 利点:疎グラフでメモリ効率◎(辺数に比例)
❌ 欠点:辺の存在判定が O(次数)

📌 実際のプログラム(Python):
行列表現の応用例Ak(i,j) 成分 = 頂点 i から j への長さ k の経路数

例:上記 A2
A2=[101020101]
(A2)13=1:AからCへの長さ2の経路は1つ(A→B→C)

(2)連結性判定
I+A+A2++An1 が全成分 >0 なら連結

(3)ページランク(Google)
→ 隣接行列から遷移確率行列を作り、固有ベクトル計算
ダイクストラ法非負重み付き有向/無向グラフで、1頂点から全頂点への最短距離を求める。

アルゴリズム(要約):
距離配列 dist[v] = ∞dist[始点] = 0
未処理頂点で dist 最小の頂点 u を選ぶ
u の隣接頂点 v に対し:dist[v]=min(dist[v], dist[u]+w(u,v))
全頂点処理完了まで繰り返し

🔹 例(始点 A):


・A→B:2(A→B)
・A→C:2+1=3(A→B→C)< 4(A→C直接)→ 3が最短

✅ 特徴:
貪欲法(その時点での最短を選ぶ)
・ヒープ使うと O((V+E)logV)
負の辺があると× → ベルマン–フォード法を使う

確率と統計

単語意味
場合の数→ 「何通りあるか」を数える技術。
2大原則
和の法則:AまたはB → A+B(例:3種のジュース+2種のお茶=5通り)
積の法則:AかつB → A×B(例:3シャツ×2ズボン=6コーデ)

🔹 例:
3桁の整数(先頭0不可):
百の位:1~9 → 9通り
十・一の位:0~9 → 各10通り
9×10×10=900 通り(100~999)
組合せ→ 「選ぶ順序を区別しない選び方」の数。
記号:(nk)=nCk=n!k!(nk)!

🔹 例:
5人から3人を選ぶ:
(53)=5×4×33×2×1=10
✅ 対比:
順列(順序あり):nPk=n(n1)(nk+1)
組合せ(順序なし):順列 ÷ k!
確率の定義「起こりやすさ」の数値化(0~1)
ラプラスの古典的定義(同様に確からしいとき):
P(A)=事象Aが起こる場合の数全事象の場合の数
🔹 例:
サイコロで「偶数」:
偶数:2,4,6 → 3通り
全事象:6通り
P=36=0.5

📌 一般化(頻度・主観的定義も存在)だが、応用情報では主に古典的 or 統計的
原因の確率→ 「結果を見て、原因の確率を逆算」する手法。ベイズの定理ともいう。
P(HE)=P(EH)P(H)P(E)
H:仮説(原因)
E:証拠(結果)
P(HE)事後確率(証拠後の確信度)

🔹 例(医療検査):
罹患率 P(H)=1%
感度 P(EH)=99%(病気で陽性)
偽陽性率 P(E¬H)=5% → 陽性だったときの罹患確率:P(HE)=0.99×0.010.99×0.01+0.05×0.9916.7%
→ 意外と低い!(ベースレートの無視はよくある誤り)

📌 応用:スパム判定、機械学習(ナイーブベイズ)
マルコフ過程→ 「次が何になるかは、“今”だけに依存」という性質を持つ確率過程。
P(Xt+1=xXt,Xt1,)=P(Xt+1=xXt)
🔹 例:天気モデル
状態:晴れ(S)、雨(R)
遷移確率:晴れ→晴れ:0.8,晴れ→雨:0.2
雨→晴れ:0.4,雨→雨:0.6

📌 表現:遷移確率行列
P=[0.80.20.40.6]
✅ 応用:自然言語処理(n-gram)、ランダムウォーク、信頼性評価。
モンテカルロ法乱数で何度も試行し、統計から答えを推定する手法。
「解析的に難しい問題を、シミュレーションで力技突破」。

🔹 例:円周率 π 推定
1×1の正方形にランダムに点を打つ(N 回)
半径1の円内に入った点数 Mを数える
MNπ4π4×MN

📌 応用:
数値積分(複雑な関数)
金融リスク評価(株価シミュレーション)
ゲームAI(囲碁:AlphaGoの前身)
代表値→ データの「中心」を表す値。主に3種:


🔹 例: {1, 2, 2, 3, 100}
・平均:21.6
・中央値:2
・最頻値:2
→ 100が外れ値→中央値が現実的
散布度→ 「データがどれだけバラついているか」の尺度。
平均値と分散・標準偏差の性質線形変換 Y=aX+b のとき:
平均: Yˉ=aXˉ+b分散: σY2=a2σX2標準偏差: σY=aσX​​
🔹 例:
点数 X の平均50、標準偏差10 →
10点加点+2倍:Y=2X+10
→ 平均:2×50+10=110
→ 標準偏差:2×10=20

✅ 定数 b分散に影響しない(バラつきは変わらない)
確率分布の種類
📌 応用情報では正規分布・二項分布が最頻出。
正規分布の性質左右対称・釣鐘型
・平均 μ、分散 σ2 で完全決定
68–95–99.7ルール
μ±σ:約68%
μ±2σ:約95%
μ±3σ:約99.7%

🔹 標準正規分布:ZN(0,1)
→ 任意の XN(μ,σ2)
Z=Xμσ
で標準化可能。
標準平均と標本合計の分布→ 母集団から n 個の標本 X1,,XnX1​,…,Xn​ を取るとき:

標本合計 Sn=X1++XnSn​=X1​+⋯+Xn
標本平均 Xˉn=SnnXˉn​=nSn​​

母集団が N(μ,σ2) のとき:
SnN(nμ, nσ2)XˉnN(μ, σ2n)
✅ 標本平均の分散が 1/n に → サンプル増やすと推定が正確に
正規分布の加法性独立な正規分布の和も正規分布
XN(μ1,σ12), YN(μ2,σ22), XYX+YN(μ1+μ2, σ12+σ22)
🔹 例:
部品Aの長さ:N(10,0.04)(単位:cm)
部品Bの長さ:N(5,0.01)
→ 組み立て長さ:N(15,0.05)
→ 標準偏差:0.050.224 cm

分散は足す、標準偏差は足さない(←頻出誤り!)

回帰分析

単語意味
単回帰分析1つの説明変数 x で、目的変数 y を予測するモデル。
線形モデル
y=ax+b+ε
a:傾き(回帰係数)→「x が1増えると ya 増える」
b:切片
ε:誤差(真の値とのズレ)

📌 目的:データに最もよくフィットする直線a,b)を求めること。
線形回帰🔹 例:勉強時間(x)とテスト得点(y


→ 完全に直線!
y=10x+30
傾き a=10:1時間勉強で+10点
切片 b=30:0時間でも30点(基礎知識)

✅ 実際のデータはバラつく → 最小二乗法で「最適な直線」を決める。
最小二乗法予測値と実測値のズレ(残差)の2乗和を最小にする a,b を求める方法。

残差:ei=yi(axi+b)
最小化対象:
S=i=1nei2=(yiaxib)2
🔹 解(公式):
a=(xixˉ)(yiyˉ)(xixˉ)2,b=yˉaxˉ
→ 分子は共分散、分母は**x の分散**

📌 直感:
xy が「一緒に増える」→ a>0
「逆に動く」→ a<0
相関係数2変数の“直線的な関係の強さ” を-1~1で表す。
r=(xixˉ)(yiyˉ)(xixˉ)2(yiyˉ)2=共分散σxσy


🔹 例:
・勉強時間 vs 得点:r0.95(強い正相関)
・身長 vs 数学点:r0.1(ほぼ無相関)

注意
・相関 ≠ 因果(「アイス売上↑ → 溺死↑」はともに「気温↑」が原因)
・相関係数は直線的関係のみを評価(放物線なら r0 でも関係あり)
重回帰分析複数の説明変数x1,x2,,xkx1​,x2​,…,xk​)で y を予測。
モデル:
y=a1x1+a2x2++akxk+b+ε
🔹 例:家賃(y 円)の予測
x1:駅からの距離(km)→ a1<0
x2​:部屋面積(m²)→ a2>0
x3​:築年数 → a3<0

→ 重回帰で「距離だけ」ではなく、他の要因を“同時に固定”した効果(偏回帰係数)が得られる。
偏相関係数→ 「他の変数の影響を除いた、2変数間の相関」。

🔹 例:
単相関:勉強時間 x と得点 yr=0.7
でも、睡眠時間 z が多い人は勉強もできて成績も良い → 擬似相関
z を一定にしたときの x と y の相関=偏相関係数

📌 計算は複雑だが、重回帰の残差同士の相関と等価。
→ 「純粋な関係」を見抜く鍵。
ロジスティック回帰分析目的変数が「2値」(例:合格/不合格、スパム/非スパム)のときの回帰。

発想:
単回帰だと予測値が −∞〜+∞ → 0/1 に不適
予測を「確率」(0~1)に変換

ロジスティック関数(シグモイド):
P(y=1x)=11+e(a1x1++akxk+b)
🔹 例:
入力:
x1:勉強時間
x2:模試偏差値
→ 出力:合格確率(例:0.83 → 83%)

✅ 特徴:
線形な「ロジット」: logP1P=a1x1++b
実装が軽量 → スパムフィルタ・医療診断で広く使われる
機械学習の「最初の一歩」

数値計算

単語意味
二分法連続関数のゼロ点f(x)=0 の解)を「はさみうち」で求める。

条件:
f(a)f(b)異符号f(a)f(b)<0
f[a,b] で連続

手順:
中点 c=a+b2 を計算
f(c) の符号で、解がある区間を半分に絞る
誤差が十分小さくなるまで繰り返し

🔹 例:f(x)=x22 の解(21.414
a=1f=1)、b=2f=2)→ 異符号
c=1.5f=0.25 → 正 → 新区間:[1,1.5]
次:c=1.25f=0.4375 → 負 → [1.25,1.5]
→ どんどん狭まる!

✅ 利点:必ず収束(ロバスト)
❌ 欠点:収束が遅い(1回で誤差が半分に)
ニュートン法接線を使って高速にゼロ点に近づく方法。

更新式:
xn+1=xnf(xn)f(xn)
f:微分 → 接線の傾き)

🔹 例:二分法の例と同じ f(x)=x22、初期値 x0=1
f(x)=2x
x1=112=1.5
x2=1.50.2531.4167
x31.4142 → たった3回で高精度!

✅ 利点:2次収束(誤差が2乗で減る → 超高速)
❌ 欠点:
微分が必要
初期値が悪いと発散
f(xn)=0 で停止
数値積分関数の下の面積abf(x)dx)を離散的に近似する。

台形公式(Trapezoidal Rule):
区間を n 分割し、各小区間を台形で近似。
abf(x)dxh2[f(x0)+2f(x1)++2f(xn1)+f(xn)]
h=ban​, xi=a+ih

🔹 例:01x2dx=130.333
n=2h=0.5):
0.52[02+2(0.52)+12]=0.25×(0+0.5+1)=0.375
→ 誤差あり。n 増やすと精度向上。

📌 応用:モンテカルロ積分(乱数)、シミュレーション(物理・金融)
誤差→ 計算値と真値のズレ。原因は3つ:
1.丸め誤差:浮動小数点の有限精度(例:0.1 が正確に表せない)
2.打ち切り誤差:無限計算を途中で止める(例:級数和を100項で打ち切り)
3.計測誤差:センサなどの入力ノイズ

📌 数値計算では、誤差の蓄積・増幅に要注意(特に繰り返し計算)。
絶対誤差ズレの“実際の大きさ”:
絶対誤差=近似値真値
🔹 例:
真値=1000、近似値=1005 → 絶対誤差=5
真値=10、近似値=15 → 絶対誤差=5(同じ!)

✅ 直感的だが、スケールが違うと比較しにくい。
相対誤差ズレの“割合”:
相対誤差=近似値真値真値
(単位:無次元。%で表すことも)

🔹 上記例:
1000 vs 1005 → 51000=0.005=0.5%
10 vs 15 → 510=0.5=50%
→ 後者の方がはるかにまずい

✅ 大きさが異なる値の精度比較に必須。
連立一次方程式の行列による表現
{a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2an1x1+an2x2++annxn=bn​​

Ax=b
と書ける。
A:係数行列(n×n
x=[x1,,xn]T:未知数ベクトル
b=[b1,,bn]T:定数ベクトル

🔹 例:
{2x+y=5x3y=1[2113][xy]=[51]
単位行列と逆行列単位行列 II:対角成分が1、他が0

I=[1001],AI=IA=A
逆行列 A−1AA1=A1A=I
→ 存在 ⇔ det(A)0(正則)

✅ 解法(理論上):
Ax=bx=A1b
⚠️ ただし、大規模問題では逆行列計算は避けられる(数値不安定+計算量大)
掃き出し法行基本変形で上三角行列にし、後退代入で解く
直接法(有限ステップで厳密解(浮動小数点誤差除く))。

手順(例):
[215131]R1R2[131215]R2R22R1[131077]
→ 後退代入:
7y=7y=1
x3(1)=1x=2

✅ 実装しやすく、大規模でも安定 → 数値計算の主力
📌 ピボット選択(絶対値最大の行と入れ替え)で誤差低減

AI(人工知能)

単語意味
機械学習→ 「明示的なプログラムなしに、データからコンピュータが学習する」技術。

🔹 発想の転換:
従来:「ルールを人間が書く」
(例:if 体温 > 37.5: 印刷("発熱")
機械学習:「データを渡して、ルールを機械が見つける
(例:1000人の「体温+診断結果」から自動ルール生成)

📌 中心的なアイデア:
「良い予測ができるようになるまで、モデルを調整する
教師あり学習正解ラベル付きデータ(入力+出力)で学習。
目的:未知の入力に対して、正しい出力を予測


🔹 例(スパム判定):
・学習データ:
 「今だけ!半額!」 → スパム
 「会議は15時から」 → 非スパム
・学習後:
 「無料!今すぐ登録」 → ?スパム(と予測)

✅ 応用情報頻出:評価指標(正解率、再現率、F値)
教師なし学習ラベルなしデータ(入力だけ)で「構造を発見」する。

主な2タスク:


🔹 例(k-meansクラスタリング):
・データ:身長・体重の散布図
・出力:
 ・クラスタA(小柄)
 ・クラスタB(大柄)
  → 「ラベルなし」でも自然なグループが見える!

✅ 特徴:探索的分析に強い(何が隠れているか事前知識不要)
強化学習試行錯誤で「報酬を最大化」する行動戦略を学習

3要素:
エージェント(学習者:例:ゲームAI)
環境(例:ゲーム画面)
報酬(例:+1点/ゴール、−10点/落ちる)

🔹 学習の流れ:
行動 → 環境が次の状態・報酬を返す
「どの状態でどの行動が良いか」を価値関数で評価
繰り返しで最適戦略(方策)を更新

📌 有名例:
AlphaGo(囲碁)
自動運転(シミュレータで運転練習)

✅ 発想:「生き物の学習」に近い(報酬→強化→習慣化)
ディープラーニング多層ニューラルネットワークを使った機械学習。
「深層(Deep)」=層がたくさん(10~1000層以上)

ニューラルネットワークの仕組み(超簡単版):


・各層:たくさんのニューロン(数式:y=σ(w1x1+w2x2+b)
σ:活性化関数(例:ReLU:max(0,x)
・学習=重み w を調整

🔹 なぜ“深層”が強い?

・浅い層:直線的な関係しか学べない
・深い層:階層的特徴抽出が可能画像認識例:
Layer1:エッジ検出 → Layer2:輪郭 → Layer3:目・鼻 → Layer4:「猫」

📌 応用:
画像認識(顔認証)
音声認識(スマホ音声入力)
自然言語処理(ChatGPTの基礎)

✅ 注意:
大量データ・計算資源が必要
「ブラックボックス」(なぜそう判断したか説明しにくい)

みんなで使おう!Ankiアプリで暗記しよう

Ankiアプリの記事と、現時点までに作成されたAnkiアプリのデータへのリンクを掲載しております。どうぞご利用ください。

本日分までのAnkiアプリデータはこちら。

firestorageダウンロード

パスワードは「shirakawa」です。お間違えのないように。

参考図書

応用情報技術者の資格勉強をするにあたり、科目A対策として以下の教科書を使用しています。できれば、こちらもAnkiアプリと併用しながらご利用いただければと思います。

最後に

いかがでしたでしょうか?

この教科書で学ぶにあたり、基本情報技術者と応用情報技術者の差を思い知りました。応用は基本に比べて覚えることが更に多い!!

基本情報技術者と応用情報技術者の違いを、参考書を1巡した私が思った感じで述べますと、基本情報技術者は言葉をとりあえず覚えましょうという感じで、応用情報技術者は覚えたことで何ができるかを考えましょうといった感想を持ちました。

応用は基本を更に深堀りして、完全に暗記していかないと対応が難しいということです。

勉強をはじめた皆さん。是非、私と一緒に頑張りましょう!

白川秋
白川秋

ではでは、参考までに

コメント

タイトルとURLをコピーしました