기계 학습 : 기계가 학습을 통해 발전
머신 러닝 프로그램 : 경험을 통해서 스스로 업무 능력 향상
기계가 학습한다는 건, 프로그램이 특정 작업(T)을 하는 데 있어서 경험(E)을 통해 작업의 성능(P)을 향상시키는 것_톰 미첼
더 많은 경험을 할수록 성능이 좋아지면 머신 러닝이라고 할 수 있음
빅데이터
인공지능
딥러닝
지도학습(Supervised Learning)
답이 있고 이 답을 맞추는 게 학습의 목적
분류(Classfication)
회귀(Regression)
비지도 학습(Unsupervised Learning)
k-NN 알고리즘
머신 러닝의 수학
머신 러닝 : 컴퓨터 과학 + 수학(선형대수, 미분, 통계, 확률)
적합한 알고리즘을 선택하고 코드를 최적화 하기 위해서
선형대수학
미적분학
통계
특징을 파악하기 위해 사용
데이터에서 큰 흐름을 파악하면 예측에 사용 가능
확률
선형대수학
일차식이나 일차 함수를 공부하는 학문
행렬(Matrix)
벡터(Vector)
python numpy 라이브러리
-- numpy 라이브러리 불러오기
import numpy as np
-- 행렬은 2차원 배열로
np.array([[]])
-- 랜덤 행렬
np.random.rand(n,m)
-- 모든 값이 0인 행렬
np.zeros(n,m)
행렬 연산
행렬 덧셈 : 같은 위치에 있는 원소들끼리 더하기
스칼라 곱 : 행렬 X 수(i)
행렬 곱셈
행렬 A와 B를 곱하려면, A의 열과 B의 행의 수가 같아야함
교환 법칙 성립 안 함 (순서와 상관있음)
요소별 곱하기(Element-wise Multiplication)
A∘B
행과 열에 있는 요소들끼리 곱해서 새로운 행렬을 만드는 연산
행렬 덧셈과 마찬가지로 같은 차원을 갖는 행렬 사이에만 연산이 가능
전치 행렬(transposed matrix)
: 행렬 계산을 위한 모양 맞추기를 할 때
np.transpose(A)
-- 더 쉬운 방법
A.T
단위 행렬(identity matrix)
: 어떤 행렬이든 단위 행렬을 곱하면 그대로 유지
np.identity(n)
역행렬(inverse matrix)
역행렬(inverse matrix)
꼭 정사각형
모든 행렬에 역행렬이 있는 것 아님
np.linalg.pinv()
선형대수학과 행렬/벡터
선형대수학이 머신 러닝에 필요한 이유
머신 러닝을 할 때는 데이터를 일차식에 사용하는 경우가 많다.
행렬을 이용하면 정돈된 형태로 효율적이게 계산을 할 수 있다.
선형대수학은 일차식, 일차 함수, 행렬, 벡터를 다루는 학문이기 때문에 필수!
함수
그래프
평균변화율
구간을 정해서 해당 구간의 기울기 계산
순간변화율
범위를 극한으로 줄여서 0에 가깝게 만들어서 변화율 구하기
미분
순간 변화율을 구해주는 함수
기울기
그래프가 해당 지점에서 얼마나 기울어져 있는지
어떤 방향으로 가야 가장 가파르게 올라갈 수 있는지
극소점(local minimum) 최소점(global minimum)
극대점(local maximum) 최대점(globla maximum)
안장점(saddle point) : 기울기가 평평해졌다가 다시 가팔라지는 점
고차원에서 미분
편미분 : 함수를 변수 하나에 대해서만 미분
인풋 변수가 두 개 이상일 때
인풋 변수가 3개가 넘으면 시각적으로 이해하기 힘들지만 편미분과 기울기 개념은 똑같이 적용 가능
편미분을 통해 기울기 벡터를 구할 수 있고, 기울기 벡터는 가장 가파르게 올라가는 방향을 가리킨다는 점은 언제나 똑같다.
머신 러닝에 미분이 필요한 이유
머신 러닝 : 경험을 통해 특정 작업에 대한 성능이 좋아지는 프로그램
머신 러닝의 최적화를 위해서는 극소점이나 극대점을 찾아야 한다 - 순간변화율, 미분, 기울기 개념 필요
어렵지만 재미있다 ㅎㅎ
'머신 러닝' 머신 러닝 기본기|작성자 Index