Thomj-Dev / SEMBAS

GNU General Public License v3.0
0 stars 0 forks source link

Axes Scaling #18

Open ThomJ130 opened 2 months ago

ThomJ130 commented 2 months ago

One problem in search space exploration is disproportionate scales for independent axes. This can, in part, be solved by normalizing the input domain, but not in its entirety. The issue occurs when one dimension has significantly disproportionately large or small impact on the target performance than others, meaning that small changes in that dimension result in large changes in performance or vis versa. This would result in needing different exploration resolutions for these different axes, which is currently not possible.

Instead, we can scale the axes to put fewer resources to dimensions that require lower resolution of exploration and more resources to dimensions that need a higher resolution. How this can be done is through an ellipsoidal vector projection, where the axes of the ellipse are their scaling factor, and the jump vector will be constrained to the displacement between the center and the ellipsoid's surface.

The reason why an ellipse is appropriate, rather than scaling the dimensions directly, is because the direction of the vector will be retained. This means that vector will not be rotated due to the scaling process, preventing this from interfering with the adherence process. Furthermore, ellipsoid is more appropriate than a cuboid due to the distance between cuboid's corners and its center growing with the number of dimensions, leading to uncontrollable scaling of the jump vector.

image

The image above shows the original, unscaled vector $v$ and the vector projection onto the ellipsoid $v'$. The outer circle represents the range that the unscaled vector can reach, having a radius of the jump distance. The $a_2$ axis is the same as the original jump distance and the $a_2$ axis has been scaled back to some percentage of the jump distance.