2017-11-19 18 views
0

y-X * theta의 l2 norm을 최소화하는 theta를 찾고 싶습니다. 그리고 theta의 일부 요소가 0이어야한다는 제약이 있습니다. 어떻게 MATLAB에서 이것을합니까?theta constaints로 MATLAB 제약 최적화

내 y는 10x1이고, X는 10x9이고, 세타 내가 그라데이션 하강을 사용하는 것이 도움이 될 수있다 생각 9x1

하지 때문에 비공식적 인 설명을 여기에 여러 해석 할 수있다

답변

2

확인합니다.

선형 최소 제곱 문제를 해결하고 일부 변수를 0으로 고정하려면 matlab의 lsqlin을 사용하고 해당 변수에 upper-bound=lower-bound=0을 사용하십시오.

당신의 임무가 at least w values of theta are 0과 같은 대상을 해결하는 것이면, 이것은 아마도 NP 설정이 어렵고 (혼합형 정수 이차원 프로그래밍 또는 혼합 정수 2 차 주문이 필요합니다. -cone 프로그래밍. 이 경우 사용 가능한 솔버가 있는지 확실하지 않습니다. 일부 오픈 소스 솔버는 Bonmin (Couenne, 덜 정도)이나 (Gurobi, CPLEX, Mosek)와 같은 대부분의 상용 솔버가 될 것입니다.

+0

두 번째 해석을 추가하려면 일반적으로 스파 스 세타를 찾으려면 세타의 L0- 놈을 최소화해야합니다. 대신 L1- 노름 (convex-norm)을 최소화하기 위해 문제를 완화하면 특정 제약 조건 하에서 문제가 동일 해집니다. [좋은 읽을 거리] (https://statweb.stanford.edu/~candes/papers/ExactRecovery.pdf) – jodag

+0

예, l1 표준은 희박성 유발입니다. 예, 동일한 해결자가 해결할 수 있습니다. 그러나 그것은 매끄럽지 않고 재 형성이 필요합니다 (예 : 제약 조건을 사용하여 원래의 문제는 제한적이지만 제한되지 않았습니다). 그것은 또한 적어도 w-val 문제와 다릅니다. – sascha

+0

그래, 난 내 자신의 문제를 해결 그냥 제약 조건이 만족 될 내 X의 하위 집합을 사용했습니다. 하위 집합을 사용하여 theta를 풀면됩니다. – ajax2000