Antrenează rețeaua neuronală cu o funcție de pierdere personalizată
Acum vom folosi funcția de pierdere personalizată pe care tocmai am creat-o. Aceasta ne permite să ajustăm comportamentul modelului în moduri utile, specifice problemei noastre – modelul va fi forțat să învețe cel puțin direcția corectă a mișcării prețului. Tot ce trebuie să facem este să setăm argumentul loss din funcția .compile() la numele funcției noastre, sign_penalty. Vom analiza din nou pierderea din antrenament pentru a ne asigura că s-a stabilizat.
Acest exercițiu face parte din cursul
Machine Learning pentru finanțe în Python
Instrucțiuni pentru exercițiu
- Setează
input_dimal primului strat al rețelei neuronale la numărul de coloane ale luiscaled_train_features, folosind proprietatea.shape[1]. - Folosește funcția de pierdere personalizată
sign_penaltypentru a apela.compile()pemodel_2. - Reprezintă grafic pierderea din
historyrezultat în urma antrenamentului. Pierderea se găsește lahistory.history['loss'].
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Create the model
model_2 = Sequential()
model_2.add(Dense(100, input_dim=____, activation='relu'))
model_2.add(Dense(20, activation='relu'))
model_2.add(Dense(1, activation='linear'))
# Fit the model with our custom 'sign_penalty' loss function
model_2.compile(optimizer='adam', loss=____)
history = model_2.fit(scaled_train_features, train_targets, epochs=25)
plt.plot(____)
plt.title('loss:' + str(round(history.history['loss'][-1], 6)))
plt.show()