활성화 함수
신경망에서 활성화 함수의 역할, 유형, 그리고 AI 및 머신 러닝에서의 실제 응용 분야를 알아보세요.
활성화 함수는 신경망 내에서 중요한 수학적 구성 요소입니다.
신경망(NN)의 중요한 수학적 구성 요소입니다.
특정 뉴런을 활성화할지 비활성화할지를 결정하는 중요한 수학적 구성 요소입니다. 뉴런의 '게이트키퍼'라고도 불리는 이 함수는 입력의 가중치 합계를 받아
입력의 가중 합계를 받아 다음 계층으로 전달할 출력 신호로 변환합니다. 이 변환
비선형성을 도입하는 데 필수적입니다.
비선형성을 도입하는 데 필수적입니다. 활성화
함수가 없다면, 신경망은 입력과 상관없이 단순한 선형 회귀 모델처럼 작동합니다.
선형 회귀 모델처럼 작동합니다.
레이어 수에 관계없이 이러한 제한으로 인해 모델이 손으로 쓴 숫자의 곡선이나
손글씨 숫자나 얼굴의 특징과 같은 복잡한 패턴을 학습하지 못하게 됩니다.
핵심 기능 및 유형
활성화 함수의 주요 목적은 입력 값을 원하는 범위에 매핑하고 복잡성을 도입하는 것입니다.
모델 아키텍처의 특정 요구 사항과 당면한 작업에 따라 다양한 함수가 선택됩니다,
컴퓨터 비전(CV) 또는 언어
처리와 같은 특정 요구 사항에 따라 다양한 함수가 선택됩니다.
-
바이너리 스텝: 입력값이 특정 값을 초과하면 1을 출력하고 그렇지 않으면 0을 출력하는 임계값 기반 함수
을 출력합니다. 이는 인공 뉴런의 역사에서 탐구된 개념인 생물학적 뉴런의 발화를 모방한 것입니다.
인공 뉴런의 역사에서 탐구된 개념입니다.
-
ReLU(정류 선형 단위):
숨겨진 레이어에 가장 일반적으로 사용되는 옵션입니다. 입력이 양수이면 직접 출력하고, 양수이면 0을 출력합니다.
를 출력합니다. 이러한 효율성은 모델 학습을 가속화하고
사라지는 그라데이션 문제를 완화하는 데 도움이 됩니다.
-
시그모이드: 0과
1 사이의 값을 부등식화하여 이진 분류 모델의 출력 레이어에서 확률을 예측하는 데 이상적입니다.
-
SiLU(시그모이드 선형 단위):
다음과 같은 최신 아키텍처에서 사용되는 부드럽고 비단조로운 함수입니다.
YOLO11. 이 함수는 기존의 ReLU에 비해 깊은 네트워크에서
네트워크에서 더 나은 그라데이션 흐름을 가능하게 합니다.
-
소프트맥스: 원시 숫자 벡터를
숫자 벡터를 확률 분포로 변환하며, 일반적으로 다중 클래스 이미지 분류에
이미지 분류에 일반적으로 사용됩니다.
AI의 실제 적용 사례
활성화 기능은 최신 AI 시스템의 의사 결정 기능을 뒷받침하는 엔진입니다. 어떤 기능을 선택하느냐
실시간 추론의 정확성과 속도에 직접적인 영향을 미칩니다.
실시간 추론.
-
자율 주행 차량: 자율 주행 자동차 시스템에서
객체 감지 모델은 비디오 피드를 처리하여
보행자와 교통 표지판을 식별합니다. 이러한 네트워크는 고해상도 이미지 데이터를 밀리초 단위로 처리하기 위해 숨겨진 계층에서
레이어에서 고해상도 이미지 데이터를 밀리초 단위로 처리합니다. 출력 레이어에서는 Softmax를 사용하여 물체를 분류할 수 있습니다,
자율주행 차량이 제동 또는 가속 여부를
제동 또는 가속을 결정할 수 있습니다.
-
의료 진단: 의료 이미지 분석
의료 이미지 분석에서 AI 모델은
이상 징후를 detect 위해 엑스레이 또는 MRI 스캔을 분석합니다. 종양 탐지용으로 훈련된 모델은 최종 레이어에서 시그모이드 함수를 사용하여
최종 레이어에서 확률 점수(예: 0.95)를 출력하여 양성 진단의 가능성이 높음을 나타낼 수 있습니다. 이
정밀도는 의사가 정보에 입각한 의사 결정을 내리는 데 도움이 됩니다.
의료 분야의 AI.
구현 예시
개발자는 다음과 같은 라이브러리를 사용하여 활성화 기능을 쉽게 적용할 수 있습니다.
PyTorch. 다음 예제는 서로 다른
함수가 동일한 입력 데이터를 어떻게 변환하는지 보여줍니다.
import torch
import torch.nn as nn
# Sample data: a tensor with negative, zero, and positive values
data = torch.tensor([-2.0, 0.0, 2.0])
# Define activation functions
relu = nn.ReLU()
sigmoid = nn.Sigmoid()
# Apply functions to the data
# ReLU turns negatives to 0; keeps positives unchanged
print(f"ReLU Output: {relu(data)}")
# Expected: tensor([0., 0., 2.])
# Sigmoid squashes values between 0 and 1
print(f"Sigmoid Output: {sigmoid(data)}")
# Expected: tensor([0.1192, 0.5000, 0.8808])
구현에 대한 자세한 내용은
비선형 활성화에 대한PyTorch 문서를 참조하세요.
관련 용어 구분하기
활성화 기능을 학습 과정의 다른 기본 구성 요소와 구별하는 것이 도움이 됩니다:
-
활성화 함수 대 손실 함수:
활성화 함수는 뉴런의 출력을 결정하기 위해 포워드 패스 중에 작동합니다. 이와 대조적으로 손실 함수
(평균 제곱 오차 등)은 포워드 패스 마지막에 작동하여 모델의 예측과 실제 목표 사이의 오차를 계산합니다.
오차를 계산합니다.
-
활성화 기능 대
최적화 알고리즘:
활성화 함수는 출력 모양을 정의하는 반면, 최적화 알고리즘은 (
스토캐스틱 그라데이션 하강)
은 해당 출력에서 파생된 그라데이션을 기반으로 모델의 가중치를 업데이트하는 방법을 결정합니다. 이 관계에 대한 자세한 내용은
이 관계에 대한 자세한 내용은
Google 머신 러닝 용어집을 참조하세요.
-
활성화 함수 대 파라미터:
매개변수weights and biases)는 학습 중에 학습되고 업데이트됩니다. 활성화 함수는 일반적으로 고정되어 있습니다.
고정된 수학적 연산이지만, PReLU와 같은 일부 고급 유형에서는 학습 가능한 매개변수를
를 사용할 수 있습니다.