私は物理的な問題があります:10の入力パラメータ(性能、温度、容量など)に基づいて10の出力パラメータ(幅、長さ、材料など)等..)。出力パラメータは、明らかに入力パラメータに依存します。しかし、私はどのように知りません。例えば、出力パラメータO1は、入力パラメータI1、I2およびI3に依存することができる。10の入力と10の出力のためのニューロンネットワーク
私は、30k製品の入力/出力パラメータを使ってletのデータを得ました。データベースは、次のようになります。
----------------------------------------------
| Product| I1 | I2 | I3 | ... | O1 | O2 | 03 |
----------------------------------------------
| Prod A | 1.2| 2.3| 4.2| ... | 5.3| 6.2| 1.2|
----------------------------------------------
| Prod B | 2.3| 4.1| 1.2| ... | 8.2| 5.2| 5.0|
----------------------------------------------
| Prod C | 6.3| 3.7| 9.1| ... | 3.1| 4.1| 7.7|
----------------------------------------------
| ... | |
----------------------------------------------
だから私は何をする必要があるかの入力パラメータI 1に基づいて、O 1-O 10 ouputをパラメータ見つけることです - I 10
最初の質問を:もし私は正しい結果を得ました。これは回帰問題です。いくつかの入力値に基づいて出力値を探したいのです(正しい値を決定する関数/定理のデータがあります)。これは正しいです?
私の考えはどのような神経ネットワークは次のようになり
(バックエンドとしてkerasとtensorflowを使用して)、神経ネットワークを訓練/使用するのですか?ベストプラクティスは何ですか?
入力層が10層、深層層が2層、ニューロン層が100層あり、出力層が10層あります。 kerasでは、これは次のようになります。
def baseline_model(self, callback):
model = Sequential()
model.add(Dense(100, input_dim=10, activation="relu"))
model.add(Dense(100, activation="relu"))
model.add(Dense(10))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=["accuracy"])
model.fit(input_train, output_train, batch_size=5, epochs=2000, verbose=2, callbacks=[callback], shuffle=True, validation_data=(input_val,output_val))
scores = model.evaluate(input_val, output_val, verbose=1)
print("Scores:",scores)
もちろんモデルはthatsの、期待と同じように動作しない理由を私は...トレーニングfailes助けを求めています:
Epoch 1999/2000
7s - loss: 47634520366153.6016 - acc: 0.0000e+00 - val_loss: 9585392308285.4395 - val_acc: 0.0000e+00
任意の提案どのような私は変えるべきですか?私は "シグモイド"を活性化として使用し、データを[0,1]に正規化することを考えました。何かアドバイスのため
おかげで