From the Basics of Machine Learning to Understanding TensorFlow Internals with Raphael Gontijo Lopes..

**Machine Learning**

Data has high-level features

Some of those features are called labels

You can extract those features and labels from data using classifiers

Machine Learning is how computers learn to do this (train classifiers)

Supervised Learning is ML where you learn from labeled data

**Neural Networks**

Data is composed of attributes

Labels can be extracted from those attributes

Some attributes are more relevant for determining a label (so we weight it higher)

Perceptrons uses those weights to compute higher-level features

Layers of perceptrons can approximate any kind of function (including extracting labels from data) and even higher level features that themselves depend on high level features

We find optimal weights using Gradient Descent

(modifying all weights using derivative of a loss function)

**Neural Network Abstractions**

Whole layers of Neural Networks can be expressed with a matrix multiplication

GPUs are very fast for multiplying matrices

Whole Neural Networks can be represented by a computational graph, which perform operations over those matrices (or tensors)

**TensorFlow**

Define the computational graph first, then run data through it to train weights

Think about what’s going on under the hood if you run into issues

Use TF’s summary features to gain insight into your training

**Practical Advice**

Not learning well? Be careful with learning rates!

Divide your dataset into train and test set to see how well your NN generalizes

Get more data (!)

If you can’t get more data, fine tune