【深度學習的數學】2×3×1層帶sigmoid激活函數的神經網絡感知機對三角形平面的分類訓練預測(繪製出模型結果三維圖展示效果)(梯度下降法+最小二乘法+激活函數sigmoid+誤差反向傳播法)

訓練數據

數據示意

使三角形區域範圍內的Z值爲5,其餘區域對應Z值爲0
在這裏插入圖片描述

訓練數據生成及繪製三維圖像代碼

# -*- coding: utf-8 -*-
"""
@File    : 三角平面訓練數據.py
@Time    : 2020/5/26 17:42
@Author  : Dontla
@Email   : [email protected]
@Software: PyCharm
"""

from matplotlib import pyplot as plt  # 用來繪製圖形

from mpl_toolkits.mplot3d import Axes3D

import numpy as np  # 用來處理數據


# Dontla:定義sigmoid函數
def sigmoid(x):
    return 1.0 / (1 + np.exp(-x))


fig = plt.figure()

ax = fig.add_subplot(111, projection='3d')

# X = np.arange(-10, 10, 0.25)
X = np.arange(-10, 20, 1)

# Y = np.arange(-10, 10, 0.25)
Y = np.arange(-10, 15, 1)

X, Y = np.meshgrid(X, Y)

# Z = 0 * np.ones((25, 30))
# print(list(Z))

# Dontla:我一個一個🐴的
Z = np.array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 5., 5., 5., 5., 5., 5., 5.,
               5., 5., 5., 5., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 5., 5., 5., 5., 5.,
               5., 5., 5., 5., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 5., 5., 5.,
               5., 5., 5., 5., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 5.,
               5., 5., 5., 5., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 5., 5., 5., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 5., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],
              [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
               0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])

ax.plot_surface(X, Y, Z, cmap='rainbow')

plt.show()

訓練數據三維圖像

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

20200527
你務必走完當前步,才能去走下一步;思維可以跳躍,但行動不能

搭建神經網絡結構

網絡結構

輸入層神經元個數2個,隱藏層神經元個數3個,輸出層神經元個數1個(把圖中x2換成Y)

↓↓↓爲啥輸出層沒有偏置b啊???

在這裏插入圖片描述
在這裏插入圖片描述
抱歉,上面搞錯了,少了偏置,ԾㅂԾ,
在這裏插入圖片描述
(附註,引用自:【深度學習的數學】激活函數的作用是什麼?)
在這裏插入圖片描述

利用梯度下降法和誤差反向傳播法計算損失函數損失值

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

代碼

參考文章1:【深度學習的數學】繪製2×3×1層帶sigmoid激活函數的神經網絡感知機輸出函數的三維圖像(神經網絡參數使用正態分佈隨機數)

參考文章2:深度學習的數學】激活函數的作用是什麼?

參考文章3:【深度學習的數學】2-11 用Excel體驗梯度下降法(用python實現)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章