PyTorch中用于神经网络的开源特征可视化工具包

转载于:https://mp.weixin.qq.com/s/CTS3MUkcNTZXbAR2gvkcQw

1. 设置场景

  • 给概览功能的可视化作为一个研究领域,并推出了FlashTorch-  一个开放源码的功能可视化工具包建在PyTorch神经网络。
  • 该软件包可通过安装pip。查看GitHub仓库的源代码。也可以在Google Colab上托管的这款笔记本中使用它,而无需安装任何东西!

https://github.com/MisaOgura/flashtorch
https://colab.research.google.com/github/MisaOgura/flashtorch/blob/master/examples/visualise_saliency_with_backprop_colab.ipynb

2. 使用FlashTorch进行功能可视化

  • 通过创建 AlexNet的显着图来实现的,该图是在ImageNet分类任务上预先训练过的。从任务中选择了三个类(灰色的大猫头鹰,孔雀和巨嘴鸟),并使用这些类的图像来检查AlexNet学到了什么,以便在识别这些对象时最集中在图像中。

3. 迁移倾向

  • 机器学习中的迁移倾向是知识转移的一种形式 - 一种方法,其中使用经过一项任务训练的模型,通常作为另一项任务的起点。新任务所需的额外训练数量取决于原始任务和新任务的相似性,训练数据的可用性等。
  • 传统学习与迁移学习
  • 迁移学习通常用于计算机视觉和自然语言处理任务,因为它通过利用先前的训练帮助节省计算/时间资源。
    例如,在ImageNet(1000个类)上训练的网络可以重新用作狗标识符,而无需额外的训练。或者可以将在大型文本语料(例如来自Google的Word2Vec)上训练的单词嵌入引入另一个深度神经网络,以从新的语料库中提取单词的向量表示。

4. ImageNet→花卉分类器

  • 为了测试迁移学习的动力,决定把DenseNet,在ImageNet任务预先训练,到用花分类102类花卉数据集。http://www.robots.ox.ac.uk/~vgg/data/flowers/102/index.html
  • 事实证明,该模型没有经过任何进一步的训练,表现得非常糟糕  - 高达0.1%的测试精度!如果已经完成了数学计算......会更好地随意猜测它。直觉上,这可能是有道理的。原始的ImageNet数据集中只包含少数几个花类,因此要求模型识别102种花卉是推动的图像并不太难。
  • 使用FlashTorch创建显着性图并可视化网络(不)看到的内容。将以毛地黄的这个图像为例。
  • 在这里可以欣赏的是,没有额外训练的网络正在关注花杯的形状。但是有许多形状相似的花(例如蓝铃花)。对于人类而言,可能很明显(即使不知道该物种的名称)这种花朵的独特之处在于花杯内的斑驳图案。然而网络目前还不知道在哪里要注意,除了花的一般形状,因为它从来没有真正需要在旧任务(ImageNet分类)。
  • 现在有一个深入了解,为什么在网络表现不佳,觉得准备训练它。最终经过反复试验,训练有素的模型达到了98.7%的测试精度。
  • 网络已经学会减少对花的形状的关注,并强烈关注那些斑驳的图案:显示什么样的神经网络学会是非常有用的。将其提升到另一个层次并解释神经网络如何学习的过程是特征可视化技术的另一个强大应用。

5.从准确性向前迈进

  • 通过特征可视化技术,不仅可以更好地了解神经网络对物体的感知,而且还可以更好地:

你可能感兴趣的:(PyTorch中用于神经网络的开源特征可视化工具包)