[DevCourse] 11-1 머신러닝 기초와 배경

한상우·2024년 1월 30일
0

Data Science Devcourse

목록 보기
21/25

머신러닝이란?

  • 머신 스스로가 데이터에서 지식을 추출하는(데이터의 특징과 패턴을 찾아내는) 작업

  • Tom Mitchell의 학습에 대한 정의

    • 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상돼었다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다.
  • 인공지능 VS 머신러닝 VS 딥러닝

    • 인공지능 : 사람이 아닌 것이 사람의 지능을 모방한 형태. 최상위 개념으로 머신러닝 및 딥러닝을 포함하는 개념이다.

    • 머신러닝 : 기계를 학습시키면서 사람처럼 예측을 진행하는 것. 딥러닝을 포함하는 개념.

    • 딥러닝 : 기계 학습의 방법론 중 하나.

  • 명시적 프로그램 (Rule-Based Expert System) VS 머신러닝

    • 명시적 프로그램 : 머신러닝 이전의 문제 해결 방법론으로, 문제를 해결하기 위한 규칙(rule)을 수동으로 사전에 정의한다. 즉, 하드 코딩 된 if-else 명령어의 집합
      • ex) 스팸 메일을 특정 단어(Sale, Win, Free)의 유무로 분류
      • 다양한 분야에서 사용하기 어렵고, 시대에 흐름에 따른 변경에 대응하기 어려우며, 분야에 대한 전문가가 필요하다.
    • 머신 러닝 : 데이터 내부에서 자주 발생하는 특징과 패턴(feature)을 감지 (판단 기준을 시스템 스스로 찾아낸다)
      • 머신이 패턴을 파악할 수 있도록 다양한 데이터가 필요하며, 결과 분석 과정의 모든 과정을 사람이 이해하기 어려울 수 있다

머신러닝 프로젝트의 기본적인 흐름

  • 문제 정의
    • 파이프라인, 모델 입/출력
  • 데이터 확인
    • 시각화, 특성 파악
  • 데이터 분할
    • 학습/검증/테스트, 편향성 확인, 아웃라이어 제거
  • 알고리즘 탐색
    • 선행 연구 및 선행 프로젝트 참고
  • 데이터 전처리
    • 알고리즘 고려, 선행 과정 참고
  • 학습과 검증
    • 최적 모델 탐색, 반복 작업
  • 최종 테스트
    • 테스트 데이터 활용, 보고
  • 시스템 런칭
    • 모니터링, 유지 / 보수

머신러닝의 종류

  • 기본 용어 정리

    • 메타 데이터 : 데이터에 대한 데이터. 데이터의 출처, 형식, 위치 등
    • 레이블(Label) : 특정 문제에 해당하는 데이터의 설명 혹은 답변을 의미 (=target). 사람이 직접 만들어줘야 한다.
  • 지도학습 (Supervised Learning) : 정답 레이블 정보를 활용하여 알고리즘을 학습하는 방법론

    • 정답이 있어 모델이 비교적 잘 학습되며, 명확한 평가 수치가 존재하여 모델의 성능을 평가 가능하다. 하지만, 정답 레이블이 필요하기 때문에 추가적인 비용이 필요.
  • 비지도 학습 (Un-Supervised Learning) : 정답 레이블 정보가 없이, 입력 데이터만을 활용하여 알고리즘을 학습하는 학습 방법론

    • 사용자가 의도한 패턴 이외의 새로운 패턴을 찾을 가능성이 있으며, 정답 레이블이 필요하지 않음. 신뢰할 수 있는 결과를 위해서는 데이터의 품질이 중요하다
  • 준지도 학습 (Semi-Supervised Learning) : 일부의 데이터만 정답이 존재하고, 다수의 데이터에는 레이블이 없는 상황에서 알고리즘을 학습하는 학습 방법론

    • 레이블이 부족한 데이터셋에 유용하지만, 레이블의 품질이 낮은 경우 치명적으로 성능이 떨어지며, 알고리즘의 복잡성이 높다.
  • 자기 지도 학습 (Self-Supervised Learning) : 정답이 없는 데이터에서 정답을 강제로 생성 후 학습하는 방법론. 보통 데이터의 일부를 훼손 후 복원하는 방법을 사용하여 특정 데이터 내부의 성질을 파악하는데 사용됨. 정답 레이블이 없이 학습 가능하며, 다양한 데이터 (음성, 텍스트, 이미지, ...)에서 활용 가능하다. 하지만 학습 과정이 여러번 반복되어야 하며, 잘못된 패턴을 학습할 위험이 있다.

  • 강화 학습 (Reinforcement Learning) : 어떤 환경(Enviornment)에서 에이전트(Agent)가 보상(Reward)을 이용해 특정 행동을 하도록 유도하는 학습 방법론. ex) 로봇 청소기

기초 선형 대수

  • Tensor : 벡터와 행렬을 일반화한 개념. 즉, 0차원 텐서 = 스칼라, 1차원 텐서 = 벡터, 2차원 벡터 = 행렬, 3차원 이상의 스칼라 집합.

  • 데이터는 Tensor로 정리하여 표현 가능하다

  • 행렬의 덧셈과 뺄셈 : (n x n) matrix 끼리만 가능하다, 결과는 matrix

  • 행렬의 곱셈 : (n x m) 과 (m x k) matrix 끼리만 가능하다, 결과는 scalar

  • Hadamard Product : Element-wise multiplication

  • Transpose : (n x m) 행렬을 (m x n) 행렬로 변환

  • 역행렬 : 행렬 A와 행렬 B를 곱한 결과가 Identity Matrix I인 경우, B를 A의 역행렬이라고 한다. (단순하게 비유하면 나눗셈으로 이해하기)

  • 선형 변환(Linear Transformation) : 벡터(v)에 행렬(A)을 곱해 방향(회전)과 크기를 변경하는 것

  • 선형 변환에서, Av = λv(λ는 상수) 인 경우(방향은 변하지 않고, 크기만 바뀐 경우), v를 Eigenvector, λ를 Eigenvalue라고 한다.

  • Eigenvector는 행렬 A의 값이 가장 많이 분산되는 방향을 나타낸다.

    • 분산이 많이 된다는 것은 정보력을 많이 갖고 있다고 해석할 수 있음. (아래 이미지에서 y=1/2 방향)
  • 결과적으로 Eigenvector(방향)와 Eigenvalue(분산의 크기, 즉 해석력의 크기)는 데이터가 얼마 만큼의 정보가 어느 방향으로 있는지 나타내준다.

  • 특이값 분해(Singular Value Decomposition, SVD) : 복잡한 행렬 A를 간단한 세가지 행렬로 분해하는 과정 (소인수 분해와 비슷)

  • Eigenvector, Eigenvalue 분석과 SVD는 모두 행렬 A에서 정보를 뽑아내는 방법이다. 고유값 분석의 경우는 정사각 행렬일 경우에만 사용이 가능하지만, SVD의 경우는 직사각 행렬에 대해 사용이 가능하다. 즉, SVD는 고유값 분석의 일반화 버젼.

머신 러닝 모델

  • 우리는 결국 불완전한 데이터 (noise가 있는 데이터)를 사용하여 해당 데이터가 특정 확률 분포를 따른다고 가정하고, 모델링을 통해 데이터의 특성을 분석하거나 미래의 사건을 예측한다 -> 즉, 많은 머신러닝 모델은 확률론적 모델링이다.

profile
개인 공부용 블로그입니다

0개의 댓글

관련 채용 정보