Dado o estado moderno das tecnologias e ferramentas de aprendizado de máquina (por exemplo, TensorFlow, Theano etc.), parece que o limiar de entrada diminuiu recentemente e é suficiente ser capaz de programar, por exemplo, Python, para criar coisas interessantes. Outra fonte que suporta esse ponto é a Especialização em aprendizado de máquina no Coursera , que afirma o seguinte em suas perguntas frequentes:
Que conhecimento prévio é necessário?
Você deve ter alguma experiência com programação de computadores; a maioria das atribuições nesta especialização usará a linguagem de programação Python. Esta especialização foi projetada especificamente para cientistas e desenvolvedores de software que desejam expandir suas habilidades em ciência de dados e aprendizado de máquina, mas é apropriada para qualquer pessoa com habilidades básicas de matemática e programação e interesse em obter informações a partir de dados.
Por outro lado, existem muitos outros cursos on-line (por exemplo, Stanford Machine Learning no Coursera ou Deep Learning on Udacity do Google), além de livros clássicos, como S. Haykin, Neural Networks: A Comprehensive Foundation , repleto de matemática. . Embora eu estivesse estudando matemática por vários anos na universidade, incluindo estatística, matrizes, cálculo integral e assim por diante, faz tanto tempo que não é utilizado que sinto desespero apenas olhando essas equações. Até a Matemática Concreta de Knuth é discernida em um ritmo tão lento que parece impossível concluí-la.
Assim, surgem as seguintes perguntas:
- É razoável que alguém com conhecimento superficial de matemática, mas com habilidades de programação, mergulhe nos estudos de redes neurais / aprendizado de máquina?
- É possível criar projetos interessantes nessa área, como aqueles que jogam atari , usando apenas ferramentas de alto nível?
Ou levaria tanto tempo que é melhor não se esforçar e fazer outra coisa?
Depende. Suponho que você entenda o algoritmo de retropropagação, pois é usado pela maioria das arquiteturas NN e CNNs e RNNs, e todas essas coisas não são tão difíceis se você souber retropropagação.
Por um lado , o Theano / Tensorflow não parece ser um bom exemplo, pois eles são basicamente DSLs para escrever cálculos de matriz / tensor e são bastante pesados e de baixo nível matemático (você escreve operações matemáticas reais e não só usar
fit
,transform
/predict
api).Por outro lado , existe o Keras e o scikit-learn, que possuem apenas APIs de alto nível e não exigem muito encanamento.
Em particular, no Keras, você pode usar alguns modelos que foram pré-treinados ou que possuem uma arquitetura predefinida conhecida por funcionar com alguns problemas.
Obviamente, se você não possui um bom conhecimento de matemática, pode ter problemas com os modelos de caixa preta, mas se quiser aplicar coisas que parecem funcionar com algo em alguma outra coisa, é definitivamente possível, por exemplo, confira este projeto simples .
Você também pode se interessar por Aplicativos criativos de aprendizado profundo com o TensorFlow , pois parece ser voltado para pessoas não técnicas (não sei se é possível aprendê-lo sem nenhuma formação técnica, mas pelo menos contém muitos exemplos interessantes).
fonte
A essência de uma rede neural é o gráfico. Embora os gráficos possam fazer parte da matemática, seus conceitos são tão antigos quanto o próprio relacionamento e são anteriores a ele.
Se fosse necessário que a aprendizagem fosse complexa, os cérebros provavelmente não teriam evoluído, pois a probabilidade de complexidade ordenada é muito improvável.
Então, é preciso perguntar: qual é a máquina mais simples que pode aprender? Mas, é claro, isso implora pela questão epistemológica: o que é aprender?
Aprender é a justaposição de dois novos estados, formando uma memória. E aí você tem a base da IA: memória.
fonte