odysseus2000 wrote:...for now Nvidia looks to be the best potential picks...
I'd probably agree on that. I nearly wrote a follow up post to my initial post suggesting them. Where AI has been taught without the help of cloud computing, a lot of the time the libraries performing the number crunching now tends to get shipped off onto GPUs, and usually nVidia.
While the 'application' end - as opposed to the 'training' end of the process doesn't need such significant computing power, there is likely to become a market for dedicated, 'programmable' convolutional neural network ('deep learning') chips i.e. "AI chips", which can apply a pre-trained network very power efficiently.
I could imagine in future that one or two manufacturers - and nvidia seems well placed at the moment to be one of them - could become the standard, much like Intel has been for CPUs, etc.
"It may be that there is some fundamental limit that stops machines from advancing too much and requires that there will always be a need for human control, but for now I don’t see it. Indeed the ability of AI to look at complicated stuff like GO and develop new, previously un-realised, approaches gives an indication that AI will probably find ways of doing things that humans have missed or academic conservatism has weighed against."
The fundamental limit is engineering :^)
To be clear on the GO example, GO is very constrained. Although there may be a lot of strategies, the rules are clear and the domain very limited and fixed. There are a finite set of clearly quantised board positions. There is also a very clear turn taking methodology.
All this allows for an 'adversarial' approach to learning strategies. In effect the trainers have the networks play each other. But all the time, they are playing fully constrained in a very 'logical' clearly demarcated world. All the time, there is a 'controlling' program that is ensuring that they are playing to the rules of GO.
And that's the key point. To be useful, a deep learning network (or any other AI for that matter), needs to have a clear aim, a clear context. Just like any worker in a job - they need to understand what they are expected to do.
For example, if you took 20 arbitrary people, bought an empty factory building and just put those people inside without any instructions, it would be unlikely that you'd end up with a functioning business.
The people that developed that GO algorithm didn't use a deep learning algorithm that had learned to understand english and then told it "Go and learn to play GO". They provided an awful lot of 'scaffholding' in which the network was placed, so that it just learned to play GO. The network probably doesn't even know that it has learned to play go. All it has done is learned a mapping of inputs to outputs. It (the AI) doesn't understand what that mapping is for. It just knows how to do the mapping it has been trained to do. A mapping that is better than any human has managed. But still just a mapping none the less.
And this is where engineering comes in with AI.
The AI is providing a few more modules - functions - which are available to engineers to build into more complex systems.
For example, with self driving cars, it will be impossible in practise, to just take the appropriate sensors, feed them into a deep learning network, and then hey presto, magically that network does everything - your car will drive you from A to B.
That won't happen. Admittedly someone did try that, using neural networks, in the 1990's, with disastrous results. (I can't find the link now - with all the current buzz about self driving cars, it's getting lost in amongst all the current chatter ... but from what I recall, the car managed to stay on the road OK, until it reached a bridge ... it turned out the network had learned something like grass indicating the constraint of the edge of the road, and when it came to a bridge without grass there, well... they called it quits)
In reality, the AI is engineered into multiple layers - in traditional engineering style.
Google (now Waymo) provide an excellent talk here, which gives some good details on 'how a driverless car sees the road' ... hopefully this link should start at the most interesting part....
https://youtu.be/tiwVMrTLUWg?t=470 What you can see from that (for example at 8:17 into it) is how the 'system' has identified the entities around it - and classified them into categories. That is where the main function of the (new) deep learning AI has come in. The deep learning algorithms have enabled the engineers to identify the entities around the vehicle, with a reliability that now matches humans.
[What follows is me reading between the lines of what I can see in the video, and from other sources, combined with my AI background, and software engineering background, based on how I would approach the problem ... and which for the most part seems to be - in general terms at least - how google engineers are approaching the problem]
Then effectively there is a break in the AI. So you have a small - but very clever layer identifying the entities, but that is a fixed layer, with a clear, demonstrable remit. You can show it millions and millions of pictures of things you might find on the roads, and you can then judge how effective, how reliable, etc, it can do that job, This gives you a module/layer. And that is the layer you are seeing in the video at that point.
At this stage, there is no planning. At this stage there isn't necessarily any motion consideration. Just first identify what the sensors and cameras can see.
The next level could then add simply physics motion to each entity - potentially from the lidar sensors, or comparing sequences of video frames, etc. This would be regular collision avoidance of moving bodies. Basic Newtons laws of physics taught in every secondary school.
Basically, without any further intelligent input ('behaviour') from any of the identified entities, is anything on a collision course?
At this point, if there is a stationary car in front, and you are heading straight for it and about to run out of braking distance, the rest of the system detailed below can be short circuited, and the emergency brake applied at this moment. I would expect any self driving car to have a lot of shortcuts of this type, that constantly monitor if a direct simple collision is likely, and that don't allow the car to knowingly put itself into a position that requires positive action from someone else to avoid a collision. (i.e. very defensive driving).
Then I believe (from what I've seen of the google videos) there are then separate deep learning algorithms that predict the behaviour of the entities the first layer has identified.
From an engineering point of view - i.e. the ability to be able to develop and test the system - it is probably unlikely that google (or any other serious player) would merge the two together into a single network and just hope the AI will sort it out.
Each layer needs to have a clear remit, with testable scope. And the way the presentation in the video builds on each layer, I believe, is reflecting how their systems are probably actually doing it in the real world.
Separately, a parallel layer would involve analysing the static entities - the traffic lights, the road signs, etc. And then pulling information from them. Where it has identified a road sign, what limit is it indicating. Where it has identified a traffic light what colour is currently showing. Where it has identified lane markings, what are these markings - effectively categorising them according to the markings in the highway code.
This would be engineered as a separate layer to the 'moving' entity analysis layer.
From an engineering perspective, although an AI algorithm might read the status of a traffic lights, might identify a give way road marking, etc, I believe that these would then be fed to a more traditionally engineered algorithm, which can provide a clear, demonstrable output of the system's understanding of the road and associated rules around it. And I believe this is the kind of information that you can see in that - and other similar - videos, where they show the world around the car with annotations indicating what is going on.
As an aside, a more recent video I saw, showed how google were looking at presenting this information to the occupants of the car in a way that helps give the occupants confidence in the capability of the car - as a passenger, you can see for yourself that the car is able to see and identify all the things around it that you can see, and it can show you with an arrow the path it intends to take, the status of lights, etc.... the talk that I saw, said this was very important because if the car stops, such a display will allow the user to understand _why_ the car has decided to stop.
From an engineering point of view, having this as a traditional (non-AI) layer, is probably going to be critical to enabling cars to be updated quickly and reliably if the rules of the road ever change - which they will!
Once the rules have been analysed, the permitted paths for the car can be identified. Once the possibilities are determined, then a separate AI can perform path planning as to which of the permitted routes to take. This may be using deep learning algorithms, or could simply now use more traditional planning algorithms, or other custom algorithms. The point is, because the whole system is engineered into layers, this path planning layer, can use completely separate techniques to the deep learning algorithms used to identify other cars, pedestrians etc.
--
I suppose, what I'm really trying to emphasize, is that in the real world - to make things that you can sell to consumers, with a 12 month guarantee, or even to which they will entrust their life, or trust in the operation of you business, inherently they are going to have to be constrained, with a clearly defined, and testable remit.
And that requires engineered modularisation.
To take your example of Amazon and others providing deliveries ... they may use some AI for scheduling the deliveries. But that isn't opaque. The planning aspect is still monitored by people. People can overrule it if felt necessary. The AI isn't top to bottom running the business excluding people from it.
Sure, the top level business might use deep learning to predict likely workload for planning staffing. That might consider the weather, the news, the economy, and so forth. And managers might trust the output of such algorithms and commit to bringing in enough staff to cope with the predicted demand.
There may be AI used in looking for suspicious behavours in workers. Looking for potential criminal behaviour in video surveilance. Or looking at individual's CV histories to spot anomolies, etc.
There may be AI in the sat navs of drivers, listening for their instructions to turn the volume up, or telling the unit the road is blocked.
There may be AI monitoring the cars to detect when they may need a service before they breakdown and are unable to finish their delivery.
But these are all separate AI components, each doing a discrete task, and only glued together into an 'organisation' by people managing those systems.
Those people may also use AI to help them manage those systems, to monitor all the different levels, but ultimately it will be a partnership.
Just like with self driving cars, all businesses need to adhere to regulations. If you tried to run your business with a single deep learning AI (or other general AI) that learned your whole business as a single black box, you'd be unlikely able to respond to regulation changes - even simple things like working time directives, etc.
And from a cost perspective, it is prohibitive to build general purspose humanoid replacements. If you want an AI to monitor the quality of your product coming off a production line, you won't go to a vendor selling a general purpose two armed, two legged, humanoid android, terminator style that could decide to take over the world.
"This has all happened in about 6 years and the rate of AI innovation is exponential."
While the current AI boom is exciting, be careful not to take it out of context.
Ultimately all it is doing it showing that computers can now do some more tasks as well or better than humans.
But that isn't something new to the past 6 years.
Ever since the invention of the computer, computers have been able to perform calculations much faster, with bigger numbers, etc, than humans ever could.
Spreadsheets then allowed businesses to organise and manage accounts better than they could with pen and paper.
Computers could draw charts of that data faster and more efficiently than humans ever could.
Regarding the rate of AI innovation, I don't agree it's expontential. Quite the opposite. I'd say there has been a substantial step change, but like GPS (global positioning system), the current change will make a transformative change, but it is limited.
Just like 20years ago, GPS was going to be everywhere - even you toaster would know where it is - the current buzz with AI is a substantial step in a particular technique.
Sure, there's currently a rush to apply this anywhere and everywhere and that will change the way we live and do business. But it is limited in scope. Once all the nooks and crannies have deep learning in them, we're back to waiting for the next advance - and they don't happen often!
And yes, I'm sure the current deep learning AI will somehow even make it into your toaster!.
But your toaster isn't going to turn into the next Adolf Hitler taking over the world...
... but you could end up with one like this ...
https://www.youtube.com/watch?v=LRq_SAuQDec ... but only because someone specifically designed it like that for a laugh.
At the end of the day, all this AI buzz is really just engineering.
Very exciting and interesting engineering.
But it is just engineering.
Could be used for good or for evil (war or peace) - but that will be down to how the engineers, engineer it.