Assim como uma pessoa relatou nesse tópico, o meu resultado da aula 'Testando a rede e vendo o quanto erramos' foi totalmente diferente do obtido na aula.
y_estimado[0,0] = 0.4907501304335729
y_estimado[0,0] * ymax = 4276.396636598154
Testei o código que o professor disponibilizou no github e o resultado também foi diferente.
Eu notei que na aula, na função inicia_camadas, o professor deixou uma multiplicação por 0.1 comentada.
def inicia_camadas(arquitetura, seed = 99):
...
for indice, camada in enumerate(arquitetura):
...
valores_parametros['P' + str(indice_camada)] = np.random.randn(
tamanho_camada_saida, tamanho_camada_entrada) #* 0.1
valores_parametros['b' + str(indice_camada)] = np.random.randn(
tamanho_camada_saida, 1) * 0.1
return valores_parametros
y_estimado[0,0] = 0.000528786918976693
y_estimado[0,0] * ymax = 4.607849211962902
Além disso, no capítulo 2, aula'Criando a estrutura da rede'
, o professor diz que durante o curso seria usado como exempo 3 nodos
. No final da aula, ele explica que, caso fossem 50 nodos
, deveria ser feita a substituição na dim_saida e na dim_entrada. Um dos motivos para o resultado estar sendo diferente é que ele não retornou o código para 3 nodos, mas continuou com 50.
arquitetura = [
{"dim_entrada": 2, "dim_saida": 50, "ativacao": "relu"},
{"dim_entrada": 50, "dim_saida": 1, "ativacao": "sigmoid"},
]
Após remover o # na frente do * 0.1
e modificar o número de nodos para 3, consegui estes resultados:
y_estimado[0,0] = 0.4907501304335729
y_estimado[0,0] * ymax = 4276.396636598154
Caso alguém deseje acompanhar os mesmo resultados do professor precise deixar 50 nodos e o * 0.1
comentado.
y_estimado[0,0] = 0.000528786918976693
y_estimado[0,0] * ymax = 4.607849211962902