인공지능의 문제 해결 사례
본문동영상 앱은 내가 볼 만한 영화를 골라 주고, 메일 서비스는 스팸을 걸러 내며, 은행은 대출 신청이 위험한지 판단한다. 이 인공지능들은 마지막에 '볼 확률 85%', '스팸일 확률 92%'처럼 0과 1 사이의 수를 내놓는다. 여러 입력을 받아 이런 확률을 만드는 가장 작은 부품이 인공 뉴런이다. 뉴런 하나는 어떤 계산을 할까?
5.1.1시그모이드 뉴런
퍼셉트론은 0 아니면 1만 냈다. 하지만 '얼마나 그럴듯한지'를 나타내려면 0과 1 사이의 연속적인 값이 필요하다. 그래서 가중합 \(z = w_1x_1 + \cdots + w_nx_n + b\)를 매끄러운 S자 곡선에 넣는다.
\[\sigma(z) = \frac{1}{1 + e^{-z}}\] 는 \(z\)가 매우 크면 1에, 매우 작으면 0에 가까워지고, \(z = 0\)일 때 0.5이다. 출력을 확률처럼 해석할 수 있다.
그림 1에서 입력 \(x\)를 바꾸어 보자. \(w = 1\), \(b = -4\)이면 \(x = 4\)에서 \(z = 0\)이라 출력이 0.5이다. \(x\)가 커지면 출력이 1에, 작아지면 0에 다가간다. 가중치를 3으로 키우면 곡선이 가팔라져, 기준 근처에서 출력이 급하게 바뀐다. 학습은 이런 가중치와 편향을 자료에 맞게 고르는 일이다.1
5.1.2추천 시스템과 행렬
추천 시스템은 사용자들의 평점을 행렬로 정리하는 데서 출발한다. 행은 사용자, 열은 영화, 성분은 평점이다. 이 행렬은 대부분 비어 있는데, 평점이 비슷한 사용자끼리, 또는 함께 높은 평점을 받은 영화끼리 묶어 빈칸을 채운다. 예를 들어 사용자의 취향 벡터와 영화의 특징 벡터를 곱해 더한 값으로 평점을 예측한다. 이는 행렬의 곱셈과 같은 계산이다.
5.1.3예제 풀이
스팸 판별 뉴런이 메일 속 '무료'의 개수 \(x_1\), '당첨'의 개수 \(x_2\)를 받아 \(z = 1.5x_1 + 2x_2 - 4\)를 계산하고 \(\sigma(z)\)를 스팸일 확률로 낸다. '무료' 2번, '당첨' 1번이 나온 메일의 스팸 확률을 구하여라. (\(e^{-1} \approx 0.368\))
\(z = 1.5 \times 2 + 2 \times 1 - 4 = 1\)이다. 따라서 \(\sigma(1) = \dfrac{1}{1 + e^{-1}} = \dfrac{1}{1.368} \approx 0.73\)이다.
이 메일이 스팸일 확률은 약 73%이다. '당첨'이 한 번 더 나오면 \(z = 3\), \(\sigma(3) = \dfrac{1}{1 + e^{-3}} \approx 0.95\)로 크게 오른다. 기준을 0.5로 두면 \(z > 0\)인 메일을 스팸으로 분류하는 것이므로, 경계는 퍼셉트론처럼 \(1.5x_1 + 2x_2 = 4\)인 직선이다. 시그모이드 뉴런은 경계에서 멀수록 더 확신하는 퍼셉트론인 셈이다.
아래 탐구 카드에서 추천 시스템의 계산과 인공 뉴런이 확률을 만드는 과정을 직접 해 보자.
- 시그모이드 뉴런 하나로 확률을 내는 모형을 로지스틱 회귀라 한다. 의료, 금융 등에서 판단의 근거를 설명하기 쉬워 지금도 널리 쓰인다.
인공 뉴런은 입력에 가중치를 곱해 더하고 편향을 더한 \(z\)를 시그모이드 함수 \(\sigma(z) = \frac{1}{1 + e^{-z}}\)에 넣어 0과 1 사이의 값을 낸다. 추천 시스템은 평점 행렬과 벡터의 곱으로 빈칸을 예측한다. 그래서 처음 질문의 '확률 85%' 같은 출력은 입력들의 가중합을 S자 곡선으로 바꾼 값이다.