t-sne について、理論とか知りたくなったので調べてまとめてみる
正式には t-sne(t-distributed stochastc neighbor embedding) といい次元削減法の一種。 word2vec など、高次元空間で表されるデータを可視化するときに用いられる
次元削減とは、高次元のデータの集合についてデータの特徴を保持したまま、 低次元のデータ集合に変換すること
他には主成分分析(PCA)などの方法が知られている
sne という手法に改良を加えたものを t-sne という
sne
アプローチとしては、高次元空間での類似度を、
低次元空間での類似度をとし、確率分布で表現する。 それらの分布を最小化するように確率分布のパラメータを最適化する 二点間の類似度を条件付き確率で表現する
は近さを確率で表す
条件付き確率
B における A の条件付き確率
と表すを A,B の同時確率(A と B が同時に生じる確率)という
は、B の生じる確率で、(複数の事象が生じる前提において)周辺確率ともいう
javascrtipt で使ってみる
実装と言っても、ライブラリを使っている t-sne
https://demo.uni-3.app/mnisttsne にて、 https://github.com/tensorflow/tfjs-examples/tree/master/tsne-mnist-canvas これの react 版を実装した
mnist 画像のベクトルを t-sne
で次元削減して表現している

参考
- https://www.iwanttobeacat.com/entry/2018/02/06/220000