将大型/通用 CNN 与更小更专业的 CNN 进行比较?

人工智能 神经网络 机器学习 卷积神经网络 分类
2021-10-30 21:52:10

我在 ML 世界里还是个新手,但我对 CNN 有一个奇怪的想法,想问问这是否是检查对某些图像进行分类的通用 CNN 的鲁棒性的有效方法。

假设我制作了一个 CNN,它接收许多不同的运动员执行某个动作的图像(篮球射击、足球踢、游泳中的自由泳、体操中的翻转等)。首先,这样的 CNN 是否有可能区分如此多样的图像并对其进行准确分类?如果是这样,将这个“更大”的 CNN 与多个“更小”的更专业的从一项特定运动中获取图像的CNN进行比较是否是一个好主意?

换句话说,我想知道,如果我有一个“更大”的 CNN 给我一个像“足球被踢”这样的输出,有没有办法用一个只关注足球动作的更小的 CNN 来仔细检查这个输出? 本质上,我们是否可以创建一个系统,一旦您从通用 CNN 获得输出,它会自动通过更专业的 CNN 对相同的图像进行分类,然后如果结果具有相似的准确度,您肯定知道 CNN 有效吗?

有点像将较小的 CNN 作为较大的 CNN 的“基本事实”?在我的脑海里,它是这样的:

large_net_output = 'Football kick identified with 95.56% confidence' 

for sport in large_net:
    if sport == 'football':
        access = small_net_for_football
        return small_net_for_football_output

    elif sport == 'swimming':
        access = small_net_for_swimming
        return small_net_for_swimming_output

    elif sport == 'baseball':
        access = small_net_for_baseball
        return small_net_for_baseball_output

# and so on....
>>> small_net_for_football_output = 'Football kick identified with 97.32% confidence'

robustness_check = large_net_output - small_net_for_football_output
print(robustness_check)

>>> 'Your system is accurate within a good range of 1.76%'
     

我希望这是有道理的,并且这个问题不会让您感到畏缩。感谢您对此的任何反馈!

1个回答

阅读您的问题后,我可以将其与表示学习论文(例如 SimCLR 和 SwAV)联系起来。这些模型使用“与大任务无关的 CNN ”来获得图像的较小表示,然后训练另一个 CNN 进行分类。我建议你阅读Ting Chen、Simon Kornblith、Kevin Swersky、Mohammad Norouzi 和 Geoffrey HintonBig Self-Supervised Models are Strong Semi-Supervised Learners可以在此处找到以下代码但是我觉得训练这样一个模型会占用大量的计算资源。