## 𝐄 𝐗#

Gambar 12.2: Hubungan auto _encoder_ dan singular value decomposition
(analogi).

Perhatikan, _hidden layer_ / _coding_ dapat dianalogikan sebagaiE=Uˆ Vˆ.
Dengan kata lain, kita dapat melakukan operasi _dot-product_ pada _coding_ untuk
merepresentasikan _dot-product_ pada data asliX. Ini adalah ide utama

(^5) Pada banyak literatur, kumpulan _weight matrices_ ANN sering dilambangkan den-
ganθ
(^6) Hanya sebuah analogi.


168 12 Auto _encoder_

_autoencoder_, yaitu meng-aproksimasi/meng _kompresi data_ asli menjadi bentuk
lebih kecil _coding_. Kemudian, operasi pada bentuk _coding_ merepresentasikan
operasi pada data sebenarnya.
_Autoencoder_  terdiri dari _encoder_ (sebuah _neural network_ ) dan _decoder_
(sebuah _neural network_ ). _Encoder_ merubah _input_ ke dalam bentuk dimensi
lebih kecil (dapat dianggap sebagai kompresi). _Decoder_ berusaha merekonstruksi _coding_ menjadi
bentuk aslinya. Secara matematis, kita dapat menulis
_autoencoder_ sebagai persamaan 12.6, dimana dec melambangkan _decoder_, enc
melambangkan _encoder_ danx adalah _input_. _Encoder_ diberikan pada persamaan
12.7 yang berarti melewatkan _input_ pada suatu _layer_ di _neural network_ untuk
menghasilkan representasixberdimensi rendah, disebut _coding_
c.Udanαmelambangkan _weight matrix_ dan _bias_.

```
f(d,θ) = dec(enc(x)) (12.6)
```
```
c= enc(x) =g(x,U,α) (12.7)
```
Representasicini kemudian dilewatkan lagi pada suatu _layer_ untuk merekonstruksi
kembali _input_, kita sebut sebagai _decoder_. _Decoder_ diberikan pada persamaan
12.8 dimanaWdanβmelambangkan _weight matrix_ dan _bias_. Baik
pada fungsi _encoder_ dan _decoder_,σmelambangkan fungsi aktivasi.

```
f(d,θ) = dec(c) =h(c,W,β) (12.8)
```
Pada contoh sederhana ini, _encoder_ dan _decoder_ diilustrasikan sebagai sebuah
_layer_. Kenyataannya, _encoder_ dan _decoder_ dapat diganti menggunakan sebuah
_neural network_ dengan arsitektur kompleks.
Sekarang kamu mungkin bertanya-tanya, bila auto _encoder_ melakukan
hal serupa seperti _singular value decomposition_, untuk apa kita menggunakan _autoencoder_ ?
(mengapa tidak menggunakan aljabar saja?) Berbeda
dengan teknik SVD, teknik _autoencoder_ dapat juga mempelajari fitur nonlinear.^7
Pada penggunaan praktis, _autoencoder_ adalah _neural network_ yang
cukup kompleks (memiliki banyak _hidden layer_ ). Dengan demikian, kita dapat
”mengetahui”berbagai macam representasiatau transformasi data.
_Framework autoencoder_  yang disampaikan sebelumnya adalah framework
dasar. Pada kenyataannya, masih banyak ide lainnya yang bekerja dengan
prinsip yang sama untuk mencari _coding_ pada permasalahan khusus. _Output_
dari _neural network_ juga bisa tidak sama _input_ -nya, tetapi tergantung permasalahan
(kami akan memberikan contoh persoalan _word embedding_ ). Selain
itu, _autoencoder_ juga relatif fleksibel; dalam artian saat menambahkan data
baru, kita hanya perlu memperbaharui parameter _autoencoder_ saja. Kami
sa _rank_ an untuk membaca _paper_ [72, 73] perihal penjelasan lebih lengkap tentang
perbedaan dan persamaan SVD dan _autoencoder_ secara lebih matematis.
Secara sederhana, _representation learning_ adalah teknik untuk mengkompresi _input_ ke
dalam dimensi lebih rendah tanpa (diharapkan) ada kehilangan

(^7) Hal ini abstrak untuk dijelaskan karena membutuhkan pengalaman.


```
12.4 Resisting Perturbation 169
```
informasi. Operasi vektor (dan lainnya) pada level _coding_ merepresentasikan
operasi pada bentuk aslinya. Untuk pembahasan _autoencoder_ secara lebih
matematis, kamu dapat membaca pranala ini.^8 Setelah _autoencoder_ dilatih,
pada umumnya _encoder_ dapat digunakan untuk hal lainnya juga, e.g., klasifikasi
kelas gambar.

