Python でのニューラル ネットワークの例
Python は、そのシンプルで柔軟な構文と強力なエコシステムとライブラリにより、科学技術コンピューティングや機械学習などの分野で常に広く使用され、愛されてきました。ニューラル ネットワークは機械学習の分野で重要な役割を果たしており、コンピューター ビジョン、自然言語処理、推奨システムなどの多くの分野で使用できます。この記事では、Python のニューラル ネットワークを紹介し、いくつかの例を示します。
ニューラル ネットワークとは
ニューラル ネットワークは、動物の神経系をシミュレートする特徴を持つ深層学習モデルです。ニューラル ネットワークは複数のニューロンで構成されます。各ニューロンは関数に相当します。その入力は他のニューロンからの出力であり、活性化関数によって処理されて出力が生成されます。ニューラル ネットワークは、バックプロパゲーション アルゴリズムを利用して重みとバイアスを継続的に調整し、モデルをデータによりよく適合させ、予測や分類を行うことができます。
TensorFlow
TensorFlow は、ニューラル ネットワークやその他の機械学習アルゴリズムを構築するために Google が立ち上げた人気の深層学習フレームワークです。 TensorFlow は、もともと Google 社内の研究者向けに開発されたもので、オープンソース化されてからすぐに最も人気のある深層学習フレームワークの 1 つになりました。
TensorFlow では、次の手順を使用してニューラル ネットワークを作成できます:
- データ セットの準備: データ セットは、トレーニング セットとトレーニング セットの 2 つの部分に分割する必要があります。お試しセット。トレーニング セットはモデルのトレーニングに使用され、テスト セットはモデルの精度をテストするために使用されます。
- ニューラル ネットワークの作成: Python を使用してニューラル ネットワークを作成および実装できます。ニューラル ネットワーク モデルは、TensorFlow API を使用して構築できます。
- モデルをトレーニングする: ニューラル ネットワーク モデルをトレーニングして、新しいデータの出力を予測します。これは、確率的勾配降下法アルゴリズムを使用し、バックプロパゲーションを実行し、モデルの重みとバイアスを継続的に更新することによって実行できます。
- モデルをテストする: テスト セットを使用してモデルをテストし、その精度を確認します。精度、再現率、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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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

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

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

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

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