まず、音符を数値に変換するプログラムを作成する。音符は、この研究室の先輩である 拓殖氏が作ったテキストファイルを.au形式に変換するaudioというプログラムで 読める形式のもので、長さは全音符から32分音符で、 高さは3オクターブまでである。
音符を高さと長さに分けて、それぞれをニューロンで表すために、0から1の値に 変換することが必要である。 音符の高さの場合3オクターブをそのまま0から1に線形に 割り当てるだけでいいのであるが、音符の長さの場合、短い音符の値が他の 短い音符の値に近くなってしまうので、次のように割り当てる。
は音符の長さ、
は変換後の値である。
このようにすると、全音符、2分音符、4分音符、8分音符、16分音符の
間隔が均等になる。
次に、数値をaudioで読める形式の音符に変換するプログラムを作成する。
音符の長さは、間隔が になるようになっているので
から
までが全音符、
から
までが2分音符というように割り当てる。
音符の高さは、0から1の間に
段階あるので、間隔は
である。
このことからわかるように、長さは誤差が
以上で誤りが生じるのに対して、
高さは誤差が
以上という小さい値で誤りが生じる。
このことから、長さの方が速く学習できると考えられる。