Então, eu tenho tentado entender as redes neurais desde que me deparei com o blog de Adam Geitgey sobre aprendizado de máquina. Eu li o máximo que posso sobre o assunto (que eu posso entender) e acredito que entendo todos os conceitos amplos e alguns dos trabalhos (apesar de serem muito fracos em matemática), neurônios, sinapses, pesos, funções de custo, retropropagação etc. No entanto, não consegui descobrir como traduzir problemas do mundo real em uma solução de rede neural.
Caso em questão, Adam Geitgey fornece como exemplo de uso, um sistema de previsão de preços da habitação, onde um conjunto de dados contém o número de quartos , Sq. pés , bairro e preço de venda, você pode treinar uma rede neural para poder prever o preço de uma casa. No entanto, ele não consegue implementar uma possível solução no código. O mais próximo que ele chega, a título de exemplo, é uma função básica que demonstra como você implementaria pesos:
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
Outros recursos parecem se concentrar mais na matemática e no único exemplo de código básico que eu pude entender (isto é, que nem todos cantam, todos base de código de classificação de imagens dançantes) é uma implementação que treina uma rede neural para ser um XOR portão que lida apenas com 1 e 0.
Portanto, há uma lacuna no meu conhecimento que eu simplesmente não consigo preencher. Se voltarmos ao problema de previsão de preços da habitação , como tornar os dados adequados para alimentar uma rede neural? Por exemplo:
- Nº de quartos: 3
- Sq. pés: 2000
- Bairro: Normaltown
- Preço de venda: $ 250,000
Você pode apenas alimentar 3 e 2000 diretamente na rede neural porque são números? Ou você precisa transformá-los em outra coisa? Da mesma forma, e o valor Normaltown , que é uma string, como você o traduz em um valor que uma rede neural possa entender? Você pode simplesmente escolher um número, como um índice, desde que consistente nos dados?
Muitos dos exemplos de redes neurais que vi nos números que passam entre as camadas são de 0 a 1 ou -1 a 1. Portanto, no final do processamento, como você transforma o valor de saída em algo útil como $ 185.000 ?
Sei que o exemplo de previsão de preços da habitação provavelmente não é um problema particularmente útil, uma vez que foi simplificado demais para apenas três pontos de dados. Mas eu sinto que, se eu pudesse superar esse obstáculo e escrever um aplicativo extremamente básico que treine usando dados pseudo-reais e cuspa uma resposta pseudo-real, então eu vou quebrar a parte de trás e ser capaz de chutar e aprofundar-se no aprendizado de máquina.