[신경망-활성화 함수] 활성화 함수

2026. 1. 12. 21:51·AI/이론
반응형

👋 들어가기 전

 

지난 포스팅에서 우리는 퍼셉트론을 배웠고, 마지막 쯤에는 퍼셉트론의 한계를 공부하며 끝마쳤다.

 

다시 살펴보면, 퍼셉트론은 가중치를 설정하는 작업을 사람이 수동적으로하고 있다.

 

신경망은 가중치에 대한 적절한 값을 데이터로부터 자동으로 학습하는 능력을 갖추고 있다.

 

이 특징이 신경망의 중요한 특징이라는 것을 기억하면서, 오늘의 포스팅을 시작해보자.


🏁 학습할 내용

  • 신경망의 구조
  • 활성화 함수
  • 대표적인 활성화 함수 종류

🧠 신경망

 

🧩역할

뉴런을 층층이 쌓아 올리고, 가중치와 편향을 학습하여
입력을 아웃풋에 매핑하는 머신 러닝 모델(알고리즘)

🧱 구조

출처: https://www.ibm.com/kr-ko/think/topics/neural-networks

  • 입력층
    • 말 그대로 입력(준비물)이 들어오는 층
  • 은닉층
    • 입력층에서 전달된 데이터를 새로운 값으로 변환하는 뉴런이 있는 층
    • 이 때, (입력 * 가중치)의 합 + 편향(선형 변환)이 일어남
  • 출력층
    • 은닉층에서 선형변환된 값을, 비선형 활성화 함수를 추가하여, 최종 결과물을 생성하는 층
  • 가중치를 갖는 층 개수 = (입력층 + 은닉층 + 출력층) -1

🤖 활성화 함수 (Activation Function)

 

🧨 퍼셉트론 표현식 복습 및 활성화 함수의 등장

퍼셉트론 알고리즘는 (입력 x 가중치)의 합에 편향을 더한 값을 결과로 썼다.

 

신경망은 여기서, 한 단계 더 과정이 있는데, 바로 활성화 함수를 단계를 한번 더 거친다.

 

함수는 어떤 입력에 대해서, 정해진 계산을 거쳐 결과를 뱉어내는데,

 

여기서 입력은 퍼셉트론 알고리즘의 결과 즉, y가 되고 결과는 활성화 여부를 뱉어낸다.

 

활성화 함수는 앞으로 h(x)로 표현된다. 

 

🧩역할

입력 신호의 총합을 출력 신호로 변환하는 함수
다르게 말하면 호라성화를 일으킬지를 결정

 

🚀 특징

  • 비선형성
  • 입력 값에 비례하여 출력을 조정 및 특정 범위 내에서 출력을 제한
  • 신경망 학습에 매우 중요한 역할

 

 

🙋 왜 활성화 함수는 비선형성이여야 할까?

 

먼저, 우리가 퍼셉트론의 한계를 XOR 구현여부로 예로 들었다.

퍼셉트론은 선형적인 특징이 있어, NAND, AND, OR과 같이 직선을 그어

 

영역을 구분하기 쉽지만, XOR같이 직선으로 표현할 수 없는 구분은 힘들었다.

 

같은이유다, 선형은 아무리 겹쳐도 은닉층이 없는 것과 같다.

아래, 2개의 선형함수를 쌓아보자.

 

2개의 선형 함수 레이어를 쌓으면, 결과도 역시 또다른 선형 형태가 된다.

 

복잡한 문제를 해결하는데 한계가 분명하다.

 


🍋‍🟩대표적인 활성화 함수 종류

 

🪜계단 함수

 

🧩역할

임계값을 기준으로 출력이 바뀌는 함수

📊 코드 및 그래프

import numpy as np
import matplotlib.pylab as plt

def step_function(x):
    return np.array(x > 0, dtype=int) 

x = np.arange(-5.0, 5.0, 0.1) # -5 ~ 5까지 step = 0.1
y = step_function(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1) #y축 범위 지정
plt.show()

 

 

📈시그모이드 함수

 

🧩역할

 

부드럽게(매끄럽게) 실수를 흘려주는 함수

 

📊 코드 및 그래프

import numpy as np
import matplotlib.pylab as plt

def sigmoid(x):
    return 1 / (1+ np.exp(-x)) # 

x = np.arange(-5.0, 5.0, 0.1) # -5 ~ 5까지 step = 0.1
y = sigmoid(x)
plt.plot(x,y)
plt.ylim(-0.1,1.1) #y축 범위 지정
plt.show()

 

0️⃣ReLU(Rectified Linear Unit)함수

 

🧩역할

 

0을넘의면 그대로 흘려주고, 0이하면 0으로 출력

 

📊 코드 및 그래프

 

import numpy as np
import matplotlib.pylab as plt

def relu(x):
    return np.maximum(0,x) 

x = np.arange(-5.0, 5.0, 0.1) # -5 ~ 5까지 step = 0.1
y = relu(x)
plt.plot(x,y)
plt.ylim(-1,5) #y축 범위 지정
plt.show()

 


😀 소감 및 마무리

 

활성화 함수가 무엇인지, 역할이 뭔지, 대표적인게 뭐가 있는 지 알아봤다.

 

추후에 배울 활성화 함수가 있다면, 이렇게 간단하지 않을테니 그거는 별도의 포스팅할 듯


출처

https://www.ibm.com/kr-ko/think/topics/neural-networks

 

신경망이란 무엇인가요? - 인공 신경망(ANN) 개념 | IBM

신경망을 통해 프로그램은 패턴을 인식하고 인공 지능, 머신 러닝 및 딥 러닝의 일반적인 문제를 해결할 수 있습니다.

www.ibm.com

https://wikidocs.net/272399

 

반응형

'AI > 이론' 카테고리의 다른 글

[신경망-학습] 학습이란?  (0) 2026.01.24
[신경망-MNIST] MNIST 데이터셋  (1) 2026.01.22
[신경망-활성화 함수] 소프트맥스 함수  (1) 2026.01.14
[신경망] 3층 신경망 구현해보기  (0) 2026.01.13
퍼셉트론  (0) 2026.01.10
'AI/이론' 카테고리의 다른 글
  • [신경망-MNIST] MNIST 데이터셋
  • [신경망-활성화 함수] 소프트맥스 함수
  • [신경망] 3층 신경망 구현해보기
  • 퍼셉트론
Hamp
Hamp
남들에게 보여주기 부끄러운 잡다한 글을 적어 나가는 자칭 기술 블로그입니다.
  • Hamp
    Hamp의 분리수거함
    Hamp
  • 전체
    오늘
    어제
    • 분류 전체보기 (325) N
      • CS (30)
        • 객체지향 (2)
        • Network (7)
        • OS (6)
        • 자료구조 (1)
        • LiveStreaming (3)
        • 이미지 (1)
        • 잡다한 질문 정리 (0)
        • Hardware (2)
        • 이론 (6)
        • 컴퓨터 그래픽스 (0)
      • Firebase (3)
      • Programing Langauge (41)
        • swift (34)
        • python (6)
        • Kotlin (1)
      • iOS (133) N
        • UIKit (37)
        • Combine (1)
        • SwiftUI (33) N
        • Framework (7)
        • Swift Concurrency (22)
        • Tuist (6)
        • Setting (11)
        • Modularization (1)
        • Instruments (6)
      • PS (59)
        • 프로그래머스 (24)
        • 백준 (13)
        • LeetCode (19)
        • 알고리즘 (3)
      • Git (18)
        • 명령어 (4)
        • 이론 (2)
        • hooks (1)
        • config (2)
        • action (7)
      • Shell Script (2)
      • Linux (6)
        • 명령어 (5)
      • Spring (20)
        • 어노테이션 (6)
        • 튜토리얼 (13)
      • CI-CD (4)
      • Android (0)
        • Jetpack Compose (0)
      • AI (9)
        • 이론 (9)
        • MCP (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring
    boostcamp
    SwiftUI
    dispatch
    프로그래머스
    concurrency
    property
    Tuist
    CS
    IOS
    dfs
    protocol
    AVFoundation
    GIT
    Swift
    lifecycle
    UIKit
    백준
    투포인터
    dp
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Hamp
[신경망-활성화 함수] 활성화 함수
상단으로

티스토리툴바