Demistifikasi softmax

Apr 15 2023
Bagaimana cara menurunkan fungsi softmax dari persyaratan desain tugas klasifikasi?
Pendekatan umum untuk klasifikasi multi-kelas adalah mengambil pengklasifikasi biner terpisah untuk setiap kelas. Setiap pengklasifikasi bertanggung jawab untuk mengenali kelas terkaitnya sendiri.
Foto oleh Ramakant Sharda di Unsplash

Pendekatan umum untuk klasifikasi multi-kelas adalah mengambil pengklasifikasi biner terpisah untuk setiap kelas.

Setiap pengklasifikasi bertanggung jawab untuk mengenali kelas terkaitnya sendiri.

Pertama, pertimbangkan pilihan desain di balik konstruksi pengklasifikasi biner tunggal. Berikut ini, kami akan memperluas desain ke kumpulan pengklasifikasi biner.

Sebagai titik awal, ambil persamaan linier yang mengambil vektor fitur x dan mengembalikan keluaran y yang merupakan penjumlahan bobot dari fitur masukan dan parameternya. Output y adalah bilangan real yang harus dipetakan ke keputusan: Apakah input x mewakili objek milik kelas yang seharusnya saya deteksi ? Pilihan yang paling sederhana adalah mengembalikan pesan ' my class' ketika y mengambil nilai positif dan membuat classifier tidak aktif ketika y negatif.

Pengklasifikasi biner —Versi beta

Tapi kemudian kita akan kehilangan informasi tentang ketidakpastian/kepercayaan dari hasil pengklasifikasi. Kita juga bisa mengembalikan nilai mentah dari keluaran classifier y sebagai ukuran kepercayaan classifier pada result . Namun, kisaran -∞ hingga +∞ akan merepotkan untuk interpretasi, perbandingan, dan pasca-pemrosesan.

Persyaratan Desain №1: output sebagai probabilitas

Alih-alih, lebih baik mengembalikan nilai dalam rentang yang sangat terbatas yang dapat ditafsirkan sebagai probabilitas p bahwa input x mewakili objek milik ' kelas saya '.

Jadi, pertanyaannya adalah bagaimana memproyeksikan y pada nilai p yang dapat ditafsirkan secara longgar sebagai probabilitas?

Pada awalnya, nilai ini harus termasuk dalam rentang <0,1>. Selanjutnya, 0,5 harus menjadi titik balik keputusan. Terakhir, nilai yang lebih besar dari 0,5 harus mendukung deteksi positif suatu kelas.

Dari perspektif matematika, kami mencari fungsi kontinu φ :

sehingga 0 mendarat pada 0,5 , +∞ diproyeksikan pada 1 dan -∞ pada 0 .

Pengklasifikasi biner — desain yang disempurnakan

Dalam hal ini, cara mudahnya adalah rekayasa terbalik: mulai dari p dan kembali ke y . Probabilitas kelas p dapat dengan mudah diproyeksikan dari <0,1> pada interval < 0 , +∞) menggunakan odds ratio:

Pemetaan selanjutnya harus memberikan nilai yang diperoleh ke (-∞, +∞) . Pilihan yang jelas adalah fungsi logaritmik.

Kemudian, kedua ujungnya bertemu di sini. Kami mulai dari < 0 , 1 > interval dan mencapai interval (-∞,+∞) , yang diasumsikan pada awalnya dikembalikan oleh y :

Untuk saat ini, basis B dari logaritma masih belum ditentukan.

Langkah selanjutnya adalah mengembalikan relasi ke p = φ ( y ) yang diinginkan :

Akhirnya, kami sampai pada formula yang diinginkan:

Sekarang, kita harus memutuskan tentang nilai B . Mari kita lihat grafik yang menunjukkan varian fungsi φ untuk nilai B yang berbeda .

Yang paling kecil sepertinya B=2.71 . Hebatnya, nilai yang serupa memiliki simbolnya sendiri e dan disebut basis alami. Oleh karena itu, untuk logaritma basis natural, rumus terakhir mengambil bentuk berikut:

Selamat!

Kami baru saja menemukan kembali fungsi sigmoid terkenal .

Pertanyaan untuk Anda adalah : Apakah ini benar-benar pilihan terbaik? Apa yang akan terjadi jika kita memilih nilai lain? Apakah kita akan kehilangan interpretasi probabilistik?

Pertimbangkan juga ini : mengapa tidak menggunakan hubungan nonlinier antara y dan x ? Ingatlah bahwa untuk menurunkan φ , kita hanya mengasumsikan bahwa nilai y terletak pada interval (-∞,+∞) .

Saat berhadapan dengan banyak (katakanlah M ) kelas, kami menetapkan setiap kelas pengklasifikasi binernya sendiri.

Jika pengklasifikasi beroperasi secara independen, mungkin saja semua probabilitas yang dikembalikan tidak berjumlah 1 , yang membuat interpretasi probabilistik dari keluarannya cacat. Ini adalah tantangan yang harus dihadapi sekarang.

Persyaratan Desain №2: penjumlahan ke satu

Semua pengklasifikasi mengambil yang sama x . Pengklasifikasi ke -i menghitung y_i . Kami sekali lagi ingin membuat proyeksi y_i di p_i , tetapi kali ini sinkron dengan semua pengklasifikasi lainnya , sehingga

Sinkronisasi antara pengklasifikasi adalah tentang kesepakatan bersama tentang cara memproyeksikan y_i yang dihitung secara independen di p_i . Untuk pengklasifikasi tunggal, odds ratio melibatkan probabilitas dari dua output: ' my class ' dengan probabilitas p versus ' not my class ' dengan probabilitas 1-p . Semakin tinggi nilai y , semakin besar kemungkinan keluaran ' my class '. Sekarang, alih-alih output ' not my class ' kita harus lebih spesifik dan memperkenalkan output ' your class '. Oleh karena itu, versi yang lebih umum adalah: ' my class ' dengan probabilitas p_kversus ' kelas Anda ' dengan probabilitas p_l . Dan semakin tinggi keluaran saya y_k daripada keluaran Anda y_l , semakin besar kemungkinan ' kelas saya ' daripada ' kelas Anda '.

Persyaratan Desain №3: keterkaitan antara probabilitas

Ini adalah versi terbaru dari persamaan (1):

Perhatikan bahwa persyaratan ini merupakan versi tambahan dari persyaratan desain №1.

Tugasnya adalah mengambil persyaratan desain №2 dan №3, diwakili oleh persamaan (2) dan (3), dan mendapatkan rumus untuk fungsi seperti itu Φ _i sehingga :

Kami telah membuat keputusan untuk menggunakan basis logaritma natural e , jadi mari kita gunakan itu untuk pertimbangan kita selanjutnya:

Untuk memanfaatkan informasi yang terkandung dalam persamaan (2) kami menerapkan penjumlahan untuk kedua sisi:

dan ekstrak elemen yang tidak berbeda dengan k sebelum tanda penjumlahan. Perhatikan bahwa, menurut persamaan (2), jumlah semua probabilitas sama dengan 1 :

Akhirnya, kita sampai pada fungsi berikut:

yang dapat ditulis ulang untuk i alih-alih l sebagai :

Selamat lagi!

Dengan cara ini kami akhirnya menemukan kembali fungsi softmax yang dikenal luas .

Pikiran terakhir

Saya harap Anda menghargai bahwa kami telah mencapai fungsi softmax dengan cara yang jelas. Kami tidak menggunakan wahyu, analogi longgar dari ilmu fisika, atau otoritas sepanjang pertimbangan kami. Dalam artikel ini, fungsi softmax adalah hasil dari penalaran garis lurus yang berasal dari persyaratan alami yang diajukan untuk masalah multi-kelas .

Niat saya adalah memberi Anda perasaan yang lebih kuat tentang asal-usul fungsi softmax dalam memecahkan masalah pembelajaran mesin.

Saya sarankan Anda memeriksa pendekatan lain yang sangat inspiratif untuk derivasi fungsi sigmoid yang dibuat di blog Will Wolf .

Terakhir, pertimbangkan sendiri apakah semua ini dapat dicapai dengan cara lain: menggunakan pengklasifikasi yang beroperasi secara independen, menormalkan semua p_i sesudahnya, dan kemudian mengganti p_i dengan nilai yang dinormalisasi.

Referensi

[1] Gabriel Furnieres : Fungsi Sigmoid dan SoftMax dalam 5 menit . https://towardsdatascience.com/sigmoid-and-softmax-functions-in-5-minutes-f516c80ea1f9

[2] Will Wolf : Memperoleh Softmax dari Prinsip Pertama .https://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/