In daily interactions, humans convey their emotions through facial expression and other means. There are several facial expressions that reflect distinctive psychological activities such as happiness, surprise or anger. Accurate recognition of these activities via facial image analysis will play a vital role in natural human-computer interfaces, robotics and mimetic games. This paper focuses on the extraction and selection of salient features for facial expression recognition. We introduce a cascade of fixed filters and trainable non-linear 2-D filters, which are based on the biological mechanism of shunting inhibition. The fixed filters are used to extract primitive features, whereas the adaptive filters are trained to extract more complex facial features for classification by SVMs. This paper investigates a feature selection approach that is based on the reduction of mutual information among the selected features. The proposed approach is evaluated on the JAFFE database with seven types of facial expressions: anger, disgust, fear, happiness, neutral, sadness and surprise. Using only two-thirds of the total features, our approach achieves a classification rate (CR) of 96.7%, which is higher than the CR obtained using all features. Our system also outperforms several existing methods, evaluated on the same JAFFE database.