はじめに
次元削減の新たな手法として,PaCMAPの存在を知った.
以前の記事にて,声優統計コーパスを対象に,次元削減手法の1つであるUMAPを使ってxvectorの可視化を試みた.
今回はPaCMAPで同様の可視化を試みたので,その結果を示す.
実装
以下のリポジトリに置いてある.
plot_pacmap.py ... xvectorを話者ごとに可視化
plot_pacmap_all.py ... 全話者のxvectorを可視化
可視化例
図1に声優統計コーパス3話者から抽出したx-vectorを可視化した例を示す.3話者とは「fujitou, tsuchiya, umemura」の3名である.
参考まで,図2にUMAPにより可視化した例を示す(n_neighbors=10).
PaCMAPのfit時のパラメータは全てdefault値である.ちなみにPaCMAPのn_neighborsはデフォルト値が10であり,UMAPのn_neighbors値はそれを受けて揃えてみた.
上図を見比べると,PaCMAPもきれいにクラスタに分かれているが,UMAPのときと比べて一部のクラスタで形状が細長く伸びているのが興味深い.3話者の「happy」クラスタが近接する(ように見える)可視化が得られたのもまた興味深い.これらはUMAPにはなかった特徴である.もっとも次元削減した空間における見かけの距離に,どれほどの意味があるかは分からない.今後,デフォルト値からパラメタを変えて可視化の様子を観察する楽しみもあるだろう.
ちなみに体感ではあるがPaCMAPのほうがfitにかかる時間が短い(高速).
おわりに
これからは次元削減・可視化のツールとしてPaCMAPも使っていきたい.