[Repost] The Future of Deep Lear

2017-10-06  本文已影响0人  sterio

Source: https://github.com/llSourcell/7_Research_Directions_Deep_Learning

Topics

In a recent AI conference, Geoffrey Hinton remarked that he was “deeply suspicious” of back-propagation, and said “My view is throw it all away and start again.”

alt textalt text

The billion dollar question - how does the brain learn so well from sparse, unlabeled data?

Let's first understand how backpropagation works

alt textalt text

In 1986 Hinton released this paper detailing a new optimization strategy for neural networks called 'backpropagation'. This paper is the reason the current Deep Learning boom is possible.

alt textalt text
import numpy as np

#nonlinearity
def nonlin(x,deriv=False):
    if(deriv==True):
        return x*(1-x)

    return 1/(1+np.exp(-x))
    
#input data
X = np.array([[0,0,1],
            [0,1,1],
            [1,0,1],
            [1,1,1]])
         
#output data
y = np.array([[0],
            [1],
            [1],
            [0]])

np.random.seed(1)

# randomly initialize our weights with mean 0
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
alt textalt text
alt textalt text
alt textalt text

3 concepts behind Backpropagtion (From Calculus)

  1. Derivative


    alt textalt text
  2. Partial Derivative

alt textalt text
  1. Chain Rule
alt textalt text
for j in xrange(60000):

    # Feed forward through layers 0, 1, and 2
    k0 = X
    k1 = nonlin(np.dot(k0,syn0))
    k2 = nonlin(np.dot(k1,syn1))

    # how much did we miss the target value?
    k2_error = y - k2

    if (j% 10000) == 0:
        print "Error:" + str(np.mean(np.abs(k2_error)))
        
    # in what direction is the target value?
    # were we really sure? if so, don't change too much.
    k2_delta = k2_error*nonlin(k2,deriv=True)

    # how much did each k1 value contribute to the k2 error (according to the weights)?
    k1_error = k2_delta.dot(syn1.T)
    
    # in what direction is the target k1?
    # were we really sure? if so, don't change too much.
    k1_delta = k1_error * nonlin(k1,deriv=True)

    syn1 += k1.T.dot(k2_delta)
    syn0 += k0.T.dot(k1_delta)

This is the method of choice for all labeled deep learning models

alt textalt text

How do artificial & biological neural nets compare?

Artificial Neural Networks are inspired by the hierarchial structure of brains neural network

alt textalt text

The brain has
-100 billion neurons
-- Each neuron has

Computers have

Some key differences

alt textalt text

"the brain is not a blank slate of neuronal layers
waiting to be pieced together and wired-up;
we are born with brains already structured
for unsupervised learning in a dozen cognitive
domains, some of which already work pretty well
without any learning at all." - Steven Pinker

Where are we today in unsupervised learning?

For classification

alt textalt text

For Generation

alt textalt text alt textalt text

https://en.wikipedia.org/wiki/Differentiable_neural_computer

alt textalt text alt textalt text

Basically, Many of the best unsupervised methods still require backprop (GANs, autoencoders, language models, word embeddings, etc.

So many GANs (https://deephunt.in/the-gan-zoo-79597dc8c347)

7 Research Directions

Thesis - Unsupervised learning and reinforcement learning must be the primary modes of learning, because labels mean little to a child growing up.

1 Bayesian Deep Learning (smarter backprop)

alt textalt text

2 Spike-Timing-Dependent Plasticity

STDP is a rule that encourages neurons to 'pay more attention' to inputs that predict excitation. Suppose you usually only bring an umbrella if you have reasons to think it will rain (weather report, you see rain outside, etc.). Then you notice that if you see your neighbor carrying an umbrella, even though you haven't seen any rain in the forecast, but sure enough, a few minutes later you see an updated forecast (or it starts raining). This happens a few times, and you get the idea: Your neighbor seems to be getting this information (whether it is going to rain) before your current sources. So in the future, you pay more attention to what your neighbor is doing.

alt textalt text

TL;DR - You cannot properly backpropagate for weight updates in a graph based network since it's an asynchronous system(there are no layers with activations at fixed times), so you are trusting neurons faster than you at the task.

3 Self Organizing Maps

alt textalt text alt textalt text

4 Synthetic Gradients https://iamtrask.github.io/2017/03/21/synthetic-gradients/

alt textalt text alt textalt text

Synthetic Gradient genenerators are nothing other than a neural network that is trained to take the output of a layer and predict the gradient that will likely happen at that layer.

The whole point of this technique was to allow individual neural networks to train without waiting on each other to finish forward and backpropagating.

5 Evolutionary Strategies (https://blog.openai.com/evolution-strategies/)

  1. Create a random, initial brain for the bird (this is the neural network, with 300 neurons in our case)
  2. At every epoch, create a batch of modifications to the bird’s brain (also called “mutations”)
  3. Play the game using each modified brain and calculate the final reward
  4. Update the brain by pushing it towards the mutated brains, proportionate to their relative success in the batch (the more reward a brain has been able to collect during a game, the more it contributes to the update)
  5. Repeat steps 2-4 until a local maximum for rewards is reached.

Code:
https://gist.github.com/karpathy/77fbb6a8dac5395f1b73e7a89300318d

6 Moar Reinforcement Learning

alt textalt text alt textalt text

7 Better hardware.

My Conclusion? I agree with Andrej Karpathy

Let's create multi-agent simulated enviroments that heavily rely on reinforcement learning + evolutionary strategies

alt textalt text alt textalt text

It's comes down to the exploration-exploitation trade-off. You need exploitation to refine deep learning techniques but without exploration (other technqiues) you will never get the paradigm shift we need to go beyond classifying cat pictures and beating humans in artificial games


上一篇 下一篇

猜你喜欢

热点阅读