📜 ⬆️ ⬇️

On the way to natural intelligence

Machine learning is getting bigger every day. It seems that any company that has at least five employees wants to develop or buy a machine learning solution. Count the sheep, count the beets, count the buyers, count the goods. Or predict all the same.

image

The formula is simple: if the price of implementation is lower than you pay the guard - put a controlled barrier. Losses from idlers are higher than the cost of introducing a biometric time tracking system - implement. "Expert" takes bribes for quality control of the product? Duplicate it with a quality control system.

It is not always possible to estimate the cost of development. But often even enough order to start work and attract investors.
')
But the article, rather, is not about that. An article about machine learning specialists. About the boom of the specialty, about what people are starting to come in, how professions start to emerge from a single, general array of specialists, about how to solve ML problems now.

Disclaimer. Once, 10 years ago, I began my adult life precisely as a developer of Computer Vision (CV), and not more than general Machine Learning. So the focus of the article is shifted in this direction.

Until 2012, neural networks in the modern sense did not exist. CV had several working algorithms that solved certain problems using neural networks. But they could be solved by simpler methods plus minus with the same accuracy.

In classical Data Science, neural networks are sometimes used, but not often. In principle, and now you will rather come across solutions using Boosting algorithms ( 1 , 2 ) for top solutions, almost all victories in Kaggle.

About 10 years ago, in order to be engaged in image recognition, it was necessary to know a lot (Fourier / wavelet theory, statistics, morphology, dozens of methods such as SIFT / HOG / Haar, etc.). And even if you knew it, it’s far from a fact that the decision you made will work.

Algorithms were very unstable, quality floated. The approach could not work in principle. Productivity was not enough. In reality, out of 10 tasks, only 1-2 had a decent solution.

Then CV was the prerogative of small research groups, their decisions fell into production in isolated cases.

For 6-10 years, everything has changed somewhat. First, data appeared, now algorithms have appeared to work with this data. Announcements that require specialists in ML hang on every garage. But where do specialists come from? What causes them and what they understand?

Classic


Here usually follows the story that the institutes do not teach anything. Programs are outdated, everything degenerates, etc. I do not think so. I know a bunch of universities that consistently produce specialists versed in ML. These may be departments (for example, there are dozens of departments at the Physical and Technical Institute, where ML is the main tool). It can be a good add. courses. These may be courses in the main program (they say that HSE is well taught). Often there are academic leaders who spur interest in ML-methods. SkolTech has adequate laboratories, but not all. Horrible examples were enough.

A very big plus of universities is that a person who graduated from a university often understands basic things: “differentiability”, “folding”, “spectrum”, etc. These concepts are not needed in everyday work with machine learning, but you may need to research activities, in dopilivaniya existing algorithms.

There are a few key points:

  1. The real experience of working directly at the place of study is given only by Fiztech with its departments + HSE with strong research and leaders. And work experience is very important. Without it, you will not understand the importance and complexity of collecting the base, wrappers for use, etc. The only chance to get experience in an institute without a reasonable department is to get a job somewhere (but then the likelihood that you will be accepted into an innovative company small) or get an internship in some cool company. I heard that the latter is very common in Nizhny Novgorod, where there are a dozen good companies dealing with ML and CV.
  2. A person who believes that the crust at the institute gives him something is not needed by anyone. Gives only a list of projects on which he worked. Whether at the institute, at work, at Kaggle, in practice, etc.

But then - bummer. There are very few people who are really ready to improve and develop. And those who are ready, try to tear off different companies and for different tasks. With the release of the same Physicotech from the power of people 10-30 can seriously go to ML.

Modern


What is ML? Is it rather a science or a craft? It seems to me that the border in this activity is unsteady. Gold is now scattered on the surface. You can be a cool geologist and predict the field, where to dig, earning millions, if you dig. And you can exist well, collecting scattered on the surface.

There are wonderful Russian examples of Prism and N-Tech, where companies started from almost single models around which the entire business was built.

Sometimes you can win at Kaggle without having basic knowledge, but simply by choosing a successful model card or noticing the shoal of the organizers.

Do you know Python and English at school level? Forward! Spend 2-3 weeks to listen to courses on Coursera. There are wonderful courses from Yandex, from Phistech, etc. Learning Keras | PyTorch | TensorFlow is another week. And you can communicate in the same language with ML-researchers.

Only here is the problem again. Knowledge is not enough. Lucky, of course, can. It is unlikely that such a person will solve a serious problem. He usually takes the last model he has heard about and tries. Can twist 2-3 parameters. Only here the probability that he will choose the correct model is not high. Here you need to know the background and a selection of articles over the past couple of years.

And even more to rework the model, to work out the inputs-outputs by classical algorithms, to notice the bug, to understand the limits of applicability.

Oldfagi


Modern is good. And it is doubly good when a person from an adjacent profession enters ML. At first, it feels like moving from an automatic box to a mechanical one. But then aligned. Being a specialist in CV / Radiolocation / Bayesian theory, it is easy to understand how to apply all this to machine learning.

At the very beginning there were people who came to modern neural networks from non-modern neural networks. Many of them have become famous. That's what it means to be at the right time in the right place! ;)

By the way, now the flow in ML has almost stopped. About 2 years ago everyone tried to read books / find out / find a good place to work. And now such units. Those who did not have time before.

Community


A couple of years ago I heard a funny phrase: “Russia is a country of partnerships”. Ever since tsarist times, interest clubs have been popular in Russia. Circles, partnerships, seminars, etc.
Tsiolkovsky and his comrades — that was the same circle of interests.

It still works. This is the “largest in Europe” (according to the organizers) ODS community. Regular trainings and lectures from Yandex and communities that exist only online, for example, here .

Of course, do not forget about reddit .
The main profit of such communities is that you can ask questions in real time, analyze your mistakes, share experiences. The people throw interesting collections of articles, share their achievements.

Well, yes, the conference .

What comes out of it and how it helps


The important point is the benefits for society and business. What can a machine learning specialist do? Recently on Habré there was an amusing article about programmers. In general, the classification is suitable, but with some correction in the direction of extreme excesses.

In the first place there are stars of ML networks. They invent new architectures, write articles, experiment. Unfortunately, there is little use in practical tasks. Years of work can generate 1-2 good ideas. Often side and not always tied to the main task. In doing so, they can quickly get bored with doing a standard task. On the other hand, it is they who are moving the edge of science. Without their development it is impossible to get a qualitatively new result. In Russia, I ran into a few such people. Here, few people like to finance scientific research. People sometimes try to do something new with enthusiasm. But here we need resources, the same clusters of video cards.

Secondly, linear programmers . All the textbooks with a lack of imagination and sewed in the pope fall here. Often they know networks well, understand math, know frameworks. But such people work not from the goal, but from the task. Spending the night, but significantly tighten the result - not about them. They are often limited to ready-made architecture and 1-2 edits, if the boss does not say sit and try.

But if you sit and try, you have to give them a whole list of tasks. A linear programmer who has a non-ML task is often self-sufficient. You can make a database with standard inputs-outputs without much imagination. But to train the grid for a rare task - no. Wherein:

  1. 70% of emerging tasks do not require complex grids and architectures. Find the dog on the camera can, taking ready-made nets for half a day.
  2. Most of these programmers. Someone has to work!
  3. All who have not gained enough experience pass through the linear programmer's stage. Without experience in 1-2 years is too incomprehensible what is happening around.

Thirdly, it is businessmen . For them, neural networks are a real mine. There are practically no people who can take the task from base formation to production. You need to know not only all relevant articles, but also to understand the logic of existing business processes, to understand how this logic is combined with machine learning. And the most important thing is to explain to the customer how ML works and how to apply it in the project. And why he does not need it. Now there are dozens, if not hundreds of self-sufficient groups of 1-10 developers who outsource tasks to very large businesses. I even saw aggregator sites for them.

And, of course, passengers . ML nobody understands. If you are beautiful, you can count on good positions. A beautiful fill - just. Just a month of reading articles. The most epic story heard yesterday. One of the top 20 banks in Russia decided to make a machine learning unit. Hired there one person. All human experience was limited to watching courses on Coursera. We must not forget that in some situations “passengers” are indistinguishable from beginner ML-readers. You need to carefully ask about the experience and about personal participation, without being led to optimistic promises like “yes, you can just take a U-net!”. If you have your own business + an understanding of what needs to be done - just cut off those comrades. Arrange cross-examination with predilection on the methods used by the candidate, and also why these methods are applicable in your task and how this can be done in other ways.

Specializations


Funny, but ML already has a clear list of specializations. And it seems to me that in the coming years they will go deep and their number will grow:

  1. The most popular specialization is the resercher. Usually hired precisely for this position. Test / check / invent new models.

    • A researcher can soar in the clouds and try to do conceptual things - then the list of publications and reading is important
    • And can be engaged in tuning nets, checking architectures - then the rating on Kaggle is more important
  2. Load / cluster specialist. Expand the model is quite difficult. This requires the correct iron architecture / data alignment and hardware configuration. In reality, such specialists are needed in several organizations in Russia - Yandex, Mail.ru, Vkontakte, etc. Very high specificity, you need to be well understood in ML, and in what this ML works.
  3. Miniaturization Specialist. Now the grids work on mobile phones, RPi, and Jetson. The right choice of device, the right porting of the model to it, the correct use of memory, the setting of processor-GPU interaction. All this is specific. Even, probably, the phones would be worth putting in a separate item. Everything is quite complicated there due to the excess of architectures and porting complexity. And yes, there are already a cohort of networks, such as MobileNet | SqeezeNet, that provide performance.
  4. Specialist in collecting base. 90% of the time in ML tasks is collecting the base. And the better you understand how to assemble it, the better the base will be and the better solution will be. A good solution starts with uniformity and order.

If you want to build a base, do a search for it, and then implement the results on clusters and mobile phones, then you need either a human orchestra or a huge team. The best will be some kind of intermediate point.
Do not forget the most important thing! Often you can make a semi-working prototype model in one day!

Summarizing



Oh yes! If you want to get acquainted with how all these specialties are arranged, to understand who is who in the world of machine learning, to pull specialists from Yandex and Mail.ru behind a beard, then this can be done at the conference SmartData 2017 . The organizers were able to gather in one place, in my opinion, very diverse reports that shed light on various corners of the ML-world.

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


All Articles