Multilayer perceptron - finding the "dividing" curve

with a single-layer perceptron, it is easy to find the equation of the “dividing line” (I don’t know the professional term), the line dividing between the two types of points, based on the scales of the perceptron, after it was trained. How can one similarly find the equation of a curve (rather than a straight line) dividing between two types of points in a multilayer perceptron?

thank.

+5
source share
1 answer

This is just an attempt to get closer to the dividing border or curve.

Dataset

. - Andrew Ng. Ex6 Andrew ML.

enter image description here

,

  • ;
  • 2- , , Matlab, - :
    x1plot = linspace(min(X(:,1)), max(X(:,1)), 100)';
    x2plot = linspace(min(X(:,2)), max(X(:,2)), 100)';
    [X1, X2] = meshgrid(x1plot, x2plot);
  • ;
  • coutour
    vals = zeros(size(X1));
    for i = 1:size(X1, 2)
       this_X = [X1(:, i), X2(:, i)];
       % mlpPredict() is the function to use your trained neural network model
       %    to get a predicted label. 
       vals(:, i) = mlpPredict(model, this_X);
    end

    % Plot the boundary
    hold on
    [C, Lev] = contour(X1, X2, vals, [0 0], 'Color', 'b');
    hold off;

, , . , .

, SVM , .

octave contour. , contour C, contourc . contourc:

[C, LEV] = contourc (X, Y, Z, VN)

Z. X, Y VN .

 The return value LEV is a vector of the contour levels.  The
 return value C is a 2 by N matrix containing the contour lines in
 the following format

      C = [lev1, x1, x2, ..., levn, x1, x2, ...
           len1, y1, y2, ..., lenn, y1, y2, ...]

 in which contour line N has a level (height) of LEVN and length of
 LENN.

, , C . , C, 30 . 6 :

x: 2.3677e-01   2.3764e-01   2.4640e-01   2.4640e-01   2.4640e-01   2.4640e-01 ...
y: 4.0263e-01   4.0855e-01   4.0909e-01   4.1447e-01   4.2039e-01   4.2631e-01 ...

, , (0.23677, 0.40263). , ( ).

, .

+7

All Articles