Sejak itu, rangkaian saraf dalam (DNN) telah mencapai kejayaan besar dalam kedua-dua industri dan akademik, terutamanya dalam tugas penglihatan komputer. Kejayaan pembelajaran mendalam sebahagian besarnya disebabkan oleh seni bina berskala untuk pengekodan data dengan berbilion parameter Matlamat latihannya adalah untuk memodelkan hubungan antara input dan output pada set data latihan yang sedia ada Prestasi sangat bergantung pada kerumitan rangkaian dan kuantiti dan kualiti data latihan berlabel.
Berbanding dengan algoritma tradisional dalam bidang penglihatan komputer, kebanyakan model berasaskan DNN mempunyai keupayaan generalisasi yang kukuh disebabkan oleh terlebih parameter Keupayaan generalisasi ini kepada model dicerminkan dalam fakta bahawa model boleh memberikan hasil ramalan yang lebih baik untuk semua input data kepada masalah tertentu, sama ada data latihan, data ujian atau data yang tidak diketahui kepunyaan masalah tersebut.
Dalam konteks pembelajaran mendalam semasa, untuk meningkatkan kesan ramalan algoritma perniagaan, jurutera algoritma selalunya mempunyai dua penyelesaian:
Gunakan rangkaian berparameter yang lebih kompleks Pembelajaran ini keupayaan adalah sangat kuat, tetapi ia memerlukan banyak sumber pengkomputeran untuk melatih, dan kelajuan inferens adalah perlahan.
Model bersepadu menyepadukan banyak model dengan kesan yang lebih lemah, biasanya termasuk penyepaduan parameter dan penyepaduan hasil.
Kedua-dua penyelesaian ini boleh meningkatkan prestasi algoritma sedia ada dengan ketara, tetapi kedua-duanya meningkatkan skala model, mewujudkan beban pengiraan yang lebih besar dan memerlukan sumber pengkomputeran dan storan yang besar.
Dalam kerja, tujuan utama pelbagai model algoritma adalah untuk melayan aplikasi tertentu. Sama seperti dalam jual beli kita perlu mengawal pendapatan dan perbelanjaan kita. Dalam aplikasi industri, selain memerlukan model mempunyai ramalan yang baik, penggunaan sumber pengkomputeran juga mesti dikawal dengan ketat Anda tidak boleh hanya mempertimbangkan keputusan tanpa mengambil kira kecekapan. Dalam bidang penglihatan komputer di mana jumlah pengekodan data input adalah tinggi, sumber pengkomputeran adalah lebih terhad, dan penghunian sumber algoritma kawalan adalah lebih penting.
Secara umumnya, model yang lebih besar mempunyai hasil ramalan yang lebih baik, tetapi masa latihan yang panjang dan kelajuan inferens yang perlahan menyukarkan untuk menggunakan model dalam masa nyata. Terutamanya pada peranti dengan sumber pengkomputeran terhad, seperti pengawasan video, kereta pandu sendiri dan persekitaran awan berdaya tinggi, kelajuan tindak balas jelas tidak mencukupi. Walaupun model yang lebih kecil mempunyai kelajuan inferens yang lebih pantas, disebabkan parameter yang tidak mencukupi, kesan inferens dan prestasi generalisasi mungkin tidak begitu baik. Cara menimbang model berskala besar dan model berskala kecil sentiasa menjadi topik hangat Kebanyakan penyelesaian semasa adalah untuk memilih model DNN dengan saiz yang sesuai berdasarkan prestasi peranti terminal dalam persekitaran penggunaan.
Bagaimana jika kita ingin mempunyai model yang lebih kecil yang boleh mencapai kesan yang sama atau hampir seperti model besar sambil mengekalkan kelajuan inferens yang pantas? Dalam pembelajaran mesin, kita sering menganggap bahawa terdapat potensi hubungan fungsi pemetaan antara input dan output Mempelajari model baharu dari awal ialah fungsi pemetaan yang tidak diketahui antara data input dan label yang sepadan. Atas alasan bahawa data input kekal tidak berubah, melatih model kecil dari awal adalah sukar untuk mendekati kesan model besar dari sudut empirikal. Untuk meningkatkan prestasi algoritma model kecil, secara amnya cara yang paling berkesan adalah dengan melabelkan lebih banyak data input, iaitu, untuk menyediakan lebih banyak maklumat penyeliaan, yang boleh menjadikan fungsi pemetaan yang dipelajari lebih teguh dan berfungsi dengan lebih baik. Untuk memberikan dua contoh, dalam bidang penglihatan komputer, tugas pembahagian contoh boleh meningkatkan kesan pengesanan kotak sempadan sasaran dengan menyediakan maklumat topeng tambahan tugas pembelajaran pemindahan boleh meningkatkan tugas baharu dengan ketara dengan menyediakan model terlatih pada yang lebih besar; set data kesan ramalan. Oleh itumenyediakan lebih banyak maklumat penyeliaan mungkin menjadi kunci untuk memendekkan jurang antara model berskala kecil dan model berskala besar.
Menurut apa yang diperkatakan sebelum ini, mendapatkan lebih banyak maklumat penyeliaan bermakna melabelkan lebih banyak data latihan, yang selalunya memerlukan kos yang besar. Jadi adakah terdapat kaedah kos rendah dan cekap untuk mendapatkan maklumat penyeliaan? Artikel 2006 [1] menunjukkan bahawa model baru boleh dibuat untuk menghampiri model asal (model adalah fungsi). Kerana fungsi model asal diketahui, lebih banyak maklumat penyeliaan ditambah secara semula jadi apabila melatih model baharu, yang jelas lebih boleh dilaksanakan. Memikirkan lebih lanjut, maklumat penyeliaan yang dibawa oleh model asal mungkin mengandungi dimensi pengetahuan yang berbeza ini mungkin tidak ditangkap oleh model baharu itu sendiri, ini penting untuk model baharu model juga merupakan sejenis pembelajaran "cross-domain".Pada tahun 2015, Hinton mengikuti idea anggaran dalam makalah "Menyuling Pengetahuan dalam Rangkaian Neural" [2] dan mula-mula mencadangkan konsep "Penyulingan Pengetahuan (KD)": ia boleh dilatih terlebih dahulu Dengan membina model yang besar dan berkuasa dan kemudian memindahkan pengetahuan yang terkandung di dalamnya kepada model kecil, tujuan "mengekalkan kelajuan penaakulan pantas model kecil sambil mencapai kesan yang setara dengan atau hampir dengan model besar " tercapai. Model besar yang dilatih dahulu boleh dipanggil model guru, dan model kecil yang dilatih kemudian dipanggil model pelajar Keseluruhan proses latihan boleh dibandingkan dengan "pembelajaran guru-pelajar." Pada tahun-tahun berikutnya, sejumlah besar penyulingan pengetahuan dan kerja pembelajaran guru-pelajar muncul, menyediakan industri dengan lebih banyak penyelesaian baharu. Pada masa ini, KD telah digunakan secara meluas dalam dua bidang berbeza: pemampatan model dan pemindahan pengetahuan [3].
Penyulingan Pengetahuan ialah kaedah berasaskan "guru- pelajar Kaedah pemampatan model berdasarkan idea "rangkaian" digunakan secara meluas dalam industri kerana kesederhanaan dan keberkesanannya. Tujuannya adalah untuk mengekstrak pengetahuan yang terkandung dalam model besar terlatih - Distill (Distill) - ke dalam model kecil yang lain. Jadi bagaimana untuk memindahkan pengetahuan atau keupayaan generalisasi model besar kepada model kecil? Kertas KD menyediakan vektor kebarangkalian output sampel model besar kepada model kecil sebagai sasaran lembut, supaya output model kecil cuba bergantung pada sasaran lembut ini (asalnya ia bergantung pada pengekodan satu panas) untuk anggaran pembelajaran model besar tingkah laku.
Dalam proses latihan label keras tradisional, semua label negatif dilayan secara seragam, tetapi kaedah ini memisahkan hubungan antara kategori. Sebagai contoh, jika anda ingin mengenali digit tulisan tangan, sesetengah gambar dengan label yang sama seperti "3" mungkin kelihatan lebih seperti "8", dan sesetengahnya mungkin kelihatan lebih seperti "2". Label keras tidak dapat membezakan maklumat ini, tetapi dengan baik- model besar terlatih boleh memberikan. Output lapisan softmax model besar, sebagai tambahan kepada contoh positif, label negatif juga mengandungi banyak maklumat Sebagai contoh, kebarangkalian yang sepadan dengan beberapa label negatif adalah lebih besar daripada label negatif yang lain. Tingkah laku pembelajaran anggaran membolehkan setiap sampel membawa lebih banyak maklumat kepada rangkaian pelajar daripada kaedah latihan tradisional.
Oleh itu, pengarang mengubah suai fungsi kehilangan semasa melatih rangkaian pelajar, membenarkan model kecil untuk menyesuaikan taburan kebarangkalian output model besar sambil menyesuaikan label kebenaran asas data latihan. Kaedah ini dipanggil Latihan Penyulingan Pengetahuan (Latihan KD). Sampel latihan yang digunakan dalam proses penyulingan pengetahuan boleh sama seperti yang digunakan untuk melatih model besar, atau set Pemindahan bebas boleh didapati.
Penjelasan terperinci kaedah
Semasa latihan, pengetahuan yang dipelajari oleh model guru terlebih dahulu disuling kepada model kecil Khususnya, untuk sampel X, lapisan kedua dari model besar mula-mula dibahagikan dengan suhu T, dan kemudian sasaran lembut diramalkan melalui. softmax. Begitu juga untuk model Lapisan terakhir dibahagikan dengan suhu yang sama T, dan kemudian meramalkan hasil melalui softmax, dan kemudian menggunakan entropi silang hasil ini dan sasaran lembut sebagai sebahagian daripada jumlah kehilangan latihan. Kemudian entropi silang keluaran biasa model kecil dan label nilai sebenar (sasaran keras) digunakan sebagai bahagian lain daripada jumlah kehilangan latihan. Jumlah kerugian menimbang kedua-dua kerugian bersama-sama sebagai kerugian terakhir untuk melatih model kecil.
Apabila model kecil dilatih dan perlu diramal, suhu T tidak diperlukan lagi, dan ia boleh dikeluarkan terus mengikut softmax konvensional.
Kertas FitNet memperkenalkan pembayang peringkat pertengahan semasa penyulingan untuk membimbing latihan model pelajar. Gunakan model guru yang luas dan cetek untuk melatih model pelajar yang sempit dan mendalam. Apabila melaksanakan bimbingan pembayang, adalah dicadangkan untuk menggunakan lapisan untuk memadankan bentuk keluaran lapisan pembayang dan lapisan berpandu Ini sering dipanggil lapisan penyesuaian dalam kerja akan datang.
Secara amnya, semasa melakukan penyulingan pengetahuan, bukan sahaja output logit model guru digunakan, malah peta ciri lapisan tengah model guru digunakan sebagai maklumat penyeliaan. Apa yang boleh dibayangkan ialah terlalu sukar untuk model kecil untuk meniru model besar secara langsung di hujung keluaran (semakin dalam model, semakin sukar untuk dilatih, dan agak memenatkan untuk menghantar lapisan terakhir isyarat pengawasan kepada hadapan). Adalah lebih baik untuk menambah beberapa isyarat penyeliaan di tengah, supaya model dapat mempelajari fungsi pemetaan yang lebih sukar lapisan demi lapisan semasa latihan, dan bukannya secara langsung mempelajari fungsi pemetaan yang paling sukar, sebagai tambahan, panduan petunjuk mempercepatkan penumpuan daripada model pelajar. Mencari minima tempatan yang lebih baik pada masalah bukan cembung membolehkan rangkaian pelajar menjadi lebih mendalam dan berlatih dengan lebih pantas. Rasanya tujuan kami adalah untuk membenarkan pelajar membuat soalan peperiksaan kemasukan kolej, jadi kami mula-mula mengajar mereka soalan sekolah rendah (mula-mula biarkan model kecil menggunakan separuh pertama model untuk belajar mengekstrak ciri asas imej), dan kemudian kembali ke tujuan asal , untuk mempelajari soalan peperiksaan kemasukan kolej (gunakan KD untuk melaraskan semua parameter model kecil).
Artikel ini ialah nenek moyang peta ciri perantaraan penyulingan yang dicadangkan Algoritma yang dicadangkan adalah sangat mudah, tetapi ideanya adalah hebat.
Kaedah khusus FitNets ialah:
Dalam latihan sebenar, ia sering digunakan bersama dengan Latihan KD dalam bahagian sebelumnya, menggunakan kaedah dua peringkat latihan: pertama gunakan latihan pembayang untuk melatih parameter separuh pertama model kecil, dan kemudian gunakan Latihan KD untuk melatih keseluruhan parameter. Memandangkan lebih banyak maklumat penyeliaan digunakan dalam proses penyulingan, kaedah penyulingan berdasarkan peta ciri perantaraan berprestasi lebih baik daripada kaedah penyulingan berdasarkan logit hasil, tetapi masa latihan lebih lama.
Penyulingan pengetahuan sangat berkesan untuk memindahkan pengetahuan daripada ensembel atau daripada model besar yang sangat teratur kepada model yang lebih kecil. Penyulingan berfungsi dengan baik walaupun data untuk mana-mana satu atau lebih kelas tiada daripada set data migrasi yang digunakan untuk melatih model penyulingan. Selepas KD dan FitNet klasik dicadangkan, pelbagai kaedah penyulingan muncul. Pada masa hadapan, kami juga berharap dapat membuat penerokaan lanjut dalam bidang pemampatan model dan pemindahan pengetahuan.
Ma Jialiang ialah jurutera algoritma penglihatan komputer kanan di NetEase Yidun Beliau bertanggungjawab terutamanya untuk penyelidikan, pembangunan, pengoptimuman dan inovasi algoritma penglihatan komputer dalam bidang kandungan. keselamatan.
Atas ialah kandungan terperinci Model besar memberi suapan kepada model kecil dengan tepat, dan penyulingan pengetahuan membantu meningkatkan prestasi algoritma AI.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!