머신 러닝 이란?
기계가 학습한다는 건, 프로그램이 특정 작업(T)을 하는 데 있어서 경험(E)을 통해 작업의 성능(P)을 향상시키는 것
스팸 메일 분류 프로그램
- 작업 : 스팸 분류
- 경험 : 새로운 이메일 보고
- 성능 : 스팸 분류 얼마나 잘하는가(분류 확률)
머신러닝에 관심이 증가한 이유
데이터 양이 늘어남
- 예전에는 데이터 양이 충분하지 못해서 머신러닝 못했다. 요즘에는 PC, 웹, 스마트폰 환경이 조성되며 데이터가 많이 쌓기 시작함, 데이터가 기하급수적으로 늘어남.
컴퓨터 성능이 좋아짐
- 연산 비용 매우 줄어듦
활용성 증명됨
- ex) 유튜브 : 시청 데이터 쌓임 > 분석 > 데이터 기반 맞춤 영상 추천/광고 노출 > 재방문, 체류 시간 증가 > 데이터 증가 > 반복
인공지능 / 빅데이터 / 머신러닝
- 빅데이터 : 엄청나게 많은 양의 데이터를 다루는 분야(데이터 보관/처리법, 데이터 분석 방법들) (머신러닝과 겹침)
- 인공지능 : 프로그램이 인간처럼 생각/행동하게 하는 학문(머신러닝은 인공지능을 달성하기 위한 수단의 하나)
- 딥러닝 : 머신러닝 기법 중 하나(층이
깊어
진다 -> 딥러닝)
포함관계 : 인공지능 > 머신러닝 > 딥러닝 (빅데이터는 모든 분야에 걸쳐있음)
학습의 유형
지도학습(supervised learning)
- '답'이 있고 이 답을 맞추는 게 학습의 목적
- 분류(classfication) : 몇가지 선택지 안에서 고르는 것 / 스팸 메일 분류 프로그램
- 회귀(Regression) : 무수히 많고 연속적인 값의 답이 나옴 / 아파트 가격 예측 프로그램
- 학습 데이터에 대한 정답을 가르쳐줘야 한다.
비지도학습((unsupervised learning))
- 답이 없고 이 답을 맞추는 게 학습의 목적
- ex) 비슷한 신문기사 묶기
K-최근점 이웃 알고리즘(kNN 알고리즘)
- 새로운 데이터의 위치와 가장 가까운 k개의 이웃 데이터를 찾음 > 찾은 이웃 데이터 중 다수에 따라서 분류
- 많은 경험 > 성능 향상, 따라서 머신러닝
필요한 수학
선형 대수학 : 행렬로 많은 데이터 묶을 수 있음 / 행렬하나 통째로 묶어 계산하기 때문에 계산도 효율적
미적분학 : 최적화할 때 사용 / 성능에 관한 그래프를 보고 성능이 가장 높은 지점 발견하고 거기로 최적화하기 위함
확률과 통계 : 데이터 큰 흐름 파악 > 예측에 사용
선형 대수학
일차식이나 일차 함수를 공부하는 학문
아무리 복잡한 선형 시스템도 행렬과 벡터로 쉽게 표현할 수 있음
행렬과 벡터
행렬(Matrix) : 수를 직사각형 형태로 나열한 것
- m x n 행렬 - m행 x n열
- 대문자로 나타냄 - 행렬 A
벡터(Vector) : 행 혹은 열이 하나밖에 없는 행렬
- 열 벡터를 사용하는 경우가 더 많기 때문에, 그냥 벡터라고 하면 열 벡터를 뜻함 (행벡터는 '행벡터'라고 명시)
- 벡터 차원 : m차원 벡터
- 소문자로 나타냄 - 벡터 a
행렬 연산 1(덧셈, 스칼라곱)
연산하는 두 행렬의 차원이 같아야 함
행렬 곱셈 : 행렬과 수(스칼라곱) / 행렬과 행렬
- 스칼라 : 행렬의 원소가 아닌 일반 수
행렬간 곱셉
- 첫번째 행렬의 열 수와 두번째 행렬의 행 수가 같아야 연산이 가능하다.
- 내적곱/외적곱 존재하나 내적곱만 학습(우리가 일반적으로 알고 있는 행렬곱셉)
- 결과는
첫번째 행렬의 행 수 X 두번째 행렬의 열 수
로 나온다. - 곱하는 순서에 따라 결과가 달라진다.(일반적인 수 연산과 다른 점) -
교환법칙
성립 안함
전치 행렬, 단위 행렬, 역행렬
전치 행렬(transpose matrix)
- 행과 열을 뒤집은 행렬
- 행렬 연산에서 차원 수를 맞추기 위해 주로 사용
- 행렬 A위에 작은 T를 써서 표현
단위 행렬(identity matrix)
- 왼쪽 위부터 대각선 아래로 모두 1이고, 나머지는 모두 0인 행렬
- 항상 정사각형 형태
- 어떤 행렬에 단위행렬을 곱하면 기존 행렬이 그대로 유지됨
- I로 표현
역행렬(inverse maxtrix)
- 어떤 행렬에 곱하면 단위 행렬이 나오게 하는 행렬
- 반드시 정사각형 형태여야 함
- 모든 행렬에 역행렬이 존재하는 것은 아님
- 행렬 A위에 작은 -1를 써서 표현
미분
함수 : input값을 받아서 output값을 내는 것
- 하나의 인풋에 대해서 하나의 아웃풋만 나와야한다. (일대일 대응) 다대일은 되지만 일대다는 안됨
- 인풋변수가 2개면
다변수 함수
f(x,y) = x + 2y
그래프를 그려서 함수 특징 파악
- 최소값이나 절편, 변화량 등을 파악
평균 변화율
- 평균 변화율 = (y값 변화량) / (x값 변화량)
- 평균 변화율 = f(a+h) - f(a) / h
순간 변화율
- 어떤 순간까지 lim으로 줄인다.
- 평균변화율을 lim한다. (h->0)
- 함수 미분하면 됨
가장 가파른 방향
- 기울기가
음수
면 음의 방향(왼쪽)으로 가야 가장 가파르게올라가고
, 양의 방향(오른쪽)으로 가야 가장 가파르게내려간다
. - 기울기가
양수
면 음의 방향(왼쪽)으로 가야 가장 가파르게내려가고
, 양의 방향(오른쪽)으로 가야 가장 가파르게올라간다
. - 기울기의 절댓값이 0에서 멀어질수록 가파른 기울기
- 기울기는 그래프가 해당 지점에서 얼마나 기울어져 있는지도 알려 주지만, 어떤 방향으로 가야 가장 가파르게 올라갈 수 있는지에 대한 정보도 제공
극소점, 극대점
- 최소점(global minimum) / 극소점(local minimum) : 왼쪽으로는 기울기
음수
고 오른쪽으로는 기울기양수
인 순간 변화율(기울기)이 0인 지점, 기울기가음수에서 양수로
전환되는 지점(기울기 = 0) - 최대점(global maximum) / 극대점(local maximum) : 왼쪽으로는 기울기
양수
고 오른쪽으로는 기울기음수
인 순간 변화율(기울기)이 0인 지점, 기울기가양수에서 음수로
전환되는 지점(기울기 = 0) - 안장점(Saddle Point) : 극소점도 아니고 극대점도 아닌 경우. 순간적으로 기울기가 0이 되었다가 다시 가팔라지는 경우
==> 모두 변화율이 0인 지점들!
고차원에서 미분
- 편미분 : 함수를 변수 하나에 대해서만 미분
- 고차원 그래프에서는 기울기가
벡터
로 나옴 - 고차원에서 가장 가파른 방향
- x=1, y=1 인 지점에서 가파르게 올라가려면 벡터에 대입하여 양의 대각선 방향으로 가면됨
- x=1, y=1 인 지점에서 가파르게 내려가려면 벡터에
-
를 붙여 음수로 만든 후 값을 대입하여 음의 대각선 방향으로 가면됨
이해가 잘 안되는 부분이지만 중요한 점
- 경사가 음수일 때 함수 값이 감소하는 것은 맞지만, 경사(또는 그래디언트)의 기본 방향은 함수가 증가하는 방향으로 정의된다.
- 따라서 “경사가 감소 방향을 가리킨다”는 표현은 수학적으로 부정확!
- 감소 방향을 가리키려면 명시적으로 “음의 그래디언트 방향”이라고 해야 맞음
'DA Study > Data Analytics' 카테고리의 다른 글
[머신러닝] 선형 회귀(Linear Regression), 경사하강법, RMSE (0) | 2025.02.08 |
---|---|
[Python] 데이터 프레임 Boolean 인덱싱 VS query() 메서드 (0) | 2025.01.22 |
[통계] 통계적 가설 검정 (0) | 2025.01.03 |
[통계] 통계 리터러시를 위한 기본 개념(정규분포, 오차, 표준오차, 신뢰구간) (1) | 2025.01.02 |
[통계] 모집단, 표준편차, 분산, 평균, 확률, 확률분포, 이산확률변수, 연속확률변수, 확률밀도함수 (0) | 2024.12.30 |