如何向神经网络添加更多输出?
how to add more outputs to neural networks?
当然,没有人能为图像识别和分类制作一个神经网络来容纳所有可能的图像输出。所以如果我制作一个神经网络,它接受数组输入并将输出作为一只鸟或不是一只鸟。我可以在完成第一个网络学习后为更多图像添加更多输出,否则会使学习消失。
所以我添加了固定的输入数字和 1 个输出,然后我又添加了 1 个和 1 个是否适用?
再培训
如果您可以花费资源,re-train(或者更具体地说:从头开始训练)您的网络将是一件好事。但是,当您可能会取得更好的成绩(或至少成本更低)时,请阅读以下方法。
Transfer-learning
但是,如果您使用的是一种非常流行的神经网络,需要数周时间来训练(在非常昂贵的硬件上),那么可能有一种方法可以触及 transfer-learning.
那么至少有两种不同的方法:
使用预训练神经网络作为 feature-extractor
在这里您将删除最后的 dense-layers 并仅使用经过训练的神经网络从您的图像中提取一些特征。然后你可以在你的新数据集上构建一些任意新的 classifier,映射 OLD-NN-OUTPUT = FEATURES-INPUT -> classes (new softmax-NN or SVM/Kernel-SVM 或其他任何内容)。如果我们假设您的预训练 NN 是 high-quality 并且您的新 class 与学习的神经网络没有太大差异,这听起来非常稳健。
一般来说,如果您的新 class+ 数据集较小且与原始数据集相似,则此方法可能更适用。
如果新数据不是那么相似,则可能会在较早的层(更通用)使用一些特征。
继续培训
在这里,您将继续训练原始 NN 的权重,可能会保留第一层(甚至可能保留最后一层以外的所有层)。如上所述,一般的想法是我们假设一个好的 NN 在第一层非常通用(= 提取特征)并且在最后一层更具体。
如果您的新 class 有大量数据,这种方法应该是有利的。根据相似性,您可能会继续重新训练所有权重,或者如果非常相似,则修复一些 layer-weights(第一个)。
这里可能存在如何实现此方法的技术问题(例如不同的 image-size 输入和其他内容)。因此,如果原始 NN 的某些约束被打破,则需要做一些工作。为学习调整 hyper-parameters 也很重要(也许 learning-rates 应该更低!)。
当然,没有人能为图像识别和分类制作一个神经网络来容纳所有可能的图像输出。所以如果我制作一个神经网络,它接受数组输入并将输出作为一只鸟或不是一只鸟。我可以在完成第一个网络学习后为更多图像添加更多输出,否则会使学习消失。
所以我添加了固定的输入数字和 1 个输出,然后我又添加了 1 个和 1 个是否适用?
再培训
如果您可以花费资源,re-train(或者更具体地说:从头开始训练)您的网络将是一件好事。但是,当您可能会取得更好的成绩(或至少成本更低)时,请阅读以下方法。
Transfer-learning
但是,如果您使用的是一种非常流行的神经网络,需要数周时间来训练(在非常昂贵的硬件上),那么可能有一种方法可以触及 transfer-learning.
那么至少有两种不同的方法:
使用预训练神经网络作为 feature-extractor
在这里您将删除最后的 dense-layers 并仅使用经过训练的神经网络从您的图像中提取一些特征。然后你可以在你的新数据集上构建一些任意新的 classifier,映射 OLD-NN-OUTPUT = FEATURES-INPUT -> classes (new softmax-NN or SVM/Kernel-SVM 或其他任何内容)。如果我们假设您的预训练 NN 是 high-quality 并且您的新 class 与学习的神经网络没有太大差异,这听起来非常稳健。
一般来说,如果您的新 class+ 数据集较小且与原始数据集相似,则此方法可能更适用。
如果新数据不是那么相似,则可能会在较早的层(更通用)使用一些特征。
继续培训
在这里,您将继续训练原始 NN 的权重,可能会保留第一层(甚至可能保留最后一层以外的所有层)。如上所述,一般的想法是我们假设一个好的 NN 在第一层非常通用(= 提取特征)并且在最后一层更具体。
如果您的新 class 有大量数据,这种方法应该是有利的。根据相似性,您可能会继续重新训练所有权重,或者如果非常相似,则修复一些 layer-weights(第一个)。
这里可能存在如何实现此方法的技术问题(例如不同的 image-size 输入和其他内容)。因此,如果原始 NN 的某些约束被打破,则需要做一些工作。为学习调整 hyper-parameters 也很重要(也许 learning-rates 应该更低!)。