Mengapa regularisasi tidak menyelesaikan kelaparan Neural Nets for data?


37

Suatu masalah yang sering saya lihat dalam konteks Neural Networks pada umumnya, dan Deep Neural Networks pada khususnya, adalah bahwa mereka "lapar data" - yaitu mereka tidak berkinerja baik kecuali kita memiliki kumpulan data yang besar untuk melatih jaringan.

Pemahaman saya adalah bahwa ini disebabkan oleh fakta bahwa NNets, terutama Deep NNets, memiliki sejumlah besar derajat kebebasan. Jadi sebagai model, NNet memiliki jumlah parameter yang sangat besar, dan jika jumlah parameter model tersebut relatif besar terhadap jumlah poin data pelatihan, ada kecenderungan meningkat untuk kecocokan.

Tetapi mengapa masalah ini tidak diselesaikan dengan regularisasi? Sejauh yang saya tahu NNets dapat menggunakan regularisasi L1 dan L2 dan juga memiliki metode regularisasi sendiri seperti dropout yang dapat mengurangi jumlah parameter dalam jaringan.

Bisakah kita memilih metode regularisasi kita sehingga mereka menegakkan kekikiran dan membatasi ukuran jaringan?


Untuk memperjelas pemikiran saya: Katakanlah kita menggunakan Deep NNet yang besar untuk mencoba memodelkan data kita, tetapi set datanya kecil dan sebenarnya bisa dimodelkan dengan model linier. Lalu mengapa bobot jaringan tidak bertemu sedemikian rupa sehingga satu neuron mensimulasikan regresi linier dan semua yang lain berkumpul menjadi nol? Mengapa regularisasi tidak membantu dengan ini?


7
"Lalu mengapa tidak bobot jaringan menyatu sedemikian rupa sehingga satu neuron mensimulasikan regresi linier dan semua yang lain menyatu dengan nol? Mengapa regularisasi tidak membantu dengan ini?" Saya benar-benar berpikir bahwa ini akan membuat makalah yang sangat menarik: membangun jaringan dan masalah itu dan kemudian menilai apa yang terjadi.
Sycorax berkata Reinstate Monica

Nah, Anda memiliki masalah penurunan gradien di lapisan jaringan yang lebih dalam bahkan ketika Anda mengaturnya. Inilah sebabnya mengapa orang menggunakan normalisasi batch untuk secara efektif melakukan apa yang Anda gambarkan. Pendekatan lain sudah memperhitungkan ini (seperti LSTM) dan ada hal-hal yang dapat membantu mengatasi kelaparan seperti putus sekolah.
Benjamin Gruenbaum


sebagai jawaban @cliffab di bawah ini, regularisasi bukan apa yang Anda butuhkan untuk meningkatkan kinerja. sederhananya, sekelompok gambar kucing yang diputar tidak sama dengan gambar kucing tunggal dengan regularisasi.
seanv507

1
Saya tidak terkejut sama sekali. Dengan jenis deret waktu yang saya tangani di tempat kerja saya belum menemukan metode yang mengalahkan metode deret waktu skool lama, tapi saya terus berusaha :)
Aksakal

Jawaban:


43

Cara sederhana untuk menjelaskannya adalah bahwa regularisasi membantu untuk tidak cocok dengan kebisingan, itu tidak melakukan banyak hal dalam menentukan bentuk sinyal. Jika Anda menganggap pembelajaran mendalam sebagai aproksimasi fungsi agung raksasa, maka Anda menyadari bahwa ini membutuhkan banyak data untuk menentukan bentuk sinyal kompleks.

Jika tidak ada noise maka peningkatan kompleksitas NN akan menghasilkan perkiraan yang lebih baik. Tidak akan ada penalti untuk ukuran NN, lebih besar akan lebih baik dalam setiap kasus. Pertimbangkan perkiraan Taylor, lebih banyak istilah selalu lebih baik untuk fungsi non-polinomial (mengabaikan masalah presisi numerik).

Ini rusak di hadapan kebisingan, karena Anda mulai menyesuaikan diri dengan kebisingan. Jadi, inilah regularisasi untuk membantu: mungkin mengurangi kesesuaian dengan kebisingan, sehingga memungkinkan kami untuk membangun NN yang lebih besar agar sesuai dengan masalah nonlinier.

Diskusi berikut ini tidak penting untuk jawaban saya, tetapi saya menambahkan sebagian untuk menjawab beberapa komentar dan memotivasi bagian utama dari jawaban di atas. Pada dasarnya, sisa jawaban saya adalah seperti api Prancis yang datang dengan hidangan burger, Anda dapat melewatinya.

(Ir) Kasus yang relevan: Regresi polinomial

Mari kita lihat contoh mainan dari regresi polinomial. Ini juga merupakan pendekatan yang cukup baik untuk banyak fungsi. Kita akan melihat fungsi di wilayah x ( - 3 , 3 ) . Seperti yang dapat Anda lihat dari seri Taylor-nya di bawah ini, ekspansi urutan ke-7 sudah sangat cocok, sehingga kita dapat berharap bahwa polinomial dari urutan 7+ harus sangat cocok juga:dosa(x)x(-3,3)

masukkan deskripsi gambar di sini

Selanjutnya, kita akan menyesuaikan polinomial dengan tatanan yang semakin tinggi ke kumpulan data kecil yang sangat bising dengan 7 pengamatan:

masukkan deskripsi gambar di sini

Kita dapat mengamati apa yang telah kita ketahui tentang polinomial oleh banyak orang yang tahu: mereka tidak stabil, dan mulai terombang-ambing secara liar dengan peningkatan urutan polinomial.

Namun, masalahnya bukan polinomial itu sendiri. Masalahnya adalah kebisingan. Ketika kita memasukkan polinomial ke data berisik, bagian dari kesesuaiannya adalah noise, bukan ke sinyal. Berikut adalah polinomial yang sama persis yang cocok untuk kumpulan data yang sama tetapi dengan noise yang sepenuhnya dihapus. Cocok sangat bagus!

dosa(x)

masukkan deskripsi gambar di sini

Perhatikan juga bahwa polinomial orde tinggi tidak sesuai dengan urutan 6, karena tidak ada cukup pengamatan untuk mendefinisikannya. Jadi, mari kita lihat apa yang terjadi dengan 100 pengamatan. Pada bagan di bawah ini Anda melihat bagaimana kumpulan data yang lebih besar memungkinkan kami untuk menyesuaikan polinomial dengan tingkat yang lebih tinggi, sehingga mencapai kesesuaian yang lebih baik!

masukkan deskripsi gambar di sini

Hebat, tapi masalahnya kita biasanya berurusan dengan data yang berisik. Lihatlah apa yang terjadi jika Anda cocok dengan 100 pengamatan data yang sangat bising, lihat grafik di bawah ini. Kami kembali ke titik awal: polinomial orde tinggi menghasilkan pas berosilasi mengerikan. Jadi, meningkatkan set data tidak banyak membantu dalam meningkatkan kompleksitas model untuk lebih menjelaskan data. Ini, sekali lagi, karena model kompleks lebih cocok tidak hanya dengan bentuk sinyal, tetapi juga untuk bentuk kebisingan.

masukkan deskripsi gambar di sini

Akhirnya, mari kita coba beberapa regularisasi lumpuh pada masalah ini. Bagan di bawah ini menunjukkan regularisasi (dengan hukuman yang berbeda) yang diterapkan untuk memesan 9 regresi polinomial. Bandingkan ini dengan order (power) 9 fit polinomial di atas: pada tingkat regularisasi yang tepat dimungkinkan untuk menyesuaikan polinomial orde tinggi dengan data yang bising.

masukkan deskripsi gambar di sini

Kalau-kalau itu tidak jelas: Saya tidak menyarankan untuk menggunakan regresi polinomial dengan cara ini. Polinomial baik untuk kesesuaian lokal, sehingga polinomial sepotong-bijaksana bisa menjadi pilihan yang baik. Menyesuaikan seluruh domain dengan mereka sering merupakan ide yang buruk, karena mereka peka terhadap kebisingan, memang, sebagaimana harus dibuktikan dari plot di atas. Apakah suara itu numerik atau dari sumber lain tidak begitu penting dalam konteks ini. kebisingan adalah kebisingan, dan polinomial akan bereaksi dengan bersemangat.


8
Dan ketika dataset Anda kecil, sangat sulit untuk membedakan antara noise dan non-noise.
Alex R.

3
sebenarnya regularisasi memungkinkan untuk memiliki NN yang lebih besar tanpa overfitting
Aksakal

6
@ Alex - mengapa itu default ke model yang lebih sederhana? Ada variabilitas yang tidak dapat dijelaskan yang masih dapat disesuaikan dengan meningkatkan kompleksitas! Dan ... tujuannya adalah untuk mengurangi variabilitas yang tidak dapat dijelaskan sebanyak mungkin ... jika tidak, NN akan default ke model paling sederhana yang mungkin, yaitu, "0". Tetapi, seperti yang ditulis Aksakal, karena NN mengurangi variabilitas yang tidak dapat dijelaskan dalam data semakin banyak, itu juga cocok dengan variabilitas yang tidak dapat dijelaskan , yaitu overfitting - sehingga perlu untuk regularisasi.
jbowman

2
Hal lain: anggaplah proses yang mendasari pemodelan Anda berisik, seperti perilaku memilih manusia atau hasil kesehatan yang secara fundamental sulit diprediksi. Katakan juga bahwa data Anda penuh dengan segala macam kesalahan pengukuran dan bahkan mungkin beberapa bias seleksi. Dalam kebisingan yang begitu tinggi ke lingkungan sinyal, saya tidak hanya akan lebih memilih model yang lebih sederhana dengan regularisasi. Saya bahkan mungkin lebih suka lebih sedikit data sehingga saya tidak akhirnya mengukur banyak kebisingan dengan sangat tepat terlepas dari semua upaya regularisasi yang saya lakukan.
Brash Equilibrium

2
@ BrashEquilibrium - titik yang sangat baik. Kami sedang melakukan beberapa peramalan skala besar menggunakan mesin peningkat gradien dengan sekitar 150 fitur, banyak di antaranya memiliki tingkat kebisingan yang tinggi (tetapi masih meningkatkan kualitas perkiraan), dan telah menemukan bahwa memberikan GBM 20% data untuk dilatih pada hasil dalam perkiraan yang lebih baik daripada memberikannya 50% atau lebih, bahkan dengan semua mekanisme regularisasi lainnya diterapkan.
jbowman

7

Pada titik waktu ini, itu tidak dipahami dengan baik kapan dan mengapa metode regularisasi tertentu berhasil dan gagal. Bahkan, itu tidak dipahami sama sekali mengapa pembelajaran yang mendalam bekerja di tempat pertama.

Mempertimbangkan fakta bahwa jaring saraf yang cukup dalam dapat menghafal sebagian besar data pelatihan yang berperilaku baik, ada solusi yang jauh lebih salah daripada ada hak untuk jaring dalam tertentu. Regularisasi, secara luas, adalah upaya untuk membatasi ekspresifitas model untuk solusi "salah" ini - di mana "salah" didefinisikan oleh heuristik yang kami anggap penting untuk domain tertentu . Tetapi seringkali sulit untuk mendefinisikan heuristik sehingga Anda tidak kehilangan ekspresif "benar" dengannya. Contoh yang bagus dari ini adalah hukuman L2.

Sangat sedikit metode yang akan dianggap sebagai bentuk regularisasi yang umumnya berlaku untuk semua area aplikasi ML. Masalah penglihatan, NLP, dan prediksi terstruktur semuanya memiliki buku resep mereka sendiri mengenai teknik regularisasi yang telah terbukti efektif secara eksperimen untuk domain-domain tertentu. Tetapi bahkan dalam domain tersebut, teknik ini hanya efektif dalam keadaan tertentu. Sebagai contoh, normalisasi bets pada jaringan residu dalam nampaknya membuat dropout mubazir, meskipun faktanya keduanya telah terbukti secara independen meningkatkan generalisasi.

Pada catatan terpisah, saya pikir istilah regularisasi sangat luas sehingga menyulitkan untuk memahami apa pun tentang hal itu. Mempertimbangkan fakta bahwa konvolusi membatasi ruang parameter secara eksponensial berkenaan dengan piksel, Anda dapat mempertimbangkan jaringan saraf convolutional sebagai bentuk regularisasi pada jaringan saraf vanili.


Saya tidak yakin apakah saya setuju dengan paragraf pertama Anda.
Ander Biguri

3
Sulit untuk membicarakannya dalam 500 karakter, tetapi para peneliti top di dunia mengklaim bahwa keberhasilan SGD tidak dipahami dengan baik. Sebagai contoh, ambil Ilya S. dari OpenAI: youtube.com/watch?v=RvEwFvl-TrY&feature=youtu.be&t=339
Austin Shin

Sepenuhnya setuju - mungkin alasan mengapa lebih mudah untuk bernalar dengan perkiraan polinomial daripada jaring yang sebenarnya ...
P-Gn

3

Satu kelas teorema yang menunjukkan mengapa masalah ini mendasar adalah Teorema Tanpa Makan Siang Gratis . Untuk setiap masalah dengan sampel terbatas di mana regularisasi tertentu membantu, ada masalah lain di mana regularisasi yang sama akan memperburuk keadaan. Seperti yang ditunjukkan Austin, kita umumnya menemukan bahwa regularisasi L1 / L2 sangat membantu untuk banyak masalah di dunia nyata, tetapi ini hanya pengamatan dan, karena teorema NFL, tidak ada jaminan umum.


3

Saya akan mengatakan bahwa pada tingkat tinggi, bias induktif DNNs (jaringan saraf dalam) kuat tetapi sedikit terlalu longgar atau tidak cukup dikemukakan. Maksud saya, DNN menangkap banyak statistik permukaan tentang apa yang sedang terjadi, tetapi gagal mencapai struktur tingkat tinggi kausal / komposisi yang lebih dalam. (Anda dapat melihat konvolusi sebagai spesifikasi bias induktif pria miskin).

Selain itu, diyakini dalam komunitas pembelajaran mesin bahwa cara terbaik untuk menggeneralisasi (membuat kesimpulan / prediksi yang baik dengan sedikit data) adalah dengan menemukan program terpendek yang memunculkan data. Tetapi induksi / sintesis program sulit dan kami tidak memiliki cara yang baik untuk melakukannya secara efisien. Jadi alih-alih kita mengandalkan perkiraan dekat yang merupakan pencarian rangkaian, dan kita tahu bagaimana melakukannya dengan backpropagation. Di sini , Ilya Sutskever memberikan ikhtisar tentang gagasan itu.


Untuk mengilustrasikan perbedaan kekuatan generalisasi model yang direpresentasikan sebagai program aktual vs model pembelajaran dalam, saya akan menunjukkan yang ada di makalah ini: Simulasi sebagai mesin pemahaman adegan fisik .

masukkan deskripsi gambar di sini

(A) Model IPE [mesin fisika intuitif] mengambil input (misalnya, persepsi, bahasa, memori, gambar, dll.) Yang instantiate distribusi melalui adegan (1), kemudian mensimulasikan efek fisika pada distribusi (2), dan kemudian mengumpulkan hasil untuk output ke sensorimotor dan kemampuan kognitif lainnya (3)

masukkan deskripsi gambar di sini

(B) Exp. 1 (Apakah akan jatuh?) Rangsangan menara. Menara dengan batas merah benar-benar seimbang, dan dua lainnya memiliki ketinggian yang sama, tetapi yang berbatasan biru dinilai jauh lebih kecil kemungkinannya untuk jatuh oleh model dan orang-orang.

(C) Model IPE probabilistik (sumbu x) vs rata-rata penilaian manusia (sumbu y) di Exp. 1. Lihat Gambar. S3 untuk korelasi untuk nilai-nilai lain dari σ dan ϕ. Setiap titik mewakili satu menara (dengan SEM), dan tiga lingkaran berwarna sesuai dengan tiga menara di B.

(D) Kebenaran dasar (nonprobabilistic) vs. penilaian manusia (Exp. 1). Karena tidak mewakili ketidakpastian, ia tidak dapat menangkap penilaian orang untuk sejumlah rangsangan kami, seperti menara berbatasan merah di B. (Perhatikan bahwa kasus ini mungkin jarang terjadi di pemandangan alam, di mana konfigurasi cenderung lebih jelas stabil atau tidak stabil dan IPE diharapkan berkorelasi lebih baik dengan kebenaran dasar daripada pada rangsangan kita.)

Maksud saya di sini adalah bahwa kecocokan dalam C benar-benar baik, karena modelnya menangkap bias yang benar tentang bagaimana manusia membuat penilaian fisik. Ini sebagian besar karena memodelkan fisika aktual (ingat bahwa itu adalah mesin fisika aktual) dan dapat mengatasi ketidakpastian.

Sekarang pertanyaan yang jelas adalah: dapatkah Anda melakukannya dengan pembelajaran yang mendalam? Inilah yang dilakukan Lerer dkk dalam karya ini: Mempelajari Intuisi Fisik Menara Blok dengan Contoh

Model mereka: masukkan deskripsi gambar di sini

Model mereka sebenarnya cukup baik pada tugas yang dihadapi (memprediksi jumlah blok jatuh, dan bahkan arah jatuh mereka)

masukkan deskripsi gambar di sini

Tapi itu menderita dua kelemahan utama:

  • Perlu sejumlah besar data untuk dilatih dengan benar
  • Dalam generalisasi hanya dengan cara yang dangkal: Anda dapat mentransfer ke gambar yang tampak lebih realistis, menambah atau menghapus 1 atau 2 blok. Tapi apa pun di luar itu, dan kinerjanya turun serempak: tambahkan 3 atau 4 blok, ubah tugas prediksi ...

Ada studi perbandingan yang dilakukan oleh laboratorium Tenenbaum tentang dua pendekatan ini: Evaluasi Komparatif Perkiraan Simulasi Probabilistik dan Jaringan Neural Dalam sebagai Akun Pemahaman Adegan Fisik Manusia .

Mengutip bagian diskusi:

Kinerja CNN berkurang karena ada lebih sedikit data pelatihan. Meskipun AlexNet (tidak pretrained) berkinerja lebih baik dengan 200.000 gambar pelatihan, tetapi juga lebih menderita karena kurangnya data, sementara AlexNet yang lebih awal dapat belajar lebih baik dari sejumlah kecil gambar pelatihan. Untuk tugas kami, kedua model ini membutuhkan sekitar 1.000 gambar agar kinerjanya sebanding dengan model IPE dan manusia.

CNN juga memiliki kemampuan generalisasi terbatas bahkan di variasi adegan kecil, seperti mengubah jumlah blok. Sebaliknya, model IPE secara alami menggeneralisasi dan menangkap cara-cara yang mengurangi akurasi penilaian manusia dengan jumlah blok dalam tumpukan.

Secara keseluruhan, hasil-hasil ini menunjuk pada sesuatu yang mendasar tentang kognisi manusia yang tidak ditangkap oleh jaringan saraf (atau setidaknya CNN): keberadaan model mental dari proses sebab-akibat dunia. Model mental kausal dapat disimulasikan untuk memprediksi apa yang akan terjadi dalam situasi yang secara kualitatif baru, dan mereka tidak memerlukan data pelatihan yang luas dan beragam untuk digeneralisasi secara luas, tetapi mereka secara inheren tunduk pada jenis kesalahan tertentu (misalnya, penyebaran ketidakpastian karena keadaan dan noise dinamika) hanya berdasarkan operasi dengan simulasi.

Kembali ke pokok yang ingin saya sampaikan: sementara jaringan saraf adalah model yang kuat, mereka tampaknya tidak memiliki kemampuan untuk mewakili struktur sebab akibat, komposisi dan kompleks. Dan mereka menebusnya dengan membutuhkan banyak data pelatihan.

Dan kembali ke pertanyaan Anda: Saya berani mengatakan bahwa bias induktif yang luas dan fakta bahwa jaringan saraf tidak memodelkan kausalitas / komposisionalitas adalah mengapa mereka membutuhkan begitu banyak data pelatihan. Regularisasi bukanlah perbaikan besar karena cara mereka menggeneralisasi. Perbaikan yang lebih baik adalah mengubah bias mereka, seperti yang saat ini sedang dicoba oleh Hinton dengan kapsul untuk pemodelan geometri seluruh / bagian, atau jaringan interaksi untuk hubungan pemodelan.


2

Pertama-tama ada banyak metode regularisasi yang digunakan dan dalam penelitian aktif untuk pembelajaran yang mendalam. Jadi premis Anda tidak sepenuhnya pasti.

Adapun metode yang digunakan, pembusukan berat adalah implementasi langsung dari hukuman L2 pada bobot melalui gradient descent. Ambil gradien norma kuadrat dari bobot Anda dan tambahkan langkah kecil ke arah ini untuk mereka di setiap iterasi. Putus sekolah juga dianggap sebagai bentuk regularisasi, yang memaksakan semacam struktur rata-rata. Ini tampaknya menyiratkan sesuatu seperti penalti L2 atas ansambel jaringan dengan parameter bersama.

Anda mungkin bisa meningkatkan level ini atau teknik lain untuk mengatasi sampel kecil. Tetapi perhatikan bahwa regularisasi menyiratkan pengenaan pengetahuan sebelumnya. Denda L2 pada bobot menyiratkan Gaussian sebelum bobot, misalnya. Meningkatkan jumlah regularisasi pada dasarnya menyatakan bahwa pengetahuan Anda sebelumnya semakin pasti dan bias hasil Anda terhadap itu sebelumnya. Jadi Anda bisa melakukannya dan itu akan lebih sedikit tetapi output bias mungkin menyedot. Jelas solusinya adalah pengetahuan sebelumnya yang lebih baik. Untuk pengenalan gambar, ini akan berarti prior yang lebih terstruktur mengenai statistik masalah Anda. Masalah dengan arah ini adalah Anda memaksakan banyak keahlian domain, dan menghindari keharusan memaksakan keahlian manusia adalah salah satu alasan Anda menggunakan pembelajaran yang mendalam.


+1 untuk menyebutkan bias. Mengapa tidak menjelaskan semua ini dalam hal bias dan varians? "Overfitting" tidak memiliki definisi matematika yang tepat dan menyiratkan dikotomi yang tidak ada ("overfit" / "not-overfit").
Josh

2

Untuk memperjelas pemikiran saya: Katakanlah kita menggunakan Deep NNet yang besar untuk mencoba memodelkan data kita, tetapi set datanya kecil dan sebenarnya bisa dimodelkan dengan model linier. Lalu mengapa bobot jaringan tidak bertemu sedemikian rupa sehingga satu neuron mensimulasikan regresi linier dan semua yang lain berkumpul menjadi nol? Mengapa regularisasi tidak membantu dengan ini?

Jaring saraf bisa dilatih seperti ini. Jika regularisasi L1 yang tepat digunakan maka banyak dari bobot dapat di-nolkan dan ini akan membuat jaring saraf berperilaku seperti gabungan dari 1 atau lebih neuron regresi linier dan banyak neron nol lainnya. Jadi ya - regularisasi L1 / L2 atau sejenisnya dapat digunakan untuk membatasi ukuran atau kekuatan representasional dari jaringan saraf.

Sebenarnya ukuran model itu sendiri adalah semacam regularisasi - jika Anda membuat model besar, itu berarti bahwa Anda menyuntikkan pengetahuan sebelumnya tentang masalah, yaitu, masalahnya sangat kompleks sehingga membutuhkan model yang memiliki kekuatan representasional yang tinggi. Jika Anda membuat model kecil, maka itu berarti Anda menyuntikkan pengetahuan bahwa masalahnya sederhana sehingga model tidak membutuhkan banyak kapasitas.

Dan ini berarti regularisasi L2 tidak akan membuat jaringan "jarang" seperti yang Anda gambarkan, karena regularisasi L2 menyuntikkan pengetahuan sebelumnya bahwa kontribusi setiap neuron (berat) harus kecil tetapi tidak nol. Jadi jaringan akan menggunakan masing-masing neuron daripada hanya menggunakan set kecil neuron.


1

L.2L.1

Poin kunci di sini adalah bahwa regularisasi tidak selalu membantu. Sebaliknya, mengatur ke arah yang seharusnya benar mungkin sangat membantu, tetapi mengatur ke arah yang salah jelas buruk.

L.2

Tapi sekarang anggaplah data kami adalah gambar kucing yang dimasukkan ke dalam jaringan saraf yang dalam. Jika "telinga runcing" sebenarnya sangat membantu untuk mengidentifikasi kucing, mungkin kita ingin mengurangi hukuman untuk memberikan kekuatan prediksi ini. Tapi kami tidak tahu di mana dalam jaringan ini akan diwakili! Kami masih dapat memberikan penalti sehingga sebagian kecil dari sistem tidak mendominasi keseluruhan jaringan, tetapi di luar itu, sulit untuk memperkenalkan regularisasi dengan cara yang berarti.

Singkatnya, sangat sulit untuk memasukkan informasi sebelumnya ke dalam sistem yang tidak kami mengerti.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.