본문 바로가기
728x90

기계학습10

[파이토치] 선형 회귀 모델 구현하기 파이토치에서 이미 구현되어 제공되는 함수를 불러와 선형 회귀 모델을 구현하겠습니다. nn.Linear()함수를 통해 선형 회귀 모델을 불러올 수 있습니다. mse도 nn.functional.mse_loss()라는 함수로 구현되어 있습니다. 이 두가지를 불러오겠습니다. import torch.nn as nnmodel = nn.Linear(input_dim, output_dim)import torch.nn.functional as Fcost = F.mse_loss(prediction, y_train) 이처럼 임포트하여 사용할 수 있습니다. 1. 단순 선형 회귀 구현하기 우리는 y = 2x를 가정하여 구현하겠습니다.import torchimport torch.nn as nnimport torch.nn.func.. 2024. 11. 7.
[ML] 선형 회귀와 자동 미분 선형 회귀선형 회귀란 학습 데이터와 가장 잘 맞는 하나의 직선을 찾는 일 이때 선형 회귀의 가설(직선의 방정식)은 아래와 같은 형식$$ y= Wx + b $$ 가설의 H를 따서 y 대신 다음과 같이 식을 표현$$ H(x) = Wx + b $$ 이때 x와 곱해지는 W를 가중치(Weight)라고 하며, b를 편향(bias)이라고 함 비용 함수비용 함수(cost function)  = 손실 함수(loss function)  = 오차 함수(error function)  = 목적 함수(objective function) 수식적으로 단순히 '오차 = 실제값 - 예측값'으로 정의하면 오차값이 음수가 나오는 경우가 생김제대로 된 오차의 크기를 측정할 수 없으므로, 각 오차를 제곱해준 뒤에 전부 더함 $$ cost(W,.. 2024. 11. 7.
[파이토치] 텐서 이해하기 벡터, 행렬, 텐서 스칼라 : 차원이 없는 값, 숫자가 1개벡터 : 1차원으로 구성된 값, 숫자가 여러개 나열 됨 (그림에서 1d-tensor)행렬 : 2차원으로 구성된 값 (2d-tensor)텐서 : 3차원 이상부터 텐서라고 부르지만 벡터를 1차원 텐서, 행렬을 2차원 텐서로 부름  2D Tensor딥러닝에서는 2차원 텐서를 batch size * dimension으로 표현함즉, 행렬에서 행의 크기가 batch size, 열의 크기가 dim. 더보기데이터 하나의 크기가 256이라면, 벡터 하나에 숫자가 256개 존재한다는 의미 만약 훈련 데이터가 총 3000개라면, 전체 훈련 데이터의 개수는 3000 * 256개batch size = 64이면, 컴퓨터는 한번에 64 * 256개의 데이터를 처리그럼 컴퓨.. 2024. 11. 7.
[ML] K-NN(K-Neighbor Nearest)이란? KNN, K-최근접 이웃 알고리즘 KNN은 새로운 입력과 현재 데이터 중 가장 가까운 K개의 데이터를 찾아 가장 많은 분류 값으로 분류특징지도학습유클리디안 거리 사용k는 보통 홀수를 많이 사용 "가장 가까운"이라는 개념은 현실의 3차원이 아닌 그 이상의 N차원의 일반적인 데이터에서 어떻게 정의할까? 우리의 눈으로 확인할 수 없을 뿐, 거리 계산은 동일하게 벡터 공간에서 두 벡터의 유클리디안 거리를 기반으로 계산  $$ dist =  \sqrt{(x_1-y_1)^2 + (x_2-y_2)^2 + ... + (x_n-y_n)^2 }$$ 장점이중, 다중 분류 다 적용 가능수치형 레이블에 대해서 높은 정확도단점속도가 느림하나의 예측을 진행할 때마다 전체 데이터와 비교하기 때문에 연산 횟수 증가이상치에 민감 예시 .. 2024. 4. 2.
728x90