가. 인공신경망의 개념, 구성요소, 역할
개념
•
인공신경망(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 사이로 변환한다. 주로 이진 분류 문제에서 사용된다.
•
수식:
2.
탄젠트 함수(Tanh Function):
•
출력값을 -1과 1 사이로 변환한다. 시그모이드 함수보다 중앙값이 0이라 학습이 더 잘 되는 경우가 많다.
•
수식:
3.
렐루 함수(ReLU Function):
•
입력이 양수면 그대로 출력하고, 음수면 0을 출력한다. 계산이 간단하고, 기울기 소실 문제(vanishing gradient problem)를 완화하는 데 도움이 된다.
•
수식:
4.
리키 렐루 함수(Leaky ReLU Function):
•
ReLU 함수의 변형으로, 음수 입력에 대해 작은 기울기를 부여한다.
•
수식:
5.
소프트맥스 함수(Softmax Function):
•
다중 클래스 분류 문제에서 사용되며, 각 클래스에 대한 확률을 출력한다.
•
수식:
각 활성화 함수의 선택은 문제의 특성, 신경망의 구조, 학습 속도 등에 따라 달라질 수 있다.
안녕하세요
•
한국전자기술연구원 김영광입니다.
•
관련 기술 문의와 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”