【Keras】重用预训练层

重用预训练层

  • 找到一个现有的与要解决的任务相似的神经网络,重用该网络的较低层,此技术称为迁移学习。一般而言,当输入具有类似的低级特征时,迁移学习最有效。

用Keras进行迁移学习

  • 假设Fashion MNIST数据集上仅包含8个类别(出来凉鞋和衬衫之外的所有类别),有人在该数据集上建立并训练了Keras模型,称为模型A。你现在要处理另一项任务:训练一个二元分类器(正=衬衫,负=凉鞋)。数据集非常小,只有200张带标签的图像。
  • 首先加载模型A,并基于该模型创建一个新模型。我们重用除输出层之外的所有层:
model_A = keras.models.load_model("my_model_A.h5")
model_B_on_A = keras.models.Sequential(model_A.layers[:-1])
model_B_on_A.add(keras.layers.Dense(1, activation="sigmoid"))
  • 注意:model_A 和 model_B_on_A 现在共享一些层。当训练 model_B_on_A 时,也会影响 model_A。避免这种情况,需要在重用 model_A 的层之前对其进行克隆。然后复制其权重。
model_A_clone = keras.models.clone_model(model_A)
model_A_clone.set_weights(model_A.get_weights())
  • 在前几个轮次时冻结重用的权重,给新层一些时间来学习合理的权重。
for layer in model_B_on_A.layers[:-1]:
    layer.trainable = False

model_B_on_A.compile(loss="binary_crossentropy", optimizer="sgd",
                    metrics=["accuracy"])
  • 冻结或解冻层之后,总是要编译模型。训练模型几个轮次,然后解冻重用的层(这需要再次编译模型),并继续进行训练来微调任务B的重用层。解冻重用层后,降低学习率,可以避免损坏重用的权重:
history = model_B_on_A.fit(X_train_B, y_train_B, epochs=4,
                          validation_data=(X_valid_B, y_valid_B))

for layer in model_B_on_A.layers[:-1]:
    layer.trainable = True
    
optimizer = keras.optimizers.SGD(lr=1e-4) # the default lr is 1e-2
model_B_on_A.compile(loss="binary_crossentropy", optimizer=optimizer,
                    metrics=["accuracy"])
history = model_B_on_A,fit(X_train_B, y_train_B, epochs=16,
                          validation_data=(X_valid_B, y_valid_B))
  • 迁移学习在小型密集型网络中不能很好工作,最适合使用在深度卷积神经网络,该神经网络倾向于学习更为通用的特征检测器。

辅助任务的预训练

  • 如果没有太多标记的训练数据,最后一个选择是在辅助任务上训练第一个神经网络,这个辅助任务中你可以轻松得为其获得或生成标记的训练数据,然后对实际任务重用该网络的较低层。第一个神经网络将学习特征检测器,第二个神经网络可能会重用这些特征检测器。
  • 例如,如果你要构建一个识别人脸的系统,每个人只有几张照片,不足以训练一个好的分类器。但是,可以在网络上收集很多随机人物的图片,然后训练第一个神经网络来检测两个不同的图片是否是同一个人。这样的网络将会学习到很好的人脸特征检测器。
  • 自我监督学习是指从数据本身自动生成标签,然后使用有监督学习技术在所得到的“标签”数据集上训练模型。属于无监督学习的一种形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值