Ketika mempertimbangkan keunggulan metrik Wasserstein dibandingkan dengan divergensi KL, maka yang paling jelas adalah bahwa W adalah metrik sedangkan KL divergensi tidak, karena KL tidak simetris (yaitu secara umum) dan tidak memenuhi ketidaksetaraan segitiga (yaitu tidak berlaku secara umum).D K L ( R | | P ) ≤ D K L ( Q | | P ) + D K L ( R | | Q )DKL.( P||Q)≠DKL(Q||P)DKL.( R | | P)≤DKL(Q||P)+DKL(R||Q)
Karena perbedaan praktis, maka salah satu yang paling penting adalah bahwa tidak seperti KL (dan banyak tindakan lainnya) Wasserstein memperhitungkan ruang metrik dan apa artinya ini dalam istilah yang kurang abstrak mungkin paling baik dijelaskan dengan contoh (jangan ragu untuk melewati ke gambar, kode hanya untuk memproduksinya):
# define samples this way as scipy.stats.wasserstein_distance can't take probability distributions directly
sampP = [1,1,1,1,1,1,2,3,4,5]
sampQ = [1,2,3,4,5,5,5,5,5,5]
# and for scipy.stats.entropy (gives KL divergence here) we want distributions
P = np.unique(sampP, return_counts=True)[1] / len(sampP)
Q = np.unique(sampQ, return_counts=True)[1] / len(sampQ)
# compare to this sample / distribution:
sampQ2 = [1,2,2,2,2,2,2,3,4,5]
Q2 = np.unique(sampQ2, return_counts=True)[1] / len(sampQ2)
fig = plt.figure(figsize=(10,7))
fig.subplots_adjust(wspace=0.5)
plt.subplot(2,2,1)
plt.bar(np.arange(len(P)), P, color='r')
plt.xticks(np.arange(len(P)), np.arange(1,5), fontsize=0)
plt.subplot(2,2,3)
plt.bar(np.arange(len(Q)), Q, color='b')
plt.xticks(np.arange(len(Q)), np.arange(1,5))
plt.title("Wasserstein distance {:.4}\nKL divergence {:.4}".format(
scipy.stats.wasserstein_distance(sampP, sampQ), scipy.stats.entropy(P, Q)), fontsize=10)
plt.subplot(2,2,2)
plt.bar(np.arange(len(P)), P, color='r')
plt.xticks(np.arange(len(P)), np.arange(1,5), fontsize=0)
plt.subplot(2,2,4)
plt.bar(np.arange(len(Q2)), Q2, color='b')
plt.xticks(np.arange(len(Q2)), np.arange(1,5))
plt.title("Wasserstein distance {:.4}\nKL divergence {:.4}".format(
scipy.stats.wasserstein_distance(sampP, sampQ2), scipy.stats.entropy(P, Q2)), fontsize=10)
plt.show()
Di sini ukuran antara distribusi merah dan biru sama untuk divergensi KL sedangkan jarak Wasserstein mengukur pekerjaan yang diperlukan untuk mengangkut massa probabilitas dari kondisi merah ke kondisi biru menggunakan sumbu x sebagai "jalan". Ukuran ini jelas semakin besar semakin jauh probabilitas massa (maka jarak alias penggerak bumi). Jadi yang mana yang ingin Anda gunakan tergantung pada area aplikasi Anda dan apa yang ingin Anda ukur. Sebagai catatan, alih-alih KL divergensi ada juga opsi lain seperti jarak Jensen-Shannon yang merupakan metrik yang tepat.