2017-05-21 24 views
0

私はKerasで表情認識に取り組んでいます。畳み込みニューラルネットワークモデルアーキテクチャ

私は72000イメージのデータセットを持っています。私はの列をの80%、の10%、検証の10%をテストに使用しています。

すべての画像はグレースケールモードで48 x 48です。

私のモデルのアーキテクチャは、このようなものです:

model = Sequential() 
model.add(Conv2D(64, 5, 5, border_mode='valid', input_shape=(img_rows, img_cols, 1))) 
model.add(PReLU(init='zero', weights=None)) 
model.add(ZeroPadding2D(padding=(2, 2), dim_ordering='tf')) 
model.add(MaxPooling2D(pool_size=(5, 5),strides=(2, 2))) 

model.add(ZeroPadding2D(padding=(1, 1), dim_ordering='tf')) 
model.add(Conv2D(64, 3, 3)) 
model.add(PReLU(init='zero', weights=None)) 
model.add(ZeroPadding2D(padding=(1, 1), dim_ordering='tf')) 
model.add(Conv2D(64, 3, 3)) 
model.add(PReLU(init='zero', weights=None)) 
model.add(MaxPooling2D(pool_size=(3, 3),strides=(2, 2))) 

model.add(ZeroPadding2D(padding=(1, 1), dim_ordering='tf')) 
model.add(Conv2D(128, 3, 3)) 
model.add(PReLU(init='zero', weights=None)) 
model.add(ZeroPadding2D(padding=(1, 1), dim_ordering='tf')) 
model.add(Conv2D(128, 3, 3)) 
model.add(PReLU(init='zero', weights=None)) 
model.add(ZeroPadding2D(padding=(1, 1), dim_ordering='tf')) 
model.add(MaxPooling2D(pool_size=(3, 3),strides=(2, 2))) 

model.add(Flatten()) 
model.add(Dense(1024)) 
model.add(PReLU(init='zero', weights=None)) 
model.add(Dropout(0.2)) 
model.add(Dense(1024)) 
model.add(PReLU(init='zero', weights=None)) 
model.add(Dropout(0.2)) 

model.add(Dense(7)) 
model.add(Activation('softmax')) 

ada = Adadelta(lr=0.1, rho=0.95, epsilon=1e-08) 

私はいくつかの質問を持っている:

1 /層の数とその最適なパラメータ(たたみ込み、マックス・プーリング、ドロップアウトなど)を選択する方法最高のパフォーマンス(精度)を提供する、私は何に基づいて意味ですか?

2 /パラメータの用語(カーネルとフィルタのサイズ、ストライドなど)の各層の関係は何ですか?

3 /私が言ったように、画像は48 x 48グレースケールモードです。いいですか?パフォーマンスに影響しますか?私のモデルアーキテクチャはこの画像でうまく動作しますか?より大きな画像や色付きの画像を使用すると、パフォーマンスが向上しますか?

答えて

1

回答1)。異なるアーキテクチャーを試すまではわかりません。それでも、プロセスを自動化するのはあなたの負担になります。アーキテクチャーをシリアル化するか、異なるアーキテクチャーを異なるファイルにユニークなIDで保管してみてください。あなたが実験した後、どの人がベストを尽くしたかを見つけることができます。

回答3)。色は灰色ではなく、より多くの機能(R、G、B)を与え、分類器に画像を正しく選択する機会を与えます。ただし、カラーバランス(つまり同じ顔でも、異なる設定で撮影した写真)などの変更に対しても、クラシファイアをより敏感にすることができます。私は、グレースケールの画像を最初に試してみると、機能の量が3倍になるでしょう。

+0

質問2の回答はありますか?ありがとう –

+0

これを見てください:https://stackoverflow.com/questions/42240489/in-what-ways-are-the-output-of-neural-network-layers-useful?rq=1 - それは素敵ですあなたが何を考えているかの説明。 – OZ13

+0

ありがとうございます。 –

関連する問題