Sim, você deveria entender o backpropagation!

Por Andrej Karpathy

Backpropagation is a leaky abstraction; it is a credit assignment scheme with non-trivial consequences. If you try to ignore how it works under the hood because “TensorFlow automagically makes my networks learn”, you will not be ready to wrestle with the dangers it presents, and you will be much less effective at building and debugging neural networks.
The good news is that backpropagation is not that difficult to understand, if presented properly. I have relatively strong feelings on this topic because it seems to me that 95% of backpropagation materials out there present it all wrong, filling pages with mechanical math. Instead, I would recommend the CS231n lecture on backprop which emphasizes intuition (yay for shameless self-advertising). And if you can spare the time, as a bonus, work through the CS231n assignments, which get you to write backprop manually and help you solidify your understanding.

Sim, você deveria entender o backpropagation!

Básico sobre Deep Learning

Nessa entrevista do Arno Candel da H2o para o Kdnuggets, ele resume o que é o Deep Learning:

[…]Deep Learning methods use a composition of multiple non-linear transformations to model high-level abstractions in data. Multi-layer feed-forward artificial neural networks are some of the oldest and yet most useful such techniques. We are now reaping the benefits of over 60 years of evolution in Deep Learning that began in the late 1950s when the term Machine Learning was coined. Large parts of the growing success of Deep Learning in the past decade can be attributed to Moore’s law and the exponential speedup of computers, but there were also many algorithmic breakthroughs that enabled robust training of deep learners.

Compared to more interpretable Machine Learning techniques such as tree-based methods, conventional Deep Learning (using stochastic gradient descentand back-propagation) is a rather “brute-force” method that optimizes lots of coefficients (it is a parametric method) starting from random noise by continuously looking at examples from the training data. It follows the basic idea of “(good) practice makes perfect” (similar to a real brain) without any strong guarantees on the quality of the model. […]

 

Neste trecho ele fala de algumas aplicações de Deep Learning:

[…]Deep Learning is really effective at learning non-linear derived featuresfrom the raw input features, unlike standard Machine Learning methods such as linear or tree-based methods. For example, if age and income are the two features used to predict spending, then a linear model would greatly benefit from manually splitting age and income ranges into distinct groups; while a tree-based model would learn to automatically dissect the two-dimensional space.

A Deep Learning model builds hierarchies of (hidden) derived non-linear features that get composed to approximate arbitrary functions such as sqrt((age-40)^2+0.3*log(income+1)-4) with much less effort than with other methods. Traditionally, data scientists perform many of these transformations explicitly based on domain knowledge and experience, but Deep Learning has been shown to be extremely effective at coming up with those transformations, often outperforming standard Machine Learning models by a substantial margin.

Deep Learning is also very good at predicting high-cardinality class memberships, such as in image or voice recognition problems, or in predicting the best item to recommend to a user. Another strength of Deep Learning is that it can also be used for unsupervised learning where it just learns the intrinsic structure of the data without making predictions (remember the Google cat?). This is useful in cases where there are no training labels, or for various other use cases such as anomaly detection. […]

 

 

Básico sobre Deep Learning

Redes Neurais Disjuntivas

O paper é seminal (ou seja precisa ser revisado com um pouco mais de cautela), mas representa um bom avanço na utilização das RNAs, tendo em vista que as Random Forests (Florestas Aleatórias) e as Support Vector Machines (Máquinas de Vetor de Suporte) estão apresentando resultados bem melhores, academicamente falando.

Abaixo o resumo do artigo:

Artificial neural networks are powerful pattern classifiers; however, they have been surpassed in accuracy by methods such as support vector machines and random forests that are also easier to use and faster to train. Backpropagation, which is used to train artificial neural networks, suffers from the herd effect problem which leads to long training times and limit classification accuracy. We use the disjunctive normal form and approximate the boolean conjunction operations with products to construct a novel network architecture. The proposed model can be trained by minimizing an error function and it allows an effective and intuitive initialization which solves the herd-effect problem associated with backpropagation. This leads to state-of-the art classification accuracy and fast training times. In addition, our model can be jointly optimized with convolutional features in an unified structure leading to state-of-the-art results on computer vision problems with fast convergence rates. A GPU implementation of LDNN with optional convolutional features is also available.

 

Redes Neurais Disjuntivas

Uma abordagem Walk-Through Deep Learning

As Redes Neurais Artificias (RNAs) são modelos computacionais de aprendizado de máquina que mimetizam alguns aspectos da atividade cognitiva humana (e.g. memória (atividade de armazenar e recuperar oportunamente dados), percepção(realiza relações de significância através de experiências passadas) e raciocínio (capacidade de gerar operações lógicas de informações abstratas)), é uma ótima técnica para atividades de classificação e regressão.

Já a o Deep Learning é o conjunto de múltiplas tarefas de aprendizado de máquina que lida com diferentes tipos de abstração, e que a sua característica mais marcante é a resolução de problemas a partir de estruturas de representação dos dados de diferentes maneiras.

Neste vídeo do Sungwook Yoon ele realiza uma comparação entre essas duas estruturas de forma competente.

 

Uma abordagem Walk-Through Deep Learning

Inteligência Artificial nos Investimentos

Um bom livro para quem deseja iniciar estudos ou mesmo quem já possuí algum tipo de experiência em Inteligência Artificial/Aprendizado de Máquina é o Inteligência Artificial nos Investimentos de Roberto Pontes.

O livro é self-publishing (o autor é o próprio editor) o qual a primeira vista pode gerar algum tipo de desconfiança pelos que julgam o livro pela editora; mas ao desenrolar do livro é fácil perceber que se trata de uma grande obra no tema.

Inteligência Artificial nos Investimentos tem uma abordagem simples; porém, fica longe das abordagens simplistas que são oferecidas em diversos cursos e tutoriais na internet; e ao longo do seu desenvolvimento apresenta abordagens híbridas; porém, sem perder em nenhum instante o foco principal do livro que é apresentar IA aplicada aos investimentos.

O livro é de leitura agradável e tem como característica marcante uma abordagem bem prática em relação ao que é apresentado pelos papers acadêmicos que acabam tornando o assunto complexo. Uma passagem que me agrada muito, é encontrada nas páginas 69/70 na qual o autor lança uma crítica pertinente sobre os papers e alguns trabalhos em aplicação de redes neurais no mercado financeiro.

Alguns pontos baixos do livro: Não sei se foi uma opção do autor, mas as figuras estão em preto em branco o que prejudica um pouco a visualização dos gráficos de comparação, e alguns erros gramaticais que em nada prejudica a leitura.

O livro é um bom manual para desenvolvimento de trabalhos nesse segmento, e o preço (por volta dos R$ 30) é justissímo; e o fato de ser self-publishing garante um trabalho de qualidade e acessível.

Recomendado para quem deseja ver literatura de qualidade com how-to de fato e em língua portuguesa, além de aplicação prática do que é proposto com escopo bem definido.

Não recomendado para quem gosta de academicismos, e não tem familiaridade com o mercado financeiro.

Para comprar: http://www.clubedeautores.com.br/book/48995–Inteligencia_Artificial_nos_Investimentos

 Site do Livro: http://www.neuroinvest.blogspot.com.br/

Inteligência Artificial nos Investimentos

Financial Series – Prediction of Stock Market Index Movement by Ten Data Mining Techniques

Esse artigo escrito por Phichhang OuHengshan Wang ambos da University of Shanghai apresenta um estudo sobre a aplicação de dez técnicas de Mineração de Dados aplicado a predição dos índices relativos à bolsa de valores de Hong Kong.

O artigo tem como idéia principal realizar uma análise experimental e comparativa sobre dez técnicas de Mineração de Dados (Linear discriminant analysis (LDA), Quadratic discriminant analysis (QDA), K-nearest neighbor classification, Naïve Bayes based on kernel estimation, Logit model, Tree based classification, Neural Network, Bayesian Classification with Gaussian Process, Support Vector Machine (SVM) e Least Squares Support Vector Machine (LS-SVM)) na qual os pesquisadores realizam uma série de ajustes no modelo para cálculo da flutuação do índice ao longo do estudo.

Como resultado do estudo os autores chegaram à conclusão que a maioria das técnicas aplicadas tiveram um hit rate acima de 80%, o que é um ótimo sinal dado o número imenso de variáveis a serem consideradas e o grau de dificuldade de mapeamento do domínio.

Em geral o artigo é bem escrito e dá uma perspectiva muito interessante em modelagem matemática aplicada a esse tipo de domínio. O único ponto contra é que o artigo poderia ter o método de cross-validation mais bem descrito, e claro o conteúdo matemático é uma barreira para os iniciantes; mas nada que um pouco de dedicação pessoal não possa superar.

Prediction of Stock Market Index Movement by Ten Data Mining Techniques

Financial Series – Prediction of Stock Market Index Movement by Ten Data Mining Techniques