AI(人工知能)と聞くと、「難しそう」「数学が必要そう」と感じるかもしれません。しかし、Pythonというプログラミング言語を使えば、初心者でも簡単なAI開発にチャレンジすることができます。この記事では、画像認識という分かりやすいテーマを通じて、PythonでAIを作る第一歩を一緒に体験していきましょう。
画像認識とは?
画像認識とは、画像データの中から何が写っているのかを判断する技術です。例えば、スマホの顔認証や、工場の異常検知カメラ、SNSの自動タグ付けなど、さまざまな場面で活用されています。
今回のゴールは、「手書きの数字画像を認識するAIモデル」を作ること。これは、AI開発における定番の教材「MNIST(エムニスト)データセット」を使って実現します。
開発環境の準備
まずは開発環境を整えましょう。以下のパッケージをインストールしておきます:
pip install tensorflow matplotlib
TensorFlowはGoogleが開発した機械学習ライブラリで、初心者でも簡単にAIモデルを作成できます。
コードで画像認識を実装してみよう
さっそくPythonコードで、シンプルなAIモデルを作ってみましょう。
import tensorflow as tf
import matplotlib.pyplot as plt
# MNISTデータの読み込み
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# 正規化(0〜1の範囲に変換)
x_train, x_test = x_train / 255.0, x_test / 255.0
# モデルの定義(シンプルなニューラルネットワーク)
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)), # 入力層
tf.keras.layers.Dense(128, activation='relu'), # 中間層
tf.keras.layers.Dropout(0.2), # 過学習対策
tf.keras.layers.Dense(10, activation='softmax') # 出力層(0〜9の分類)
])
# モデルのコンパイル
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 学習(トレーニング)
model.fit(x_train, y_train, epochs=5)
# テストデータで評価
model.evaluate(x_test, y_test)
これだけのコードで、約95%以上の精度で手書き数字を分類するAIモデルが完成します!
結果を見てみよう
学習が終わったら、実際に画像を使ってAIの予測結果を表示してみましょう。
# テスト画像を1枚表示
plt.imshow(x_test[0], cmap='gray')
plt.title(f"Actual: {y_test[0]}")
plt.show()
# AIによる予測
prediction = model.predict(x_test[:1])
print(f"Predicted: {tf.argmax(prediction[0]).numpy()}")
これにより、「実際の数字」と「AIの予測した数字」が見比べられます。AIが正しく認識できていると嬉しいですよね!
最後に:AI開発の魅力と次のステップ
今回のように、Pythonと少しのコードで、本格的なAIが作れてしまう時代です。画像認識はAIの入り口として最適で、実践的な応用も多い分野です。
次のステップとしては、以下のような挑戦が考えられます:
- 自分で撮影した画像を使って認識する
- 他のデータセット(例えばファッション画像など)で学習させる
- CNN(畳み込みニューラルネットワーク)を使って精度をさらに上げる
AI開発は一見難しそうに見えますが、「まずは動くものを作ってみる」ことで、理解がぐっと深まります。ぜひ今回の画像認識をきっかけに、さらにAIの世界を探検してみてください!