Klasifikasi multi-tag

gambarHalo, habrozhiteli! Kami memutuskan untuk mengutip kutipan dari buku karya Andrei Burkov , Machine Learning Without Extra Words , yang didedikasikan untuk klasifikasi.

Untuk menggambarkan gambar dalam gambar, beberapa label dapat digunakan secara bersamaan: "hutan konifer", "pegunungan", "jalan". Jika jumlah nilai yang mungkin untuk label besar, tetapi semuanya memiliki sifat yang sama dengan tag, setiap sampel yang ditandai dapat dikonversi menjadi beberapa data yang ditandai, satu untuk setiap tag. Semua data baru ini akan memiliki vektor fitur yang sama dan hanya satu label. Akibatnya, tugas menjadi masalah klasifikasi multikelas. Itu dapat diselesaikan dengan menggunakan strategi “satu lawan semua”. Satu-satunya perbedaan dari masalah klasifikasi multi-kelas yang biasa adalah munculnya hyperparameter baru: ambang batas. Jika skor kesamaan untuk label di atas nilai ambang, label ini ditugaskan untuk vektor fitur input. Dalam skenario ini, beberapa label dapat ditugaskan ke satu vektor karakteristik.Nilai ambang dipilih menggunakan set kontrol.

Untuk mengatasi masalah klasifikasi dengan banyak label, kita dapat menerapkan algoritma yang secara alami dikonversi ke multikelas (pohon keputusan, regresi logistik, jaringan saraf, dll.). Mereka mengembalikan estimasi untuk setiap kelas, sehingga kita dapat mendefinisikan ambang dan kemudian menetapkan beberapa label ke satu vektor fitur yang skor kedekatannya melebihi ambang ini.

Neural networks secara alami dapat dilatih dalam klasifikasi multi-label menggunakan binary cross-entropy sebagai fungsi biaya. Lapisan output dari jaringan saraf dalam hal ini memiliki satu simpul per label. Setiap node di lapisan output memiliki fungsi aktivasi sigmoid. Oleh karena itu, setiap label l adalah binergambardi mana l = 1, ..., L dan i = 1, ..., N. Entropi silang biner dari probabilitas gambarbahwa sampel xi diberi label l, yang didefinisikan sebagai gambar

kriteria minimalisasi - rata-rata sederhana semua anggota lintas-entropi biner dalam semua sampel pelatihan dan semua tag mereka.

Dalam kasus di mana jumlah nilai label yang mungkin kecil, Anda dapat mencoba mengubah masalah klasifikasi dengan banyak label menjadi masalah klasifikasi multi-kelas. Bayangkan masalah berikut ini. Anda perlu menetapkan dua jenis label untuk gambar. Label jenis pertama dapat memiliki dua arti yang mungkin: { photo, painting }; tanda tipe kedua dapat memiliki tiga arti yang mungkin: { portrait, landscape, other}. Untuk setiap kombinasi dua kelas sumber, Anda bisa membuat kelas dummy baru, misalnya:

gambar

Sekarang kami memiliki data tag yang sama, tetapi kami mengganti set label benar dengan satu label dummy dengan nilai dari 1 hingga 6. Dalam praktiknya, pendekatan ini memberikan hasil yang baik ketika tidak ada terlalu banyak kemungkinan kombinasi kelas. Jika tidak, lebih banyak data pelatihan perlu digunakan untuk mengimbangi peningkatan set kelas.

Keuntungan utama dari pendekatan yang terakhir ini adalah bahwa label tetap berkorelasi, tidak seperti metode yang dijelaskan di atas, yang memprediksi masing-masing label secara independen satu sama lain. Dalam banyak tugas, korelasi antara label dapat menjadi faktor yang signifikan. Misalnya, bayangkan Anda ingin mengklasifikasikan email sebagai spam dan non- spam, dan pada saat yang sama seperti biasa dan penting. Anda mungkin ingin mengecualikan perkiraan seperti [ spam, penting ].

7.5. Pelatihan ansambel


Algoritma fundamental yang kita bahas pada Bab 3 memiliki keterbatasan. Karena kesederhanaannya, terkadang mereka tidak dapat membuat model yang cukup efektif untuk tugas Anda. Dalam kasus seperti itu, Anda dapat mencoba menggunakan jaringan saraf yang dalam. Namun, dalam praktiknya, jaringan syaraf dalam membutuhkan sejumlah besar data berlabel, yang mungkin tidak Anda miliki. Cara lain untuk meningkatkan efektivitas algoritma pembelajaran sederhana adalah dengan menggunakan pelatihan ensemble .

Pelatihan Ensemble adalah paradigma pelatihan yang didasarkan pada pelatihan tidak hanya satu model super-benar, tetapi sejumlah besar model dengan akurasi rendah dan menggabungkan perkiraan yang diberikan oleh model lemah ini untuk mendapatkan metamodel yang lebih benar .

Model dengan akurasi rendah biasanya dilatih oleh algoritma pembelajaran yang lemah yang tidak mampu melatih model yang kompleks dan karenanya menunjukkan kecepatan tinggi pada tahap pelatihan dan perkiraan. Paling sering, algoritma pembelajaran pohon keputusan digunakan sebagai algoritma yang lemah, yang biasanya berhenti memecah set pelatihan setelah beberapa iterasi. Hasilnya adalah pohon kecil dan tidak terlalu teratur, tetapi, seperti ide pelatihan ansambel mengatakan, jika pohon tidak identik dan setiap pohon setidaknya sedikit lebih baik daripada tebakan acak, kita bisa mendapatkan akurasi tinggi dengan menggabungkan sejumlah besar pohon tersebut.

Untuk mendapatkan perkiraan akhir untuk entri x, perkiraan semua model yang lemah dikombinasikan menggunakan beberapa metode pemungutan suara tertimbang. Bentuk spesifik pembobotan suara tergantung pada algoritme, tetapi esensinya tidak bergantung padanya: jika, secara kolektif, model yang lemah memperkirakan bahwa email tersebut adalah spam, kami memberikan label spam x pada sampel . Dua metode utama untuk ansambel pelatihan adalah meningkatkan dan mengantongi (agregasi). Terjemahan dari istilah meningkatkan dan mengantongi tidak akurat dan tidak biasa.



7.5.1. Meningkatkan dan mengantongi


Metode meningkatkan adalah dengan menggunakan data pelatihan awal dan berulang kali membuat beberapa model menggunakan algoritma yang lemah.

Setiap model baru berbeda dari yang sebelumnya dalam hal itu, membangunnya, algoritma yang lemah mencoba untuk "memperbaiki" kesalahan yang dibuat oleh model sebelumnya. Model ansambel akhir adalah kombinasi dari banyak model iteratif yang lemah ini.

Inti dari mengantongi adalah membuat banyak "salinan" data pelatihan (setiap salinan sedikit berbeda dari yang lain) dan kemudian menerapkan algoritma yang lemah untuk setiap salinan untuk mendapatkan beberapa model yang lemah, dan kemudian menggabungkannya. Algoritma pembelajaran mesin yang digunakan secara luas dan efisien berdasarkan ide mengantongi adalah hutan acak .

7.5.2. Hutan acak


Algoritma bagging "klasik" berfungsi sebagai berikut. Sampel acak B dibuat dari set pelatihan yang ada gambar(untuk setiap b = 1, ..., B) dan gambarmodel gambarpohon keputusan dibangun berdasarkan masing-masing sampel . Untuk mendapatkan sampel gambaruntuk beberapa b, sampel dibuat dengan penggantian . Artinya, pertama sampel kosong dibuat, dan kemudian sampel acak dipilih dari set pelatihan, dan salinannya ditempatkan gambar, sementara sampel itu sendiri tetap dalam set pelatihan asli. Pemilihan data berlanjut sampai kondisi terpenuhi. gambar

Sebagai hasil pelatihan, pohon keputusan B diperoleh . Perkiraan untuk sampel x baru , dalam kasus regresi, ditentukan sebagai rata-rata B perkiraan

gambar

atau dengan suara terbanyak dalam hal klasifikasi.

Hutan acak hanya memiliki satu perbedaan dari pengemasan klasik. Ini menggunakan algoritma pembelajaran pohon yang dimodifikasi yang, dengan setiap pemisahan dalam proses pembelajaran, memeriksa subset fitur secara acak. Hal ini dilakukan untuk menghilangkan korelasi antar pohon: jika satu atau lebih fitur memiliki kemampuan prediksi yang besar, banyak pohon akan memilihnya untuk memisahkan data. Ini akan menyebabkan munculnya di "hutan" sejumlah besar pohon berkorelasi. Tanda korelasi dengan kemampuan prediksi tinggi mencegah akurasi prediksi meningkat. Efisiensi tinggi dari ansambel model dijelaskan oleh fakta bahwa model yang baik kemungkinan besar setuju dengan perkiraan yang sama, dan model yang buruk tidak mungkin setuju dan akan memberikan perkiraan yang berbeda. Korelasi akan membuat model yang buruk lebih mungkin untuk setuju,yang akan mengubah pola pemungutan suara atau mempengaruhi rata-rata.

Hyperparameter yang paling penting untuk penyetelan adalah jumlah pohon B dan ukuran subset acak fitur yang harus dipertimbangkan untuk setiap pemisahan.
Hutan acak adalah salah satu algoritma pembelajaran ensemble yang paling banyak digunakan. Apa yang menentukan efektivitasnya? Alasannya adalah bahwa dengan menggunakan beberapa sampel dari dataset asli, kami mengurangi varians dari model akhir. Ingat bahwa varians rendah berarti kecenderungan lemah untuk berlatih kembali. Pelatihan ulang terjadi ketika model mencoba menjelaskan variasi kecil dalam kumpulan data karena kumpulan data hanyalah contoh kecil dari semua contoh yang mungkin dari fenomena yang kami coba simulasikan. Dalam kasus pendekatan yang gagal untuk pembentukan set pelatihan, beberapa artefak yang tidak diinginkan (tetapi tidak terhindarkan) dapat jatuh ke dalamnya: kebisingan, data yang abnormal dan berlebihan atau tidak cukup representatif. Dengan membuat beberapa sampel acak dengan penggantian set pelatihan, kami mengurangi pengaruh artefak ini.

7.5.3. Peningkatan Gradien


Algoritma pelatihan ensemble lain yang efektif berdasarkan ide boosting adalah gradient boosting. Pertama, pertimbangkan penggunaan peningkatan gradien dalam regresi. Kami akan mulai membangun model regresi yang efektif dengan model konstan gambar(seperti yang kami lakukan di ID3):
gambar

Kemudian ganti label di semua sampel i = 1, ..., N di set pelatihan:

gambar

di mana gambardisebut sisa dan merupakan label baru dari sampel gambar

Sekarang kita menggunakan set pelatihan yang dimodifikasi dengan sisa-sisa bukannya label asli untuk membangun model baru pohon keputusan. gambarModel peningkatan sekarang didefinisikan sebagai di gambarmana α adalah kecepatan belajar (hyperparameter).

Kemudian, kami menghitung ulang residu menggunakan Persamaan 7.2, mengganti label dalam data pelatihan lagi, mengajarkan model baru pohon keputusan, gambarmendefinisikan kembali model dorongan saat gambarkami mengulangi proses, sampai kami menggabungkan jumlah maksimum M pohon yang telah ditentukan .

Mari secara intuitif memahami apa yang terjadi di sini. Dengan menghitung residu, kami menentukan seberapa baik (atau buruk) tujuan dari setiap sampel pelatihan diprediksi oleh model saat ini f. Kemudian kami melatih pohon lain untuk memperbaiki kesalahan model saat ini (itulah sebabnya kami menggunakan sisa daripada label yang sebenarnya) dan menambahkan pohon baru ke model yang ada dengan beberapa bobot α. Akibatnya, setiap pohon baru ditambahkan ke model sebagian memperbaiki kesalahan yang dibuat oleh pohon sebelumnya. Proses berlanjut sampai jumlah maksimum M (hyperparameter lain) dari pohon-pohon tersebut digabungkan.

Sekarang mari kita coba menjawab pertanyaan mengapa algoritma ini disebut gradient boosting. Dalam meningkatkan gradien, kami tidak menghitung gradien, tidak seperti apa yang kami lakukan di bab 4, memecahkan masalah regresi linier. Untuk melihat kesamaan antara peningkatan gradien dan penurunan gradien, ingat mengapa kami menghitung gradien dalam regresi linier: untuk mengetahui arah nilai parameter untuk meminimalkan fungsi biaya MSE. Gradien menunjukkan arah, tetapi tidak menunjukkan seberapa jauh untuk pergi ke arah ini, jadi di setiap iterasi kami mengambil langkah kecil, dan kemudian menentukan arah. Hal yang sama terjadi pada peningkatan gradien, tetapi alih-alih secara langsung menghitung gradien, kami menggunakan estimasi dalam bentuk residual: mereka menunjukkan bagaimana model harus disesuaikan untuk mengurangi kesalahan (residual).

Dalam meningkatkan gradien, tiga hiperparameter utama tersedia untuk penyetelan: jumlah pohon, kecepatan belajar, dan kedalaman pohon. Ketiganya mempengaruhi keakuratan model. Kedalaman pohon juga mempengaruhi kecepatan belajar dan perkiraan: semakin kecil kedalamannya, semakin cepat.

Dapat ditunjukkan bahwa pembelajaran dengan residual mengoptimalkan keseluruhan model f untuk standar kesalahan standar. Di sini Anda dapat melihat perbedaan dari mengantongi: meningkatkan mengurangi bias (atau kurangnya pendidikan) alih-alih varian. Akibatnya, peningkatan dapat dilakukan pelatihan ulang. Namun, dengan menyesuaikan kedalaman dan jumlah pohon, pelatihan ulang sebagian besar dapat dihindari.

Gradient boost sama untuk tugas grading, tetapi langkah-langkahnya sedikit berbeda. Pertimbangkan kasus klasifikasi biner. Misalkan ada pohon keputusan regresi M. Dengan analogi dengan regresi logistik, perkiraan ansambel pohon keputusan dimodelkan menggunakan fungsi sigmoid:

gambar

di mana gambarpohon regresi.

Dan lagi, seperti dalam regresi logistik, ketika mencoba menemukan model untuk memaksimalkan gambar, prinsip kemungkinan maksimum diterapkan. Demikian pula, untuk menghindari limpahan numerik, kami memaksimalkan jumlah dari logaritma kemungkinan, bukan produk dari kemungkinan.

Algoritma dimulai dengan model konstanta awal di gambarmana gambar(Dapat ditunjukkan bahwa inisialisasi tersebut optimal untuk fungsi sigmoid.) Kemudian, pada setiap iterasi m, pohon fm baru ditambahkan ke model. Untuk menemukan pohon terbaik gambarUntuk menemukan pohon terbaik gambar, turunan parsial dari gambarmodel saat ini pertama - tama dihitung untuk setiap i = 1, ..., N:
gambar

di mana f adalah model dari ensemble classifier yang dibangun di atas iterasi sebelumnya m - 1. Untuk menghitung gambar, kita perlu menemukan turunan dari gambarsehubungan dengan f untuk semua i. Perhatikan bahwa gambarturunan sehubungan dengan f dari istilah yang tepat dalam persamaan sebelumnya adalah
gambar

Kemudian, set pelatihan diubah dengan mengganti label asli dari gambarturunan parsial yang sesuai gambar, dan pohon baru dibangun berdasarkan set pelatihan yang dikonversi. gambarSelanjutnya, langkah pembaruan optimal ditentukan gambarsebagai:
gambar

Pada akhir iterasi m, kami memperbarui model ensemble dengan gambarmenambahkan pohon barugambar
gambar

Iterasi berlanjut sampai kondisi m = M terpenuhi, setelah itu pelatihan berhenti dan model ensemble f diperoleh.

Meningkatkan gradien adalah salah satu algoritma pembelajaran mesin yang paling kuat. Bukan hanya karena ia menciptakan model yang sangat akurat, tetapi juga karena ia mampu memproses kumpulan data besar dengan jutaan data dan fitur. Sebagai aturan, ini lebih unggul dalam akurasi dibandingkan dengan hutan acak, tetapi karena sifatnya yang konsisten, ia dapat belajar lebih lambat.

All Articles