IT지식/인공지능

[인공지능] 지도학습 기법 - 선형회귀, 인공 신경망(CNN, RNN, 퍼셉트론) 등

매 석 2022. 11. 2. 18:23
반응형

 

1. 지도학습과 관련된 내용

 

머신러닝 - 지도학습 개념 정리(과적합, 과소적합, 학습 오차 등)

1. 지도학습이란? - 지도학습의 목표는 학습에 사용하지 않은 데이터를 예측하고 분류하는 것이다. 이를 '일반화'라고 한다. 완벽하게 일반화된 모델은 모든 데이터의 레이블을 정확히 예측한다.

maeseok.tistory.com

 

 

머신러닝 지도학습 프로세스 - 6단계로 정리

1. 지도학습 프로세스란? - 빅데이터 프로젝트의 일부로, 빅데이터 프로젝트의 데이터 수집 및 이해, 분석 및 모델링, 배포 및 적용 부분을 모델링하는 사람의 관점에서 좀더 자세히 나눈 것으로

maeseok.tistory.com

 

2. 지도학습 종류

1. 선형회귀

2. 서포트 벡터 머신

3. 의사결정나무

4. k-근접 이웃법

5. 인공 신경망

 

3. 선형회귀

- 선형회귀는 주로 통계학에서 '독립변수'와 '종속변수'와의 관계를 밝히는 데 사용하는 기법으로,
  파라미터 간의 선형성을 전제로 정답인 종속변수를 예측하는 모델을 만들어 지도학습 문제를 해결한다.
  예측을 강화하기 위해 '목적함수'에 '정칙화항'을 추가한 '정규화 선형회귀 기법'을 많이 사용한다.
  대표적인 모델로는 'Ridge', 'LASSO', 'Elastic Net' 등이 있고, 이외에도 변수 선택과 차원 감축을 위한
  '전진선택회귀', '후진제거회귀', '단계적회귀' 등의 기법이 있다. 기본적인 선형회귀 모델은
  '로지스터회귀'라는 특수한 형태의 회귀식을 사용하면 분류 문제를 해결하는 데도 사용할 수 있다.

 

 

4. 서포트 벡터 머신 

출처 : [R Machine Learning] 8. 서포트 벡터 머신 : 네이버 블로그 (naver.com)

- 서포트 벡터 머신은 데이터의 카테고리를 정하는 경계선을 찾아 분류하는 지도학습 기법이다.
  경계선이 선형으로 그려지기에 데이터의 모양에 따라 고차원으로 사상하는 '커널 트릭' 작업이 필요할 때도 있다.
  고차원에서는 선형 경계선으로 좀 더 복잡한 분류가 가능해지기 때문이다.
  해당 경계선을 찾는데 사용하는 '서포트 벡터', '마진', '경계', '2차 계획법' 등의 개념을 사용해 회귀 분석을
  할 수 있는데, 이를 '서포트 벡터 회귀'라고 한다.

 

5. 의사결정나무 

 

출처 : 의사결정나무란 무엇인가 :: DailyCoding (tistory.com)

- 의사결정나무는 각 입력 변수에 재귀적인 if-then 규칙을 적용해 결과를 예측하는 기법이다.
  논리가 단순한만큼 해석력이 뛰어나고, 계산 시간도 빠르다. '랜덤 포레스트', '부스팅 나무'와 같은
  앙상블, 부스팅 기법을 함께 사용하기도 한다. 결과의 가중 평균을 취하는 방식으로 회귀 분석에
  사용하기도 한다.

 

6. k-근접 이웃법

출처 : K-NN(최근접이웃) 알고리즘 :: BioinformaticsAndMe (tistory.com)

 - k-근접 이웃법은 예측 대상과 가장 근접한 k개의 레이블을 바탕으로 예측하고자 하는 데이터의 레이블을
  정하는 지도학습 기법이다. 근접한 k개의 데이터의 레이블로 투표를 진행해 분류하기도 하고,
  레이블이 연속적인 값일 때 가중 평균으로 회귀를 진행하기도 한다.
  레이블 예측에 관심있는 데이터에서만 예측을 진행하면 되기에 따로 '학습'이 필요없는 기법을
  '게으른 학습법'이라고 한다. 하지만 특성과 데이터 수가 증가할수록 연산량의 부담이 매우 커진다.

 

7. 인공 신경망 - 퍼셉트론과 다층퍼셉트론

인공 신경망은 선형 함수와 활성화 함수로 이뤄진 퍼셉트론을 여러 개 사용하는 방식의 머신러닝 기법이다.
  퍼셉트론으로 이뤄진 층을 여러 겹 쌓아올려 복잡한 함수를 만들 수 있기에 비정형 데이터와 같이
  특성 사이의 관계를 사람이 쉽게 알기 힘든 데이터를 모델링하는 데 널리 쓰인다.
  이렇게 여러 층의 퍼셉트론층을 쌓아올리는 것을 '딥러닝 기법'이라고 한다.
  인공 신경망 모델은 파라미터가 많기에 다른 기법 대비 데이터와 학습 시간이 많이 필요하다.
  주의할 점은 다른 머신러닝 기법과 인공 신경망, 딥러닝은 본질적으로 다른 것이 아니라는 것이다.
  인공 신경망 기법은 머신러닝 기법 중 하나이고, 머신러닝 문제를 해결하기 위해 다른 기법을 사용하는 것과
  마찬가지로 인공 신경망 기법을 활용할 수 있다. 또한 인공 신경망은 다른 지도학습 기법과 달리,
  비지도학습이나 자기 지도학습에도 활용될 수 있다. 

 

출처 : 퍼셉트론의 기본 개념과 학습 규칙, 한계점 (tistory.com)

  가장 기초적인 인공 신경망 모델인 '퍼셉트론'은 생물의 신경 세포를 모방해 만들어졌다.
  퍼셉트론 모델에서는 입력값에 가중치를 곱해 신호를 계산하고, 그 결과가 어떤 기준을 넘으면
  1을 출력하고, 아니면 -1을 출력한다. 일반적으로 신호로부터 출력값을 계산하는 부분을 '활성 함수'라 한다.
  퍼셉트론 모델의 한계가 지적된 이후 여러 개의 퍼셉트론으로 하나의 층을 만들어 '단일 은닉층' 모델을 구축했고,
  더 나아가 퍼셉트론을 여러 층으로 쌓아 만든 '다층 퍼셉트론' 모델을 만들었다.
  다층 퍼셉트론에서는 입력값 층에서 은닉층으로, 은닉충에서 그다음 은닉층으로 가중치를 곱하고,
  활성함수를 적용하는 '순전파' 과정을 반복해 출력값을 계산하는데, 여러 층이 쌓이다 보니 퍼셉트론 하나 하나의
  가중치와 출력값 사이의 관계가 복잡해져 모델을 학습하는 과정, 즉 최적의 가중치를 찾기 어려워졌다.

출처 : 10) 다층 퍼셉트론(MultiLayer Perceptron, MLP)으로 텍스트 분류하기 - 딥 러닝을 이용한 자연어 처리 입문 (wikidocs.net)

 

8. 인공 신경망 학습

- 다층 퍼셉트론 학습의 어려움을 해결하기 위해 '역전파'라는 방법이 제안돼 현재까지 사용되고 있다.
  역전파는 출력값과 정답 값의 차이인 오차를 출력값에서 입력값 방향으로, 즉 모델의 역방향으로 전파해
  각 가중치가 조정되도록 하는 것으로, 이러한 조정을 여러 반 반복해 가중치를 계속 수정하면 언젠가
  오차로부터 역전파되는 신호가 줄어들고결국 가중치가 최적값이 된다.
  오차를 계산하는 식을 '손실함수'라고 하는데, 이는 주어진 데이터와 문제, 모델의 목적을 고려해 결정할 수 있다.
  '평균제곱오차', '교차엔트로피' 등 다양한 손실함수 중에서 선택하거나 경우에 따라 이것을 변형하고 조합해
  문제에 맞는 새로운 손실함수를 만들 수도 있다. 그다음은 역전파를 통해 전달된 오차 신호를 바탕으로
  가중치를 조정하는 방법으로, '경사하강법', '확률적 경사하강법', '모멘텀', 'AdaGrad', 'RMSProp', 'Adam' 등이 있다.

 

9. 인공 신경망 - CNN

CNN은 '합성곱' 연산을 이용하는 인공 신경망 모델이고, 이미지, 비디오 등과 같은 데이터에서 뛰어난 성능을 발휘한다.
  CNN 모델은 목적에 따라 다양한 구조를 가질 수 있지만, 일반적으로 '합성곱층', '풀링층', 'ReLU층',
  '완전 연결층' 등으로 구성돼 있다. 합성곱층에는 데이터의 특징이 추출되고, 플링층에서는 '다운샘플링'이 이뤄지는데,
  최댓값일 때 '최대풀링', 최솟값일 때 '최소풀링'이라 한다. ReLU 은 활성함수 역할을 하고,
  완전 연결층은 합성곱층에서 추출된 데이터의 특징을 바탕으로 출력값을 계산한다.

출처 : Week 9 - 글을 그림처럼 보는 Convolutional Neural Network (CNN) (jiho-ml.com)

 

10. 인공 신경망 - RNN

RNN은 CNN 못지않게 대표적인 인공 신경망 모델이다. 텍스트, 보이스, 시계열 등의 순서열 데이터에
  뛰어난 성능을 발휘하고, 번역, 감성 분석, 시계열 예측 등과 같은 분야에서 많이 활용되고 있다.
  RNN 모델은 이전 시점의 은닉 상태와 현재 시점에 주어진 입력값을 받아 현재 시점의 은닉 상태를 계산하는 부분과
  은닉 상태로부터 출력값을 계산하는 부분으로 나눌 수 있는데, RNN이 순서열 데이터에 좋은 성능을 발휘하는 이유는
  이전 시점과 현재 시점의 상관 관계를 고려해 모델을 학습함으로써 순서열 데이터의 시점에 따른 
  상관성 정보가 추출되기 때문이다.
  다만 순서열이 길어지면 모델이 먼 시점에 대한 상관성을 표현하지 못하는 문제가 발생하는데,
  이를 '기울기 소실' 또는 '기울기 폭발'이라 한다. 기울기 소실이나 폭발을 해결하기 위해 'LSTM', 'GRU' 등의
  모델이 제안됐다. 한편 순서열 데이터는 꼭 과거에서 현재의 방향으로만 상관성을 가질 필요가 없고,
  양방향으로도 상관성을 가질 수 있는데, 기본적인 RNN 모델은 양방향의 상관성 정보를 추출할 수 없는 구조로
  이를 해결하기 위해 '양방향RNN'이 제안됐다.

 

11. 마무리하며

- 현재까지 나온 내용은 딥러닝 분야에서 가장 기초적인 것이다.
  이외에도 '오토인코더', 'GAN', '트랜스포머'와 같은 딥러닝 모델 구조나 '임베딩', '어텐션'과 같은
  딥러닝 관련 개념도 반드시 익혀야 한다.

  (아래 링크는 RNN 관련 내용)

 

순환 신경망(RNN)을 이용한 주가 예측 (Feat. LSTM)

1. 주의사항 - 이 포스팅은 단순히 딥러닝 기술인 순환 신경망을 이용하여 주가 예측을 하는 원리를 설명하고 있다. 그렇기에 완성품을 설명하는 것이 아닌 주가 예측의 기본을 설명하는 것으로,

maeseok.tistory.com