Adam Geitgey
medium.com/@ageitgey · Personal blog · on HN since 2015
Adam Geitgey writes beginner-friendly machine learning tutorials, including the Machine Learning is Fun series, on face recognition, image recognition and Python.
What HN saysHN commenters strongly recommend the Machine Learning is Fun series as an easy, example-driven introduction, especially for programmers without advanced maths.
69HN people shared it
19linked it in comments
80stories submitted
2.1Kstory points
6 years agolast shared
2015people per year2026
Most-shared posts
- 1The world’s easiest introduction to Machine Learning22 people · 61 points · first shared 2015 · discussion on HN
- 2Machine Learning Is Fun Part 4: Modern Face Recognition with Deep Learning11 people · 67 points · first shared 2016 · 1 comments on HN
- 3A Simple Explanation of How Image Recognition Works6 people · 180 points · first shared 2016 · 7 comments on HN
- 4Abusing Generative Adversarial Networks to Make 8-bit Pixel Art6 people · 26 points · first shared 2017 · 2 comments on HN
- 5Snagging Parking Spaces with Mask R-CNN and Python5 people · 113 points · first shared 2019 · 24 comments on HN
- 6Machine Learning Is Fun Part 25 people · 12 points · first shared 2016 · discussion on HN
- 7Learn How to Use Static Type Checking in Python 3.6 in 10 Minutes5 people · 6 points · first shared 2017 · discussion on HN
- 8How to Intentionally Trick Neural Networks4 people · 5 points · first shared 2017 · discussion on HN
- 9The new MacBook Pro is kind of great for hackers3 people · 400 points · first shared 2016 · 333 comments on HN
- 10Nvidia announces Jetson Nano 2GB, a single board computer3 people · 293 points · first shared 2020 · 201 comments on HN
- 11The Real Scandal of AI: Awful Stock Photos2 people · 25 points · first shared 2018 · 5 comments on HN
- 12Build Your Own ‘Google Translate’-Quality Machine Translation System2 people · 24 points · first shared 2020 · discussion on HN
- 13Build a $150 Hardware Face Recognition System with Nvidia Jetson Nano and Python2 people · 23 points · first shared 2019 · 3 comments on HN
- 14Understand the GDPR in 10 minutes2 people · 16 points · first shared 2018 · 2 comments on HN
- 15How to Do Speech Recognition with Deep Learning2 people · 8 points · first shared 2016 · discussion on HN
What HN people wrote when they linked it
forgingahead · 2020-01-01
I had a nice experience with Adam Geitgey's Machine Learning is Fun course.
He published a lot of free ML blog posts, in easy-to-understand writing with nice examples, so it never made anything seem out-of-reach. I found that a lot of other material was a little too abstract, so his stuff was great.
The blog posts are here: https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471
And I also bought his paid course with code samples -- it's affordable and good value.
netvarun · 2017-06-14
I can't recommend this series highly enough https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471
gxs · 2016-12-06
I actually enjoyed the article he linked to just as much:
https://medium.com/@ageitgey/the-new-macbook-pro-is-kind-of-great-for-…
jobu · 2016-12-06
The biggest issue I see with the new MBP is that the iPhone 7 (released only a couple months prior) is essentially incompatible out of the box. The connectors are incompatible, and the headphones are not interchangeable without a dongle.
Apple used to go to great lengths to make their devices work great together, so it boggles the mind that the iPhone and Mac teams didn't coordinate the switch to USB-C.
The article even links to another post which makes it seem like Google's Nexus works better with the MBP than the iPhone - https://medium.com/@ageitgey/the-new-macbook-pro-is-kind-of-great-for-…
roberdam · 2016-06-27
From the point of view of a programmer without much background in advanced maths, this is the best short intro to the subject I have found so far:
https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471#.737…
jc4p · 2016-05-27
This is awesome! There's a lot of interesting things that can be done with just the level of sequence generation AI we currently have, transforming the real data into a format for it is the most difficult part, I think.
This similar project from a few months ago does Mario level generation and discusses the training data sequence creation in greater detail: https://medium.com/@ageitgey/machine-learning-is-fun-part-2-a26a10b68d…
lwneal · 2020-06-17
This article talks about technologies used to produce human-like text, and "deep-fake" video and audio. The article argues that such generative AI can be used by criminals to commit fraud- but at the same time, AI can also be used on the other side to detect and prevent fraud!
You might be interested to know that the technological breakthrough that made today's realistic image and audio generation possible was in fact a form of this very idea: one AI creates fake but realistic data, while another AI attempts to detect the fake data. The two systems fight against each other in a game theoretical back-and-forth contest until both the fraudster and the fraud detector are almost perfect.
The idea, the Generative Adversarial Network, was published by Goodfellow et al. [1] in 2014 and has spread widely since then. My favorite introductory explanation of GANs is [2], which describes the generator as a money counterfeiter attempting to fraudulently submit fake dollar bills, and the discriminator as a police officer who is inspecting each dollar bill to determine whether it is real or counterfeit.
Given infinite time and memory, the mathematical result is always the same: the fraudster's output becomes perfect, and the police can only guess at random.
[1] https://arxiv.org/abs/1406.2661
[2] https://medium.com/@ageitgey/abusing-generative-adversarial-networks-t…
sowhatquestion · 2018-11-21
PHP has had optionally typed function parameters and return values since the late 5.x releases I think (current release is 7.3). Types are checked at runtime and throw TypeErrors if the declared types are violated. They can also be checked ahead of time by IDEs with code inspection such as PhpStorm.
The 7.4 release is adding typed class properties as well[1].
I maintain a ~75k LOC PHP codebase (using the Laravel framework), and we have almost never encountered type issues. The new style of PHP (and Javascript is heading in a similar direction tbh) is to write it almost like it's Java, but with the option to fall back to dynamic "magic" as needed. If you utilize the dynamic elements sparingly, and following widely understood conventions, the productivity-vs.-reliability tradeoff is highly favorable for many applications compared to languages like Java and C#.
P.S. I like Python, but I would argue PHP actually has a better story to tell about types these days. "While Python 3.6 gives you this syntax for declaring types, there’s absolutely nothing in Python itself yet that does anything with these type declarations..." [2]. Declaring types in a dynamic language only to have them ignored at runtime does not inspire much confidence.
1. https://laravel-news.com/php7-typed-properties
2. https://medium.com/@ageitgey/learn-how-to-use-static-type-checking-in-…
spangry · 2017-01-22
Yeah I kinda get that feel as well. The thing that makes me suspicious is the amount of unnecessary and obfuscating jargon that gets thrown about. They've even invented new jargon to replace perfectly confusing old jargon (e.g. your model's "error residual" is now your "function cost"). I've spent the past couple of weeks doing a bit of ML vision stuff. Most of the terminology was lost on me, at least until today when I discovered "Machine Learning is Fun": https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471
I think I learned more in an hour than I did in the past week, thanks to this series. The author actually bothers to explain concepts (that turn out to be fairly simple btw) like 'gradient descent'. Highly recommended read if you have the time and interest. Just to whet your appetite:
...current machine learning algorithms aren’t that good yet — they only work when focused a very specific, limited problem. Maybe a better definition for “learning” in this case is “figuring out an equation to solve a specific problem based on some example data”.
Unfortunately “Machine Figuring out an equation to solve a specific problem based on some example data” isn’t really a great name. So we ended up with “Machine Learning” instead.
simonw · 2020-10-05
This person got hold of a review board and write up an interesting detailed tutorial: https://medium.com/@ageitgey/build-a-face-recognition-system-for-60-wi…
pdkl95 · 2019-02-16
> I have never been to Nicaragua, so....limited relevance
Ok, that's probably some sort of error.
> you'd think they could do slightly better
It depends on how they made their model. With machine learning, it's easy to build something that does improve the whatever high-level metric they were tying to optimize (like "revenue") , but gives essentially random results for many individuals. This is especially true for any anything that wasn't fully covered in the training data/; a handwritten digit recognizer may work wonderfully on average, while giving random results random output when presented with anything that wasn't covered by the MNIST dataabsse. Sometimes this can be especially fragile[1]!
[1] https://medium.com/@ageitgey/machine-learning-is-fun-part-8-how-to-int…
nour_js · 2018-09-24
Actually this is a typical Machine Learning probleme, luckily was solved years ago and you can read about it here:
https://medium.com/@ageitgey/machine-learning-is-fun-part-3-deep-learn…
codedokode · 2018-07-18
That proprietary software is probably Google Play Services because replacing Play Store is relatively easy. For example, in Russia Yandex wanted to make its own store and in China (where Google is blocked by the government) there are several competing app stores.
Google Play links on websites are not the problem because on Adroid an app can use App Links [1] to start an alternative store instead of opening a Play Store page in a browser.
[1] https://medium.com/@ageitgey/everything-you-need-to-know-about-impleme…
jpatokal · 2018-06-04
The linked image search result for "AI" actually consists primarily of brain-shaped circuit boards which, y'know, is actually not a terrible metaphor for artificial intelligence.
Personally, I'm kind of partial to Google's Cloud AI logo [2], but I work here (Cloud, not AI) so I may be biased.
[1] https://medium.com/@ageitgey/the-real-scandal-of-ai-awful-
stock-photos-456633b9b0fc
[2] https://cloud.google.com/products/machine-learning/
hguant · 2018-03-30
Python 3.6 has typing/type annotations. It's opt in but seems to work fairly sanely.
https://medium.com/@ageitgey/learn-how-to-use-static-type-checking-in-…
mgliwka · 2018-03-10
There is a new different kind of attacks, i.e. fooling it to recognize things as something they aren't:
https://media.ccc.de/v/34c3-8860-deep_learning_blindspots
https://medium.com/@ageitgey/machine-learning-is-fun-part-8-how-to-int…
TaylorAlexander · 2017-11-29
I think there are two separate questions being raised. My understanding (EDIT: my understanding of the concern being raised in this discussion) was not that they would try to recover individual readings from a trained model, but that they would run a model on your face to extract features, then save an array of features that defines your face. Only those features are needed to identify your face - after data extraction the photo is no longer needed.
This article talks about how those data points are extracted using a different method.
https://medium.com/@ageitgey/machine-learning-is-fun-part-4-modern-fac…
ageitgey · 2017-03-07
This is a good paper for anyone interested in how modern Machine Translation works at the level of detail you might get from a well-written text in a college-level CS course (which is what I believe this is from). The paper starts with a background on statistical machine translation and then goes through the newer approach of sequence-to-sequence learning for translation, including word replacement and attention mechanisms. It's a good overview.
But if you are looking for a higher-level introduction that covers the same big ideas in ~10 minutes for a more general audience, here's my take: https://medium.com/@ageitgey/machine-learning-is-fun-part-5-language-t…
jotto · 2016-10-15
If you want to jump right in with "hello world" type TensorFlow (a tool for machine learning), see https://news.ycombinator.com/item?id=12465935 (how to fit a straight line using TensorFlow)
If you like to study/read: the famous Coursera Andrew Ng machine learning course: https://www.coursera.org/learn/machine-learning
If you just want course materials from UC Berkeley, here's their 101 course: https://news.ycombinator.com/item?id=11897766
If you want a web based intro to a "simpler" machine learning approach, "decision trees": https://news.ycombinator.com/item?id=12609822
Here's a list of top "deep learning" projects on Github and great HN commentary on some tips on getting started: https://news.ycombinator.com/item?id=12266623
If you just want a high level overview: https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471