I've recently done a q&a session on machine learning. Here's an excerpt of what I answered. You can find the full session here.
A system whose performance with respect to some error function increases with experience.
That depends on the rating system.
For example, it’s my impression that most people who know and use machine learning have a quite accurate and balanced view of the possibilities, and more importantly the limitations of machine learning.
The problem arises when authorities who may not have adequate experience such as most of mainstream media (and me) start making claims and predictions without being very careful about not misinterpreting or misrepresenting their sources.
Moreover, even an objective reporting on the events may lead to an incorrect picture of the capabilities.
For example, when chatbots, self-driving cars, spam filtering all are collected under the same ‘machine learning’ umbrella term, it’s not unreasonable to think that they are the same problems, and extrapolate that we’re just a few years away from super intelligence.
This is strengthened by a marketing incentive for showcasing only primal examples and steer away from fringe cases. This is especially seen in natural language based “virtual assistants” where a small number of ‘advanced queries’ for which they have been specifically optimized are showcased; misleading people to assume that it’s a representative sample. False representativity is a problem for not just machine learning, but for nefarious claims in general.
While actually, even just making a robot do something without screwing everything else up is really difficult. There’s also currently no real solution for adversarial examples.
In conclusion, it’s possible that the average technological interested, but not necessarily literate, person tends to overestimate the capabilities of machine learning. In particular, people tend to overestimate the generalizability of current machine learning algorithms, and compare it to that of humans.
No, neural networks cannot do everything and anything.
Neural networks are good at mapping continuous geometric relationships given a large amount of labeled data. In fact, they can approximate any continuous relationship given enough data.
This ability has led to some incredible achievements in many fields.
However, neural networks still have several limitations among which are:
Furthermore, there are things that cannot be done using neural networks; not now, not ever. For example:
You don’t need to know Python in order to learn about machine learning, or data science.
In fact, you don’t even need to know a programming language in order to understand the theory.
But if you want to actually implement, or use anything you learn, you will need to learn some programming eventually.
However, while Python is probably the most used programming language in the data science community, there are a few good alternatives, and more less used (bad) alternatives.
The largest competitor is R. R is focused on statistical computing, and while R is turing complete, there’s less focus on general purpose programming in the R community which means you’ll be at a disadvantage compared to Python when doing anything but data science. (That is not necessarily a bad thing though).
Some years ago, MATLAB was quite popular, but it’s not open source, and requires a commercial license to use, so it has fallen out of favor recently.
Today, most popular programming language has some sort of machine learning library available. The most popular; Tensorflow, however, is fully supported by Python with more languages coming.
If your question instead was if it is necessary to learn the basics of any language before learning machine learning (assuming you don’t know the theory very well), I until recently would have said no as most programming languages are sufficiently simple to learn while you’re learning something else.
But when I mentored some people in learning both machine learning and a programming language at the same time, I noticed that they confused programming, machine learning, and the custom libraries they are using.
This lead to more than a few inefficiencies that could have been avoided had they learned the basics of the respectable domains beforehand why I now recommend getting familiar with the basics of programming before applying data science concepts.
More questions include:
You can find the full session here.