---
# System prepended metadata

title: 實驗規劃

---

# 實驗規劃

- 動機與目標
  - 原本是希望訓練機器可以輸入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
- 改善的方法：兩個方向
  - 觀察現在的弱項，從音樂的方面來加強
  - 改善LSTＭ的能力（目前主要是這個）
- 改善一：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