Jaringan saraf mendalam MuseNet menulis musik

Pada tanggal 29 Mei, kami akan memulai kursus Jaringan Saraf Python , yang berbicara tentang pembelajaran mesin dalam dan mengajarkan Anda bagaimana menyelesaikan tugas paling rumit yang dikelola oleh seorang insinyur pembelajaran mendalam. Untuk menunjukkan betapa menarik dan beragamnya pekerjaan di bidang pembelajaran mesin, kami sarankan Anda membiasakan diri dengan serangkaian terjemahan artikel tentang topik jaringan saraf di Python.



Apa itu MuseNet?


Kami telah membuat dan mempersembahkan kepada Anda MuseNet - jaringan saraf yang dalam yang dapat membuat komposisi musik empat menit menggunakan sepuluh instrumen berbeda. Eksperimen MuseNet dengan menggabungkan gaya musik yang berbeda: dari negara ke maha karya Mozart dan hits abadi The Beatles.

Dasar jaringan bukanlah persepsi dan pemahaman kita akan musik, tetapi kemampuan untuk menemukan sampel harmoni, ritme, dan gaya dalam ratusan ribu file MIDI, dan kemudian membuat karya Anda sendiri. MuseNet Neural Network menggunakan teknologi yang sama dengan GPT-2 - model skala besar yang dilatih untuk memprediksi urutan terbaik dalam teks dan audio. Mengetahui banyak gaya memungkinkan jaringan untuk membuat kombinasi musik yang benar-benar unik dari berbagai generasi.

Token Komposer dan Instrumental


Kami membuat token untuk komposer dan berbagai instrumen musik untuk memberikan kontrol maksimum MuseNet atas sampel yang dibuat jaringan. Selama pelatihan, token komposer dan instrumen ditambahkan ke setiap sampel, yang membantu jaringan belajar untuk menggunakan informasi ini dalam peramalan.

Struktur jangka panjang


MuseNet menggunakan inti yang dihitung ulang dan dioptimalkan Sparse Transformer untuk melatih jaringan 72-level. Menurut pendapat kami, generasi musik adalah ceruk yang sangat sukses untuk menguji dan mengembangkan kemampuan Sparse Transformer.

Pengumpulan dan pemrosesan data


Kami mengumpulkan data untuk melatih MuseNet di berbagai sumber. Proyek- proyek ClassicalArchives dan BitMidi banyak membantu kami, dan mereka memberikan koleksi kolosal kami. Kami juga menggunakan koleksi berbagai musik yang ditemukan di Internet: jazz, musik pop, musik Afrika, India, dan Arab. Selain itu, kami menggunakan koleksi MAESTRO .

Pelatihan berlangsung pada data serial, dengan mempertimbangkan set token, kami meminta jaringan untuk memprediksi token berikutnya. Kami mencoba menggunakan beberapa metode berbeda untuk penyandian file MIDI. Pada awalnya, kami memikirkan pendekatan akor, yang menganggap setiap kombinasi not yang terdengar secara bersamaan sebagai akor terpisah dan menetapkan token yang sesuai. Kami juga mencoba menyingkat pola musik, berkonsentrasi pada awal setiap nada.

bach piano_strings start tempo90 piano:v72:G1 piano:v72:G2 piano:v72:B4 piano:v72:D4 violin:v80:G4 piano:v72:G4 piano:v72:B5 piano:v72:D5 wait:12 piano:v0:B5 wait:5 piano:v72:D5 wait:12 piano:v0:D5 wait:4 piano:v0:G1 piano:v0:G2 piano:v0:B4 piano:v0:D4 violin:v0:G4 piano:v0:G4 wait:1 piano:v72:G5 wait:12 piano:v0:G5 wait:5 piano:v72:D5 wait:12 piano:v0:D5 wait:5 piano:v72:B5 wait:12 

Selama pelatihan, kami:

  • Kami memindahkan catatan pada skala nada (selama pelatihan, jumlah transposisi berkurang);
  • Kami menambah dan mengurangi bunyi keseluruhan dan bunyi sampel individual;
  • Kami bekerja dengan pengaturan waktu: kami mempercepat dan memperlambat setiap fragmen komposisi;
  • Kami biasa bekerja dengan token mixup .

Selain itu, kami menggunakan sesuatu seperti kritikus musik bawaan: kami memintanya untuk mengevaluasi komposisi dan memutuskan apakah sampel ini dibuat dari data yang disajikan atau sudah lama. Perkiraan seperti itu memungkinkan untuk memilih sampel selama generasi.

Integrasi


Untuk membuat model memiliki konteks yang lebih struktural, kami menambahkan integrasi. Selain integrasi posisi standar, kami telah menambahkan integrasi yang melacak aliran waktu dalam sampel. Ini memungkinkan Anda untuk dengan benar dan simultan menanamkan not-not berbunyi bersamaan. Kami juga menambahkan dua integrasi struktural yang memungkinkan MuseNet untuk memahami di bagian komposisi keseluruhan mana sampel tertentu harus ditempatkan.

MuseNet sudah memberikan konser


Mereka yang tertarik dapat berkenalan dengan karya MuseNet, jaringan saraf bahkan memberikan konser online sendiri di Twitch . Bagi mereka yang tertarik untuk membuat jaringan saraf dengan Python dan pembelajaran mesin dalam, kami melakukan webinar terbuka di mana kami akan berbicara tentang program kursus dan keterampilan yang akan diterima siswa.

Source: https://habr.com/ru/post/id451912/


All Articles