기계학습에서의 수학 역할
- 수학은 목적함수를 정의하고, 목적함수의 최저점을 찾아주는 최적화 이론을 제공합니다.
- 최적화(optimization) 이론에 학습률(learning rate), 멈춤 조건과 같은 제어를 추가하여 알고리즘 구축
- 사람은 알고리즘을 설계하고, 데이터를 수집
벡터(vector)
- 샘플을 특징 벡터로 표현(feature vector)
예) Iris 데이터에서 꽃받침의 길이, 꽃받침의 너비, 꽃잎의 길이, 꽃잎의 너비라는 4개의 특징이 각각 5.1, 3.5, 1.4, 0.2인 샘플
- 요소의 종류와 크기 표현
- 데이터 집합의 여러 개 특징 벡터를 첨자로 구분
행렬(matrix)
- 여러 개의 벡터를 담음
- 훈련집합을 담은 행렬을 설계행렬(design matrix)이라 부름
예) Iris 데이터에 있는 150개의 샘플을 설계 행렬 X로 표현
텐서(tensor)
- 3차원 이상의 구조를 가진 숫자 배열(array)
- 0차 = 수(scalar)
- 1차 = 벡터
- 2차 = 행렬
- 고차원
예) 3차원 구조의 RGB 컬러 영상
퍼셉트론(perceptron)
- 1958년 고안한 분류기(classifier) 모델
- 퍼셉트론의 동작을 수식으로 표현
계산 그래프
# Numpy
import numpy as np
np.random.seed(0)
N, D = 3, 4
x = np.random.randn(N, D)
y = np.random.randn(N, D)
z = np.random.randn(N, D)
a = x * y
b = a + z
c = np.sum(b)
grad_c = 1.0
grad_b = grad_c * np.ones((N, D))
grad_a = grad_b.copy()
grad_z = grad_b.copy()
grad_x = grad_a * y
grad_y = grad_a * x
# PyTorch
import torch
device = 'cuda:0'
N, D = 3, 4
x = torch.randn(N, D, requires_grad = True,
device = device)
y = torch.randn(N, D, device=device)
z = torch.randn(N, D, device=device)
a = x * Y
b = a + z
c = torch.sum(b)
c.backward()
print(x.grad)
'BOOTCAMP > 프로그래머스 인공지능 데브코스' 카테고리의 다른 글
[6주차 - Day4] ML_basics - Linear Algebra, Matrix Calculus (0) | 2023.05.14 |
---|---|
[6주차 - Day3] ML_basics - E2E (0) | 2023.05.14 |
[6주차 - Day1] 인공지능과 기계학습 소개 (0) | 2023.05.12 |
[5주차 - Day3] Django로 동적 웹 페이지 만들기 (0) | 2023.05.11 |
[5주차 - Day2] Web Application with Django (0) | 2023.04.20 |