Sometimes, in ZSL, certain data points tend to appear as nearest-neighbor of many other points in the projection space. This is referred to as the hubness problem [1]}. We avoid this problem using semantic rectification [2]}, where the class representation is modified by averaging the output generated by the projection network, which in our case is the penultimate layer of the classification MLP. Specifically, for the unseen classes, we perform rectification by first using the MLP trained on the seen classes to project the semantic embedding to the visual space. We add the average of projected semantic embeddings from the k-nearest neighbors of the seen classes, specifically as follows:
\(\hat{a}(y_{i})=a^{\prime }(y_{i})+\frac{1}{k}\sum _{n\in N}cos \left( a^{\prime }(y_{i}),n \right) \cdot n,\) 
