Skip to content

Repository files navigation

MPRG Deep Learning Lecture Notebook

画像認識・深層学習を基礎から学ぶための Jupyter Notebook 集

Python PyTorch Open in Colab


概要

本リポジトリは,中部大学 MPRG (Machine Perception & Robotics Group) が公開している画像認識・深層学習を実践的に学ぶための Jupyter Notebook コレクションです.

各ノートブックは以下の2通りの方法で実行できます.

  • Google Colaboratory で実行する:各ノートブックの Open in Colab バッジをクリックすると,ブラウザ上ですぐに実行できます.
  • ローカル環境で実行する:Docker を用いた開発環境を用意しています.詳細は containers/README.md を参照してください.

免責事項

本リポジトリは,MPRGの教員および学生が有志で作成したものです.そのため,バグやミス,ライブラリ等のバージョンアップに伴う動作不具合などが含まれている場合があります.できるだけ修正対応するように努めていますが,修正等の対応が間に合わない場合があることをご了承ください.

旧MPRG Deep Learning Lecture Notebook(v1)から,情報の古くなったノートブックや未完成だったノートブックなどは削除しています.古いノートブックを参照したい場合は,release/v1.0ブランチを参照してください.

目次


Python チュートリアル

Google Colaboratory・Pythonの使い方

ノートブックのプログラムを実行する際に使用するGoogle Colaboratoryや,Python, Numpy, PyTorchなどのプログラミングに関する基本的な使い方をまとめたノートブックです.

No. ノートブック Colab
1 Google Colaboratoryの動作確認 Open In Colab
2 PythonプログミングとNumPy Open In Colab
3 PyTorchの基本操作 Open In Colab
4 PyTorchにおけるCPUとGPU(CUDA)の使い方 Open In Colab

初級編

初級1:ゼロから理解するDeep Learning

スクラッチで基本的なニューラルネットワークモデルや学習スクリプトを記述したノートブックです. PyTorchなどの深層学習フレームワークを使用せず,Numpyを使用して実装しています.

No. ノートブック Colab
1 最適化(GD, Momentum, AdaGrad, Adam) Open In Colab
2 単純パーセプトロンによるAND回路の作成 Open In Colab
3 MLPによるXOR回路の作成 Open In Colab
4 MLPによる2クラス分類 Open In Colab
5 ミニバッチを用いたMLPの学習 Open In Colab
6 MLPによる多クラス分類(MNIST) Open In Colab
7 正則化(Dropout) Open In Colab
8 Batch Normalizationの導入 Open In Colab
9 im2colを用いた効率的な畳み込み処理 Open In Colab
10 CNNによる画像認識(MNIST, Numpy実装) Open In Colab

初級2:PyTorchで作るシンプルネットワーク

PyTorchを使用して基本的な多層パーセプトロンや畳み込みニューラルネットワークなどのモデル構築・学習を記述したノートブックです. また,モデルの学習に関連するデータ拡張やPyTorchのクラスなども実装しています.

No. ノートブック Colab
1 MLPによる画像認識(MNIST, PyTorch実装) Open In Colab
2 CNNによる画像認識(MNIST, PyTorch実装) Open In Colab
3 CNNによる画像認識(CIFAR10, PyTorch実装) Open In Colab
4 既存のデータセットの活用 Open In Colab
5 データ拡張(Data Augmentation) Open In Colab
6 データセットクラスの自作(Custom Dataset) Open In Colab
7 nn.Sequential・nn.ModuleListと動的なネットワーク構築 Open In Colab
8 モデルの保存と読み込み Open In Colab
9 Optimizerの比較とSchedulerによる学習率の調整 Open In Colab
10 再現性の確保 Open In Colab
11 DataLoaderのチューニング Open In Colab
12 混合精度学習(AMP) Open In Colab

中級編

中級1:PyTorchで作るCNNモデル

CNNをベースとした様々なネットワーク構造・学習法を扱ったノートブック群です.画像分類・可視化・物体検出・セグメンテーション・マルチタスク学習・モデルの効率化・半教師あり/自己教師あり学習・転移学習といったテーマ別に分類しています.

画像分類のネットワーク構造

CIFAR100を用いて,代表的な画像分類モデルをスクラッチ実装したノートブック群です.基本的な分類モデル,軽量なモデル,自動探索(NAS)に基づくモデルの順に構成しています.

No. ノートブック Colab
1 AlexNet Open In Colab
2 VGG Open In Colab
3 GoogLeNet Open In Colab
4 ResNet Open In Colab
5 WideResNet Open In Colab
6 ResNeXt Open In Colab
7 DenseNet Open In Colab
8 SENet Open In Colab
9 MobileNet V1 Open In Colab
10 MobileNet V2 Open In Colab
11 MobileNet V3 Open In Colab
12 SqueezeNet Open In Colab
13 EfficientNet Open In Colab
14 EfficientNetV2 Open In Colab
15 MnasNet Open In Colab
16 RegNet Open In Colab

転移学習・ファインチューニング

torchvisionとTIMM (PyTorch Image Models) モジュールに実装されている代表的なネットワークモデルとその事前学習モデルの呼び出し方,またそれらを用いた転移学習やファインチューニングの方法についてまとめています.

No. ノートブック Colab
1 torchvisionによるモデル呼び出しと事前学習モデルの利用 Open In Colab
2 timmによるモデル呼び出しと事前学習モデルの利用 Open In Colab
3 事前学習モデルを用いた転移学習・ファインチューニング Open In Colab

判断根拠の可視化(視覚的説明・Explainable AI)

画像分類モデルが予測した結果に対する判断根拠をアテンションマップ(Attention map, Saliency map, Attribution map)として可視化する手法についてまとめています.

No. ノートブック Colab
1 CAM(Class Activation Mapping) Open In Colab
2 pytorch-grad-camによる各種可視化手法(GradCAM, ScoreCAM, EigenCAMなど) Open In Colab
3 Attention Branch Network(ABN) Open In Colab

物体検出

PASCAL VOC 2007を用いて,two-stage・one-stage・anchor-free・keypointベースなど,代表的な物体検出モデルをスクラッチ実装したノートブック群です.

No. ノートブック Colab
1 SSD Open In Colab
2 Faster R-CNN Open In Colab
3 FPN(Feature Pyramid Network) Open In Colab
4 RetinaNet(Focal Loss) Open In Colab
5 CornerNet Open In Colab
6 CenterNet Open In Colab
7 EfficientDet Open In Colab
8 FCOS(Anchor-Free) Open In Colab
9 YOLOv1 Open In Colab
10 YOLOv3 Open In Colab

セマンティックセグメンテーション

PASCAL VOC 2007を用いて,encoder-decoder型やAtrous Convolutionを用いた手法など,代表的なセマンティックセグメンテーションモデルをスクラッチ実装したノートブック群です.

No. ノートブック Colab
1 FCN(Fully Convolutional Network) Open In Colab
2 SegNet Open In Colab
3 U-Net Open In Colab
4 U-Net++ Open In Colab
5 PSPNet Open In Colab
6 RefineNet Open In Colab
7 DeepLab v1 Open In Colab
8 DeepLab v3 Open In Colab
9 DeepLab v3+ Open In Colab
10 HRNet Open In Colab

マルチタスク学習(修正予定)

No. ノートブック Colab
1 マルチタスク基礎(分類+回帰) Open In Colab
2 マルチタスク応用(検出+セグメンテーション) Open In Colab

モデルの効率化・知識の伝達(修正予定)

No. ノートブック Colab
1 Knowledge Distillation Open In Colab
2 Deep Mutual Learning Open In Colab
3 枝刈り Open In Colab

ラベルなしデータを活用した学習(修正予定)

No. ノートブック Colab
1 半教師付き学習 Open In Colab
2 自己教師付き学習 Open In Colab

中級2:PyTorchで作る深層生成モデル

AutoencoderとVariational Autoencoder

AutoencoderとVariational Autoencoder,それらを活用した応用例や発展手法についてまとめています.

No. ノートブック Colab
1 Auto Encoder(AE)による画像の再構成 Open In Colab
2 Denoising Autoencoder(DAE)によるノイズ除去 Open In Colab
3 Variational Autoencoder (VAE) Open In Colab
4 β-VAE Open In Colab
5 繰り返し処理による異常検知 Open In Colab
6 Vector Quantized VAE (VQ-VAE) Open In Colab
7 Stochastic Quantization VAE (SQ-VAE) Open In Colab

Generative Adversarial Networks (GAN)

敵対的生成ネットワーク (GAN) とその発展手法についてまとめています.

No. ノートブック Colab
1 Generative Adversarial Networks (GAN) Open In Colab
2 Deep Convolutional GAN (DC-GAN) Open In Colab
3 Wasserstein GAN with Gradient Penalty (WGAN-GP) Open In Colab
4 Conditional GAN Open In Colab
5 Conditional DC-GAN Open In Colab
6 pix2pix Open In Colab
7 CycleGAN Open In Colab
8 Progressive Growing GAN (PGGAN) Open In Colab
9 BigGAN Open In Colab
10 StyleGAN Open In Colab

中級3:PyTorchで作る再帰型ネットワーク

No. ノートブック Colab
1 Recurrent Neural Networkによる電力予測 Open In Colab
2 Recurrent Neural NetworkによるBitcoinの価格予測 Open In Colab
3 Encoder-Decoderによる計算機作成 Open In Colab
4 Attention Seq2seqによる計算機作成 Open In Colab
5 Attention Seq2seqによる日付変換 Open In Colab
6 Convolutional LSTMを用いた動画像予測 Open In Colab

中級4:PyTorchで作る強化学習

No. ノートブック Colab
1 強化学習(Q学習とQ-Network)によるCart Pole制御 Open In Colab
2 Deep Q-Network(DQN) Open In Colab
3 Policy Gradient(REINFORCE) Open In Colab
4 Actor-Critic Open In Colab
5 Mask-Attention Actor-Critic Open In Colab
6 DQNの応用例(波形フィッティング) Open In Colab

中級5:PyTorchで作るグラフニューラルネットワーク

No. ノートブック Colab
1 グラフ表現 Open In Colab
2 GCNによるノード分類 Open In Colab
3 ST-GCNによる動作認識 Open In Colab
4 STA-GCNによる動作認識 Open In Colab
5 グラフ生成 Open In Colab

上級編

上級1:PyTorchで作るTransformerモデル

No. ノートブック Colab
1 Transformerによる計算機作成 Open In Colab
2 BERTによるテキスト分類 (Banking77) Open In Colab

上級2:PyTorchで作るVision Transformerモデル

No. ノートブック Colab
1 ViTの教師あり学習(フルスクラッチ・fine-tuning) Open In Colab
2 Masked Autoencoders (MAE) Open In Colab

上級3:PyTorchで作る視覚言語モデル

No. ノートブック Colab
1 CLIPによる画像のゼロショットクラス分類 Open In Colab
2 CLIPと言語モデルを組み合わせたMLLM Open In Colab

上級4:PyTorchで作る拡散モデル

No. ノートブック Colab
1 Denoising Diffusion Probabilistic Model (DDPM) Open In Colab
2 Diffusion Model(Cosineスケジュール・FID評価) Open In Colab
3 Latent Diffusion Model (LDM) Open In Colab

その他

ハイパーパラメータの探索

ネットワークの学習に用いるハイパーパラメータの探索方法についてまとめたノートブックです.

No. ノートブック Colab
1 ハイパーパラメータの探索と検証データ Open In Colab
2 Optunaによるハイパーパラメータ探索 Open In Colab

機械学習の基礎

深層学習以前の機械学習手法について使い方をまとめたノートブックです. 主にscikit-learnを使用して実装しています.

No. ノートブック Colab
1 グラフを描画する Open In Colab
2 ユークリッド距離を用いたクラス識別 Open In Colab
3 マハラノビス距離を用いたクラス識別 Open In Colab
4 k最近傍法による教師あり学習 Open In Colab
5 線形SVMによる教師あり学習 Open In Colab
6 非線形SVMによる教師あり学習 Open In Colab
7 AdaBoostによる教師あり学習 Open In Colab
8 RandomForestによる教師あり学習 Open In Colab
9 マテリアルズインフォマティクス Open In Colab

プログラム練習帳

No. ノートブック Colab
1 プログラム練習帳:画像認識 Open In Colab
2 プログラム練習帳:CSVファイル Open In Colab

© 2026 Machine Perception and Robotics Group, Chubu University. All rights reserved.

About

No description, website, or topics provided.

Resources

Stars

383 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages