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!