想起過程においてニューラルネットワークの出力した値を各音符に対応させるため、 量子化をして細かな数字を除外してから、音符としての数値化をする必要がある。 その手法として、当研究室卒業生の保木氏が提案した手法を用いる[8]。 次に、その方法について説明する。
音符を数値に変換する方法
音符を高さと長さに分けて、それぞれをニューロンで表すために、0から1の値に 変換することが必要である。 音符の高さの場合3オクターブをそのまま0から1に線形に 割り当てるだけでいいのであるが、音符の長さの場合、短い音符の値が他の 短い音符の値に近くなってしまうので、次のように割り当てる。
は音符の長さ、
は変換後の値である。
この変化の様子を図5.1 に示す。
このようにすると、全音符、2分音符、4分音符、8分音符、16分音符の 間隔が均等になる。 また、グラフの上では4分音符1つを0.6[sec]として表示する。
数値を音符に変換する方法
音符の長さは、間隔が になるようになっているので
から
までが全音符、
から
までが2分音符というように割り当てる。
音符の高さは、0から1の間に
段階あるので、間隔は
である。
このことからわかるように、長さは誤差が
以上で誤りが生じるのに対して、
高さは誤差が
以上という小さい値で誤りが生じる。
このことから、長さの方が速く学習できると考えられる。