目次
ニューラル ネットワークとは
TensorFlow
ニューラル ネットワークの例 1: 手書き数字認識
ニューラル ネットワークの例 2: スパム フィルター
結論
ホームページ バックエンド開発 Python チュートリアル Python でのニューラル ネットワークの例

Python でのニューラル ネットワークの例

Jun 10, 2023 pm 01:21 PM
python ニューラルネットワーク

Python は、そのシンプルで柔軟な構文と強力なエコシステムとライブラリにより、科学技術コンピューティングや機械学習などの分野で常に広く使用され、愛されてきました。ニューラル ネットワークは機械学習の分野で重要な役割を果たしており、コンピューター ビジョン、自然言語処理、推奨システムなどの多くの分野で使用できます。この記事では、Python のニューラル ネットワークを紹介し、いくつかの例を示します。

ニューラル ネットワークとは

ニューラル ネットワークは、動物の神経系をシミュレートする特徴を持つ深層学習モデルです。ニューラル ネットワークは複数のニューロンで構成されます。各ニューロンは関数に相当します。その入力は他のニューロンからの出力であり、活性化関数によって処理されて出力が生成されます。ニューラル ネットワークは、バックプロパゲーション アルゴリズムを利用して重みとバイアスを継続的に調整し、モデルをデータによりよく適合させ、予測や分類を行うことができます。

TensorFlow

TensorFlow は、ニューラル ネットワークやその他の機械学習アルゴリズムを構築するために Google が立ち上げた人気の深層学習フレームワークです。 TensorFlow は、もともと Google 社内の研究者向けに開発されたもので、オープンソース化されてからすぐに最も人気のある深層学習フレームワークの 1 つになりました。

TensorFlow では、次の手順を使用してニューラル ネットワークを作成できます:

  1. データ セットの準備: データ セットは、トレーニング セットとトレーニング セットの 2 つの部分に分割する必要があります。お試しセット。トレーニング セットはモデルのトレーニングに使用され、テスト セットはモデルの精度をテストするために使用されます。
  2. ニューラル ネットワークの作成: Python を使用してニューラル ネットワークを作成および実装できます。ニューラル ネットワーク モデルは、TensorFlow API を使用して構築できます。
  3. モデルをトレーニングする: ニューラル ネットワーク モデルをトレーニングして、新しいデータの出力を予測します。これは、確率的勾配降下法アルゴリズムを使用し、バックプロパゲーションを実行し、モデルの重みとバイアスを継続的に更新することによって実行できます。
  4. モデルをテストする: テスト セットを使用してモデルをテストし、その精度を確認します。精度、再現率、F1 スコアなど、さまざまな指標を使用してモデルのパフォーマンスを評価できます。

次に、TensorFlow を使用して実装されたニューラル ネットワークの例を 2 つ紹介します。

ニューラル ネットワークの例 1: 手書き数字認識

手書き数字認識はコンピューター ビジョンの分野で重要な問題であり、ニューラル ネットワークはこの問題に関して良好な結果を達成しています。 TensorFlow では、60,000 個の 28x28 グレースケール画像と対応するラベルが含まれる MNIST データセットを使用してニューラル ネットワークをトレーニングできます。

まず、TensorFlow ライブラリと NumPy ライブラリをインストールする必要があります。以下は手書き数字認識の完全なコードです:

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data

mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

#创建模型
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)

#定义损失函数和优化器
y_actual = tf.placeholder(tf.float32, [None, 10])
loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y_actual, logits=y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(loss)

#初始化变量
init = tf.global_variables_initializer()

#训练模型
sess = tf.Session()
sess.run(init)
for i in range(1000):
    batch_xs, batch_ys = mnist.train.next_batch(100)
    sess.run(train_step, feed_dict={x: batch_xs, y_actual: batch_ys})

#评估模型
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_actual,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_actual: mnist.test.labels}))
ログイン後にコピー

この例では、まずデータセット MNIST を準備し、次に 784 の入力と 10 の出力を含む単純なニューラル ネットワーク モデルを作成しました。次に、損失関数とオプティマイザーを定義し、トレーニング データをトレーニング用のモデルに入力しました。最後に、テストデータに対してテスト評価を実行し、92.3%の精度が得られました。

ニューラル ネットワークの例 2: スパム フィルター

現在、ほぼ全員がメール システムを使用していますが、誰もがスパムの問題に直面しています。スパム フィルターは、電子メールがスパムかどうかをチェックするプログラムです。ニューラル ネットワークを使用してスパム フィルターを構築する方法を見てみましょう。

まず、スパムと非スパムとしてマークされた電子メールを含むスパム データ セットを準備する必要があります。スパム フィルタを構築する場合、メッセージには非スパムとスパムの 2 つのカテゴリがあることに注意してください。

以下はスパム フィルターの完全なコードです:

import numpy as np
import pandas as pd
import tensorflow as tf
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

#读取数据集
data = pd.read_csv('spam.csv')
data = data.drop(['Unnamed: 2', 'Unnamed: 3', 'Unnamed: 4'], axis=1)

#转换标签
data['v1'] = data['v1'].map({'ham': 0, 'spam': 1})

#划分数据集
X_train, X_test, y_train, y_test = train_test_split(data['v2'], data['v1'], test_size=0.33, random_state=42)

#创建神经网络模型
max_words = 1000
tokenize = tf.keras.preprocessing.text.Tokenizer(num_words=max_words, char_level=False)
tokenize.fit_on_texts(X_train)

x_train = tokenize.texts_to_matrix(X_train)
x_test = tokenize.texts_to_matrix(X_test)

model = tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(512, input_shape=(max_words,), activation='relu'))
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(256, activation='sigmoid'))
model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Dense(1, activation='sigmoid'))

model.compile(loss='binary_crossentropy',
              optimizer='adam',
              metrics=['accuracy'])

#训练模型
model.fit(x_train, y_train,
          batch_size=32,
          epochs=5,
          validation_data=(x_test, y_test))

#评估模型
y_predict = model.predict(x_test)
print("Accuracy:", accuracy_score(y_test, y_predict.round()))
ログイン後にコピー

この例では、sklearn の train_test_split() メソッドを使用してデータ セットを分割し、Keras ライブラリのテキスト前処理ツールを使用します。データセットを行列に変換します (ワンホット エンコーディング)。次に、Sequential を使用してニューロンを宣言し、そのパラメーターを設定します。最後に、トレーニング済みモデルを使用してテスト データを予測し、98.02% の精度が得られるように評価しました。

結論

Python のニューラル ネットワークは、画像認識、スパム フィルターなどのさまざまなアプリケーションで使用できる強力な技術です。 TensorFlow を使用すると、ニューラル ネットワーク モデルを簡単に作成、トレーニング、テストし、満足のいく結果を得ることができます。機械学習に対する人々の需要が高まるにつれて、ニューラル ネットワーク テクノロジーはより重要なツールとなり、将来のアプリケーション シナリオでより広く使用されるようになります。

以上がPython でのニューラル ネットワークの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

Pythonパラメーター注釈は文字列を使用できますか? Pythonパラメーター注釈は文字列を使用できますか? Apr 01, 2025 pm 08:39 PM

Pythonパラメーター注釈の代替使用Pythonプログラミングでは、パラメーターアノテーションは、開発者が機能をよりよく理解して使用するのに役立つ非常に便利な機能です...

Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Apr 01, 2025 pm 11:30 PM

Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Pythonスクリプトを書くときは、以前の出力をカーソル位置にクリアするのが一般的です...

なぜ私のコードはAPIによってデータを返しているのですか?この問題を解決する方法は? なぜ私のコードはAPIによってデータを返しているのですか?この問題を解決する方法は? Apr 01, 2025 pm 08:09 PM

なぜ私のコードはAPIによってデータを返しているのですか?プログラミングでは、APIが呼び出すときにヌル値を返すという問題に遭遇することがよくあります。

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

Python hourglassグラフ図面:可変未定義エラーを避ける方法は? Python hourglassグラフ図面:可変未定義エラーを避ける方法は? Apr 01, 2025 pm 06:27 PM

Python:Hourglassグラフィック図面と入力検証この記事では、Python NoviceがHourglass Graphic Drawingプログラムで遭遇する可変定義の問題を解決します。コード...

Windowsの下のpython .whlファイルをどこからダウンロードしますか? Windowsの下のpython .whlファイルをどこからダウンロードしますか? Apr 01, 2025 pm 08:18 PM

Pythonバイナリライブラリ(.whl)のダウンロードメソッドは、Windowsシステムに特定のライブラリをインストールする際に多くのPython開発者が遭遇する困難を調査します。一般的な解決策...

See all articles