DL is useful obviously. Some of the biggest products in the world depend on it for almost their entire value propositions e.g. YouTube, Netflix, Tesla. (This is a power law; the long tail of commercial AI are jokes or borderline frauds.)
But I wouldn't recommend already practicing programmers to FOMO into the field this late in the game. First of all, it's very much a different animal. ML is in the statistics/continuous world whereas programming is in the algorithmic/discrete world. Knuth said something about how it's a different type of mind (a more normal one) that's attracted to ML, not the same as the 2% computer mind. Not only will you be doing something you're potentially not as talented at, you will also have to start from scratch up against the seemingly endless stream of ML specialist PhD candidates.
You can implement neural nets from descriptions in papers and blog posts. Honestly though there's not much to it with all the dead simple libraries e.g. Keras, Pytorch.
Putting together the whole system is a much harder problem and requires actual software expertise.
It seems the infrastructure game is very new for realistic, production ready, machine learning. I mean Uber was the first to really describe the idea of having a feature store back in 2017 with their Michelangelo[0] framework. We are just now starting to see feature stores pop up as a SAAS model (Hopworks, Google's feast, etc.)
I think we'll see "Machine Learning Engineers" start to pop up like crazy the next 2-3 years as people with a mixture of data engineering, machine learning, and software engineering experience begin to take these infrastructure roles.
As someone who spent more than a few months on a couple courses on various platforms, a few months is NOTHING in this field.
ML is not something where most people out of bootcamps can make a living out of.
ML is the ultimate winner-take all technology.
Sure, there might be some fast.ai examples of self taught ML scientists, but it is orders of magnitude harder than software development, mainly because of much longer learning feed-back -- you can't just printf or debug your code and expect to learn something new every 5 minutes.
Hence the flood of ML grads which will only get bigger and bigger as time goes on.
As a general observation of business, returns per unit of labor can range from completely linear (factories, hospitals) to more nonlinear in things like software or art. ML researcher is on the far end of this. Yes, Bengio and Goodfellow get paid 7 figures, but that's because even if you pay 100 amateurs 1/100th of that, they will still produce worse work.
If you want to be a good ML researcher, the time to get in was 10 years ago.
Deep learning brings some new paradigms to the table but it’s not fundamentally different from other optimization / ML methods, so with a background in statistics, math, natural sciences or quantitative economics (to name only a few) and a good understanding of programming (which most people from these fields have) you can do just fine. If you start out with zero knowledge of university-level math and no programming ability it will be much harder of course.
The order of magnitude point is just wrong. You might argue that it's harder because it's essentially software development and a lot of applied math. But that certainly doesn't account for orders of magnitude difference.
I'm a java developer and during my first 3 years I was able to investigate bugs not only in my code, but inside jboss or hibernate ORM; I can look up core java code and understand it just fine.
How many of the ML self-taught crowd can write framework-level code, or debug a ML algorithm bug?
Fooling management wanting to get into ML with some scikit code is easy, mastery of ML is orders of magnitudes harder than mastering a programming language/frameworks.
This isn't specific to ML though - I don't see why the number should be different from the number of self-taught web developers who can write framework-level code.
What's about to happen is that people who have been convinced to invest in ML infra are about to start pulling budgets because they've had no results.
We're clearly entering a world where computers can make complicated, gut-feel decisions. This is an amazing new capability; with the fall of the best human Go players there are no longer any well-defined tasks that a human can outperform a computer in. If we can simulate a situation correctly then computers are now better than us.
It will be challenging for this new capability not to not reshape all our control systems over the next two or three decades.
If by "well-defined" you mean "complete information", then yes. If by well-defined you mean... well-defined, then no. Humans are better at a lot of things still, including video games for example. OpenAI has been working for years on a DotA AI, and while very technologically interesting, it still can only play (well) with and against a fraction of heroes and mechanics, and even within those limitations humans have quickly been able to find weaknesses and outmaneuver it.
AI really hasn't over the last 5 years (and probably won't during the next 5) changed the world that much. There are some problem domains that saw big interesting leaps (mainly image recognition, image reconstruction and game AI), but that's about it.
Self-driving cars, if they ever come to market properly, will be the biggest change. And that's certainly a big change, but it's not really the "software industry revolutionizing" change that some people seem to expect.
They weren't even trying to abuse the reaction time of the computer, or train one agent to coordinate a team as one entity. There isn't really a question; if humans needed to win games of DotA for some reason we'd send machines. It just happens that DotA is a spectator sport and that would be boring.
Exploiting the AI ... maybe? The experience with AlphaGo is that peak computer performance is just going to be better than peak human performance. Dota isn't fundamentally more complicated than Go. A few orders of magnitude harder to engineer, but OpenAI's work suggests they're about 20% of the way through a 10 year process and they've covered the interesting parts - so they stopped. With more resourcing that could be solved quickly but it isn't enough of a challenge any more.
There isn't anything left to prove in DotA. Bots can play the game really well and would crush humans if it was important to anyone. Nobody cares enough to actually finish the project but if there was money on the line it is obvious how it would play out.
That's an interesting interpretation. My interpretation is that they simply weren't able to do it yet (not for a lack of trying though), and so they gave up. It's not obvious at all to me that there is a way to simply scale their approach to the real game. I mean, certainly there is a way with infinite computing power, but it's not clear to me that even with all the computing power on earth currently this approach would work. 18 out of 117 heroes does reduce complexity quite a lot, especially when you pick ones with less complex mechanics.
>They weren't even trying to abuse the reaction time of the computer
They introduced a constant reaction time, but they still "abused" the interface they are provided. If this was a task in the real world, the AI would have the same interface as humans: The screen. They would have to move the screen and run object recognition algorithms on the rendered values, and they would have to "click" on units (not physically) instead of being able to internally select them. This would introduce completely different (and more realistic) reaction time parameters, because if a hero starts an animation it might not be immediately clear which animation it is in the first 5 frames, but the API will provide the value immediately.
AlphaStar's strength dropped considerably for example when they realized that the AI being able to perceive the entire map at once was an unfair advantage and restricted it so that it had to move the camera around. But still even AlphaStar is using an API instead of just the rendered output, which enables things like selecting units that are hidden behind other units, which for a human player is literally impossible without moving it out of the way first.
I think for AI to be able to claim that it is better at a game than humans, the AI ought to be playing the actual game, and use the same interface. (Not necessarily physically, you don't need a camera and a robot, but the AI's input should be the rendered output of the game, and the AI's output should be mouse movement / key strokes.)
You might think that would be a trivial and useless exercise (like it would be in Chess/Go), but I'm really not convinced of that for video games. There are a lot of examples where even playing a frame-by-frame recording of a fight you just can't tell what exactly is going on in a fight until a couple frames later, but the API will always provide floating-point accurate data of everything. This is a huge advantage that just doesn't translate into real world tasks when the AI has to use cameras and sensors to make sense of the world (in automated driving for example) just like we have to.
Sure; but you can train one agent/hero so the training scales in a somewhat linear fashion once they get beyond ~15-20 heros. The computer won't be able to nail the full complexity of the game - but neither can a human, and the evidence from Go is the amount of the game a computer can grasp is much greater than a human.
Humans can't fully understand full DotA either; it is common for pros to be surprised by mechanical interactions or quirks on specific heros.
It might be an interesting theoretical challenge, but there would need to be some solid evidence of that beyond OpenAI calling it done and going home. Especially given the breakneck speed that the first 17 heros got trained. The AI was improving faster than a human does in MMR/day rates for specific heros. It looks like they got bored once the outcome became clear but needed a lot o work to achieve.
> If this was a task in the real world, the AI would have the same interface as humans: The screen.
This part of your argument is weak; you are relying on a computer having human limitations to show that it is superior. Computers don't have human limitations; that is a significant part of why humans can't compete with computers.
> I think for AI to be able to claim that it is better at a game than humans, the AI ought to be playing the actual game, and use the same interface.
What could you do if the bot people don't agree with you? When TeamDotaBot2000 is winning every game on the DotA ladder you can write them an angry all-chat message saying they didn't really win while your hero dead and their destroying your tree. That'd blend right in with the usual DotA crowd.
> You might think that would be a trivial and useless exercise (like it would be in Chess/Go), but I'm really not convinced of that for video games...
It isn't trivial; but it also isn't hard. It is time consuming and there are a lot of practical things that need to be solved. But if the resources are spent, it is expected that computers beat humans in any field with formally defined rules and objectives. That is a big deal.
No, you can't. The problem isn't training the AI to actually play all the heroes, that's the easy part (and also it's not even required to play the full game, no human can play every single hero), the problem is training the AI to play against all the heroes. That's the challenge - and that's the part that doesn't scale linearly at all. The more heroes the opponent can pick, the more complex your "behavior tree" has to become to think about every possible combination of what they could do.
>you are relying on a computer having human limitations to show that it is superior.
No, I rely on a computer playing the same actual game and not cheat. Because that's pretty much exactly what they're doing right now. It's like modding the game so that every animation is color coded by if it would currently hit you, every minion perfectly marked if it is in execution range, every champion running around with circles that show their ability ranges, with your champion being color coded depending on which ranges, etc. (Except actually even worse than that.)
Again, in the actual real world an AI might have a 360 degree view of the environment, but it still has cameras and it still needs to do naturally imperfect object recognition algorithms on everything - it doesn't just get floating point values for every object's position and trajectory from God.
>When TeamDotaBot2000 is winning every game on the DotA ladder
If TeamDotaBot2000 wasn't directly affiliated with Valve, they would literally get banned for cheating. Because they're not interacting with the game like a normal player would, and they are doing things even a perfect, god-given AI playing the game through the same interface couldn't.
>it is expected that computers beat humans in any field with formally defined rules and objectives.
I expect this to be eventually true in any field. By so much that humans will be fundamentally useless in terms of advancing knowledge, culture, or anything in between. But if that's going to happen in 20, 50, 100 or 10,000 years really isn't clear to me, and neither is that all they'd have to do is put a realistic amount of hardware into their current approach to learn the entire game. The complexity of this task is definitely scaling exponentially, and just like you can't just throw twice the compute at a 128-bit cryptographic key because it worked so well for 64-bits, you can't just throw more compute at a game to learn to play against more champions.
The kind of people attracted to this area is also a factor. The automation revolution is a marketing conceit
Yea billions went on chatbots that were no smarter than some very basic procedural logic and grepping a text file. Worked in an investment bank who put one in front of customer service and got rid of the phoneline. It was utterly infuriating. You'd log an issue (used to be done via a form) by answering questions to this bot. What did that achieve?
Hold on for a moment, and name three. Because I honestly haven't seen a blockchain that isn't either a) scam, b) naive mistake, or c) an ecological disaster if ever scaled up (therefore unworkable).
AI, for all the hype and nonsense around it, isn't even approaching the blockchain levels of bullshit.
1. Bitcoin - I have hedged currency successfully using Bitcoin
2. Maker - Check it out. It really does show power of smart contracts
3. Oracles - Although, I am not familiar with the tech but they are beginning to show real world adoption. Maker uses Oracles for e.g. Check Chainlink
Edit: Telegram? I use it
Half of these altcoins do not have working software. In 2017 the ICOs did not have any software at all, just a promise on a homepage with a button to send money. The other half do not scale or do not meet their own basic requirements. The oldest, most venerable project Bitcoin had an inflation bug a couple years ago that would have let anyone counterfeit an unlimited amount of coins.
At least the AI scammers show up with code.
Hey - you can save your customer database in a really cool convoluted and slow database. Because bitcoin. Plus your clients can run this fun app that drains their batteries.
Smart contracts have the fundamental problem of people having to write perfect, error free code (as it can't be changed later), i.e. an impossibility. Often these smart contracts deal with a monetary value (as people strangely assign value to those "coins"), so something like the DAO hack on the Ethereum blockchain is inevitable. Also to do anything on a blockchain, even just add 1+1, on any hardware, no matter how expensive, no matter how far in the future, has to work at full capacity to hack some crypto. Your laptop will heat up and the fans go on full. Sounds trivial but if you've experienced it it's weird.
Oracles are a fundamental problem of blockchain: If you trust an outside source of truth, why need the blockchain? Go straight to the oracle.
> revolutionizing and democratizing
> perception
> alarming rate
Well done. How can I send you money?
This tech is "revolutionary" in that nothing like it has ever performed anywhere near the current level. MNIST is effectively a solved, toy problem now, and many image classification problems are as well.
Democratized in the sense that you can for the first time write and test these state of the art algorithms on your personal machine and, while a couple years ago you needed something beefy like a 1080 TI, even that requirements has been relaxed with many optimized architectures.
More importantly, all of this has literally exploded in the last 5-10 years, no doubt due in part because of the open access nature of arxiv and open source.
That's totally fine though, while comparisons to blockchain are a little insulting, all of this cynicism means less competition for me!
AI may just be a buzzword, but neural networks and ML are not. The tech has just arrived, this is fresh, evergreen territory, and the first wave of applied machine learning is quickly approaching, in quiet development across industries. Things are about to get really interesting with the academic explosion of neural network architectures and theory, and I would strongly recommend to any developer to spend a few months getting up to speed!