このノートブックでは、機械学習の基礎的な考え方を段階的に理解するための内容を扱っています。
単純なパーセプトロンから始まり、活性化関数、非線形問題(XOR)、応用モデル(じゃんけんや画像認識)へと発展していきます。
パーセプトロン(Perceptron)は、最も基本的な人工ニューラルネットワークの構成要素です。
生物学的な神経細胞を模した単一の線形分類モデルであり、入力の重み付き和に基づいて出力(0または1)を決定します。
- 機械学習の「教師あり学習」の基本構造。
- パーセプトロンが「線形分離しかできない」という制約。
活性化関数(Activation Function)は、ニューロンの出力に非線形性を導入するための関数です。
これにより、モデルはより複雑なパターンを学習できるようになります。
- 以下の代表的な活性化関数をグラフで可視化:
- ステップ関数
- シグモイド関数
- tanh(双曲線正接)関数
- ReLU(Rectified Linear Unit)
- 各関数の勾配の比較。
- 活性化関数が「学習の表現力」を高める理由。
- 勾配消失問題(Gradient Vanishing)の直感的理解。
排他的論理和問題は、パーセプトロンでは解けない典型的な非線形問題です。
ここではTensorFlowを用いて、多層パーセプトロン(MLP)で解く手法を実装しています。
- XORの入出力データセットを生成。
- TensorFlow/Kerasを使用して2層のネットワークを構築。
- 学習曲線(loss, accuracy)を可視化して学習の様子を確認。
- 学習済みモデルによる予測結果を可視化。
- 多層化と活性化関数の導入により非線形問題を解けるようになる。
「じゃんけんの勝敗予測」という身近な題材を使い、分類問題の実践的な流れを体験します。
- 手(グー・チョキ・パー)を数値化して入力データを作成。
- モデルを構築し、プレイヤーの手と相手の手から勝敗を予測。
- 精度や混同行列を使って結果を分析。
- データの**前処理(エンコーディング)**の重要性。
- モデルが「パターンを学ぶ」とはどういうことか。
- 過学習(overfitting)の兆候や対策の初歩。
MNISTを用いた、画像認識の基本モデル(CNN)を構築します。
- TensorFlow/Keras によるネットワーク設計。
- 訓練データ(60,000枚)とテストデータ(10,000枚)で学習・評価。
- 精度・損失の推移を可視化。
- 実際の手書き数字画像に対して予測結果を表示。
- 画像認識におけるCNNの効果。
| 段階 | ノートブック | 学習テーマ |
|---|---|---|
| 1 | perceptron | 線形分類の基礎 |
| 2 | activation_function | 非線形性の導入 |
| 3 | xor_model | 多層構造の意義 |
| 4 | janken_model | 応用的な分類問題 |
| 5 | image_recognition_model | 実データによる画像認識 |
- Python 3
- JupyterLab、Jupyter Notebook、Google Colab
- TensorFlow / Keras
- NumPy, Matplotlib などの標準的なライブラリ