# Deep Transfer Learning-Based Fault Diagnosis Using Wavelet Transform for Limited Data
## 3 Wavelet-Based Deep Transfer Learning
### Deep Transfer Learning  
In Figure 1, TL is used to classify the wavelet image obtained by CWT for which only limited target samples are available for the fault diagnosis. We denote the large-scale labeled fault data of the source domain as \(\mathcal{D}_{s}=\{(x_{k}^{s},y_{k}^{s})\}_{k=1}^{N_{s}}\) in which \(x_{k}^{s}\in\mathcal{X}_{s}\) and \(y_{k}^{s}\in\mathcal{Y}_{s}\) are the source sample within a specific feature space \(\mathcal{X}_{s}\) and the corresponding label of the label space \(\mathcal{Y}_{s}\), respectively. On the other hand, the target domain contains a small, labeled sample set \(\mathcal{D}_{t}=\{(x_{k}^{t},y_{k}^{t})\}_{k=1}^{N_{t}}\) in which \(x_{k}^{t}\in\mathcal{X}_{t}\) and \(y_{k}^{t}\in\mathcal{Y}_{t}\) are the target sample and the corresponding label, respectively. For instance, we consider the ImageNet data as the source domain and the wavelet images of the faulty data as the target domain. Due to the domain discrepancy, the probability distribution of the source domain \(P_{s}(\mathcal{X}_{s})\) and that of the target domain \(P_{t}(\mathcal{X}_{t})\) are considerably different, \(P_{s}(\mathcal{X}_{s})\
eq P_{t}(\mathcal{X}_{t})\). Since the number of target data \(N_{t}\) is strictly limited, it does not capture the essential features of various fault types. Moreover, the label spaces of the machine health conditions are considerably different from the general image detection and recognition of the source domain. Thus, the source network model requires sophisticated tuning procedures to apply to the target domain. On the other hand, some data sets, such as bearing faults, are publicly available even though they may not be directly related to the target domain [25]. Moreover, we could simulate various fault scenarios of industrial machines to collect the measurements [1]. We define this data, relevant to the target domain, as the intermediate domain. We denote the intermediate data as \(\mathcal{D}_{i}=\{(x_{k}^{i},y_{k}^{i})\}_{k=1}^{N_{t}}\) where \(x_{k}^{i}\in\mathcal{X}_{i}\) and \(y_{k}^{i}\in\mathcal{Y}_{i}\) are the intermediate sample and the corresponding label, respectively. Considering the domain discrepancy, the probability distribution of the intermediate domain \(P_{i}(\mathcal{X}_{i})\) is assumed to be closer to that of the target distribution \(P_{t}(\mathcal{X}_{t})\) than that of the source distribution \(P_{s}(\mathcal{X}_{s})\), \(M(P_{s}(\mathcal{X}_{s}),P_{t}(\mathcal{X}_{t}))\leq M(P_{i}(\mathcal{X}_{i} ),P_{t}(\mathcal{X}_{t}))\) where \(M\) denotes the similarity between probability distributions, such as the Bhattacharyya distance [26]. The number of the intermediate data is assumed to be greater than that of the target data, \(N_{t}\leq N_{i}\). In Figure 1, the pre-trained GoogLeNet is partially retrained using the new set of wavelet images of the intermediate domain to obtain the intermediate network model. The earlier layers extract the common features of images, such as blobs, edges, and colors, while the later layers concentrate on more explicit features to classify data sets. Thus, the parameters of the few later layers of the network are only updated using the intermediate samples as the training data set. Moreover, we set the learning rates of several initial layers of the pre-trained network model to zero. By doing this, the learning speed improves, since the gradients of the fixed layers do not need to be computed. In GoogLeNet in Figure 2, we freeze the first 14 layers, including the inception (4c), while we retrain the rest of the layers from the inception (4d) module. To prevent overfitting, we add the dropout layer after the last average pooling layer of the network. The dropout layer randomly assigns the input  
Figure 2: GoogLeNet architecture. Conv and FC denote the convolutional layer and the fully-connected layer while MaxPool and AveragePool are the max pooling layer and average pooling layer, respectively; \((a\times b)\) means the filter size of the convolutional layer or the pooling size of the pooling layer, respectively.