ANN(Artificial Neural Network)
인공신경망
사람의 신경망 원리와 구조를 모방하여 만든 기계학습 알고리즘
하나 이상의 히든 레이어층을 가지고 있는 모든 Neural Network 를 포함하는 대전제
인간의 뇌에서 뉴런들이 어떤 신호, 자극 등을 받고, 그 자극이 어떠한 임계값(threshold)을 넘어서면 결과 신호를 전달하는 과정에서 착안한 것.
인공신경망에서 자극, 신호는 Input Data 이며, 임계값은 가중치(Weight), 자극에 의해 어떤 행동을 하는 것은 Output Data 로
비유할 수 있다.
신경망은 다수의 입력 데이터를 받는 입력층과
결과의 출력을 담당하는 출력층,
이 둘 사이에 여러 노드로 연결된 여러개의 히든 레이어들이 존재한다.
레이어층에는 활성화함수룰 이용하여 최적의 가중치와 Bios 를 찾아내는 역할을 한다.
이 히든 레이어와 노드 개수를 구성하는 것을 모델 구성이라고 하며,
모델을 잘 구성하여 출력된 예측값이 정답에 가깝게 조정하는 것이 모델 구성의 핵심 이유이다.
ANN 의 한계
- 학습 과정에서 파라미터의 최적값을 찾기 어려움
- 출력값을 결정하는 활성화 함수의 사용은 기울기 값에 의해 가중치가 결정되는데, 기울기 값이 뒤로 갈수록 점점 작아져 0에 수렴하는 오류를 야기하기도 하며, 부분적인 에러를 최저 에러로 인식하여 더이상 학습을 하지 않는 현상도 발생한다.
- 오버피팅 문제
- 오래거리는 학습 문제
- 은닉층이 많을 수록 학습의 정확도가 올라가지만, 비례적으로 연산량이 증가하여 학습시간이 증가하게 된다
(그래픽 카드의 도입으로 인해 학습 문제는 해결이 되었고, 오버 피팅 또한 사전 훈련 방식을 통해 제어권 내로 들어왔다고 볼 수 있음)
DNN(Deep Nueral Network)
두 개 이상의 은닉층이 구성된 모델
컴퓨터가 스스로 분류 레이블을 만들어 내고, 공간을 왜곡하고 데이터를 구분짓는 과정을 반복하여 최적의 값을 도출
많은 데이터와 다수의 히든 레이어층을 통한 반복학습, 사전학습과 오류역전파 기법을 적용시켜 현재 가장 많이 사용되고 있는 모델들의 기준이라고 볼 수 있다.
그리고 DNN 을 응용한 알고리즘이 바로 CNN, RNN 이고 이 외에도 LSTM, GRU 등이 있다.
CNN(Convolotion Neural Network)
합성곱신경망
기존의 방식은 데이터에서 지식을 추출해 학습이 이루어졌지만, CNN 은 데이터의 특징을 추출하여 특징들의 패턴을 파악하는 방식을 사용하는 모델이다.
CNN 의 알고리즘은 Convolution & Pooling 과정을 통해 학습이 진행된다
각 과정을 진행하는 레이어(Convolution layer, Pooling layer) 을 복합적으로 구성하여 알고리즘을 만든다.
Convolution
데이터의 특징을 추출하는 과정으로 데이터에 각 성분의 인접 성분들을 조사해 특징을 파악하고, 파악된 내용을 추스려 하나의 요약본인 레이어를 도출한다.
이렇게 레이어를 도출하는 포인트가 Convolution Layer 이다
이는 압축 과정이라 볼 수 있으며 파라미터 개수를 효과적으로 줄여주는 역할을 한다.
Pooling
Convolution 과정을 거친 레이어의 사이즈를 줄여주는 과정
단순히 데이터의 사이즈를 줄여주고, 노이즈를 상쇄시키며, 미세한 부분에서 일관적인 특징을 제공해준다.
CNN 은 보통 정보 추출, 문장 분류, 얼굴 인식 및 이미지 처리 등의 분야에서 사용되고 있다.
RNN(Recurrent Nueral Network)
순환신경망
RNN 은 반복적이고 순차적인 데이터 학습에 특화된 인공신경망의 한 종류로써 내부의 순환구조가 들어있다는 특징을 가지고 있다.
순환구조를 이용하여 과거의 학습을 가중치를 통해 현재 학습에 반영한다.
기존의 지속적이고 반복적이며 순차적인 데이터 학습의 한계를 해결한 알고리즘이다.
현재의 학습과 과거의 학습의 연결을 가능하게 하고 시간에 종속된다는 특징을 가지고 있다.
음성 웨이브폼을 파악하거나, 텍스트의 앞 뒤 성분을 파악할 때 주로 사용된다.
TDNN(Time Delay Neural Network)
input 데이터를 시간에 대해 (t, t-1, t-2) 인 데이터로 활용하는 모델
시간을 고려한 모델이 아닌 데애 discrete 한 시간 데이터를 다룰 때 쓰는 가장 간단하고 대표적인 방법
Continout 한 시간 데이터의 경우는 위 방법으로 할 수 가 없다.
그래서 sliding sindowing 방식으로 일정한 길이의 데이터를 일전 부분씩 겹치도록 전처리 한 뒤 사용한다.
(강제로 dicrete 하게 나누고 대시 50% 씩 겹치게 한다)
이 방식은 헌정된 데이터의 time sequence 만 학습할 수 있기 때문에 시간 데이터에서 가장 중요한 long term dependecy 를 학습시키기 어려운 문제가 있다
또한 sliding windowing 방식은 long term 하게 데이터를 넣을 수록 dimension 이 한없이 높아짐으로 인해 학습이 어려운 문제 또한 존재한다.
시간에 대한 학습과 데이터 자체에 대한 학습이 같은 공간에거 한 번에 풀어여야 해서 조금 더 어려운 문제가 된다.
(TDNN과 1차원 CNN은 모두 유사한 유형의 데이터에 사용될 수 있지만, 각기 다른 기본 원리와 아키텍처를 가지고 있으며, 다른 용도에 맞춰 개발되었다. TDNN은 시간적 작업에 더 특화된 반면, 1차원 CNN은 보다 범용적인 합성곱 신경망이다.)
LSTM(Long-Short Term memory)
사람은 기존의 생각을 가지고 나아가는 것이라는 전제를 통해 만들어진 모델
기존 모델들이 지속적인 생각을 하지 못하는 단점을 보완하고자 RNN 스스로 반복하면서 이전 단계에서 얻은 정보가 지속되도록 한다.
LSTM 은 sparse DRNN 의 특수한 케이스로 현재까지 나온 시간 모델 중 가낭 성능이 좋고 많이 쓰이고 있다.
gate 라는 개념을 도입하고 이를 학습시켜, RNN 유닛마다 학습하는 데이터의 시간 초점이 다르다.
즉, 어떤 RNN 유닛은 short term 만 학습하고, 다른 RNN 유닉은 오직 long term 만 학습한다.
LSTM 은 RNN 에서 input, output, forget gate 가 추가 되어 long term dependency 를 잘 학습할 수 있는 모델이다.
이 때 RNN 에는 activation function 이 없어 recurcive 하게 Time Through Back Propagation 을 하여도 vanishing gradient
또는 ecploding gradient 이 일어나지 않는다
input gate : 데이터의 input을 받을지 말지 결정한다.
output gate : Hidden Neuron이 추론한 값을 사용할지 말지 결정한다.
forget gate : 한 주기마다 Hidden Neuron 의 weight를 초기화 시켜주어 긴 주기의 추론에서 weight가 발산하는 것을 regularization 해준다.
이때 input과 output gate가 모두 켜져 있을 때에만 에러를 학습하도록 weight의 식이 정의되어 선택적으로 학습한다.
지난 학습을 의존하면서 예측을 하기 때문에 짧은 데이터와 긴 데이터 간의 시간 격차가 발생할 수도 있다.
ESN(Echo State Network)
독일 연구자들이 연구한 모델로, RNN 을 임의로 생성한 뒤 오직 output 뉴런과 히든 뉴런 사이의 가중치 만 학습하는 방법
즉, inpurt -> hidden, hidden->hidden 으로 가는 가중치는 학습을 하지 않는 즉, 최초 intialize 된 가중치를 그대로 학습한다.
그래서 최초의 가중치를 initialize 할 때 가중치 벡터들이 서로 orfhogonal 하도록 조건을 주는 것을 일반적으로 볼 수 있다.
학습속도가 느렸던 RNN 에 비해 속도차가 눈에 띄게 나며 성능도 준수하게 나오는 편이다.
'AI > NeXt-TDNN' 카테고리의 다른 글
NeXt_TDNN - feature (4) | 2025.08.05 |
---|---|
NeXt_TDNN (0) | 2025.06.25 |
화자 인식 모델 (1) | 2025.06.20 |