Python で 2 層ニューラル ネットワークとパーセプトロン モデルを実装する方法
この記事ではPythonを使って二層ニューラルネットワークとパーセプトロンモデルを実装する方法を共有します具体的な内容と例は以下の通りです
Python 3.4 numpyを使用しているため
ここでは最初にパーセプトロンを実装します。コントローラー モデルは、次の対応を実現するために使用されます
[[0,0,1], ——- 0 [0,1,1], ——- 1 [1,0,1], ——- 0 [1,1,1]] ——- 1
上記のデータからわかるように、入力は 3 チャンネル、出力は 1 チャンネルです。
ここでの活性化関数シグモイド関数f(x)=1/(1+exp(-x))を使用します
導関数の導出は次のとおりです:
L0=W*X; z=f(L0); error=y-z; delta =error * f'(L0) * X; W=W+delta;
Pythonコード
import numpy as np #sigmoid function def nonlin(x, deriv = False): if(deriv==True): return x*(1-x) return 1/(1+np.exp(-x)) # input dataset X=np.array([[0,0,1], [0,1,1], [1,0,1], [1,1,1]]) # output dataset y=np.array([[0,1,0,1]]).T #seed( ) 用于指定随机数生成时所用算法开始的整数值, #如果使用相同的seed( )值,则每次生成的随即数都相同, #如果不设置这个值,则系统根据时间来自己选择这个值, #此时每次生成的随机数因时间差异而不同。 np.random.seed(1) # init weight value with mean 0 syn0 = 2*np.random.random((3,1))-1 for iter in range(1000): # forward propagation L0=X L1=nonlin(np.dot(L0,syn0)) # error L1_error=y-L1 L1_delta = L1_error*nonlin(L1,True) # updata weight syn0+=np.dot(L0.T,L1_delta) print("Output After Training:") print(L1)
出力結果から、基本的に対応関係が成立していることが分かります。
次に、上記のタスクを達成するために 2 層ネットワークが使用されます。ここに隠れ層が追加されます。隠れ層には 4 つのニューロンが含まれています。
import numpy as np def nonlin(x, deriv = False): if(deriv == True): return x*(1-x) else: return 1/(1+np.exp(-x)) #input dataset X = np.array([[0,0,1], [0,1,1], [1,0,1], [1,1,1]]) #output dataset y = np.array([[0,1,1,0]]).T #the first-hidden layer weight value syn0 = 2*np.random.random((3,4)) - 1 #the hidden-output layer weight value syn1 = 2*np.random.random((4,1)) - 1 for j in range(60000): l0 = X #the first layer,and the input layer l1 = nonlin(np.dot(l0,syn0)) #the second layer,and the hidden layer l2 = nonlin(np.dot(l1,syn1)) #the third layer,and the output layer l2_error = y-l2 #the hidden-output layer error if(j%10000) == 0: print "Error:"+str(np.mean(l2_error)) l2_delta = l2_error*nonlin(l2,deriv = True) l1_error = l2_delta.dot(syn1.T) #the first-hidden layer error l1_delta = l1_error*nonlin(l1,deriv = True) syn1 += l1.T.dot(l2_delta) syn0 += l0.T.dot(l1_delta) print "outout after Training:" print l2
これらの事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
関連書籍:
PHP がスタック データ構造とブラケット マッチング アルゴリズムを実装する方法の詳細なコード例
PHP の最も単純な文字列マッチング アルゴリズム、PHP マッチング アルゴリズム_PHP チュートリアル
最も単純な文字列マッチング アルゴリズムのチュートリアルphp で
以上がPython で 2 層ニューラル ネットワークとパーセプトロン モデルを実装する方法の詳細内容です。詳細については、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プログラミングでは、パラメーターアノテーションは、開発者が機能をよりよく理解して使用するのに役立つ非常に便利な機能です...

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

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

GoまたはRustを使用してPythonスクリプトを呼び出して、真の並列実行を実現する方法は?最近、私はPythonを使用しています...

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

Pythonのサブプロセスモジュールを使用してWMICを実行します...
