在分类问题中,神经网络中是否存在权重的随机初始化范围?

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 应该是可调参数或在您的项目说明中指定。每个人的隐藏节点数都不一样
  • 您的训练数据大小会有所不同,但上面的函数与此无关