A local unsupervised processing stage is inserted within a neural network constructed to recognize facial expressions. The stage is applied in order to reduce the dimensionality of the input data while preserving some topological structure. The receptive fields of the neurons in the first hidden layer self-organize according to a local energy function, taking into account the variance of the input pixels. There is just one synapse going out from every input pixel and these weights, connecting the first two layers, are trained with a hebbian algorithm. The structure of the network is completed with specialized modules, trained with backpropagation, that classify the data into the different expression categories. Thus. the neural net architecture includes 4 lavers of neurons, that we train and test with images from the Yale Faces Database. We obtain a generalization rate of 84.5% on unseen faces, similar to the 83.2% rate obtained when using a similar system but implementing PCA processing at the initial stage.