**Autopenyandi** adalah jenis jaringan saraf tiruan yang digunakan untuk mempelajari penyandian data tidak berlabel yang efisien ( pembelajaran tak terarah ).   Autopenyandi mempelajari dua fungsi: fungsi penyandian yang mengubah data masukan, dan fungsi pengawasandian yang membuat ulang data masukan dari representasi yang disandikan. Autopenyandi mempelajari representasi (penyandian) yang efisien untuk sekumpulan data, biasanya untuk pengurangan dimensi .

Ada varian yang bertujuan untuk memaksa representasi yang dipelajari untuk mengambil properti yang berguna.  Contohnya adalah autopenyandi yang diatur ( *Sparse*, *Denoising*, dan *Contractive* ), yang efektif dalam mempelajari representasi untuk tugas klasifikasi selanjutnya,  dan autopenyandi variabel, dengan aplikasi sebagai model generatif.  Autopenyandi diterapkan pada banyak masalah, termasuk pengenalan wajah,  deteksi fitur,  deteksi anomali, dan perolehan makna kata.   Autopenyandi juga merupakan model generatif yang dapat menghasilkan data baru secara acak yang serupa dengan data masukan (data pelatihan).

Prinsip matematika
------------------

### Definisi

Auto penyandi ditentukan oleh komponen berikut:

Dua set: ruang pesan yang diawasandikan {\displaystyle {\mathcal {X}}} ; ruang pesan yang disandikan {\displaystyle {\mathcal {Z}}}. Hampir selalu, keduanya {\displaystyle {\mathcal {X}}} Dan {\displaystyle {\mathcal {Z}}} adalah ruang Euclidean, yaitu, {\displaystyle {\mathcal {X}}=\mathbb {R} ^{m},{\mathcal {Z}}=\mathbb {R} ^{n}} untuk beberapa {\displaystyle m,n} .

Dua kelompok fungsi yang diparametrikan: keluarga penyandi {\displaystyle E\_{\phi }:{\mathcal {X}}\rightarrow {\mathcal {Z}}}, diparametrikan oleh {\displaystyle \phi } ; keluarga pengawasandi {\displaystyle D\_{\theta }:{\mathcal {Z}}\rightarrow {\mathcal {X}}}, diparametrikan oleh {\displaystyle \theta } .

Untuk apa pun {\displaystyle x\in {\mathcal {X}}}, kami biasanya menulis {\displaystyle z=E\_{\phi }(x)}, dan menyebutnya sebagai sandi, variabel laten, representasi laten, vektor laten, dll. Sebaliknya, untuk setiap {\displaystyle z\in {\mathcal {Z}}}, kami biasanya menulis {\displaystyle x'=D\_{\theta }(z)}, dan menyebutnya sebagai pesan (yang diterjemahkan).

Biasanya, penyandi dan pengawasandi didefinisikan sebagai perseptron mutilapis. Misalnya,penyandi MLP satu lapis {\displaystyle E\_{\phi }} adalah:

{\displaystyle E\_{\phi }(\mathbf {x} )=\sigma (Wx+b)}
Di mana {\displaystyle \sigma } adalah fungsi aktivasi berdasarkan elemen seperti fungsi sigmoid atau unit linier yang disearahkan, {\displaystyle W} adalah matriks yang disebut "bobot", dan {\displaystyle b} adalah vektor yang disebut "bias".

### Melatih autopenyandi

Autopenyandi, dengan sendirinya, hanyalah kumpulan dari dua fungsi. Untuk menilai *kualitasnya*, kita memerlukan *tugas*. Sebuah tugas ditentukan oleh penyebaran peluang rujukan {\displaystyle \mu \_{ref}} lebih {\displaystyle {\mathcal {X}}}, dan fungsi "kualitas rekonstruksi". {\displaystyle d:{\mathcal {X}}\times {\mathcal {X}}\to [0,\infty ]}, seperti yang {\displaystyle d(x,x')} mengukur berapa banyak {\displaystyle x'} berbeda dari {\displaystyle x} .

Dengan itu, kita dapat mendefinisikan fungsi kerugian untuk autopenyandi sebagai


L
(
θ
,
ϕ
)
:=

E

x
∼

μ

r
e
f

[
d
(
x
,

D

θ

(

E

ϕ

(
x
)
)
)
]

{\displaystyle L(\theta ,\phi ):=\mathbb {\mathbb {E} } \_{x\sim \mu \_{ref}}[d(x,D\_{\theta }(E\_{\phi }(x)))]}

{\displaystyle L(\theta ,\phi ):=\mathbb {\mathbb {E} } _{x\sim \mu _{ref}}[d(x,D_{\theta }(E_{\phi }(x)))]}Autopenyandi *optimal* untuk tugas yang diberikan {\displaystyle (\mu \_{ref},d)} adalah kemudian {\displaystyle \arg \min \_{\theta ,\phi }L(\theta ,\phi )}. Pencarian autopenyandi yang optimal dapat dilakukan dengan teknik optimasi matematis apa pun, tetapi biasanya dengan penurunan gradien. Proses pencarian ini disebut sebagai "melatih autopenyandi". Dalam kebanyakan situasi, persebaran rujukan hanyalah persebaran empiris yang diberikan oleh kumpulan data {\displaystyle \{x\_{1},...x\_{N}\}\subset {\mathcal {X}}}, sehingga



μ

r
e
f

=

1
N

∑

i
=
1

N

δ

x

i



{\displaystyle \mu \_{ref}={\frac {1}{N}}\sum \_{i=1}^{N}\delta \_{x\_{i}}}

{\displaystyle \mu _{ref}={\frac {1}{N}}\sum _{i=1}^{N}\delta _{x_{i}}}dimana dan {\displaystyle \delta \_{x\_{i}}} adalah ukuran Dirac, dan fungsi kualitas hanyalah kerugian L2: {\displaystyle d(x,x')=\|x-x'\|\_{2}^{2}}, {\displaystyle \|\cdot \|\_{2}} adalah norma Euclidean. Maka masalah pencarian autopenyandi yang optimal hanyalah optimasi kuadrat terkecil :



min

θ
,
ϕ

L
(
θ
,
ϕ
)
,

where 

L
(
θ
,
ϕ
)
=

1
N

∑

i
=
1

N

‖

x

i

−

D

θ

(

E

ϕ

(

x

i

)
)

‖

2

2

{\displaystyle \min \_{\theta ,\phi }L(\theta ,\phi ),{\text{where }}L(\theta ,\phi )={\frac {1}{N}}\sum \_{i=1}^{N}\|x\_{i}-D\_{\theta }(E\_{\phi }(x\_{i}))\|\_{2}^{2}}

{\displaystyle \min _{\theta ,\phi }L(\theta ,\phi ),{\text{where }}L(\theta ,\phi )={\frac {1}{N}}\sum _{i=1}^{N}\|x_{i}-D_{\theta }(E_{\phi }(x_{i}))\|_{2}^{2}}
### Penafsiran

 Skema autopenyandi dasar
Autopenyandi memiliki dua bagian utama: penyandi yang memetakan pesan ke sandi, dan pengawasandi yang merekonstruksi pesan dari sandi. Autopenyandi yang optimal akan melakukan rekonstruksi sedekat mungkin dengan sempurna, dengan "mendekati sempurna" ditentukan oleh fungsi kualitas rekonstruksi {\displaystyle d} .

Cara termudah untuk melakukan tugas penyalinan dengan sempurna adalah dengan menduplikasi sinyal. Untuk menekan perilaku ini, ruang kode {\displaystyle {\mathcal {Z}}} biasanya memiliki dimensi yang lebih kecil dibandingkan ruang pesan {\displaystyle {\mathcal {X}}} .

Autopenyandi seperti ini disebut *undercomplete*. Hal ini dapat diartikan sebagai mengempa pesan, atau mengurangi dimensinya.  

Pada batas autopenyandi ideal yang kurang lengkap, setiap sandi yang mungkin {\displaystyle z} di ruang sandi digunakan untuk menyandikan pesan {\displaystyle x} yang benar-benar muncul dalam distribusi {\displaystyle \mu \_{ref}}, dan pengawasandinya juga sempurna: {\displaystyle D\_{\theta }(E\_{\phi }(x))=x}. Autopenyandi ideal ini kemudian dapat digunakan untuk menghasilkan pesan yang tidak dapat dibedakan dari pesan sebenarnya, dengan memasukkan sandi arbitrer pengawasandinya {\displaystyle z} dan memperoleh {\displaystyle D\_{\theta }(z)}, yaitu pesan yang benar-benar muncul dalam pendistribusian {\displaystyle \mu \_{ref}} .

Jika ruang kode {\displaystyle {\mathcal {Z}}} memiliki dimensi lebih besar dari ( *overcomplete* ), atau sama dengan, ruang pesan {\displaystyle {\mathcal {X}}}, atau unit tersembunyi diberi kapasitas yang cukup, autopenyandi dapat mempelajari fungsi identitas dan menjadi tidak berguna. Namun, hasil eksperimen menemukan bahwa autopenyandi yang terlalu lengkap mungkin masih mempelajari fitur-fitur yang berguna. 

Dalam kondisi ideal, dimensi sandi dan dayatampung model dapat diatur berdasarkan kerumitan persebaran data yang akan dimodelkan. Cara baku untuk melakukannya adalah dengan menambahkan modifikasi pada autopenyandi dasar, yang akan dirinci di bawah.

Sejarah
-------

Autopenyandi pertama kali diusulkan sebagai generalisasi nonlinier dari analisis komponen utama (PCA) oleh Kramer.  Autopenyandi juga disebut autopenghimpun,  atau jaringan Diabolo.   Penerapan pertamanya dimulai pada awal tahun 1990an.    Penerapannya yang paling tradisional adalah reduksi dimensi atau pembelajaran fitur, tetapi konsep ini digunakan secara luas untuk mempelajari model data generatif.  Beberapa AI paling kuat di tahun 2010-an melibatkan autopenyandi yang ditumpuk di dalam jaringan saraf dalam .

Referensi
---------

1. 1 2 3  Kramer, Mark A. (1991). "Nonlinear principal component analysis using autoassociative neural networks" (PDF). *AIChE Journal*. **37** (2): 233–243. doi:10.1002/aic.690370209.
2. ↑  Kramer, M. A. (1992-04-01). "Autoassociative neural networks". *Computers & Chemical Engineering*. Neutral network applications in chemical engineering (dalam bahasa Inggris). **16** (4): 313–328. doi:10.1016/0098-1354(92)80051-A. ISSN 0098-1354.
3. 1 2 3  Goodfellow, Ian; Bengio, Yoshua; Courville, Aaron (2016). *Deep Learning*. MIT Press. ISBN 978-0262035613.
4. ↑  Vincent, Pascal; Larochelle, Hugo (2010). "Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion". *Journal of Machine Learning Research*. **11**: 3371–3408.
5. ↑  Welling, Max; Kingma, Diederik P. (2019). "An Introduction to Variational Autoencoders". *Foundations and Trends in Machine Learning*. **12** (4): 307–392. arXiv:1906.02691 alt=Dapat diakses gratis. Bibcode:2019arXiv190602691K. doi:10.1561/2200000056.
6. ↑  Hinton GE, Krizhevsky A, Wang SD. Transforming auto-encoders. In International Conference on Artificial Neural Networks 2011 Jun 14 (pp. 44-51). Springer, Berlin, Heidelberg.
7. 1 2  Géron, Aurélien (2019). *Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow*. Canada: O’Reilly Media, Inc. hlm. 739–740.
8. ↑  Liou, Cheng-Yuan; Huang, Jau-Chi; Yang, Wen-Chie (2008). "Modeling word perception using the Elman network". *Neurocomputing*. **71** (16–18): 3150. doi:10.1016/j.neucom.2008.04.030.
9. ↑  Liou, Cheng-Yuan; Cheng, Wei-Chen; Liou, Jiun-Wei; Liou, Daw-Ran (2014). "Autoencoder for words". *Neurocomputing*. **139**: 84–96. doi:10.1016/j.neucom.2013.09.055.
10. ↑  Hinton, G. E.; Salakhutdinov, R.R. (28 July 2006). "Reducing the Dimensionality of Data with Neural Networks". *Science*. **313** (5786): 504–507. Bibcode:2006Sci...313..504H. doi:10.1126/science.1127647. PMID 16873662.
11. 1 2  Bengio, Y. (2009). "Learning Deep Architectures for AI" (PDF). *Foundations and Trends in Machine Learning*. **2** (8): 1795–7. doi:10.1561/2200000006. PMID 23946944.
12. ↑  Japkowicz, Nathalie; Hanson, Stephen José; Gluck, Mark A. (2000-03-01). "Nonlinear Autoassociation Is Not Equivalent to PCA". *Neural Computation*. **12** (3): 531–545. doi:10.1162/089976600300015691. ISSN 0899-7667. PMID 10769321.
13. ↑  Schwenk, Holger; Bengio, Yoshua (1997). "Training Methods for Adaptive Boosting of Neural Networks". *Advances in Neural Information Processing Systems*. MIT Press. **10**.
14. ↑  Schmidhuber, Jürgen (January 2015). "Deep learning in neural networks: An overview". *Neural Networks*. **61**: 85–117. arXiv:1404.7828 alt=Dapat diakses gratis. doi:10.1016/j.neunet.2014.09.003. PMID 25462637.
15. ↑  Hinton, G. E. & Zemel, R. S. (1994). Autoencoders, minimum description length and Helmholtz free energy. In *Advances in neural information processing systems 6* (pp. 3-10).
16. ↑  Generating Faces with Torch, Boesen A. Larsen L. and Sonderby S.K. 2015 torch.ch/blog/2015/11/13/gan.html
17. ↑  Domingos, Pedro (2015). "4". *The Master Algorithm: How the Quest for the Ultimate Learning Machine Will Remake Our World*. Basic Books. "Deeper into the Brain" subsection. ISBN 978-046506192-1.