struct perceptron