Unreasonable Ineffectiveness of Machine Learning in Computer Systems Research
sigarch.org
sigarch.org
No, no they're not. We have some lane tracking in good weather etc., but we are still decades (or more) away from full level-5 autonomy that would make drivers behind the wheel unnecessary.
But it only goes to show that not even computer science experts are immune to marketing hype and well funded PR campaigns. :)
As for the unreasonable ineffectiveness - it's not just in systems research. ML can be very effective in some areas (especially when there is a ton of training data), but many areas of human endeavor are hard to model via function approximation techniques like those used in most of ML.
Do you have a citation for that? I often see this asserted, and I see many assertions the other way. Whenever I personally see self-driving cars in the wild, I'm astounded at their effectiveness on uncontrolled access roads. What makes you think controlled access roads will be much more difficult? Or to be more specific, why is industry consensus that we are decades (or more) away from this goal? Or is this just your personal opinion?
- Gill Pratt, Toyota Research Institute http://spectrum.ieee.org/cars-that-think/transportation/self...
> It will be 25 years before self-driving cars take off in America
- Bill Gurley, Uber investor http://www.cnbc.com/2017/04/06/bill-gurley-uber-investor-sel...
I've seen full size buses driving at night on low visibility with lights off.
Bikes just doing illegal 90 degree sharp turns against oncoming traffic.
Pedestrians crossing 5 lane roads frogger style.
You name it...
Self driving cars are just a toy in the USA, but in china they could optimize infrastructure that is extremely limited and unable to grow to meet demand. They are also not above changing the rules as needed (like when they put up fences in our office so we couldn't easily cross the street to our other building, all in the name of keeping pedistrians off what was otherwise a very untrafficed road.
I think if anyone pulls this off it is Toyota.
I think the ML is the easy part. The real engineering in making these things truly production ready is the hard part. Only few places in the world have that kind of production expertise. Toyota being one such place.
The actual actuating part of a self-driving car is fairly easy (just turn the wheel, apply the breaks), it is the control system and sensing that is key to success, the former being software, and the latter (LIDAR) that Google is heavily invested in while Toyota is very late to that game.
Right now, if I was a betting man, Google will beat Toyota. Of course, Toyota could always flip the table and take some risks, but that isn't what Toyota is known for. If it happens great! But I don't think any smart money sees Toyota having a clear advantage ATM.
I'm saying a software company is not gonna crack the market. Software companies neither have the expertise nor the engineering discipline. Boston Robotics and Google have been famously not getting along and their self-driving division seems to have been horribly mismanaged for a long time and we are now seeing the fallout in the form of lawsuits.
Industrial robots, and humanoid robots for entertainment purposes. Whereas Google has many of the founders of ML, not to mention its experts. Is Toyota, who already seriously undervalue software, willing to pay top dollar for those people when their average SDE makes < $60K/year (not just a problem with Toyota, but Japan in general)?
You also seriously misunderstanding the amount of engineering discipline needed to build modern software systems.
But whatever I can say on "modern software" has already been said much better by Alan Kay so I'm going to defer to him for the rest of this conversation.
I'll buy Toyota stock. You buy Google stock. We'll compare notes in a decade and see who managed to make self-driving cars commercially viable.
I have personally heard of the complaints of John Leonard (MIT) and Edwin Olson (UMich) about the severe lack of research of self-driving car robustness in weather conditions. The issue is real.
He goes on to explain that easier domains may come sooner (so maybe level 4), but his comments certainly pour some cold water on level 5.
[1] http://spectrum.ieee.org/cars-that-think/transportation/self...
The actual quote is:
Venture capitalist Bill Gurley thinks it will be more than 25 years before the majority of rides in any major American city are performed by autonomous vehicles with no steering wheel.
Note that this is actually an argument against us being "still decades (or more) away from full level-5 autonomy that would make drivers behind the wheel unnecessary." (to quote the OP).
If in 25 years time more than 50% of trips are in autonomous vehicles with no steering wheel, and assuming the average age of the car remains roughly the same (11 years)[1], then completely autonomous cars will have to be available much earlier than 25 years.
However, I'd note that he said "more than" (so who knows exactly what he meant) and also self-driving long-haul trucks are a different subset of the problem. It may be easier to make long-haul trucks which just drive between cities and drop off items at depots than cars which drive though city streets.
[1] https://www.usatoday.com/story/money/2015/07/29/new-car-sale...
Decades? Are you really sure? This assumption seems quite uninformed to me. The Grand Challenge was 12 years ago, from then we evolved from Level 1 to Level 3. Back then there was no data, computing power wasn't available as today, chips (&sensors) can be designed an built within a few months or even less these days for far less money. Machine Learning and Computer Vision made many advances in these 12 years (talent in these fields is now easier to acquire as more people can learn about it these days). We are at a completely different point these days. Level 5 is not the matter of decades, 5 years, 10 max. But not decades.
The sensors and computing are expensive now - especially lidar. But that's an engineering problem, as you suggest.
I was trying to address the question raised by the comment above: is this a problem of principles or of engineering, by saying that for a big (proportion TBD) segment of routes, it's engineering. Put onboard a bunch of sensors and computer power.
The apples-to-apples comparison of automated driving to normal driving is that we have an existing road system and we want to use that for automated driving and normal driving and automated driving should meet or exceed normal driving if it is to be successful.
The ultimate adapted commercial route for transport is called a railway, any kind of re-arrangement of the road system in order to adapt it for better use for automated driving is going to be a 'first world only' affair, and probably only a very small subset of that first world.
So for the foreseeable future automated driving systems will have to cope with all of the eventualities, even if for some stretch of their workload they may find things a little easier because of special adaptations (which of course will have to be equally accommodating to human drivers, or at a minimum not hinder them).
As in, heavily trafficked inner city routes like buses. I think it will make a lot of impact fast.
There are plenty of videos of autonomous cars is highly chaotic road conditions, but that's all old hat. Weather is an issue, but weather is also forecastable. Even if you only get rid of truckers in areas stay above freezing that's still a massive change.
That's true but if they are simply different edge cases it might already be problematic.
And yes, the data will be there. But even if deep learning + lots of data is 'indistinguishable from magic' that does nothing to dispel the feeling of loss of control and every accident where regular drivers would think 'that would never happen to me' (see the Tesla one with the truck that got rammed) is going to make this a much harder battle.
So the question is: will the initial deployment of self driving vehicles be sufficiently impressive that any such errors will be forgiven?
I'm on the fence on this one, I have no idea where it will go but I'm kind of happy that this is happening now. I got to enjoy the 'drive yourself' period of driving in some of the best cars that were ever made and at the same time I'll probably be able to enjoy increased mobility due to some form of assisted driving much longer than what I would accept for myself as an autonomous driver.
It would be nice if there were some credible, unbiased sources that were predicting when full level 5 might be viable.
Edit: Maybe a somewhat credible opposing view. Though he may be crabby about his department being drained of talent, and so not unbiased: https://motherboard.vice.com/en_us/article/robotics-lab-uber...
Personally, I very much doubt we're more than a decade away from cars-drive-way-better-than-people levels of tech. Whether that means you'll be able to buy one is another question.
This claim is almost certainly true for the topic at hand, since long-haul trucking is the highway-est of highway driving. Outside of the topic at hand, my own extremely subjective opinion is that they chose some of the tamest suburbs possible (I have significant experience in the Bay Area, SoCal, Austin, and Pittsburgh).
Even if that's the case, that would probably be sufficient for long-haul trucks. Especially in europe which has a pretty dense network of controlled-access highways.
With a hyper detailed map, you can automatically score your vision/world modeling system (because the static elements are known).
Without a detailed map, the scoring is much harder.
It's not 'general level 5' but it might be a transport system in cities with appropriate conditions that have been mapped.
Then it gets gradually expanded out to other cities.
More: the point being that it is a huge opportunity and there doesn't necessarily need to be a perfect, fully capable system to start having a significant impact on the number of drivers.
Edit to add: Taking the idea a bit further, why not have remote drivers who can handle these problematic bits?
There are historical reasons as well, but given we're discussing new technology (automated trucking), there are plenty of things that will change as a result and may not have much sway going forward.
The question of "replacing drivers" isn't about when machines will be able to do exactly what drivers do now, it's about when we'll figure out to achieve the same end result with much less labor, likely implementing significant changes to the process.
How would this be possible at anything less than level 4-5 autonomy? If they can take a nap, the truck's got to be fully autonomous.
Manual handling of problem cases that can be done from a central dispatch center would still require far less people to deliver the same cargo than now.
Level 5 is so distant because it requires solving many problems that we haven't fully acknowledged yet; but Level 4 is different, major car companies (e.g. I recall a quote from Ford, probably Volvo as well) have stated that they don't ever intend to produce a level 3 autonomous car, that they want to go straight from level 2 driving assistance to level 4 cars since expecting a driver to monitor the situation all the time and be able to quickly take over (as level 3 requires) isn't realistic from a safety perspective, many drivers simply won't/can't do it.
I think the level system is also a bit over simplified. Level 4 highway is very different from level 4 city, and level 4 highway would be enough to automate a lot of trucking.
The problem is that it leads people to say we'll have Level 4 in a decade or less when they mean the former case. Whereas the sort of capabilities needed for autonomous taxis are decades away.
How about a mixed adoption, on 99% of pure-highway the truck is driver-less, but there are dedicated service stations for a human driver to take over into the urban area.
(In many/most cases, the long haul overland transportation today is already handled by freight railways. It's unclear how big a win there is to having what amounts to an additional form of intermodal transportation as opposed to just keeping a person around who can also handle breakdowns, etc.)
I see a future where drivers get in the truck, handle the hard bits at the beginning and end, the truck handles the tedious A->B without stopping, while the drivers can rest, and then the drivers take over at B.
For an example of the kind of logical problem optimizers solve you can take a look at: https://github.com/google/souper.
So I don't see how you can take the current neural nets and get them to design a more efficient CPU architecture or a better JIT.
We just need better simulation tools or more resources.
But I don't put genetic algorithms in the same bucket. Genetic algorithms are a different breed of optimization algorithm compared to neural nets and gradient descent which is what the modern crop of AI is basically all about.
You can argue that this class of jargon is exclusionary or not. Agre, at UCLA, for example took the position that jargon was inherently a tool of dividing up groups into "in and out" (ironically he himself, with an MIT PhD, was very much in the in group).
I tend to consider jargon just a tool like any other, typically valuable because you can save a lot of time and gain clarity by saying "O(n^2)" or "trie" and assume your reader understands it.
And since advancements in our abilities at solving symbolic and mathematical problems have directly enabled the current research in PLT and formal systems, I see no reason to discount the impact ML has had in pushing that frontier.
"The exceptional simplicity of physics-based functions hinges on properties such as symmetry, locality, compositionality and polynomial log-probability, and we explore how these properties translate into exceptionally simple neural networks approximating both natural phenomena such as images and abstract representations thereof such as drawings."
But this:
"Another example is the use of regression techniques from machine learning to build models of program behavior. If I replace 64-bit arithmetic with 32-bit arithmetic in a program, how much does it change the output of the program and how much does it reduce energy consumption? For many programs, it is not feasible to build analytical models to answer these kinds of questions (among other things, the answers are usually dependent on the input values), but if you have a lot of training data, Xin Sui has shown that you can often use regression to build (non-linear) proxy functions to answer these kinds of questions fairly accurately."
I'm not sure whether I am fascinated or horrified.
I do recall a bit of research (published by a Nokia R&D team I think) that reckoned you could get a mostly-ok performance estimate by tracking about half a dozen indicators including instructions executed, cache misses, tlb misses and brancb mispredicts and weighting them appropriately. The trouble there is nobody wants a performance model that's right 90% of the time but significantly wrong 10% of the time with no way to tell if the workload you want to test is in the 10%. But it's an indication of the importance of branch prediction still, I think.
ML, in a very inaccurate way, can be seen as:
1.We have observations and conclusions.
2.We don't know exact those observations leads to the conclusions.
3.The assumed procedure that leads the observations to conclusions is called model.
4.With enough pairs of (observation, conclusion), we can train a good model that is good enough to make good decision on future observations.
Problem for traditional computer science is that, the system is so deterministic that we know EXACTLY how it works on instruction level, while ML is good at dealing problem that is inherently probabilistic.
This is completely the wrong approach. Machine learning can be done on a dime, provided the proper nurturing and environment, but you have to be willing to make some concessions.
First and for most you have to be able to write a program that can make a decision. A simple "if" condition is sufficient.
Secondly, that decision is open to modification by asserting the evaluation (the "if" condition) against its result. In this regard the logic is fluid opposed to a series of static conditions written by humans hoping to devise organic decisions.
Finally, the decision is allowed to be completely wrong. Wrong decisions are better than either no decision or the same decision without deviation. This is how humans learn and it should be no surprise that computers would benefit from the same approach.
The key to getting this right is bounds checking and simplicity. A decision must find a terminal point in which to stop improving upon its outcome, and a narrow set of boundaries must be affirmed to prevent unnecessary deviation. It is perfectly acceptable if some grand master must occasionally prod the infantile program in the right direction. This is also something that people do to other people who are learning.
If you can do that you have machine learning. You don't need big data to get this. You certainly don't need complex transportation machines or voice activated software to validate it. AI on a dime. If you can do it on a dime you can certainly do it with a multi-billion dollar budget and thousands of developers.
"Big data" is often shorthand for "lots of examples", no?
I use ctrl+scroll wheel to zoom and it is very annoying when that behavior is overridden.