gpt4 book ai didi

python - 如何使用 Keras 训练和调整人工多层感知器神经网络?

转载 作者:太空狗 更新时间:2023-10-30 01:57:56 26 4
gpt4 key购买 nike

我正在使用 Keras 构建我的第一个人工多层感知器神经网络。

这是我的输入数据:

enter image description here

这是我用来构建初始模型的代码,它基本上遵循 Keras 示例代码:

model = Sequential()
model.add(Dense(64, input_dim=14, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(64, init='uniform'))
model.add(Activation('tanh'))
model.add(Dropout(0.5))
model.add(Dense(2, init='uniform'))
model.add(Activation('softmax'))

sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='mean_squared_error', optimizer=sgd)
model.fit(X_train, y_train, nb_epoch=20, batch_size=16)

输出:

Epoch 1/20
1213/1213 [==============================] - 0s - loss: 0.1760
Epoch 2/20
1213/1213 [==============================] - 0s - loss: 0.1840
Epoch 3/20
1213/1213 [==============================] - 0s - loss: 0.1816
Epoch 4/20
1213/1213 [==============================] - 0s - loss: 0.1915
Epoch 5/20
1213/1213 [==============================] - 0s - loss: 0.1928
Epoch 6/20
1213/1213 [==============================] - 0s - loss: 0.1964
Epoch 7/20
1213/1213 [==============================] - 0s - loss: 0.1948
Epoch 8/20
1213/1213 [==============================] - 0s - loss: 0.1971
Epoch 9/20
1213/1213 [==============================] - 0s - loss: 0.1899
Epoch 10/20
1213/1213 [==============================] - 0s - loss: 0.1957
Epoch 11/20
1213/1213 [==============================] - 0s - loss: 0.1923
Epoch 12/20
1213/1213 [==============================] - 0s - loss: 0.1910
Epoch 13/20
1213/1213 [==============================] - 0s - loss: 0.2104
Epoch 14/20
1213/1213 [==============================] - 0s - loss: 0.1976
Epoch 15/20
1213/1213 [==============================] - 0s - loss: 0.1979
Epoch 16/20
1213/1213 [==============================] - 0s - loss: 0.2036
Epoch 17/20
1213/1213 [==============================] - 0s - loss: 0.2019
Epoch 18/20
1213/1213 [==============================] - 0s - loss: 0.1978
Epoch 19/20
1213/1213 [==============================] - 0s - loss: 0.1954
Epoch 20/20
1213/1213 [==============================] - 0s - loss: 0.1949

我如何训练和调整这个模型并让我的代码输出我最好的预测模型?我是神经网络的新手,完全不知道构建模型后的下一步是什么。我知道我想优化它,但我不确定要调整哪些功能,或者我是否应该手动执行或如何编写代码来执行此操作。

最佳答案

您可以做的一些事情是:

  • 将损失函数从 mean_squared_error 更改为 binary_crossentropymean_squared_error 用于回归,但您想对数据进行分类。
  • show_accuracy=True 添加到您的 fit() 函数,该函数会在每个时期输出您的模型的准确性。这些信息对您来说可能比损失值更有用。
  • validation_split=0.2 添加到您的 fit() 函数中。目前,您只在训练集上进行训练,什么都不做验证。这在机器学习中是行不通的,因为您不能确定您的模型没有简单地记住数据集的正确答案(没有真正理解为什么这些答案是正确的)。
  • 从奥巴马/罗姆尼改为民主党/共和党,并添加之前选举的数据。 ~1200 个示例对于神经网络来说是一个非常小的数据集。还要添加包含有值(value)信息的列,例如失业率或人口密度。请注意,相当多的值(如人口数量)可能类似于提供州名,例如您的网络可能会了解到 Texas 的意思是 Republican
  • 如果您还没有这样做,请将所有值归一化到 0 到 1 的范围内(通过从每个值中减去该列的最小值,然后除以该列的(最大值 - 最小值))。神经网络可以比非规范化数据更好地处理规范化数据。
  • 尝试使用 AdamAdagrad 而不是 SGD。有时他们表现得更好。 (参见 documentation about optimizers。)
  • 尝试使用 Activation('relu')LeakyReLUPReLUELU 而不是 Activation ('tanh')。 Tanh 很少是最佳选择。 (参见 advanced activation functions。)
  • 尝试增加/减少密集层的大小(例如从 64128)。也可以尝试添加/删除图层。
  • 尝试添加 BatchNormalization 层(在 Activation 层之前)。 (参见 documentation。)
  • 尝试改变丢失率(例如从 0.50.25)。

关于python - 如何使用 Keras 训练和调整人工多层感知器神经网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34673164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com