Pembelajaran Mesin: Input tunggal ke jumlah variabel output

8

Apakah ada algoritma pembelajaran mesin yang memetakan satu input ke daftar output dengan panjang variabel? Jika demikian, apakah ada implementasi algoritma untuk penggunaan umum? Jika tidak, apa yang Anda rekomendasikan sebagai solusi?

Dalam kasus saya, inputnya adalah skalar tunggal dan outputnya adalah daftar skalar dengan panjang variabel. Sebagai contoh, misalkan saya ingin menampilkan daftar yang diberi panjang daftar sebagai input. Kemudian <input, output> bisa <1, [1]>, <2, [1, 1]>, dll. Tweak kecil akan memberikan akar kuadrat dari panjang dalam hal <<, [1, 1 , 1, 1]> akan menjadi jawaban. Catatan: input tidak perlu dikaitkan langsung ke output.


Untuk contoh yang lebih kompleks, anggaplah saya ingin mempelajari urutan tampilan dan katakan . Pasangan <input, output> yang valid adalah: <1, [1]>, <2, [1, 1]>, <3, [2, 1]>, <4, [1, 2, 1, 1] >, <5, [1, 1, 1, 2, 2, 1]>, dll. Masalah saya juga serupa karena saya dapat menghasilkan lebih banyak contoh; Saya tidak terbatas pada serangkaian contoh yang terbatas.

ricksmt
sumber
Bisakah Anda memberikan contoh tentang apa yang Anda maksud? Saya bingung apakah Anda bertanya tentang variabel input tunggal yang dipetakan ke beberapa variabel output yang berbeda, atau variabel input tunggal yang dipetakan ke daftar variabel yang sama.
NBartley
2
Semua contoh yang telah Anda tunjukkan sejauh ini memiliki output tunggal yang dapat dipetakan secara deterministik ke daftar panjang variabel. Berikut ini adalah input tunggal / keluaran tunggal: <1,1>, <2,2>, <2,4> dan skrip deterministik sederhana dapat mengubahnya menjadi <1, [1]>, <2, [1,1 ]>, <2, [1,1,1,1]>. Saya sarankan Anda membagi masalah menjadi bagian pembelajaran mesin dan bagian deterministik.
AN6U5
Terima kasih atas informasi tambahannya. Namun, saya tidak berpikir ada cukup informasi yang disediakan untuk merumuskan respons di luar diskusi heuristik tingkat tinggi seperti yang terlihat dalam jawaban yang diberikan. Batas yang tidak terbatas menghalangi algoritma klasifikasi seperti yang dibahas di bawah ini, jadi ini lebih seperti masalah untuk Model Markov Tersembunyi. Tetapi contoh yang Anda berikan masih kekurangan komponen statistik yang menunjukkan solusi dengan metode pembelajaran statistik. Apakah 'urutan lihat-dan-katakan' masalah sebenarnya atau ada set data terdistribusi secara statistik yang benar-benar Anda kerjakan?
AN6U5
Masalah sebenarnya yang saya minati adalah Collatz Conjuecture . Secara khusus, wawasan apa yang dapat saya peroleh dari algoritma pembelajaran yang mencoba mempelajari < angka Mersenne , hailstone sequence>.
ricksmt
1
Di luar topik karena pertanyaannya adalah masalah matematika murni deterministik yang disusun kembali dalam kedok pembelajaran mesin. Sampel statistik tidak disediakan, melainkan, set kecil kasus dari seri matematika yang tak terbatas dirujuk. OP berharap untuk memulihkan hubungan nonlinear antara fitur input dan daftar bilangan prima yang sesuai dengan fitur input Nomor Mersenne. Ini tidak diajukan dengan baik, juga tidak termasuk dalam daftar topik sains data.
AN6U5

Jawaban:

2

Saya akan mencoba untuk mengatur algoritma klasifikasi multilabel dan membuat standar output dengan menambahkan nol. Jadi jika data Anda seperti ini: <1, 1 >, <2, [1, 1]>, <3, [2, 1]>, <4, [1, 2, 1, 1]>>, <5 , [1, 1, 1, 2, 2, 1]>. Jumlah maksimum output adalah 6. Jadi Anda bisa mengubah data Anda menjadi sesuatu seperti: <1, [1,0,0,0,0,0]>, <2, [1, 1,0,0,0, 0]>, <3, [2, 1,0,0,0,0]>, <4, [1, 2, 1, 1,0,0]>, <5, [1, 1, 1, 2, 2, 1]>

Opsi lain yang terjadi pada saya adalah menambahkan batas secara dinamis. Katakanlah Anda memiliki pelatihan dan set tes Anda. Anda dapat mencari panjang terbesar dan membuat algoritma yang menambahkan nol ke kedua set data. Lalu katakanlah data baru yang ingin Anda prediksi memiliki panjang yang lebih besar, maka Anda harus menghitung ulang semua pelatihan dan uji untuk prediksi baru ini. Anda bahkan dapat memeriksa bagaimana memperluas batas memengaruhi model Anda.

hoaphumanoid
sumber
Ini tidak layak jika tidak ada panjang maksimal, benar?
ricksmt
ya, itu masalah jika Anda tidak memiliki batas. Biarkan saya mengedit jawabannya
hoaphumanoid
Itu solusi yang masuk akal. Adakah jawaban untuk pertanyaan pertama? Apakah ada algoritma yang dapat menghasilkan jumlah output yang bervariasi?
ricksmt
Maaf, tapi itu tidak terjadi pada saya. Saya tidak tahu bagaimana output variabel dapat dikelola secara matematis. Saya selalu bekerja dengan input dan output tetap.
hoaphumanoid
Jangan khawatir. Saya belum pernah mendengar tentang algoritma seperti itu, jadi saya tidak terkejut itu belum dilakukan. Dan sejauh yang saya tahu, sebagian besar set data orang tertarik atau dapat diatur dengan input tetap dan panjang output. Saya akan menunggu beberapa hari kalau-kalau ada orang lain yang tahu sesuatu yang kita tidak tahu, tapi ini kira-kira yang saya harapkan.
ricksmt
1

Jadi beberapa cara yang bisa dipahami:

  1. @Miguel Gonzalez-Fierro menjawab 0-padding. mungkin yang paling mudah diterapkan dan masuk akal.
  2. Jika padding tidak masuk akal untuk masalah Anda, jika output Anda adalah deret waktu, Anda bisa mempelajari model terjemahan neural dan memiliki token STOP / END di output Anda.
  3. Miliki model berbasis generator (seperti perubahan pada VAE) dan kemudian hasilkan sejumlah besar input yang mungkin, dan Anda dapat mengambil # undian yang mencukupi beberapa kriteria (seperti mode dengan sedikit perubahan dengan beberapa informasi kondisional yang dihitung).

Mungkin ada yang lain, tapi saya tidak bisa memikirkan mereka sekarang.

mshlis
sumber