HN Theater @HNTheaterMonth

The best talks and videos of Hacker News.

Hacker News Comments on
Hello World - Machine Learning Recipes #1

Google Developers · Youtube · 285 HN points · 6 HN comments
HN Theater has aggregated all Hacker News stories and comments that mention Google Developers's video "Hello World - Machine Learning Recipes #1".
Youtube Summary
Six lines of Python is all it takes to write your first machine learning program! In this episode, we'll briefly introduce what machine learning is and why it's important. Then, we'll follow a recipe for supervised learning (a technique to create a classifier from examples) and code it up.

Follow https://twitter.com/random_forests for updates on new episodes!

Subscribe to the Google Developers: http://goo.gl/mQyv5L -
Subscribe to the brand new Firebase Channel: https://goo.gl/9giPHG
And here's our playlist: https://goo.gl/KewA03
HN Theater Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this video.
Why book? I don't know about you or your cousin, but learning from a book is so slow and dry. Why not a video series or online tutorial? Hell, maybe teach him the basics and build a small project with him.

Codecademy is a great way to learn a bit of syntax and then build something. 'How to make a website' is a good intro course for getting into web dev.

There's also a lot of good python basic videos on YouTube, then he could dive into ML/AI with:

Machine Learning Recipes from Josh Gordon at Google https://www.youtube.com/watch?v=cKxRvEZd3Mw

Siraj Raval's channel on ML/AI/Programming https://www.youtube.com/channel/UCWN3xxRkmTPmbKwht9FuE5A/vid...

All that said, if you reallllly want a book: "Learn Python the hard way" by Zed Shaw https://learnpythonthehardway.org/

pplonski86
Thank you! I'm looking for materials in Polish so I was thinking that it will be the best to look for some book and its Polish translation. I haven't seen English videos translated into Polish.
You could watch the 'Hello World' Machine Learning Recipes videos by Josh Gordon at Google. Very approachable!

The first lesson is a classifier to separate apples and oranges.

https://www.youtube.com/watch?v=cKxRvEZd3Mw&list=PLOU2XLYxms...

I'd say scikit-learn is a better way to get started with machine learning. Check this out, for example: https://www.youtube.com/watch?v=cKxRvEZd3Mw
Honestly, it doesn't seem that complicated. Just watch this educational video series https://www.youtube.com/watch?v=cKxRvEZd3Mw by Google, and you'll be able to do cool stuff with machine learning.
Hello, my background is just like yours. Assuming you are a total noob

I learned that AI is not like programming, where anyone with basic knowledge of computation can dive in. You can NOT just learn AI by reading other people's code.

Its like Physics, there are solid principles you need to understand before you get in.

The point: AI does not come with the "batteries included". If you are in deed a noob you MUST learn the prerequisites.

Follow these steps in order and I guarantee you will be competent with AI in six months tops.(from my past experience)

  -  1. Know what AI actually is 
https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PL77aoaxdgE...

  -  2. Write basic  Machine Learning code
https://www.youtube.com/watch?v=cKxRvEZd3Mw&list=PLOU2XLYxms...

  - 3. Understand the Mathmatics involved 
http://www.heatonresearch.com/book/introduction-neural-netwo...

  - 4. Get some important concepts, 
http://neuralnetworksanddeeplearning.com/

  - 5. Finnish off.
https://www.deeplearningbook.org/
This series by Josh Grodin got started recently and looks promising. I assume they will eventually cover neural network / deep learning basics.

Hello World - Machine Learning Recipes #1 https://www.youtube.com/watch?v=cKxRvEZd3Mw

Visualizing a Decision Tree - Machine Learning Recipes #2 https://www.youtube.com/watch?v=tNa99PG8hR8

Apr 16, 2016 · 281 points, 35 comments · submitted by iamkeyur
IvanK_net
Keep in mind, that these videos don't teach you any machine learning. They teach you how to use programs, which perform machine learning for you.
Joeri
To actually learn machine learning algorithms i found the coursera (stanford) course to be excellent. Minimal programming and math knowledge needed.

https://www.coursera.org/learn/machine-learning/home/info

josso
I also recommend Welch Labs’ Neural Network Demystified-series[0]. It is a combination of the Coursera course and the YouTube videos. It get’s into some of the math, while still keeping it basic.

[0]: https://www.youtube.com/watch?v=bxe2T-V8XRs&list=PLiaHhY2iBX...

kowdermeister
That's good enough. You don't need to understand each filter in Photoshop to achieve your desired result.
splike
The mathematics of the model you end up using at the end of the day is such a small part of the overall picture when making use of machine learning.
ryanmonroe
If you're just using the algorithm to suggest items customers may be interested in buying, the math might not be important because nobody loses much when a mistake is made. Sometimes the stakes are higher and it's important to know what's really going on. If you're using an algorithm to decide who to give a loan to, all those "unimportant" small details might turn out to be very important once it's too late.
machinelearning
This is so false. Applying machine learning to a real world problem requires correct intuition and the ability to quantify tradeoffs mathematically. This is developed by understanding the math behind the model and what the tradeoffs are.
splike
I completely disagree.

Yes, we need to quantify tradeoffs between models mathematically, but that does not not require knowledge of the mathematics behind the models themselves. With cross validation, I can estimate the effectiveness of many black box models, without looking inside them. This step is called error estimation, and comes before model selection.

I can arrive at a pretty good model by a combination of correct methodology and brute force. It is this methodology that makes up much more of the overall picture. You could give me a black box, a rough range of parameters it takes, and I can tell you how likely it is to work well. This approach doesn't scale well to bigger problems, but I doubt tackling Big Data problems is the intention behind this course.

forgetsusername
>I completely disagree

Don't worry, as with anything there's a certain subset of people who actually know the underlying principles behind a subject, and for some reason feel threatened when those principles are abstracted away, as if their knowledge is now wasted. But that's the natural progression of things. Sorry.

It's funny it happens in a community of programmers though, where half of the tools that are used everyday are blackboxes that few really understand. Like the computer itself.

Joeri
It is in fact physically impossible to fully understand a modern desktop PC. Just the amount of lines of code involved makes it impossible to ever read them all, even if you had them. And that's just the software side. I doubt anyone can fully comprehend in detail everything that happens in a modern CPU, let alone the entire hardware system.

Computers are like cities, they can be managed effectively only by dealing with aggregates and abstractions. It's impossible for someone to know every tile in the sidewalk, but it is possible for them to effectively manage sidewalk repair if they have the right abstractions.

bgruber
it may not be possible to conceptualize all parts of a system simultaneously but that doesn't mean nobody can fully understand the system. A layer of abstraction isn't about not having to understand what's beneath it; it's a tool to aid in understanding.
Joeri
No, i literally mean there's too much information involved to review in a human lifetime. You can at one point understand any part of it, but a human life is too short to at one point understand every part of it.
flipgimble
And its completely fine to be the developer who uses pre-made algorithmic block for their specific problem. However you will always be several years behind the current state of art.

For example deep-learning really revolutionized the state of the art in image recognition in 2012 by winning academic competitions. It took about 3-5 years for those deep learning algorithms to get productized into packages like tensorflow, with high production tutorials and videos, so it was accessible to non-academics.

I don't think people that know the underlying principles of machine learning are threatened (Thats sounds like pretty insecure world view on your part). They operate in a different context where you want to push the state of the art in machine learning algorithms, instead of just applying existing best-practices to your specific problem.

forgetsusername
>However you will always be several years behind the current state of art

I agree with your post, but 99.9% of people who will be applying ML via black-box algorithm in the next decade won't be participating in, or at all concerned with, the state-of-the-art. In the same way that most of us aren't concerned about state-of-the-art chip design.

I can do a regression analysis with a couple clicks in excel. I need little knowledge beyond how to interpret results. Sure, the underlying data might violate some assumptions, but it's rare (and there are tools for that). And let's face it, the most popular applications by amateurs will be marketing related, not cancer-curing related.

thaw13579
Once you treat a model as a black box, how can you hope to interpret it?
forgetsusername
>how can you hope to interpret it?

Basically: "instructions", that become more simple over time. There are some nuances to, say, R^2. But the concept that it's "how much variance is explained by the model" isn't difficult to comprehend...or apply.

Let me clarify that I'm not saying it's unimportant to understand the underlying mathematics behind these processes. After all, someone has to design these things so that the layman can actually apply them. What I, and it seems others, are arguing is that it isn't necessary to have a deep understanding of the algorithms to get insight from their usage. Some creative person creates the tool, and other creative people figure out its best uses. They are rarely the same people.

I'll add: I'm not sure why you're down-voted. This community seems to be developing those bad habits of disagree = down vote.

thaw13579
That's a good point, there has to be a line drawn at some point, and that line probably depends on the user. It seems like documentation and communication are important for making making that boundary a bit softer too. E.g. looking at the mathematical definition of R2 isn't as immediately clear as describing it as "variance explained".
njwi332
Actually a regression analysis is a great example of something people often use incorrectly.

I have a degree in stats and someone at work who is self taught from a 'use the tools' perspective was trying to use these frameworks to analyse some log file patterns. When I had a look at it, his results were showing that they were statistically significant, but the data didn't look anything like a linear relationship and fitting it to a regression wasn't a valid move. That's a simplistic example but even in the relatively simple realm of linear regression there are more difficult traps to spot, like heterostedasticity or error normality.

forgetsusername
>like heterostedasticity or error normality.

But nothing you've said is complicated enough that in can't be explained through simple instructions or conquered through better tools. This is besides the fact that a little bias in the estimation isn't the end of the world if you're only trying to figure out who clicks ads, and not doing medical research.

Believe me, I run into the same issues as well, having to state "You can't do that..." when I watch co-workers try to apply even simple tests. I just think we draw the cut-off line at different skill-levels.

bartkappenburg
And I disagree with that.

Tuning parameters and selecting features needs (a) understanding of the model(s) used and (b) an understanding of the data.

'Brute forcing' these steps can grow exponentially in time (eg. feature selection out of n features takes 2^n combinations) and makes your approach not only very inefficient but also doesn't predict if you have a good model. Your approach makes sensitivity analysis makes very very hard.

pitchka
And yet again these stuff can be automated with contextual bandits or gaussian processes. Instead of bruteforcing one can just put yet another system to find the parameters for them.
Roritharr
I first played Video Games, then modded them, then wrote my own.

For me that's a natural evolution and I find it hard to accept that in certain fields you are supposed to get in contact with the academical background first before jumping in to actual usage. It's like having to understand the detailed physics of an internal combustion engine before driving or before repairing the car.

thaw13579
I would agree that there's plenty of theory that isn't necessary to know, but anyone using a machine learning algorithm should at least understand what the mathematical machinery can and can't do.

A big part of this this knowing how best to fit a model to the data, which usually requires knowledge of mathematical obscurities to avoid things like overfitting, local optima, etc. It's not glamorous stuff though, so it usually isn't brought up in presentations like this one.

wpietri
I agree people should know that eventually, but I'm suspicious that they really need to know it first, or even early on.

My early coding years were spent typing in BASIC game programs from magazines (wumpus hunters represent!), tweaking them, and later making up my own. There was a lot of theory that I could have benefited from, but I never had the motivation to learn it until later, when learning the theory solved problems I had actually experienced.

thaw13579
Good point, I was thinking more about people using ML in a professional capacity. It's interesting to think about how best to teach it, and it totally seems reasonable to save the math for later in some cases. Another interesting challenge is that ML fails in less obvious ways than coding in general, and maybe in some way, intuition for that is something to be taught early.
njwi332
The main difference, and reason why your analogy isn't entirely accurate, is that while with games you can see when things aren't working, when using ML or stats you will _always_ get a number. Whether or not that number is meaningful requires some amount of domain knowledge a lot of the time. I have a degree in stats and someone at work who does not was trying to use these frameworks to analyse log files. When I had a look at it, his results were showing that they were statistically significant, but the data didn't look anything like a linear relationship and fitting it to a regression wasn't a valid move. That's a simplistic example but even in the relatively simple realm of linear regression there are more difficult traps to spot, like heterostedasticity or error normality.
wpietri
I agree that one shouldn't apply ML in a commercial context without understanding it. But I think that's true about almost anything. I can't think of a technology I use for which I don't have a corresponding "novices did it all wrong" story.

But here we're talking about a series of intro videos and the appropriate pedagogical approach. It really could be that ML has more subtle failure modes than programming, although I'm suspicious; I remember a lot of my novice C issues where the program did happen to appear to work, at least for short periods, even though my code was terrible. But if it is, I think the trick there isn't to prescribe a heavier dose of theory, it's to get people to experience problems like you describe in a way where they can quickly detect and learn from them.

Gratsby
I think they've done a good job of simplifying things to the point where the viewer feels not only that ML is useful, but it's achievable.

There are a lot of people who have been forward thinking enough to see the value and incorporate this into their ideas, but there are so many more who think it's a magical black box that has no relevancy to their world.

While some might feel like this is too simple, I think this kind of basic introduction is very powerful.

rayalez
Amazing video, can't wait for the next one!

I have written my hello world algorithm, and I'm very happy about it =)

I have been meaning to start learning this stuff for a long time, but it's really hard, most of the resources are above the level I'm currently at.

This is so amazing to see an accessible course like this, I really hope they will keep it up. It would be a really fun thing to focus on it during this summer.

ea016
For those interested, episode 2 is out [0]. There is also a playlist containing all episodes [1]

[0] https://www.youtube.com/watch?v=tNa99PG8hR8 [1] https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6r...

simonw
Dumb YouTube question: is it possible to subscribe to a playlist do I get a push notification when new videos are added to it? I don't particularly want to subscribe to the entire high traffic Google Developers channel.
rayalez
Nope, but you can subscribe to the RSS feed(just paste the playlist url in feedly).

You can also probably setup ifttt to send you an email when the new feed item appears.

coderKen
Thanks for sharing this, been planning to get into Machine learning this year.
21
Python 2.7 :)
acconrad
The videos are neat but kind of minimal. Is it odd for me to feel uncomfortable and skeptical of this series because of the title? Google has clearly figured out how to market this video, since the "I" changes but the message is the same every time:

https://www.reddit.com/r/programming/comments/4eyyhm/google_...

https://www.reddit.com/r/coding/comments/4f1p35/google_has_s...

https://www.reddit.com/r/MachineLearning/comments/4f07rp/goo...

The last one is actually the OP it seems, and each video is a good chunk apart in time posted. Not sure what to make of it, I just don't like it when a title like this is the exact same but is made to seem like it was genuinely written by the person who posted it.

tlrobinson
It's really common for Redditors to cross-post other peoples' submissions to other subreddits without changing the title.
Apr 16, 2016 · 4 points, 0 comments · submitted by yxlx
HN Theater is an independent project and is not operated by Y Combinator or any of the video hosting platforms linked to on this site.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.