ANN/CNN/RNN/LSTM
ANN(Artificial Neural Network), 인공신경망이란, 인간 두뇌의 신경망 원리와 구조를 모방하여 만든 머신러닝 알고리즘입니다. 사람이 어떤 외부의 자극을 받았을 때 반응(예를들면 뜨거운 냄비를 만졌을때 바로 손을 떼는 반응 등)하기까지 아주 찰나의 순간 우리의 몸은 많은 과정을 거칩니다.
두뇌에 '뉴런'이라는 신경세포는 어떠한 자극을 받았을 때 다음 신경세포로 전달하는 역할을 합니다. 이때 뉴런과 뉴런사이의 틈을 '시냅스'라고 하는데 이 시냅스의 신호전달에 따라 우리 몸은 정보를 처리하고, 통합하하는 기능을 담당합니다.
이처럼 인간의 신경망을 모방하여 만든 것이 인공신경망입니다. 인공지능 학습에 있어 아주 중요한 역할을 하기에 다양한 연구가 이루어지고 있습니다. 오늘은 이 인공신경망 종류의 일부인 FNN/CNN/RNN에 대해(아주 간략히) 다루겠습니다.
구성요소: 입력층(Input Layer) - 은닉층(Hidden Layer) - 출력층(Output Layer)
→ 되돌아가지 못하고 한 방향으로만 전달.
'순방향 신경망'이라고도 불리는 FNN은, 인공신경망 초기의 가장 단순한 형태를 지닙니다. 처음(입력)부터 끝(출력)까지 한 방향으로만 전달되는 구조를 가진 신경망입니다. 데이터가 추가될 경우, '은닉층(hidden layer)'라고 불리는 곳에서 필터링 한 후, 출력됩니다. 이때, 데이터가 입력에서 출력으로 '순환되지 않고' 연속적으로 층을 통과합니다.
이와 같이 피드포워드 신경망은 순환되지 않아(다시 되돌아가지 않음) 시간순서에 따라 관측한 데이터(시계열데이터) 등 연속적인 정보를 처리하는 데에 한계가 있습니다.
구성요소: 입력층(Input Layer) - 은닉층(Hidden Layer) - 출력층(Output Layer)
→ 되돌아갈 수 있음.
피드포워드 신경망과 대비되는 순환신경망(RNN)은, 데이터나 이벤트의 시간적 순서를 이해할 수 있습니다. 과거의 이벤트가 미래 결과에 영향을 줄 수 있는 순환구조를 가졌습니다. 데이터중에서도 시간적인 연속성을 띄는 번역, 문자, 음성인식 등에서 활용됩니다.
조금 더 자세히 설명드리면, 직전데이터(t-1)와 현재데이터(t)의 상관관계를 고려하여 다음데이터(t+1)를 예측하기 위해 과거의 데이터도 반영한 신경망 모델입니다.
단, 시간이 지날수록 오래전의 데이터를 잃어버리는데(소실하는), 초기 데이터 중 중요한 데이터여도 시간이 지날 수록 중요도가 떨어지는 문제가 발생합니다.
*장단기 메모리 (LSTM; Long Short-Term Memory)
LSTM은 RNN의 종류 중 하나입니다. 시간이 지날수록 오래전의 데이터를 잃어버리는 문제를 극복하기 위해 등장했습니다. 충격적인 일들은 쉽게 잊지 못하는 것과 같이 '망각의 게이트(Forget gate)'를 통해 중요도가 낮은 데이터는 잊고, 충격이 가해졌을때(가중치가 더해졌을때)는 오랫동안 기억할 수 있도록 합니다.
합성곱신경망은 데이터의 특징을 추출하여 그 특징들이 패턴을 파악하는 구조로, 주로 이미지분류에서 사용되는 인공신경망입니다. Convolusion과 Pooling이라는 두 과정을 통해 진행됩니다.
Convolusion은 데이터의 특징을 추출하는 과정입니다. 해당 데이터가 지니고 있는 인접한 성분들을 조사하여 파악한 특징을 하나로 도출하는 과정입니다.
Pooling은 Convolusion과정을 거친 레이어의 크기를 줄이는 과정입니다. 데이터의 크기를 줄이고, 불필요한 노이즈를 상쇄하여 미세한 부분의 일관적인 특징을 제공합니다.
**해당 글에서 잘못된 정보가 있을 경우, 답글로 피드백 부탁드립니다:)
[참고자료]
1. 서울아산병원, 인체정보 '시냅스' https://www.amc.seoul.kr/asan/mobile/healthinfo/body/bodyDetail.do?bodyId=76&partId=B000020
2. Coursera, What is a Feedforward Neural Network? https://www.coursera.org/articles/feedforward-neural-network
3. 위키독스, 인공지능(AI)&머신러닝(ML)사전 https://wikidocs.net/176148
4. 위키독스, 딥 러닝을 이용한 자연어처리 입문 '순환 신경망' https://wikidocs.net/48558
5. 위키독스, 딥 러닝을 이용한 자연어처리 입문 '합성곱 신경망' https://wikidocs.net/64066