線形代数学 I / 基礎 / II
線形代数学の授業では、データサイエンスの基礎である行列の取り扱いや、その計算方法について取り扱います。線形代数が、本来扱う範囲は非常に広範囲であり理論も複雑ですが、この授業の主眼はデータサイエンスにおいて必要となる線形代数学を身につけ、データサイエンスで用いられる手法との繋がりを理解することです。
この授業では、まずはベクトルと行列の概念を学び、そのあとで連立1次方程式を扱います。連立1次方程式は、統計学・機械学習において、予測やある結果に影響を与える原因の大きさを測定するために用いられる基本的なツールである「線形回帰モデル」の基礎となります。
そのあとで、行列式という概念と、ベクトル空間と直交という概念を扱います。これらは理論的な概念です。そのあと、行列式とベクトル空間と直交を生かすことで、行列に対する固有値と固有ベクトルを学びます。固有値と固有ベクトルは、統計学・機械学習における「主成分分析」の基礎となります。主成分分析は、与えられたデータから隠れた構造を見つけ出すための手法です。また、この授業の後半においては、行列分解を用いてデータから隠された構造を発見するアプローチなども紹介します。これらの方法については、紹介程度にとどめますがデータサイエンスは面白いなと感じるきっかけにしてもらえると嬉しいです。
この授業を通して、皆さんに期待することはベクトルと行列の計算について理解し、線形回帰モデルと主成分分析について深い理解を得ることです。
シラバス
以下は、講義45回+2回分の講義シラバスです(2回分は期末試験です)。
第1部 : 基礎概念の導入
-
コースイントロダクション
- 講義全体の概要、評価方法、使用ツール(ChatGPT, Claude, Google Colab)の紹介
- 線形代数学の意義と現代応用事例の提示
-
ベクトルの定義と基本操作①
- 実ベクトルの定義
- 実ベクトルの表し方
- 実ベクトルの和
- 実ベクトルのスカラー倍の演算
- 実ベクトルの和とスカラー倍の幾何学的意味
- ベクトルの和・スカラー倍の可視化 (Google Colab)
- 演習問題
-
ベクトルの基本操作②と内積の導入
- 実ベクトルのノルムの定義
- 実ベクトルの内積の定義
- 実ベクトルの内積とcosの関係
- 実ベクトルの内積の性質
- 実ベクトルの射影の定義
- 実ベクトルの射影の性質
- 実ベクトルの内積の幾何学的解釈(角度、射影)
- ベクトル内積、射影の可視化実習
- 演習問題
-
行列の定義・行列の和・行列のスカラー倍)
- 行列の定義
- 行列の表記
- 行列の和の計算
- 行列のスカラー倍
- 行列とベクトルの関係性の確認(ベクトルを列に並べると行列になる)
- Colab を用いた行列の計算
- 演習問題
-
行列の積
- 行列積の定義
- 行列の積の計算方法
- 行列の積の注意点 (AB と BAは異なるなど)
- 逆行列の定義
- 2次の行列の逆行列の求め方
- Google colab による行列の積の計算
- 演習問題
-
データサイエンスに必要な行列
- 単位行列とその性質
- 転置行列とその性質
- 対称行列とその性質
- 実例を通して、上の4つの性質を確認
- Google Colabでの計算
- 演習問題
-
1次元データとベクトルの和と積
- データの平均
- データの偏差
- データの分散
- 1次元データをベクトルと見て、平均と分散計算をベクトルを用いて行う
- ベクトルを用いたデータの平均
- ベクトルを用いたデータの偏差
- ベクトルを用いたデータの分散
- 計算の実例
- Google colabでの計算
- 演習問題
-
2次元データと行列の積
- データの共分散
- データの相関係数
- 2次元データを行列と見て、共分散と相関係数の計算をベクトルと行列を用いて行う
- 行列とベクトルを用いた共分散
- 行列とベクトルを用いた相関係数
- 計算の実例
- Google colabでの計算
- 演習課題
-
総合演習
- 第1回〜第8回で扱った内容の理解度を確かめるチェック問題を出題
- 基礎的な内容の理解度をチェックする。
- 問題数は6問程度
- 答えも提供して勉強に役立ててもらう。
第2部 : 連立一次方程式とその性質
-
連立一次方程式の表現と解法の基礎
- 連立方程式とは?(高校の復習)
- 連立方程式の行列表現と、拡大係数行列
- 連立方程式の解法
- 連立方程式の実例
- 2元連立1次方程式、3元1次方程式の幾何学的解釈
- Google colabによる計算方法
- 演習問題
-
ガウスの消去法と解の探索
- 連立方程式の行列表現と、拡大係数行列(復習)
- 行列の基本変形
- ガウスの消去法による連立方程式の解法
- ガウスの消去法と連立方程式の消去法の対応づけ
- 実例を通した計算方法の学習
- Google Colabでの連立方程式の解法
- 演習問題
-
ランクの概念とその計算
- 階段行列の定義
- 簡約階段行列の定義
- 階段行列と簡約階段行列の例
- 行基本変形による簡約階段行列の導出方法
- 行列のランクの定義(階段行列を用いた定義)
- 行列のランクの計算
- 実例通した行列のランク計算
- Google colab での行列のランク計算
- 演習問題
-
連立方程式の解の種類
- 連立1次方程式の解の種類
- 連立1次方程式の解がただ1つに定まる場合の例
- 連立1次方程式の解が無数に存在する場合の例
- 連立1次方程式の解が無数に存在しない場合の例
- 実例を通した解のパターン分け
- 実例をGoogle Colabでシミュレーションし図示する。
- 演習問題
-
連立方程式の解の存在条件
- 行列のランクと拡大係数行列の関係
- 実例を通した連立1次方程式の解の判別と解の求め方
- 実例をGoogle Colabでシミュレーション
- 演習問題
-
逆行列の概念と存在条件
- 逆行列の定義
- 逆行列の性質
- 逆行列を求めることは、複数の連立方程式を同時に解くということに対応する。
- 逆行列と行列のランクの関係
- ガウスの消去法による具体的な計算過程
- 逆行列計算をstep by step で Google colabで実行する
- 演習問題
-
連立1次方程式と単回帰モデル
- 統計モデルとは何か?
- 単回帰モデルとは?
- 説明変数と反応変数とは?
- 切片と回帰係数とは?
- データへモデルを当てはめるとは?
- ベクトルと行列を使って、単回帰モデルを表そう。
- 連立1次方程式の解が存在しないから、近似的に解いて一番いい直線を探す。
- 最小二乗法による切片と傾きの推定
- 正規方程式とは何か?
- google colab で単回帰モデルが何をしているのかイメージする
- google colab で単回帰モデルを解く
- google colab で単回帰モデルを実際のデータに当てはめる
- google colab で単回帰モデルを解釈する
- 演習問題
-
ベクトルの1次独立と逆行列
- ベクトルの1次結合とは
- ベクトルの1次独立とは
- ベクトルの1次独立の判定(ガウスの消去法)
- ベクトルの1次独立と逆行列の存在
- 1次独立ではないベクトルがある場合の逆行列の不安定性
- Google Colab で1次独立を視覚的に理解する
- 演習問題(1次独立と逆行列)
-
連立1次方程式と2つの説明変数がある場合の線形回帰モデル
- 2つの説明変数がある場合の線形回帰モデル
- ベクトルと行列を使って、2つの説明変数がある場合の線形回帰モデルを表そう。
- 2つの説明変数がある場合の線形回帰モデルは、平面の推定をしている。
- 2つの説明変数がある場合の線形回帰モデルの解釈
- 最小二乗法によるパラメータの推定
- 2つの変数と切片がある場合の正規方程式
- google colab で2つの説明変数がある場合の線形回帰モデルが何をしているのかイメージする
- google colab で2つの説明変数がある場合の線形回帰モデルを解く
- google colab で2つの説明変数がある場合の線形回帰モデルを実際のデータに当てはめる
- google colab で2つの説明変数がある場合の線形回帰モデルを解釈する
- 演習問題(2つの説明変数がある場合の線形回帰モデル)
-
総合演習
- 第10回〜第19回で扱った内容の理解度を確かめるチェック問題を出題
- 基礎的な内容の理解度をチェックする。
- 問題数は6問程度
- 答えも提供して勉強に役立ててもらう。
-
中間試験(Midterm Exam)
- 第1回〜第18回までの内容から4問出題する
- 時間は60分
第3部 : 行列式
-
行列式の定義と基本性質
- 行列式とは?
- 2次・3次の行列式の定義
- 2次・3次行列での単位行列に対する行列式
- 2次・3次行列での行列式の多重線形性
- 2次・3次行列での行列式の交代性
- 2次・3次行列での行列の積の行列式の性質
- 2次・3次行列での逆行列の存在と行列式の関係
- google colab で 1次、2次、3次の行列式を計算する
- 演習問題
-
基本変形と行列式の計算
- 基本変形とは(復習)
- 2次・3次行列に対する基本変形と、行列式の値の変化
- 2次・3次行列のランク落ち行列と行列式の値の関係
- 2次・3次行列の行列式と逆行列の存在条件の関係を、基本変形とランクから考察する
- 実例を通した基本変形を用いた行列式の計算
- google colab で 2次・3次行列の基本変形による行列式の値の変化を実演
- 演習問題
-
還元定理と余因子展開による行列式の計算
- 還元定理の定義
- 余因子の定義
- 余因子展開の定義
- 還元定理、余因子展開で行列式の次数を下げる
- 2次・3次行列に対する還元定理による行列式の計算
- 2次・3次行列に対する余因子展開による行列式の計算
- 基本変形から還元定理が使える形に行列式を変形する
- google colab で 2次、3次の行列式を還元定理と余因子展開から計算する
- 演習問題
-
4次以上の行列式の計算
- 基本変形、還元定理、余因子展開を用いた4次以上の行列式の計算
- 4次以上の行列式を計算するコツ
- google colab を用いて 4次以上の行列式を還元定理と余因子展開から計算する
- 演習問題
-
総合演習
- 第21回〜第24回で扱った内容の理解度を確かめるチェック問題を出題
- 基礎的な内容の理解度をチェックする。
- 問題数は6問程度
- 答えも提供して勉強に役立ててもらう。
第4部: ベクトル空間と基底
-
ベクトル空間の基礎
- ベクトル空間とは?
- ベクトル空間の定義・性質
- 部分ベクトル空間の定義・性質
- ベクトルの1次独立性と、ベクトル空間の基底
- ベクトル空間の次元
- 2次元ベクトル空間、3次元ベクトル空間の具体例で理解を深める
- colab で 2次元ベクトル空間、3次元ベクトル空間の基底を可視化する
- 演習問題
-
内積と正規直交基底・グラムシュミット直交化法
- ベクトルの内積とは?
- 内積空間とは?
- 実ベクトルに対する内積の定義と、なす角
- 内積の性質
- ベクトル空間の直交基底
- 正規直交基底とグラム・シュミット直交化法
- 内積のイメージを、Google Colabでシミュレーション
- グラム・シュミット直交化を、google colabでシミュレーション
- 演習問題
-
正規直交基底と射影
- 正規直交基底(復習)
- ベクトル空間の直和分解、直交直和分解、直交補空間の定義
- 直交射影と正規直交基底の関係
- 射影行列とは
- 直交射影行列
- 線形回帰モデルと直交射影行列
- 直和分解のイメージを、Google Colabでシミュレーション
- 直交射影のイメージを、Google Colabでシミュレーション
- 演習問題
-
総合演習
- 第26回〜第28回で扱った内容の理解度を確かめるチェック問題を出題
- 基礎的な内容の理解度をチェックする。
- 問題数は6問程度
- 答えも提供して勉強に役立ててもらう。
-
総合演習2
- 前期の授業の復習
-
期末試験
- 第21回〜第29回の内容に関する試験
- 問題数は4問
- 時間は60分
第5部 : 固有値と固有ベクトル
-
固有値と固有ベクトルのための線形変換の基礎
- この回の授業は、固有値と固有ベクトルを学ぶために必要な線形変換を学びます。
- 線形変換の定義
- 行列による線形変換
- 線形変換の例
- Google Colabによる線形変換の可視化
- 演習問題
-
固有値・固有ベクトル
- 固有値・固有ベクトルの定義
- 固有多項式と特性方程式の定義
- 特性方程式による固有値と固有ベクトルの計算
- 固有値と固有ベクトルの幾何的解釈
- 2次元・3次元での図示と直感的理解
- 固有値の総和とトレース
- 固有値の積と行列式
- Colabによる可視化
- 演習問題
-
特性方程式と対角化
- 固有値と固有ベクトルの求め方の復習
- 行列の対角化の定義
- 対角化は可能であるための条件
- 対角化の手順と計算方法
- 2次・3次行列の対角化の具体例
- Colabによる計算
- 演習問題
-
対称行列と直交行列による対角化
- 対称行列の定義
- 対称行列の固有値が実数であること
- 対称行列の異なる固有値に対する固有ベクトルの直交性
- 直交行列の定義
- 対称行列の直交行列による対角化とその手順
- スペクトル分解
- 対称行列の対角化のデータサイエンスにおける重要性
- Colabによる計算
- 演習問題
-
データサイエンスのための2次形式と基礎
- 2次形式の定義
- 正定値・半正定値の定義
- 正定値・半正定値と固有値の関係性
- 正定値行列と分散共分散行列
- データサイエンスにおける2次形式の活用
- Colabによる図示と計算
- 演習問題
-
総合演習
- 固有値と固有ベクトルの計算ができるかの演習
- 2次形式と正定値行列
- 対角化を利用した \(A^n\) や数列の一般項の計算
-
中間試験(Midterm Exam)
- 固有値と固有ベクトルの計算を中心とした問題を2問出題
- 対角化を利用した \(A^n\) や数列の一般項の計算の問題を2問
第6部 : 線形代数応用としてのデータサイエンス
-
特異値分解の基礎
- 特異値の概念と重要性
- 特異値分解(SVD)の定義と特異値・特異ベクトル
- SVDの存在定理
- 特異値分解の計算法
- 特異値と固有値の関係、左右特異ベクトルの計算
- 特異値分解の幾何的な解釈
- 線形変換の分解としてのSVD, 単位球の変換、主軸への回転と伸縮
- Colab による特異値分解と図示による視覚的理解
- 演習問題
-
特異値分解の応用
- SVDの復習
- ムーアベンローズの擬似逆行列と、SVDを用いた計算
- 擬似逆行列の応用先の紹介
- 行列の低ランク近似
- エッカート・ヤングの定理の紹介
- トランケーションSVDと最適近似
- 近似誤差評価
- データ圧縮とノイズ除去
- SVDによる画像圧縮
- 信号処理におけるSVD
- 健康データへのSVDの応用
- Colab によるSVDの実演
- 演習問題
-
主成分分析(PCA)の導入
- 主成分分析の導入
- 主成分分析の目的
- データの共分散行列と相関行列の定義と性質
- 分散共分散行列に基づく主成分分析
- 分散最大化方向を求める意義
- 分散最大化方向(主成分)の数学的導出
- 主成分のと固有値・固有ベクトルとの関係
- 主成分の幾何的解釈
- 相関行列に基づく主成分分析
- なぜ分散共分散行列ではなく、相関行列に基づく主成分分析を行うか
- 分散共分散行列を用いた場合と、相関行列を用いた場合の主成分分析の結果の比較
- Google Colab での実演と視覚的理解
- 演習問題
-
主成分分析の結果の解釈と次元削減
- 主成分分析の復習(概念・導出過程)
- 主成分分析の結果の解釈
- 主成分分析の出力結果とその解釈について、健康・医療データの例を通して学ぶ
- 主成分に対する解釈をどのように行うか?
- 固有値・比率・累積
- 主成分と主成分スコア
- マハラノビス距離を利用した外れ値の特定
- スクリープロット
- バイプロット
- Google Colabで実行できるコードを作成し、図などを効果的に用いながら理解を深める。
- 主成分回帰 (Principal component regression) とその応用
- 主成分回帰とは?
- 主成分回帰の目的と意義
- 健康・医療データに対する主成分回帰とその結果の解釈
- 演習問題
-
特異値分解・主成分分析での応用例
- 特異値分解の復習
- 主成分分析の復習
- 特異値分解・主成分分析の応用例
- 医療画像処理
- 遺伝子発現データ解析
- ウェアラブルデバイスのデータ分析
- Colab での実演と視覚的理解
- 演習問題
-
因子分析の基礎
- 因子分析の概念
- 因子分析の目的
- 因子分析における潜在変数モデル
- 観測変数と潜在変数の関係
- 因子分析の数学的なモデル
- PCAとの違い
- 因子負荷量
- 因子負荷量の定義と解釈
- 因子パターン行列
- 共通性と独自性
- 共通因子と独自因子
- 共通性の概念と計算
- 独自性の意味と重要性
- Colab での実演と視覚的な理解
-
因子分析の推定法
- 因子分析の基本モデルの復習
- 最尤推定による因子の推定
- 因子回転
- 回転の目的
- 直交回転(varimax法)
- 斜交回転(promax法)
- 単純構造の概念
- Colab での実演と視覚的な理解
-
非線形次元削減法:t-SNEとUMAP
-
導入と非線形次元削減の必要性(10分)
- 前回までの線形次元削減手法(PCA・因子分析)の限界
- 非線形構造を持つデータの例(医療画像、ゲノムデータ、生体信号)
- マニフォールド仮説の説明
- 局所的構造と大域的構造の保存の重要性
-
t-SNE(t-distributed Stochastic Neighbor Embedding)の理論
- 基本概念と開発背景
- 数学的フレームワーク
- 高次元空間での条件付き確率の計算
- 低次元空間での確率分布(t分布の採用理由)
- Kullback-Leibler発散の最小化
- パラメータの役割
- パープレキシティの概念と設定
- 学習率とイテレーション数
- 計算量の問題と高速化手法(Barnes-Hutアルゴリズム)
-
UMAP(Uniform Manifold Approximation and Projection)の理論(15分)
- 基本概念と開発背景
- 数学的フレームワーク
- リーマン幾何学とトポロジーの観点
- 局所的距離関係のモデリング
- ファジー集合理論の応用
- 確率的勾配降下法による最適化
-
パラメータの役割
- 近傍数
- 最小距離
- ネガティブサンプル比率
-
t-SNEとUMAPの簡単な比較(結果のみ)
- どのような観点で使い分けができるか
-
健康データ科学における応用例(5分)
- 単一細胞RNAシーケンスデータの視覚化
- 医療画像の特徴空間における患者のクラスタリング
- 生理学的時系列データのパターン発見
- 医薬品開発における分子構造の類似性マッピング
-
演習問題
-
-
線形代数の応用としてのデータサイエンス
- 講義全体の総括
- 固有値・固有ベクトルの概念
- SVD
- 主成分分析
- 因子分析
- データサイエンスにおける線形代数学の重要性
- 健康データ分析における応用事例
- 医療画像解析におけるSVD
- 生体信号のPCAによる特徴抽出
- 健康質問票の因子分析
- 遺伝子発現データの次元削減
- 最新研究動向
- 非線形次元削減法(t-SNE, UMAP)
- スパース主成分分析
- テンソル分解と高次元データ
- 深層学習との関連
- 講義全体の総括
-
期末試験
- 固有値・固有ベクトル他