複数の2クラス分類の一括学習
タイトルでは、わけがわからないと思うが、
1種類のデータに対して、2クラス分類問題が複数ある場合の学習。
整数dに対して、2の倍数かどうかと、3の倍数かどうか、・・・を例に学習してみた。
訓練データ形式
x : 8桁のビット整数。アンダーバー2つは、xベクトルの中での次元の番号。
y0:2の倍数かどうか。
y1:3の倍数かどうか。以降5,7,11の倍数かどうか。
x__0,x__1,x__2,x__3,x__4,x__5,x__6,x__7,y0,y1,y2,y3,y4 0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,0,0,0,0,0,0 0,0,0,0,0,0,0,1,0,0,0,0,0 0,0,0,0,0,0,1,0,1,0,0,0,0 0,0,0,0,0,0,1,1,0,1,0,0,0 0,0,0,0,0,1,0,0,1,0,0,0,0 0,0,0,0,0,1,0,1,0,0,1,0,0 0,0,0,0,0,1,1,0,1,1,0,0,0 0,0,0,0,0,1,1,1,0,0,0,1,0 0,0,0,0,1,0,0,0,1,0,0,0,0 0,0,0,0,1,0,0,1,0,1,0,0,0 0,0,0,0,1,0,1,0,1,0,1,0,0 0,0,0,0,1,0,1,1,0,0,0,0,1
所見
- BatchNormalization はあったほうが収束が早い。
- ReLUは収束早い。(Sigmoidに比べて)
- ノード数を減らして、段数を増やすより、ノード数を増やしたほうが精度が高い(今回はノイズなしだから??)
- 分岐前のノード数は、分岐数の2倍以上あったほうが良い(?)