ニューラルネットの教師あり学習について質問です。
最近誤差逆伝搬法を用いたニューラルネットについて
プログラムを組んで実装してみようと思ったのですが
あまり理解できていない部分があるのでよろしくお願いします。
私が作りたいのはフォントの違う数字画像の認識を
3つの特徴量(a,b,c)、3層のニューラルネット、
閾値関数にシグモイド関数、教師有り学習で作りたいのですが、
私の理解があっているかわからないのでご指摘をお願いします。
・入力層は特徴量が3つなのでニューロンは3つ(a,b,cを入力)。
・中間層は任意でいいということなので10つ。
・出力層は数字が0~9までなので10つ。
教師ベクトルの与え方なのですが
出力層(0~9番とします)において各数字に対応する番号のニューロンは1、それ以外は0、
つまり
出力層の0番の教師ベクトルは{1,0,0,0,0,0,0,0,0,0}
1番目の教師ベクトルは{0,1,0,0,0,0,0,0,0,0}
9番目の教師ベクトルは{0,0,0,0,0,0,0,0,0,1}
(シグモイド関数のため正確には0、1にはなりませんが・・)
とあらかじめ決めておき、
教師ベクトルの学習の際は
0の画像ならば出力層は{1,0,0,0,0,0,0,0,0,0}^T
となるように誤差逆伝搬を用いて中間層・出力層の重みの修正を行い、
同様に1~9の教師画像も対応する出力の番号以外0となるように
学習を行い、
識別を行いたい画像の特徴量を入力した際は
重みの修正は行わず
10この出力の誤差が最小となる教師ベクトルが第一候補、
誤差が最大となる教師ベクトルが第10候補
ということでよろしいのでしょうか?
でもそうすると重みの値が一番最後に学習した教師ベクトルに
対応する重みになっているから
ニューラルネット自体を10個つ用意する必要が
ありますよね・・・?
いま一つ理解できていないのでよろしくお願いします。