Tantangan golf neural net sebelumnya ( ini dan itu ) menginspirasi saya untuk mengajukan tantangan baru:
Tantangan
Temukan jaringan neural feedforward terkecil sehingga, diberikan setiap vektor input 4-dimensi dengan entri integer di , output jaringan dengan kesalahan koordinat-bijaksana benar-benar lebih kecil dari .
Tidak dapat diterima
Untuk tantangan ini, jaringan saraf umpan maju didefinisikan sebagai komposisi lapisan . Lapisan adalah fungsi yang ditentukan oleh matriks dari bobot , vektor dari bias , dan fungsi aktivasi yang diterapkan coordinate- bijaksana:
Since activation functions can be tuned for any given task, we need to restrict the class of activation functions to keep this challenge interesting. The following activation functions are permitted:
Identity.
ReLU.
Softplus.
Hyperbolic tangent.
Sigmoid.
Secara keseluruhan, sebuah jaring saraf yang dapat diterima mengambil bentuk untuk beberapa , di mana setiap lapisan ditentukan oleh bobot , bias , dan fungsi aktivasi dari daftar di atas. Misalnya, jaring saraf berikut ini dapat diterima (meskipun tidak memenuhi tujuan kinerja dari tantangan ini, itu mungkin merupakan gadget yang berguna):
Contoh ini menunjukkan dua lapisan. Kedua lapisan memiliki bias nol. Lapisan pertama menggunakan aktivasi ReLU, sedangkan yang kedua menggunakan aktivasi identitas.
Mencetak gol
Your score is the total number of nonzero weights and biases.
(E.g., the above example has a score of 16 since the bias vectors are zero.)
sumber
Jawaban:
Oktaf ,
96 88 87 84 76 5450 bobot & biasJaringan saraf 6 lapis ini pada dasarnya adalah jaringan sortir 3 langkah yang dibangun dari jaringan
min
/max
komponen yang sangat sederhana . Ini pada dasarnya adalah contoh jaringan dari wikipedia seperti yang ditunjukkan di bawah ini, dengan sedikit modifikasi: Dua perbandingan pertama dilakukan secara paralel. Untuk melewati angka negatif melalui ReLU, kita tambahkan saja 100 dulu, lalu kurangi 100 lagi di akhir.Jadi ini harus dianggap sebagai baseline karena merupakan implementasi yang naif. Namun itu mengurutkan semua angka yang mungkin yang tidak memiliki besaran terlalu besar dengan sempurna. (Kami dapat menyesuaikan rentang dengan mengganti 100 dengan nomor lain.)
Cobalah online!
maks / komponen min
Ada cara (yang
jauh kurang eleganlebih elegan sekarang, terima kasih @xnor!) Cara untuk menemukan minimum dan maksimum dua angka menggunakan lebih sedikit parameter:Ini berarti kita harus menggunakan bobot dan bias yang jauh lebih sedikit.
Terima kasih @ Joel untuk menunjukkan bahwa cukup untuk membuat semua angka positif pada langkah pertama dan membalikkannya pada yang terakhir, yang menghasilkan bobot -8. Terima kasih @xnor karena telah menunjukkan metode max / min yang lebih pendek yang menghasilkan bobot -22! Terima kasih @ DustinG.Mixon untuk tip menggabungkan matriks tertentu yang menghasilkan bobot -4 lagi!
Cobalah online!
sumber
(a - relu(a-b), b + relu(a-b))
?