< 10주차 머신러닝 기초 03 >
머신러닝 기초 개념
머신러닝이란?
: 데이터에서 지식을 추출하는 작업
즉, 머신 스스로가 데이터를 바탕으로 그 안에 있는 특징과 패턴을 찾아내는 것 (학습)
-> 특징과 패턴을 바탕으로 새로운 데이터에 대한 추론 진행
“어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다” - Tom Mitchell (1997)
인공지능 - 기계가 사람의 지적 능력을 모방
머신러닝 - 학습을 통해 사람처럼 예측 진행
딥러닝 - 사람을 따라한다면 사람의 인지과정을 모방하는 것이 가장 좋은 방법!
명시적 프로그램 = 규칙 기반 전문가 시스템
: 머신러닝 이전의 문제 해결 방법론
문제해결을 위한 규칙을 수동으로 사전에 정의해둔 것 (if-else문)
ex. 스팸 메일 분류
장점 : 이해 쉬움. 작은 데이터에서 효과적
단점 : 규칙 설계가 한 분야나 작업에 국한. 변경에 대응 어려움(스팸 단어를 교묘하게 바꾸면 대응 어려움)
머신러닝
-> 명시적 프로그램의 한계 극복
: 데이터 내부에서 자주 발생하는 특징과 패턴 감지
이러한 특징과 패턴을 feature라고 하며, 판단 기준을 시스템 스스로 찾아냄!
장점 : 사람이 찾지 못한 규칙 및 상관관계 파악 가능. 특정 도메인에서 전문가가 필수적 X
단점 : 다양한 데이터 필요. 결과 분석 과정에서 사람이 이해할 수 없는 포인트 존재 가능
머신러닝 프로젝트 로드맵
1. 문제정의 : 파이프라인, 모델입출력
2. 데이터 확인 : 시각화, 특성 파악
3. 데이터 분할 : 학습/검증/테스트, 편향성 확인/아웃라이어 제거
4. 알고리즘 탐색 : 선행 연구 및 선행 프로젝트 참고
5. 데이터 전처리 : 알고리즘 고려, 선행 과정 참고
6. 학습과 검증 : 최적 모델 탐색, 반복 작업
7. 최종 테스트 : 테스트 데이터 활용, 보고
8. 시스템 런칭 : 모니터링, 유지보수
머신러닝 종류
레이블에 대한 이해
* 메타데이터란 주어진 데이터에서 학습에 활용할 파트를 제외한 부분
-> 기본 데이터에 추가적으로 제공하는 정보
=> 데이터의 출처, 형식, 위치 등 데이터 간의 관계와 구조 파악 / 데이터의 속성, 특성, 분류 등 데이터의 내용 설명
* 레이블이란..
학습에 활용하는 기본 데이터. 특정 문제에 해당하는 데이터의 설명 혹은 답변을 의미 = 타겟
데이터의 범주, 예측값 등
-> 사람이 생성해줘야 하는 경우가 많음
지도 학습
: 정답 레이블 정보를 활용해 알고리즘 학습
-> 데이터와 정답인 레이블 사이의 관계를 파악하는 목적 존재
- 정답이 존재하므로 모델이 풀어야하는 문제가 비교적 쉽고 잘 학습됨
- 명확한 평가 수치가 존재하며 학습된 모델의 성능 쉽게 측정 가능
- 정답이 필요하므로 시간, 노동, 비용 필요 -> 정답을 만들기 어려움
비지도 학습
: 정답 레이블 정보가 없이 입력 데이터만을 활용해 알고리즘을 학습하는 학습 방법론
-> 데이터 내부에 존재하는 패턴을 스스로 파악하는 목적
- 정답을 준비할 필요가 없으므로 비용적인 이점이 큼
- 기계가 새로운 패턴을 찾을 가능성이 있음 -> 창작과 같은 분야에 활용 가능
- 모델의 성능을 측정하기 위한 기준이 없어 해석이 주관적일 수 있음
- 다수의 데이터 필요
준지도 학습
: 일부의 데이터만 정답이 존재. 다수의 데이터에는 레이블이 없는 상황
-> 지도학습 + 비지도학습
=> 레이블된 데이터로 특성 파악 -> 레이블없는 데이터로 전체 데이터의 패턴 파악
- 많은 데이터 활용 가능 -> 일반화 성능 향상 가능
- 품질이 낮은 레이블 혹은 정답이 틀렸을 때 취약
- 알고리즘의 복잡성 증가, 구현 및 활용에 어려움 존재
자기 지도 학습
: 정답이 하나도 없는 데이터에서 정답을 강제로 생성 후 학습
-> 데이터를 강제 훼손 후 복원하는 방법 사용. 특정 데이터 내부의 성질 파악하는데 사용
=> 주로 이 알고리즘은 해당 데이터를 이용하여 다른 문제에 적용하기 위한 초기 수단으로 이용
- 이미지, 글자, 오디오 등 다양한 데이터에 활용 가능
- 레이블없이 데이터의 특징 파악 가능
- 알고리즘이 잘못된 패턴을 학습할 위험 존재
- 목적하는 문제를 직접적으로 해결하는 것이 아니므로 N회 이상의 추가적인 학습 과정 필요
강화 학습
: 어떤 환경에서 상호작용하는 에이전트가 보상을 이용해 특정 행동을 하도록 유도하는 학습 방법론
성공 시 보상, 실패 시 패널티를 통해 학습
ex. 강형욱 훈련사의 강아지 훈련, 알파고
머신러닝에 필요한 선형대수
기본 개념과 용어 정의
선형대수란?
: 수 들이 모여있는 개념(벡터 or 행렬)과 관련된 식을 연구하는 수학의 한 분야
-> 수를 다루는 학문(데이터, 공학 등)에서 수의 연산을 빠르고 효과적으로 하기 위해 사용하는 도구
-> 머신러닝에서는 데이터를 표현하고 변환하는데 필수적인 도구로 사용
수의 집합
스칼라 : 홀로 존재하는 수 (= 0차원 텐서)
벡터 : 한쪽 방향(차원)으로만 숫자가 모인 형태 (1차원) (= 1차원 텐서)
행렬 : 두 방향으로 숫자가 줄을 선 형태 (2차원) (= 2차원 텐서)
텐서 : 벡터와 행렬을 일반화한 개념
행렬 연산과 성질
- 행렬&벡터&텐서에 모두 덧셈과 뺄셈 등 연산 가능
-> 크기가 같은 행렬끼리만 가능(element-wise operation)
- 행렬의 곱셈은 하나의 행렬의 각 행과 다른 행렬의 각 열 간의 내적을 의미
=> 두 벡터의 동일한 위치에 있는 원소를 곱한 후, 그 결과를 모두 더하는 연산(결과는 스칼라)
(앞선 행렬의 열과 뒷 행렬의 행의 크기가 같아야함)
** 같은 크기의 행렬에서 우리가 아는 *곱셈*을 하는 연산은 element-wise multiplication 이라고 함
전치 행렬(Transpose)
: 행과 열을 바꾼 행렬
역행렬(Inverse Matrix)
: 특정 행렬 A에 어떤 행렬 B를 곱해보니 결과가 항등행렬이면,
B를 A의 역행렬이라고 함
AB = I일 때, B=A^-1
고유벡터와 고유값
선형 변환 (Linear Transformation)
-> v 벡터는 A 행렬에 의해 방향이 바뀐다.
: 특정 벡터에 어떠한 행렬을 곱하면 벡터의 방향 혹은 크기가 변경됨.
이렇게 벡터의 방향과 크기의 변경을 선형 변환이라고 함
고유벡터 (Eigenvector) 와 고유값 (Eigenvalue)
특정 행렬 A의 입장에서 생각해보자.
와 같은 벡터가 존재할 수 있다. 이 때, 람다는 임의의 상수인데,
A 행렬에 임의의 벡터 v를 곱하니, 그 결과가 벡터 v의 크기를 상수 배 한 벡터와 같을 때,
이런 벡터 v를 고유벡터 / 상수 람다를 고유값이라고 한다.
==> 행렬 A의 고유벡터는 행렬 A의 값이 가장 많이 분산되는 방향을 나타냄
즉, 분산이 많이 된다는 것은 많은 정보력을 갖고 있다는 의미
-> 데이터가 담고 있는 여러 정보 중 가장 의미가 큰 방향이 고유벡터가 됨!
* 분산의 크기를 나타내는 정도가 고유값
특이값 분해
특이값 분해 (Singular Value Decomposition, SVD)
: 복잡한 행렬을 간단한 3개의 행렬로 분해
-> 이 과정을 특이값 분해(SVD)라고 함
머신러닝에 필요한 확률 이론
기본 정의
확률이란?
: 특정한 사건이 일어날 가능성을 0~1로 표현
P(x) : 확률변수 X가 특정 값을 가질 확률
확률 분포
: 확률 변수가 취할 수 있는 값들과 그 값들이 발생하는 확률을 설명하는 개념
- 이산 확률 분포
: 확률 변수가 취할 수 있는 값이 개별적이고 셀 수 있는 경우
ex. 주사위, 동전 던지기
- 연속 확률 분포
: 연속적인 범위의 값(실수 범위의 값)을 취하는 경우
ex. 전 국민의 키, 정규분포
분포와 확률 변수
: 확률 변수는 실험, 관찰, 무작위 과정의 결과로 나타날 수 있는 수치적인 값
-> 확률 변수는 확률 분포에 영향을 받으며
확률 분포를 알고 있다면 확률 변수를 임의로 생성할 수 있음 (샘플링)
(X1, X2) ~ D
확률론적 모델링과 추론
: 주어진 데이터를 확률 이론의 관점에서 해석하고 모델을 설계하는 과정
-> 수학적인 모델을 통해 데이터를 분석 및 활용하는 과정
- 데이터가 특정 확률 분포를 따른다고 가정하며,
이 분포는 데이터의 특성을 분석하거나 미래의 사건에 대한 예측에 활용됨
모델의 예측과 데이터
-> 머신러닝 모델의 출력은 확률론적 관점에서 예측된 결과물이므로
실제 결과물과 차이가 있을 수 있음
=> 예측값(hat(y))과 실제값(y)을 분리하여 생각!
-> 이러한 예측값과 실제값의 차이를 줄이는 것이 핵심
'STUDY > DevCourse' 카테고리의 다른 글
[데브코스][데이터 분석] 선형 회귀와 선형 분류 (2) | 2024.04.26 |
---|---|
[데브코스][데이터 분석] 지도학습 알아보기 (0) | 2024.04.23 |
[데브코스][데이터 분석] 회귀분석과 데이터 모델링 (2) (0) | 2024.04.05 |
[데브코스][데이터 분석] 회귀분석과 데이터 모델링 (1) (1) | 2024.04.05 |
[데브코스][데이터 분석] 데이터 시각화 (1) | 2024.04.03 |