什麼是全連線神經網路

2021-07-26 19:53:27 字數 2603 閱讀 4469

對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...