我尝试使用以下代码构建神经网络模型-多任务模型
inp = Input((336,))
x = Dense(300, activation='relu')(inp)
x = Dense(256, activation='relu')(x)
x = Dense(128, activation='relu')(x)
x = Dropout(0.1)(x)
x = Dense(56, activation='relu')(x)
x = Dense(16, activation='relu')(x)
x = Dropout(0.1)(x)
out_reg = Dense(1, name='reg')(x)
out_class = Dense(1, activation='sigmoid', name='class')(x) # I suppose bivariate classification problem
model = Model(inp, [out_reg, out_class])
model.compile('adam', loss={'reg':'mse', 'class':'binary_crossentropy'},
loss_weights={'reg':0.5, 'class':0.5})
现在我想使用遗传算法在python中使用遗传算法来优化神经网络的权重,层数和神经元数量
我学到了很多有关它的教程,但没有找到有关如何实现它的材料
任何帮助都将不胜感激
答案 0 :(得分:1)
最初,我认为最好
-修正模型的架构,
-了解其中有多少个可训练的参数及其格式,
-创建随机的可训练参数种群,
-定义目标函数以进行优化,
-实现GA操作(复制,交叉,变异等),
-将这些权重和偏差的大小调整为正确的格式,
-然后使用这些权重和偏差运行ML模型,
-获取损失并更新人口,
-重复以上过程,直到达到新纪元为止/
希望有帮助。
答案 1 :(得分:0)
如果您是机器学习的新手,我不建议您使用遗传算法来优化您的体重。您已经使用“ Adam”编译了模型,“ Adam”是一个出色的基于梯度下降的优化器,它将为您完成所有工作,而应该使用它。
有关更多信息,请查看Tensorflow快速入门教程https://www.tensorflow.org/tutorials/quickstart/beginner
这是一个如何通过Google搜索实现遗传算法的示例... https://towardsdatascience.com/introduction-to-genetic-algorithms-including-example-code-e396e98d8bf3
如果要使用遗传算法进行超调,则可以将网络的超参数(层数,神经元)编码为基因。评估适用性非常昂贵,因为这将涉及为给定任务训练网络以获得最终测试损失。
如果要使用遗传算法进行优化,则可以将模型权重编码为基因,而适应度将直接与网络的丢失有关。