본문바로가기
[인공지능, 수학으로 타파] 최소제곱법으로 딥러닝 따라하기
수학동아 2020.06.26

 

 

Mathematics for AI #3

확률분포로 딥러닝 따라하기

 

 

 

 

*출제자의 한 마디*

 

사진을 보고 고양이인지, 강아지인지 척척 알아맞히는 인공지능. 도대체 무엇을 기준으로 사진을 분류하는 걸까요? 핵심은 바로 수학 시간에 배우는 '확률분포'입니다. 미리 학습한 사진 데이터로 각 동물들의 확률분포를 만든 뒤, 새로 입력한 사진에 가장 적합한 확률분포를 찾는 거죠. 

명령어를 알면 확률분포는 쉽게 만들 수 있으니 이번 시간에는 '원리'를 이해하는데 집중해보세요!

 

 

 

--------------

 

분류와 확률분포

 

지난 시간에는 인공지능이 행렬의 성분을 예측하고 조정하는 방법을 간단히 살펴봤어요. 계산한 결과와 실제값의 차이, 즉 ‘오차’가 가장 적은 선형방정식을 직접 찾고 그 결과를 해석하는 방법으로 값을 예측했었죠. 이번 시간에는 딥러닝 과정에서 인공지능이 데이터를 분류하고 판단하는 기준에 대해 간단히 살펴볼게요. 

 

인공지능이 어떤 데이터를 분류한 결과는 확률로 나타납니다. 예를 들어 인공지능에게 여러 고양이 사진을 학습시킨 뒤 사람과 고양이 사진을 분류해보라고 했을 때, ‘이 사진은 사람이고 저 사진은 고양이야!’라고 판단하는 것이 아니라 ‘이 사진은 고양이일 확률이 95% 이상이므로 고양이 사진으로 분류해야 해!’라는 식으로 판단하는 거죠.  이때 필요한 것이 바로 '확률분포'입니다.

 

확률분포_Probability Distribution는 어떠한 변수가 특정한 값을 가질 확률을 나타내는 함수입니다. 변수의 성격에 따라 함수가 달라지는 게 특징인데요, 인공지능은 미리 학습한 전체 데이터를 바탕으로 적합한 확률분포를 찾아낸 뒤 이를 통해 판단하고 분류합니다. 간단한 예시를 통해 확률분포에 대해 직관적으로 이해해 볼까요?

 

아래는 고양이의 사진 데이터에서 추출한 얼굴의 가로세로 길이 비율(S)와 코와 입의 길이 비율(W)을 각각 수로 나타내 좌표평면에 점으로 표시한 뒤 그 밀도를 그래프로 나타낸 겁니다.

 

 

 

 

 

 

코와 입의 길이 비율, 얼굴의 가로세로 길이 비율 이렇게 고양이의 2가지 특징을 각각 변수 W, S로 설정하면 확률분포를 함수 f(W, S)로 표현할 수 있습니다. 이 함수의 함숫값을 색으로 표현하면 위와 같은 그래프를 그릴 수 있습니다. 색이 진하면 함숫값이 큰 거고, 옅으면 작은 거지요.

 

세상에 완벽하게 똑같은 고양이는 존재하지 않으므로 좌표평면에 무수히 많은 점들이 찍히겠지만, 이중 점선으로 표시된 곳 즉, 확률밀도가 높은 곳에 있는 고양이의 얼굴을 일반적인 고양이라고 간주할 수 있을 거예요

 

또, 어떤 동물 사진에서 코와 입의 길이 비율과 얼굴의 가로세로 길이 비율을 추출해 점을 찍었을 때 가장 바깥에 있는 영역 밖에 찍히면 그 사진은 고양이가 아닐 확률이 굉장히 높다고 해석할 수 있고, 따라서 인공지능은 그 사진을 고양이가 아니라고 판단하고 다른 동물의 확률분포와 비교합니다.

 

 

 

 

 

*확률론의 개척자 '야코프 베르누이' 

확률분포를 처음 만들어 사용한 사람은 스위스 수학자 야코프 베르누이_Jakob Bernoulli입니다. 베르누이는 베르누이 가문이 배출한 8명의 수학자 중 동생 요한 베르누이와 함께 가장 잘 알려진 수학자입니다.

 

야코프 베르누이는 독일 수학자 빌헬름 라이프니츠와 교류하며 '변분법'이라는 새로운 계산 방법을 만들어 미적분학 발전에 크게 공헌했으며, 자연상수 e를 최초로 발견했습니다. 그중에서도 가장 큰 업적은 확률론을 개척한 것인데, 야코프 베르누이가 죽고 8년이 지난 1713년 출판된 저서 《추측술》에서 18세기까지 상상할 수 없었던 경우의 수와 확률을 연결하는 업적을 이뤄냈고, 이는 확률 통계학과 확률론이 크게 발전하는 계기가 됐습니다.

 

현재 동전의 앞 또는 뒤, 성공 또는 실패처럼 어떤 시행의 결과가 2가지 중 하나로 결정되는 확률변수의 분포를 ‘베르누이 분포’라고 부릅니다.

 

 

 

 

--------------

 

 

확률분포는 확률변수 X가 특정한 값 x를 가질 확률 P(X = x)를 나타내는 함수다. 이때 변수 X가 가질 수 있는 모든 값이 유한 개거나 자연수 개수만큼 있으면 ‘이산확률변수’, 실수 개수만큼 있으면 ‘연속확률변수’라고 한다.

만약 이산확률변수 Xn개의 값 x1, x2, …, xn을 가질 수 있고, 확률분포가 함수 P(X)로 나타나면 P(x1) + P(x2) + … + P(xn)은 반드시 1이다.

 

 

 

 

 

어떤 확률변수 X가 실수 a보다 크거나 같고 b보다 작거나 같은 값을 가지면 그 확률은 P(aXb)로 나타낸다. X가 이산확률변수면 P(aXb) = \sum_{X=a}^{b}P(X)며, 연속확률변수면 P(aXb) = \int_{a}^{b}P(X)dX다. 예를 들어 동전 2개를 동시에 던질 때 뒷면이 나온 동전의 수 X의 확률분포를 그림으로 나타내면 다음과 같다.

 

 

 

 

 

 

 

문제

고양이 얼굴의 가로세로 비율은 정규분포를 따르고 평균은 100%, 분산이 1이다. 정규분포란 그래프가 평균을 기준으로 좌우대칭이며 종 모양을 닮은 확률분포로, 평균과 분산을 정해진 식에 대입해 함수를 구할 수 있다. 가로세로 비율을 확률변수 X(%)라 할 때, 95 ≤ X ≤ 105까지 확률분포 P(X)의 그래프를 그려보자. 또 그래프를 이용해 얼굴의 가로세로 비율이 104%인 동물이 고양이일 확률이 얼마인지 구해보자. 인공지능은 여러 동물의 얼굴 분포 중 해당 값의 확률이 높은 분포를 찾아 동물을 구별한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

--------------

 

 

 

풀이에 필요한 SageMath 코딩 명령어

 

 

① x <- seq(a, b, c)

a부터 b까지의 수를 c단위로 생성해 변수 x에 저장한다. c가 작을수록 그래프가 매끄럽다.

 

 

② d <- dnorm(x, m, v)

변수 x에 대해 평균이 m, 분산이 v인 정규분포를 따르는 값들을 변수 d에 저장한다.

 

 

③ plot(x, d, type=’line’, main=”Probability Density Function”)

변수 x를 기준으로 d의 그래프를 선 형태로 그리고, ‘Probability Density Function’이라고 이름 붙인다.

 

 

 

 

-끝-

 

 

첫 댓글의 주인공이 되어 보세요!
  • 폴리매스 문제는 2019년도 정부의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다.

  • ☎문의 02-6749-3911