티스토리 뷰
안녕하세요! 이번 글에서는 신경망 딥러닝의 기초 개념인 퍼셉트론과 다양한 활성화 함수들에 대해 정리해 보겠습니다.
1. 퍼셉트론 (Perceptron)이란?
퍼셉트론은 가장 기본적인 인공 신경망 모델로, 사람이 뉴런을 통해 정보를 전달받는 방식을 본떠 만들어졌습니다.
컴퓨터가 숫자와 연산을 통해 데이터를 처리하듯이, 퍼셉트론도 입력된 데이터를 보고, 이를 계산한 후,
특정 기준을 넘어서는 경우 신호를 보내는 방식으로 동작합니다.
퍼셉트론의 동작 과정

퍼셉트론은 다음과 같은 과정을 거칩니다.
- 입력 데이터를 받음
- 각 입력에 가중치(Weight)를 곱함
- 모든 결과를 더한 후, 편향(Bias)을 더함 ( 초록색 부분 )
- 활성화 함수(Activation Function)를 사용해 최종 출력을 결정
이 과정을 수식으로 나타내면 다음과 같습니다.

- W: 가중치 (Weight)
- X: 입력 데이터 (Input)
- b: 편향 (Bias)
- f: 활성화 함수 (Activation Function)
( 여기에서 W,X는 벡터입니다.)
+모델에서 학습이 된다는 것의 의미)
퍼셉트론도 하나의 모델이라 할 수 있습니다.
앞으로 배우게 될 모든 신경망 모델의 기초가 되므로, 퍼셉트론을 예로 들어 설명해 보겠습니다.
모델을 학습시킨다는 것은 최적의 가중치(Weight)를 찾아가는 과정입니다.
그렇다면, 이 가중치는 어떻게 찾아갈까요?
- 예측과 실제 값을 비교
- 모델은 입력을 받아 계산을 수행한 후, 예측 값을 만듭니다. (입력 → 가중치 적용 → 활성화 함수 → 출력(예측값))
- 이 예측 값이 실제 정답과 얼마나 차이가 나는지 확인합니다.
- 가중치를 조정하여 더 나은 결과를 만듦
- 차이를 줄이기 위해 가중치를 조금씩 조정합니다.
- 조정을 반복할수록 모델이 점점 더 정답에 가까운 결과를 예측하게 됩니다.
즉, 모델 학습이란 더 나은 예측을 할 수 있도록 가중치를 계속 조정하는 과정이라고 이해하면 됩니다!
편향 (Bias)의 역할
퍼셉트론에서 편향(Bias)은 모델이 특정한 방향으로 학습될 수 있도록 조정하는 역할을 합니다.
예를 들어, 시험 점수가 70점 이상이면 합격, 미만이면 불합격이라고 할 때,
이 기준을 75점이나 65점으로 바꾸고 싶다면 어떻게 해야 할까요?
이럴 때 편향을 추가하면 기준을 조정할 수 있습니다.

- 편향이 0이면 기준이 70점
- 편향이 -5이면 기준이 75점
- 편향이 +5이면 기준이 65점
즉, 편향은 결정 기준을 조정하는 역할을 하며, 학습이 진행되면서 최적의 값으로 조정됩니다.
2. 활성화 함수 (Activation Function)란?
퍼셉트론이 예측을 수행할 때, 단순히 입력 값과 가중치의 곱을 더하는 것만으로는 충분하지 않습니다.
비선형적인 문제를 해결하려면 추가적인 변환이 필요합니다.
활성화 함수는 이러한 변환을 수행하는 역할을 합니다.
즉, 입력을 받은 후, 이 값을 적절한 범위로 변환하여 다음 층으로 전달합니다.
활성화 함수가 없다면 퍼셉트론은 단순한 선형 회귀 모델과 다를 바 없게 되며, 복잡한 문제를 해결할 수 없습니다.
Ex)
선형적인 문제: 한 개의 직선으로 구분할 수 있는 문제 (예: "시험 점수 70점 이상이면 합격")
비선형적인 문제: 직선 하나로 구분할 수 없는 문제 (예: "시험 점수와 출석률이 모두 높아야 합격")
3. 주요 활성화 함수
활성화 함수에는 여러 가지가 있으며, 각각의 특징과 쓰임새가 다릅니다.
3.1 계단 함수 (Step Function)
계단 함수는 가장 단순한 활성화 함수입니다.
특정 임계값을 기준으로 출력을 0 또는 1로 설정하는 함수입니다.
- 만약 입력 값이 특정 기준보다 크면 1을 출력
- 기준보다 작으면 0을 출력
import numpy as np
def step_function(x):
return np.array(x > 0, dtype=int)
현재는 거의 사용되지 않지만, 퍼셉트론 개념을 배울 때 가장 먼저 접하는 활성화 함수입니다.

3.2 시그모이드 함수 (Sigmoid Function)
시그모이드 함수는 입력 값을 0과 1 사이의 값으로 변환하는 역할을 합니다.
- 숫자가 클수록 1에 가까운 값 출력
- 숫자가 작을수록 0에 가까운 값 출력

import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
이 함수는 확률적 해석이 가능하기 때문에 이진 분류 문제에서 많이 사용됩니다.

3.3 렐루 함수 (ReLU, Rectified Linear Unit)
렐루 함수는 현재 가장 널리 사용되는 활성화 함수 중 하나입니다.
- 입력이 양수이면 그대로 출력
- 입력이 0 이하이면 0을 출력

def relu(x):
return np.maximum(0, x)
장점: 연산 속도가 빠르고 깊은 신경망에서 잘 작동함
단점: 입력 값이 0 이하일 경우 뉴런이 학습되지 않는 문제가 발생할 수 있음 (Dead Neuron Problem)

3.4 리키 렐루 함수 (Leaky ReLU)
리키 렐루(Leaky ReLU) 함수는 렐루(ReLU) 함수의 단점을 보완한 형태입니다.
렐루 함수는 입력이 0 이하일 때 출력을 0으로 만들어 학습이 멈추는 문제가 있는데,
리키 렐루 함수는 작은 기울기(α)를 추가하여 음수 값도 학습될 수 있도록 합니다.
- 입력이 양수이면 그대로 출력
- 입력이 음수이면 작은 값(, 일반적으로 )을 출력

def leaky_relu(x, a=0.01):
return np.where(x > 0, x, a * x)
장점: 음수 구간에서도 작은 값이 유지되어 뉴런이 죽는 문제를 완화함
단점: 값이 너무 작으면 효과가 미미할 수 있음

3.5 소프트맥스 함수 (Softmax Function)
소프트맥스 함수는 다중 클래스 분류 문제에서 사용됩니다.
- 여러 개의 클래스 중 가장 가능성이 높은 클래스를 선택할 때 사용됨
- 모든 출력 값의 합이 1이 되도록 변환

def softmax(x):
exp_x = np.exp(x - np.max(x))
return exp_x / exp_x.sum(axis=0)

3.6 하이퍼볼릭 탄젠트 함수 (Tanh Function)
하이퍼볼릭 탄젠트 함수(𝑡𝑎𝑛ℎ)는 시그모이드 함수와 비슷하지만, 출력 범위가 -1에서 1 사이입니다.
- 입력 값이 클수록 1에 가까운 값 출력
- 입력 값이 작을수록 -1에 가까운 값 출력
- 0 근처에서는 시그모이드보다 기울기가 커서 학습이 더 잘됨

import numpy as np
def tanh(x):
return np.tanh(x)
장점: 시그모이드보다 기울기 소실 문제가 적고, 값이 0을 중심으로 대칭적
단점: 극단적인 값에서는 여전히 기울기 소실 문제가 발생

요약을 해보자면!
- 퍼셉트론은 인공 신경망의 가장 기본적인 형태이다.
- 모델을 학습시킨다는 것은, 최적의 가중치를 찾아가는 과정이다.
- 활성화 함수는 입력 값을 변환하여 복잡한 문제를 해결할 수 있도록 도와준다.
- 주요 활성화 함수로는 계단 함수, 시그모이드 함수, 탄젠트 하이퍼볼릭 함수, 렐루 함수, 리키 렐루 함수, 소프트맥스 함수 등이 있다.
라는 내용입니다!
저도 배우면서 정리해 나가는 과정이기 때문에,
혹시 잘못된 정보나 보완할 내용이 있다면 댓글로 알려주세요!
'신경망딥러닝' 카테고리의 다른 글
[신경망딥러닝] Fashion MNIST를 이용하여 MLP모델 만들기 (0) | 2025.03.14 |
---|
- Total
- Today
- Yesterday
- raw회전이동
- rawtobmp
- fashionMNIST
- bmptoraw
- 정보전송
- BMP
- 회전이동
- activationfunction
- errordetecting
- perceptron
- DEEPLEARNING
- bmp헤더
- 다층퍼셉트론
- 의류분류
- 현대대수학
- bias
- generator
- klein4group
- 오블완
- sungroup
- 신경망딥러닝
- 티스토리챌린지
- 퍼셉트론
- 편향
- 활성화함수
- cyclicgroup
- RAW
- errorcorrecting
- 영상처리 #기초
- MLP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |