Sebelumnya, Anda menemui klasifikasi biner model yang dapat memilih di antara dua kemungkinan pilihan, seperti apakah:
- Email tertentu adalah spam atau bukan spam.
- Tumor yang diberikan bersifat ganas atau jinak.
Di bagian ini, kita akan menyelidiki klasifikasi kelas multi-kelas yang dapat dipilih dari beberapa kemungkinan. Contoh:
- Apakah ini beagle, basset hound, atau pemburu darah?
- Apakah bunga ini adalah bunga jenis Iris Siberia, Iris Belanda, Iris Bendera Biru, atau Dwarf Janggut Iris?
- Apakah itu pesawat Boeing 747, Airbus 320, Boeing 777, atau Embraer 190?
- Apakah ini gambar apel, beruang, permen,, atau telur?
Beberapa permasalahan kelas jamak di dunia nyata mengharuskan pilihan dari jutaan dari beberapa class terpisah. Misalnya, pertimbangkan klasifikasi kelas multi-kelas yang dapat mengidentifikasi gambar apa saja.
Bagian ini menjelaskan dua varian utama klasifikasi multi-class:
- satu vs.-semua
- one-vs.-one, yang biasanya dikenal sebagai softmax
Satu versus semua
Satu vs.-semua memberikan cara untuk menggunakan klasifikasi biner untuk serangkaian prediksi ya atau tidak pada beberapa kemungkinan label.
Dalam masalah klasifikasi dengan N kemungkinan solusi, a-vs.-semua solusi terdiri dari N pengklasifikasi biner terpisah—satu biner untuk setiap kemungkinan hasil. Selama pelatihan, model berjalan dengan urutan pengklasifikasi biner, melatih setiap pengklasifikasi untuk pertanyaan klasifikasi.
Misalnya, diberikan gambar sepotong buah, empat pengenal yang berbeda mungkin dilatih, masing-masing menjawab ya/tidak pertanyaan:
- Apakah ini gambar apel?
- Apakah gambar ini berwarna jeruk?
- Apakah ini gambar pisang?
- Apakah gambar ini gambar anggur?
Gambar berikut mengilustrasikan cara kerjanya dalam praktiknya.
![Gambar 7. Gambar pir yang diteruskan sebagai input ke 4 model
model pengklasifikasi biner. Model pertama memprediksi 'apel' atau 'tidak
{i>apple'<i}, dan prediksinya
adalah 'bukan apel'. Model kedua memprediksi
'oranye' atau 'tidak oranye', dan prediksinya adalah 'tidak oranye'. Tujuan
model ketiga memprediksi 'pisang' atau 'bukan pir', dan prediksinya adalah
'pisau'. Model keempat memprediksi 'grape' atau 'bukan anggur', dan
prediksinya adalah 'not grape'.](/static/machine-learning/crash-course/neural-networks/images/one_vs_all_binary_classifiers.png)
Pendekatan ini cukup masuk akal ketika jumlah total kelas kecil, tetapi menjadi semakin tidak efisien seiring dengan bertambahnya jumlah kelas naik.
Kita dapat membuat model satu vs. semua yang jauh lebih efisien dengan jaringan neural dalam yang setiap simpulnya mewakili jaringan neural yang berbeda . Gambar berikut mengilustrasikan pendekatan ini.
![Gambar 8. Sebuah jaringan neural dengan arsitektur berikut: lapisan input dengan
1 node, lapisan tersembunyi dengan 3 node, lapisan tersembunyi dengan 4 node,
dengan 4 node. Simpul input diberi gambar berupa pir.
Fungsi aktivasi sigmoid diterapkan ke lapisan output. Masing-masing
node output mewakili probabilitas bahwa gambar tersebut
buah. Node output 1 mewakili 'Is apple?' dan memiliki nilai 0,34.
Node output 2 mewakili 'Apakah oranye?' dan memiliki nilai 0,18.
Node output 3 menampilkan 'Is pear?' dan memiliki nilai 0,84.
Node output 4 mewakili 'Is grape?' dan memiliki nilai 0,07.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_all_neural_net.png?authuser=9&hl=id)
Satu versus satu (softmax)
Anda mungkin telah memperhatikan bahwa nilai probabilitas di lapisan output Gambar 8 jangan berjumlah 1,0 (atau 100%). (Malah, jumlah mereka menjadi 1,43.) Dalam satu vs. semua pendekatan, probabilitas dari setiap set hasil biner ditentukan terpisah dari semua kumpulan lainnya. Yaitu, kita menentukan probabilitas dari "apple" versus "bukan apel" tanpa mempertimbangkan kemungkinan pilihan buah: "oranye", "pir", atau "anggur".
Tetapi bagaimana jika kita ingin memprediksi probabilitas setiap buah relatif terhadap satu sama lain? Dalam hal ini, alih-alih memprediksi "apel" versus "tidak apel", kita ingin memprediksi "apel" versus "oranye" versus "pir" versus "anggur". Jenis klasifikasi multi-kelas ini disebut klasifikasi satu vs. satu.
Kita dapat menerapkan klasifikasi satu vs. satu menggunakan jenis arsitektur jaringan yang digunakan untuk klasifikasi satu vs. semua, dengan satu perubahan penting. Kita perlu menerapkan transformasi yang berbeda ke lapisan output.
Untuk satu vs. semua, kita menerapkan fungsi aktivasi sigmoid ke setiap output secara independen, yang menghasilkan nilai output antara 0 dan 1 untuk node, tetapi tidak menjamin bahwa nilai-nilai ini dijumlahkan menjadi tepat 1.
Sebagai gantinya, untuk satu vs. satu, kita dapat menerapkan fungsi yang disebut softmax, yang menetapkan probabilitas desimal ke setiap kelas dalam soal multi-kelas sehingga semua probabilitas dijumlahkan menjadi 1,0. Batasan tambahan ini membantu konvergensi pelatihan lebih cepat dari yang seharusnya.
Gambar berikut menerapkan kembali klasifikasi multi-class satu vs. semua tugas sebagai tugas satu vs. satu. Perhatikan bahwa untuk melakukan softmax, fungsi langsung sebelum lapisan output (disebut lapisan softmax) harus memiliki jumlah node yang sama dengan lapisan output.
![Gambar 9. Jaringan neural dengan arsitektur berikut: input
lapisan dengan 1 node, lapisan tersembunyi dengan 3 node,
dengan 4 node. Simpul input diberi gambar berupa pir.
Fungsi aktivasi softmax diterapkan ke lapisan output. Masing-masing
node output mewakili probabilitas bahwa gambar tersebut
buah. Node output 1 mewakili 'Is apple?' dan memiliki nilai 0,19.
Node output 2 mewakili 'Apakah oranye?' dan memiliki nilai 0,12.
Node output 3 menampilkan 'Is pear?' dan memiliki nilai 0,63.
Node output 4 mewakili 'Is grape?' dan memiliki nilai 0,06.](https://developers.google.cn/static/machine-learning/crash-course/neural-networks/images/one_vs_one_neural_net.png?authuser=9&hl=id)
Opsi Softmax
Pertimbangkan varian softmax berikut:
Full softmax adalah softmax yang sudah kita diskusikan; yaitu, softmax menghitung probabilitas untuk setiap kemungkinan kelas.
Sampling kandidat berarti softmax menghitung probabilitas untuk semua label positif tetapi hanya untuk sampel acak label negatif. Misalnya, jika kita tertarik untuk menentukan apakah gambar input adalah beagle atau berdarah, kita tidak harus memberikan probabilitas untuk setiap contoh non-doggy.
{i>Full softmax<i} cukup murah bila jumlah kelas sedikit namun akan menjadi sangat mahal jika jumlah kelas meningkat. Sampling kandidat dapat meningkatkan efisiensi dalam masalah yang memiliki jumlah kelas.
Satu label versus banyak label
Softmax beranggapan bahwa setiap contoh adalah anggota dari satu kelas saja. Namun, beberapa contoh dapat menjadi anggota beberapa class secara bersamaan. Untuk contoh tersebut:
- Anda tidak boleh menggunakan softmax.
- Anda harus mengandalkan beberapa regresi logistik.
Misalnya, model satu vs. satu dalam Gambar 9 di atas mengasumsikan bahwa setiap input gambar akan menggambarkan tepat satu jenis buah: apel, jeruk, pir, atau anggur. Namun, jika gambar input mungkin berisi beberapa jenis buah— semangkuk apel dan jeruk—Anda harus menggunakan banyak yang menyebabkan regresi.