WaveRNNベースのボコーダーとやら

arxiv.org

あのさあ・・・あのさあ!!

できない

まず聞きたいんだけど、
これさ、できたやつホントにいるのか?

この論文書いてる人は少なくともできていること前提で書いているんだろう
ただ、未だにこれのコードがGitに上がってないのは、
ほぼほぼできないって言ってるようなもんだと思うんだが


で、
仕方ないから実際に一ヶ月くらい前からネットワーク組んでやってみたけど、
まったくできないな
俺のやり方がおかしいんか?

とかそんなこと思って今日ネットワークの可視化してみた

画像用意するのも面倒だから(そのうち追記)文章にするが、
アップサンプルレイヤー(FC4層)において母音と子音で数値の分布が同じになっている

数値の最大値ははだいぶ異なるがその分布は同じだ
これっておかしいんじゃないか?
いや、実際はおかしいってほどおかしくはない
FCレイヤーだけで構成されているのだからこの結果は見えていた


次、
WaveRNNベースとかいってるのだから、
Split後のGRU含めた工程は実際はGRUのあとにSplitが入って、
u1024のFCレイヤは整数値と少数値の2枚構成でu512*2FCレイヤになるものだと思ってつくってみた

そうなると気になるのがPreviousSampleとやらなんだけど、
これは実値なのか?それとも整数値なのか?
WaveRNNでは前サンプルは整数値を参照するよな

こっちの実験では両方試してみたが、どちらもうまくいかなかった
また、最終FCレイヤに関しても2枚構成と1枚構成(実値をターゲット)でやってみたが、
2枚構成のほうがどうもうまくいかないよう

ってことで、今は実値から実値参照で学習している
つまり論文通りの構成
でもこれってWaveRNNベースじゃなくね?どのへんがベースなんだ?

端折ってるな

まあ薄々気づいていたけど、
これだいぶ端折ってるか、適当に書いてるな

予想だとアップサンプルは論文の文章の通りの可能性がある
つまり、1024の全結合じゃなくて128ユニット*8レイヤのFC4層
ただこれもうまくいく可能性はないんだろうな

だから、もうこれ全結合じゃなくて畳み込み層だと思われ
ほかの可能性としては、アップサンプルプロセスが不要かもしれない

この手のエンコーダープロセスで全結合をアップサンプルにつかうのなんて、まず見ない
結果、出力の模様が同じものが出来上がってしまう関係で後のGRUがこれを判別できなくなっている
そりゃそうだ、毎回同じ分布で数値だけ違うなんて、そんなの1つの整数値つかっているのと大差ないんだから

このモデルに関して言えば、Seq-2-Seqの仕組みをしているのだから
なおのことこれで成功するわけがなかった

特殊も特殊で、これに限ってはできるんじゃないか、なんて、
淡い期待をしていたのだが、どうやら馬鹿をみたらしい

おわり

試すだけ無駄だったみたいだから、
そろそろ切り上げてGithubに上がっている既存のWaveRNNつかうか、
それともせっかくここまでつくったのだから
とりあえず経験として完成形目指してみるのも面白いかもしれない

機械学習に関してはGitに上がっているものをつかうばっかりで自分でモデルをつくったこともなかったからな
これを期に汎化モデルの作り方を学んでみるのもいいかもしれない