Rede neural do zero em Python #04
HTML-код
- Опубликовано: 19 сен 2024
- Nesse vídeo continuamos nosso projeto de construir uma rede neural do zero em Python! Vamos implementar a função de perda Cross Entropy.
Esse modelo é um pouco mais avançado, mas é tudo explicado passo a passo. Nossa rede vai ser focada em problemas de classificação.
Vídeo sobre Cross Entropy: • Redes neurais artifici...
Excelente! Didático nível hard!
Muito bom.... excelente... origado
Eu que agradeço!
Curso mais brabo de ML! Desde os seus conceitos 👏🏾
Muito obrigado, Délcio!
Espero que siga acompanhando.
Abraços
Continue, next to 5
Daqui a pouco sai o quinto! Hehe
Tô passando para revisar cada etapa do código para entender melhor e acho que encontrei um erro, era para a função loss considerar apenas a última iteração mesmo?
Eu fiz de outro jeito, mas não sei se está correto:
def loss(self, softmax):
# Cross Entropy
log_props = np.zeros(self.y.shape[0])
for i, correct_index in enumerate(self.y):
predicted = softmax[i][correct_index]
log_props[i] = -np.log(predicted)
return np.mean(log_props)
Oi! Tudo bem?
Você está correto!!! Na verdade é só deixar como eu fiz mas trocar log_prob = -np.log(predicted) por log_prob = -np.log(predictions).mean().
Acho que eu comi bola aí mesmo.
Obrigado pelo aviso!
@Mehmedll
dúvida: na função loss, criamos predictions(Zerada), atribuímos valores novos mas nunca usamos, qual o objetivo desta variável?
Oi, Charles. Tudo bem?
Muitooo obrigado pelo seu comentário! Eu dei bobeira ali. Pensei em uma coisa e não executei.
A linha: **log_prob = -np.log(predicted)** deveria ser: **log_prob = -np.log(predictions)**.
Com isso eu teria a perda de todas as observações, algo que eu não usei depois, então ficou meio sem objetivo mesmo. Você pode simplesmente excluir essa variável (predictions) ou usar igual acima. Se você decidir usar só precisa lembrar de tirar uma média antes de dar print, um exemplo seria no fit, trocando loss = self.loss(outputs) por loss = self.loss(outputs).mean().
Mais uma vez, muito obrigado.
@charlesadriano1937
Depois que termina da para usa está rede em uma tabela do pandas ??
Dá, sim! É uma rede prontinha para uso! :-)