在神经网络的体系结构中何处放置激活函数?

时间:2018-12-19 16:05:23

标签: python csv neural-network

对于感知器,激活函数的文档很明确-如果模型的预测标签与模型的真实标签不匹配-权重会更新。但是,没有关于如何在神经网络中使用激活的好的文档。 将激活函数放在代码中的什么地方?我当前的方法是允许每个节点都成为激活函数–因此它将权重乘以先前的节点,并将它们加在一起。

#Train Neural Network

#Input layer

#Upload csv file
#Input Variables
x0 = float(input())
x1 = float(input())
x2 = float(input())

#Weights
w0 = 0.5
w1 = 0.5
w2 = 0.5

#Nodes
n0 = (x0 * w0)
n1 = (x1 * w1)
n2 = (x2 * w2)

#Hidden layer
#Weights
w3 = 0.5
w4 = 0.5
w5 = 0.5
w6 = 0.5
w7 = 0.5
w8 = 0.5
#Nodes
n3 = ((n0 * w3)+(n1*w4))
n4 = ((n1 * w5)+(n2*w6))
n5 = ((n0 * w7)+(n2*w8))

#Output layer
#Weights
w9 = 0.5
w10 = 0.5
w11 = 0.5

#Nodes
n6 = ((n3*w9)+(n4*w10)+(n5*w11))
print(n6)

#Update
#if n6 < 0.5:
    #Update weights
#else:
    #next input

我了解对此有很多疑问和答案-但我的问题尚未得到回答。确实,我要特别询问-是否有与每个层或每个节点关联的激活功能。此外,该文档尚不清楚激活功能是设计为通过网络移动信息还是发出信号来指示权重更新-这两个功能都是必需的,但是从语法上讲清楚。

1 个答案:

答案 0 :(得分:1)

  1. 激活功能与网络中的每个节点相关。这些值通过突触或连接乘以权重。然后使用激活函数激活这些相乘的值。
  2. 在您的情况下,您需要激活n0,n1和n2值。您可以使用S型,tanh和ReLU。
  3. 激活功能旨在携带信号而不是重量值。例如ReLU:如果输入为正数,则信号=输入,但是,如果输入为负,则信号= 0。
  4. 需要激活功能。他们帮助网络实际学习。没有激活功能的网络即使具有多层也可以充当具有单层的网络。
  5. 它们为计算增加了非线性。因此,它们可以近似一个函数。