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