Jaringan Saraf Rekuren

Deep Learning Lanjutan dengan PyTorch

Michal Oleszak

Machine Learning Engineer

Neuron rekuren

  • Jaringan feed-forward
  • RNN: memiliki koneksi yang kembali
  • Neuron rekuren:
    • Input x
    • Output y
    • Keadaan tersembunyi h
  • Di PyTorch: nn.RNN()

Skema neuron RNN sederhana: neuron menerapkan bobot dan aktivasi, menerima masukan x dan menghasilkan keluaran y dan h, di mana h diumpankan kembali ke dirinya.

Deep Learning Lanjutan dengan PyTorch

Membuka gulung neuron rekuren sepanjang waktu

Skema neuron rekuren. Pada langkah waktu 0, menerima h0 dan x0, menghasilkan y0 dan h1.

Deep Learning Lanjutan dengan PyTorch

Membuka gulung neuron rekuren sepanjang waktu

Skema neuron rekuren. Pada langkah waktu 1, menerima h1 dan x1, menghasilkan y1.

Deep Learning Lanjutan dengan PyTorch

Membuka gulung neuron rekuren sepanjang waktu

Skema neuron rekuren. Pada langkah waktu 2, menerima h2 dan x2, menghasilkan y2 dan h3.

Deep Learning Lanjutan dengan PyTorch

RNN Mendalam

Skema dua neuron rekuren membentuk satu lapisan. Pada setiap langkah waktu, keluaran y diteruskan ke neuron lain.

Deep Learning Lanjutan dengan PyTorch

Arsitektur sequence-to-sequence

  • Masukkan urutan, gunakan seluruh keluaran urutan
  • Contoh: pengenalan ujaran waktu nyata

Skema arsitektur: pada setiap langkah waktu ada masukan baru, dan semua keluaran y di tiap langkah diberi tanda hijau sebagai digunakan,

Deep Learning Lanjutan dengan PyTorch

Arsitektur sequence-to-vector

  • Masukkan urutan, gunakan hanya keluaran terakhir
  • Contoh: klasifikasi topik teks

Skema arsitektur: pada setiap langkah waktu ada masukan baru, dan hanya keluaran y terakhir diberi tanda hijau sebagai digunakan,

Deep Learning Lanjutan dengan PyTorch

Arsitektur vector-to-sequence

  • Masukan tunggal, gunakan seluruh keluaran urutan
  • Contoh: generasi teks

Skema arsitektur: hanya ada satu masukan pada langkah waktu pertama, dan semua keluaran y di tiap langkah diberi tanda hijau sebagai digunakan,

Deep Learning Lanjutan dengan PyTorch

Arsitektur encoder–decoder

  • Masukkan seluruh urutan, lalu mulai gunakan keluaran urutan
  • Contoh: penerjemahan mesin

Skema arsitektur: pada bagian pertama (encoder), masukan diterima di setiap langkah waktu tetapi keluaran diabaikan; pada bagian kedua (decoder), tidak ada masukan lagi namun semua keluaran tiap langkah digunakan.

Deep Learning Lanjutan dengan PyTorch

RNN di PyTorch

class Net(nn.Module):
    def __init__(self):
        super().__init__()

self.rnn = nn.RNN( input_size=1, hidden_size=32, num_layers=2, batch_first=True, )
self.fc = nn.Linear(32, 1)
def forward(self, x): h0 = torch.zeros(2, x.size(0), 32)
out, _ = self.rnn(x, h0)
out = self.fc(out[:, -1, :]) return out
  • Definisikan kelas model dengan metode __init__
  • Definisikan lapisan rekuren, self.rnn
  • Definisikan lapisan linear, fc
  • Di forward(), inisialisasi keadaan tersembunyi awal ke nol
  • Lewatkan input dan keadaan awal ke lapisan RNN
  • Pilih keluaran RNN terakhir dan teruskan ke lapisan linear
Deep Learning Lanjutan dengan PyTorch

Ayo berlatih!

Deep Learning Lanjutan dengan PyTorch

Preparing Video For Download...