# Automatic Feature Construction-Based Genetic Programming for Degraded Image Classification
## 3 The Proposed Approach
### New Program Structure Based on Information Transmission
#### 3.2.1 New Function and Terminal Set
choosing the median value of corresponding pixels from the two image regions to create a new image region. The _Mean_F_ function performs fusion by calculating the average value of corresponding pixels from both image regions, thereby creating a new image region. Functions of the downsampling layer: The primary task of the downsampling layer is to downsample the input image regions to reduce image sizes, thereby lessening the computational burden. To adapt to various classification tasks, this layer provides multiple downsampling functions. Specifically, the function set of the pooling layer includes the _Max_P_ function, _Ave_P_ function, and _Bilin_D_ function. These functions take an image region and a sliding window size formed by the integers \(K1\) and \(K2\) as input. The _Max_P_ function emphasizes the most significant features by retaining the maximum value in each window. The _Ave_P_ function calculates the average of all values within the window to preserve more information. The _Bilin_D_ function, through the use of bilinear interpolation, effectively preserves image details while reducing the size of the image. It is important to note that while the downsampled region generally retains key features, the loss of useful information can still occur. This might lead to reduced performance when using manual feature extraction methods. Hence, this layer incorporates the concept of information transmission, passing the original region to subsequent layers, ensuring the use of information-rich original region for manual feature extraction when necessary. Given this consideration, the layer's output is designed in a tuple format, including both the original and the downsampled region. Functions of the feature extraction layer: The primary responsibility of the feature extraction layer is to extract features from the input image region. The _Feature_E_ function will take _tuple_1 as input. If dealing with the original image regions, it will select a manual feature extraction method based on the terminal parameter \(m\). If it is not the original image region, each row of the region's pixels will be concatenated into a vector to transform into pixel features. Then, these two types of features will be concatenated to form fused features and outputted. Integrating different types of features will help to comprehensively capture image information. It is noteworthy that the original image region passed from the downsampling layer may still be useful in subsequent layers, thus the function output still includes the original image regions. Additionally, the output includes a temporary variable \(t\), initialized within the function. This value is key for further information transmission and will be introduced in the subsequent transmission layer. Functions of the feature construction layer: To construct new features with distinctiveness, an innovative feature construction layer has been designed. _Feature_C_ accepts _Tuple_2 as input and generates new manual features based on the value of \(m\) produced by the terminal. These newly generated features are multiplied by the value of parameter \(i\) generated by the terminal, while the second element of Tuple 2 is multiplied by \((1-i)\). Subsequently, these two parts of features are added together to construct new features. It is important to note that since the function has the same type for both input and output, the constructed features may potentially be returned to the same layer for additional processing. During this process, the original image region will continually produce new handcrafted features, which will be preserved as output. At the same time, the already constructed features will be combined with the newly generated features for further feature construction. Functions of the transmission layer: The primary function of the transmission layer is to decide whether to pass information to subsequent layers based on the type of input.