3 ms·
This is a very poor article. It manages to both be demeaning to people who want to learn something new while also being riddled with factual errors. Here are j
by ageitgey 9y ago
This is a very poor article. It manages to both be demeaning to people who want to learn something new while also being riddled with factual errors.
Here are just a few factual errors:
1. The 11-line example is the simplest possible neural network with a very basic implementation of gradient descent in a high-level vectorization framework (numpy). It's exactly what you'd cover in the first week of a course on neural nets. But obviously there are many things to learn beyond that before you can solve real problems effectively with neural nets. In fact, the example code is 100% lifted from Hacker News user williamtrask's great article [1] which ironically closes with a list of 10 topics to investigate next to start learning the additional things you'd need to make your neural net useful for real problems.
2. This section:
> '“Deep Learning” and n-Layers of depth is just a neural network that runs its output through itself. This is called Recursive Neural Networks (RNN), because you loop the loop.'
..is full of errors. RNNs are Recurrent, not Recursive. They have nothing to do with having more layers, but with having a memory of previous states. And in deep learning, having more layers is often a strategy to reduce the dimensionality of the input and learn higher-level representations of data by using a variety of tricks/layer types/connections. It's not just "looping the loop".
3. The whole section about not initializing the random state and thus getting different results on a Desktop vs. a mobile phone shows a total misunderstanding of how things work. You aren't typically re-training a neural network on a phone, you are using the pre-trained weights from a different machine to make inferences. That is typically 100% deterministic.
4. The description of TensorFlow as a wrapper to provide visualization tools is totally wrong. It's a framework for running mathematical operations defined as a graph data structure. That makes it possible to do cool things like split up the work across multiple processors efficiently and it provides pre-made operations that are useful for building machine learning models more complex than a single layer neural network.
The only area where the author is really correct is that there's a lot of misunderstanding of neural networks as a magical solution to problems when they are really just fancy statistical models that are subject to learning relationships that aren't there.
Yes, the word of AI/ML is full of hype and bad reporting. But there are great ways to talk about the limitations of ML and it isn't by belittling people. Here's an example of a great article: [2]
[1] https://iamtrask.github.io/2015/07/12/basic-python-network/ https://iamtrask.github.io/2015/07/12/basic-python-network/
[2] https://www.alexirpan.com/2018/02/14/rl-hard.html https://www.alexirpan.com/2018/02/14/rl-hard.html