## 3 Principles of Price Forecasting Combined with GAN
### Quality Assessment of t-SNE  
For the t-SNE algorithm [34], a similarity matrix is established according to the likeness among data points existing in a high-dimensional space. The matrix lays the foundation for constructing a conditional probability distribution. In essence, the distribution quantifies the likelihood that other points are chosen as neighbors for a given data point. Subsequently, the similarity distribution allows for the construction of relationships among points in a lower-dimensional space. Meanwhile, the proximity of data points in the space has an effect on assigned probabilities: the closer the distance, the higher the probability. The t-SNE method exploits the minimization of the Kullback-Leibler (KL) divergence to make the similarity distribution in the low-dimensional space as close as possible to the conditional probability distribution of the high-dimensional space. The steps are described as follows. Step 1: The data \(x^{\prime}=\Big{\{}x^{\prime}_{1},x^{\prime}_{2},\cdots,x^{\prime}_{n}\Big{\}}\) in the high-dimensional space are mapped into \(y^{\prime}=\Big{\{}y^{\prime}_{1},y^{\prime}_{2},\cdots,y^{\prime}_{n}\Big{\}}\) in the low-dimensional space, which are then visually representedusing a scatter plot. For each point \(x_{i}^{{}^{\prime}}\) in the high-dimensional space, the probability distribution of the similarity between \(y_{i}^{{}^{\prime}}\) and \(x_{i}^{{}^{\prime}}\) is denoted as \(p_{j|i}^{{}^{\prime}}\), as shown in Equation (9):  
\[p_{j|i}^{{}^{\prime}}=\frac{\exp\!\left(-\left\|x_{i}^{{}^{\prime}}-x_{i}^{{}^{ \prime}}\right\|^{2}/2\sigma_{i}^{2}\right)}{\sum_{k\
eq i}\exp\!\left(-\left\| x_{i}^{{}^{\prime}}-x_{k}^{{}^{\prime}}\right\|^{2}/2\sigma_{i}^{2}\right)}, \tag{9}\]  
where \(\sigma_{i}\) denotes the variance of the Gaussian distribution centered around \(x_{i}^{{}^{\prime}}\). A probability distribution, with a fixed degree of complexity set by the user, is achieved by a bisection search process for \(\sigma_{i}\)[35]. Step 2: The joint probability density function \(p_{ij}^{{}^{\prime}}\) is calculated for high-dimensional samples, as shown in Equation (10):  
\[p_{ij}^{{}^{\prime}}=\frac{p_{j|i}^{{}^{\prime}}+p_{i|j}^{{}^{\prime}}}{2n}. \tag{10}\]  
Step 3: The low-dimensional data are initialized as \(y^{{}^{\prime}}(0)=\left\{y_{1}^{{}^{\prime}},y_{2^{{}^{\prime}}}^{{}^{\prime} },\cdots,y_{n}^{{}^{\prime}}\right\}\). Step 4: A Student's t-distribution with a single degree of freedom is employed as the heavy-tailed distribution in the low-dimensional graph. The joint probability \(f_{ij}\) in the lower-dimensional space is defined as shown in Equation (11):  
\[f_{ij}=\frac{\left(1+\left\|y_{i}^{{}^{\prime}}-y_{j}^{{}^{\prime}}\right\|^{ 2}\right)^{-1}}{\sum_{k\
eq l}\left(1+\left\|y_{k}^{{}^{\prime}}-y_{l}^{{}^{ \prime}}\right\|^{2}\right)^{-1}}. \tag{11}\]  
The similarity between the distributions of the high- and low-dimensional spaces is computed according to the Kullback-Leibler (KL) divergence. The gradient descent method is used to minimize the cost function, while the gradient is computed as illustrated in Equation (12):  
\[\frac{\delta C}{\delta y_{i}}=4\!\sum\limits_{j}\left(p_{ij}^{{}^{\prime}}-f_ {ij}\right)\left(y_{i}^{{}^{\prime}}-y_{j}^{{}^{\prime}}\right)\left(1+\left\| y_{i}^{{}^{\prime}}-y_{j}^{{}^{\prime}}\right\|^{2}\right)^{-1}, \tag{12}\]  
where the cost function \(C\) is calculated according to the KL divergence: \(C=\sum\limits_{i}\sum\limits_{j}p_{ij}^{{}^{\prime}}log\frac{p_{ij}^{{}^{ \prime}}}{f_{ij}}\). Step 5: A large momentum term is added into the gradient in order to avoid becoming trapped in a local minimum, thus accelerating optimization. The output is updated as shown in Equation (13):  
\[y^{(\tau)}=y^{(\tau-1)}+\xi\frac{\partial C}{\partial y}+m(\tau)\left(y^{(\tau -1)}-y^{(\tau-2)}\right), \tag{13}\]  
where \(y^{(\tau)}\) signifies the solution obtained in iteration \(\tau\), \(\xi\) denotes the learning rate, and m(\(\tau\)) denotes the momentum factor at iteration \(\tau\).