머신러닝이란?
머신 스스로가 데이터에서 지식을 추출하는(데이터의 특징과 패턴을 찾아내는) 작업
Tom Mitchell의 학습에 대한 정의
인공지능 VS 머신러닝 VS 딥러닝
인공지능 : 사람이 아닌 것이 사람의 지능을 모방한 형태. 최상위 개념으로 머신러닝 및 딥러닝을 포함하는 개념이다.
머신러닝 : 기계를 학습시키면서 사람처럼 예측을 진행하는 것. 딥러닝을 포함하는 개념.
딥러닝 : 기계 학습의 방법론 중 하나.
명시적 프로그램 (Rule-Based Expert System) VS 머신러닝
머신러닝 프로젝트의 기본적인 흐름
머신러닝의 종류
기본 용어 정리
지도학습 (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의 값이 가장 많이 분산되는 방향을 나타낸다.
결과적으로 Eigenvector(방향)와 Eigenvalue(분산의 크기, 즉 해석력의 크기)는 데이터가 얼마 만큼의 정보가 어느 방향으로 있는지 나타내준다.
특이값 분해(Singular Value Decomposition, SVD) : 복잡한 행렬 A를 간단한 세가지 행렬로 분해하는 과정 (소인수 분해와 비슷)
머신 러닝 모델