딥러닝으로 신호처리를...

이미 신경망으로 신호처리를 하자는 아이디어는 19080년대에도 있었다. 90년대에는 공공연히 실험이 되기도 했었고. 특히나 RNN 자체가 과거의 현상에 기반한 prediction 같은 것이 가능했었어서 비선형 필터링 작업을 하는 것들을 실험했었고 그저 가능성만 확인했다고 봐야 한다. 그러니까 상황이 바뀌면 또 새로 트레이닝 해야 되고 하는 내용은 쏙 빼놓고, 특정 환경에서 잘 트레이닝 시키면 linear filter가 못하는 것도 잘 할 수 있다 정도?

어쩌다 잠이 안와서 최근의 오디오 관련 학회의 논문들을 뒤적거리다보니 이젠 신경망으로 뭔가를 하는 것이 예전처럼 offline으로 컴퓨터 고생시켜서 가능성이나 겨우 확인 할 수 있는 게 아니라 비싼 GPU만 있으면 개인도 집에서 쉽게 할 수 있는 시절이라 그냥 대부분 논문의 주제거리가 되어버린 것 같다.

그래도 뭐랄까 내 눈엔 비싼 장비와 쓸데없이 많은 연산을 안해도 할 수 있는 것을 꼭 deep learning으로 풀어가야 되는 것인가 하는 의문만 갖게 된다. 이게 과연 엔지니어링이라고 할 수 있는 것인가 하고 말이다.

이들이 다루는 주요 테마는 유명한 옛날의 아날로그 회로를 디지털로 모델링 하는 것이었는데 사실 그것은 2천년대 초반부터 컴퓨터를 활용해서 할 수 있는 일이 되었기에 방법론을 찾는 것이 주된 것이었다면 지금은 그나마 분석이나 아이디어를 낼 필요 없이 LSTM (그러니까 RNN)과 CNN 약간을 가지고 그냥 학습시켜서 해본다는 그런 내용이다. 그래서 얼마나 잘 해냈는지를 평가하는 것이다.

아날로그 회로를 사람이 힘들게 분석하거나 아날로그 회로의 어떤 특성을 디지털/계산적인 방법으로 모사하는 방법론을 찾기 위해 사람이 고생하지 않아도 기계를 대신 고생시켜서 얻어내고자 하는 것이다. 그러나, 신경망을 쓰는 것의 가장 큰 단점은 이를테면 분석해서 모델링하거나 했다면 단순히 동작 파라미터 몇 개를 실시간을 바꾸어도 될 것을 모델링된 웨이트 전체를 바꾸어야 한다든가 또 새롭게 트레이닝을 시켜야 된다는 거다. 뭐 메모리만 충분히 많다면 모든 경우에 대한 특성을 전부 다 학습시킨 뒤에 할 수도 있겠지만.

어쨌든 나는 이것은 엔지니어링이 아니라고 생각한다. 이미 옛날에 나온 수 많은 이론들이 있다. 다만 아날로그 회로를 전혀 성질이 다른 디지털로 모사하는 과정에서 근사화가 따라붙기 때문에 완전히 똑같이 모사하는 것이 불가능할 뿐이지. 마찬가지로 sample rate을 끌어올리고 기계를 좀 더 고생시키면 된다. 그래봐야 deep learning으로 고생시키는 것과는 비교할 수 없을만큼 덜 고생시켜도 된다.

엔지니어링이라는 것은 그냥 가능성만 확인하고 끝나는 게 아니라 비용을 생각해서 얼마나 싸고 좋게 간단하게 만드느냐를 고민하는 과정을 포함해야 한다고 생각한다. 아니 그게 그냥 습관처럼 그렇게 해야 된다고 생각한다.

이 세상의 문제들을 푸는 방법은 엄청나게 다양하겠지만 엔지니어링을 통해서 문제를 푼다고 하면, 특히나 가장 좋은 것은 가장 쉽고 빠르고 값싸게 푸는 방법을 찾는 것이다.

AI가 나와서 고마운 것은 나로서는 골치 아픈 글짓기를 너무 잘해준다는 것이고 골치 아픈 읽기 대신 알기 쉬운 표현으로 잘도 요약해준다는 거다. 가끔씩 회사에서 엔지니어링이 아닌 매우 문과적인 일을 시킬 때, 예전 같으면 그놈의 글짓기를 해야 될 생각을 하면 일진들 가득한 학교에 홀로 버려진 고아가 되어버린 그런 느낌이었다면 지금은 뭐랄까 내가 언제든 도움을 부탁할 수 있는 싸움 잘 하는 형들 여럿을 알고 지내고 있는 그런 기분이다. 싸움도 그냥 잘하는 게 아니라 일당 백하는 형님들 말이다.