I have a training set with $N$ instances $\{I_1,...I_N\}$, where each pair of instances is associated with a similarity score $S(I_x,I_y)\in [0,1]$ indicates if the two instances are similar or not.
I have developed $M$ similarity functions $\{S_1,...,S_M\}$, each of which is based on a different feature vector I extract from the two instances at the pair $S_m(f_m(I_x), f_m(I_y))\in [0,1]$. Note that these similarity functions are probably correlated in some way.
Given these functions and the my training set, I want to learn a unified similarity prediction function $P$ such that $P=\arg\min_P \|P(I_x,I_j)-S(I_x,I_j)\|^2$.
What is the best way to achieve such a $P$?