# 實驗規劃 - 動機與目標 - 原本是希望訓練機器可以輸入lead sheet類型的Input,輸出bass的音符 - 不過受限於訓練資料,改將「除了Bass的Midi資料」為輸入,預測bass的音符 - 介紹我們的基礎架構 - LSTM和偉大的encoder decoder - 資料的取得與設計 - Data的來源 - minor9 - Jazz Midi - irealpro (for transfer learning) - [midikar](https://midkar.com/jazz/) (for validation) - 進行的處理 - Input / output format - augmentation - 首先:直接硬train (experiment 01) - adam - 我們發現狀況很糟,train出來的東西不大能聽 - 發現 - 有overfitting的現象 - 有微小的起伏,可能有gradient exploding - 改善的方法:兩個方向 - 觀察現在的弱項,從音樂的方面來加強 - 改善LSTM的能力(目前主要是這個) - 改善一:Nadam (experiment 00) - 動機:有出現gradient explsion的狀況,Nadam會提前一步看,應該可以避免這樣的問題 - (其實我們應該試試gradient clipping) - 改善二:在input/output的地方加dense layer,並且加上regularization,並加上gradient clipping - 兩層深的(experiment 02) **<< 目前在這** - 一層寬的 - 都是維持對應的unit數 - 動機 - Input dense layer:原有的東西缺乏和弦根音,並不完整,所以如果Input dense layer可以發揮補全的功用就好了 - Output dense layer:希望LSTM可以更專注在記住資訊 - Dense Layer都有加上batch normalization - Regularization:之前的overfit很嚴重,所以在Dense上都加了l2,LSTM kernel也有,但比較小(0.0001) - gradient clipping:跑過一次之後發現gradient explosion的問題嚴重到無法忽略 - 發現: - gradient explosion的狀況變得更加嚴重了 - regularization確實有發揮它的效果 - 改善三:增減LSTM的unit數 - 50 - 100(對照組) - 200 - 改善四:transfer learning - irealpro dataset - 改善五:Residual - output的改善:v2 data format