본문 바로가기
ETC

Machine Learning / Deep Learning 내용 정리

by soojitasan 2024. 11. 13. 19:06

* 틀린 부분이 있을 수 있습니다.

 

 

 

1. Machine Learning

  • 인공지능 개념
    • 인공지능 : 사람이 할 일을 기계가 대신하는 모든 스크립트 기반 자동화 방식
    • 머신러닝 : 데이터셋을 통해 기계를 학습시킨 후 일반화된 모델을 통해 학습 데이터 외에 다른 데이터에 대답할 수 있도록 함 (data-driven 방식)
    • 딥러닝 : 인간의 두뇌(신경)와 비슷한 방식으로 데이터를 처리하도록 기계를 가르치는 방식

** 훈련 데이터와 평가 데이터 비율은 8:2 (평가 데이터 분류는 선택이 아닌 필수)

 

 

  • 관련 용어
    • y = wx + b
    • 모델 : w와 b값의 집합(저장)
    • 모델 학습(훈련) = 파라미터(w, b)를 찾는 과정
    • y : 알고리즘을 사용해 모델이 예측한 값
    • x : feature, 학습을 위해 입력된 데이터
    • w : feature별 중요도
    • b : bias, 가중합에 값을 더해주는 상수
    • loss : error, 예측값과 실제값의 차이
      • loss function
        • 분류-cross entropy, ...
        • 회귀-mse, rmse(mse값에 루트), ...
    • optimization : loss function의 값이 최소가 되게하는 w값을 찾는 것
    • parameter : 모델에서 자체적으로 조절하는 값 (w, b)
    • hyper parameter : 사용자가 직접 조절하는 값
      • epoch : 전체 데이터를 돌리는 횟수 (일반적으로 크게 하는게 좋으나 과적합 주의)
      • batch size : 한번에 돌릴 데이터양
      • iteration : epoch을 나눠서 실행하는 횟수
      • learning rate : 학습률 (보폭) .. 정해진 값은 없으므로 모델별로 적정한 값을 직접 찾아야 함하이퍼 파라미터 : 사용자가 조절하는 값


** feature engineering : 머신러닝은 알고리즘이 간단하므로 feature간의 특성이 명확한지가 중요함. 사람이 직접 feature 선택, 조정 등의 과정 진행

 

 

  • 머신러닝 유형
    • 지도학습 : 레이블 o (분류, 회귀, ...)
    • 비지도학습 : 레이블 x (클러스터링, ...)
    • 강화학습 : 특정 environment 내 state에서 action을 통해 reward 또는 panalty를 받아가며 학습하는 과정

 

 

2. Deep Learning

  • 딥러닝 이해
    • 기본적으로 머신러닝과 틀은 동일하지만 모델의 복잡도 증가
      • feature 갯수 및 레이어 갯수가 크게 증가
      • 개별 feature 중요도가 비교적 감소
      • feature engineering 작업을 모델 내부에서 자체적으로 하기 시작 … 스스로 가중치 값 탐색

    • 모델 : y = f(w0x0 + w1x1 + … wnxn + b)
      • f (=activation function) : 레이어 단위로 넘어가며 선형 함수를 비선형 함수로 변경, 미분 가능하게 함 (계산이 빨라짐)
        • 기존 머신러닝 모델식으로는 xor 연산 불가해 도입된 개념
        • 종류
          • sigmoid : 중심점 y=0.5, 지수승, 가중치 소멸 현상으로 딥러닝에서 사용 X
          • tanh : 중심점 y=0, 지수승, 시그모이드에서 중심점일 때 진동하는 점을 보완, but 가중치 소멸 현상을 해결하지 못해 딥러닝에서는 사용 X
          • Relu : 음수면 모두 0, 선형이므로 계산 속도 빠름
          ** 사람의 논리 흐름을 따라하기 위한 필수 연산 4개 : xor!! (perceptron은 불가)
           
      • 모델 생성 알고리즘
        • CNN : 이미지, NLP에서 사용
          • Convolution Layer (합성곱 레이어) : 텐서별 R, G, B값(특징적인 값) 저장 및 Filter층과의 합성곱
          • Pooling Layer : 그림 내에 인접한 부분의 특징적인 값만 추출 (크기 감소)
          • Stride : 벡터화된 그림에서 필터가 움직이는 단위
          ★ CNN 합성곱 계산하는 과정 다시 보기
           
        • RNN : NLP에서 많이 사용, 시계열 데이터 처리, 다음 가중치 연산에 기존 가중치 값을 사용 (번역, 감정분석)
          • 인코더 : 컨텍스트 벡터를 만드는 과정
          • 디코더 : 인코더 단계에서 만들어진 컨텍스트 벡터 해석
          • 한계점
            • Vanishing : 문장이 길어지면 앞부분이 흐려지는 현상
            • Attention Mechanism : 컨텍스트 벡터 외에 집중해야할 부분에 초점 맞추기
               
        • Transformer : 순차적으로 처리해야하는 RNN과 달리 병렬 처리 가능, Chat-GPT의 T!
           
    • 손실함수 : 머신러닝과 동일하게 존재
       
    • BackPropagation : 정답과 예측값 사이의 차이를 줄이기 위해 오차를 출력층에서 입력층으로 거꾸로 올라가며 단계별 가중치를 조정하는 과정
      • 1차로 계산한 결과값을 기반으로 시작 (메모리에 올라와있는 상태)
      • 계산된 가중치 값을 가지고 맨 뒷단-1 부터 시작해서 미분값을 구해 output neuron에 미치는 영향 확인
      • 편미분-생략법(chain rule)이 적용되어 많은 컴퓨팅 파워 없이 쉽게 구하기 가능
      BackPropagation 보강 필요 ... 유튜브
       
    • 최적화
      • gradient descent (경사하강법)
        • 가중치의 접선의 기울기가 0이 되는 최소값을 찾기 위한 과정
        • new w = old w - (learning rate * old w의 접선의 기울기)
        • 기울기가 음수이면 결과적으로 +가 됨
        • 차수가 4차 이상인 경우 saddle point(지역 최솟값, 최저점)이 여러개 발생
          • Momentum (방향)
          • AdaGrad (속도)
          • RMSProp (속도 + a)
          • Adam (방향 + 속도)
        • 경사하강법의 변형 : mini batch를 보통 많이 사용