Neural nets should return a low confidence score. But, the popular approach (described below) ignores that. Neural nets ignore confidence because of a technique called softmax [1].
This happens as the final operation of a neural net, and is required for training.
Softmax is a tool to make an array of positive numbers look like a probability distribution:
out = x / x.sum()
x[i] is a class prediction, but x.sum() != 1. Say if the network was uncertain, x[cat, dog] = [0.03, 0.01]. These are small values that do not imply great confidence (the network was trained on vectors with out.sum() = 1. The network would predict “dog” using softmax because out[dog] = 0.75 > 0.25 = out[cat].
But then in inference/prediction, the confidence is ignored. What if x.sum() is small? That would imply that the network is uncertain.
> “If you understand and agree, Apple and GCBD have the right to access your data stored on its servers. This includes permission sharing, exchange, and disclosure of all user data (including content) according to the application of the law.”
> In other words, once the agreement is signed, GCBD — a company solely owned by the state — would get a key that can access all iCloud user data in China, legally.
What user data will this decrypt? Are iMessage and FaceTime still safe?
Hell, on MNIST 0.14% is huge. Geff Hinton created an entire new architecture to get 0.25% error, which is far better than the baseline 0.39% error [1].
> Was this was the anxiety that had been mentioned in the medical literature?
I don’t know. I’ve had a difference expierence with brain injury and anxiety. My recovery resulted in classic anxiety; I experienced social anxiety and depression.
Turns out generating a ML model is pretty easy too, even after training in Python. There's a simple 2 or 3 line conversion from keras/sklearn to an ML model.
I’m doing research (not deployment) and have the same feeling. PyTorch has inspired a blog post [1], Tensorflow didn’t.
Briefly, the benefits of PyTorch are
* easy conversion to NumPy arrays (meaning rest of Python can be used!). This is a bottleneck in Tensorflow; for reasonable sizes, PyTorch is 1000x faster.
* trackbacks are easy to follow (because defines graph by running)
* it’s as fast as tensorflow [2] (or at least torch is, which calls the same C functions as PyTorch, and there’s a tweet [4] by a core dev saying to expect the same speeds). Plus on the web I’ve only found anecdotes that support PyTorch faster than tensorflow.
* it’s easy to extend; everything is a simple Python class. e.g., see their different optimizers [3]
Neural nets should return a low confidence score. But, the popular approach (described below) ignores that. Neural nets ignore confidence because of a technique called softmax [1].
This happens as the final operation of a neural net, and is required for training.
Softmax is a tool to make an array of positive numbers look like a probability distribution:
x[i] is a class prediction, but x.sum() != 1. Say if the network was uncertain, x[cat, dog] = [0.03, 0.01]. These are small values that do not imply great confidence (the network was trained on vectors with out.sum() = 1. The network would predict “dog” using softmax because out[dog] = 0.75 > 0.25 = out[cat].
But then in inference/prediction, the confidence is ignored. What if x.sum() is small? That would imply that the network is uncertain.
[1]: https://en.m.wikipedia.org/wiki/Softmax_function