Friday, March 15, 2019

Atensi, hubungannya dengan cocktail party problem dan deep learning

Beberapa hari ini saya kembali membaca beberapa paper tentang fenomena "cocktail party", tema penelitian saya saat S1 dan S2. Dulu, bahkan sampai minggu lalu, saya hanya membaca banyak paper dari aspek statitsik, algoritma, dan aplikasinya. Padahal teknik tersebut (ICA/BSS) diusulkan untuk meniru cara kerja otak manusia. Karena sedang mengambil kuliah tentang "perceptual", sekarang saya sedang membaca beberapa paper tentang bagaimana otak memproses fenomea "cocktail party". Kali ini, semua yang saya baca adalah tentang persepsi, kognisi dan proses biologi, bukan rekayasa matematika atau deep learning, tapi tentang jaringan saraf sebenarnya.

Atensi

Apakah atensi itu? Atensi merupakan proses kognitif dan perilaku untuk memilih informasi tertentu dan mengabaikan informasi lainnya. Studi tentang atensi ini mulai berkembang ketika Cherry pada tahun 1953 mempublikasikan papernya tentang eksperimen "shadowing task": dimana responden diperdengarkan dua pesan melalui headphone secara dichotic (satu pesan untuk tiap kanal, kanan dan kiri). Pesan terserbut merupakan pesan utama (attended) dan sampingan (non-attended). Cherry menemukan bahwa sangat kecil sekali reponden memperhatikan pesan sampingan, misalnya apakah pesan itu diucapkan oleh laki-laki/wanita, bahasa apa yang digunakan, dll. Eksperimen Cherry ini membuka jalan lahirnya teori tentang atensi dan beberapa modelnya.

Gambar 1. Model atensi Broadbent dan Treisman
Cocktail Party
Broadbent pada 1958 melanjutkan eksperimen dan teori yang dilakukan oleh Cherry.  Dia mengembangkan model filter dari atensi. Dia berpendapat bahwa sistem otak auditori manusia memfilter informasi yang ingin dia konsentrasikan dan mengesampingkan informai lainnya. Model atensi Broadbent ini dilanjutkan oleh Treisman.

Treisman berpendapat bahwa pada proses atensi selektif, tidak semua informasi diblok oleh filter seperti yang diusulkan oleh Broadbent. Informasi sampingan tersebut tetap diolah namun melemah atau beratenuasi. Model Treisman ini dinamakan model atensi atenuasi. Informasi yang melemah tadi masih sampai pada auditory cortex dan ada mekanisme threshold yang bisa menyebabkan atensi berpindah ke informasi sampingan atau tambahan ini. Misalnya ketika nama seseorang dipanggil dia langsung menoleh. Perbedaan model atensi filter dari Broadbent dan model atensi atenuasi Treisman dapat diilustasikan pada gambar 1 di atas.

Pada proses atensi (fokus pada salah satu informasi) mekanisme "sensory gating" ditengarai ada diantara thalamus dan auditory cortex ini (Gambar 2). Pada auditory sensory gating, mekanisme tersebut bekerja untuk menutup informasi yang tidak relevan (Broadbent' model) atau mengurangi arus informasi tambahan (Treisman model) dengan threshold tertentu. Mekanisme auditory sensory gating ini mendukung model atensi dan bagaimana otak kita mengolah informasi pada cocktail party problem.

Pada pemrosesan data sensorik, dua pendekatan bisa digunakan, top-down dan bottom-up. Misalnya pada cocktail party, apakah suara yang mendrive kita untuk fokus pada percakapan tersebut (bottom-up) ataukah kognitif kita yang menggerakan kita untuk fokus pada percakapan tersebut (top-down). Banyak ilmuwan berpendapat kedua proses tersebut terjadi pada sistem auditori kita, namun banyak juga yang meyakini salah satunya.
Gambar 2. Diagram skematik dari sebuah sirkuit atensi auditori [5]

Deep Learning dan Visualiasasi dalam Python

"Attention is all you need" adalah paper yang melegenda. Sampai saat tulisan ini ditulis, paper tersebut sudah disitasi oleh 1332 (and counting), bahkan sudah disitasi sebelum paper tersebut terbit (preprint). Jadi apa sebenarnya atensi pada deep learning? Lebih jelas tentang bagaimana atensi bekerja pada peristiwa Cocktail party bisa dibaca pada PR (pekerjaan rumah) saya berikut,  "Mechanism on how auditory system solves the cocktail party problem."

Meski tidak berdasar pada paper (dan kadang memang begitu), Contoh berikut merupakan implementasi sederhana atensi dalam deep learning dengan menggunakan toolkit Keras. Ide dasarnya adalah: menggunakan softmax mask di dalam jaringan. Dengan cara ini akan didapatkan distribusi yang ternormalisasi dari tiap step waktu atau unit pada sebuah layer berdasarkan input yang masuk.
Hal tersebut penting untuk melihat bagian mana yang berkontribusi banyak pada hasil prediksi yang dihasilkan oleh model.

Atensi, di dalam deep learning, diimplementasikan dengan manambahkannya pada hidden layer, yakni berupa encoder dan decoder. Dengan atensi kita peroleh vektor $c_i$ dari hidden layer $s_1, s_2, ..., s_m$ yang akan digunakan pada layer $h_i$ untuk prediksi. Konteks vektor $c_i$ ditentukan oleh rata-rata dari weighted state sebelumnya dengan skor atensi $a_i$,

\begin{align}\begin{split}
\mathbf{c}_i &= \sum\limits_j a_{ij}\mathbf{s}_j\\
\mathbf{a}_i &= \text{softmax}(f_{att}(\mathbf{h}_i, \mathbf{s}_j))
\end{split}\end{align}

Dengan $f_att(.)$ merupakan fungsi atensi yang menghitung skor tak ternormalisasi dari hidden state saat ini $h_i$ dengan hiddden state sebelumnya $_j$. Gambar berikut merupakan hasil atensi


Pada gambar diatas, diumpamakan data dengan jumlah 32 sekuen, dimana data ke-2 (v[1]) yang ingin di diperhatikan. Sehingga, struktur datanya kurang lebih begini:

data ke-    input(size=32)                    output (biner)
0           0.12 0.23 0.12 ... 0.003          1
1           0.03 0.3  0.03 ... 0.12           0
...
31          0.01 0.4  0.13 ... 0.03           1

Dengan visualisasi atensi diatas, didapatkan data ke-1 memilihi bobot yang lebih dari data lainnya dalam menghasilkan output. Gambar di atas diperoleh dengan menjalankan demo "atensi dalam python" yang dimodifkasi dari referensi [6]. Demikianlah penjelasan singkat tentang "atensi" ini. Topik ini sangat menarik, baik dari psikologi, psikofisika, maupun ilmu komputasi.

Referensi:
  1. https://medium.com/syncedreview/a-brief-overview-of-attention-mechanism-13c578ba9129
  2. http://www.newworldencyclopedia.org/entry/Donald_Broadbent 
  3. https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/
  4. https://www.youtube.com/watch?v=rBCqOTEfxvg
  5. Haykin, S., & Chen, Z. (2005). The cocktail party problem. Neural Computation, 17(9), 1875-1902.
  6. https://github.com/philipperemy/keras-attention-mechanism 
  7. https://srome.github.io/Understanding-Attention-in-Neural-Networks-Mathematically/
  8. http://r4ds.had.co.nz/ 
  9. https://distill.pub/2016/augmented-rnns/





Related Posts Plugin for WordPress, Blogger...