Visualization

A picture is worth a thousand words12

tSNE是一个显示工具,可以参考论文3

深度学习中的数据的相似性是很关键,对于transfer learning 或者domain adaption显得比较关键。发现tSNE4是一个显示多维特征的工具,是基于最小 Kullback-Leibler divergence5的降维工具,通常与PCA6进行比较7。对于Curse of Dimensionality,当维数太大,会有问题8

Kullback-Leibler divergence

KL divergence可以看作是描述两组数据的分布的一致性,有点类似与互信息(MI)9,但是MI与KL divergence并不等价10,有点类似于表达两个分布的差异,而且结果是非对称的11

另外,KL divergence可以作为目标函数12,在pytorch中有实现13

tSNE

tSNE 主要是多维特征的显示7,利用KL divergence作为目标函数,用 stochastic gradient descent进行优化8,而且可能多次运行的结果并不一样14

网上有一个GUI的例子,显示迭代次数与显示结果的关系14

Feature visualization

对于CNN中间layer的分析,发现CNN有translationally invariant,但是没有rotationally invariant15。有对应的基于pytorch的代码16。同时,在pytorch的forum上也有学多feature visualization的讨论17

常用的做法都是用hook函数,直接显示layer的output18

Footnotes

  1. https://en.wikipedia.org/wiki/A_picture_is_worth_a_thousand_words. 

  2. https://towardsdatascience.com/the-art-of-effective-visualization-of-multi-dimensional-data-6c7202990c57. 

  3. https://lvdmaaten.github.io/tsne/. 

  4. https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html. 

  5. https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence. 

  6. https://en.wikipedia.org/wiki/Principal_component_analysis. 

  7. https://medium.com/analytics-vidhya/note-visualize-multi-dimension-datasets-in-a-2d-graph-using-t-sne-airbnb-bookings-dataset-as-824541cc5388.  2

  8. https://jotterbach.github.io/content/posts/tsne/2016-05-23-TSNE/.  2

  9. http://www.scholarpedia.org/article/Mutual_information. 

  10. https://stats.stackexchange.com/questions/487012/are-mutual-information-and-kullback-leibler-divergence-equivalent. 

  11. https://zhuanlan.zhihu.com/p/425693597. 

  12. https://timvieira.github.io/blog/post/2014/10/06/kl-divergence-as-an-objective-function/. 

  13. https://pytorch.org/docs/stable/generated/torch.nn.KLDivLoss.html. 

  14. https://distill.pub/2016/misread-tsne/.  2

  15. https://towardsdatascience.com/how-to-visualize-convolutional-features-in-40-lines-of-code-70b7d87b0030. 

  16. https://github.com/fg91/visualizing-cnn-feature-maps. 

  17. https://discuss.pytorch.org/t/visualize-feature-map/29597. 

  18. https://github.com/lewis-morris/mapextrackt.