하이퍼 파라미터란?
머신러닝 모델이 데이터를 학습하기 전에 사람이 직접 설정하는 변수
주요 특징
- 사용자가 설정: 모델이 학습하는 것이 아니라 사람이 직접 값을 정하는 것
- 학습제어: 학습률, 옵티마이저 선택, 모델 구조(층 수, 뉴런 개수_ 등 학습 과정을 제어하는 역할
- 성능에 직접 영향: 모델의 성능에 직접적인 영향을 미치므로, 최적의 값을 찾기 위해 하이퍼파라미터 튜닝 중요
예시
- 학습률 : 모델이 학습하는 속도를 조절하는 값입니다.
- 층의 개수 및 뉴런의 개수 : 신경망의 깊이와 너비를 결정합니다.
- 배치 크기 : 한 번에 학습할 데이터의 양을 설정합니다.
- 옵티마이저 : 모델의 가중치를 업데이트하는 방식을 선택합니다.
- 드롭아웃 비율 : 과적합을 방지하기 위해 무작위로 뉴런을 비활성화하는 비율입니다.
VOCAB_SIZE : 모델이 처리할 수 있는 총 고유 토큰의 개수
EMBEDDING_DIM : 각 토큰을 표현하는 임베딩 벡터의 차원을 결정
MAX_LEN : 모델 입력으로 사용되는 시퀀스의 최대 길이
EPOCHS : 전체 훈련 데이터셋이 신경망을 통해 완전히 학습되는 횟수
BATCH_SIZE : 모델 학습 시 한 번의 반복동안 모델에 전달되는 데이터 샘플의 개수
EPOCHS 값이 커질 수록 모델은 데이터를 더 많이 학습하지만, 과적합의 위험도 커진다.
임베딩이란?
텍스트, 이미지와 같은 데이터를 컴퓨터가 이해하고 처리할 수 있도록 수치화된 '벡터(vector)'표현으로 변환하는 과정
임베딩의 핵심 개념 및 원리
- 비수치 데이터를 숫자로 변환 : 컴퓨터는 숫자만 이해할 수 있으므로, 사람이 사용하는 자연어나 이미지와 같은 비정형 데이터를 숫자의 배열(벡터)로 바꿔야 합니다.
- 의미 및 관계 함축 : 단순히 데이터를 숫자로 나열하는 것이 아니라, 데이터 간의 의미적, 문법적 관계 및 유사성을 포착하여 벡터 공간에 표현합니다.
- 벡터 공간에서의 유사성 : 임베딩된 벡터 공간에서는 의미적으로 유사한 단어나 이미지는 서로 가까운 위치에 배치됩니다. 이를 통해 데이터 간의 관계를 수학적으로 계산할 수 있습니다.
- 고차원 데이터를 저차원으로 : 원본 데이터는 매우 복잡하고 고차원일 수 있는데, 임베딩은 이를 더 효율적인 저차원의 '밀집 벡터(dense vector)'표현으로 압축합니다.
임베딩을 사용하는 이유
- 기계 학습 모델의 입력 : 대부분의 머신러닝 알고리즘은 숫자형 데이터만 입력으로 받을 수 있기 때문에 임베딩은 필수적
- 성능 향상 : 데이터의 의미적 특성을 잘 보존하므로, 모델이 데이터를 더 잘 이해하고 학습하며 일반화할 수 있도록 돕습니다.
- 다양한 응용 분야 : 의미 기반 검색(Semantic Serach), 추천 시스템, 기계 번역, 이미지 분류 등 다양한 AI 애플리케이션의 기반 기술로 사용됩니다.
Pooling 이란?
주로 합성곱 신경망(CNN) 에서 사용되는 핵심 기법으로, 입력 데이터의 공간적 크기를 줄이는 다운샘플링(Downsampling) 연산입니다.
pooling의 목적과 효과
- 차원 축소 : 특징 맵의 크기를 줄여 네트워크의 매개변수(파라미터) 수와 계산량을 감소시킵니다.
- 과적합 방지 : 매개변수 수를 줄여 모델의 복잡성을 제어하고 과적합을 방지하는 데 도움을 줍니다.
- 변환 불변성 확보 : 이미지 내에서 객체나 패턴의 위치가 조금 바뀌어도 중요한 특징을 인식할 수 있도록 모델을 위치 변화에 둔감 하게 만듭니다.
- 주요 특징 추출 : 특정 영역 내의 정보를 요약하여 가장 중요하거나 대표적인 특징만 남깁니다.
선형 함수와 비선형 함수의 비교
선형 함수 : 입력과 출력 데이터의 관계가 직선 형태로 나타나는 함수입니다.
- 특징 : y= ax + b 와 같은 1차 방정식 형태로 표현
- 한계 : 선형 함수만으로는 복잡하고 비선형적인 실제 세계의 데이터 패턴을 모델링하기 어렵다. 신경망의 모든 층에 선형 함수만 적용하면, 여러 층을 쌓아도 결국 하나의 선형 함수와 동일한 효과를 내므로 층을 깊게 쌓는 의미가 없어짐
비선형 함수 : 입력과 출력 데이터의 관계가 곡선 형태로 나타나는 함수, 직선 하나로는 표현할 수 없는 복잡한 패턴을 표현할 수 있습니다.
- 특징 : 복잡한 데이터 분포를 모델링하고 학습할 수 있습니다.
- 필요성 : 딥러닝 모델이 다양한 형태의 데이터를 학습하고 예측할 수 있도록 하려면 각 층마다 비선형성을 도입해야 합니다.
비선형 함수와 활성화 함수
활성화 함수 : 신경망의 각 뉴런에서 선형 변환된 결과값에 적용되어 다음 층으로 전달할 신호를 결정하는 역할을 합니다. 이때 비선형 함수를 활성화 함수로 사용하는 것이 핵습니다.
- 모델의 표현력 증대 : 비선형 함수를 통해 신경망은 선형 함수만으로는 해결할 수 없는 복잡하고 고차원적인 패턴과 비선형적 결정 경계를 학습할 수 있습니다.
- 깊은 신경망의 의미 부여 : 선형 함수는 층을 깊게 쌓는 의미가 없지만, 비선형 활성화 함수를 사용하면 각 층이 새로은 특징 공간을 만들고 의미 있는 학습을 할 수 있습니다.
ReLU와 Sigmoid 활성화 함수
Sigmoid 함수
- 특징 : 입력값을 0과 1사이의 값으로 압축하는 S자형 비선형 함수입니다. 과거에 많이 사용되었으며, 출력값을 확률로 해석할 수 있습니다.
- 한계 : 입력값이 매우 크거나 작을 때 함수의 기울기가 0에 가까워지는 기울기 소실(Vanishing Gradient)문제가 발생하여 학습 속도가 느려지거나 학습이 어려워질 수 있습니다.
ReLU(Rectified Linear Unit) 함수
- 특징 : 현재 딥러닝에서 가장 널리 사용되는 활성화 함수입니다. 0보다는 큰 입력값은 그대로 출력하고, 0보다 작은 입력값은 0으로 출력합니다. (f(x) = max(0,x)). 단순한 구조 덕분에 계산 복잡도가 낮고, Sigmoid 함수의 기울기 소실 문제를 완하하여 학습 속도를 개선했습니다.
- 비선형성 : ReLU는 두 개의 직선 (y=0인 부분과 y=x인 부분)으로 구성되어 있지만, 전체적으로는 꺾이는 지점 때문에 비선형 함수로 분류됩니다.
Dense Layer 란?
신경망에서 가장 기본적이고 핵심적인 구성 요소, 완전 연결층(Fully Connected Layer) 라고도 불립니다
- 정보의 집계 및 변환 : 이전 층의 모든 입력 노드로부터 정보를 받아, 각 연결에 해당된 가중치와 변향을 사용하여 새로운 출력 값을 만듭니다.
- 복잡한 패턴 학습 : 입력과 출력 사이에 매핑을 생성함으로써 신경망이 데이터 내의 복잡하고 추상적인 패턴을 학습할 수 있도록 돕습니다. 활성화 함수와 결합하여 비선형성을 도입하며, 이를 통해 복잡한 관계를 모델링할 수 있습니다.
- 특징 공간 변환 : 입력 데이터의 특징 공간을 문제 해결에 더 적합한 새로운 차원의 공간으로 변환합니다.
- 최종 출력 결정 : 신경망 모델의 마지막 단계에서 최종 예측을 생성하는 출력층 역할을 자주 수행합니다.
model = tf.keras.Sequential([
tf.keras.layers.Embedding(VOCAB_SIZE, EMBEDDING_DIM, input_shape=(MAX_LEN,)), # 입력층
tf.keras.layers.GlobalAveragePooling1D(), #은닉층
tf.keras.layers.Dense(64, activation='relu'), #출력층
tf.keras.layers.Dense(1, activation='sigmoid') #출력층
])
model.summary()
Optimizer(최적화 함수)란?
기계 학습 모델의 손실 함수(Loss Function) 값을 최소화하여 모델의 성능을 향상시키는 데 사용되는 알고리즘
주요 개념 및 작동 방식
- 손실 함수(Loss Function) : 모델의 예측이 얼마나 틀렸는지르 ㄹ나타내는 지표
- 경사 하강법(Gradient Descent) : 대부분의 Optimizer는 경사 하강법을 기본 원리로 합니다. 이는 손실 함수의 기울기를 계산하여 기울기가 낮아지는 방향(최솟값 방향)으로 파라미터를 점진적으로 업데이트하는 방식
- 학습률(Learning Rate) : 파라미터를 업데이트할 때 얼마나 큰 폭으로 이동할지를 결정하는 하이퍼파라미터 입니다. 학습률이 너무 크면 최솟값을 지나쳐 발산할 수 있고, 너무 작으면 학습 시간이 오래 걸릴 수 있습니다.
Mertrics(평가지표) 란?
특정 현상, 프로세스 또는 프로젝트의 성과를 정량적으로 측정하고 평가하는 기준 입니다.
평가지표의 중요성
- 객관적인 성과 측정 : 주관적인 판단을 넘어 수치화된 데이터를 기반으로 성과를 평가할 수 있습니다.
- 의사결정 지원 : 데이터를 바탕으로 한 근거 있는 의사결정을 가능하게 합니다.
- 개선점 파악 : 현재 상태와 목표 간의 차이를 명확히 보여주어 개선이 필요한 영역을 식별하도록 돕습니다.
- 동기 부여 및 책임 소재 명확화 : 명확한 목표와 지표는 팀원들의 동기를 부여하고 각자의 역할과 책임을 명확히 합니다.
평가지표의 종류
평가지표는 측정 대상과 목적에 따라 다양하게 분류될 수 있습니다.
- 핵심 성과 지표(KPI, Key Performance Indicator) : 조직이나 프로젝트의 핵심적인 목표 달성 정도를 측정하는 지표
- 일반 평가지표 (Metrics) : KPI를 달성하는 과정에서 발생하는 다양한 현상이나 변화를 관찰하고 모니터링하는 데 사용
- 정량적 지표 및 정성적 지표 : 정량적 지표, 정성적 지표
과적합이 발생한 이유

모델 복잡도가 너무 높음:
사용된 신경망의 크기(층의 수, 노드의 수)가 데이터셋의 복잡도에 비해 지나치게 커서, 모델이 데이터의 핵심 패턴이 아닌 사소한 노이즈까지 "암기"할 수 있는 능력을 가졌기 때문입니다.
데이터(D)의 양이 부족하거나 편향됨: 훈련 데이터의 양이 충분하지 않거나, 전체 모집단의 특징을 제대로 반영하지 못하고 훈련 데이터에만 편중되어 있어서, 모델이 일반적인 특징을 학습할 기회가 부족했습니다.
훈련 시간(T)이 너무 길었음: 30 Epoch 그래프에서 보듯, 최적화 시점(Sweet Spot)을 지나서도 계속 훈련했기 때문입니다.
최적화 시점은 보통 검증 손실이 증가하기 시작하는 지점입니다 (10 Epoch 그래프에서 4~5 Epoch 이후일 가능성).
부적절한 정규화(Regularization) 부족: L1/L2 정규화나 드롭아웃(Dropout)과 같은 과적합 방지 기법을 사용하지 않았거나, 그 강도가 너무 약했을 수 있습니다.