[Neural Network 2] 인공신경망과 퍼셉트론2

admin | | 조회 15


[주요 목차]

퍼셉트론이 입력을 어떻게 처리하나요

오차를 줄이는 학습 알고리즘의 직관

실제 숫자로 따라 하는 가중치 업데이트


인공신경망 공부를 시작하면 가장 먼저 만나는 개념이 퍼셉트론인데요. 그런데 “학습한다”는 말이 정확히 어떤 과정을 의미하는지 헷갈리는 분들이 많아요. 오늘은 퍼셉트론 학습 알고리즘을 날씨 예측 예시로 풀어서 설명해 드릴게요. 이 글을 읽고 나면 인공신경망이 데이터를 보고 연결가중치를 어떻게 조금씩 바꿔가는지, 왜 그렇게 해야 하는지까지 자연스럽게 이해하게 될 거예요. 초보자도 따라갈 수 있도록 수식 하나하나를 쉽게 풀어 보겠습니다.


[Neural Network 2] 인공신경망과 퍼셉트론2 - 실전 화면 1 - 인공신경망[Neural Network 2] 인공신경망과 퍼셉트론2 · 실전 화면 1

퍼셉트론이 입력을 어떻게 처리하나요

퍼셉트론은 두 개의 입력을 받아서 하나의 출력을 내는 가장 단순한 신경망이에요. 예를 들어 아침에 관찰한 ‘구름 양’과 ‘바람 세기’를 0~1 사이 숫자로 바꿔 넣는다고 생각해 보세요. 구름이 거의 없고 바람도 약하면 0에 가까운 값, 구름이 많고 바람이 세면 1에 가까운 값을 줍니다.

이 두 숫자가 각각 입력 x1, x2가 되고, 각 입력에는 연결가중치(웨이트) w1, w2가 붙어요. 퍼셉트론은 x1×w1 + x2×w2 값을 계산한 뒤, 이 합이 0.5를 넘으면 1(비), 넘지 않으면 0(맑음)으로 판단합니다.

처음에는 w1과 w2를 0.3, 0.2처럼 아무 숫자로 정해 놓기 때문에, 실제 날씨와 예측이 자주 어긋나요. 이때 예측이 틀린 정도를 ‘오차’라고 부르는데, 이 오차를 줄이는 과정이 바로 퍼셉트론의 학습입니다.

초보자라면 “가중치가 입력과 얼마나 잘 맞는지를 조절하는 과정”이라고 기억해 두세요. 가중치가 커지면 그 입력이 출력에 더 큰 영향을 주고, 작아지면 영향이 줄어듭니다.

[Neural Network 2] 인공신경망과 퍼셉트론2 - 본문 이미지 2 - 인공신경망[Neural Network 2] 인공신경망과 퍼셉트론2 · 본문 이미지 2

오차를 줄이는 학습 알고리즘의 직관

퍼셉트론 학습 알고리즘의 핵심 공식은 간단해요. 새 가중치 = 현재 가중치 + (입력값 × 오차 × 학습률). 여기서 학습률은 보통 0.01처럼 아주 작은 숫자를 씁니다.

오차가 0이면 가중치를 바꿀 필요가 없어요. 그런데 오차가 있다면, 입력값이 클수록 그 입력이 오차를 만든 데 더 크게 기여했다고 보고 가중치를 더 많이 바꿔줍니다.

비유를 하나 들어볼게요. 하루 10만원을 벌기로 했는데, 시급 1,000원짜리 알바 7시간과 시급 10,000원짜리 알바 1시간을 하면 17,000원밖에 못 벌어요. 오차가 83,000원입니다. 여기서 시급이 높은 알바(큰 입력값)에 더 많은 시간을(더 큰 가중치) 투입하면 수입이 확 늘어나죠.

이와 똑같이 퍼셉트론도 큰 입력값에 더 큰 가중치를 주면서 오차를 줄여 나갑니다. 학습률이 작기 때문에 한 번에 크게 바뀌지 않고, 아주 조금씩 여러 번 반복하며 천천히 수렴해요. 이런 점진적 변화가 나중에 CNN이나 GPT 같은 복잡한 모델의 학습 원리와도 이어집니다.

[Neural Network 2] 인공신경망과 퍼셉트론2 - 주요 포인트 3 - 인공신경망[Neural Network 2] 인공신경망과 퍼셉트론2 · 주요 포인트 3

실제 숫자로 따라 하는 가중치 업데이트

실제로 숫자를 넣어 계산해 볼게요. 현재 w1=0.3, w2=0.2, 학습률=0.01, 오차=1이라고 가정합시다.

첫 번째 업데이트:
w1’ = 0.3 + 0.8 × 1 × 0.01 = 0.308
w2’ = 0.2 + 0.6 × 1 × 0.01 = 0.206

이제 새로운 가중치로 다시 계산하면 출력은 여전히 0이지만, 오차가 점점 줄어들어요. 세 번째 반복에서는 오차가 0이 되어 가중치가 더 이상 변하지 않습니다.

이 과정을 데이터셋 전체에 대해 수십 번, 수백 번 반복하면 w1과 w2는 0.5 근처로 수렴하면서 날씨를 잘 예측하는 선이 만들어집니다.

실전 팁: 처음에는 학습률을 0.01 정도로 작게 시작하세요. 너무 크면 오차가 오히려 커질 수 있어요. 또한 데이터가 0과 1 사이로 정규화되어 있어야 학습이 안정적입니다. 실제 프로젝트에서는 이 과정을 라이브러리(예: PyTorch, TensorFlow)가 자동으로 해주지만, 내부 원리를 이해하면 하이퍼파라미터를 조정할 때 훨씬 수월해집니다.


[자주 묻는 질문]

퍼셉트론 학습률은 어떻게 정하나요?

학습률은 보통 0.001~0.01 사이에서 시작하는 게 안전해요. 값이 너무 크면 가중치가 크게 흔들려서 학습이 불안정해지고, 너무 작으면 학습 속도가 느려집니다. 실제로는 0.01로 시작한 뒤 검증 데이터의 오차 추이를 보면서 10배씩 조정해 보는 방법을 추천해요.

퍼셉트론으로 날씨 예측 외에 어떤 문제를 풀 수 있나요?

AND, OR 같은 간단한 논리 연산이나, 두 개의 특징으로 나눌 수 있는 이진 분류 문제에 적합합니다. 예를 들어 스팸 메일 여부, 대출 승인 여부처럼 입력이 두 개 이하이고 선형으로 구분 가능한 경우에 먼저 시도해 볼 수 있어요.

가중치가 0.5로 수렴하면 항상 좋은 성능을 보장하나요?

퍼셉트론은 선형 분리가 가능한 데이터에서만 제대로 작동합니다. XOR처럼 선형으로 구분되지 않는 문제는 학습이 불가능해요. 이런 경우에는 은닉층이 있는 다층 퍼셉트론이나 다른 모델을 사용해야 합니다.

목록
글쓰기
한국 서버호스팅
전체보기 →

댓글 0