Próbuję rozwiązać SVM Primal Form w MATLAB przy użyciu funkcji Quadprog. Po dwóch klas liniowo rozdzielić, SVM minimalizacji problemu uzyskać wektor wag się 1/2 (|| W || 2)Jak rozwiązać SVM Soft Margin Primal Form w MATLAB quadprog
przedmiotem yi Ograniczenie (wxi-b)> = 1
http://en.wikipedia.org/wiki/Support_vector_machine#Primal_form
funkcja Matlab quadprog rozwiązuje następujące równanie
x = quadprog (H, M, A, b) minimalizuje 1/2 * x '* h * x + f' * x z zastrzeżeniem ograniczenia A * x ≤ b. A jest macierzą podwójną, a b jest wektorem dubletów.
Tak więc, pierwotna forma może być łatwo zamapowana na funkcję quadprog, aby łatwo uzyskać wektor wagowy. H staje się matrycą tożsamości. f 'staje się matrycą zer. A to lewa strona ograniczenia z wcześniejszego b jest równa -1, ponieważ pierwotne ograniczenie miało> = 1, staje się < = -1, gdy pomnożymy przez -1 po obu stronach.
Kiedy to zrobię, wektor wagowy będzie świetny.
Teraz m próby rozwiązania sprawy SVM miękkie marginesu stąd
http://en.wikipedia.org/wiki/Support_vector_machine#Soft_margin
Równanie minimalizacji Oto
min ((1/2) w || || 2+ C (sumowanie epsilon (i)) w b
przy ograniczeniu yi (wxi-b)> = 1 - eplison (I)> = 0
W jaki sposób rozwiązać ten problem optymalizacji za pomocą funkcji quadprog MATLAB. Nie jest jasne, w jaki sposób równanie powinno być odwzorowane na parametry funkcji quadprog. Łapię sobie głowę, jak bez szczęścia.
Minęło sporo czasu, odkąd uczyłem się SVM, ale z mglistej pamięci, pamiętam, że Pierwotna Forma w Miękkim Marginesie jest problemem NP, dlatego przekształcamy go w Wolfe Dual Representation, aby go rozwiązać, ale jestem niepewny.
Przekształciłem go w podwójną formę i jestem w stanie uzyskać wartości zmiennych Lagrange'a w podwójnej formie, ale chcę potwierdzić, że pierwotna forma nie może być sama rozwiązana.
Czy ktoś wie, jak można go rozwiązać za pomocą funkcji quadprog Matlab? A może jest to problem NP?
To kwadratowy problem programistyczny, więc - tak, można go rozwiązać za pomocą 'quadprog' programu MATLAB. Jakie masz trudności? – Romeo
Byłem w stanie rozwiązać normalną grzywnę SVM. Ale dla miękkiego marginesu SVM nie jestem w stanie zrozumieć, w jaki sposób problem minimalizacji jest mapowany na funkcję quadprog. Które zmienne mapuje do jakiego parametru w quadprogu, to jest to, co uważam za trudne. – user1067334
Zobacz moją odpowiedź na pytanie. – Romeo