추론

FrontPage|FindPage|TitleIndex|RecentChanges| UserPreferences P RSS
RefactorMe with something...

기계 학습 뉴럴네트워크 등등 많은 알고리즘의 목표가 바로 이 '추론'이라는 것에 목표를 두고 있다. 그렇다면 과연 추론이란것에 관한 과학적 정의는 무엇인가?

이에 관하여 많은 의견이 있을 수 있겠지만 이하에서는 내가 생각하는 추론에 관하여 써보겠다. 물론 다른 많은 의견이 있을 수 있고 많은 사람들의 첨삭이 더해지면서 점차 구체적인 모습을 띄어갈 것이라고 생각된다.

내 생각은 Functional Analysis에 근간을 둔다. 먼저 추론의 정의를 다음과 같이 하자.

추론이란 명시적으로 주어진 여러 정보하에서 명시적으로 주어지지 않은 정보를 찾아내는 것이다.

예를 들어 다음과 같은 상황을 들어보자. 내 앞에는 사각형의 물체가 있는데 아래에는 자판이 있고 이를 통해 타이프도 할 수 있다. 정면에는 반짝이는 빛을 발하고 내가 타이프를 함에 따라 반응한다. 이를 통해 나는 워드 작업도 할수 있고 인터넷 연결도 할 수 있다.

이쯤 말하면 대부분의 사람들은 이것은 컴퓨터다라고 할 것이다. 더 많은 정보가 주어짐에 따라 이 컴퓨터는 노트북이고 컴팩것이다라는 판단도 가능할 것이다. 즉

류기정이 생각하기에 이것은 추론이라기 보다는 '연상기억'에 의한 '카테고리화(범주화)'에 가깝다고 본다. 추론이란 논리를 추적해간다는 의미가 강하다. 그러나 위의 예는 '부분적으로 주어진 정보를 이용하여 대상을 범주화하는' 과정이다. 이는 사실상 인공신경망에서 매우 잘 해내고 있는 분야이다. 그러나 추론이란 그 이상의 과정을 의미한다. 예컨데, 경찰이 검문을 하고 있는데 어떤 사람이 그 앞에서 도망을 갔다고 하자. 경찰을 그가 도망간 상황을 보고, 왜 그랬을까를 생각한다. 그 이유는 검문을 당하기를 피하고 싶어했을 것이며, 그건 그자가 뭔가 불법적인 비밀을 가지고 있다는 사실을 의미한다. 이런 추론으로 경찰은 그를 뒤쫓는다. 여기에서 핵심적인 사항은 두가지인데, 첫째는 시뮬레이션이다. 경찰은 순수히 가상적으로, 상대의 입장이 되어 그의 상황을 진행시킨다. 그리고 거기에서 그의 행동을 설명할 타당성을 확보한다. 다시말해, 경찰은 그의 '논리적 가상공간'에서 세상을 굴려본 셈이다. 이 능력은 '상상력'과 '예측'에 기반한다. 둘째는 추론의 근거로서 '공통된 원리'를 공유한다는 점을 들 수 있다. 경찰이 도주자의 심리를 추론한 것의 기반에는, 두 사람은 둘 다 보편적인 '인간'이라는 전제가 깔려있다. 이는 그의 가치관이 경찰을 포함하는 사람들의 가치관과 유사하다는 것을 상정한다. 경찰은 그런 가정을 토대로, 그가 죄의식과, 두려움과, 문제해결을 위한 의도를 갖는다는 것을 안다. 이는 무생물에 대한 추론일 경우에도 마찬가지이다. 이 경우에는 이른바 '물리적 법칙'이 공통전제로 깔리겠지만.

Y=F(X=정보) 라는 형식을 통해 현재 정보에서 Y=컴퓨터라는 추론을 가능하게 한 것이다.
이렇게 보자면 결국 많은 추론알고리즘의 구체적 모습은 이 F(x)가 어떻게 구성되어 있는가라는 점에 목적이 있다고 하겠다. 현재 데이터는 있다. 명시적으로 주어진 여러 X라는 데이터가 있고 이에 따라 Y라는 변수가 나오는 것도 확인이 되었다. 우리가 알고 싶은 것은 이 X,Y라는 데이터만을 바탕으로 하여 충분하게 F(x)를 근사할 수 있는가이다.

먼저 할일은 F(x)가 무엇인가라는 점을 규정해야한다. 함수인가? 혹자들이 가장 많이 생각하는 답일 것이다. 그러나 수학적으로 함수라는 것은 너무나도 좁은 개념이며 이러한 함수를 좀더 확장시킨 많은 개념들이 존재한다. 현재까지 내가 알고 있는 더 넓은 개념은 Measure와 distribution이며 이중에서도 Distribution이 가장 넓은 것으로 알고 있다.(첨삭가능)

그렇다면 결국 문제는 X,Y의 데이터만을 가지고 F(x)라는 Distribution을 파악하는 것이며 수학적으로 이런 영역은 Functional Analysis에서 많은 부분이 확립되었다.그리고 통계학적으로는 Nonparametric, Semiparametric method가 이러한 Functional Analysis의 이론적 배경을 둔 방법이라고 할 수 있다.

그렇다면 문제는 어떻게 근사시킬 것인가라는 것이 남는다. 이러한 알지 못하는 Distribution을 근사시키는 방법에는 어떤 것이 있는가?

Functional Analysis에 의하면 Kernel method 가 있고 적절할 함수 군에 따라서는 orthonomal series expansion이 있을 수 있다.

물론 근사의 방법을 쓰지 않을 수도 있다. 만약 우리가 Distribution의 구체적 형식을 안다면? 물론 이건 무지막지한 가정이다. Unknown Distribution의 형식을 안다고 가정하다니...그러나 이런 가정을 도입한 것이 뉴럴네크워크의 베이지언적 접근이다. 그렇지 않은 뉴럴 네트워크의 접근은 일종의 Series Expansion의 근사 개념에 속한다고 할 수 있겠다. 물론 현재까지 잘 알려지고 수학적인 이론을 바탕으로 한 것은 위의 두가지 Kernel 과 orthonormal series expansion이다. 뉴럴네트워크나 Mars 등의 접근 방법은 정확한 근사의 성질등이 잘 나타나지 않은 면이 많다.

GeneticAlgorithm? 그건 이론이 없다. 무슨 Skema인가하는 이론이 있는데 대부분의 근사이론에서 중요시하는 근사 차수에 관한 말도 없을 뿐더러 근사적 수렴에 관한 내용도 없다. 한마디로 이론이라 할 것이 없는 이론이라하겠다. 그러면 실제적으로 GA가 잘되나? 그것도 아니다. 내 생각으로는 실제적 응용 가능성은 없다고 해도 과언이 아니다. 일단 어느게 최적이다라는 말이 없지 않는가? 그러면 실제로 사용하는 사람은 무슨 근거를 바탕으로 답은 이겁니다라는 수치를 내놓겠는가? 해보니까 되는 것 같다는 사람도 있다. 그러나 다른 알고리즘도 다 되게할 수 있다. 더구나 다른 알고리즘에서는 최적의 수치도 내준다. 그래서 인지 GA로 하는 많은 문제는 머 세일즈멘의 문제 같이 답이 안드러나는 문제를 주로 한다. 왜냐하면 그런 문제에는 최적이란 말을 안해도 되고 답도 없으니 무슨 말을 해도 좋지않은가?(너무 GA에 관해 안좋게 보고 있나??쩝...첨삭 부탁)

GA가 이론이 없는 것은 진화를 설명하는 이론이 최근에 (작년 일본 과학자가 만들었음) 나온 하나의 방정식을 제외하고는 거의 전무하다는 것과 같은 이치라고 생각합니다. 실제적 응용 가능성이 없다고 했는데, 실제로 응용되고 있는걸 어쩌나... ^^; (실제로 사용되는 곳.. 최근에 격투게임에서 응용 된 적이 있고, 미국 국방성에서 우주 정거장의 구조를 최적화 하는 곳에서도 사용되었고(그 구조는 정말 대단하더군요.. ㅡㅡ; 사람이 생각하기엔 정말 괴이한 구조임. 변수가 너무 많아서 함수가 최적화되지 않았는데, GA로 찾아냈다고 하더군요,,)

그리구.. 이 페이지의 이름이 좀 이상하지 않나요? 전체적인 흐름은 ga가 나쁘다는 것으로 결론이 나는 듯? ^^;

음.. 누가 쓰셨는지 모르겠지만 PuzzletChungGeneticAlgorithm의 근간이 되는 SchemaTheory가 "이론이라 할 것이 없는 이론"이 아니라고 생각합니다. 우리 일상의 문제들 중에서 최적치가 있어서 거기에 수렴할 수 있는 문제가 얼마나 됩니까?


"; if (isset($options[timer])) print $menu.$banner."
".$options[timer]->Write()."
"; else print $menu.$banner."
".$timer; ?> # # ?>