Software developers, you're on the wrong track to machine learning

Software developers, you're on the wrong track to machine learning

Hey Software developers, you're on the wrong track to machine learning

credit : wallup.com


I remember the first time I tried to learn code. I'm in middle school, my father, a programmer, opened a text editor himself and typed on the screen:


public class Hello World {

      public static void main (String[] args) {

            System.out.println("Hello World");

   }

}



"Sorry?" I said.


"It's printing" Hello World, "he replied.


"Do you know? What a class is is a constant -"


"Ignore it now." This is just a boilerplate. "


But I learned a lot about the boilerplate that I could not understand, so I set out to find out what each of those keywords meant. It was complicated and frustrating and put more kibosh on my young coder aspirations.


Software development is much easier to learn today than it was when I was in high school, thanks to sites like CodeCommerce.com, which is a simple way to set up a basic development environment and teach a high level by explaining languages   like Python. JavaScript lets you write your first conditional statement in the browser in minutes without knowing anything about coding. No eco setup, installation, compiler or boilerplate - you can go straight for the juicy bits.

This is what humans learn best. Previously, we taught core concepts at a high level and only then can we appreciate and understand the under-hood details and why they are important. We learn Python on very first, then C, then assembly, not the other way around.

Unfortunately, most people who start learning machine learning still have the same experience I had from Java. They gave all the low-level details like front-layer architecture, back-promotion, dropout etc. and they think ML is really complicated and they take a linear algebra class first and leave.

This is a shame, because in the very near future, many software developers who use machine learning will not think or know about low-level topics. In a way that we (usually) do not write conferences or run our own TCP stocks or encryption libraries, we use ML as a tool and implement implementation details to a small group of professionals. At that point - after machine learning became "democratic" - developers did not need to understand the implementation details, but understood the best practices in implementing these smart algorithms in the world.


Where we are now

Today, if you want to build a neural network that recognizes your cat face in photos or wonders if your next tweet will go viral, you are probably not ready to learn Tensor Flow or Pythorch. These Python-based intensive learning libraries are the most popular tools for designing neural networks today, and they are both less than 5 years old.

In its short lifespan, Tensor Flow has already become more user friendly than it was five years ago. In the early days, you should not only understand machine learning, but also provide computing and different graph architectures to become an effective tensorf programmer. Writing a simple print statement is also a challenge.

Prior to this fall, Tensor Flow 2.0 was officially launched, which made the framework more developer friendly. Here is what the Hello-World-style model looks like in Tensor Flow 2.0:

credit : thenextweb.com

If you have already designed a neural network, the above code is straightforward and readable. But if you do not learn or you learn, you will probably get some questions. What is a drop out? What are these dense layers, how many do you need and where to put them? What is smaller? Tensor Flow 2.0 removes some friction from building models, but it is not ashamed to design the actual structure of those models.


Where are we going

So what does the future hold for easy-to-use ML tools? Everyone from Google to Amazon to Microsoft and Apple is spending the clock to answer. Also - denial - I spend my time thinking about About as an Engineer in the Google company.

For one, many other developers begin to use pre-trained models for simple tasks, i.e., instead of collecting their own data and training their own neural networks, we can only use the Google / Amazon / Microsoft model. Many cloud providers already do similar things. For example, by tapping Google Cloud Rest End Point, you can use a pre-trained neural network:

credit : towardsdatascience.com


Extract text from pictures

Tag common objects in photos

Turn a speech into a text

Translation between languages

Identify the meaning of the text

Even more

You can also run a pre-trained model in a mobile application using tools such as Google's ML Kit or Apple's Core ML.

The advantage of using pre-trained models over models manufactured by TensorFlow (rather than ease of use) is that, obviously, you cannot build more precise models one by one, which will train neural networks across the entire network. Internet and tons of data can create GPUs and TPUs.

The downside of using pre-trained models is that they address common problems, such as locating cats and dogs in pictures, and spotting defects in a part of the assembly line, rather than domain-specific problems. .

When it comes to training custom models for domain-specific tasks, our tools are becoming more user-friendly.

Google's free tool machine site allows users to collect data and train models in the browser using the drag-and-drop interface. Earlier this year, MIT released a similar code-free interface designed for custom models that work on touchscreen devices, designed for non-coders such as physicians. Startups like Microsoft and Lob.i offer similar solutions. Meanwhile, Google Cloud AutoML is an automated model-training framework for enterprise-scale workload.

What to learn now

Since ML tools are easy to use, the skills (but not the expertise) that developers expect to use this technology will change. So if you are trying to plan for Wayne-Gratsky-style, Cook is going, what should you study now?


It is always difficult to know when to use machine learning

Is it capable of differentiating machine learning algorithms from standard software? Even the most accurate model is not right for a while, which means it is not the right solution for most problems, especially on its own. Take the ML-powered speech-to-text algorithm: If you sometimes tell Alexa to "turn off the music" she might be fine, instead set your alarm to 4 o'clock. Medical Version of Alexa It does not matter if your doctor prescribes you analogs instead of adrenaline.


Understanding when and how to use a model in production and always becomes a subtle issue. It is very difficult in cases:

Stakes

Human resources are limited

Humans are biased or wrong in their expectations

Take medical imaging. We are low on physicians worldwide and ML samples are much more accurate than physicians trained in diagnosing the disease. If you want an algorithm to determine if you have cancer with a model that will help judges decide prison sentences. Models may be biased, but people.


Realizing how to use ML properly is not the easiest way to fix it, but it will never go away.


Explainability

Machine learning patterns are opaque. Hence they are sometimes called "black boxes". It is not possible to make a big business decision with your VP "my neural network told me" as your only proof. Also, if you do not understand why your model makes predictions, you may not feel that it is making biased decisions (i.e. lending to people from a certain age or pin code).


For this reason many players in the ML space are focusing on creating "accessible AI" features - tools that allow users to more closely test the feature models used to make predictions. We have not yet fully arrived.


Getting creative with apps

There are good developers in machine learning, some good researchers in neuroscience and very few who come to that crossroads. This applies to an area that is almost complex enough. In the years to come, we will see great progress from ML that does not take place in improved mathematical methods, but professionals in various fields are the learning at least enough of machine learning to apply it to their domains. This is most often the case in medical imaging, for example, the most exciting advances in scans that can detect dangerous diseases - not driven by new neural network architectures, but applied to the novel problem by standard models. So if you are a software developer lucky enough to get extra expertise, you are already ahead of the curve.


If I were just starting my AI education from scratch, this is the day I would focus on. At this point, I'm spending more and less time using TensorFlow from scratch and creating custom models for using high - end tools such as AutoML and AI APIs and applications. Focus on development.








Post a Comment

0 Comments