kb11_최적화 알고리즘

테스트

최적화 알고리즘

최적화 방법론

  • Linear programming (LP)
  • quadratic programming (QP)
  • second-order cone programming (SOCP)
  • semi-definite programming (SDP)

내리막 경사법(미분 기반) 최적화 알고리즘은 지역해 문제점 존재

  • 해결책 : 시뮬레이티드 어닐링, 유전 알고리즘

최적화 알고리즘은 3가지 결정 사항

  • 초기해 설정: 탐색의 시작점 선정
  • 멈춤 조건: 해가 만족스러운지 판단 기준
  • 해 갱신: 현재 해를 다음 해로 이동하는 방법

해 종류

  • 최적(Optimal Solution)해
  • 부 최적(sub-optimal Solution)해

1. 내리막 경사법

1.1 분석적 방법

  • 목적함수를 미분한것이 0이 되는 값을 찾는다.

eg.

1.2 수치적 방법 (eg.내리막 경사법)

분석적 방법은 한정된 상황에서만 가능, 대부분 반복적 계산을 통해 해 도출

  • 대표적 방법 = 내리막 경사법, 오르막 경사법

  • = 학습률

내리막 경사법은 대표적 욕심 알고리즘 이다. 즉, 과거/미래를 고려 하지 않고 현재 상황만 고려하여 지역해에 빠질 위험이 있다.

1.3 조건부 최적화

어떤 조건이 주어 지고 그 조건이 만족하는 상황에서의 최적화 문제

A. 조건식을 목적 함수에 대입 하는 방법

eg. , 조건 =

조건식을 목적함수에 대입 : 미분 :

간단한 조건일때만 적용 가능한 방법

B. 등식 조건부 최적화 문제 : f(x) = a

라그랑제 승수 활용 하여 문제 해결 가능

Step 1. 라그랑제 함수 정의

Step 2. 라그랑제 함수를 로 미분한 식 풀기

[예제]

eg. , 조건 =

Step 1. 라그랑제 함수 정의

Step 2. 라그랑제 함수를 로 미분한 식 풀기

로 미분한 식을 0으로 둠

로 미분한 식을 0으로 둠

C. 부등식 조건부 최적화 문제:f(x) a

Karush-Kuhn-Tucker(KKT) 3 조건 사용

  • 조건 1 : 라그랑제 함수를 미분한식이 0이 되어야 한다.
  • 조건 2 : 모든 라그랑제 승수가 0보다 크거나 같아야 한다.
  • 조건 3 : 모든 조건식에 대해 이거나 이 되어야 한다.
조건 수식
기울기(Gradient)조건
실행가능성(Feasibility)조건
직교성(Orthogonality)조건
양수(Nonegarivity)조건

f(x)=조건함수, g(x)= 제약함수

[예제]

eg. , 조건

Step 1. 라그랑제 함수 정의

Step 2. KKT 조건 정의

  • 조건 1x :
  • 조건 1y :
  • 조건 2 :
  • 조건 3 :

D. 볼록성질을 만족하는 조건부 최적화 문제 : wolfe Dual로 변형 가능

  • 볼록성질 : 목적 함수가 2차 항만을 가지고 있음, 지역해가 없는 경우

조건

변형

결론

  • 부등식 조건이 등식 조건으로 바뀜
  • 최소화 문제가 최대화 문제로 바뀜

참고 : 패턴인식개론, 한빛미디어, 491p

2. 시뮬레이티드 어닐링

  • 기본틀은 경사 하강법과 같음
  • 조건에 따라 상승도 가능하다는 점이 경사 하강법과 다른점
    • 조건 : 온도 t (t가 크면 하강/상승을 비슷한 비율로, t가 작으면 하강에 초점
  • 장점 : 상승도 가능하므로 지역해의 단점 해결 가능

참고 : AI Study_Simulated Annealing

3. 유전 알고리즘

추후 별도로 정리

4. Matrix Inversion

5. EM

6. Newton's Method

[추천]: Machine Learning 스터디 (7) Convex Optimization

  • 조건부 최대화 문제
    • 목적 함수가 2차 함수, 제약 조건이 1차 부등식이나 등식으로 된 것
  • 비선형 계획법이라고도 한다

cf. QP 2차 방정식을 사용하고, LP는 1차 방정식으로 설정된 것을 사용한다.

Convex문제는 선의 어떤 두점을 잡아서 이를 직선으로 연결하면 선의 모든 점도 곡선의 위에 존재 하게 된다??

[참고] Linear Complementarity Problem

w = Ax + b 가 주어 졌을때

  • x 0 : x가 0이 되어서 w = b의 형태 문제
  • w 0 : w가 0이 되어서 Ax + b = 0의 형태 문제
  • x'w = 0

Linear Programming 문제의 경우 간단한 수식 이항을 통해 LCP로 바꿀수 있고 Quadratic Programming 문제의 경우 수식의 변형을 통해 LCP로 바꿀수 있다고 합니다.

results matching ""

    No results matching ""