希望我能正確理解你的問題,但似乎這可以通過約束優化直接解決,而不是經典機器學習(其算法通常通過約束優化實現,參見SVM等)。
舉個例子,一個可能的目標函數可能是:
argmin_{w} || e ||_2 + lambda || w ||_2
其中w
是你的權重向量(哦,上帝爲什麼沒有乳膠這裏),e
是錯誤的矢量(每培訓一個組件三峯),lambda
是某些可調正則常數(可能是零),你的約束可能是:
max{d(I_p,I_r)-d(I_p,I_q),0} <= e_j for jth (p,q,r) in T s.t. d(I_p,I_r) <= d(I_p,I_q)
爲j
個約束,其中I_i
是圖像i
,T
是訓練集,
d(u,v) = sum_{w_i in w} w_i * d_i(u,v)
與d_i
是您的i
日距離函數。
請注意,e
正在測量您選擇的權重距訓練集中所有選定的三元組滿足程度。如果重量保持標籤j
的排序,則d(I_p,I_r)-d(I_p,I_q) < 0
等e_j = 0
。如果他們不這樣做,那麼e_j
會測量違規培訓標籤j
的數量。解決優化問題會給出最好的w
;即具有最低誤差的那個。
如果你不熟悉線性/二次規劃,凸優化等...然後開始googling :)許多庫存在這種類型的東西。另一方面,如果你更喜歡機器學習的方法,你可能會修改一些metric learning的方法來解決你的問題。