ゼロから始める Kerasインストールガイド:深層学習の世界への第一歩
はじめに
人工知能(AI)と聞いて、あなたはどのようなイメージを持つでしょうか? 自動運転車、画像認識、音声アシスタント、病気の診断、株価予測… 私たちの周りには、AIが活用されている例が溢れています。そして、これらの多くのアプリケーションの根幹にある技術の一つが、「深層学習(Deep Learning)」です。
深層学習は、人間の脳神経回路網を模倣した「ニューラルネットワーク」を多層に重ねることで、複雑なパターンを学習する技術です。かつては研究者の専門分野でしたが、近年は高性能なコンピュータの普及と、使いやすいライブラリやフレームワークの登場により、誰でも比較的容易に深層学習モデルを構築・実行できるようになりました。
数ある深層学習フレームワークの中でも、特に初心者にとって扱いやすく、かつ強力な機能を持つのが「Keras」です。Kerasは、TensorFlowやPyTorchといった他の深層学習ライブラリの上で動作する高レベルなAPIとして設計されており、「コードを書くこと」よりも「アイデアを実現すること」に集中できる直感的なインターフェースを提供します。
この記事は、プログラミング経験が浅い方や、深層学習に全く触れたことがない方を対象に、Kerasをゼロからインストールし、実際に簡単なプログラムを実行するまでを、約5000語の詳細な解説付きで徹底的にサポートします。この記事を読み終える頃には、あなたのPCでKerasが動作し、深層学習の学習を始める準備が整っているでしょう。
さあ、深層学習の世界への第一歩を踏み出しましょう!
Kerasを始める前に
Kerasのインストールは、比較的簡単な部類に入りますが、いくつかの準備と基本的な知識があると、よりスムーズに進めることができます。
1. 必要なもの
- コンピュータ: Windows, macOS, Linux のいずれかのOSがインストールされたPC。CPU版のKerasであれば、特別な高性能は必要ありません。インターネットに接続できる環境が必要です。
- インターネット接続: ライブラリのダウンロードや情報収集に必須です。
- 少しの忍耐と探求心: 新しい技術の学習には、分からないことやエラーに遭遇することがつきものです。一つずつ解決していく姿勢が大切です。
2. あると望ましい知識
- Pythonの基礎: KerasはPythonで動作します。変数、リスト、関数、クラスといった基本的な文法を理解していると、Kerasのコードをより深く理解できます。もし不安があっても大丈夫です。必要最低限のPythonの知識は、学習を進める中で身につけることができます。
- コマンドライン(ターミナル)の操作: ライブラリのインストールや仮想環境の操作に、コマンドラインを使います。基本的なコマンド(
cd
,mkdir
,ls
またはdir
など)を知っていると便利ですが、この記事で必要なコマンドは具体的に解説します。 - 仮想環境の概念: 必須ではありませんが、理解しておくと今後のPython開発が格段に楽になります。後述する「インストール環境の準備」のセクションで詳しく解説します。
3. OSごとの注意点
基本的なインストール手順はOS間で大きく変わりませんが、Pythonのインストール方法やコマンドラインの開き方などが異なります。この記事では、主要なOS(Windows, macOS)に焦点を当てて解説を進めます。Linuxユーザーの方も、基本的な流れは同じですので適宜読み替えてください。
インストール環境の準備
Kerasをインストールする前に、まずはKerasを動かすための「土台」となるPython環境を準備します。このステップは非常に重要です。
1. Pythonのインストール
KerasはPythonというプログラミング言語で書かれており、Pythonインタプリタの上で動作します。まずはPythonをインストールしましょう。
なぜPythonなのか?
Pythonは、そのシンプルで読みやすい文法と、豊富なライブラリ群から、データ分析、機械学習、深層学習の分野で最も広く使われている言語の一つです。Kerasを含む主要な深層学習フレームワークはPythonで開発されており、Pythonの知識は深層学習を学ぶ上で不可欠です。
Pythonのバージョン
Kerasは通常、比較的新しいバージョンのPythonをサポートしています。記事執筆時点では、Python 3.8以降が推奨されることが多いです。Python 2.xは既にサポートが終了しているため、必ずPython 3.x系をインストールしてください。
Pythonの公式サイトからのダウンロード・インストール
最も基本的な方法は、Pythonの公式サイトからインストーラーをダウンロードして実行することです。
公式サイトにアクセスし、お使いのOSに対応した最新版のPython 3.xインストーラーをダウンロードしてください。通常は「Latest Python 3 Release」として表示されています。
Windowsでのインストール手順:
- ダウンロードした
.exe
ファイルをダブルクリックして実行します。 - インストーラーが起動したら、非常に重要な設定項目があります。ウィンドウ下部にある「Add Python [バージョン番号] to PATH」というチェックボックスに必ずチェックを入れてください。これにチェックを入れないと、後でコマンドプロンプトからPythonコマンドやpipコマンドが使えず、別途環境パスを設定する必要が出てきてしまいます。
- 「Install Now」を選択します。このオプションは通常、推奨される設定でPythonをインストールします。インストール先などを細かく指定したい場合は「Customize installation」を選びますが、初心者の方は「Install Now」で問題ありません。
- インストールが完了するまで待ちます。
- インストール完了後、「Setup was successful」と表示されれば成功です。ウィンドウを閉じます。
インストールの確認 (Windows):
コマンドプロンプトを開きます。(Windowsキーを押して「cmd」と入力しEnterキーを押すか、「コマンドプロンプト」で検索)。
以下のコマンドを入力してEnterキーを押します。
bash
python --version
インストールしたPythonのバージョンが表示されれば成功です(例: Python 3.10.4
)。
次に、Pythonのパッケージ管理システムであるpip
が使えるか確認します。
bash
pip --version
こちらもバージョン情報が表示されればOKです(例: pip 22.0.4
)。
macOSでのインストール手順:
macOSには、システム用途で古いバージョンのPythonがプリインストールされていることがあります。しかし、Kerasを使うためには新しいバージョンを別途インストールするのが一般的です。公式サイトからインストーラーをダウンロードするのが最も手軽です。
- ダウンロードした
.pkg
ファイルをダブルクリックして実行します。 - インストーラーの指示に従って進めます。「続ける」「同意する」などをクリックしていき、インストール先を選択します。特に理由がなければデフォルトのままで構いません。
- インストールが完了するまで待ちます。管理者パスワードの入力を求められることがあります。
- インストール完了後、インストーラーを閉じます。
インストールの確認 (macOS):
ターミナルを開きます。(Launchpadから「ターミナル」を検索するか、Finderで「アプリケーション」→「ユーティリティ」→「ターミナル.app」を選択)。
以下のコマンドを入力してEnterキーを押します。
bash
python3 --version
多くの場合、公式サイトからインストールした新しいPythonはpython3
コマンドで実行できます(システムに元々入っている古いPythonはpython
コマンドの場合があります)。インストールしたPythonのバージョンが表示されれば成功です。
次に、pip
が使えるか確認します。
bash
pip3 --version
こちらもバージョン情報が表示されればOKです。macOSでは、pip
コマンドがシステムのPythonに紐づいてしまうことがあるため、新しいPythonに紐づいたpip3
を使うのが一般的です。
2. 仮想環境の利用
Pythonでの開発において、仮想環境の利用は強く推奨されます。Kerasのインストールに進む前に、仮想環境について理解し、設定しておきましょう。
なぜ仮想環境が必要なのか?
Pythonプロジェクトでは、様々な外部ライブラリを使用します。プロジェクトAではライブラリXのバージョン1.0が必要だが、プロジェクトBではライブラリXのバージョン2.0が必要、といった状況が発生し得ます。
もし、これらのライブラリをOS全体にインストールしてしまうと、異なるプロジェクト間でライブラリのバージョンが衝突したり、不要になったライブラリを削除するのが難しくなったりします。これは「依存関係の管理問題」と呼ばれます。
仮想環境は、プロジェクトごとに独立したPython実行環境を作成する仕組みです。仮想環境内にインストールされたライブラリは、他の仮想環境やOS全体には影響しません。これにより、プロジェクトごとに必要なライブラリとそのバージョンを cleanly に管理できるようになります。
Kerasをインストールする際も、仮想環境内にインストールすることで、他のPythonプロジェクトに影響を与えずに済みます。また、深層学習ライブラリは依存関係が複雑な場合があるため、仮想環境を使うことでトラブルを避けやすくなります。
主要な仮想環境ツール
venv
(またはvirtualenv
): Pythonに標準で付属している仮想環境作成ツールです(Python 3.3以降)。シンプルで特別なインストールは不要なため、手軽に使えます。- Conda: AnacondaやMinicondaに付属するパッケージ管理・環境管理システムです。Python以外の言語のライブラリも含めて一元管理でき、科学技術計算分野でよく使われます。NumPyやTensorFlowなどの依存関係を解決しながらインストールする際に便利ですが、別途AnacondaまたはMinicondaのインストールが必要です。
ここでは、Pythonに標準で付属しており、手軽に使えるvenv
を使った仮想環境の作成方法を解説します。
venv
を使った仮想環境の作成と利用
-
プロジェクトディレクトリの作成:
まず、これからKerasを使ったプログラムを置いていくためのディレクトリ(フォルダ)を作成します。コマンドライン(Windowsならコマンドプロンプト、macOSならターミナル)を開き、以下のコマンドを実行します。“`bash
デスクトップに移動する場合 (例)
Windows
cd %USERPROFILE%\Desktop
macOS/Linux
cd ~/Desktop
Kerasプロジェクト用のディレクトリを作成
mkdir keras_project
作成したディレクトリに移動
cd keras_project
“`これで、
keras_project
というディレクトリが作成され、その中に移動しました。 -
仮想環境の作成:
keras_project
ディレクトリ内で、以下のコマンドを実行して仮想環境を作成します。myenv
の部分は任意の仮想環境名ですが、ここではmyenv
とします。“`bash
Windows
python -m venv myenv
macOS/Linux
python3 -m venv myenv
“`このコマンドを実行すると、現在のディレクトリ(
keras_project
)の中にmyenv
というディレクトリが作成されます。このmyenv
ディレクトリの中に、仮想環境用のPython実行ファイルやpipなどが格納されます。もし
python
コマンドで新しいPythonが起動しない場合、python3
など、先ほどインストールした新しいPythonが起動するコマンドに置き換えてください。Windowsでpython -m venv myenv
がうまくいかない場合は、Pythonインストール時にPATHが正しく設定されていない可能性があります。その場合は、「Add Python to PATH」を再度確認するか、Pythonを再インストールしてください。 -
仮想環境のアクティベート(有効化):
作成した仮想環境を使うためには、「アクティベート」という作業が必要です。アクティベートすることで、以降のコマンドライン操作(例:python
実行、pip
インストール)が、OS全体のPythonではなく、この仮想環境内のPythonに対して行われるようになります。Windowsの場合:
bash
.\myenv\Scripts\activatemacOS/Linuxの場合:
bash
source myenv/bin/activateコマンドを実行すると、コマンドラインのプロンプトの先頭に
(myenv)
のように仮想環境名が表示されます。これで仮想環境がアクティベートされた状態です。アクティベートされた状態で
python --version
やpip --version
を実行すると、仮想環境内のPythonやpipのバージョンが表示されることを確認してください。 -
仮想環境のディアクティベート(無効化):
仮想環境の使用を終える(例: 別のプロジェクトの作業に移る、コマンドラインを閉じる)際は、ディアクティベートします。アクティベートされている仮想環境内で以下のコマンドを実行します。bash
deactivateプロンプトから
(myenv)
の表示が消えれば、仮想環境が無効化され、OS全体のPython環境に戻ります。再びこの仮想環境で作業したい場合は、上記のアクティベート手順を繰り返します。
仮想環境に関する補足:
- Anaconda/Miniconda: もしあなたが科学技術計算をよく行ったり、複数の異なるPython環境を頻繁に切り替えたりする場合は、Condaの利用も検討できます。CondaはPython自体の管理も行い、
conda create -n myenv python=3.10
のようなコマンドで特定のバージョンのPython環境を作成できます。インストール手順は公式サイト (https://www.anaconda.com/ または https://docs.conda.io/en/latest/miniconda.html) を参照してください。Conda環境を作成した場合、以降のpip install
コマンドは、アクティベートしたConda環境内で実行します。 - 仮想環境のアクティベートは必須: Kerasや関連ライブラリをインストールする際は、必ず作成した仮想環境をアクティベートした状態で行ってください。そうしないと、OS全体にインストールされてしまい、仮想環境を使う意味がなくなってしまいます。
これでKerasをインストールするための環境が整いました。次に、いよいよKeras本体と、その実行に必要なライブラリをインストールします。
Kerasと依存ライブラリのインストール
Kerasは単体で動作するわけではなく、いくつかの他のライブラリに依存しています。特に重要なのは「バックエンド」と呼ばれる部分で、Kerasが実際に計算処理を依頼するエンジンです。最も一般的なバックエンドはTensorFlowです。
1. KerasとTensorFlowの関係性
歴史的に見ると、Kerasは独立したライブラリとして始まり、TensorFlow、CNTK、Theanoといった複数のバックエンドを選択して使用できました。しかし、GoogleがKerasの主要開発者であるFrançois Chollet氏を迎え入れ、KerasはTensorFlowの公式な高レベルAPI (tf.keras
) として統合されました。
現在、一般的に「Kerasを使う」と言う場合、多くはTensorFlowに含まれるtf.keras
を指します。TensorFlowをインストールすれば、自動的に最新のKeras(tf.keras
)も利用できるようになります。
また、最近ではバックエンドに依存しないスタンドアロンのKeras (keras-core
を経て現在はkeras
という名称でpip配布されている) も開発が進んでおり、PyTorchやJAXなどのバックエンドも利用できるようになっています。しかし、特に初心者がTensorFlowと一緒に使う場合は、tf.keras
を利用するのが最も一般的で安定しています。
この記事では、最も一般的な方法として「TensorFlowをインストールすることでtf.keras
を利用する」方法を解説します。 もしスタンドアロンのkeras
をインストールしたい場合は、別途その方法を調べる必要がありますが、まずはtf.keras
から始めるのがおすすめです。
2. TensorFlowのインストール(CPU版)
深層学習モデルの計算には、非常に多くの行列計算が必要です。この計算を高速に行うために、CPUだけでなくGPU(Graphics Processing Unit)が使われることがあります。
- CPU版: GPUが搭載されていないPCや、簡単なモデルの学習・推論を行う場合に適しています。特別なハードウェアやドライバーの準備が不要なため、インストールが簡単です。
- GPU版: 大規模なモデルを高速に学習させたい場合に必須です。NVIDIA製のGPUが必要で、さらにCUDA ToolkitやcuDNNといったNVIDIAのソフトウェアを別途インストール・設定する必要があります。こちらはインストール手順がやや複雑です。
まずは、環境構築が容易なCPU版のTensorFlowをインストールします。GPU版のインストールは、別途詳細な情報を参照して行ってください(この記事ではCPU版のインストールに焦点を当てます)。
インストールコマンド:
仮想環境がアクティベートされていることを確認した上で、コマンドラインで以下のコマンドを実行します。
bash
pip install tensorflow
このコマンドは、Pythonのパッケージ管理システムであるpip
を使って、PyPI(Python Package Index)という公開リポジトリからtensorflow
ライブラリをダウンロードし、現在アクティベートされている仮想環境にインストールします。
TensorFlowは依存するライブラリが多いため、インストールには数分かかることがあります。インターネット接続速度にも依存します。進行状況を示すプログレスバーが表示されますので、完了するまで待ちましょう。
インストール中にエラーが発生した場合、以下の点を確認してください。
- インターネット接続は正常か?
- 仮想環境はアクティベートされているか? プロンプトの先頭に仮想環境名が表示されていますか?
pip
コマンドは正常に動作するか?pip --version
を実行してバージョン情報が表示されますか?- Pythonのバージョンはサポート対象か?
python --version
で確認してください。
成功すると、「Successfully installed tensorflow-…」といったメッセージと、依存してインストールされた多数のライブラリ名が表示されます。
GPU版について(補足):
GPU版のTensorFlowをインストールしたい場合は、通常以下のコマンドを実行します。
bash
pip install tensorflow[and-cuda]
ただし、これだけでGPUが使えるようになるわけではありません。
前提条件として:
* 対応するNVIDIA製GPUを搭載していること
* 対応するバージョンのNVIDIAドライバーがインストールされていること
* 対応するバージョンのCUDA Toolkitがインストールされていること
* 対応するバージョンのcuDNNがインストールされていること
といった多くの準備が必要です。これらの準備が整っていない状態でGPU版をインストールしても、GPUは利用できません。GPU環境の構築は、深層学習の学習が進み、より高速な計算が必要になった段階で検討するのがおすすめです。TensorFlowの公式サイトに詳細なGPUサポートに関するドキュメントがありますので、そちらを参照してください。
3. その他の便利ライブラリのインストール
Kerasで深層学習モデルを構築・学習させる際に、データの扱いや結果の可視化に役立つライブラリも一緒にインストールしておくと便利です。特に以下の2つはよく使われます。
- NumPy: 数値計算を効率的に行うためのライブラリです。配列(ndarray)を扱い、Kerasへの入力データ形式としてよく使われます。
- Matplotlib: グラフ描画ライブラリです。学習の進捗(損失や精度)をグラフで確認する際などに役立ちます。
これらのライブラリも、仮想環境がアクティベートされた状態でpip
を使ってインストールします。複数のライブラリはまとめてインストールできます。
bash
pip install numpy matplotlib
これで、Kerasでの開発に必要な基本的なライブラリが一通りインストールされました。
インストールの確認
TensorFlow(とそれに含まれるKeras)が正しくインストールされたかを確認しましょう。Pythonインタラクティブシェルを使うのが手軽です。
-
仮想環境がアクティベートされているコマンドラインで、
python
と入力してEnterキーを押します。
bash
# Windows
python
# macOS/Linux
python3
これにより、Pythonのインタラクティブシェルが起動します(>>>
というプロンプトが表示されます)。 -
インタラクティブシェル内で、以下のコードを入力してEnterキーを押します。
“`python
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as pltprint(tf.version)
print(keras.version)
print(np.version)
“`エラーが表示されずに、各ライブラリのバージョン情報が出力されれば成功です。
“`
出力例 (バージョン番号はインストールしたものによって異なります)
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as pltprint(tf.version)
2.10.0 # TensorFlowのバージョン
print(keras.version)
2.10.0 # tf.kerasのバージョンはTensorFlowと同じです
print(np.version)
1.23.4 # NumPyのバージョン“`
もし
ModuleNotFoundError: No module named 'tensorflow'
のようなエラーが出た場合、TensorFlowが正しくインストールされていないか、あるいは仮想環境がアクティベートされていない状態でPythonを実行している可能性があります。仮想環境のアクティベート状態を確認し、必要であれば再度pip install tensorflow
を実行してみてください。 -
さらに、TensorFlowが正しく計算できるか、簡単なテストをしてみましょう。インタラクティブシェルで続けて以下のコードを入力します。
“`python
簡単な計算
hello = tf.constant(‘Hello, TensorFlow!’)
tf.print(hello)簡単なモデル定義(エラーが出なければOK)
model = keras.Sequential([keras.layers.Dense(10, input_shape=(784,), activation=’relu’)])
print(model.summary())
“`Hello, TensorFlow!
という出力や、モデルのサマリー情報が表示されれば、TensorFlowとKerasは基本的な動作ができる状態です。インタラクティブシェルを終了するには、
exit()
と入力するか、Ctrl+Z (Windows) または Ctrl+D (macOS/Linux) を押します。
これで、あなたの環境にKeras(正確にはtf.keras
)が正常にインストールされ、深層学習の学習を開始できる状態になりました!
簡単なKerasプログラムの実行
インストールが完了したところで、実際にKerasを使った簡単なプログラムを実行してみましょう。ここでは、深層学習の「Hello, World」とも言える、手書き数字認識のデータセット「MNIST」を使った簡単な分類モデルの例を紹介します。
このプログラムは、0から9までの手書き数字の画像をニューラルネットワークに入力し、それがどの数字であるかを予測するモデルを構築・学習させます。
以下のコードを、先ほど作成したkeras_project
ディレクトリ内に、例えばmnist_basic.py
という名前で保存してください。Pythonコードを編集するには、メモ帳(Windows)やTextEdit(macOS)でも可能ですが、Visual Studio CodeやPyCharmといった高機能なエディタを使うと、コードの入力補完やエラー表示などが使えて便利です。
“`python
mnist_basic.py
必要なライブラリをインポート
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt
1. データセットの準備
MNISTデータセットをロードします。
ロードすると、訓練用とテスト用のデータに分けられます。
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
画像データを前処理します。
画像は0から255までのピクセル値ですが、
ニューラルネットワークの入力としては0から1の範囲に正規化するのが一般的です。
また、KerasのDense層(全結合層)に入力するために、
28×28ピクセルの画像を1次元の配列(784要素)に変換します。
x_train = x_train.reshape(60000, 784).astype(‘float32’) / 255
x_test = x_test.reshape(10000, 784).astype(‘float32’) / 255
ラベルデータ(正解の数字)を前処理します。
0から9までの整数値ですが、分類問題では
「one-hot encoding」という形式に変換するのが一般的です。
例えば、数字の3は [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] という10次元のベクトルになります。
num_classes=10 は、出力クラスが10個(0から9)であることを示します。
y_train = keras.utils.to_categorical(y_train, num_classes=10)
y_test = keras.utils.to_categorical(y_test, num_classes=10)
print(f”訓練データの形状: {x_train.shape}”)
print(f”テストデータの形状: {x_test.shape}”)
print(f”訓練ラベルの形状: {y_train.shape}”)
print(f”テストラベルの形状: {y_test.shape}”)
2. モデルの構築
KerasのSequential APIを使って、シンプルなモデルを構築します。
Sequentialモデルは、層を順番に積み重ねていくモデルです。
model = keras.Sequential([
# 入力層 + 隠れ層1: 784次元の入力から、512個のニューロンを持つ層へ。活性化関数はReLU。
keras.layers.Dense(512, activation=’relu’, input_shape=(784,)),
# ドロップアウト層: 過学習を防ぐために、ランダムにニューロンを無効化する層。
keras.layers.Dropout(0.2),
# 隠れ層2: 512個のニューロンから、512個のニューロンを持つ層へ。活性化関数はReLU。
keras.layers.Dense(512, activation=’relu’),
# ドロップアウト層
keras.layers.Dropout(0.2),
# 出力層: 512個のニューロンから、10個のニューロンを持つ層へ。
# 各ニューロンは、入力画像がそれぞれのクラス(0〜9)である確率を出力します。
# 活性化関数はsoftmax。これにより、出力の合計が1になり、確率分布として解釈できます。
keras.layers.Dense(10, activation=’softmax’)
])
モデルの構造を表示します。
model.summary()
3. モデルのコンパイル
構築したモデルを、学習できるように設定します。
オプティマイザ(Optimizer): 学習の進め方(重みの更新方法)を決定します。adamはよく使われるオプティマイザの一つです。
損失関数(Loss Function): モデルの予測と正解との「ずれ」を計算する関数です。
多クラス分類ではcategorical_crossentropyがよく使われます。
評価指標(Metrics): 学習中にモデルの性能を評価するための指標です。ここでは正解率(accuracy)を使います。
model.compile(loss=’categorical_crossentropy’,
optimizer=’adam’,
metrics=[‘accuracy’])
4. モデルの学習 (Fit)
訓練データを使ってモデルを学習させます。
x_train: 訓練用の画像データ
y_train: 訓練用のラベル(正解)データ
epochs: 訓練データ全体を何回モデルに通して学習させるか(エポック数)。今回は10回繰り返します。
batch_size: 一度にモデルに入力して学習させるデータの数。
verbose: 学習中の進捗表示レベル。1はプログレスバーを表示。
validation_data: 学習中にモデルの性能を評価するためのデータセット。ここではテストデータを使います。
print(“\n— モデル学習を開始します —“)
history = model.fit(x_train, y_train,
epochs=10,
batch_size=128,
verbose=1,
validation_data=(x_test, y_test))
print(“— モデル学習が完了しました —“)
5. モデルの評価 (Evaluate)
テストデータを使って、学習済みモデルの性能を評価します。
print(“\n— モデル評価を開始します —“)
score = model.evaluate(x_test, y_test, verbose=0)
print(‘テスト損失:’, score[0])
print(‘テスト正解率:’, score[1])
print(“— モデル評価が完了しました —“)
6. 学習過程の可視化(オプション)
Matplotlibを使って、学習中の損失と正解率の変化をグラフ表示します。
これにより、モデルがうまく学習できているか、過学習していないかなどを視覚的に確認できます。
print(“\n— 学習過程を可視化します —“)
plt.figure(figsize=(12, 4))
損失のグラフ
plt.subplot(1, 2, 1)
plt.plot(history.history[‘loss’], label=’Train Loss’)
plt.plot(history.history[‘val_loss’], label=’Validation Loss’)
plt.title(‘Loss over epochs’)
plt.xlabel(‘Epochs’)
plt.ylabel(‘Loss’)
plt.legend()
plt.grid(True)
正解率のグラフ
plt.subplot(1, 2, 2)
plt.plot(history.history[‘accuracy’], label=’Train Accuracy’)
plt.plot(history.history[‘val_accuracy’], label=’Validation Accuracy’)
plt.title(‘Accuracy over epochs’)
plt.xlabel(‘Epochs’)
plt.ylabel(‘Accuracy’)
plt.legend()
plt.grid(True)
plt.tight_layout() # グラフが重ならないように調整
plt.show() # グラフを表示
print(“— 学習過程の可視化が完了しました —“)
プログラムの終了
print(“\nプログラムを終了します。”)
“`
コードの解説:
-
データセットの準備:
keras.datasets.mnist.load_data()
でMNISTデータセットを簡単にダウンロード・ロードできます。これはKerasに標準で含まれています。- 読み込んだ画像データ (
x_train
,x_test
) は28×28ピクセルの形式です。reshape
で784要素の1次元配列に変換し、astype('float32') / 255
で0-1の範囲に正規化しています。 - ラベルデータ (
y_train
,y_test
) は、例えば数字の3なら3
という整数値です。keras.utils.to_categorical()
を使って、[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
のようなone-hotベクトルに変換しています。
-
モデルの構築:
keras.Sequential([...])
で、層を順に積み重ねるモデルを定義します。keras.layers.Dense(...)
は全結合層と呼ばれる最も基本的な層です。前の層の全てのニューロンと結合します。units
: この層のニューロン数。activation
: 活性化関数。relu
は非線形性を導入し、複雑なパターン学習を可能にします。softmax
は多クラス分類の出力層で使い、各クラスに属する確率を出力します。input_shape
: モデルの最初の層でのみ、入力データの形状を指定します(今回は784)。
keras.layers.Dropout(0.2)
は、学習時にランダムに20%のニューロンを無効化することで、過学習(訓練データに過剰に適合し、未知のデータへの汎化性能が落ちること)を防ぐための層です。
-
モデルのコンパイル:
model.compile(...)
で、学習に必要な設定を行います。loss='categorical_crossentropy'
: 多クラス分類問題でよく使われる損失関数です。optimizer='adam'
: パラメータ(重み)の更新方法を決定する最適化アルゴリズムです。adamは様々な問題で良い性能を発揮することが多いです。metrics=['accuracy']
: 学習の進捗を評価する指標として正解率を指定しています。
-
モデルの学習:
model.fit(...)
で、実際に訓練データを使ってモデルを学習させます。epochs=10
: 訓練データ全体を10回繰り返して学習します。batch_size=128
: 128個の訓練データをまとめて処理し、まとめて重みを更新するという単位で行います。validation_data=(x_test, y_test)
: エポックごとにテストデータでの性能も評価し、学習の進捗を確認できます。
-
モデルの評価:
model.evaluate(x_test, y_test, verbose=0)
で、学習後のモデルがテストデータに対してどのくらいの性能を発揮するかを最終的に評価します。損失と正解率が出力されます。
-
学習過程の可視化:
history = model.fit(...)
は学習過程の履歴(損失や精度)を返します。- Matplotlib (
plt
) を使って、訓練データとテストデータそれぞれの損失と正解率がエポックごとにどう変化したかをグラフで表示します。これにより、学習が順調に進んでいるか、過学習の兆候がないかなどを確認できます。
プログラムの実行:
- 仮想環境がアクティベートされていることを確認します。
- コマンドラインで、
mnist_basic.py
を保存したディレクトリ(keras_project
)に移動します。 -
以下のコマンドを実行します。
“`bash
Windows
python mnist_basic.py
macOS/Linux
python3 mnist_basic.py
“`
プログラムが実行され、MNISTデータセットのダウンロード、モデルの構築、学習、評価が進みます。学習中は、エポックごとに損失や正解率が表示されます。
学習が完了すると、テストデータでの最終的な正解率が表示され、その後、学習過程の損失と正解率のグラフが表示されます。ウィンドウが表示されたら確認し、ウィンドウを閉じるとプログラムが終了します。
これで、あなたはKerasを使って深層学習モデルを構築・学習・評価する一連の流れを体験しました。このシンプルな例を通して、Kerasの基本的な使い方を掴めたことでしょう。
トラブルシューティング
インストールやプログラム実行中にエラーが発生するのは珍しいことではありません。ここでは、よくあるエラーとその対処法をいくつか紹介します。
1. ModuleNotFoundError: No module named '...'
- 原因: 指定された名前のモジュール(ライブラリ)が見つかりません。
- 対処法:
- ライブラリがインストールされているか確認: KerasやTensorFlow、NumPy、Matplotlibをインストールしましたか?
pip list
コマンドを実行して、インストール済みライブラリのリストに目的のライブラリが含まれているか確認してください。 - 仮想環境がアクティベートされているか確認: 仮想環境を作成した場合、その環境をアクティベートしてからライブラリをインストールし、プログラムを実行する必要があります。プロンプトの先頭に仮想環境名が表示されているか確認してください。
- Pythonのバージョン: Pythonのバージョンが古すぎたり、プログラム実行時に意図しない古いPythonインタプリタが使われていないか確認してください。macOSでは
python3
コマンドを使う必要がある場合があります。
- ライブラリがインストールされているか確認: KerasやTensorFlow、NumPy、Matplotlibをインストールしましたか?
2. pip
コマンドやpython
コマンドが見つからない
- 原因: 環境変数PATHにPythonやpipへのパスが正しく設定されていません。
- 対処法:
- Windowsの場合、Pythonインストーラーの「Add Python to PATH」にチェックを入れ忘れた可能性が高いです。Pythonをアンインストールし、必ずチェックを入れて再インストールしてください。
- 手動で環境変数PATHを設定することも可能ですが、初心者には再インストールがおすすめです。
- macOS/Linuxの場合、インストールしたPythonがPATHに含まれていないか、またはターミナルを再起動していない可能性があります。ターミナルを一度閉じて開き直してみてください。それでもダメな場合は、シェル設定ファイル(
.bashrc
,.zshrc
など)にPythonのインストール先ディレクトリをPATHに追加する設定が必要かもしれません。
3. TensorFlowのGPU関連エラー
- 原因: GPU版TensorFlowをインストールしたが、CUDA ToolkitやcuDNNが正しくインストール・設定されていない、またはバージョンがTensorFlowと互換性がない。対応していないGPUを使っている。
- 対処法:
- まずはCPU版で試す: GPU環境構築は複雑なため、まずは
pip install tensorflow
(CPU版)で正しく動作するか確認してください。 - GPU版が必要な場合: TensorFlowの公式ドキュメントを参照し、使用しているTensorFlowのバージョンに対応したCUDA ToolkitとcuDNNのバージョンを確認し、正確にインストール・設定してください。NVIDIAドライバーのバージョンも重要です。環境変数やPATHの設定も必要になります。これはこの記事の範囲を超えるため、詳細は公式情報を参照してください。GPU環境構築は、ある程度深層学習に慣れてからでも遅くありません。
- まずはCPU版で試す: GPU環境構築は複雑なため、まずは
4. その他のエラー
- エラーメッセージを読む: エラーメッセージには、何が問題なのかヒントが書かれています。特にメッセージの最初の行や最後の行に注目し、ファイル名、行番号、エラーの種類などを確認してください。
- エラーメッセージで検索: 表示されたエラーメッセージをそのままGoogleなどで検索すると、同じ問題に遭遇した他の人のQ&Aや解決策が見つかることが多いです。Stack Overflowなどのコミュニティサイトは非常に役立ちます。
- 公式ドキュメントを参照: KerasやTensorFlowの公式ドキュメントは、最も正確で信頼できる情報源です。
- 環境を再構築: どうしても解決しない場合、仮想環境を一度削除し、最初から環境を構築し直すことで問題が解消することがあります。
“`bash
仮想環境をディアクティベートしてから
deactivate
仮想環境ディレクトリを削除 (慎重に!)
Windows
rmdir /s /q myenv
macOS/Linux
rm -rf myenv
``
python -m venv myenv`からやり直してください。
その後、再度
次のステップ
Kerasのインストールが成功し、簡単なプログラムを実行できたあなたは、深層学習の世界への素晴らしい第一歩を踏み出しました。ここから、さらに学びを深めていくためのステップを紹介します。
1. Kerasの基本的な使い方を学ぶ
-
公式ドキュメントとチュートリアル: KerasとTensorFlowの公式サイトには、豊富なドキュメントと分かりやすいチュートリアルが用意されています。Sequentialモデルだけでなく、より複雑なモデルを構築できるFunctional APIやSubclassing API、様々な層(Convolutional layers, Recurrent layersなど)、コールバック関数、モデルの保存・復元など、Kerasの機能を体系的に学ぶのに最適です。
- Keras公式サイト: https://keras.io/ (日本語ドキュメントもあります)
- TensorFlow公式サイト(Keras関連): https://www.tensorflow.org/guide/keras
-
オンラインコースや書籍: Udemy, Coursera, Udacityといったオンライン学習プラットフォームや、関連書籍も多くの学習リソースを提供しています。動画や実践的な演習を通して、より深く理解を深めることができます。
2. 様々なデータセットとモデルに挑戦する
MNISTは入門に最適なデータセットですが、深層学習は画像、音声、テキスト、時系列データなど、様々な種類のデータを扱えます。
- 画像データ: CIFAR-10/100, ImageNetなど。畳み込みニューラルネットワーク(CNN)を使った画像認識に挑戦してみましょう。
- テキストデータ: IMDBレビュー(感情分析)、ニュース記事など。リカレントニューラルネットワーク(RNN)やTransformerを使った自然言語処理に挑戦してみましょう。
- 時系列データ: 株価、センサーデータなど。RNNやLSTMを使った時系列予測に挑戦してみましょう。
これらのタスクに挑戦することで、Kerasの様々な層や機能を学ぶことができます。
3. 実際のデータを使ったプロジェクトに挑戦する
Kerasの基本的な使い方や様々なモデルを学んだら、ぜひ自分で興味のある実際のデータセットを探して、深層学習モデルを構築するプロジェクトに挑戦してみてください。kaggleなどのデータ分析コンペティションサイトも、データセットを探したり、他の人のコードから学んだりするのに良い場所です。
4. GPU環境の構築を検討する
もし、より大きなデータセットを扱ったり、複雑なモデルを学習させたりする必要が出てきたら、GPU環境の構築を検討しましょう。CPUと比較して、学習時間を劇的に短縮できる場合があります。NVIDIA製のGPUと、TensorFlow公式ドキュメントのGPUサポートに関する詳細な手順を参照してインストールを進めてください。クラウドサービス(Google Colab, Kaggle Kernels, AWS, GCP, Azureなど)を利用すれば、手元のPCにGPUがなくてもGPU環境を借りて学習を実行することも可能です。
まとめ
この記事では、Kerasを使った深層学習を始めるための第一歩として、Python環境の準備からKerasとTensorFlowのインストール、そして簡単なプログラムの実行までを、初心者向けに詳細に解説しました。
- Pythonのインストールと環境パスの設定
- 仮想環境の重要性と
venv
を使った作成・利用方法 - KerasのバックエンドとしてのTensorFlowのインストール(CPU版)
- インストールの確認方法
- MNISTデータセットを使った簡単なKerasプログラムの作成と実行
これらのステップをクリアしたあなたは、深層学習の実践的な学習を開始するための強力な基盤を手にしました。
深層学習の世界は広大で、学ぶべきことはたくさんありますが、Kerasという使いやすいツールがあれば、その旅はきっとエキサイティングなものになるでしょう。最初は簡単な例から始め、少しずつ複雑なモデルやタスクに挑戦してみてください。公式ドキュメントや豊富なオンラインリソースを活用し、エラーに恐れず探求心を忘れずに進んでいけば、必ず深層学習の力を使いこなせるようになるはずです。
あなたの深層学習への挑戦を心から応援しています!