Treinar rede neural com função de perda personalizada
Agora vamos usar a função de perda personalizada que acabamos de criar. Isso permite alterar o comportamento do modelo de maneiras úteis para o nosso problema — ele vai tentar forçar o modelo a aprender ao menos a prever corretamente a direção do movimento do preço. Tudo o que você precisa fazer agora é definir o argumento loss na nossa função .compile() para o nome da função, sign_penalty. Vamos analisar novamente a perda de treino para garantir que ela estabilizou.
Este exercicio faz parte do curso
Machine Learning para Finanças em Python
Instruções do exercicio
- Defina o
input_dimda primeira camada da rede neural como o número de colunas descaled_train_featuresusando a propriedade.shape[1]. - Use a função de perda personalizada
sign_penaltypara.compile()o nossomodel_2. - Plote a perda a partir do
historydo ajuste. A perda está emhistory.history['loss'].
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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()