🎓 機械学習・深層学習 シミュレーション索引(数値実験ハブ)
シミュレーション索引
各トピックの主張を 数値実験で確かめるコード の一覧です。コードは学習リポジトリ machine-learning-study/simulations/ にあり、1ファイル1概念・日本語コメント付きで、コードが読めなくても「何を確かめているか」を1行ずつ追えるように書いています。
現在 68本が、全73トピック中 69トピックに対応しています(残るシミュ未作成は、図解より概念整理が主眼の 学習問題の定式化(仮説・損失・経験リスク)・プロンプティングとIn-context learning・ツール使用とエージェント・評価・ハルシネーション・安全性 の4本)。
このページの使い方
- 各行は
コードファイル名— 確認すること → 対応ノート の形式です。 - 対応ノート側にも「対応するシミュレーション」節があり、双方向に行き来できます。
- 「まず直観をつかみたい」トピックは、対応ノートを読んでからシミュレーションの結果(グラフ・数値)を眺めると理解が定着します。
実行方法
cd machine-learning-study/simulations
python <ファイル名>.py
- 数値結果は標準出力に、グラフは
figures/<同名>.pngに保存されます。 - 依存:
numpy/scipy/matplotlib/japanize_matplotlib/scikit-learn(深層の挙動を見せる一部のみ最小の PyTorch)。 - Windows で文字化けする場合は
set PYTHONIOENCODING=utf-8(PowerShell は$env:PYTHONIOENCODING="utf-8")を先に実行してください。
ドメイン別シミュレーション一覧(68本)
01 機械学習の基礎(6本)
bias_variance.py— 複雑さを上げるとバイアス↓・バリアンス↑で総誤差がU字 → 汎化と過学習・バイアスバリアンス分解・バイアスバリアンスの実証roc_pr_curves.py— しきい値掃引で ROC/PR 曲線と AUC → 評価指標(分類)とROC・AUClearning_curve.py— 学習曲線で高バイアス/高バリアンスを診断 → 訓練・検証・テストと交差検証curse_of_dimensionality.py— 高次元で距離が集中する(次元の呪い) → 次元の呪いregression_metrics.py— MAE/RMSE/R² と外れ値感度 → 評価指標(回帰)three_types_of_ml.py— 教師あり/なし/強化の3類型 → 機械学習とは・3類型
02 回帰(4本)
regularization_path.py— Ridge/Lasso の係数パス(Lasso はスパース) → 正則化(Ridge・Lasso・Elastic Net)multicollinearity.py— 相関の強い特徴で係数推定が不安定化 → 重回帰と多重共線性polynomial_basis.py— 基底関数で線形回帰を非線形化 → 多項式回帰と基底関数linear_regression_ols.py— 最小二乗(正規方程式)と残差 → 線形回帰(最小二乗法と確率的解釈)
03 分類(6本)
lda_qda.py— LDA(線形境界)と QDA(二次境界)の比較 → 判別分析(LDA・QDA)knn_decision_boundary.py— k の値と決定境界の滑らかさ(バイアス-バリアンス) → k近傍法(k-NN)svm_kernel.py— 線形 vs RBFカーネル・マージン・サポートベクター → サポートベクターマシン(SVM)decision_tree_overfit.py— 木の深さと過学習・軸平行な階段状の境界 → 決定木logistic_regression.py— シグモイド・確率・決定境界 → ロジスティック回帰naive_bayes.py— ガウシアンNBの軸平行な独立仮定 → ナイーブベイズ
04 アンサンブル学習(6本)
bagging_variance.py— バギングがバリアンスを下げる → バギングとランダムフォレストensemble_decorrelation.py— 平均のバリアンス低減と多数決(コンドルセ) → アンサンブルの原理adaboost_stages.py— AdaBoostの逐次再重み付けと誤差低減 → ブースティングとAdaBoostgradient_boosting_residuals.py— 残差を段階的に学習する勾配ブースティング → 勾配ブースティングstacking.py— スタッキング(OOF予測でメタ学習) → スタッキングxgboost_taylor.py— 損失の2次テイラー近似(XGBoostの核) → XGBoostとLightGBM
05 教師なし学習(6本)
kmeans_convergence.py— k-means(Lloyd)の目的関数 SSE が単調減少して収束 → k-meansクラスタリングgmm_em.py— EM で対数尤度が単調増加・各点のソフトな割り当て → 混合ガウスモデルとEMpca_variance.py— 分散最大の方向=再構成誤差最小の方向=第1固有ベクトル → 主成分分析と次元削減kernel_pca.py— カーネルPCAが非線形データを展開 → カーネルPCAと多様体学習hierarchical_dendrogram.py— 連結法とデンドログラム → 階層的クラスタリングanomaly_detection.py— マハラノビス距離 と Isolation Forest → 異常検知
06 最適化と学習理論(6本)
gradient_descent.py— 学習率による収束の速さと発散(安定限界 1/b) → 勾配降下法l1_l2_geometry.py— L1(ひし形)の角でスパース・L2(円)は縮小のみ → 正則化の理論optimizer_comparison.py— SGD・Momentum・RMSProp・Adam の収束比較 → モーメンタムとAdam系最適化convex_nonconvex.py— 凸=大域最小 / 非凸=初期値依存の局所解 → 凸最適化の基礎grid_vs_random_search.py— グリッド vs ランダム探索の被覆 → ハイパーパラメータ最適化hoeffding_bound.py— 経験平均の集中とヘフディング上界 → 汎化理論
07 ニューラルネットワーク(6本)
backprop_check.py— 誤差逆伝播の解析勾配と数値微分が一致(gradient checking) → 誤差逆伝播法activation_functions.py— 活性化関数と微分の比較・飽和(勾配消失)vs ReLU → 活性化関数init_and_vanishing.py— 初期化スケールと信号の消失/爆発・He初期化 → 重み初期化と正規化dropout_ensemble.py— ドロップアウト=暗黙アンサンブルで過学習抑制 → ニューラルネットの正則化early_stopping.py— 検証誤差の底で止める早期終了 → 最適化の実務perceptron_xor.py— パーセプトロンはXOR不可・MLPは可 → パーセプトロンと多層パーセプトロン
08 深層学習アーキテクチャ(6本)
cnn_convolution.py— 畳み込みフィルタによるエッジ検出とプーリング → 畳み込みニューラルネットワークrnn_gradient.py— BPTTの勾配消失・爆発(重みの累乗) → 再帰型ニューラルネットワークattention_weights.py— スケール付きドット積注意と√dの効果 → 注意機構positional_encoding.py— 正弦波の位置符号化と相対位置 → Transformerresnet_gradient.py— 残差接続が勾配を保つ → 代表的なCNNアーキテクチャword_embeddings.py— 共起+SVDで埋め込みが意味を捉える → 表現学習と埋め込み
09 生成モデル(5本)
autoencoder_reconstruction.py— ボトルネックで圧縮→復元(潜在次元と再構成) → オートエンコーダとVAEgan_optimal_discriminator.py— 最適識別器 D* とJSD → 敵対的生成ネットワークdiffusion_process.py— 拡散の順過程:データが徐々にノイズへ → 拡散モデルautoregressive_generation.py— n-gramで連鎖則と自己回帰生成 → 自己回帰モデルgenerative_vs_discriminative.py— 生成は標本を作れる/識別は境界のみ → 生成モデルとは
10 強化学習(5本)
q_learning_gridworld.py— グリッドワールドでQ学習が収束 → Q学習とSARSAvalue_iteration.py— ベルマン最適バックアップの収縮収束 → 価値関数とベルマン方程式markov_chain.py— マルコフ連鎖の定常分布への収束 → マルコフ決定過程policy_gradient_bandit.py— REINFORCEでバンディットの最適腕に収束 → 方策勾配法actor_critic.py— REINFORCE vs Actor-Critic(分散低減) → Actor-Criticと深層強化学習
11 実践・MLOps(6本)
imbalanced_threshold.py— accuracy paradox・クラス重みと再現率 → 不均衡データの扱いpermutation_importance.py— 並べ替えによる特徴量重要度 → モデル解釈性feature_scaling.py— 標準化の効果とデータリーク防止 → 特徴量エンジニアリングと前処理distribution_shift.py— 共変量シフトと重要度重み付け → 分布シフトと頑健性fairness_impossibility.py— 較正と均等オッズの両立不可(基準率差) → 公平性とバイアスmlops_monitoring.py— 分布ドリフト→監視→再学習 → MLOpsと実験管理
12 大規模言語モデル(6本)
softmax_temperature.py— 温度がソフトマックス分布を変える → 推論の実務scaling_laws.py— べき乗則のスケーリング則(両対数で直線) → 事前学習とスケーリング則bpe_tokenization.py— バイトペア符号化の逐次マージ → LLMの全体像dpo_bradley_terry.py— 選好から報酬を復元(Bradley-Terry) → アラインメントrag_retrieval.py— 埋め込み類似度で文書検索(RAG) → 検索拡張生成lora_low_rank.py— 低ランク近似ΔW=BAで省パラメータ → ファインチューニング
関連ノート
- 機械学習テキスト 全体目次(最上位ハブ。ドメイン別目次へ)