توليد الموسيقى الكلاسيكية باستخدام شبكة عصبية متكررة

في الوقت الحاضر ، تقوم الشبكات العصبية المدربة بأشياء مذهلة ، لكن التجارب في هذا المجال تستمر في اكتشاف شيء جديد. على سبيل المثال ، نشر المبرمج دانيال جونسون نتائج تجاربه على استخدام الشبكات العصبية لتوليد الموسيقى الكلاسيكية.

لسوء الحظ ، لا يمكنك تضمين ملف صوتي في GT ، لذا يجب عليك إعطاء رابط مباشر للاستماع إلى إحدى النتائج: http://hexahedria.com/files/nnet_music_2.mp3 .

كيف فعلها؟

يقول دانييل جونسون إنه ركز على خاصية الثبات. معظم الشبكات العصبية الموجودة لتوليد الموسيقى هي ثابتة على مدار الوقت ، ولكنها ليست ثابتة. لذلك ، فإن تغيير خطوة واحدة سيؤدي إلى نتيجة مختلفة تمامًا. بالنسبة لمعظم التطبيقات الأخرى ، يعمل هذا النهج بشكل جيد ، ولكن ليس في الموسيقى. أود هنا أن نحقق الانسجام في التناغم.

وجد دانيال نوعًا واحدًا فقط من الشبكات العصبية الشائعة حيث يوجد ثبات في عدة اتجاهات: وهي شبكات عصبية تلافيفية للتعرف على الصور.



قام المؤلف بتكييف النموذج التلافيفي ، مضيفًا شبكة عصبية متكررة لكل بكسل مع ذاكرته الخاصة ، واستبدال البكسل بملاحظات. وهكذا ، حصل على نظام ثابت في الوقت والملاحظات.



ولكن في مثل هذه الشبكة لا توجد آلية للحصول على الحبال المتناغمة: في الإخراج ، كل ملاحظة مستقلة تمامًا عن غيرها.

لتحقيق مزيج من الملاحظات ، استخدم جونسون نموذجًا مثل RNN-RBM ، حيث يكون جزء من الشبكة العصبية مسؤولًا عن الوقت ، والجزء الآخر هو عن الحبال الساكن. للتغلب على قيود RBM ، توصل إلى إدخال محورين: للوقت وللملاحظات (ومحور زائف لاتجاه الحسابات).



باستخدام مكتبة Theanoأنشأ المؤلف شبكة عصبية وفقًا لنموذجه. أخذت الطبقة الأولى مع المحور الزمني المعلمات التالية عند الإدخال: الموضع ، الملعب ، قيمة الملاحظات المحيطة ، السياق السابق ، الإيقاع. بعد ذلك ، تم تشغيل الكتل ذاتية الإنشاء المستندة إلى الذاكرة قصيرة المدى (LSTM): في أحدهما ، يتم توجيه الاتصالات المتكررة على طول محور الوقت ، وفي الأخرى على طول محور الملاحظات. بعد كتلة LSTM النهائية ، توجد طبقة بسيطة غير متكررة لإصدار النتيجة النهائية ، ولها قيمتا إخراج: احتمالية اللعب لملاحظة معينة واحتمالية النطق (أي احتمال دمج الملاحظة مع أخرى).

أثناء التدريب ، استخدمنا مجموعة مختارة عشوائيًا من الأجزاء الموسيقية القصيرة من مجموعة MIDI Piano Classi Piano. ثم لعبنا قليلاً باستخدام اللوغاريتمات بحيث تكون معلمة الإنتروبيا في الناتج ليست منخفضة جدًا على الأقل. لضمان التخصص في الطبقات ، استخدمنا تقنية مثل التسرب ، عندما تم استبعاد نصف العقد المخفية في كل خطوة من خطوات التدريب عن طريق الخطأ.

يتكون النموذج العملي من طبقتين خفيتين في الوقت المناسب ، كل منهما من 300 عقدة ، وطبقتين على طول محور الملاحظات ، لـ 100 و 50 عقدة ، على التوالي. تم إجراء التدريب في الجهاز الظاهري g2.2xlarge في سحابة Amazon Web Services.

النتائج



يتم نشر الكود المصدري للبرنامج على Github .

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


All Articles