ホームページ >バックエンド開発 >Python チュートリアル >Keras: 詳細な例で基本を理解する

Keras: 詳細な例で基本を理解する

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-21 06:11:30942ブラウズ

Keras: Understanding the Basics with a Detailed Example

開発者の皆さん、

ディープ ラーニングを初めて使用する場合は、Keras という名前を聞いたことがあるでしょう。しかし、それは正確には何で、どのように機能するのでしょうか?この投稿では、すべてを基礎から説明し、Keras を使用してシンプルな深層学習モデルを構築する段階的な例を示します。 MNIST データセット などの重要な概念についても説明しますので、簡単に理解できるようになります。

1.ケラスとは何ですか?

Keras は、Python で書かれたオープンソースの高レベル ニューラル ネットワーク API です。これにより、開発者はユーザーフレンドリーなインターフェイスを使用してディープラーニングモデルを迅速かつ簡単に構築できます。 Keras は、TensorFlow などのより複雑な深層学習フレームワークの上に位置するため、基礎となる複雑さによって行き詰まることなく、モデルの構築に集中できます。

2. Keras を使用する理由

  • 使いやすさ: Keras は読みやすく理解しやすいように設計されているため、初心者にとって最適です。
  • モジュラー: 高度にモジュール化されており、ビルディングブロックのようにモデルを組み立てることができます。
  • マルチバックエンドのサポート: Keras は TensorFlow、Theano、または CNTK 上で実行できるため、柔軟性が高くなります。
  • クイック プロトタイピング: わずか数行のコードで深層学習モデルを構築、コンパイル、トレーニングできます。

3. MNISTとは何ですか?

MNIST データセット は、機械学習で最も有名なデータセットの 1 つです。これには、手書きの数字 (0 ~ 9) の 70,000 枚の画像 が含まれています。各画像はグレースケール画像で、サイズは 28x28 ピクセルです。目標は、これらの画像を 10 桁のカテゴリのいずれかに分類することです。

MNIST データセットのいくつかの数字の例を次に示します:

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

Keras を使用する場合、MNIST データセットがシンプルでよく理解されており、新しいモデルをテストするのに最適であるため、チュートリアルで使用されることがよくあります。


4. Keras を使用したシンプルなニューラル ネットワークの構築 (ステップバイステップ)

Keras を使用してこれらの手書きの数字を分類する簡単なニューラル ネットワークを構築しましょう。段階的に説明していきます。

ステップ 1: TensorFlow をインストールする (Keras には TensorFlow がバンドルされています)

まず、TensorFlow をインストールする必要があります。これは、Keras は最新バージョンの TensorFlow の一部であるためです。 pip 経由でインストールできます:

pip install tensorflow

ステップ 2: 必要なライブラリをインポートする

モデルの構築とトレーニングに必要な TensorFlow と Keras 固有のライブラリをインポートします。

import tensorflow as tf
from tensorflow.keras import layers, models

ここで、tensorflow.keras は TensorFlow 内の Keras API です。

ステップ 3: MNIST データセットをロードする

Keras は、MNIST などのデータセットへの簡単なアクセスを提供します。データセットをロードし、トレーニング セットとテスト セットに分割します。

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]

このステップでは、train_images と train_labels はトレーニング データを保持し、test_images と test_labels はテスト データを保持します。

train_images の各画像は 28x28 ピクセルのグレースケール画像であり、train_labels には各画像に対応する数字ラベル (0 ~ 9) が含まれます。

ステップ 4: データの前処理

次に、モデルのトレーニングをより効率的に行うために、画像のピクセル値を正規化する必要があります。画像内の各ピクセル値は 0 ~ 255 です。画像を 255 で割ることにより、これらの値を 0 ~ 1 の間にスケールします。

pip install tensorflow

ステップ 5: モデルを構築する

それでは、Keras を使用してニューラル ネットワークを構築しましょう。 Sequential モデルを作成します。これにより、レイヤーを別のレイヤーの上に積み重ねることができます。

import tensorflow as tf
from tensorflow.keras import layers, models
  • フラット化: フラット化レイヤーは、28x28 の 2D 画像を 784 個の値の 1D 配列に変換します。
  • Dense: Dense レイヤーは完全に接続されたレイヤーです。ここでは、隠れ層に 128 個のニューロンがあり、出力層に 10 個のニューロンがあります (10 桁のクラスがあるため)。 ReLU を隠れ層の活性化関数として使用し、softmax を出力層に使用します。

ステップ 6: モデルをコンパイルする

次に、モデルをコンパイルする必要があります。ここで、オプティマイザー損失関数、および評価指標を指​​定します。

# Load the MNIST dataset
mnist = tf.keras.datasets.mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()
  • Adam オプティマイザー: これは、深層学習モデルをトレーニングするための人気のあるオプティマイザーです。
  • スパースカテゴリカルクロスエントロピー: この損失関数は、私たちの問題のようなマルチクラス分類問題に使用されます。
  • 精度: モデルのパフォーマンスを評価するための指標として精度を使用します。

ステップ 7: モデルをトレーニングする

これで、モデルをトレーニングする準備が整いました。 5 エポック にわたってトレーニングします (つまり、モデルはトレーニング データセット全体を 5 回実行します)。

# Normalize pixel values to be between 0 and 1
train_images = train_images / 255.0
test_images = test_images / 255.0

ステップ 8: モデルを評価する

モデルがトレーニングされると、テスト データでそのパフォーマンスを評価できます。

# Build the model
model = models.Sequential([
    layers.Flatten(input_shape=(28, 28)),      # Flatten the 28x28 images into a 1D vector of 784 pixels
    layers.Dense(128, activation='relu'),      # Add a fully-connected (Dense) layer with 128 neurons
    layers.Dense(10, activation='softmax')     # Output layer with 10 neurons (one for each digit 0-9)
])

これにより、テスト データセットでのモデルの精度が得られます。


5. 舞台裏で何が起こっているのか?

簡単に言うと、

  1. データの前処理: トレーニングをより効率的にするためにデータを正規化しました。
  2. モデル定義: Sequential API を使用して、単純なフィードフォワード ニューラル ネットワークを構築しました。
  3. コンパイル: モデルの学習をガイドするために、適切な損失関数とオプティマイザーを選択しました。
  4. トレーニング: モデルは、データセットの複数のパスにわたって画像を数値にマッピングする方法を学習しました。
  5. 評価: 最後に、モデルが目に見えないデータに対してどの程度一般化されているかを確認しました。

6. ここからどこへ行く?

Keras はニューラル ネットワークの構築とトレーニングのプロセスを簡素化し、初心者にとって理想的な出発点となります。基本的なモデルに慣れたら、畳み込みニューラル ネットワーク (CNN)リカレント ニューラル ネットワーク (RNN) などのより複雑なアーキテクチャを試してみることができます。

Keras を使用してディープ ラーニングの世界に自由に飛び込んで、さまざまなモデルを試して、可能性の限界を押し広げてください!


Keras について今のところどう思いますか?

以上がKeras: 詳細な例で基本を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。