Attention Exercises

Created onDibuat pada
Last updated onTerakhir diperbarui
12 min read12 menit baca
IDattentionencoder-decoderRNNTransformerdeep-learning
ContributorsKontributor
Razi Rachman Widyadhana - @zirachw

Latihan Attention untuk persiapan UAS IF3270 Pembelajaran Mesin, khususnya bagian encoder-decoder with attention.

#Link to this headingLatihan

Diberikan model encoder-decoder with attention dengan spesifikasi berikut.

KomponenNilai
Dimensi input encoder (xx)2
Jumlah hidden neuron encoder2
Panjang sekuens encoder3
Dimensi input decoder (token sebelumnya)3
Jumlah hidden neuron decoder2
Jumlah output token (ukuran kosakata)3
Attention hidden unit (Bahdanau)2

Encoder menggunakan RNN satu hidden layer dengan fungsi aktivasi linear dan bobot berikut.

Wxh=[1001],Whh=[0000],bxh=[00],h0=[00]W_{xh} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \quad W_{hh} = \begin{bmatrix} 0 & 0 \\ 0 & 0 \end{bmatrix}, \quad b_{xh} = \begin{bmatrix} 0 \\ 0 \end{bmatrix}, \quad h_0 = \begin{bmatrix} 0 \\ 0 \end{bmatrix}

Sekuens input yang diberikan adalah sebagai berikut.

x1=[10],x2=[02],x3=[11]x_1 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \quad x_2 = \begin{bmatrix} 0 \\ 2 \end{bmatrix}, \quad x_3 = \begin{bmatrix} 1 \\ 1 \end{bmatrix}

Pada suatu timestep decoder tertentu, state decoder sebelumnya adalah sebagai berikut.

st−1=[11]s_{t-1} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}

Bahdanau attention menggunakan bobot berikut.

Wa=[1001],Ua=[1001],va=[10],ba=[00]W_a = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \quad U_a = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}, \quad v_a = \begin{bmatrix} 1 \\ 0 \end{bmatrix}, \quad b_a = \begin{bmatrix} 0 \\ 0 \end{bmatrix}

Output layer menggunakan bobot berikut.

Wy=[1001−11],by=[000]W_y = \begin{bmatrix} 1 & 0 \\ 0 & 1 \\ -1 & 1 \end{bmatrix}, \quad b_y = \begin{bmatrix} 0 \\ 0 \\ 0 \end{bmatrix}

#Link to this headinga.

Gambarkan arsitektur unfolded encoder-decoder with attention berdasarkan spesifikasi di atas. Tunjukkan encoder 3 timestep, mekanisme attention, dan decoder.

#Link to this headingb.

Hitung hidden state encoder h1h_1, h2h_2, dan h3h_3 dari sekuens input x1x_1, x2x_2, x3x_3 menggunakan formula berikut.

hj=Wxhxj+Whhhj−1+bxhh_j = W_{xh} x_j + W_{hh} h_{j-1} + b_{xh}

#Link to this headingc.

Hitung skor attention eje_j, bobot attention αj\alpha_j, dan context vector ctc_t menggunakan Luong dot attention dengan formula berikut.

ej=st−1Thj,αj=exp⁡(ej)∑k=13exp⁡(ek),ct=∑j=13αjhje_j = s_{t-1}^T h_j, \qquad \alpha_j = \frac{\exp(e_j)}{\displaystyle\sum_{k=1}^{3} \exp(e_k)}, \qquad c_t = \sum_{j=1}^{3} \alpha_j h_j

Gunakan pembulatan tiga angka di belakang koma.

#Link to this headingd.

Hitung skor attention eje_j, bobot attention αj\alpha_j, dan context vector ctc_t menggunakan Bahdanau attention dengan formula berikut.

ej=vaTtanh⁡(Wast−1+Uahj+ba)e_j = v_a^T \tanh(W_a s_{t-1} + U_a h_j + b_a)

Gunakan nilai tanh⁡(1)=0.762\tanh(1) = 0.762, tanh⁡(2)=0.964\tanh(2) = 0.964, tanh⁡(3)=0.995\tanh(3) = 0.995. Gunakan pembulatan tiga angka di belakang koma.

#Link to this headinge.

Bandingkan mekanisme Luong dot dan Bahdanau attention berdasarkan hasil sub-soal c dan d. Jelaskan perbedaan cara menghitung skor, jumlah parameter, dan distribusi bobot yang dihasilkan pada contoh ini.

#Link to this headingf.

Gunakan ctc_t dari Bahdanau attention (sub-soal d). Hitung logits zz, probabilitas softmax, dan token prediksi menggunakan formula berikut.

z=Wyct+by,pi=exp⁡(zi)∑k=13exp⁡(zk)z = W_y c_t + b_y, \qquad p_i = \frac{\exp(z_i)}{\displaystyle\sum_{k=1}^{3} \exp(z_k)}

Gunakan pembulatan tiga angka di belakang koma.

#Link to this headingg.

Hitung total jumlah parameter model berdasarkan spesifikasi yang diberikan. Asumsikan Bahdanau attention, decoder state dihitung dari token sebelumnya, hidden state decoder sebelumnya, dan context vector, serta output layer menggunakan gabungan sts_t dan ctc_t.

#Link to this headingh.

Tentukan apakah pernyataan berikut benar atau salah.

  1. Attention membuat model selalu memilih satu token input saja untuk setiap token output.
  2. Pada attention, bobot αtj\alpha_{tj} biasanya dijumlahkan menjadi 1 untuk setiap tt.
  3. Pada encoder-decoder with attention, context vector dapat berbeda untuk setiap timestep decoder.
  4. Transformer menghilangkan recurrence dan memakai self-attention.
  5. Positional encoding diperlukan karena self-attention tidak memiliki urutan token secara bawaan.