在分类问题中,神经网络中是否存在权重的随机初始化范围?
Is there any range of random initialisation of weights in neural network in classification probelm?
我正在实现一个需要 225 个输入神经元的神经网络,它必须对 1 到 7 之间的随机数进行分类。为此,我需要 225 个随机权重作为第一个输出。建议我做什么?我必须将其提供给前馈神经网络
注意 - 我假设您正在使用带有反向传播的基本前馈神经网络。如果不是请注明。
您基本上需要两组权重,一组用于隐藏层的权重,一组用于输出层的权重。
这是一个基本函数,可以解释我的意思:
# Initialize a network
def initialize_network(n_inputs, hidden_nodes, n_outputs):
n_inputs = len(training_data[0]) - 1
n_outputs = len(set([row[-1] for row in training_data]))
# Create a blank list to hold the network
network = []
# Create your hidden layer
hidden_layer = [{'weights': [random() for i in range(n_inputs + 1)]} for i in range(hidden_nodes)]
# Append the hidden layer to your network list
network.append(hidden_layer)
# Create the output layer
output_layer = [{'weights': [random() for i in range(hidden_nodes + 1)]} for i in range(n_outputs)]
# Append that
network.append(output_layer)
# Return the network
return network
有几件事要记住:
hidden_nodes
应该是可调参数或在您的项目说明中指定。每个人的隐藏节点数都不一样
- 您的训练数据大小会有所不同,但上面的函数与此无关
我正在实现一个需要 225 个输入神经元的神经网络,它必须对 1 到 7 之间的随机数进行分类。为此,我需要 225 个随机权重作为第一个输出。建议我做什么?我必须将其提供给前馈神经网络
注意 - 我假设您正在使用带有反向传播的基本前馈神经网络。如果不是请注明。
您基本上需要两组权重,一组用于隐藏层的权重,一组用于输出层的权重。
这是一个基本函数,可以解释我的意思:
# Initialize a network
def initialize_network(n_inputs, hidden_nodes, n_outputs):
n_inputs = len(training_data[0]) - 1
n_outputs = len(set([row[-1] for row in training_data]))
# Create a blank list to hold the network
network = []
# Create your hidden layer
hidden_layer = [{'weights': [random() for i in range(n_inputs + 1)]} for i in range(hidden_nodes)]
# Append the hidden layer to your network list
network.append(hidden_layer)
# Create the output layer
output_layer = [{'weights': [random() for i in range(hidden_nodes + 1)]} for i in range(n_outputs)]
# Append that
network.append(output_layer)
# Return the network
return network
有几件事要记住:
hidden_nodes
应该是可调参数或在您的项目说明中指定。每个人的隐藏节点数都不一样- 您的训练数据大小会有所不同,但上面的函数与此无关