问题描述 投票:0回答:2

让我们说我有一个训练好的模型,可以预测一张图片是否是猫或狗.我使用SVM来分类图片是猫或狗。

现在让我们说,我想有一个新的模型,预测一个图像是否是鼠标,它与第一个模型不同,它分为2个类。这个新模型将只返回TRUE或FALSE--是否是鼠标。

在这里,我不认为我可以使用一个分类器模型,因为我只有1个类--那就是鼠标.而且我不打算在第2个模型中使用第一个模型或与之相关的任何东西。

python-3.x machine-learning computer-vision
2个回答
1
投票

如果你想能够预测一张图像是否有老鼠,这仍然是一个分类问题,你要把图像分为两类--老鼠和不是老鼠。

任何你打算使用的分类器都可能需要学习一个边界,以在n维输入空间中将鼠标图像和非鼠标图像分开。

如果你采用了神经网络,你可以只做一个输出神经元,理想情况下,当图像是鼠标时,它将给出高概率,而当图像中没有鼠标时,它将给出低概率。


1
投票

最好的方法,在研究和工业界似乎有更好的效果,就是使用神经网络,CNN(更准确的说是卷积网络,虽然线性前向层也可以)。 从猫与狗到鼠与不鼠,没有什么变化。还是一个分类问题.既然你用的是SVM,我假设你没有很多数据,也许可以试试用resnet模型的转移学习 ? 可能会有不错的效果。

如果还是不够,你还可以用SVM进行分类1-鼠标0-不是鼠标.!

希望能帮到你 !

最好的!


0
投票

如果你已经有一个鼠标类,你可以使用监督学习.当你训练你的模型时,让模型学习什么是鼠标,通过定义他这是一个特定的对象是鼠标,定义他什么不是鼠标......

用这种方法,你只需要一个鼠标类来定义你的模型,并 "教 "他什么是鼠标,之后,你的模型就会对 "鼠标 "和 "不是鼠标 "进行分类了


0
投票

我觉得你的原点问题里面有两个详细的问题。

问题1.为什么要用分类器模型?

I don't think I can use a classifier model since I have only 1 class - which is the Mouse

其实你还是可以用一个分类器模型来做两个label,label=0表示这个图片(这个实例)是 "不是老鼠",label=1表示这个图片(这个实例)是 "老鼠"。

在label=0和label=1的实例中训练后,你的分类器就能输出是否是老鼠的概率。

问题2.你的分类器是否是老鼠?

And I don't intend to use the first model or anything related to it in the 2nd model

一般来说,这是一个 传习题,所以答案是一些预训练可能对没有太多实例的问题有帮助。

但是,详细到你的问题,用猫和狗训练的模型来帮助预测老鼠,我认为没有用。


0
投票

有两种方案来处理这个问题。

1.) 你把这个问题看作是一个两类分类任务。然后,你用类的样本(显示有老鼠的图像),以及图像中没有描绘老鼠的样本来训练一个分类器。这种方法在一般情况下是可行的。为此,你仍然可以训练一个SVM,或者你训练一个神经网络。如果你只有很少的样本,在大多数情况下,使用SVM或转发学习与神经网络都能很好地工作。需要注意的是,对于应用SVM,你必须定义判别特征(比如HOG)。

这种方法会出现一个问题,就是选择哪些图像作为非鼠类。

2.) 你将问题视为一个类的分类任务。在这种情况下,你只需要你所需要的类的样本,机器学习模型被训练来识别与类的偏差。

有一种经典的方法,比如单类SVM,通过在你的类的特征向量周围拟合一个超球,只对正样本进行训练。

如果你想应用神经网络,你可以使用例如DROCC (https:/arxiv.orgabs2002.12718)

© www.soinside.com 2019 - 2024. All rights reserved.