Search

[인공지능 수업 이야기] 학습과 손실 함수

Created
2024/11/18 03:36
Tags
안녕하세요. 이번 달부터 시리즈로 인공지능 수업 이야기를 해 보려고 합니다. 인공지능은 공부를 시작하면 정말 재밌는 분야입니다.
사람이 아니지만 사람처럼 판단하는 걸 보면 신기하기도 하고, 어려울 것 같지만 입문자용 코드를 통해 차츰 배워나가다 보면 생각보다 어렵지 않게 접근해 볼 수 있습니다.
하. 지. 만.
학습이 어떻게 이루어지는 걸까… 하고 자세히 들여다보면
그때부터는 수식도 나오고 정리되지 않은 용어도 쏟아져 나옵니다.
접근하는 방법과 바라보는 관점에 따라 ‘인공지능’을 배울 때의 난이도와 깊이가 천차만별입니다. 사실 ‘인공지능’이라는 정의부터 깊이 있게 파고든다면, 시작부터 어려운 개념이라는 느낌이 들기도 합니다.
‘인공지능’에 대한 정의가 워낙 다양하기 때문에 실제로 저도 학생들과 수업 하면서 질문을 많이 받는 부분입니다.
그럴 때 저는 학자마다 관점과 정의가 다르고, 적용되는 분야별로 강조하는 점이 다르다는 이야기를 해 주고는 한답니다.
쉽기도 하고, 어렵기도 한 인공지능!
지금부터는 제가 학생들과 인공지능 수업을 했던 내용을 토대로 이야기를 풀어나가도록 하겠습니다.

인공지능이란?

인공지능에 대한 위키 백과의 정의입니다.
‘인간의 지능을 모방한 기능을 갖춘 컴퓨터 시스템이며, 인간의 지능을 기계 등에 인공적으로 시연(구현)한 것이다. ’라고 나와 있습니다.
위의 문장으로는 직관적으로 이해가 잘되지 않습니다.
정의를 잘 이해하려면 인간의 지능을 또 알아야 합니다.
그래서 다시 지능에 대한 위키 백과의 정의를 살펴볼까요?
일반적인 공통 정의를 살펴보면 눈에 띄는 정의가 보입니다.
‘지능은 학습 능력(learning ability)과 관련이 있다. 특별한 영역에 지적인 능력을 갖춘 사람은 그렇지 아니한 사람보다 더 신속하게 새로운 정보를 처리할 수 있다.’
이제 두 개념을 합쳐서 보면,
‘인간의 학습력을 모방한 기능을 갖춘 컴퓨터 시스템이며, 인간의 학습 능력을 기계 등에 인공적으로 시연(구현)한 것이다.’로 문장을 정리할 수 있습니다. 물론 이 짧은 문장만으로 인공지능의 대한 정의를 완벽하게 정리할 수는 없습니다.
이 과정은 처음 학생들과 인공지능에 대해 수업을 시작할 때 하는 과정입니다. 인공지능을 공부하는데 ‘지능’이 무엇인지 모르면 안되니까요. 우선적으로 인공지능과 지능을 구분할 수 있을 정도로 개념을 다지고, 이러한 지능을 인공적으로 구현하는 것으로 수업을 진행합니다.
그럼
인공지능 수업에서는 무엇을 다루어 나가게 될까요?
학습입니다.

인공지능 학습의 목표: 손실 함수 줄이기

이제 구체적으로 학습에 대해 알아볼까요? 학습에 대해서도 다양한 정의가 있지만 결국 구체적으로는 ‘손실 함수(Loss Function)를 줄여나가는 것이다.’라고 생각할 수 있습니다.
그럼 손실 함수는 무엇일까요?
‘인공지능이 예측한 값과 실제 값의 차이를 측정하는 함수’입니다.
즉, 인공지능 학습의 목표는 ‘손실 함수의 값을 최소화 하는 것’이지요.
손실 함수의 종류도 많이 있지만 2가지만 제대로 이해하면 나머지는 이것의 변형으로 생각하셔도 됩니다.
첫 번째 , 회귀에서 사용하는 MSE
공식에 대해 설명해 보면
실제 값과 예측 값의 차이가 작아야 학습이 잘 된 것이다.
두 값의 차이 크기만 필요한데 음수가 나온다. 그럼 제곱을 하자.
데이터가 여러 개이니 각 데이터의 차이의 평균을 구하자.
두 번째, 분류에서 사용하는 Binary Cross-Entropy
공식에 대해 설명해 보면
개나 고양이처럼 두 개 중의 하나로 분류할 것이다.
개일 때는 [1, 0] , 고양이일 때는 [0, 1]로 출력된다.
인공지능이 고양이 데이터에 대해 [ 0.2, 0.8]로 결과를 출력했다면
log(0.8)을 손실 값으로 정하자.
데이터가 여러 개이니 이 값들을 평균 하자.
위와 같이 공식을 자세히 살펴보았습니다. 우리가 지금 무엇을 이야기하고 있었는지 길을 잃으면 안 됩니다. 인공지능을 공부할 때 제일 중요한 점입니다. 왜냐하면… 공식이 나오고 그 공식을 해석하고 그 공식에 따른 코드를 보고 하면… 지금 이걸 왜 보고 있는지 잊게 되거든요.. (저의 경험담입니다. )
지금 우리는 인공지능 학습의 목표에 대해 이야기 하고 있었습니다.
그러면서 손실 함수 2가지를 살펴보았지요.
우리의 목표는 이렇게 구한 값들을 최소화하는 것이 목표입니다.
그럼, 최소화는 어떻게 시키면 될까요?

경사하강법이란?

유명한 경사하강법이 나왔습니다. ^^
여기서 미분이 나옵니다.
엥? 정보 시간인데 미분이라니.. 싶지만
미분 자체가 무엇인지를 아는 것이 중요한 것이 아니라
미분을 도구적으로 사용하는 것이 정보 시간에 미분을 대하는 자세입니다.
우리는 저기 가장 작은 지점까지 단계적으로 반복해서 이동하는 것이 목표입니다. 그럼 한 번에 얼만큼 어느 방향으로 이동해야 할까요?
이걸 알기 위해 미분을 사용합니다.
학교마다 학생들의 수준이 달라서 이해할 역량은 다르겠지만
이 정도는 이해할 것입니다. 반복해서 이동한다고 했는데.. 언제까지 반복해야 할까요?
정답은 바로
‘기울기가 0이 될 때까지입니다.’
여기까지 배운 것을 바탕으로 정리해 보면, ‘인공지능이 학습의 목표를 달성했다’라는 문장은 ‘손실 함수의 기울기가 0인 지점에 도달했다.’라고 설명할 수 있게 됩니다.

인공지능 수업 첫 시간을..

선생님~
인공지능 첫 시간을 이런 흐름으로 차근차근 설명하며 진행해 보시는 건 어떠신가요? 그러면서 여기에 나온 회귀, 분류, 손실 함수, 경사 하강법을 앞으로 수업 시간에 자세히 알아볼 거다.. 하고 하면서 마무리하는 거죠. ^^
그럼 저는 다음에 이어서 인공지능 수업에 어떤 내용으로 풀어나갔는지 다음 글로 또 찾아뵙겠습니다. ^^/