머신러닝 - 이론

qkdk·2024년 8월 27일

openCV

목록 보기
12/15
post-thumbnail

머신러닝

머신러닝은 데이터를 분석해서 기계가 스스로 모델을 구축하는 것

  • 알고리즘을 이용해 데이터를 반복적으로 학습하고, 프로그래밍 하지 않아도 컴퓨터가 숨겨진 인사이트를 찾아낸다.

openCV와 파이썬활용한 이미지 분석에서는
모폴로지연산, 필터링, 임계값 설정등과 같은 작업을 컴퓨터가 알아서 작업해 이미지를 분석하는것

Confusion Matrix

평가 메트릭

  • Accuracy (정밀도)
    TP+TNTP+FP+FN+TNTP + TN \over TP + FP + FN + TN
    • 100개의 테스트 중에서 80개를 맞추면 80%의 Accuracy를 가진다
    • 대상 클래스가 균형이 잘 맞을때 유용
      • 개 이미지와 고양이 이미지의 양이 비슷하다 의미
    • 군형이 잘 맞지 않을때는 이용하지 않는것이 좋다.
      • ex) 개의 학습 이미지가 99개, 고양이 학습 이미지 1개
      • 어떤 이미지든 개라고 판단할 가능성이 있음
  • Recall (재현율)
    TPTP+FNTP \over TP + FN
    • Postive 샘플 중 분류 모델이 Postive로 판정한 비율
  • Precision
    TPTP+FPTP \over TP + FP
    • 모델이 Postive로 분류한 샘플중 실제로 Postive인 확률
  • F1- Score
    2×Precision×RecallPrecision+Recall2\times \frac{Precision \times Recall}{Precision + Recall}
    • 정밀도와 재현율의 조화 평균
    • 평균 대신 조화 평균을 사용하는 이유
      • 단순 평균은 극단적인 값을 거르지 않기 때문

퍼셉트론

인공적으로 만든 뉴런

뉴런퍼셉트론

16 * 16 의 이미지를 학습한다면 256개의 Input이 존재, 256 차원 행렬을 계산해 학습을 진행한다.

작동과정

  • Input에 Weight 값을 곱하고, Bias값을 더한뒤 Activaion Function을 통해 Output을 도출
    • Bias(편향)을 더하는 이유
      • Input이 0 인경우 가중치를 곱해도 0 이기 때문에 신경망에 문제가 생길 수 있다.

Activation Function


외에도 다양한 활성화 함수들이 존재

ReLU를 사용하는(중요한) 이유
기존에 사용하던 sigmoid(logisitic), ... 는 다중 계층으로 이루어 져 있는 신경망에서 기울기 값이 0 에 가까워지는 기울기 손실(Vanishing Gradient) 현상이 발생한다.
뿐만아니라 임계값을 기준으로 연산하기 때무에 속도도 빠른 장점을 가지고 있다.

Gradient Descent , Backpropagation

머신러닝에서 학습을 위해 조절해야하는 값 Weight와 Bias 를 최적의 값을 선정하는 방법
비용 함수를 통해 나온 기울기가 0이 되도록 값을 조절하여, 최적의 값을 찾아낸다.
찾아낸 값을 Backporpagation을 활용해 네트워크를 거슬러 올라가며 오류를 수정

  • 문제점
    • 비용 함수가 복잡한 경우 즉, 기울기가 0이 되는 지점이 여러개인경우, 전역 최소값이 아닌 지역 최소값에 도달할 수 있다.


      위 그래프에서 기울기가 0인 두개의 지점 중 왼쪽 지점으로 도달하지 못할수 있다.

비용 함수 (Cost Function)
머신 러닝 알고리즘에서 Gradient Descent 기법을 사용해 최적의 값을 찾을때 기울기의 기준이 되는 함수, MSE(평균 제곱 오차), MAE(평균 절대 오차), ... 다양한 함수가 존재

손실 함수 (Loss Fuction)
Cost Function과 비슷하나 단일 데이터 포인트에 대한 예측 오차를 측정
Cost Function은 전체 데이터 셋에 대한 오차의 평균 또는 합과 같은 연산을 수행해 측정

profile
qkdk

0개의 댓글