對n-1層和n層而言n-1層的任意乙個節點,都和第n層所有節點有連線。即第n層的每個節點在進行計算的時候,啟用函式的輸入是n-1層所有節點的加權。
全連線是一種不錯的模式,但是網路很大的時候,訓練速度回很慢。部分連線就是認為的切斷某兩個節點直接的連線,這樣訓練時計算量大大減小
最簡單的全連線神經網路demo,python:
#coding:utf-8
import numpy as np##
#4*3*2
speed = 1
def sigmoid(z):
"""the sigmoid function."
""return
1.0 / (1.0 + np.exp(-z))
def sigmoid_prime(z):
"""derivative of the sigmoid function."
""return sigmoid(z) * (1 - sigmoid(z))
w1 =
w2 =
w1 = np.array([
[w1[0][0],w1[0][1],w1[0][2]],
[w1[1][0],w1[1][1],w1[1][2]],
[w1[2][0],w1[2][1],w1[2][2]],
[w1[3][0],w1[3][1],w1[3][2]]
])w2 = np.array([
[w2[0][0],w2[0][1]],
[w2[1][0],w2[1][1]],
[w2[2][0],w2[2][1]],
])x =
y =
for i in range(1,10000):
zs =
activations =
print x[i%4]
z1 = np.dot(w1.transpose(),x[i%4])
a1 = sigmoid(z1)
z2 = np.dot(w2.transpose(),a1)
a2 = sigmoid(z2)
print a2
error =
w1[0][0] = sigmoid_prime(zs[0][0])*x[i%4][0]*error[1][0]*speed + w1[0][0]
w1[0][1] = sigmoid_prime(zs[0][1])*x[i%4][0]*error[1][1]*speed + w1[0][1]
w1[0][2] = sigmoid_prime(zs[0][2])*x[i%4][0]*error[1][2]*speed + w1[0][2]
w1[1][0] = sigmoid_prime(zs[0][0])*x[i%4][1]*error[1][0]*speed + w1[1][0]
w1[1][1] = sigmoid_prime(zs[0][1])*x[i%4][1]*error[1][1]*speed + w1[1][1]
w1[1][2] = sigmoid_prime(zs[0][2])*x[i%4][1]*error[1][2]*speed + w1[1][2]
w1[2][0] = sigmoid_prime(zs[0][0])*x[i%4][2]*error[1][0]*speed + w1[2][0]
w1[2][1] = sigmoid_prime(zs[0][1])*x[i%4][2]*error[1][1]*speed + w1[2][1]
w1[2][2] = sigmoid_prime(zs[0][2])*x[i%4][2]*error[1][2]*speed + w1[2][2]
w1[3][0] = sigmoid_prime(zs[0][0])*x[i%4][3]*error[1][0]*speed + w1[3][0]
w1[3][1] = sigmoid_prime(zs[0][1])*x[i%4][3]*error[1][1]*speed + w1[3][1]
w1[3][2] = sigmoid_prime(zs[0][2])*x[i%4][3]*error[1][2]*speed + w1[3][2]
w2[0][0] = sigmoid_prime(zs[1][0])*activations[0][0]*error[0][0]*speed + w2[0][0]
w2[0][1] = sigmoid_prime(zs[1][1])*activations[0][0]*error[0][1]*speed + w2[0][1]
w2[1][0] = sigmoid_prime(zs[1][0])*activations[0][1]*error[0][0]*speed + w1[1][0]
w2[1][1] = sigmoid_prime(zs[1][1])*activations[0][1]*error[0][1]*speed + w1[1][1]
w2[2][0] = sigmoid_prime(zs[1][0])*activations[0][2]*error[0][0]*speed + w1[2][0]
w2[2][1] = sigmoid_prime(zs[1][1])*activations[0][2]*error[0][1]*speed + w1[2][1]
神經網路 全連線神經網路
全連線神經網路 也稱作多層感知機 mlp 1.1 神經元 神經元接收輸入向量x xx神經元節點有權重向量w和偏置項b 輸出值為f w tx b f w tx b f wtx b 在經過類似線性回歸之後 使用啟用函式對得到值進行操作 1.2 網路結構 個人對於每一層的理解就是 使用 這層維度,上層維度...
mlp神經網路 MLP(全連線神經網路)的反向傳播
3 梯度消失與 mlp可以說是最簡單的一種ann結構了,輸入通過若干個隱藏層後,進入輸出層得到輸出。下圖展示了只有乙個單隱層的mlp。圖1 單隱層mlp 如果使用交叉熵損失函式 cross entropy error function 需要在輸出層的狀態值 如果使用mse損失函式 mean squa...
tensorflow2 構造全連線神經網路
使用隨機數,生成樣本資料,作為輸入,然後經過中間的隱藏層,對資料進行擬合。1個輸入單元,10個隱含單元,1個輸出單元。y coding utf 8 created on thu may 16 10 49 34 2019 author 666 import tensorflow as tf impor...