Home | Ghif's Research Notes
1. Neural Factorization Machines for Sparse Predictive Analytics
Source: https://arxiv.org/pdf/1708.05027.pdf
Authors: Xiangnan He, Tat-Seng Chua
Topics: recommender system, neural networks
1. Deep Learning: A Critical Appraisal
1. Adversarial Examples Are Not Bugs, They Are Features
1. Hierarchical Attention Networks for Document Classification
1. How to train your MAML
1. Direct speech-to-speech translation with a sequence-to-sequence model
1. The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks
Paper Asli: https://openreview.net/pdf?id=rJl-b3RcF7
Paper ini mendapatkan best paper award pada konferensi ICLR 2019, yang merupakan salah satu konferensi tingkat atas di bidang deep learning.
Deep neural networks (DNN) yang memiliki performa terbaik biasanya memiliki arsitektur model yang besar dan mendalam, yang dilatih dengan sejumlah data yang masif.
Pada domain computer vision, beberapa arsitektur model populer seperti AlexNet memiliki jumlah parameter sebesar 61 juta dan VGG-16 memiliki jumlah parameter 138 juta.
Arsitektur model yang besar memiliki efek samping yaitu penambahan kompleksitas waktu dan memori baik dari fase pelatihan maupun fase inferensi.
Jika kita memiliki model DNN yang jauh lebih kecil dengan performa akurasi yang serupa dengan model yang besar, itu akan sangat banyak manfaatnya dari sisi aplikasi.
DNN ukuran yang kecil akan lebih mudah untuk diimplementasi pada perangkat mobile atau IoT yang notabene memiliki batasan komputasi dan memori dibandingkan komputer normal.
Di beberapa tahun terakhir ada berbagai percobaan untuk memangkas arsitektur model DNN.
Sebagai contoh, (Han et al. NIPS 2015) membuat algoritma yang berhasil memangkas DNN hingga ~90% lebih kecil dari model aslinya tanpa mengurangi performa akurasi saat inferensi – menurunkan parameter AlexNet ke 6.7 juta dan VGG-16 ke 10.3 juta.
Namun demikian, metode tersebut, yang selanjutnya dikenal dengan deep compression, sebatas memangkas model DNN besar yang sebelumnya sudah dilatih, belum menangani bagaimana memangkas DNN pada saat pelatihan.
Pemangkasan pada saat pelatihan akan secara natural meningkatkan efisiensi proses pelatihan.
Paper ini mengusulkan sebuah algoritma untuk memangkas arsitektur DNN dari saat proses pelatihan.
Algoritma tersebut dilatarbelakangi oleh sebuah hipotesis yang penulisnya namakan sebagai Lottery Ticket Hypothesis:
Sebuah DNN yang parameternya diinisialisasi secara random memiliki sebuah sub-network yang parameternya diinisialisasi sedemikian rupa sehingga apabila sub-network tersebut dilatih, performa akurasinya akan serupa dengan DNN yang besar dengan jumlah iterasi pelatihan yang serupa.
Algoritma yang diusulkan akan menghasilkan sebuah sub-network yang disebut dengan winning ticket, yang secara umum terdiri dari 4 tahapan:
- Inisialisi parameter DNN secara acak: \(f(x; \theta_0)\), dimana \(\theta_0 \sim \mathcal{D}_\theta\).
- Latih DNN sebanyak iterasi sejumlah \(j\), menghasilkan parameter \(\theta_j\).
- Pangkas \(p\%\) dari parameter \(\theta_j\) sehingga menghasilkan mask \(m\).
- Kembalikan nilai parameter yang tersisa ke nilai pada \(\theta_0\), yang menghasilkan winning ticket \(f(x; m \odot \theta_0)\).
Berbagai hasil eksperimen yang dilaporkan pada paper tersebut menunjukkan bahwa hasilnya mendukung lottery ticket hypothesis dan secara konsisten mampu menghasilkan sub-network yang berukuran ~90% lebih kecil dibandingkan model aslinya melalui proses pelatihan pada dataset MNIST dan CIFAR10.
Model dengan parameter yang jauh lebih sedikit mengakibatkan proses inferensi menjadi lebih efisien.
Ada sebuah fenomena yang menarik dari kemampuan otak manusia dalam mempelajari hal baru. Otak kita dapat belajar berkesinambungan akan kemampuan yang baru tanpa (benar-benar) melupakan hal-hal yang telah dipelajari sebelumnya. Lebih hebatnya lagi, kita dapat mentransfer kemampuan yang sudah ada sehingga lebih mudah untuk mempelajari hal-hal baru yang berkaitan.
Salah satu contoh fenomena ini adalah proses belajar berbahasa. Bayangkan Anda baru mulai belajar, misalnya, bahasa Spanyol. Di fase awal Anda mempelajari huruf-huruf / unsur-unsur terkecil dari bahasa Spanyol. Kemudian Anda menghafal berbagai kosa kata. Selanjutnya Anda belajar menyusun frasa dan kalimat dari kosa kota tersebut.
Gambar 1. Sumber: http://netprofitgrowth.com/business-learning/
Kesemuanya itu berkesinambungan: ketika belajar merangkai kalimat, Anda tidak melupakan bagaimana caranya menyusun frasa dan arti dari kosa kata yang sudah dihafal. Sebaliknya, justru yang sudah Anda pelajari sebelumnya, yaitu menyusun frasa, akan sangat membantu kefasihan merangkai kalimat. Bandingkan jika Anda langsung melompat untuk mempelajari kalimat tanpa tahu frasa dan kosa kata.
Sekarang bayangkan Anda sudah mahir berbahasa Spanyol. Selanjutnya Anda ingin mempelajari bahasa Italia. Dikarenakan bahasa Spanyol dan Italia cukup dekat, Anda akan merasa bahasa Italia relatif lebih mudah dipahami, dibandingkan orang lain yang langsung belajar bahasa Italia tanpa tahu bahasa Spanyol. Disaat yang bersamaan Anda tidak lupa dengan berbahasa Spanyol selagi belajar bahasa Italia.
Kemampuan otak manusia yang luar biasa ini dikenal dengan istilah continual learning (CL) atau lifelong learning atau incremental learning. Studi neurosains mengindikasikan bahwa continual learning benar-benar terjadi secara biologis pada otak mamalia [Cichon & Gan, 2015].
Inilah salah satu aspek yang masih belum dimiliki oleh teknik kecerdasan buatan atau pemelajaran mesin saat ini. Deep neural networks yang sangat sukses dalam 1 dekade terakhir di berbagai aplikasi pun belum memiliki kemampuan ini. Algoritma pemelajaran konvensional pada deep neural networks mengalami apa yang disebut sebagai catastrophic forgetting [McCloskey and Cohen 1989, Goodfellow et al. 2014]: ketika algoritma pembelajaran menerima data yang baru, deep neural networks akan dengan cepat melupakan hal yang lama.
Continual Learning pada Kecerdasan Buatan
Saat ini Continual Learning (CL) sudah mulai mendapat perhatian serius oleh komunitas kecerdasan buatan dan pemelajaran mesin. DARPA (Defense Advanced Research Projects Agency) meluncurkan proyek riset khusus bernama Lifelong Learning Machines (L2M) untuk mengembangkan agen kecerdasan buatan yang lebih mumpuni.
Dalam beberapa tahun terakhir, Neural Information Processing Systems (NeurIPS), yang merupakan salah satu konferensi yang paling bereputasi dan berpengaruh di bidang pembelajaran mesin, mengadakan workshop khusus dengan tema Continual Learning.
Diberikan dua buah fungsi distribusi probabilitas diskrit $P(x)$ dan $Q(x)$, bagaimana cara mengukur kedekatan diantara kedua fungsi tersebut? Salah satu alat ukur yang populer digunakan adalah Kullback-Leibler (KL) divergence:
\[\begin{equation}
\label{eq:kl}
\displaystyle \mathrm{KL}( P \| Q) = \sum_x P(x) \log \frac{ P(x) }{ Q(x) }
\end{equation}\]
Fungsi divergensi di atas dapat diartikan sebagai kedekatan fungsi probabilitas $Q$ menuju $P$.
KL Divergence memenuhi sifat positif-definit:
- \(\displaystyle \mathrm{KL}(P \| Q) \geq 0\),
- \(\displaystyle \mathrm{KL}(P \| Q) = 0 \iff P=Q\),
namun tidak simetris \(\mathrm{KL}(P \| Q) \neq \mathrm{KL}( Q \| P)\).
Oleh karena itu, \(\mathrm{KL}(\cdot \| \cdot)\) disebut sebagai fungsi divergensi, bukan fungsi jarak – fungsi jarak harus memenuhi kedua sifat positif-definit dan simetris.
Fungsi KL pertama kali ini diperkenalkan oleh Solomon Kullback dan Richard Leibler pada tahun 1951, yang akhirnya menjadi kuantitas sangat penting pada teori informasi.
KL seringkali digunakan untuk melakukan optimisasi yang melibatkan distribusi probabilitas pada banyak aplikasi seperti mekanika fluida, neurosains, dan machine learning (terutama pada Bayesian inference).
Tulisan ini membahas Kullback-Leibler Divergence dari prinsip-prinsip utamanya, yaitu teori probabilitas dan teori informasi.
Salah satu problem klasik pada Computer Vision adalah bagaimana mengenali / menandai / menentukan outline bentuk benda yang berada pada suatu gambar.
Dan salah satu metode paling awal yang didesain untuk memecahkan problem tersebut adalah Active Contour Model yang juga dikenal dengan Snakes (Kaas et al. IJCV1988).
Snakes telah banyak diaplikasikan untuk kebutuhan object tracking, segmentation, edge detection, stereo matching, dan sebagainya.
Gambar 1. Active Contour Model/Snakes (sumber: https://en.wikipedia.org/wiki/Active_contour_model)
Snake direpresentasikan dengan kontur yang dapat berubah-ubah bentuk (deformable contour).
Secara matematis, kontur dapat dimodelkan dengan fungsi kontinu yang mengembalikan nilai titik koordinat 2 dimensi
\[\begin{equation}
\label{eq:contour}
\mathbf{v}: \mathbb{S} \rightarrow \mathbb{R}^2, \text{ dimana } \mathbb{S} \subseteq \{ x \in \mathbb{R} | 0 <= x <= 1\}
\end{equation}\]
Deep learning bekerja melalui proses optimisasi.
Dengan kata lain, artificial neural networks belajar dari data dengan cara mengoptimalkan fungsi objektif.
Dari pertengahan tahun 80-an hingga sekarang, teknik optimisasi yang digunakan berbasis first-order gradient dari fungsi objektif yang disebut sebagai gradient descent (Cauchy, 1847).
Dipadukan dengan chain rule, gradient descent pada neural networks dikenal dengan algoritma back-propagation (Rumelhart et al. 1986).
Di ranah mathematical optimization, gradient descent merupakan metode yang paling sederhana dan telah banyak tersedia metode-metode optimisasi lain yang lebih canggih.
Mengapa deep learning masih mengandalkan gradient descent?
Alasan utamanya adalah skalabilitas komputasi: gradient descent memiliki kompleksitas linear terhadap pertambahan data dan juga mudah untuk dikomputasi secara paralel (dengan memanfaatkan GPU).
Karakteristik ini memungkinkan sebuah model neural network yang cukup besar untuk dilatih dengan jutaan data latih.
Beberapa kisah sukses terkait hal ini antara lain AlexNet (Krizhevsky et al. 2012), Word2Vec (Mikolov et al. 2013), dan ResNet (He et al. 2015).
Rigid body merupakan sebuah objek geometris terdiri dari kumpulan titik yang membentuk suatu struktur benda solid, i.e.,
tidak terjadi deformasi pada benda tersebut. Kumpulan titik merah pada Gambar 1 mengilustrasikan sebuah rigid body.
Sebagaimana halnya objek geometris, kita dapat mengaplikasikan berbagai transformasi geometris pada rigid body seperti translasi, rotasi, dan dilasi.
Kumpulan titik biru pada Gambar 1 merupakan hasil rotasi rigid body berwarna merah.