brunch

AI 딥러닝의 심장, 역전파 알고리즘의 이해

변호사의 실수 개선 과정으로 이해하는 AI의 학습 방법

by 로이어 쿄

안녕하세요, 로이어 쿄입니다.


그동안 AI를 활용하기 위해 필요한 기본적인 지식들과 사용례를 소개해드렸는데요.

이제, 조금 깊이 들어가서 오늘은 AI가 어떻게 실수를 통해 학습하고 발전하는지, 즉 '역전파 알고리즘'에 대해 알아보겠습니다.


1. 역전파 알고리즘의 기본구조


역전파 알고리즘은 크게 네 단계로 구성됩니다.

1) 먼저 순전파를 통해 입력값으로부터 예측을 수행하고,

2) 오차 계산을 통해 예측의 정확도를 측정합니다.

3) 그다음 역전파를 통해 출력층에서 입력층 방향으로 오차를 전달하며,

4) 마지막으로 가중치 갱신을 통해 신경망을 조정합니다.


2. 알고리즘 작동 원리


2-1. 순전파 (Forward Propagation)

순전파는 원본 데이터가 신경망을 통과하는 과정입니다. 입력층에서 시작하여 은닉층을 거치면서 가중치(W)와 편향(b)이 적용되어 값이 변환됩니다. 각 층에서는 활성화 함수를 통해 비선형성이 부여되며, 최종적으로 출력층에서 예측값이 생성됩니다.


* 입력층: 원본 데이터 입력 -> 은닉층: 가중치(W)와 편향(b) 적용하여 값 변환 -> 활성화 함수: 변환된 값에 비선형성 부여 -> 출력층: 최종 예측값 생성


쉽게 설명하면, 마치 요리사가 레시피대로 요리를 만드는 것과 같습니다. 재료(입력값)를 가지고 썰고, 볶고, 간을 하는 등의 과정(층별 처리)을 거쳐 최종 요리(출력값)를 만듭니다.


2-2. 오차 계산 (Loss Calculation)

오차 계산은 손실 함수를 사용하여 예측값과 실제값의 차이를 측정합니다. 주로 사용되는 손실 함수로는 평균제곱오차(MSE)와 크로스 엔트로피(Cross Entropy)가 있습니다. MSE는 예측값과 실제값 차이의 제곱 평균을 계산하며, 크로스 엔트로피는 분류 문제에서 주로 사용됩니다.


*손실 함수(Loss Function) 사용 :

- MSE(평균제곱오차) = Σ(예측값 - 실제값)²/n

- Cross Entropy = -Σ(실제값 × log(예측값))


이는 손님의 피드백을 받는 과정과 같습니다. "음식이 너무 짜요"라는 피드백은 AI의 오차 계산과 같은데, 실제로 얼마나 짠지(예측값과 실제값의 차이)를 정확히 측정하는 것입니다.


2-3. 역전파 수행 (Backpropagation)

역전파는 계산된 오차를 신경망의 각 층으로 전파하는 과정입니다. 출력층에서 시작하여 각 층의 가중치가 오차에 미친 영향을 계산합니다. 이때 연쇄 법칙(Chain Rule)을 적용하여 각 가중치에 대한 오차의 기울기를 계산하고, 이 정보를 이전 층으로 전달합니다.


* 출력층 오차 계산 -> 각 층의 가중치가 오차에 미친 영향 계산 -> 연쇄 법칙(Chain Rule) 적용하여 기울기 계산 -> 각 층에 오차 기여도 전달


이 부분이 핵심인데요. 비유하면 요리가 실패한 원인을 거꾸로 찾아가는 과정입니다. 음식이 짰던 이유가 마지막에 넣은 간장 때문인지(출력층), 중간에 넣은 소금 때문인지(은닉층), 아니면 처음 재료의 간이 센 것인지(입력층)를 분석합니다.


2-4. 가중치 갱신 (Weight Update)

가중치 갱신은 계산된 기울기를 바탕으로 각 가중치를 조정하는 과정입니다. 새로운 가중치는 기존 가중치에서 학습률과 기울기의 곱을 뺀 값으로 업데이트됩니다. 이때 학습률은 가중치 조정의 크기를 결정하는 중요한 하이퍼파라미터입니다.


* W(new) = W(old) - learning_rate × ∂Error/∂W

- W: 가중치

- learning_rate: 학습률

- ∂Error/∂W: 오차에 대한 가중치의 기울기


해당 파트는 다음 요리에서는 간을 조절하는 것과 같습니다. 소금을 덜 넣거나(가중치 감소), 더 넣는(가중치 증가) 식으로 레시피를 수정합니다.


위와 같은 과정을 반복하는 연쇄법칙을 통하여 최적의 결과를 도출해내는 것입니다.


3. AI가 실수를 통해 배우는 방법


자, AI 딥러닝 기술의 핵심을 이해하셨나요?! 그래도 상당히 어렵죠. 지금부터는 쉽게 설명해 드리겠습니다.

위와 같은 과정은 마치 변호사가 피드백을 받고 피드백을 반영하여 문제사항을 개선하는 과정과도 유사합니다.

화면 캡처 2024-10-30 184942.png

구체적으로


3-1. 실수의 발견과 측정 : 순전파 (Forward Propagation), 오차 계산 (Loss Calculation)

여러분은 운전을 처음 배울 때를 기억하시나요? 처음 실습 때에는 브레이크를 너무 세게 밟아서 앞으로 쏠리거나, 깜빡이를 안 넣곤 했죠. 그때마다 교관님이 "브레이크를 이렇게 세게 밟으면 안 돼요" 또는 "깜빡이를 넣으세요"라고 지적해 주셨을 겁니다.


AI도 이와 비슷한 방식으로 학습합니다. 예를 들어, AI가 계약서를 검토하다가 "이 위약금 조항은 문제없습니다"라고 판단했는데, 실제로는 매우 위험한 조항이었다고 해볼까요?


이때 AI는 자신의 '실수'를 정확하게 측정합니다. 마치 운전할 때 "브레이크를 3초 더 일찍, 50% 더 부드럽게 밟았어야 했다"라고 구체적으로 파악하는 것처럼요.


3-2. 실수의 원인 추적 : 역전파 수행 (Backpropagation)

실수를 발견했다면, 그다음은 무엇일까요? 그렇죠, 왜 그런 실수를 했는지 '원인'을 찾아야 합니다.


예를 들어, 요리를 하다가 음식이 너무 짜게 됐다고 생각해 볼까요? 우리는 이럴 때 요리 과정을 하나씩 되짚어가며 원인을 찾습니다. 간장을 넣을 때 실수로 두 번 넣었던 걸까? 아니면 소금의 양을 잘못 쟀을까? 하면서 말이죠.


AI의 '역전파' 과정도 이와 같습니다. "위약금 조항을 제대로 판단하지 못한 것은 계약금액과의 비율을 제대로 확인하지 않아서인가? 아니면 업종별 특성을 고려하지 않아서인가?" 하며 거꾸로 추적해 가는 거죠.


3-3. 최적의 답을 찾아가는 과정 : 경사 하강법의 원리

이 부분은 등산을 하면서 계곡의 가장 낮은 지점을 찾아가는 과정과 비슷합니다. 깜깜한 밤에 손전등만 들고 계곡의 바닥을 찾아간다고 상상해 보세요. 우리는 어떻게 할까요?


1) 먼저, 현재 위치에서 발아래를 비춰보고,

2) 어느 방향으로 내려가면 될지 살펴보겠죠.

3) 그다음 조금씩 그 방향으로 발걸음을 옮기고,

4) 다시 주변을 살피고, 또 조금 더 내려가는 과정을 반복할 거예요.


AI의 '경사 하강법'도 정확히 이런 방식으로 작동합니다.


3-4. 학습 속도 조절 : 가중치 갱신 (Weight Update)

신입 변호사가 처음에는 신중하게 일을 배우다가 점차 자신감을 얻어 업무 속도를 높이는 것처럼, AI도 '학습률'이라는 개념을 통해 수정의 폭을 조절합니다. 이는 AI가 학습 방향 및 중요도를 설정하는 매우 중요한 요소입니다.


- 초기에는 큰 폭의 수정 (학습률 높음)

- 어느 정도 학습된 후에는 미세 조정 (학습률 낮음)


이 부분이 초기 설정이 한 번 잘 못되면, 아무리 질문을 다시 해도 무한의 굴레에 빠진듯한 느낌을 받게 됩니다. 이럴 때는 간단한 해결방법이 있습니다. 얼른 새창을 열고 해당 사안에 대해서 이전에 터득한 맥락과 설정을 기초로 다시 질문을 하시면 됩니다^^


4. 최적화 과정의 기법의 예


AI는 최적화를 위해 다양한 기법들이 사용됩니다.


주요 기법들을 살펴보면, 1) 확률적 경사 하강법(Stochastic gradient descent, SGD)은 계산 효율성이 높고, 2) Adam(Adaptive Moment Estimation) 은 학습 속도가 빠르며, 3) RMSprop(Root Mean Sqaure Propagation)는 학습 안정성이 높은 것이 특징입니다.

화면 캡처 2024-10-30 184052.png

아기가 걸음마를 배우는 과정을 떠올려보세요. 처음에는 덜덜 떨면서 겨우 서있기도 힘들어하다가, 조금씩 균형을 잡는 법을 배우고, 마침내 혼자서 걷고 뛸 수 있게 되죠.


AI의 학습 과정도 이와 비슷합니다. 계약서 검토 프로그램을 예로 들어볼까요?


1단계 (걸음마 단계)

- "제8조에 위약금이라는 단어가 있네요"

- (단순히 단어 찾기만 가능)

2단계 (기어가기 시작)

- "위약금이 계약금액의 50%네요"

- (숫자와 비율 계산 가능)

3단계 (첫걸음)

- "이 위약금 비율은 같은 업종 평균보다 20% 높습니다"

- (업종별 평균과 비교 가능)

최종 단계 (자유롭게 걷기)

- "이 위약금 조항은 본 계약의 성격과 업종 특성, 최근 판례 동향을 고려할 때 과도하며, 약관규제법상 무효가 될 가능성이 있습니다"

- (종합적인 법률 검토 가능)


역전파 알고리즘은 마치 우리가 시험을 보고, 틀린 문제를 분석하고, 부족한 부분을 보완하는 것과 같은 과정입니다. 다만, AI는 이 과정을 엄청난 속도로, 여러 번 반복하여 훨씬 빠르면서도 매우 정확하게 최적의 결론을 도출할 수 있죠.


5. 마치며


지금까지 AI가 어떻게 실수를 통해 학습하고 발전하는지 알아보았습니다. 마치 우리가 걸음마를 배우고, 자전거를 배우고, 운전을 배우는 것처럼, AI도 수많은 시행착오를 거치며 조금씩 발전합니다.


다만 한 가지 차이점이 있다면, AI는 우리보다 훨씬 빠르게, 그리고 더 많은 경우의 수를 학습할 수 있다는 점이죠. 우리가 하나의 계약서를 검토하는 동안, AI는 수천 개의 계약서를 검토하며 경험을 쌓을 수 있으니까요. AI가 우리가 놀랄 만큼 빠르게 답변을 제시해 주는 것도 바로 이러한 원리입니다.


여러분, 제가 처음에 AI에게 질문할 때, '맥락을 제시하고, 단계를 나누어서 질문하라'라고 알려드렸죠?


위와 같은 '역전파 알고리즘'의 원리를 이해하면, AI에게 질문을 할 때 먼저 큰 중심 주제나 맥락을 제시하고, 세부적인 단계로 질문을 좁혀가는 단계적인 방식으로 원하는 답변(결론)을 도출하는 것이 왜 효과적인지 이해할 수 있습니다.


다음 시간에는 더욱 재밌는 AI 주제로 찾아오겠습니다. 더 궁금한 점이 있다면 댓글로 남겨주세요!



keyword
작가의 이전글인공신경망의 기초 - 판사의 판단과정을 닮은 AI