当一个类包含不同种类的图像时进行图像分类



我必须将图像分为4类——食物服装杂项和dectoration,但当我看到我的食物类数据时,它包含了各种图像,比如蛋糕图片、葡萄酒图片、盘子图片和许多其他与食物相关但变化不大的图片,所以如何分类我使用了迁移学习,但没有得到很好的acc

请查看数据集访问https://www.hackerearth.com/challenges/competitive/hackerearth-deep-learning-challenge-auto-tag-images-gala/machine-learning/auto-tag-images-of-the-gala-9e47fb31/

这是盛会的黑客地球竞赛

您可以尝试使用少量类进行训练,但协变量偏移将是一个大问题,并且可能最终导致不稳定的模型。

可以使用无监督技术向模型中添加更多的子类。

首先,您可以压缩图像维度(使用PCA、t-SNE等(,然后应用k-means聚类来找到可能的新类。然后,为每个集群分配适当的类名。你最终会上更多的课。然后,你可以用这些额外的类来训练你的深度学习模型,以获得一个更稳定的模型。

import numpy as np
from sklearn.manifold import TSNE
# flatten the X image array
X_embedded = TSNE(n_components=2).fit_transform(X)
X_embedded.shape
# apply, k-means to find suitable clusters
from sklearn.cluster import KMeans
import numpy as np
kmeans = KMeans(n_clusters=2, random_state=0).fit(X_embedded)
kmeans.labels_
# test images
kmeans.predict(X_test)
kmeans.cluster_centers_
# for each cluster center assign a new class

最新更新