책 (63) 썸네일형 리스트형 04 파이토치 심화 (3) 정칙화 정칙화 정칙화(Regularization)란 모델 학습시 발생하는 과대적합 문제를 방지하기 위해 사용되는 기술로, 모델이 암기(Memorization)가 아니라 일반화(Generalization)할 수 있도록 손실 함수에 규제를 가하는 방식이다. 우리가 보통 데이터를 $y=F(x) + \epsilon$으로 표현하는데, 노이즈인 $\epsilon$을 제외하고 모델이 F(x)를 학습하도록 하는 것을 목표로 삼는다. 암기란 모델이 데이터의 노이즈까지 학습한 경우이고 일반화란 데이터의 일반적인 패턴을 학습한 경우이다. 정칙화는 모델이 특정 피처나 특정 패턴에 너무 많은 비중을 할당하지 않도록 손실 함수에 규제를 가해 모델의 일반화 성능을 향상시킨다. 다시 말해 모델의 분산 값이 낮아지고 모델의 추론 능력을 개선.. 04 파이토치 심화 (2) 가중치 초기화 가중치 초기화 모델의 초기 가중치 값을 설정하는 것을 말한다. 모델 매개변수에 적절한 초깃값을 설정한다면 기울기 폭주나 기울기 소실 문제를 완화할 수 있다. 또한 모델의 수렴 속도를 향상시켜 전반적인 학습 프로세스를 개선할 수 있다. 무작위 초기화 초기 가중치의 값을 무작위 값이나 특정 분포 형태로 초기화하는 것을 말한다. 무작위(Random), 균등 분포(Uniform Distribution), 정규 분포(Normal Distribution), 잘린 정규 분포(Truncated Normal Distribution), 희소 정규 분포 초기화(Sparse Normal Distribution Initialization) 등이 있다. 무작위 초기화는 계층이 많아지고 깊어질수록 활성화 값이 양 끝단에 치우치게 .. 04 파이토치 심화 (1) 과대적합과 과소적합, 배치 정규화 과대적합과 과소적합 과대적합(Overfitting)은 훈련 데이터에서는 우수하게 예측하지만, 새로운 데이터에서는 제대로 예측하지 못해 오차가 크게 발생하는 것을 의미한다. 과소적합(Underfitting)은 훈련 데이터와 새로운 데이터 모두 성능이 좋지 않은 경우이다. 둘 다 다음과 같은 공통점이 있다. 성능 저하 모델 선택 실패 과대적합과 과소적합은 모델을 변경해 문제를 완화할 수 있다. 과대적합의 경우 모델의 구조가 너무 복잡해 훈련 데이터에만 의존하게 되어 성능이 저하된다. 반대로 과소적합의 경우 모델의 구조가 너무 단순해 데이터의 특징을 제대로 학습하지 못한 경우로 볼 수 있다. 그러므로 모델을 변경하거나 모델 구조를 개선해야 한다. 편향 분산 트레이드오프 모델이 복잡해질수록 분산은 커지고 편향은.. 03 파이토치 기초 (6) 퍼셉트론 퍼셉트론 퍼셉트론의 자세한 내용은 이전에 다룬적이 있기 때문에 파이토치에서 퍼셉트론을 구현하는 방법만 다룬다. 2023.09.13 - [책/밑바닥부터 시작하는 딥러닝] - 2장 퍼셉트론 2장 퍼셉트론 퍼셉트론이란? 퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다. 퍼셉트론 신호는 1이나 0 두가지 값을 가질 수 있다. x1, x2는 입력 신호, w1, w2는 가중치, y는 출력신호를 뜻한다. ai-junha.tistory.com 퍼셉트론 모델 실습 데이터셋 데이터셋에 perceptron.csv 파일을 사용해 퍼셉트론을 구현해본다. 데이터는 다음과 같은 형태로 제공된다. 데이터가 bool형이기 때문에 CustomDataset 클래스에서 float으로 바꿔주어야 한다. class CustomD.. 03 파이토치 기초 (5) 활성화 함수 활성화 함수 활성화 함수(Activation Function)란 인공 신경망에서 사용되는 은닉층을 활성화하기 위한 함수다. 여기서 활성화란 인공 신경망의 뉴런의 출력값을 선형에서 비선형으로 변환하는 것이다. 즉, 활성화 함수는 네트워크가 데이터의 복잡한 패턴을 기반으로 학습하고 결정을 내릴 수 있게 제어한다. 활성화 함수가 선형 구조라면, 미분 과정에서 항상 상수가 나오므로 학습을 진행하기가 어렵다. 다시 말해 활성화 함수는 입력을 정규화(Normalization)하는 과정으로 볼 수 있다. 이진 분류 이진 분류란 규칙에 따라 입력된 값을 두 그룹으로 분류하는 작업을 의미한다. 분류 결과가 맞는다면 1(True)을 반환하며, 아니라면 0(False)을 반환한다. 참 또는 거짓으로 결과를 분류하기 때문에 .. 03 파이토치 기초 (4) 데이터세트와 데이터로더, 모델 저장 및 불러오기 데이터세트와 데이터로더 데이터세트는 데이터의 집합을 의미하며, 입력값과 결괏값에 대한 정보를 제공하거나 일련의 데이터 묶음을 제공한다. 데이터세트의 구조는 일반적으로 데이터베이스의 테이블과 같은 형태로 구성되어 있다. 데이터의 구조나 패턴은 매우 다양하기 때문에 학습해야 하는 데이터가 파일 경로로 제공되거나 전처리 단계가 필요한 경우도 있다. 이처럼 데이터를 변형하고 매핑하는 코드를 학습 과정에 직접 반영하면 모듈화, 재사용성, 가독성을 떨어뜨리는 주요 원인이 된다. 이러한 현상을 방지하고 코드를 구조적으로 설계할 수 있도록 데이터세트와 데이터로더를 사용한다. 데이터세트 데이터세트 클래스의 기본형은 다음과 같다. class Dataset: def __init__(self, data, *args **kwa.. 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) : 귀무가설과 반대.. 이전 1 2 3 4 5 6 7 8 다음