Bagian II – Menuju AI

Bagian II – Menuju AI

Pengarang: David Schiff

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

Pada artikel sebelumnya, saya membahas dasar-dasar mekanisme Attention, dan secara umum, saya membahas blok transformator. Di bagian seri ini, saya ingin membahas bagaimana LogBERT melatih dan bagaimana kita dapat menggunakannya untuk mendeteksi anomali dalam urutan log.

Mari masuk ke detail kecil LogBERT.

Dalam makalah (tautan: https://arxiv.org/pdf/2103.04475.pdf) urutan log didefinisikan sebagai:

Dimana S adalah urutan kunci (kata) dalam urutan log. Perhatikan bagaimana kunci log kita ditandai dengan superskrip j untuk menunjukkan urutan tempatnya dan subskrip di atas k untuk menunjukkan indeks dalam rangkaian kata.

Seperti biasa, saat melatih transformator, kami ingin menambahkan token untuk menandai awal urutan, dan token akan menjadi “DIST” seperti yang disebutkan dalam makalah. Token khusus lainnya yang akan kami tambahkan adalah token “MASK”. Topeng topeng akan digunakan untuk menutupi kata-kata dalam kalimat.

Jika Anda melihat bagian terakhir, Anda akan mengingat contoh lari kami:

Memproses urutan log kami sebelumnya

Seperti yang Anda lihat, urutan log kami diproses sebelumnya untuk memuat token khusus yang berbeda.

DIST — Awal kalimat

MASKER — Menutupi kunci dalam urutan

EOS — Akhir kalimat (Meskipun tidak disebutkan dalam makalah, ini digunakan dalam kode di GitHub.)

Sebelum saya menjelaskan semuanya tentang token khusus, saya ingin meninjau fase pelatihan LogBERT.

Ingat bagian-bagian berbeda dari arsitektur LogBERT:

Perhatian menggunakan matriks Q, K, dan V
MultiHead Attention menggabungkan berbagai Attention head

Fungsi-fungsi di atas hanyalah deskripsi matematis dari MultiHead Attention:

Dan akhirnya, semuanya bermuara pada deskripsi matematis blok transformator:

Yang merupakan keseluruhan blok transformator ini:

Indah, sekarang kita memiliki semuanya terikat bersama. Biasanya, transformator memiliki beberapa lapisan transformator, yang berarti kita dapat menetapkan fungsi transformator umum yang hanya merupakan urutan blok transformator. Hal ini dijelaskan dalam makalah sebagai:

Dimana h adalah output dari fungsi Transformer, output ini pada dasarnya hanya sebuah vektor yang mengkodekan semua informasi tentang urutan log yang didefinisikan sebagai X.

Saya pikir gambar di atas merangkum semuanya. Hanya arsitektur LogBERT umum. Perhatikan bagaimana lapisan keluaran adalah ukuran kosakata. Seperti biasa dalam kasus klasifikasi, khususnya dalam kasus kami, kami perlu mengklasifikasikan kata yang tercakup dalam token MASK. Ini membawa saya ke fungsi kerugian dari model LogBERT terakhir.

Seperti disebutkan sebelumnya, semua urutan log diproses terlebih dahulu untuk mengandung kata bertopeng. Model akan mencoba memprediksi kata yang disamarkan. Ini adalah tugas yang diawasi sendiri yang harus diselesaikan oleh model. Fungsi kerugian untuk tugas ini adalah:

Di mana y adalah kata sebenarnya di bawah topeng dan y hat adalah probabilitas yang ditetapkan untuk kata sebenarnya di bawah topeng. Kita dapat melihat bahwa kerugian pada dasarnya adalah fungsi kerugian lintas-entropi kategoris di mana kategori sebenarnya adalah kata-kata. Perhatikan bagaimana penjumlahan di atas N dan M. N menjadi jumlah urutan log dan M menjadi jumlah topeng yang dipilih dalam kalimat.

Untuk setiap urutan log, kami memilih kata acak untuk disamarkan dengan probabilitas 0,15. Kami sebenarnya memilih beberapa kata untuk disembunyikan, dan untuk setiap log, kami menghitung total kerugian atas prediksi topeng dalam kalimat. Kerugian akhir dijumlahkan atas setiap urutan dan dibagi dengan jumlah urutan log.

Tugas lain (fungsi kerugian) yang perlu diminimalkan LogBERT adalah fungsi kerugian Volume Of The HyperSphere.

Fungsi kerugian ini menggunakan h — seperti yang disebutkan di atas. h adalah representasi dari urutan log (khususnya h-dist), dan tujuan dari fungsi kerugian ini adalah untuk meminimalkan jarak antara representasi setiap log dan pusatnya. Pusat diperbarui dengan setiap zaman dan dihitung sebagai representasi log keseluruhan rata-rata.

Akhirnya, kedua fungsi kerugian digunakan untuk memperbarui bobot model. Fungsi kerugian akhir terdiri dari jumlah tertimbang dari kedua fungsi kerugian.

Sekarang, bagaimana kita menggunakan LogBERT untuk menemukan log anomali? Seperti yang diusulkan dalam makalah, kami membahas urutan log dan menghitung prediksi untuk setiap kata bertopeng. Kami mendefinisikan hyperparameter g yang merupakan kata-kata paling mungkin g teratas yang terletak di luar topeng. Jika kata sebenarnya tidak ada di g kata teratas, kami menghitung kata itu sebagai anomali. Sekarang, kami mendefinisikan r, hyperparameter lain, sebagai ambang batas kami untuk menghitung log sebagai anomali atau tidak. Jika terdapat lebih dari r kata anomali, urutan log didefinisikan sebagai log anomali.

Saya ingin mengusulkan metode lain untuk menemukan log anomali. Cukup gunakan fungsi kerugian akhir dan tentukan ambang batas z yang jika skor log lebih tinggi dari z itu adalah log anomali.

Itu saja, saya harap Anda menikmati bacaan Anda. Saya sangat merekomendasikan membaca di kertas asli dan melompat ke GitHub untuk melihat kode itu sendiri.

LogBERT Explained In Depth: Part II awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Jeffrey Hayes