# Unsupervised Deep Embedded Clustering for High-Dimensional Visual Features of Fashion Images
## 3 Methodology
### Optimization  
We fine-tuned the network's weights using back-propagation and the stochastic gradient descent (SGD) optimization method. The gradient of \(L\) with respect to each cluster center \(\mu_{j}\) and embedding point \(y_{i}\) is computed for reference [12].  
\[\frac{\partial L}{\partial y_{j}}=\sum_{j}(1+\left|\left|y_{i}-\mu_{j}\right| \right|^{2})^{-1}\times\left(p_{ij}-q_{ij}\right)\left(y_{i}-\mu_{j}\right) \tag{9}\]  
\[\frac{\partial L}{\partial u_{j}}=-\sum_{i}(1+\left|\left|y_{i}-\mu_{j}\right| \right|^{2})^{-1}\times\left(p_{ij}-q_{ij}\right)\left(y_{i}-\mu_{j}\right) \tag{10}\]  
The cluster centroids \(\mu_{j}\) are updated utilizing a defined setting, including a learning of rate \(\lambda=0.001\), a clustering coefficient of \(\gamma=0.1\) and a batch size of \(\text{m}=256\).  
\[\mu_{j}=\mu_{j}-\frac{\lambda}{m}\sum_{i=1}^{m}\left(\frac{\partial L_{c}}{ \partial\mu_{j}}\right) \tag{11}\]  
Figure 6: The deep-stacked auto-encoder-based clustering. On the **left**, data representation is computed using an auto-encoder. On the **right**, data evolution in the feature space occurs after constraints are imposed on the feature layer. The red numerals represent the former clusters, and the green numerals signify the updated clusters in the feature space.  
The weights of the input to hidden layer \(W\) and the decoder \(W^{\prime}\) in the auto-encoder are refined through the following calculation.  
\[W=W-\frac{\lambda}{m}\sum_{i=1}^{m}\left(\frac{\partial L_{r}}{\partial W}+ \gamma\frac{\partial L_{c}}{\partial W}\right) \tag{12}\]  
\[W^{\prime}=W^{\prime}-\frac{\lambda}{m}\sum_{i=1}^{m}\left(\frac{\partial L_{ r}}{\partial W}\right) \tag{13}\]  
where \(L_{r}\) represent reconstruction loss, \(L_{c}\) indicate clustering loss, \(m\) is the batch size, and \(\lambda\) is the learning rate. The optimization stops when a predefined tolerance limit is reached. The proposed algorithm FIDC is described in Algorithm 1.  
```
0: Visual features of fashion images.
0: Clusters of images.
1: For each image, extract the CNN-F feature, i.e., x = 4096
2: Initialize cluster centroid \(\mu_{j}\), encoder weight \(W\), decoder weight \(W^{\prime}\)
3: Set MaxIteration;
4: Learn condensed feature representation Y
5: While (i = 0 \(<\) MaxIteration) do
6: Calculate all latent points Y;
7: Assign labels \(l\) to \(x_{i}\) as \(\underset{j}{\text{argmax}}p_{ij}\);
8: Update target distribution, i.e., \(p_{ij}\), which is derived from \(q_{ij}\) using Equations (6) and (7);
9: Update all condensed representation points y_i
10: Save the last labels as \(l_{last}=l\);
11: Compute new labels \(l\) for \(x_{i}\);
12: If (\(sum(l_{last}\
eq l)\) or \(n<\ \delta\)) // \(\delta\) is the stopping threshold
13: Stop training;
14: Update cluster centroid \(\mu_{j}\), encoder weight \(W\), and decoder weight; \(W^{\prime}\) using Equations (11)-(13), respectively
15: End while Return: Clusters of images.
```  
**Algorithm 1**FIDC Algorithm  
FIDC's time complexity can be calculated as \(\text{O}\left(\text{nD}^{2}+\text{ ndK}\right)\) where \(\text{D},\text{ d}\) is the maximum number of neurons in hidden layers and dimensions of the condensed representation. Whereas k denotes the number of clusters. Because \(\text{D}\geq\text{d}\geq\text{k}\) commonly holds, therefor the time complexity is \(\text{O}\left(\text{nD}^{2}\right)\).