機械学習でカーネル法やらクラスタリングをやっていると、何かと「2サンプル(点)間の距離」を計算することが多いです。ここではより一般的に「Pythonで2点間の距離をforループを使わずに行列(テンソル)計算として求める方法」を見ていきます。 動機 カーネル法やクラスタリングをしていると、ニューラルネットワークの出力層(潜在空間)に対して、サンプル間の距離を求めるということがよく目にします。ディープラーニングになると損失関数の中で計算しないといけないので、forループが使うのが厳しい、行列(テンソル)計算でなんとかできればめっちゃ嬉しいというシチュエーションがあります。 実はKaggleのとあるカーネルを見ていたら、TensorFlowの場合ですが、行列計算であっさり求めていたので目からうろこでした。今回はTensorFlowではなくNumpyの問題として一般化します。 問題:日本の都市間の
