[적응신호처리] steepest descent method, (adaptive signal processing)


적응신호처리에서 최적화 방법인 steepest descent method 에 대해 말해보겠습니다. steepest descent method를 설명하기 전에 기본적인 개념부터 알려드릴게요.

신호 $u[n]$의 $u[n],u[n-1],…,u[n-(M-1)]$값을 이용해서 $d[n]$을 추정하려고 합니다. 가장 쉬운 방법으로는 아래와 같이 $u[n]$의 $u[n],u[n-1],…,u[n-(M-1)]$의 선형결합을 이용하는 방법입니다.

$$\hat{d}(n \mid u[n],u[n-1],…,u[n-(M-1)]) = \sum_{k=0}^{M-1}w_k^\star u[n-k]$$
$\hat{d}$이 $d$를 잘 추정하기 위해서 $w=[w_0,…,w_{M-1}]^T$를 잘 찾아야 합니다. $w$를 찾는 방법으로 여러가지 방법이 있지만 아래의 steepest descent 방법이 있습니다.

좀더 이야기 하기전에 오차를 뜻하는 신호인 $e[n]$을 아래와 같이 정의합니다.
$$e[n] = d[n] – \hat{d}[n]$$
그리고 오차의 에너지의 기대값인 $J$를 정의합니다.

$$J(n)= E[e[n]e^\star [n]]$$
steepest descent 방법은 오차의 에너지인 $J(n)$의 기대값이 가장 작아지는 방향으로 업데이트 하는 방법입니다. 아래와 같이요.

steepest descent algorithm

$$w[n+1] = w[n] – \frac{1}{2}\mu \nabla_w J(n) $$

그라디언트방향으로 $w[n]$를 업데이트해야 $J(n+1)$이 작아집니다. 그 이유는 다른 글들에도 많으니 찾아보시고요.
그러면 $\nabla_w J(n)$의 값은 무엇일까요? 계산을 해보면 아래와 같이 나옵니다.

$$\nabla_w J(n) = -2\mathbf{p} + 2\mathbf{R} w[n]$$

여기서 $p$의 $k$번째 원소 $p[k] = E[u(n-k)d^\star(n)]$이고 $R$은 covariance matrix 로써 $R_{ij} = E[u(n-i)u^\star (n-j)]$ 입니다.

알고리즘 자체는 굉장히 간단하죠. 그런데 문제가 있습니다. $p$와 $R$을 어떻게 구해야 할까요? $p$와 $R$을 구하려면 $u$의 distribution 을 알아야 하는데요. 알수가 있을까요? 걱정하지마세요 distribution을 모른다는 점을 고려해서 LMS algorithm 이 고안되었습니다. LMS algorithm 에 대해서는 나중에 보도록 하죠.

Leave a Comment