내가 까먹을까봐 만든 블로그

전체 글

Data Science/ML & DL

과적합(Overfitting)과 과소적합(Underfitting)

딥러닝 모델 학습을 진행하다 보면 가장 자주 마주하게 되는 문제가 바로 과적합(Overfitting), 경사 소실(Gradient Vanishing)과 같은 문제이다. 이번엔 과적합(Overfitting)과 이와 반대의 개념인 과소적합(Underfitting)에 대해 발생 이유와 해결 방안에 대해 정리하고자 한다.  과적합(Overfitting)과적합(Overfitting)은 모델이 학습 데이터에 너무 잘 맞추려고 하여, 데이터의 노이즈나 불필요한 패턴까지 학습하게 되는 상황이다. 이로 인해 모델이 학습 데이터에는 높은 성능을 보이지만, 새로운 데이터(테스트 데이터)에는 일반화되지 않아 성능이 떨어진다. 발생 원인을 정리해보면 다음과 같다.모델 복잡도 과다: 모델의 파라미터 수가 너무 많아 학습 데이터의..

Data Science/ML & DL

순전파(Forward Propagation)와 오차 역전파(Backpropagation) 그리고 연쇄 법칙(Chain Rule)

순전파 (Forward Propagation) 순전파(Forward Propagation)란 입력 데이터가 신경망을 통과하면서 각 층의 가중치와 편향을 통해 연산되어 최종 출력에 도달하는 과정을 의미한다. 순전파의 목표는 주어진 입력에 따라 모델이 예측 값을 계산하는 것이다.기본적인 수식은 아래와 같다. $$ z^{(l)} = W^{(l)} a^{(l-1)} + b^{(l)} $$\(z^{(l)}\): \(l\)번째 층의 선형 결합 결과\(W^{(l)}\): \(l\)번째 층의 가중치 행렬\(a^{(l-1)}\): 이전 층의 활성화 값\(b^{(l)}\): \(l\)번째 층의 편향 벡터활성화 함수 \( \sigma \)를 적용하여 다음과 같이 출력 활성화 값을 얻을 수 있다. $$ a^{(l)} = \s..

Data Science/ML & DL

SLP(Single Layer Perceptron) vs MLP(Multilayer Perceptron) vs DNN(Deep Neural Network)

MLP(Multilayer Perceptron)와 DNN(Deep Neural Network)은 둘 다 인공신경망의 한 형태이지만, 약간의 차이가 있다. 이 둘을 이해하기 위해 가장 기본적인 SLP(Single Layer Perceptron)를 먼저 알아보자. SLP(Single Layer Perceptron)SLP는 은닉층(hidden layer)이 없으며 입력층(input layer)과 출력층(output layer)으로만 구성된다. 선형 분류 문제에 적합하며 직선 형태의 결정 경계를 학습할 수 있기 때문에, XOR 문제와 같은 비선형 분류 문제는 해결하지 못한다.  활성화 함수(activation function)는 주로 계단 함수(step function)를 사용하며, 출력은 이진 분류로 나온다...

Data Science/ML & DL

Classification vs Regression

Classification과 Regression은 머신러닝에서 예측하고자 하는 문제의 유형에 따라 사용하는 두 가지 주요 방법이다.  Classification(분류)Classification은 데이터가 특정 카테고리나 클래스에 속하는지 예측하는 방법이다. 예를 들어, 이메일을 스팸 또는 정상으로 분류하거나, 고양이와 개 이미지를 분류하는 것이 있다.출력값이 이산적(discrete)으로 특정 클래스 중 하나로 분류된다. 또한 모델의 학습 결과로 확률 값 또는 특정 클래스를 예측하게 된다.  사용되는 알고리즘에는 로지스틱 회귀, 의사결정 나무, 서포트 벡터 머신(SVM), 랜덤 포레스트, 신경망 등이 있다.  예시스팸 이메일 필터링: 이메일이 스팸인지 아닌지 0 또는 1로 구분이미지 분류: 입력된 이미지가..

Data Science/ML & DL

옵티마이저(Optimizer)와 학습률(Learning Rate)

Optimizer 위 그림은 Optimizer를 설명하면 항상 빼놓지 않고 등장한다. 개인적으로 발전과정과 각 Optimizer의 특징이 간결하게 정리되어 있어서 완벽한 시각화 자료라고 생각한다. 옵티마이저(Optimizer)란 가중치를 갱신(Update) 하기 위한 방법이다.  딥러닝 모델은 순전파(Forward Propagation) 과정에서 활성화 함수(Activation Function)를 거쳐 신경망의 가중치를 구한 후 최종 결과값과 실제 정답의 차이를 손실 함수(Loss Function)를 이용하여 계산한 한다. 그 후 역전파(Back Propagation) 과정을 수행하는데 이 때 가중치를 어떻게 업데이트할지 결정하기 위해 옵티마이저(Optimizer)가 사용된다. 이 과정을 반복하며 최적의..

Data Science/ML & DL

Softmax에 대한 고찰

Softmax와 볼츠만 분포(Boltzmann Distribution)Softmax는 최근 딥러닝 모델 연구에서 아주 중요한 역할을 한다. 대표적으로 GPT의 근간이 되는 Transformer 모델과 Attention 메커니즘에서 매우 중요한 역할을 수행하고 있다. Softmax는 주로 다중 클래스 분류 문제에서 사용되며, 입력된 로짓(logits)을 기반으로 각 클래스에 대한 확률을 계산하는 데 활용된다. 여러 카테고리 간의 확률 분포를 부드럽게 만들어 주는 역할을 한다. 이 글에서는 Softmax의 특징과 이를 개선하기 위한 다양한 기법에 대해 정리해보려 한다. Softmax는 볼츠만 분포(Boltzmann Distribution)에 영감을 받아 고안되었다.  여기서 볼츠만 분포란 열역학적 시스템의 ..

AlienCoder
외부 저장소
loading