Google ColabでKerasを使った画像分類入門(MNIST編)

2025年5月9日金曜日

Google Colab Keras TensorFlow 画像分類 機械学習

X f B! P L

はじめに

こんにちは、SHOU です!
今回は、Google Colabを使って、Kerasライブラリで手書き数字(MNIST)の画像分類に挑戦してみます。
Colabは、Googleが提供する無料のクラウドサービスで、GPUも無料で使えるので、初心者でも簡単にディープラーニングを試せるのが魅力です。これからAIや機械学習を学びたい方に、最初の一歩としておすすめの内容です。

Google Colabとは?

Google Colab(Colaboratory)は、ブラウザ上でPythonコードが実行できる環境で、TensorFlowやKerasなどのライブラリが最初からインストール済み。特別なセットアップ不要で、すぐに使い始めることができます。 無料でGPU・TPUが使える ノートブックを共有できる 学習・開発環境として非常に便利

環境準備:ColabでGPUを有効化する

まずは、Google Colabを開きましょう。そしてGPUを使う設定にします。 設定方法:
上部メニューから [ランタイム][ランタイムのタイプを変更] を選びます。
「ハードウェアアクセラレータ」を GPU に設定して 保存。 GPUを選ぶことで、学習スピードが大幅アップします。

必要なライブラリのインポート

TensorFlowとKerasを使います。最初に以下のコードを実行しておきましょう。
  1. import tensorflow as tf
  2. from tensorflow import keras
  3. import numpy as np
  4. print("TensorFlowバージョン:", tf.__version__)
バージョンが表示されれば準備OKです。

データの準備

今回はKeras内蔵のMNIST(手書き数字データセット)を使います。
  1. # MNISTデータを読み込み
  2. (x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
  3. # データを0~1の範囲に正規化
  4. x_train = x_train / 255.0
  5. x_test = x_test / 255.0
このデータは、28×28ピクセルの手書き数字(0~9)の画像が含まれています。

モデルの作成

今回はシンプルな全結合ネットワークを構築します。
  1. model = keras.models.Sequential([
  2. keras.Input(shape=(28, 28)),
  3. keras.layers.Flatten(),
  4. keras.layers.Dense(128, activation='relu'),
  5. keras.layers.Dropout(0.2),
  6. keras.layers.Dense(10, activation='softmax')
  7. ])
  8.  
  9. model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
  • Flatten:28×28の画像を1次元に変換
  • Dense:全結合層(128ユニット)
  • Dropout:過学習防止
  • Dense(出力層):10クラス分類

学習と評価

いよいよ学習&評価です。
  1. # モデルを学習(5エポック)
  2. model.fit(x_train, y_train, epochs=5)
  3. # テストデータで評価
  4. test_loss, test_acc = model.evaluate(x_test, y_test)
  5. print(f"テスト精度: {test_acc:.3f}")
5エポック程度なら、GPUを使うと数分で完了します。

結果とまとめ

私の環境では、テスト精度: 約0.98(=約98%)が出ました。シンプルなモデルでも、手書き数字はかなりの高精度で分類できることがわかります。 Google Colabは、無料&簡単に使えるので、これから機械学習を始めたい方には本当におすすめです。
次回は、自分のデータセットを使ったり、畳み込みニューラルネットワーク(CNN)に挑戦して、さらに高精度を目指してみましょう!

このブログを検索

自己紹介

機械学習を学習中。虫も飼ってます。

お問い合わせ

名前

メール *

メッセージ *

プライバシーポリシー

QooQ