Pembelajaran Mesin Adversarial: Cara Menyerang dan Mempertahankan Model ML
Diterbitkan: 2022-03-11Saat ini, model pembelajaran mesin dalam visi komputer digunakan di banyak aplikasi dunia nyata, seperti mobil self-driving, pengenalan wajah, diagnosis kanker, atau bahkan di toko-toko generasi berikutnya untuk melacak produk mana yang diambil pelanggan dari rak sehingga kredit mereka kartu dapat diisi saat pergi.
Peningkatan akurasi sistem pembelajaran mesin ini cukup mengesankan, sehingga secara alami menyebabkan banjir aplikasi yang benar-benar menggunakannya. Meskipun dasar matematis di belakangnya telah dipelajari beberapa dekade yang lalu, kemunculan GPU yang relatif baru memberi para peneliti kekuatan komputasi yang diperlukan untuk bereksperimen dan membangun sistem pembelajaran mesin yang kompleks. Saat ini, model tercanggih untuk visi komputer didasarkan pada jaringan saraf dalam dengan hingga beberapa juta parameter, dan mereka mengandalkan perangkat keras yang tidak tersedia hanya satu dekade lalu.
Pada tahun 2012, Alex Krizhevsky et altri menjadi yang pertama menunjukkan bagaimana mengimplementasikan jaringan konvolusi yang dalam, yang pada saat itu menjadi model tercanggih dalam klasifikasi objek. Sejak itu, banyak peningkatan pada model aslinya telah diterbitkan, masing-masing memberikan peningkatan akurasi (VGG, ResNet, Inception, dll). Akhir-akhir ini, model pembelajaran mesin telah berhasil mencapai akurasi manusia dan bahkan di atas manusia dalam banyak tugas visi komputer.
Beberapa tahun yang lalu, mendapatkan prediksi yang salah dari model pembelajaran mesin dulunya adalah hal yang biasa. Saat ini, ini telah menjadi pengecualian, dan kami mengharapkan mereka untuk bekerja dengan sempurna, terutama ketika mereka digunakan dalam aplikasi dunia nyata.
Sampai saat ini, model pembelajaran mesin biasanya dilatih dan diuji di lingkungan laboratorium , seperti kompetisi pembelajaran mesin dan makalah akademik. Saat ini, karena digunakan dalam skenario dunia nyata, kerentanan keamanan yang berasal dari kesalahan model telah menjadi perhatian nyata.
Ide artikel ini adalah untuk menjelaskan dan mendemonstrasikan bagaimana jaringan saraf dalam yang canggih yang digunakan dalam pengenalan gambar dapat dengan mudah ditipu oleh aktor jahat dan dengan demikian dibuat untuk menghasilkan prediksi yang salah. Setelah kita terbiasa dengan strategi serangan yang biasa, kita akan membahas bagaimana mempertahankan model kita melawan mereka.
Contoh Pembelajaran Mesin Bermusuhan
Mari kita mulai dengan pertanyaan dasar: Apa contoh pembelajaran mesin permusuhan?
Contoh permusuhan adalah input berbahaya yang sengaja dirancang untuk mengelabui model pembelajaran mesin.
Pada artikel ini, kita akan membatasi perhatian kita pada model pembelajaran mesin yang melakukan klasifikasi gambar. Oleh karena itu, contoh permusuhan akan menjadi gambar masukan yang dibuat oleh penyerang yang modelnya tidak dapat diklasifikasikan dengan benar.
Sebagai contoh, mari kita ambil GoogLeNet yang dilatih di ImageNet untuk melakukan klasifikasi gambar sebagai model pembelajaran mesin kita. Di bawah ini Anda memiliki dua gambar panda yang tidak dapat dibedakan dengan mata manusia. Gambar di sebelah kiri adalah salah satu gambar bersih dalam kumpulan data ImageNet, yang digunakan untuk melatih model GoogLeNet. Yang di sebelah kanan adalah sedikit modifikasi dari yang pertama, dibuat dengan menambahkan vektor noise di gambar tengah. Gambar pertama diprediksi oleh model menjadi panda, seperti yang diharapkan. Yang kedua, sebaliknya, diprediksi (dengan keyakinan yang sangat tinggi) menjadi owa.
Kebisingan yang ditambahkan ke gambar pertama tidak acak tetapi keluaran dari pengoptimalan yang cermat oleh penyerang.
Sebagai contoh kedua, kita dapat melihat bagaimana mensintesis contoh permusuhan 3D menggunakan printer 3D. Gambar di bawah menunjukkan tampilan berbeda dari kura-kura 3D yang dicetak oleh penulis dan kesalahan klasifikasi oleh model Google Inception v3.
Bagaimana model mutakhir, yang memiliki akurasi klasifikasi di atas manusia, bisa membuat kesalahan yang tampaknya bodoh?
Sebelum kita menyelidiki kelemahan yang cenderung dimiliki oleh model jaringan saraf, mari kita ingat bahwa kita manusia memiliki serangkaian contoh permusuhan kita sendiri. Lihatlah gambar di bawah ini. Apa yang kamu lihat? Sebuah spiral atau serangkaian lingkaran konsentris?
Apa yang juga diungkapkan oleh contoh-contoh berbeda ini adalah bahwa model pembelajaran mesin dan penglihatan manusia harus menggunakan representasi internal yang sangat berbeda ketika memahami apa yang ada dalam sebuah gambar.
Di bagian selanjutnya, kita akan mengeksplorasi strategi untuk menghasilkan contoh permusuhan.
Cara Menghasilkan Contoh Permusuhan
Mari kita mulai dengan pertanyaan sederhana: Apa contoh permusuhan?
Contoh permusuhan dihasilkan dengan mengambil gambar bersih yang diklasifikasikan model dengan benar, dan menemukan gangguan kecil yang menyebabkan gambar baru salah diklasifikasikan oleh model ML.
Misalkan penyerang memiliki informasi lengkap tentang model yang ingin mereka serang. Ini pada dasarnya berarti bahwa penyerang dapat menghitung fungsi kerugian dari model $J(\theta, X, y)$ di mana $X$ adalah gambar input, $y$ adalah kelas output, dan $\theta$ adalah internal parameter model. Fungsi kerugian ini biasanya merupakan kemungkinan kerugian negatif untuk metode klasifikasi.
Di bawah skenario kotak putih ini, ada beberapa strategi penyerangan, masing-masing mewakili pengorbanan yang berbeda antara biaya komputasi untuk memproduksinya dan tingkat keberhasilannya. Semua metode ini pada dasarnya mencoba untuk memaksimalkan perubahan fungsi kehilangan model sambil menjaga gangguan gambar input kecil. Semakin tinggi dimensi ruang gambar input, semakin mudah untuk menghasilkan contoh permusuhan yang tidak dapat dibedakan dari gambar bersih oleh mata manusia.
Metode L-BFGS
Kami menemukan ${x}'$ contoh permusuhan dengan memecahkan masalah optimisasi kotak-constrained berikut:
di mana $c > 0$ adalah parameter yang juga perlu dipecahkan. Secara intuitif, kami mencari gambar permusuhan ${x}'$ sedemikian rupa sehingga jumlah tertimbang dari distorsi terhadap gambar bersih ( $\left | x - {x}' \right |$ ) dan kerugian sehubungan dengan kelas yang salah adalah seminimal mungkin.
Untuk model kompleks seperti jaringan saraf dalam, masalah optimasi tidak memiliki solusi bentuk tertutup sehingga metode numerik iteratif harus digunakan. Karena itu, metode L-BFGS ini lambat. Namun, tingkat keberhasilannya tinggi.
Tanda Gradien Cepat (FGS)
Dengan metode fast gradient sign (FGS), kita membuat aproksimasi linier dari fungsi loss di sekitar titik awal, yang diberikan oleh vektor citra bersih $X$ dan kelas sebenarnya $y$ .
Di bawah asumsi ini, gradien fungsi kerugian menunjukkan arah di mana kita perlu mengubah vektor input untuk menghasilkan perubahan maksimal dalam kerugian. Untuk menjaga ukuran gangguan tetap kecil, kami hanya mengekstrak tanda gradien, bukan norma sebenarnya, dan menskalakannya dengan faktor epsilon kecil.
Dengan cara ini kami memastikan bahwa perbedaan piksel antara gambar awal dan gambar yang dimodifikasi selalu lebih kecil dari epsilon (perbedaan ini adalah norma L_infinity).
Gradien dapat dihitung secara efisien menggunakan backpropagation. Metode ini adalah salah satu yang tercepat dan komputasi termurah untuk diterapkan. Namun, tingkat keberhasilannya lebih rendah daripada metode yang lebih mahal seperti L-BFGS.
Penulis Adversarial Machine Learning at Scale mengatakan bahwa ia memiliki tingkat keberhasilan antara 63% dan 69% pada prediksi top-1 untuk dataset ImageNet, dengan epsilon antara 2 dan 32. Untuk model linier, seperti regresi logistik, metode tanda gradien cepat tepat. Dalam hal ini, penulis makalah penelitian lain tentang contoh permusuhan melaporkan tingkat keberhasilan 99%.

Tanda Gradien Cepat Iteratif
Perpanjangan yang jelas dari metode sebelumnya adalah menerapkannya beberapa kali dengan alfa ukuran langkah yang lebih kecil, dan memotong panjang langkah total untuk memastikan bahwa distorsi antara gambar bersih dan gambar permusuhan lebih rendah daripada epsilon.
Teknik lain, seperti yang diusulkan dalam makalah Nicholas Carlini adalah perbaikan atas L-BFGS. Mereka juga mahal untuk dihitung, tetapi memiliki tingkat keberhasilan yang tinggi.
Namun, di sebagian besar situasi dunia nyata, penyerang tidak mengetahui fungsi kerugian dari model yang ditargetkan. Dalam hal ini, penyerang harus menggunakan strategi kotak hitam.
Serangan kotak hitam
Para peneliti telah berulang kali mengamati bahwa contoh permusuhan mentransfer cukup baik antara model, yang berarti bahwa mereka dapat dirancang untuk model target A, tetapi akhirnya menjadi efektif terhadap model lain yang dilatih pada dataset serupa.
Inilah yang disebut properti transferabilitas dari contoh permusuhan, yang dapat digunakan penyerang untuk keuntungan mereka ketika mereka tidak memiliki akses ke informasi lengkap tentang model. Penyerang dapat menghasilkan contoh permusuhan dengan mengikuti langkah-langkah berikut:
- Kueri model yang ditargetkan dengan input $X_i$ untuk $i=1…n$ dan simpan outputnya $y_i$ .
- Dengan data pelatihan $(X_i, y_i)$ , buat model lain, yang disebut model pengganti.
- Gunakan salah satu algoritme kotak putih yang ditunjukkan di atas untuk menghasilkan contoh permusuhan untuk model pengganti. Banyak dari mereka akan berhasil mentransfer dan menjadi contoh permusuhan untuk model target juga.
Penerapan strategi ini yang berhasil terhadap model pembelajaran Mesin komersial disajikan dalam makalah Computer Vision Foundation ini.
Pertahanan Terhadap Contoh Permusuhan
Penyerang membuat serangan, mengeksploitasi semua informasi yang mereka miliki tentang model. Jelas, semakin sedikit informasi yang dihasilkan model pada waktu prediksi, semakin sulit bagi penyerang untuk membuat serangan yang berhasil.
Ukuran mudah pertama untuk melindungi model klasifikasi Anda dalam lingkungan produksi adalah dengan menghindari menampilkan skor kepercayaan untuk setiap kelas yang diprediksi. Sebaliknya, model seharusnya hanya menyediakan $N$ teratas (misalnya, 5) kelas yang paling mungkin. Ketika skor kepercayaan diberikan kepada pengguna akhir, penyerang jahat dapat menggunakannya untuk memperkirakan secara numerik gradien fungsi kerugian. Dengan cara ini, penyerang dapat membuat serangan kotak putih menggunakan, misalnya, metode tanda gradien cepat. Dalam makalah Computer Vision Foundation yang kami kutip sebelumnya, penulis menunjukkan bagaimana melakukan ini terhadap model pembelajaran mesin komersial.
Mari kita lihat dua pertahanan yang telah diusulkan dalam literatur.
Distilasi Defensif
Metode ini mencoba menghasilkan model baru yang gradiennya jauh lebih kecil daripada model asli yang tidak dipertahankan. Jika gradien sangat kecil, teknik seperti FGS atau Iterative FGS tidak lagi berguna, karena penyerang akan membutuhkan distorsi besar pada gambar input untuk mencapai perubahan yang cukup dalam fungsi kehilangan.
Distilasi defensif memperkenalkan parameter baru $T$ , yang disebut temperatur, ke lapisan softmax terakhir jaringan:
Perhatikan bahwa, untuk T=1, kita memiliki fungsi softmax biasa. Semakin tinggi nilai $T$ , semakin kecil gradien kerugian sehubungan dengan gambar input.
Destilasi defensif berlangsung sebagai berikut:
- Latih jaringan, yang disebut jaringan guru, dengan suhu $T » 1$ .
- Gunakan jaringan pengajar terlatih untuk menghasilkan label lunak untuk setiap gambar dalam set pelatihan. Soft-label untuk sebuah gambar adalah himpunan probabilitas yang diberikan model untuk setiap kelas. Sebagai contoh, jika gambar keluaran adalah burung beo, model guru mungkin mengeluarkan label lunak seperti (90% burung beo, 10% papagayo).
- Latih jaringan kedua, jaringan suling , pada label lunak, menggunakan lagi suhu $T$ . Pelatihan dengan soft-label adalah teknik yang mengurangi overfitting dan meningkatkan akurasi di luar sampel jaringan suling.
- Terakhir, pada waktu prediksi, jalankan jaringan suling dengan suhu $T=1$ .
Distilasi defensif berhasil melindungi jaringan terhadap serangkaian serangan yang dicoba dalam Distilasi sebagai Pertahanan terhadap Gangguan Bermusuhan terhadap Jaringan Saraf Dalam .
Sayangnya, makalah selanjutnya oleh peneliti University of California, Berkeley menyajikan serangkaian metode serangan baru yang mengalahkan distilasi defensif. Serangan-serangan ini merupakan perbaikan atas metode L-BFGS yang membuktikan bahwa distilasi defensif bukanlah solusi umum terhadap contoh-contoh permusuhan.
Pelatihan Bermusuhan
Saat ini, pelatihan permusuhan adalah strategi pertahanan yang paling efektif. Contoh permusuhan dihasilkan dan digunakan saat melatih model. Secara intuitif, jika model melihat contoh permusuhan selama pelatihan, kinerjanya pada waktu prediksi akan lebih baik untuk contoh permusuhan yang dihasilkan dengan cara yang sama.
Idealnya, kami ingin menggunakan metode serangan yang diketahui untuk menghasilkan contoh permusuhan selama pelatihan. Namun, untuk kumpulan data besar dengan dimensi tinggi (seperti ImageNet) metode serangan kuat seperti L-BFGS dan peningkatan yang dijelaskan dalam makalah Berkeley terlalu mahal secara komputasi. Dalam praktiknya, kita hanya dapat menggunakan metode cepat seperti FGS atau FGS iteratif dapat digunakan.
Pelatihan permusuhan menggunakan fungsi kerugian yang dimodifikasi yang merupakan jumlah tertimbang dari fungsi kerugian biasa pada contoh bersih dan fungsi kerugian dari contoh permusuhan.
Selama pelatihan, untuk setiap kumpulan gambar bersih $m$ kami menghasilkan gambar permusuhan $k$ menggunakan status jaringan saat ini. Kami meneruskan menyebarkan jaringan baik untuk contoh bersih dan permusuhan dan menghitung kerugian dengan rumus di atas.
Perbaikan algoritma ini disajikan dalam makalah konferensi ini disebut ensemble adversarial training. Alih-alih menggunakan jaringan saat ini untuk menghasilkan contoh permusuhan, beberapa model pra-latihan digunakan untuk menghasilkan contoh permusuhan. Di ImageNet, metode ini meningkatkan ketahanan jaringan terhadap serangan kotak hitam. Defense ini merupakan pemenang putaran 1 kompetisi NIPS 2017 tentang Defense against Adversarial Attacks .
Kesimpulan dan Langkah Selanjutnya
Mulai hari ini, menyerang model pembelajaran mesin lebih mudah daripada mempertahankannya. Model-model canggih yang digunakan dalam aplikasi dunia nyata mudah tertipu oleh contoh-contoh permusuhan jika tidak ada strategi pertahanan yang digunakan, membuka pintu bagi masalah keamanan yang berpotensi kritis. Strategi pertahanan yang paling dapat diandalkan adalah pelatihan permusuhan, di mana contoh permusuhan dihasilkan dan ditambahkan ke contoh bersih pada waktu pelatihan.
Jika Anda ingin mengevaluasi kekokohan model klasifikasi gambar Anda terhadap serangan yang berbeda, saya sarankan Anda menggunakan perpustakaan Python sumber terbuka smarthans. Banyak metode serangan yang dapat diuji terhadap model Anda, termasuk yang disebutkan dalam artikel ini. Anda juga dapat menggunakan perpustakaan ini untuk melakukan pelatihan permusuhan model Anda dan meningkatkan ketahanannya terhadap contoh permusuhan.
Menemukan serangan baru dan strategi pertahanan yang lebih baik adalah area penelitian yang aktif. Pekerjaan yang lebih teoretis dan empiris diperlukan untuk membuat model pembelajaran mesin lebih kuat dan aman dalam aplikasi dunia nyata.
Saya mendorong pembaca untuk bereksperimen dengan teknik ini dan mempublikasikan hasil baru yang menarik. Selain itu, setiap umpan balik mengenai artikel ini sangat diterima oleh penulis.
- Logika Suara dan Model AI Monotonik
- Banyaknya Aplikasi Gradient Descent di TensorFlow