Domain Generalization for Object Recognition with Multi-task Autoencoders


Di tulisan ini saya ingin berbagi informasi mengenai research project yang saya kerjakan 3-3.5 bulan terakhir. Judul di atas merupakan judul paper terbaru saya yang di-submit ke konferensi CVPR . Konferensi ini bisa dibilang yang terbaik dan tersulit untuk paper kita diterima di bidang Computer Vision, Machine Learning, atau Pattern Recognition. Microsoft menempatkannya di urutan yang pertama. Ada yang bilang bahwa submit paper ke CVPR itu seolah-olah paper kita akan di-review oleh Einstein, Feynmann, Schrödinger-nya di Computer Vision. So, saya tidak terlalu berekspektasi agar paper saya diterima di konferensi ini. Mendapatkan review dari para world leading researchers di bidang ini (bisa dilihat di sini atau ini) akan merupakan pengalaman yang sangat berharga buat saya.

Sekarang waktunya menjelaskan apa isi dari paper ini. Masalah yang ingin dipecahkan adalah dataset bias di object recognition. Saya akan mulai dengan membahas sekilas tentang Object Recognition. Bagi yang sudah familiar, bab tepat di bawah ini dapat langsung di skip saja. Untuk melihat langsung kontribusi dari riset ini dapat melompat ke bab 5. Bab 1-4 sebagian besar berisi latar belakang.

1. Machine Learning dan Object Recognition

Object recognition mengacu kepada studi agar komputer dapat mengenali kategori dari suatu objek secara otomatis. Ilustrasi sederhananya adalah komputer diberikan input berupa data gambar/video yang berisi objek (e.g., kucing, mobil), lalu komputer diminta untuk mengklasifikasi kategori objek tersebut, apakah termasuk kucing atau mobil. Saat ini sudah banyak sekali aplikasinya seperti di biometrika (pengenal wajah, sidik jari, retina, dll), automatic face tagging di Facebook, dll. Walaupun dalam 1 dekade terakhir ini perkembangannya sangat pesat, terlebih dengan kemunculan Deep Learning, kemampuan masih jauh sekali dengan kemampuan manusia dalam mengenali objek, bahkan dibandingkan dengan anak-anak berumur 1 tahun sekalipun. Dengan Machine Learning, kita dapat membuat sistem object recognition, tentunya dengan level kemampuan tertentu, selama ada “data latih” yang cukup untuk “melatih” komputer.

Mengacu kembali dengan contoh aplikasi pengenal kucing atau mobil, “data latih” ini berupa contoh-contoh gambar kucing atau mobil (bayangkan gambar 2D dalam format png, gif, jpg, or whatever), dan beserta label yang menunjukkan kategorinya. Jika kita punya cukup banyak data latih tsb, kita bisa minta bantuan salah satu algoritma machine learning untuk melatih sistem rekognisi “kucing / mobil”. Setelah proses melatih selesai, diharapkan sistem tersebut mampu memprediksi objek dari gambar yang TIDAK ada di data latih, apakah termasuk kucing atau mobil.

Cerita di paragraf sebelumnya dapat dimodelkan secara matematis. Kita dapat memisalkan sistem object recognition ini dengan sebuah fungsi f: \mathcal{X}\rightarrow \mathcal{Y} yang bentuk sebenarnya tidak diketahui secara pasti. Jika input berupa vektor 1D (note: untuk kasus ini, data gambar yang semestinya berupa matriks 2D biasanya dikonversi ke vektor 1D, i.e., vectorized), maka \mathcal{X} \subseteq \mathbb{R}^{d}. Lalu, \mathcal{Y} merupakan “ruang label”, yang bisa berupa bilangan riil atau bilangan bulat. Mengacu lagi ke aplikasi pengenal kucing / mobil, kita bisa kodekan “kucing = 0” dan “anjing = 1”, yang berarti \mathcal{Y} \subseteq \{ 0,1\}. Misalnya kita punya n_s data latih berlabel \{\mathbf{x}_s^{(i)}, y^{(i)}_s \}_{i=1}^{n_s} \sim \mathcal{X} \times \mathcal{Y}. Tujuan kita adalah untuk mencapai objektif berikut

\displaystyle f^{*} := \arg \min_{f} \sum_{i=1}^{n_s} \mathcal{L} ( f(\mathbf{x}^{(i)}_s) , y^{(i)}_s)\quad\quad\quad\quad(1)

dimana \mathcal{L} biasa disebut sebagai loss function (bisa diperlakukan seperti fungsi jarak D(a,b) antara a dan b). Karena fungsi f tidak diketahui, kita bisa mengasumsikan bentuk awal fungsi tersebut.

Pemilihan bentuk awal fungsi f dan proses perjalanan dari f \mapsto f^{*} melahirkan berbagai macam jenis algoritma dan model Machine Learning seperti k-Nearest Neighbor, Linear Regression, Support Vector Machines, Neural Networks, Bayesian Model, Genetic Programming, dan sebagainya. Formulasi (1) juga biasa dikenal sebagai supervised learning problem.

2. Dataset Bias, Domain Adaptation & Generalization

Sistem object recognition berbasis Machine Learning yang ada pada saat ini, akan berjalan ‘baik-baik saja’ selama data latih berlabel banyak tersedia dan juga lingkungan dimana sistem tersebut berjalan ‘tidak jauh beda’ dengan data latih. Ambil contoh sistem pengenal kucing / mobil lagi (bagi yang membaca subbab sebelumnya mudah-mudahan tidak bosan dengan contoh ini), misalkan data latih yang kita punya adalah berupa kumpulan gambar kucing / mobil dari tampak depan. Sistem ini akan berjalan dengan mulus untuk mengenali gambar kucing/mobil “dekat-dekat dengan tampilan depan”.

Sedikit untuk memformalkan cerita di atas, misal terdapat sebuah dataset \{ x^{(i)}, y^{(i)} \}_{i=1}^{n} \sim \mathcal{D}, dimana \mathcal{D} merupakan probability distribution. Bagi yang belum akrab dengan istilah probability distribution, ini dapat dibayangkan sebagai “lingkungan” (Izinkan saya sekali lagi memakai contoh sistem pengenal kucing / mobil, berarti \mathcal{D} adalah “lingkungan gambar tampak depan dari kucing / mobil”. Setting-an Machine Learning standar dapat dijelaskan sebagai berikut: ambillah sample sebanyak n_s dari dataset (\{x_s^{(i)}, y^{(i)}_s\}_{i=1}^{n_s}, n_s < n) dan jadikan itu sebagai data latih. Berarti sisanya dapat dianggap sebagai data tes \{ x^{(i)}_t, y^{(i)}_t \}_{i=1}^{n_t}, n_t=n-n_s. Pemilihan model machine learning f:\mathcal{X} \rightarrow \mathcal{Y} dan n_s yang tepat akan menjamin f(x_t) \approx y_t.

Untuk meningkatkan kemampuan rekognisi sistem ini, cara tradisional adalah mengumpulkan data latih gambar kucing / mobil sebanyak-banyaknya dan juga dengan berbagai macam variasi (e.g., tampilan samping, belakang, dengan berbagai macam latar belakang, pencahayaan, dsb), untuk mencakup semua kemungkinan yang akan terjadi di lingkungan dimana sistem tersebut dijalankan (frase kalimat terakhir dapat disingkat hanya dengan 1 kata yaitu generalization). Tentunya cara ini mahal dan menghabis waktu (mungkin hanya perusahaan-perusahaan semacam Google, Facebook, Baidu, dsb, yang punya banyak perbendaharaan data, akan sukses dengan cara seperti ini).  Walaupun data gambar saat ini sudah tersedia di mana-mana, ingat bahwa kita juga perlu informasi label nya agar bisa mencapai objektif (1). Data-data yang ada di Internet sebagian besar tidak berlabel sehingga perlu juga untuk memberikan label terhadap gambar-gambar tersebut secara manual !

Adakah cara yang lebih elegan untuk meningkatkan kemampuan dari object recognition dengan hanya mengandalkan data yang lebih sedikit dan/atau dengan data yang tidak berlabel? Menjawab pertanyaan tersebut dengan menggunakan algoritma Machine Learning konvensional akan timbul masalah yang dikenal dengan isitilah dataset bias/covariate shift/domain shift/domain mismatch (banyak istilah untuk menjelaskan masalah ini karena memang bidang ini belum sepenuhnya settled.), i.e., sistem rekognisi akan hanya akurat untuk mengenali objek yang ‘mirip-mirip’ dengan data latih. Saya sendiri lebih suka dengan istilah domain mismatch karena bisa dijelaskan secara presisi dengan teori probability.

Untuk mengatasi masalah tersebut, muncullah berbagai framework seperti domain adaptation, transfer learning, learning to learn, etc. Di domain adaptation, biasanya dataset diasumsikan sebagai domain. Di sini domain secara umum terbagi 2 jenis: 1) source domain dan 2) target domain. Source domain menggambarkan lingkungan dimana machine learning dilatih dan target domain mendeskripsikan lingkungan tempat machine learning diaplikasikan.

Untuk lebih detilnya, kita bisa modelkan source dan target domain masing-masing sebagai probability distribution \mathcal{D}_s dan \mathcal{D}_t, dimana \mathcal{D}_s \neq \mathcal{D}_t, namun masih saling berhubungan. Misalkan ada 2 dataset yang diambil dari masing-masing domain \{ x_s^{(i)}, y_s^{(i)}\}_{i=1}^{n_s} dan \{ x_t^{(i)}, y_t^{(i)}\}_{i=1}^{n_t}. Problemnya adalah jumlah dataset target sangat kecil dibandingkan dengan dataset sumber n_t \lll n_s. Seperti yang telah dibahas sebelumnya, kekurangan informasi akan tidak menjamin keakuratan algoritma Machine Learning di target domain. Domain adaptation menyediakan cara untuk memanfaatkan / mentransfer informasi dari \mathcal{D}_s sehingga mampu menghasilkan model yang baik di \mathcal{D}_t.

Pada proyek riset saya kali ini, kami mencoba menyelesaikan masalah dataset bias tanpa sama sekali mengetahui informasi dari target domain, i.e., n_t =0, namun tedapat beberapa source domain yang bisa dimanfaatkan, i.e., \{x^{(i)}_d, y^{(i)}_d \}_{i=1}^{n_d} \sim \mathcal{D}_d, d \in \{1, 2, ..., D\}. Setting ini saya istilahkan sebagai domain generalization.

3. Feature Extraction & Learning

Dewasa ini, telah banyak model supervised learning yang tersedia dan boleh dikatakan telah mencapai level maturity. Namun demikian, di berbagai situasi ada suatu titik dimana supervised model tidak dapat ditingkatkan lagi kemampuannya jika hanya terpaku untuk memecahkan permasalah (1). Masalahnya disebabkan karena ruang data \mathcal{X} memang sangat kompleks sehingga sulit untuk melatih model yang optimal.

Sebagai ilustrasi, lagi-lagi saya ingin mengambil contoh sistem kucing / mobil. Pertama-tama, mari kita definisikan fungsi jarak D(A,B), dimana jika nilai D kecil berarti A dan B serupa. Ambil 2 sampel gambar kucing K dan K' yang masing-masing merepresentasikan gambar 2D, i.e., raw pixels,  tampak depan dan tampak samping. Misalkan M' merupakan gambar 2D mobil dari tampak samping. Dalam hal melakukan kategorisasi, otak manusia akan sangat mudah untuk mengenali bahwa K dan K' satu kategori dan M' berada di kategori yang berbeda, i.e., D(K,K') \lll D(K,M) dan D(K,K') \lll D(K', M). Namun pada kenyataannya tidak demikian bagi komputer. Yang seringkali terjadi adalah gambar 2 objek berbeda dengan sudut pandang yang sama memiliki jarak yang lebih kecil dibandingkan dengan gambar 2 objek yang sama namun dari sudut pandang yang berbeda. Ini disebabkan karena (dalam urutan kronologis)

  • Ruang data \mathcal{X} memang sangat kompleks untuk dikategorisasi.
  • Fungsi jarak D(\cdot,\cdot) tidak merepresentasikan jarak yang sebenarnya di ruang data \mathcal{X}.
  • Sangat sulit untuk mendesain bentuk khusus dari D(\cdot,\cdot) yang benar-benar sempurna untuk \mathcal{X}. Butuh human expert untuk melakukan hal tersebut. Komputasi yang meningkat dengan meningkatnya kompleksitas fungsi jarak juga menimbulkan masalah baru.
  • Pada akhirnya, kebanyakan algoritma supervised learning, secara eksplisit maupun implisit, menggunakan atau berbasis fungsi jarak sederhana, katakanlah, jarak 2 titik di ruang Euclidean.

Untuk mengatasi hal tersebut, trik yang biasa dilakukan adalah dengan terlebih dahulu mengkonversi ruang data ke bentuk yang mudah dikategorisasi oleh supervised learning. Lebih spesifiknya, kita butuh model g: \mathcal{X} \rightarrow \mathcal{H}, dimana \mathcal{H} \approx \mathbb{R}^{d} (\mathbb{R}^{d} merupakan ruang Euclidean). Proses ini biasa kita kenal sebagai feature extraction. Mulai saat ini, kita dapat artikan \mathcal{H} sebagai “ruang fitur” dan fungsi g sebagai feature extractor.

Di computer vision, proses pembuatan feature extractor yang optimal biasanya dilakukan secara manual (silakan browsing nama-nama feature extractor berikut ini: LBP, SIFT, SURF, HoG, etc). Cara lain yang dapat dilakukan adalah tentunya dengan algoritma machine learning, yang saat ini dikenal dengan isilah feature learning atau representation learning. Mempelajari features yang dapat membantu memecahkan masalah kategorisasi, i.e., mencapai objektif (1), sekarang ini merupakan salah satu open problem yang sangat menarik perhatian komunitas Machine Learning. Salah satu algoritma feature learning yang cukup powerful saat ini adalah autoencoders.

 4. Autoencoders & Denoising autoencoders

*Saya mengasumsikan pembaca di bagian ini sudah familiar dengan neural networks

ae
Gambar 1: Autoencoder (AE)

Autoencoder (nama lain: auto-association) (AE) merupakan feed forward neural network yang dilatih secara unsupervised, awalnya digunakan untuk data kompresi. Sejak tahun 2007, AE digunakan sebagai metode yang efektif untuk melatih deep neural networks. Secara arsitektur, autoencoder persis seperti neural network dengan satu hidden layer. Bedanya adalah output layer dari autoencoder berisi data input, sama dengan input layer-nya (lihat Gambar 1). Output dari Neural Network standar biasanya merepresentasikan label dari input. AE terdiri dari 2 tahap: 1) encoding dan 2) decoding. Misalkan \mathbf{x} \in \mathbb{R}^{d_x} merupakan input vector yang merepresentasikan input layer, \mathbf{h} \in \mathbb{R}^{d_h} merupakan hidden vector, secara matematis, autoencoder f_{\Theta}:\mathbb{R}^{d_x} \rightarrow \mathbb{R}^{d_x}  dimodelkan sebagai berikut

\displaystyle \mathbf{h} = \sigma(\mathbf{W}_{enc} ^{\top} \mathbf{x})

\displaystyle \mathbf{\hat{x}} = \sigma(\mathbf{W}_{dec} ^{\top} \mathbf{h}) = f_{\Theta}\quad \quad \quad(2)

 dimana \Theta = \{ \mathbf{W}_{enc}, \mathbf{W}_{dec}\} himpunan parameter dari autoencoder, \mathbf{W}_{enc} \in \mathbb{R}^{d_x \times d_h} merupakan matriks connection weights antara input-hidden, \mathbf{W}_{dec} \in \mathbb{R}^{d_h \times d_x} matriks connection weights antara hidden-output (Seharusnya di sini ada bias vector. Namun untuk mempermudah penulisan notasi, bias saya tidak ikutsertakan), dan \sigma(\mathbf{z}) = \left[ s(z_1) \quad s(z_2) \quad.... \quad s(z_m) \right]^{\top} merupakan fungsi aktivasi non-linear, dimana s(z)=\frac{1}{1+\exp(-z)} adalah fungsi sigmoid. Sekarang saya akan menjelaskan bagaimana caranya melatih autoencoder. Jika melihat persamaan (2), kita dapat menyimpulkan bahwa autoencoder dapat dikatakan sebagai “model rekonstruksi”. Jadi, melatih autoencoder artinya menjadikan autoencoder sebagai model rekonstruksi yang baik. Ini dapat dinyatakan dengan

\displaystyle \Theta^{*} := \arg \min_{\Theta} \| f_{\Theta}(\mathbf{x}) - \mathbf{x} \|_2^2 + \lambda \mathcal{R}(\Theta) \quad \quad \quad (3),

dimana \| \cdot \|^2_2 adalah panjang vektor di ruang Euclidean, sehingga ekspresi di atas menyatakan jarak Euclidean antara 2 vektor dan \mathcal{R}(\Theta) merupakan fungsi yang disebut sebagai regularization yang sifatnya opsional, biasanya digunakan untuk mengurangi overfitting. Saya biasanya menggunakan bentuk standar regularization dalam bentuk l_2 weight penalty: \mathcal{R}(\Theta) = \frac{1}{2} (\| \mathbf{W}_{enc} \|_2^2 + \| \mathbf{W}_{dec} \|_2^2). Untuk mencapai objektif (3), kita dapat menggunakan algoritma back-propagation, seperti halnya melatih neural network. Karena formulasi tersebut bukan merupakan fungsi convex, algoritma back-propagation tidak mampu menjamin untuk mencapai global optimum. Namun demikian, seringkali kita tidak harus mencapai global optimum untuk menghasilkan features yang cukup baik. Setelah algoritma melatih autoencoder selesai dijalankan, kita dapat mengekstrasi features dari autoencoder. Dalam hal ini, proses pengekstrasian = proses encoding dari autoencoder. Lebih spesifiknya, diberikan sebuah input tanpa label \mathbf{x}^{(i)} dan parameter encoding yang telah dilatih \mathbf{W}^{*}_{enc}, proses feature extraction dilakukan dengan cara

\displaystyle \mathbf{h}^{*(i)} = \sigma(\mathbf{W}^{* \top}_{enc} \mathbf{x}^{(i)})\quad \quad \quad (4).

Misalkan proses tersebut diaplikasi terhadap data latih \{\mathbf{x}^{(i)}_s, y^{(i)}_s \}_{i=1}^{n_s}, maka akan menghasilkan himpunan feature  \{ \mathbf{h}_s^{* (i)}, y_s^{(i)}\}_{i=1}^{n_s}, yang dapat digunakan sebagai input untuk supervised learning. Kaitannya dalam membuat sistem object recognition, prosesnya dapat diringkas sebagai berikut: 1. Feature Learning: Diberikan kumpulan pixel gambar 2D \{ \mathbf{x}^{(i)}_s \}_{i=1}^{n_s}, jalankan autoencoder learning dengan mencapai objektif (3). 2. Feature Extraction: Jalankan fungsi (4) untuk membentuk features \{ \mathbf{h}^{*(i)}_s \}_{i=1}^{n_s}. 3. Supervised learning: Pilih dan latih salah satu algoritma supervised learning (e.g., logistic regression, SVM, random forest, etc) untuk mencapai objektif (1), dengan feature set \{ \mathbf{h}^{*(i)}_s, y^{(i)}_s \}_{i=1}^{n_s} sebagai data latih. Saat ini terdapat beberapa varian dari autoencoder yang telah terbukti menghasilkan features yang lebih robust. Salah satunya adalah denoising autoencoder. Perbedaan antara autoencoder standar dan denoising autoencoder (DAE) hanyalah pada data input. Sebelum menjalankan proses feature learning, input diberikan semacam noise \mathbf{\tilde{x}} \sim Q( \mathbf{\tilde{x}} | \mathbf{x}). Namun perlu dicatat bahwa output dari DAE tetap menggunakan versi data yang asli.

 5. Multi-task autoencoders

Ini merupakan model yang menjadi kontribusi dari riset ini, yang saya namakan Multi-task Autoencoders (MTAE). Saya meminjam ide dari multi-task learning untuk menjadikan autoencoder dapat men-capture “konsep” dari berbagai domain yang berbeda namun saling berkaitan. Arsitektur dari model ini ditunjukkan pada Gambar 2, diadopsi dari multi-task neural network.

MTAE
Gambar 2: Arsitektur Multi-task Autoencoder (MTAE), yang terdiri dari 3 layer dengan output layer yang bercabang.

MTAE memiliki 2 jenis connection weights : 1) shared weight  \mathbf{W} dan 2) domain-specific weight \mathbf{V}_d, \forall d \in \{1,..., D\} (asumsi terdapat D buah domain). Tugas utama dari MTAE adalah merekonstruksi semua domain diberikan sebuah domain. Jika terdapat D buah domain, maka akan ada D \times D rekonsktruksi. Misal terdapat dataset dari D domain \{ \mathbf{x}^{(i)}_d, y^{(i)}_d\}_{i=1}^{n_d}. Pada riset kali ini, saya mengasumsikan “domain” sebagai “tampilan objek”. Semua domain memiliki kategori objek yang sama. Objektif dari MTAE adalah sebagai berikut

\displaystyle \Theta^{*}:=\arg \min_{\Theta} \sum_{j=1,d=1}^{D} \sum_{i=1}^{n_d}\| f_{\Theta}(\mathbf{x}_d^{(i)}) - \mathbf{x}_d^{(i)} \|_2^2 + \lambda \mathcal{R}(\Theta) \quad \quad \quad (5)

dimana \Theta = \{ \mathbf{W}, \mathbf{V}_d \}, \forall d \in \{1,...,D \}. Saya menggunakan stochastic gradient descent untuk menjalankan MTAE learning, i.e., mencapai objektif (5). Algoritma MTAE learning diringkas pada Gambar 3.

MTAE_algorithm
Gambar 3: Algoritma Muli-task Autoencoder Learning

Setelah MTAE learning selesai, kita dapat mengekstrak features dari MTAE. Proses ini identik seperti yang dilakukan AE dengan menggunakan persamaan (4), dimana W^{*}_enc sekarang merupakan shared weight dari MTAE. Saya juga mencoba untuk menambahkan denoising criterion pada MTAE seperti halnya DAE. Hasil penambahan denoising ini memunculkan model baru yang saya namakan Denoising Multi-task Autoencoder (D-MTAE). Saya berekspektasi D-MTAE akan menggabungkan sifat-sifat dari DAE dan MTAE.

6. Eksperimen

Pada bagian ini saya akan menjelaskan sebagian kecil dari hasil eksperimen yang saya dapatkan dari MTAE learning. Saya ingin mengetahui seberapa baik MTAE dalam hal domain generalization sebagai sistem handwritten digit recognition. Dataset yang saya gunakan diambil dari MNIST handwritten digit image. Dalam evaluasi, saya tidak sepenuhnya mengikuti protokol standar yang membagi dataset menjadi training set dan test set. Namun saya membagi data set menjadi 6 buah domain, dimana sebuah domain merupakan hasil rotasi dari domain yang lain. Ilustrasi dari setting ini ditunjukkan pada Gambar 4 (proses rotasi dilakukan secara manual).

MNIST-rot
Gambar 4: MNIST handwritten digit, 6 domain; 1 domain = 1 tampilan objek.

Evaluasi dilakukan dengan cara memprediksi label digit dari domain tertentu, katakanlah objek terotasi 75^{\circ}, sisanya menjadi data latih, i.e., 0^{\circ}, ..., 60^{\circ}. Ini dilakukan untuk setiap domain. Proses evaluasi ini saya istilahkan sebagai leave-one-domain-out cross-recognition.

6.1. Analisis Kualitatif

visualization
Gambar 5: Visualisasi connection weights dari berbagai model autoencoder.

Sebelum mengecek recognition accuracy, ada baiknya untuk menginvestigasi apa yang sebenarnya dilakukan oleh MTAE. Ini dapat dilakukan dengan memvisualisasi connection weights dari model autoencoder. Hasil visualisasi ditunjukkan pada Gambar 5. Warna putih menunjukkan nilai bobot w_{ij}>3, hitam berati nilai bobot w_{ij}<-3, dan abu-abu menunjukkan nilai diantara -3 dan 3. Dari gambar 5, kita dapat menyimpulkan bahwa connection weights yang telah ‘terlatih’ secara unsupervised akan membentuk semacam “filter”. AE dan DAE membentuk filter yang hanya menjelaskan content dari digit, seperti komponen Fourier-like, local blog, edge detector, dan lain-lain, konsisten seperti hasil riset sebelumnya. Sedangkan, MTAE dan D-MTAE dapat meng-capture transformasi yang ada pada kumpulan domain. Ini menunjukkan bahwa MTAE dan D-MTAE mungkin dapat melakukan pekerjaan yang lebih baik untuk ‘mengurangi’ efek rotasi ketika mengobservasi digit yang terotasi.

6.2. Cross-recognition

Berikut ini hasil rekognisi dari leave-one-domain-out cross recognition dalam persen, ditunjukkan pada Tabel 1. Secara umum, MTAE dan D-MTAE yang paling akurat dibandingkan model-model yang lainnya. Ini berarti kedua model tersebut menyediakan kemampuan domain generalization yang lebih baik, sesuai dengan yang saya ekspektasikan di awal. mnist_tableMembandingkan antara MTAE dan D-MTAE, dapat dilihat bahwa secara rata-rata D-MTAE memberikan sedikit peningkatan performa dibandingkan MTAE. Namun demikian, hasil ini tidak sepenuhnya konsisten ketika saya mencoba jenis domain yang lain, seperti dilatasi, rotasi 3D (tidak ditampilkan di sini), i.e., MTAE terkadang secara rata-rata lebih baik dari D-MTAE. Dalam kasus tersebut, ini menunjukkan denoising criterion tidak terlalu membantu domain generalization.

 7. Kesimpulan dan Rencana ke Depan

Sejauh ini saya menyimpulkan bahwa strategi multi-task learning yang diimplementasikan pada autoencoders cukup efektif membuat model domain generalization untuk object recognition, terutama ketika perbedaan domain disebabkan oleh transformasi objek. Rencana ke depan, saya ingin mengembangkan MTAE agar mampu menangkap “konsep” dari data secara lebih general, tidak terbatas pada transformasi. Dipercayai bahwa otak manusia dapat belajar jauh lebih cepat dari data yang lebih sedikit dikarenakan otak dapat menangkap “konsep” secara sempurna. Strategi multi-task learning sebenarnya merupakan aproksimasi dari hal tersebut. Namun, tentunya “konsep” tidak hanya sekadar berupa transformasi objek.

6 thoughts on “Domain Generalization for Object Recognition with Multi-task Autoencoders

  1. Ghif, kalau proses distorsi di DAE ditambahkan proses generic warping (shift, scale, shear, perspective, local deform) apakah sudah dicoba juga? DAE mungkin hanya mengeksplorasi invariansi terhadap random noise sedangkan pengujiannya dilakukan thd transformasi geometris yang dalam hal ini rotasi. mungkin berikutnya cukup dibandingkan kinerjanya antara UAE (unwarp AE) terhadap MTAE (current best). setelahnya mungkin coba juga variasi distorsi yang lain (deconvolution, morphological ops).

    1. Bang Peb, secara teori dan konsep gw sepakat makin banyak distorsi yang coba di-“denoise”, maka modelnya makin invariant (kalau gak salah uda ada studi yang coba prove it mathematically).

      Namun mungkin secara praktis drawback nya bakal butuh banyak distorted training data => modelnya makin kompleks => optimisasi parameter makin kompleks. Baru2 ini ada yang udah coba desain aproksimasi dari DAE untuk jumlah distorsi di data nya infinite : http://www.cse.wustl.edu/~kilian/papers/msdadomain.pdf, tanpa harus nambah training data secara eksplisit, which is cool !

      Usulannya menarik, sebagai the next baselines🙂 Kalau gw sendiri tertarik untuk extend ide multi-task ini sehingga modelnya bener2 bisa nangkep “concept” lebih general, supaya nanti proses eksperimennya less trial & error (well, maap terkadang gw agak pemalas dalam hal eksperimen :p). Jadi, denoising strategy merupakan kasus khusus dari model baru nanti.

  2. btw, IMHO pengambilan kesimpulan bahwa denoising criterion tidak membantu domain generalization sepertinya masih terburu-buru. mungkin kesimpulan yang lebih tepat adalah bahwa noise model-nya tidak bisa memberikan informasi tambahan yang relevan thd eksplorasi proses distorsi transformasi geometris dari sampel di domain lainnya yang sudah dilakukan oleh aspek MT.

    1. iya setuju juga. Kata “domain generalization” terlalu general. Nanti dikoreksi. Thanks.
      Di paper aslinya kalau gak salah “… domain generalization in the context of 2D affine rotation & dilation”.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s