(1)편에서 나는 인간이 AI를 통제하기 어려운 이유는
현대 기술의 '측정 가능한 목표'에 도달하는 '단 하나의 최적의 방법'을 찾고자 하는 특성 때문이라고 했다.
이 일련의 과정은 수학적 프로세스라고 할 수 있기에
수학에 의해서 인간의 선택은 체계적으로 배제된다고 했다.
이러한 원리가 극단적으로 나타난 것이 바로 AI이다.
이를 가장 기초적인 AI 모델인 '회귀 분석 모델(AI)'을 통해서 알아보자.
주가 예측 AI 개발
자, 어떤 사람이 '주가 예측 AI'를 만든다고 가정해보자.
(실제 주가 예측 AI 모델은 여기서 설명하는 것보다 훨씬 복잡하게 만들어진다.)
위와 같은 주가 변동에 어떤 일반화된 규칙(패턴)이 존재할까?
만일 모종의 규칙이 존재하고, 그래서 우리가 그 규칙을 알 수만 있다면,
우리는 미래 시점의 주가를 예측할 수 있을 것이고,
큰 돈도 벌 수 있을 것이다.
주가 예측 AI 모델 개발을 위해서 회귀 분석 모델이 사용된다.
물론 실제 주가에서 규칙(패턴)을 찾기란 거의 불가능하지만
여기서는 설명을 위한 단순화된 사례로 이해하면 될 듯 하다.
회귀 분석이란
"데이터들 사이의 상관관계를 파악하여 어떤 규칙성을 찾아내고,
이를 통해 미래의 값을 예측하는 분석 방법"
이다.
이러한 모델은 f(x)라는 함수식으로 만들 수 있을 것이다.
이렇게 하는 것을 모델링이라고 하는데, 이때 만들어진 모델이 AI이다.
심하게 단순화시켜서 말하자면
함수식 ≒ 모델 ≒ AI
이다.
(물론 AI를 회귀 분석 모델로 동일시할 수는 없다.
회귀 분석은 AI 개발을 위한 알고리즘의 하나일 뿐이다.
하지만 나같은 문송러들을 위해 단순화한 설명이라는 점을 밝힌다.)
로우 데이터(raw data)
주가 예측 AI를 만들기 위해서 먼저 과거의 주가 데이터가 필요할 것이다.
시간, 주가, 거래량 등에 관한 숫자 데이터 말이다.
이를 로우 데이터(raw data)라고 한다.
로우 데이터는 컴퓨터가 이해하기 쉽도록 엑셀 파일로 잘 정리해야 한다.
숫자가 아닌 데이터는 컴퓨터가 읽기 어렵고, AI를 만들기도 어렵다.
모든 것이 다 숫자다.
총오차(total loss)
자, 만일 위와 같은 숫자 데이터를 XY축 그래프에 점으로 표시해서 시각화해보자.
(컴퓨터는 이런 시각화를 할 필요가 없다.)
로우 데이터를 XY 그래프상에 표시했더니 위와 같이 나왔다고 해보자.
이때 우리는 이 숫자 데이터들이 3차 함수 곡선의 규칙(패턴)이 있는지를 직관적으로 알 수 있다.
하지만 현대 기술은 직관이 아니라 수학적 계산으로 계산해야 한다.
어떻게 수학적 계산을 통해서 로우 데이터에 존재하는 잠재적 패턴을 찾을 수 있을까?
로우 데이터를 설명하는 무수히 다양한 함수 그래프를 상상해 볼 수 있을 것이다.
1차 함수: f(x) = ax + b
2차 함수: f(x) = ax^2 + bx + c
3차 함수: f(x) = ax^3 + bx^2 + cx + d
4차 함수: f(x) = ax^4 + bx^3 + cx^2 + dx + e
...
이들 모델 중 어느 것이 로우 데이터를 잘 설명할 수 있을까?
이를 아는 방법은 로우 데이터값에서 모델이 예측한 값을 뺀 총오차를 계산하는 것이다.
1차 함수 모델과 3차 함수 모델의 경우,
1차 함수 모델 3차함수 모델
로우 데이터값과 각 모델이 예측한 데이터값의 오차가 아래와 같이 존재한다.
이때 그 오차의 총합(총오차)을 구할 수 있다.
총오차를 손실 함수(Loss Function)라고도 한다.
총오차는 다음과 같이 '로우 데이터값'에서 '모델이 예측한 값'을 뺀 절대값들의 총합으로 구할 수 있다.
(여기서 중요한 것은 음수든, 양수든 오차값이 있어서는 안 된다는 점이다.
그래서 "총오차 = ∑|(실제값 - 예측값)|"로 SAE(Sum of Absolute Errors)와 같이 오차들의 절대값의 합을 계산하거나 "총오차 = ∑(실제값 - 예측값)^2"와 같은 제곱값(SSE)을 계산한다. )
위의 두 가지 모델의 경우, 3차 함수 모델이 1차 함수 모델보다 총 오차가 더 적다.
이는 3차 함수 모델이 1차 함수 모델보다 로우 데이터를 더 잘 설명한다는 말이다.
그렇다면 3차 함수 모델이 더 최적의 모델에 가깝다는 뜻이다.
파라미터(parameter)
최적의 모델을 찾는다는 말은 총오차의 합이 최소화된 모델을 찾는다는 뜻이다.
총오차의 합을 줄이는 방식은 파라미터(parameter), 즉 매개변수를 변화시킴으로써 총오차 값의 변화를 추적하는 것이다.
위의 회귀 분석 모델의 경우 파라미터는 두 종류가 다.
1) 하이퍼 파라미터:
먼저 몇차 함수로 할 것인지를 정하느냐 하는 것이다.
함수의 차수는 모델 개발자가 정해야 한다.
가장 원시적인 방식은 1차, 2차, 3차.. 이런 식으로 대입해서
총 오차값의 변화 추이를 보는 것이다.
2) (모델) 파라미터:
이는 함수 내의 파라미터를 말한다.
3차 함수: f(x) = ax^3 + bx^2 + cx + d
같은 3차 함수 모델이라도 a, b, c, d값을 조금씩 변화시키면 총오차 값이 변화된다.
이때 a, b, c, d값을 모델 파라미터, 혹은 그냥 파라미터라고 한다.
파라미터도 다시 두 종류가 있다.
a, b, c는 가중치(weight)라고 하고, d는 편향(bias)라고 한다.
이렇게 파라미터값을 변화시키다가 총오차 값이 가장 최소화되는 그 지점을 찾을 수 있다.
그때의 함수의 차수와 모델 파라미터, 곧 가중치와 편향이 바로 로우 데이터를 가장 잘 설명할 수 있는 최적의 모델이고, 그것이 주가 예측 AI 모델이라고 할 수 있다.
여기서 (1)편의 글의 내용이 소환된다.
현대 기술은 측정 가능한 목표에 도달하는 단 하나의 최적의 방법을 찾는 프로세스라고 말한 바 있다.
위의 기초적인 AI 모델을 만드는 것에도 정확히 이러한 원리가 적용된다.
회귀 분석 모델의 경우, AI 모델 개발은 총오차 값이 최소인 함수를 구하는 기술이다.
순전파와 역전파
인간이 하이퍼 파라미터로 함수의 차수를 3차로 정해서 다음과 같은 함수식이 제안되었다.
f(x) = ax^3 + bx^2 + cx + d
이제 a, b, c, d값을 조금씩 변화시켜서 로우 데이터값을 뺀 오차값을 찾는다.
이렇게 파라미터를 변화시켜 순방향으로 계산을 해서 총오차값이 나온 뒤,
총오차값을 줄이기 위해서 다시 a, b, c, d값을 또 업데이트한다.
그런데 이때 출력된 값을 다시 앞으로 보내는 과정이 필요하다.
이때 역방향의 피드백(feedback)의 이루어진다.
이렇게 파라미터를 조금씩 변화시켜 출력한 총오차값을
기존의 총오차값과 비교해서 다시 파라미터값을 변화시키는 과정을 반복한다.
이러한 반복을 통해서 총오차값이 작아졌다가 커졌다가를 반복하면서
서서히 총오차를 줄이는 기울기 하강을 통해 최적의 파라미터값을 찾게 된다.
이렇게 해서 함수의 차수와 파라미터값을 구하는 것이다.
(참고로 인공신경망에서는 순방향과 역방향을 순전파(propagation)와 역전파(back propagation)이라고 한다.)
과적합(오버피팅: overfitting)
하지만 과적합의 문제를 설명하지 않고 넘어갈 수 없다.
만일 함수의 차수를 무한히 늘이고, 파라미터를 무한히 변화시키다 보면 아예 총오차 값을 제로(0)으로 만들 수 있다.
그록으로 생성한 이미지인데 아쉽게도 설명되지 않은 데이터가 더러 보인다.
어찌 보면 위의 그래프가 로우 데이터를 100% 설명한다고 할 수 있다.
그러나 이러한 모델의 경우, 로우 데이터 안에 잠재된 규칙을 찾아낸 것이 아니고
주어진 로우 데이터값만 완벽하게 설명하는 함수를 찾아낸 것이다.
그러니까 이 모델로는 새로운 값, 곧 미래를 예측할 수 없다.
이를 과적합, 혹은 오버 피팅(over fitting) 모델이라고 한다.
AI 모델 개발에서 과적합 문제는 골치 아픈 문제이다.
어느 순간 데이터를 완벽하게 설명하는 모델이 출현했는데,
이게 훌륭한 AI 모델인지, 아니면 과적합된 AI 모델인지 구별하기가 만만치 않기 때문이다.
노이즈(noise)
왜 과적합의 문제가 발생하는가?
이는 AI의 본성적 결함(?)인데, AI 모델은 신호(sign), 곧 실제 패턴값과 노이즈(noise)를 구분하지 못하기 때문이다.
가령 다음 데이터에서 오렌지색으로 표시한 데이터들은 튀는 데이터, 즉 노이즈들이다.
따라서 모든 데이터를 다 신호로 간주해서 총오자를 제로로 만드는 과적합의 오류가 생기는 것이다.
왜 AI는 노이즈를 구별하지 못할까?
AI가 노이즈를 구별하지 못하는 이유는 AI에게 모든 데이터는 다 등가(等價)이기 때문이다.
여기서 인간의 인식과 AI의 인식(?)의 결정적 차이가 존재한다.
인간은 모든 인식에서 '가치 평가' 메카니즘이 작동한다.
그래서 직관적으로 신호와 노이즈를 구분할 수 있다.
이를 구분하기 위해서는 가치, 곧 옳음과 그름에 대한 '진리가(眞理價)'라는 평가 척도가 존재하기 때문이다.
그러나 AI에게는 '진리가의 가치 평가' 메커니즘이 존재하지 않는다.
그래서 모든 데이터가 동등한 가치를 갖는다.
(최소한 현재까지는 그러하다.)
대신 AI는 (강화학습에서 볼 수 있듯이) 가치(value)에 대한 인식 대신에 '+1'이라는 '보상 함수'만 존재한다.
인간의 가치 평가 메커니즘과 AI의 보상 함수의 차이는 뭘까?
이것은 AI 정렬의 핵심 과제이며,
앞으로 가장 중요한 연구 및 토론의 과제가 될 것이다.
에필로그
결론적으로 회귀 분석 AI 모델을 개발한다는 것은,
총오차를 최소로 줄이면서도 아예 제로(0)가 되지 않는 모델을 찾는 작업이다.
최적의 값이란 총오차값을 최소화하면서도, 지나친 과적합은 피하는 값이다.
총오차값의 최소화 ---------- (최적화) ----------- 과적합
그리고 바로 그 최적의 값을 찾는 것이 회귀분석을 통한 AI 모델 개발의 방식이다.
그리고 바로 이러한 작업이 (1)편에서 예로 들었던, 커피 로스팅에서 지복점을 찾는 작업과 유사하다고 말하는 것이다.
즉, 커피 로스팅에서 '지복점'을 찾는 과정처럼
AI 개발은 '총오차 최소화'라는 측정 가능한 목표를 달성하기 위한 수학적 자동화 과정이다.
이 과정에서 최적화된 단 하나의 방법으로서의 AI 모델은 '수학적 계산'에 의해 결정되며, 인간의 가치 판단이나 선택이 체계적으로 배제다.
이러한 일련의 프로세스에서 인간의 판단과 개입은 최소화되면 될 수록 좋다.
이것이 인간이 AI를 통제하기 어려운 이유다.