Live data from Hacker News

You might not need machine learning

nullprogram.com

31–40 of 201 posts

Re: You might not need machine learning

#31
> A key feature of neural networks is that the outputs are a nonlinear function of the inputs. However, steering a 2D car is simple enough that a linear function is more than sufficient, and neural networks are unnecessary.

This depends entirely on the definition of 'steering a 2D car'. In the model used, throttle is simply proportional to the distance to the nearest wall in front of the car. This means the agent will never accelerate coming out of a corner, because it can't know it has the headroom to steer away from the wall as it's coming out.

Similarly, the model for steering inherently steers the car towards the middle of the track. I would expect the car to wobble from left to right if the road's edges are ragged, make up its own corners if the track edges describe a 'fake' turn on a straight bit, and the car would likely crash if it were to encounter a Y junction or a pit stop. The neural network agents showed smarter behavior here because it is able to capture more complex cross-dependence between different inputs.

On the topic of junctions, if the track were to include them, perhaps it'd be nice if the car chose the quickest route to optimize for lap times. But maybe that stretches the problem statement too much.

> Instead of doing anything fancy, my program generates the coefficients at random to explore the space. If I wanted to generate a good driver for a course, I’d run a few thousand of these and pick the coefficients that complete the course in the shortest time.

In theory this is more random and less efficient than an evolutionary algorithm, which searches the problem space in a structured way. If the author really wanted to hammer the point home, a least squares method to one-shot the coefficients would be more convincing.

All in all, the author doesn't make any hard claims that are false. But I would nuance the point of "neural networks are unnecessary" to "simpler models will do for simpler objectives".

Re: You might not need machine learning

#32
post #26

I love the article, but I don't agree with the premise that machine learning equals neural nets. In my understanding machine learning is a very broad term that just as well could be applied to the polynomial model if the constants were optimized algorithmically. I feel like the presented argument is more for transparent vs opaque models rather than machine learning vs something else. Also one could argue that the pol…

Well... I guess most people equal ML with AI and use these terms interchangeably. If you just replace ML with AI everywhere in this article it is going to make sense. The article has other problems, one being the main premise. The problem isn't to drive a car around track (which is what the polynomials did) but rather write a program that can figure out how to drive a car without you knowing how to solve it.

In my understanding AI is an even broader term and means "any solution that imitates intelligent behavior". E.g. expert systems which are pretty much a bunch of if-then rules are also considered AI.

Re: You might not need machine learning

#33
post #27

I love the article, but I don't agree with the premise that machine learning equals neural nets. In my understanding machine learning is a very broad term that just as well could be applied to the polynomial model if the constants were optimized algorithmically. I feel like the presented argument is more for transparent vs opaque models rather than machine learning vs something else. Also one could argue that the pol…

The machine learning course at my university starts out with polynomial regression and estimators, statistics of classification, etc.. Neural networks are only one tool in a large toolbox. But they are all the rage and it is no surprise that a lot of people want to play with them. Cynically, neural networks are easier as you don't really have to think about your model. Give some examples with some classes and you're…

> Cynically, neural networks are easier as you don't really have to think about your model. Give some examples with some classes and you're done. Or give examples of one class and let the neural net generate new ones. Doing away with the abstraction beforehand is an enticing prospect.

If you're trying to solve a well understood business problem sure but my issue with this is that you pigeonhole yourself and your solution. I'm much more interested in understanding the model than doing the implementation because that allows you to build on top of what you get out of the box in a framework for example. It's like learning React before learning Javascript. It might be a good short term solution but long term it certainly isn't.

Re: You might not need machine learning

#34
post #26

I love the article, but I don't agree with the premise that machine learning equals neural nets. In my understanding machine learning is a very broad term that just as well could be applied to the polynomial model if the constants were optimized algorithmically. I feel like the presented argument is more for transparent vs opaque models rather than machine learning vs something else. Also one could argue that the pol…

Well... I guess most people equal ML with AI and use these terms interchangeably. If you just replace ML with AI everywhere in this article it is going to make sense. The article has other problems, one being the main premise. The problem isn't to drive a car around track (which is what the polynomials did) but rather write a program that can figure out how to drive a car without you knowing how to solve it.

Well that depends on your definition of AI. Which isn't well defined. We call AI what we perceive as "magic". Black box algorithms have a higher chance of being perceived that way (e.g. neural nets). When you get some insight into how an algorithm works (easier for transparent box algos, but same holds for black box algorithms), you start to see it less and less as "magic", and, consequently, you're less likely to refer to it as an (artificial) intelligence. Because ultimately, that's what we mean by intelligence -- magic. When we say that something is intelligent, we liken it to ourselves: it evokes a sense of identification. It all comes back to a sense of humans being fundamentally separate from "the other" (computers in this case). If we saw the mathematical models and algorithms as just that, we wouldn't call them AI. Also, if we didn't think of our intelligence as more than the behaviour of our biological computer, we wouldn't be enchanted by the concept of non-biological systems mimicking some of our behaviour.

Re: You might not need machine learning

#35
It goes without saying that if you know (or guess) the model or function you are trying to implement, then you don't need machine learning.

Toy problems like this are still interesting because they demonstrate techniques that are applicable to bigger problems. I'm guessing the network in the car game doesn't need more than one layer and two outputs (acceleration vector), but that is besides the point.

The technique being demonstrated is the ability of GA (or maybe particle filters), to find "optimal" weights for a network given whatever simulator. This is always interesting, especially when done with graphics like this.

Re: You might not need machine learning

#36
post #27

Earlier quoted context omitted.

The machine learning course at my university starts out with polynomial regression and estimators, statistics of classification, etc.. Neural networks are only one tool in a large toolbox. But they are all the rage and it is no surprise that a lot of people want to play with them. Cynically, neural networks are easier as you don't really have to think about your model. Give some examples with some classes and you're…

> Cynically, neural networks are easier as you don't really have to think about your model. Give some examples with some classes and you're done. Or give examples of one class and let the neural net generate new ones. Doing away with the abstraction beforehand is an enticing prospect. If you're trying to solve a well understood business problem sure but my issue with this is that you pigeonhole yourself and your solu…

Oh, I was not defending neural networks. This was the cynical sales pitch for the case where you don't want to employ mathematicians or computer scientists, but just throw code and computational resources at the problem.

Re: You might not need machine learning

#37

Yes ML is overkill in this case, now test it with sensor noise, track obstacles, and the simple polynomial version might break down

This is a pointless comment that misses the point of the post completely. It says "you _might_ not". The given example in the opening paragraph describes a scenario where you don't need it.

The parent commenter didn't say that everybody should use ML in all circumstances. Real world tasks are often more complex than invented toy examples, and quite often hand crafted policies don't work so well. And it was not elaborated in the original blog post. So I think it was a valid point.

Re: You might not need machine learning

#38
Can someone who knows C help me understand the source code?

https://gist.github.com/skeeto/da7b2ac95730aa767c8faf8ec3098...

The concepts and equations he has are pretty simple but I'm really not seeing how they translate into code.

The code also isn't the easiest to try and understand for me. Multiple 1-3 letter or otherwise (Seemingly) poorly named variables, some C jargon I'm not familiar with (Mostly the -> operator) and the fact it's a relatively large chunk of code.

It seems like the core logic loop is here: https://gist.github.com/skeeto/da7b2ac95730aa767c8faf8ec3098...

And the position and acceleration of the car is altered each iteration through randomization?

It's hard to piece together.

Re: You might not need machine learning

#39

Earlier quoted context omitted.

Wow, how bizarre. Am I weird in jumping to the conspiracy theorist conclusion that this is some sort of experiment on us, like an A/B test to see what kinds of comment works on what kind of thread?

No, this is someone getting a bot some karma so it can eventually contribute to the manipulation of posts (i.e. getting things upvoted to the front page).

Then it is probably our duty to downvote.

Re: You might not need machine learning

#40
post #23

As a former data scientist I feel we try solve problems the hard way because one of two reasons (maybe both): 1. To feel smart 2. To justify our paycheck Most of the time simple solutions like the one in the link will be more than enough but we just can't resist the urge to implement this new paper we just found. I remember thinking about using a NN for a problem we had, after looking it closely for two days all I ne…

I agree, but as a data scientist myself I've always known that part of my job is to choose the right tool out of the box. If that tool is a linear fit, or heck even adding a few columns in a spreadsheet, it's my job to realise that and choose appropriately. If it's a complex custom-built NN, then as long as the cost-benefit analysis justifies the build time, I'll choose that.

Of course, as you mention, there's always the business-political aspects - of explaining or justifying your choice to people who don't understand any of those tools, and who often want to pretend that they're part of a "smart data-driven AI" company.

Post reply on HN