2016-03-29 20 views
1

標準的な特徴ベクトルの集合を学習するためにニューラルネットワークを構築したいと考えています。したがって、集合は形状(N、100)であり、Nはサンプルの数である。しかしながら、ラベルのセットは形状(N×18)である(例えば、各「ラベル」は18個のエレメントの別のアレイである)。私はケラスや神経網には全く新しいものです。ラベルが1次元(例えば、バイナリ分類では0または1)の場合、ラベルをどのように扱うかしか分かりません。多次元出力にはどのように対処できますか?Keras:2D入力 - > 2D出力?

ありがとうございます!

答えて

2

多分私はその質問を完全に理解していないかもしれませんが、最も簡単な方法は18ニューロンの出力層を持つことでしょう。各ニューロンは1つの値を出力する。すなわち、出力は18の値のベクトルになる。

これを行う可能な方法の1つは、隠れ層を持つフィードフォワードニューラルネットワークである。 100個のニューロンを含む。このためにKerasにDense layerが必要です。

nb_hidden = 100 

model = Sequential() 
model.add(Dense(input_dim = 100, output_dim = nb_hidden) 
model.add(Dense(output_dim = 18, activation = 'softmax') 
model.compile(loss='categorical_crossentropy', optimizer='adadelta') 

あなたが良好な結果を得るまで、隠れ層の数、一般的なネットワークトポロジ(例えばドロップアウト層を含む)と活性化関数を変化させることを検討してください。