본문 바로가기

분류 전체보기

(124)
03 파이토치 기초 (3) 손실 함수, 최적화 손실 함수(Loss Function) 단일 샘플의 실젯값과 예측값의 차이가 발생했을 때 오차가 얼마인지 계산하는 함수이다. 인공 신경망은 실젯값과 예측값을 통해 계산된 오찻값을 최소화해 정확도를 높이는 방법으로 학습이 진행된다. 목적 함수(Objective Function) : 함숫값의 결과를 최댓값 또는 최솟값으로 최적화하는 함수 비용 함수(Cost Function) : 전체 데이터에 대한 오차를 계산하는 함수 손실 함수 $\subset$ 비용 함수 $\subset$ 목적 함수의 포함 관계를 가지고 각각의 의미를 정확히 구분해 사용하는 것이 좋다. 손실과 비용을 코드로 표현하자면 다음과 같다. for epoch in range(10): cost = 0.0 for batch in dataloader: l..
03 파이토치 기초 (2) 가설 가설(Hyprothesis)이란? 어떤 사실을 설명하거나 증명하기 위한 가정으로 두 개 이상의 변수의 관계를 검증 가능한 형태로 기술하여 변수 간의 관계를 예측하는 것을 의미한다. 가설은 어떠한 현상에 대해 이론적인 근거를 토대로 통계적 모형을 구축하며, 데이터를 수집해 해당 현상에 대한 데이터의 정확한 특성을 식별해 검증한다. 연구가설(Research Hyprothesis) : 연구자가 검증하려는 가설로 귀무가설을 부정하는 것으로 설정한 가설을 증명하려는 가설이다. 귀무가설(Null Hyprothesis) : 통계학에서 처음부터 버릴 것을 예상하는 가설이다. 변수 간 차이나 관계가 없음을 통계학적 증거를 통해 증명하려는 가설이다. 대립가설(Alternative Hyprothesis) : 귀무가설과 반대..
03 파이토치 기초 (1) 텐서 텐서(Tensor)란? 넘파이 라이브러리의 ndarray 클래스와 유사한 구조로 배열이나 행렬과 유사한 자료 구조(자료형)이다. 파이토치에서는 텐서를 사용하여 모델의 입출력뿐만 아니라 모델의 매개변수를 부호화(Encode)하고 GPU를 활용해 연산을 가속화 할 수 있다. 공통점 수학 계산, 선형 대수 연산을 비롯해 전치, 인덱싱, 슬라이싱, random 샘플링 등 다양한 텐서 연산을 진핼할 수 있다. 차이점 CPU에서 사용하는 텐서와 GPU에서 사용하는 텐서의 선언 방식에 있다. 파이토치는 CPU 텐서와 GPU 텐서로 나눠지고, 각각의 텐서를 상호 변환하거나 GPU 사용 여부를 설정한다. 텐서 생성 텐서 생성 방법 torch.tensor() 입력된 데이터를 복사해 텐서로 변환하는 함수 데이터를 복사하기 ..
4-3 : Ensemble Learning - Bagging 자료 출처 Sampling without Replacement 앙상블의 key는 다양성인데 data의 다양성과 model의 다양성 2가지가 있다. Bagging은 전자를 목적으로 한다. k-fold data split 데이터를 k개의 fold로 나눈뒤 k개의 개별적인 모델을 각각 (k-1)개의 fold로 학습시킨다. 이론적으로는 개별 모델들이 독립적이라면 앙상블의 에러는 개별 모델들 보다 k배 만큼 작을 것이다. 하지만 어떤 $f_i$ 모델과 $f_j$ 모델을 고르더라도 무조건 (k-2) 개의 fold는 공통이다. 따라서 독립적이라고 보기 어렵다. 최종 output은 다음과 같다. k-fold 방식으로 학습하는 방법론은 잘 쓰이지 않는 사장된 방법론 이라고 한다. Bootstrap Aggregating ..
4-2 : Ensemble Learning - Bias-Variance Decomposition 자료 출처 서로 다른 모델들은 다른 클래스 바운더리나 fitted functions을 제공한다. 어떠한 single best model도 다른 알고리즘들에 비해서 우월하다는 결론을 내릴 수 없기 때문에 다양한 모델들이 기저가 된다. 이론 배경 데이터가 additive error를 가진 모델에서 나온다고 가정해보자 $F^*(x)$는 우리가 학습하려고 하는 target function이다. error들은 각각 독립적이고 동일한 분포에서 발생되었다. $F^*(x)$을 추정하기 위해 서로 다른 데이터셋들로 부터 만든 함수를 $\hat{F}_N(x)$이라 한다. $\hat{F}_N(x)$들을 average한 것이 $\bar{F}(x)$라 한다. 특정한 데이터 포인트에서 MSE 에러가 어떻게 발생하는지 알아보자 2..
Evaluating Regression Models 1. Average Error 실제값과 예측값의 차이를 평균내어 비교 부호 효과로 인해 부적절한 결론을 잘못 도출함 모든 샘플에서 $\pm 3$ 이상의 차이가 나지만 Average Error는 0.1로 작은 값을 나타냄 실전에서 사용 안함 2. Mean Absolute Error (MAE) 실제값과 예측값 간의 차이의 절대값을 평균내어 계산 3. Mean Absolute Percentage Error (MAPE) MAE는 예측된 y와 실제 y 사이의 절대적인 차이 정도만 제공할 수 있지만 둘 사이의 상대적인 차이는 제공할 수 없다. 아래와 같은 경우 MAE를 가지고는 두 경우를 적절하게 비교하기 어렵다. 절대적 차이보다 상대적 차이가 더 중요한 영역에서 일반적으로 채택됨(예: 제조 공정의 품질 관리) 4..
Multiple Linear Regression 목표 양적 종속 변수 Y와 예측 변수 세트 X 사이의 선형 관계를 맞춘다. 즉 coefficients 베타들을 찾는 것 ε는 noise를 의미 Regression의 타입 simple은 예측 변수 X가 1개인 것이고, multiple은 2개 이상인 것이다. linear와 non-linear의 차이는 Y와 X의 관계가 선형인지 비선형인지에 따라 다르다. 우리는 여기서 Multiple Linear Regression만 다룸 coefficients 추정 Ordinary least Square (OLS) 최소자승법이라고 부른다. 회귀모델을 통해 실제 목표값과 추정값의 차이 제곱을 최소화한다. OLS의 Matrix solution 예측 계산을 행렬로 표현하면 다음과 같다. 그리고 A = (1, 2)라는 vector..
Decision Tree 실습 앞에서 정리했던 Decision Tree를 sklearn으로 실습해보자. 2023.12.04 - [Machine Learning] - Decision Tree 먼저 기본적인 패키지를 import 해준다 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns seaborn을 통해 titanic 데이터를 로드하고 간단한 전처리를 수행한다. titanic = sns.load_dataset('titanic') # nan이 대부분인 컬럼 제거 titanic.drop(columns='deck', inplace=True) # 그 밖의 nan값이 포함된 샘플 제거 titanic.dropna(inplace=Tr..