범용 인공지능(강인공지능)을 위한 개념
범용이란 비범용, 한정의 반댓말로써 어떤 경계에 국한되지 않음을 의미한다.
그렇다면 여기서 경계는 어디인가?
1. 레벨: 경계 수준
특정 업무를 위한 인공지능에서 학습 방식을 선택할 때 후천적 교육(흔히 말하는 강화 학습)의 방식을 선택한다고 하자.
* 물론 강화 학습 이외에도 행동주의에 속하는 방법론은 여러가지 있다만, 인공지능과 관련하여 가장 널리 쓰이는 것이 강화 학습이다.
개발자는 인공지능에게 업무에 대해 이해시켜야 한다. OCR이라면 그것이 OCR을 수행하도록 규칙을 만들어야 하고, 게임이라면 게임을 수행하도록 규칙을 만들어야 한다.
간단히 말해 '게임종료' 버튼을 눌러 보상을 받는 것으로 강화 학습을 이룰 수 있다면 '게임'에 대해 학습하지 않고, '게임종료' 방법에 대해 학습할 것이다.
이것(편의상 '열성 답'이라 한다.)을 '하지 않게' 하기 위해서는 두 가지 방법 중 하나를 선택해야 한다.
A. 가치화하여 보상에서 제한다.
B. 예외 규칙으로 설정한다.
다만 B를 많이 수행하면 수행할수록 범용이라는 본래 목적에서 멀어지게 된다. 예외 규칙이란 즉 if문이므로, B가 많아진다는 것은 전체 알고리즘이 의사결정 트리와 흡사해지게 된다는 것을 의미한다.
그렇다면 의사결정 트리가 과연 범용 인공지능을 설계하기에 적합한 구조인가에 대해서 고찰할 필요가 있다.
다만 현재까지는 신경망을 이용한 구조가 더 많이 시도되고 있다. 이는 A를 채택한 시도가 더 많음을 의미한다. 그 필요성에 대해 인지하고 있으나, 여기서는 일단 A를 선택하였다고 가정한다.
* 이 경우 한 가지 유념할 것은, B 대신 A를 선택하는 경우는 앞서 언급한 '열성 답'이 어떤 상황에서는 좋은 선택이 될 수 있을 경우이다. '열성 답'이 무조건 선택되지 않아야 하는 경우, B를 선택하는 것이 확률이 0이 되므로 좋은 선택이다. 하지만 사람에 빗대어 볼 때, 무조건 불가능한 것을 인공지능에게 가르쳐주고 싶지 않다면 B를 선택할 이유가 없다.
A를 선택한 경우 어쩔 수 없이 '썩 좋지 않은' 선택을 한 인공지능이 출현할 가능성이 있다.
썩 좋지 않은 선택의 수가 늘어난다는 것은 알고리즘의 만족도가 떨어진다는 것을 의미한다.
이 썩 좋지 않은 선택을 좋은 선택으로 바꾸려면 상황 판단력을 높여야 하는데, 이는 feature 수의 증가를 동반한다. 즉 연산 부하가 증가한다.
만약 행동에 시간의 제약이 필요하다면 그 수준의 설정이 필요하다. 그리고 일반적으로 사람이 행동하는 데에는 시간의 제약이 따르므로 인공지능에서도 상황 판단에 대한 수준을 결정해야 한다.
이 수준은 주어지는 상황에 대한 변수의 수와 연산 시간(CNN으로 생각하면 행렬 연산 시간, 의사결정 트리라면 탐색 깊이 등)으로 표현된다.
변수의 수가 적은데 연산 시간만 길다면, 연산 시간에 상황을 분석하여 더 많은 feature를 획득하는 것이 계산 결과의 만족도를 높일 수 있다.
역으로 변수의 수가 많은데 연산 시간이 짧다면, 변수의 수를 줄이거나 차원을 줄이는 기법 등을 이용해 연산 시간을 줄여 (계산까지의 시간에 대한 평가를 반영한) 계산 결과의 만족도를 높일 수 있다.
2. 메타인지 구현
1번에 이어 메타인지를 구현할 수 있다.
이미 알고 있을 인터넷에서의 'Runtime Error'를 1번과 연결시키면 메타인지 개념을 구현할 수 있다.