# Pocs-Augmented CycleGAN for MR Image Reconstruction
## 2 Materials and Methods
### The Structure of the Entire POCS-Augmented CycleGAN (POCS-CycleGAN)  
Figure 1 provides an overview of the proposed POCS-augmented CycleGAN. Two iterative CycleGANs [21] with the same network structures were involved, which differed by the training samples; the outputs of the first-pass CycleGAN after training were used as additional training samples for the second-pass CycleGAN. Figure 1: A schematic view of the POCS-augmented Cycle-GAN. The entire algorithm contains two recursive processes. Each has the same network structure but a different number of training samples. The output of the first process is used as new training samples in addition to the original training data after the following POCS reconstruction. The output of the first process is first inversely transformed into the Fourier domain. Then, the data of the sampled locations in the Fourier domain are replaced with the acquired ones, and the manipulated Fourier domain data are transformed back to the image domain. The generator is composed of a U-Net ([PERSON] et al., 2018) with skip connections. The discriminator uses a convolutional neural network. The functions of different layers are denoted by the legends at the bottom of the figure. The use of CycleGAN in image reconstruction is for building a generative model that learns mapping from undersampled images to fully sampled images. The performance of the generator is enhanced by using the discriminator to distinguish the real fully sampled data from the data created by the generator. Our goal is to train generator \(G_{u2f}\) to generate high-quality reconstructed images from undersampled images. CycleGAN uses two mirrored training processes as shown in Figure 2 to achieve this goal. Each training process involves training two generators and one discriminator. Figure 2 shows the first part of the training process, which is to train generator \(G_{u2f}\) and \(G_{f2u}\) and discriminator \(D_{y}\). The discriminator \(D_{y}\) was trained first by fully sampled image \(y\) so that it could learn the data distribution of the real fully sampled images. Then, generators \(G_{u2f}\) and \(G_{f2u}\) were trained in order. Generator \(G_{u2f}\) projected the undersampled image \(y_{u}\) (directly reconstructed from the undersampled k-space data x after filling the uncaugured k-space locations by 0 s) into a recovered fully sampled one \(\hat{y}\). The output of \(G_{u2f}\), \(\hat{y}\) was fed into discriminator \(D_{y}\) and generator \(G_{f2u}\) simultaneously. Discriminator \(D_{y}\) needed to make decision of whether the input came from the real fully sampled dataset or from the reconstructed fully sampled images. The output of discriminator \(D_{y}\) would be used as a part of the neuron network's loss function (see Section 2.4.3. Adversarial Loss). Generator \(G_{f2u}\) needed to generate \(\hat{y}\) back to the undersampled image, \(\hat{y}_{u}\). We wanted \(\hat{y}_{u}\) to look as similar to \(y_{u}\) as possible so that the generated reconstructed image \(\hat{y}\) had high accuracy. We calculated the similarity by measuring the value of \(\left|\hat{y}_{u},y_{u}\right|_{l_{1}}^{1}\), where \(l_{1}\) means the L1 distance between \(\hat{y}_{u}\) and \(y_{u}\). The smaller the value of \(\left|\hat{y}_{u},y_{u}\right|_{l_{1}}^{1}\) was, the more similar \(\hat{y}_{u}\) and \(y_{u}\) looked, which means the reconstructed image from \(G_{u2f}\) had higher accuracy. The value of \(\left|\hat{y}_{u},y_{u}\right|_{l_{1}}^{1}\) would also be used as a part of the neuron network's loss function (explained in Section 2.4.3). Therefore, during this training process, \(G_{u2f}\) was adjusted to generate reconstructed image \(\hat{y}\) to look as similar to the fully sampled ground truth image \(y\), while \(D_{y}\) was adjusted to maximally avoid being fooled by the intermediately reconstructed image. The opposite direction's training was similar to the aforementioned method.