このプログラムについては、当研究室卒業生の保木氏が作成したもを使用した。 次に、そのプログラムについて説明する。
音符を数値に変換するプログラムについて
音符を高さと長さに分けて、それぞれをニューロンで表すために、0から1の値に 変換することが必要である。 音符の高さの場合3オクターブをそのまま0から1に線形に 割り当てるだけでいいのであるが、音符の長さの場合、短い音符の値が他の 短い音符の値に近くなってしまうので、次のように割り当てる。
は音符の長さ、
は変換後の値である。
この変化の様子を図(5.1)に示す。
このようにすると、全音符、2分音符、4分音符、8分音符、16分音符の 間隔が均等になる。
数値を音符に変換するプログラム
音符の長さは、間隔が になるようになっているので
から
までが全音符、
から
までが2分音符というように割り当てる。
音符の高さは、0から1の間に
段階あるので、間隔は
である。
このことからわかるように、長さは誤差が
以上で誤りが生じるのに対して、
高さは誤差が
以上という小さい値で誤りが生じる。
このことから、長さの方が速く学習できると考えられる。