0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

実教出版『数学I』で学ぶAIデータサイエンス情報数学

Last updated at Posted at 2025-07-17

はじめに

高校数学で学ぶ「数と式」「関数」「三角比」「集合」「データの分析」は、すべて現代のAI・機械学習・制御工学に密接に関わっています。
本シリーズでは、実教出版『数学I』の構成に沿って、それぞれのトピックがどのように実世界で活用されているのかを、具体的な数式・Pythonコードとともに読み解いていきます。


0.1 連立方程式の基礎

0.1.1 定義

  • 連立方程式:未知数 $x_1, x_2, \dots, x_n$ が登場する複数の式をまとめたもの。

    $$
    \begin{cases}
    a_{11}x_1 + a_{12}x_2 + \cdots + a_{1n}x_n = b_1 \
    a_{21}x_1 + a_{22}x_2 + \cdots + a_{2n}x_n = b_2 \
    \ \ \vdots \
    a_{m1}x_1 + a_{m2}x_2 + \cdots + a_{mn}x_n = b_m
    \end{cases}
    $$

  • 行列表現:係数行列 $A \in \mathbb{R}^{m\times n}$,未知数ベクトル $x \in \mathbb{R}^n$,定数ベクトル $b\in\mathbb{R}^m$ として

    $$
    A x = b
    $$

0.1.2 解の種類

  • 一意解:係数行列 $A$ の列が一次独立で,かつ $m=n$ の場合に存在。
  • 無限解:未知数の自由度が残る場合(ランクが低い)。
  • 解なし:方程式系が矛盾するとき。

0.2 代表的な解法

0.2.1 ガウスの消去法(前進消去と後退代入)

  1. 前進消去:ピボット選択→行基本変形で上三角行列化
  2. 後退代入:上三角から未知数を順に解く
for k = 1 … n-1:
  for i = k+1 … n:
    factor = A[i,k] / A[k,k]
    A[i,k:n] = A[i,k:n] - factor * A[k,k:n]
    b[i] = b[i] - factor * b[k]
# 後退代入
x[n] = b[n] / A[n,n]
for i = n-1 … 1:
  x[i] = (b[i] - sum_{j=i+1}^n A[i,j]*x[j]) / A[i,i]

0.2.2 逆行列による解法(正方行列のみ)

$$
x = A^{-1} b
$$

ただし,逆行列の計算コストが高いため,大規模系ではガウス消去や分解法を用いる。

0.2.3 LU分解

$$
A = L U,\quad L:下三角行列,\ U:上三角行列
$$

  • 前進代入で $L y = b$ を解き
  • 後退代入で $U x = y$ を解く

0.3 機械学習における連立方程式の役割

0.3.1 線形回帰モデル

観測データ ${(x^{(i)}, y^{(i)})}_{i=1}^N$ に対し,パラメータ $\theta\in\mathbb{R}^d$ を最小二乗法で推定:

$$
\min_\theta \sum_{i=1}^N \bigl(y^{(i)} - \theta^\mathsf{T} x^{(i)}\bigr)^2
$$

導関数をゼロにすると,連立方程式:

$$
X^\mathsf{T} X,\theta = X^\mathsf{T} y
$$

ここで,設計行列 $X\in\mathbb{R}^{N\times d}$,出力ベクトル $y\in\mathbb{R}^N$。

0.3.2 正則化付き線形回帰(リッジ回帰)

$$
(X^\mathsf{T}X + \lambda I),\theta = X^\mathsf{T}y
$$

$\lambda>0$ により,行列の条件数改善と過学習抑制を同時に達成。


0.4 応用例:Pythonによる実装スニペット

以下は,NumPy を用いて線形回帰パラメータを解く例。

import numpy as np

# ダミーデータ生成
N, d = 100, 2
X = np.random.randn(N, d)
theta_true = np.array([2.0, -1.0])
y = X @ theta_true + 0.1 * np.random.randn(N)

# 正規方程式による最小二乗解
# theta_hat = np.linalg.inv(X.T @ X) @ (X.T @ y)
# 安定的には lstsq を用いる
theta_hat, residuals, rank, s = np.linalg.lstsq(X, y, rcond=None)

print("推定パラメータ:", theta_hat)

第1章:数と式 × モデルの数式構造

● 1節:整式とモデルの構文理解

① 文字式の決まり → 線形モデルの基本式

高校数学:

$$
y = ax + b
$$

AIでは、これは線形回帰モデルの予測式:

$$
\hat{y} = wx + b
$$

def linear_model(x, w, b):
    return w * x + b

② 整式 → ニューラルネットワークの重み付き和

多項式:

$$
y = a_1x^2 + a_2x + a_3
$$

機械学習では、入力が複数の特徴量に対応:

$$
y = w_1x_1 + w_2x_2 + \cdots + w_nx_n + b
\quad \Rightarrow \quad y = \mathbf{w}^\top \mathbf{x} + b
$$


③ 加法・減法 → 損失関数の合成

$$
L = L_{\text{data}} + \lambda L_{\text{reg}}
$$

例:

L = mse_loss + lambda_ * l2_regularization

④ 乗法 → 内積・特徴量変換

$$
(a + b)(c + d) = ac + ad + bc + bd
$$

これは、テンソル演算やフィルタ処理の基礎でもある。


⑤ 乗法公式 → 勾配の導出、非線形活性

$$
(a + b)^2 = a^2 + 2ab + b^2
$$

  • 損失関数の勾配展開
  • 活性化関数(例:Softplus)の近似式

発展:3乗公式

$$
(a + b)^3 = a^3 + 3a^2b + 3ab^2 + b^3
$$

非線形活性層の高次項近似にも用いられる。


⑥ 因数分解 → コード最適化・共通項抽出

$$
x^2 + 5x + 6 = (x+2)(x+3)
$$

  • モデルの共通項抽出
  • コード圧縮・処理分岐の最小化などに応用

● 2節:実数とデータ表現

① 平方根とその計算 → L2ノルム、誤差距離

$$
d = \sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}
$$

import numpy as np
np.linalg.norm(x1 - x2)

② 実数 → センサ・画像・音声の連続値処理

  • 実数(float型)が基本
  • 離散信号の処理でも量子化の精度に直結

● 3節:方程式と不等式

① 1次方程式 → 最小2乗法によるパラメータ推定

$$
y = wx + b \quad \Rightarrow \quad \text{loss}(w) = (wx + b - t)^2
$$

→ 最小化で $w$ を学習

② 不等式 → if文、分類ロジック

if score > 0.5:
    return "positive"

③ 不等式の性質 → 論理演算と安全設計

  • 両辺に負の値をかけると向きが逆
  • 制御分野での閾値処理、電圧制限設計に応用

④ 1次不等式 → ReLU関数の実装

$$
f(x) = \max(0, x)
$$

def relu(x):
    return max(0, x)

⑤ 連立不等式 → 安全領域の設計、SVMのマージン領域

$$
a < x \leq b
\quad \Rightarrow \quad \text{安全な入力範囲}
$$

⑥ 不等式の応用 → 最適化、性能保証

  • 効率の良い範囲探索
  • 設計条件の制約式(制御工学・AI制約付き学習)

第2章:2次関数 × 最小値・活性化関数の曲線・最適化問題


🔹 1節:関数とグラフ

1. 1次関数とそのグラフ → 線形モデルの可視化

数学:

$$
y = ax + b
$$

AI・工学:

  • 線形回帰の基本モデル
  • 境界線の決定(例:ロジスティック回帰)
import matplotlib.pyplot as plt
x = [i for i in range(-5, 6)]
y = [2*i + 1 for i in x]  # y = 2x + 1
plt.plot(x, y)
plt.grid(True)
plt.show()

2. 2次関数とそのグラフ → 活性化関数・損失関数の形状

数学:

$$
y = ax^2 + bx + c
$$

AI:

  • 活性化関数の曲線(Softplus、Swishなど)
  • 損失関数(mean squared error)の形状は基本的に「上に凸」の2次関数

🔹 2節:2次関数の値の変化

1. 最大値・最小値 → 最適化問題の核心

数学(頂点のx座標):

$$
x = -\frac{b}{2a}
$$

工学・AI(最小値問題):

  • パラメータ $w$ に対する損失関数 $L(w)$ を最小化
  • 勾配降下法(Gradient Descent)の初学的導入に相当

例:

$$
L(w) = (wx + b - t)^2
$$

最小となる $w$ を探すのが学習


2. 2次関数と2次方程式 → ニューラルネットの出力解析

数学:

$$
ax^2 + bx + c = 0
$$

AI:

  • ニューラルネットの出力が2次形式になる場面で、解の存在条件や判別式が意味を持つ

判別式:

$$
D = b^2 - 4ac
$$


3. 2次関数と2次不等式 → 閾値条件・分類ロジック

数学:

$$
ax^2 + bx + c > 0
$$

AI・工学:

  • 区間分類:ある範囲でのみONになる条件
  • ReLU^2条件付き損失のような形状の出力関数に応用

例:SVM(サポートベクターマシン)
分類条件:

$$
y_i(w^\top x_i + b) \geq 1
\quad\text{(不等式でクラス分離)}
$$


第3章:三角比 × コンピュータビジョン・信号処理・ロボティクス


🔹 1節:三角比の定義と基本性質

1. 三角形の辺と角度 → 幾何ベースの推論

数学:

  • 三角形の基本構成要素(角度・辺の長さ)

応用:

  • 2D画像からの角度推定
  • ドローン・ロボットの姿勢計測
  • LiDARセンサでの距離と角度測定

2. 三角比の定義 → 回転行列・ベクトル投影

高校数学の定義:

$$
\sin \theta = \frac{\text{対辺}}{\text{斜辺}},\quad
\cos \theta = \frac{\text{隣辺}}{\text{斜辺}},\quad
\tan \theta = \frac{\text{対辺}}{\text{隣辺}}
$$

応用:

  • ベクトルを回転させる際に、回転行列に三角比が含まれる

$$
\begin{bmatrix}
\cos \theta & -\sin \theta \
\sin \theta & \cos \theta
\end{bmatrix}
$$

Python例(2D回転):

import numpy as np
theta = np.radians(30)
R = np.array([[np.cos(theta), -np.sin(theta)],
              [np.sin(theta),  np.cos(theta)]])
v = np.array([1, 0])
rotated_v = R @ v

3. 三角比の利用 → ロボットの座標計算・ドローンの方向制御

  • モーションキャプチャやロボットの関節角の計算
  • 座標変換における正弦・余弦の直接的使用
  • 信号の位相処理でも sin, cos は不可欠

4. 三角比の相互関係 → 単位円・フーリエ変換への橋渡し

高校数学の恒等式:

$$
\sin^2\theta + \cos^2\theta = 1
$$

応用:

  • 信号処理における正弦・余弦波の性質
  • 正規直交基底(Fourier基底)の導出に重要

🔹 2節:三角比の応用

1. 三角比の拡張 → 単位円での定義

  • $\theta$ が 0〜360°(あるいは $0$ 〜 $2\pi$)の任意角に拡張
  • 回転・周期信号・MIDIノートの周期変換にも応用

2. 三角形の面積 → 工学的面積測定・画像領域分割

高校数学:

$$
S = \frac{1}{2} ab \sin C
$$

応用:

  • ロボットビジョンにおける三角分割
  • 領域認識・ポリゴン内面積の計算

3. 正弦定理 → カメラ視点からの奥行き推定

$$
\frac{a}{\sin A} = \frac{b}{\sin B} = \frac{c}{\sin C}
$$

  • 三角測量(GPS・AR空間構築)
  • 2点間の視差情報をもとに距離推定

4. 余弦定理 → ベクトルの内積、角度測定

$$
c^2 = a^2 + b^2 - 2ab\cos C
$$

AI応用:

  • コサイン類似度(ベクトル間の角度的距離)

$$
\cos \theta = \frac{\vec{a} \cdot \vec{b}}{|\vec{a}||\vec{b}|}
$$

Pythonコード:

def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

5. 正弦定理と余弦定理の利用 → 3Dスキャン・センサ融合

  • 深度推定(ステレオカメラ)
  • 三角形的構造から未知の長さや角度を導出

第4章:集合と論証 × 論理・条件分岐・AIアルゴリズムの正しさ検証


🔹 1節:集合と要素 → データ属性と分類ロジック

1. 集合と要素の記述 → データベース・クラスタリング・if文制御

高校数学:

  • 集合の表記:

    $$
    A = {x \in \mathbb{R} \mid x > 0}
    $$

  • 属する/属さない:

    $$
    x \in A,\quad y \notin B
    $$

応用:

  • 属性ベースの分類:
    例)「温度 > 25℃ かつ 湿度 < 60%」という条件集合
  • if文による分類制御:
if temp > 25 and humidity < 60:
    state = "Cool"

集合の演算と条件分岐の対応

数学記号 意味 Python対応
$A \cup B$ 和集合 A or B
$A \cap B$ 共通部分 A and B
$A \setminus B$ 差集合 A and not B
$A^\complement$ 補集合 not A

これらはすべて**ブール演算(論理回路)**と直結しています。


🔹 2節:命題と証明 → AIの判断と正しさの保証

1. 命題の構造 → 推論エンジン・ルールベースAIの論理形式

高校数学:

  • 命題 $p \Rightarrow q$
  • 真理値表、必要条件・十分条件の区別

AI応用:

  • 条件つきルール推論:

    $$
    \text{「猫ならば哺乳類」} = (\text{is_cat} \Rightarrow \text{is_mammal})
    $$

def infer_mammal(is_cat):
    if is_cat:
        return "Mammal"
    else:
        return "Unknown"

2. 命題の対偶・否定 → バグ回避・条件検証に不可欠

数学:

  • 対偶:$p \Rightarrow q$ ⇔ $\neg q \Rightarrow \neg p$
  • 否定:$\neg(p \Rightarrow q) \equiv p \land \neg q$

AIアルゴリズムの検証で重要:

  • 「結果が偽なら前提も偽でなければならない」
    ユニットテスト例外処理の論理的設計に活用

3. 証明法 → アルゴリズムの正しさの保証

証明法 数学での内容 AI/工学的応用
直接証明 $A \Rightarrow B$ をそのまま示す 推論の正しさ証明
対偶証明 $\neg B \Rightarrow \neg A$ バグ回避、逆検証
背理法 矛盾を導いて否定 ロジックチェッカーの反証
全称命題 任意の $x$ に対して成り立つことを証明 汎用的アルゴリズムの正当性確認
存在命題 ある $x$ に対して成り立つ サンプル例による動作検証

第5章:データの分析 × 統計処理・線形回帰・機械学習


🔹 1節:データの分析とモデル設計

1. 統計とグラフ → 可視化・前処理の基本

高校数学:

  • 度数分布・折れ線グラフ・ヒストグラムなどによるデータの可視化

AI・データ分析:

  • **EDA(探索的データ解析)**の初手は、まさにグラフ化
import matplotlib.pyplot as plt
plt.hist(data, bins=10)
plt.title("Histogram of Input Data")
plt.show()

2. 度数分布表とヒストグラム → 正規化前の分布確認

数学:

  • ヒストグラムにより分布形状(正規・右偏・左偏など)を把握

AI:

  • ヒストグラム=特徴量の「偏り」を把握 → スケーリングや正規化に活かす

3. 代表値(平均・中央値・最頻値) → データの中心と特性の把握

数学:

$$
\text{平均} = \frac{1}{n} \sum_{i=1}^n x_i,\quad
\text{中央値} = \text{中央値位置の値},\quad
\text{最頻値} = \text{出現回数最大の値}
$$

AI応用:

  • 平均:標準化や重心、初期重みの推定
  • 中央値:外れ値除去(ロバスト指標)
  • 最頻値:分類ラベルの多数決(mode分類)

4. データの散らばり → 分散・標準偏差・正規化の指標

高校数学:

$$
\text{分散} = \frac{1}{n} \sum_{i=1}^n (x_i - \bar{x})^2,\quad
\text{標準偏差} = \sqrt{\text{分散}}
$$

AI:

  • 入力データのスケーリング(平均0、分散1)に用いられる
x_norm = (x - x.mean()) / x.std()

5. 相関関係 → 線形回帰・特徴量選択の前提

数学:

$$
r = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum (x_i - \bar{x})^2} \sqrt{\sum (y_i - \bar{y})^2}}
$$

  • $r > 0$:正の相関
  • $r < 0$:負の相関
  • $|r| \approx 1$:強い線形関係

AI・統計学:

  • 相関係数を使って、予測に有効な特徴量を選定(特徴選択)

🔹 線形回帰:高校数学の1次関数がそのままモデルに

線形回帰のモデル式

$$
\hat{y} = wx + b
$$

これは高校数学の:

$$
y = ax + b
$$

と完全に一致。


損失関数(誤差関数)

$$
L(w, b) = \frac{1}{n} \sum_{i=1}^n (\hat{y}_i - y_i)^2
$$

最小二乗法(最小になるような w, b を求める)


実装(scikit-learn 例)

from sklearn.linear_model import LinearRegression

X = [[x1], [x2], [x3], ...]
y = [t1, t2, t3, ...]

model = LinearRegression()
model.fit(X, y)

print("傾き:", model.coef_)
print("切片:", model.intercept_)

🔗 参考リンク


0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?