Auto Encoder

ディープラーニングの手法のひとつであるオートエンコーダについて、下記書籍を参考に自環境で試してみました。

「音楽で身につけるディープラーニング」(北原鉄朗著/オーム社)

環境)Python3 / WSL2 (GeForce)

オートエンコーダというのは、入力と出力に同じデータを与えてネットワークを学習させるもので、中間層には圧縮されたベクトルが得られます。(16次元)
ここでは、3次元についてもテストしていて、3次元は図示できるので再度学習して長調、短調で色分けしています。(とても興味深い結果です)つまりこのベクトルは、データの特徴を表すものとえいます。

学習データとテストデータの評価結果

I tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:432] Loaded cuDNN version 8907
8/8 [==============================] – 2s 105ms/step – loss: 0.0669 – categorical_accuracy: 0.9905
8/8 [==============================] – 1s 105ms/step – loss: 3.8814 – categorical_accuracy: 0.4664

学習データの圧縮、復元結果

テストデータの圧縮、復元結果

学習データの評価は、そのデータを使って学習していることから復元結果が良く、テストデータはそうでないため結果が良くありません。

長調、短調の色分け

この書籍はオートエンコーダだけでなく、主だったディープラーニングの手法が、具体的なデータを使って解説されてあり、とてもわかりやすいです。音楽としての成果はなかなか難しいところはありますが、音楽データを扱うライブラリがとても充実していてすばらしいです。

関連)
https://decode.red/ed/archives/1600

ライブラリ
input_midi.py

add_rest.py

play_midi.py

About

Categories: 未分類 タグ: