📜 ⬆️ ⬇️

Deep Learning - what to do, whom to beat

Nowhere, probably, there is no such urgent need for the synergy of knowledge in various fields of science - both in the field of machine learning and Deep Learning. It is enough to open the hood of TensorFlow and be terrified - a huge amount of python code that works with tensors inside ... C ++, mixed with numpy , for laying out in production that requires a little “on the pros”, a bit of a touch with bazel (this is so exciting, dreamed about it all your life! ). And the other extreme - the guys from Deeplearning4j cursed the python to hell and rotate the tensors on the old and kind java. But the students from the University of New York seem to have gone farther than all - people, and not only students , moreover, for a long time and seriously harness on Luajit + nginx ( amen for Catholic ). The situation is complicated by the recent demarche of Google DeepMind regarding the “grandfather torch”: all projects are transferred to their internal engine, born from DistBelief .
Complete chaos and mess.

Experts - "in the furnace"


But let's start from the end. Is it worth spending time studying Deep Learning, how much does a business need it and what is it all about? Recall that the "classic" machine learning works the same and not bad, but BUT ... it requires careful selection and magical-unscientific manipulation of attributes with the involvement of experts in the subject area - and this is a long, expensive and fragile one. Everyone wants to give the car data and so that she can learn everything herself (here's an archive for you with books - learn to write new ones tomorrow; here are your pictures - learn to draw). And do not be distracted, beautiful, work. And it began to turn out.
Well-known well-working examples that do not need language experts are machine translation . Well, the fun is - we take the corpus with translations, we teach the neuron and voila - it translates no worse, and even better than Moses .
Another example where DeepLearning has blossomed in its glory is machine vision . It is also fun - several layers of neurons of different types (convolution, pooling) and a miracle - the network classifies the image faster and sometimes more precisely than a person. And again - it learns only on the data, features are selected automatically during the training. Perfectly!
Another promising example is recurrent neurons for chatbot and for language modeling .
However, Amazon will release a product that internally represents ETL + the old, good, “free” logistic regression! "Madness" and courage.

Theory and practice


Life is arranged in such a way that mathematically well-trained colleagues usually write in “a language that is not very convenient from the point of view of exploitation under high loads” . At the same time, these colleagues are very smart , they know a lot, they multiply matrixes in the mind and distinguish logistic regression from discriminant analysis. And experienced experienced experienced engineers of hayload, big data and enterprise, DevOps angels - program well in large volumes and this then “doesn’t foul”, translates the code into assembler in mind - but it’s unlikely that they will learn the principle of LDA on their fingers even for a vacation referring to the beta distribution . And it is not necessary for these experienced fighters to show “programming” in the “ipython notebook” - they will lock it in the server room and force them to rewrite ANSI C code overnight ;-)
It is not yet clear what to do with this — Google hires scientists from all over the world, fuses them with programmers, and it turns out perversions from a mixture of python and C ++ . Programmers hire scientists and write all the math on “Orthodox” java, and in order to understand the code, you need to have experience in systems programming for about 10 years . But there is still a feeling that in the coming years an intensive exchange of knowledge will begin and the first group of colleagues will begin to comprehend the secrets of writing “good code”, and the second will learn to multiply the matrices in memory :-)
For now, we learn to negotiate, there is no way out.

What to do?


What to do to understand and succeed - to constantly learn and acquire related knowledge! Good algorithms, high-quality models that learn from data without the help of experts are needed more than ever by a business. Deeplearning is developing very intensively, this active area of ​​scientific research is penetrating deeper and deeper into our lives.
Fortunately, teaching models on the GPU (and many frameworks already support this feature) - you can accelerate every 10. There is not enough speed - we start on the cluster. TensorFlow can do this out of the box, Deeplearning4j is scaled to Spark .
Yes, you need to get used to the scientific style of presentation - but over time it becomes clear that there are not so many options for Deep Learning architectures and the problems they solve, and the mechanics of the work of each class of solutions are gradually becoming clear.
If it’s hard for you to understand the three-story matrices that describe the physics of neurons , put away WorldOfTanks, spend one weekend on an introductory course on linear algebra and everything will open in time. Scientists create models, and we, engineers, only use them; Well, sometimes we combine.
And you never need to go to extremes. Here, finally, is a tasty and interesting article on how Google implemented its recommendation system for Google Play - it is clear that they started with a classic, true “wide” classifier, and finished Deep & Wide with good quality indicators of the model :-)
')
Good luck, inspiration, energy and new, interesting tasks and beautiful, effective solutions to everyone!

Source: https://habr.com/ru/post/307024/


All Articles