Search

240613_0942_인공신경망(Artificial Neural Network, ANN)이란?

가. 인공신경망의 개념, 구성요소, 역할

개념
인공신경망(Artificial Neural Network, ANN)은 인간의 뇌 신경망에서 영감을 받아 만들어진 컴퓨팅 시스템이다.
ANN은 데이터 학습, 패턴 인식, 예측 등 다양한 인공지능 작업을 수행하는 데 사용된다.
이 시스템은 다수의 상호 연결된 인공 뉴런으로 구성되며, 각 뉴런은 입력을 받아 처리한 후 출력을 생성한다.
구성요소:
1.
뉴런(Neuron):
기본 처리 단위로, 입력 신호를 받아 가중치를 곱한 후 활성화 함수를 통해 출력 신호를 생성한다.
2.
입력층(Input Layer):
외부 데이터를 신경망에 입력하는 층으로, 각 입력 노드는 하나의 특성 데이터를 나타낸다.
3.
은닉층(Hidden Layer):
입력층과 출력층 사이에 위치한 층으로, 입력 데이터를 처리하여 더 높은 수준의 특징을 추출한다. 은닉층의 수와 각 층의 뉴런 수는 네트워크의 복잡도를 결정한다.
4.
출력층(Output Layer):
신경망의 최종 출력값을 생성하는 층으로, 분류 문제에서는 각 클래스에 대한 확률을, 회귀 문제에서는 연속적인 값을 출력한다.
5.
가중치(Weights):
각 연결(뉴런 간의 연결)마다 할당된 값으로, 입력 신호의 중요도를 조절한다. 학습 과정에서 갱신된다.
6.
편향(Bias):
뉴런의 입력값에 추가되는 상수로, 활성화 함수를 통한 출력을 조절하는 데 사용된다.
역할:
패턴 인식: 이미지, 음성, 텍스트 등 다양한 형태의 데이터에서 패턴을 학습하여 인식한다.
예측: 시계열 데이터나 다른 형태의 데이터를 기반으로 미래 값을 예측한다.
분류: 주어진 데이터가 어떤 클래스에 속하는지 분류한다.
최적화: 복잡한 문제를 최적화하여 최적의 해를 찾는다.

나. 피드포워드 뉴럴 네트워크(Feedforward Neural Network) 개념 및 절차

개념: 피드포워드 뉴럴 네트워크는 인공신경망의 한 유형으로, 데이터가 입력층에서 시작하여 은닉층을 거쳐 출력층으로 한 방향으로만 전달되는 구조를 가지고 있다. 이 네트워크는 순방향으로 데이터를 처리하며, 피드백 루프가 없다.
절차:
1.
데이터 입력(Input):
입력층에 데이터를 입력한다. 각 입력 노드는 하나의 특성을 나타낸다.
2.
가중치 적용(Weight Application):
각 입력값에 가중치를 곱하여 각 은닉층 뉴런으로 전달한다.
3.
활성화 함수 적용(Activation Function):
은닉층의 각 뉴런은 입력값의 합을 계산하고 활성화 함수를 적용하여 출력값을 생성한다.
4.
출력층 계산(Output Layer Calculation):
은닉층을 통과한 데이터는 출력층으로 전달되어 최종 출력을 생성한다.
5.
결과 도출(Output):
출력층에서 계산된 값이 최종 결과로 도출된다. 이는 분류 문제의 경우 각 클래스에 대한 확률값일 수 있고, 회귀 문제의 경우 연속적인 값일 수 있다.

다. 역전파(Backpropagation) 개념 및 절차

개념: 역전파는 인공신경망의 학습 과정에서 오류를 최소화하기 위해 가중치를 조정하는 알고리즘이다. 출력값과 실제값 간의 오차를 계산하여, 이 오차를 네트워크를 거슬러 올라가며 각 가중치에 대해 기울기를 계산하고, 이를 통해 가중치를 갱신한다.
절차:
1.
순전파(Forward Propagation):
입력 데이터를 통해 네트워크를 통과하며 출력을 계산한다.
2.
오차 계산(Error Calculation):
출력값과 실제값 간의 오차를 계산한다. 보통 손실 함수(loss function)를 사용한다.
3.
오차 역전파(Error Backpropagation):
출력층부터 시작하여 역방향으로 오차를 전파한다. 각 층의 가중치에 대한 오차의 기울기(gradient)를 계산한다.
4.
가중치 갱신(Weight Update):
기울기를 사용하여 가중치를 갱신한다. 학습률(learning rate)을 곱하여 가중치의 변경 정도를 조절한다.
5.
반복(Iteration):
위 과정을 여러 번 반복하여 오차를 최소화하고, 네트워크가 데이터에 잘 맞도록 학습시킨다.

라. 활성화 함수의 종류 및 역할

활성화 함수의 역할: 활성화 함수는 뉴런의 출력값을 비선형적으로 변환하여, 신경망이 복잡한 패턴을 학습할 수 있게 한다. 활성화 함수가 없다면, 신경망은 선형 회귀 모델과 동일하게 작동하며, 비선형 문제를 해결할 수 없다.
종류:
1.
시그모이드 함수(Sigmoid Function):
출력값을 0과 1 사이로 변환한다. 주로 이진 분류 문제에서 사용된다.
수식: σ(x)=11+ex\sigma(x) = \frac{1}{1 + e^{-x}}
2.
탄젠트 함수(Tanh Function):
출력값을 -1과 1 사이로 변환한다. 시그모이드 함수보다 중앙값이 0이라 학습이 더 잘 되는 경우가 많다.
수식: tanh(x)=exexex+extanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
3.
렐루 함수(ReLU Function):
입력이 양수면 그대로 출력하고, 음수면 0을 출력한다. 계산이 간단하고, 기울기 소실 문제(vanishing gradient problem)를 완화하는 데 도움이 된다.
수식: ReLU(x)=max(0,x)ReLU(x)=max(0,x)
4.
리키 렐루 함수(Leaky ReLU Function):
ReLU 함수의 변형으로, 음수 입력에 대해 작은 기울기를 부여한다.
수식: Leaky ReLU(x)=max(0.01x,x)Leaky ReLU(x)=max(0.01x,x)
5.
소프트맥스 함수(Softmax Function):
다중 클래스 분류 문제에서 사용되며, 각 클래스에 대한 확률을 출력한다.
수식: σ(z)i=ezijezjσ(z)_i=\frac{e^{z_i}}{\sum_{j} e^{z_j}}
각 활성화 함수의 선택은 문제의 특성, 신경망의 구조, 학습 속도 등에 따라 달라질 수 있다.

안녕하세요

한국전자기술연구원 김영광입니다.
관련 기술 문의와 R&D 공동 연구 사업 관련 문의는 “glory@keti.re.kr”로 연락 부탁드립니다.

Hello

I'm Yeonggwang Kim from the Korea Electronics Research Institute.
For technical and business inquiries, please contact me at “glory@keti.re.kr”