본문 바로가기
모두를 위한 데이터과학

RNN, K-means, KNN, SOM, SVM

by 석사만세 2023. 2. 17.

1. RNN(Recurrent Neural Networks)

- RNN(Recurrent Neural Network)는 순환신경망이라고 불리며 데이터의 순서가 중요할 경우에 적합한 알고리즘입니다. CNN(Convolutional Neural Network)이 이미지 인식에 주로 사용되는 구조인데 비해 RNN은 앞뒤 문맥을 가지고 있는 자연어 처리 문제에 주로 사용됩니다. RNN은 시간축을 중심으로 현재 시간의 데이터가 앞, 뒤 시간의 데이터와 연관 관계를 가지고 있는 시계열 데이터를 다루는데 최적화되어 있습니다.

- RNN에서는 셀(Cell)의 개념이 사용되며 셀을 여러 개 중첩하여 심층 신경망을 구성합니다. RNN은 기본적인 인공신경망 구조에서 이전 시간(t-1)의 은닉층의 출력값을 다음 시간(t)에 은닉층의 입력값으로 다시 집어넣는 경로가 추가된 형태입니다. 이런 구조를 통해 얻을 수 있는 장점은 이전 상태에 대한 정보를 일종의 메모리(Memory) 형태로 저장할 수 있다는 점입니다.

 

2. K-means

- K-means Clustering은 비슷한 데이터끼리 묶어주는(Clustering, 군집화) 머신러닝 기법입니다. K-means는 클러스터 내부에 속한 데이터들이 서로 가깝다고 정의합니다. 이 경우 같은 클러스터에 속한 데이터들은 서로 가까이 근접해 있게 됩니다. K-means는 클러스터의 중심으로부터 가까운 데이터들을 찾아서 군집화합니다. 데이터들은 가장 가까운 내부 거리를 가지는 클러스터를 고르게 되는데 이를 위해서 각각의 클러스터는 중심(프로토타입)이 존재하고 각각의 데이터가 그 중심과 얼마나 가까운지를 Cost로 정의합니다.

- K-means 클러스터링에서는 해당 자료에 k개의 집단이 있다고 생각한 뒤에 k개 군집의 중심을 각각 파악해 분류합니다. 다만 분류 과정에서 값을 컴퓨터가 자동으로 선택하지 않으며 사람이 직접 부여해줘야 한다는 점이 중요합니다.

 

3. KNN(K-Nearest Neighbors)
- KNN 알고리즘은 K-means 클러스터링과 유사하나 Y값의 존재 유무가 다릅니다. KNN은 거리 기반 모델로 각 관측치들 사이의 거리를 계산하는데 관측치들 사이의 거리가 가까울수록 동일한 Y값을 가질 가능성이 높습니다. 쉽게 얘기하면 데이터가 몰려있을 경우 그 몰려있는 그룹끼리는 비슷한 특징을 가질 것이라고 가정할 수 있기 때문입니다.

- 거리를 구하는 공식에는 Hammington Distance, Manhattan Distance, Euclidean Distance가 있으며 Euclidean 거리가 널리 알려져 있습니다. KNN은 새로운 정답을 알고자 하는 예측 관측치와 정답을 이미 알고 있는 기존 관측치 사이의 거리를 계산하여 가장 가까운 k개의 관측치들의 Class를 확인하여 예측합니다. k값이 클수록 통상 예측 정확도는 높아지지만 일반화시키기는 오히려 어려워집니다.

 

4. SOM(Self Organizing Map)

- BPN(Back Propagation Network)은 데이터들을 입력으로 주고 어떠한 출력값이 나오면 출력값과 미리 정해져 있는 목표값의 오차를 줄이는 방향으로 연결강도 값을 조절하는 방법으로 지도 학습을 합니다. 그러나 SOM은 데이터들을 입력 했을 때, 출력 노드 중에서 다른 출력 노드와 비교해서 가장 강하게 반응하는 노드를 더욱 강하게 반응하게끔 반복적으로 학습시킵니다. 다시 말해, SOM에서는 BPN처럼 출력노드의 목표값을 미리 정하지 않습니다. 입력에 대해 자연스럽게 반응하는 출력 노드를 선택하여 반복 학습을 시키면, 그 후에는 결과적으로 어떤 출력 노드가 반응되는지를 조사하면 거꾸로 입력을 알 수 있게 됩니다.

- SOM 개념을 최초로 소개한 Teuvo Kohonen의 이름을 따서 Kohonen Map이라고도 불립니다. SOM은 입력층과 경쟁층으로 나뉘고, 경쟁층의 각 뉴런은 연결 강도 벡터와 입력 벡터가 얼마나 가까운가를 계산합니다. 그리고 각 뉴런들은 학습할 수 있는 특권을 부여 받으려고 서로 경쟁하는데 거리가 가장 가까운 뉴런이 승리하게 됩니다. 이 승자 뉴런이 출력신호를 보낼 수 있는 유일한 뉴런이 되며 또한 이 뉴런과 이와 인접한 이웃 뉴런들만이 제시된 입력 벡터에 대하여 학습이 허용됩니다.

 

5. SVM(Support Vector Machine)

- SVM은 패턴 인식에 주로 사용되는 지도학습 모델이며 분류와 회귀분석을 위해 사용합니다. 신경망을 포함한 기존의 방법들은 분류 문제에서 오류율을 최소화하려는 목적으로 설계되었지만 SVM은 두 분류 사이에 존재하는 여백을 최대화하려는 목적으로 설계된 점이 다른 점입니다.
- 두 카테고리 중 하나에 속한 데이터 집합이 주어졌을 때 주어진 데이터 집합을 바탕으로 새로운 데이터가 어느 카테고리에 속하는지 판단하는 비확률적 이진 선형 분류 모델을 만듭니다. 만들어진 분류 모델은 데이터가 사상된 공간에서 경계로 표현되는데 SVM 알고리즘은 그 중 가장 큰 폭을 가진 경계를 찾습니다. 예를 들어 A와 B를 구분할 때 직선을 그려서 구분하고 그 두 부류 사이의 여백이 가장 넓어지면, 즉 둘이 가장 떨어져 있으면(margin이 최대화되면) 그 둘을 가장 잘 분류했다고 판단합니다.

- SVM은 신경망 기법에 비해 과적합 정도가 덜하고 사용하기가 쉽다는 장점이 있으나 모델 구축 시간이 오래 걸리고 결과에 대한 설명이 쉽지 않다는 단점이 있습니다.

'모두를 위한 데이터과학' 카테고리의 다른 글

이미지 인식과 분류  (0) 2023.02.17
머신러닝 활용 사례  (0) 2023.02.17
데이터 마이닝 기법  (0) 2023.02.17
텍스트 데이터 전처리  (0) 2023.02.17
텍스트 데이터 시각화  (0) 2023.02.17