DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界
生活随笔
收集整理的這篇文章主要介紹了
DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DL之DNN:基于神經網絡(從1層~50層)DNN算法實現對非線性數據集點進行繪制決策邊界
?
?
目錄
輸出結果
設計代碼
?
?
輸出結果
?
?
設計代碼
?
首先查看數據集
import numpy as np from sklearn.datasets import make_moons #make_moons數據集可以生成一些非線性數據點 import matplotlib.pyplot as plt# 手動生成一個隨機的平面點分布,并畫出來 np.random.seed(0) X, y = make_moons(200, noise=0.20) plt.scatter(X[:,0], X[:,1], s=40, c=y, cmap=plt.cm.Spectral) plt.title('make_moons generating nonlinear data points') plt.show() #設計一個簡單的人工神經網絡:輸入兩個值,輸出0或1,即第一類還是第二類,但DNN其實獲得是概率,如屬于0的概率是42% 。只包含一層隱藏層,即只對樣本點做交集而不做并集 #激活函數選擇tanh函數,采用softmax分類器(LR的多分類),并且用互熵損失作為損失函數。BP計算梯度采用SGD算法num_examples = len(X) # 樣本數 nn_input_dim = 2 # 輸入的維度 nn_output_dim = 2 # 輸出的類別個數# 梯度下降參數 epsilon = 0.01 # 學習率 reg_lambda = 0.01 # 正則化參數# 定義損失函數,以便使用梯度下降算法 def calculate_loss(model):W1, b1, W2, b2 = model['W1'], model['b1'], model['W2'], model['b2'] #因為隱藏層有500個神經元,故b1是500維# 向前推進,前向運算z1 = X.dot(W1) + b1a1 = np.tanh(z1)z2 = a1.dot(W2) + b2exp_scores = np.exp(z2)probs = exp_scores / np.sum(exp_scores, axis=1, keepdims=True) #計算的屬于哪一類的是概率# 計算損失corect_logprobs = -np.log(probs[range(num_examples), y])data_loss = np.sum(corect_logprobs)# 也得加一下L2正則化項data_loss += reg_lambda/2 * (np.sum(np.square(W1)) + np.sum(np.square(W2)))return 1./num_examples * data_loss# 建立3個隱層的神經網絡 model = build_model(3, print_loss=True)# 然后再把決策/判定邊界畫出來 plot_decision_boundary(lambda x: predict(model, x)) plt.title("Decision Boundary for hidden layer size 3") #即是由500個神經元(段直線),去交集得出的曲線 plt.show()?
# 然后觀察不同的隱藏層個數(1, 2, 3, 4, 5, 20, 50)對結果的影響 plt.figure(figsize=(16, 32)) hidden_layer_dimensions = [1, 2, 3, 4, 5, 20, 50] for i, nn_hdim in enumerate(hidden_layer_dimensions):plt.subplot(5, 2, i+1)plt.title('Hidden Layer size %d' % nn_hdim)model = build_model(nn_hdim)plot_decision_boundary(lambda x: predict(model, x)) plt.show()?
?
相關文章推薦
DL之LoR&DNN:Neural_network_example繪制非線性數據集點的決策邊界
總結
以上是生活随笔為你收集整理的DL之DNN:基于神经网络(从1层~50层)DNN算法实现对非线性数据集点进行绘制决策边界的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DL之DNN之BP:神经网络算法简介之B
- 下一篇: DL之AF:机器学习/深度学习中常用的激