Lei Luo Machine Learning Engineer

Multi-Layer Perceptron

2018-06-23

What is the math behind like?

Math for MLP

Class diagram for MLP

Class diagram

How to use it?

  • Declare a MLP object
    mlp = MLP()
    
  • Input and target data
    x = np.linspace(0,1,40).reshape((40,1))
    x = (x-0.5)*2
    y = np.sin(2*np.pi*x) + np.cos(4*np.pi*x) + np.random.randn(40).reshape((40,1))*0.2
    train = x[0::2,:]
    test = x[1::4,:]
    valid = x[3::4,:]
    traintarget = y[0::2,:]
    testtarget = y[1::4,:]
    validtarget = y[3::4,:]
    
  • Declare layers
    X = Layer(value = train)
    target = Layer(value = traintarget)
    h1 = Layer(rows = X.rows, cols = 3)        # first hidden layer
    h2 = Layer(rows = X.rows, cols = 2)        # 2nd hidden layer
    h3 = Layer(rows = X.rows, cols = 1)        # 3rd hidden layer
    output = Layer(rows = X.rows, cols = target.cols)
    
  • Connect layers
    X.connect(h1)
    h1.connect(h2)
    h2.connect(h3)
    h3.connect(output)
    
  • Add layers to MLP and train
    mlp.addLayers([X, h1,
                 h2,
                 h3,
                 output, target])
    mlp.train()
    
  • Predict
    test_x = np.ones((1,1))
    output = mlp.predict(x=test_x)
    print(output)
    

Comments

Content