ASAC 빅데이터 분석가 7기/ASAC 일일 기록
ASAC 빅데이터 분석가 과정 45일차 (25.02.13)
junslee
2025. 2. 13. 10:06
08_dl
1_code
1_basic
20250212이어서
1. 데이터셋 개요
- MNIST:
- 손글씨 숫자 데이터셋 (0~9, 총 10개 클래스).
- 흑백 이미지로 구성, 각 이미지 크기는 28×28 (2D).
- 데이터셋 크기: 60,000개의 학습 데이터와 10,000개의 테스트 데이터.
- 일반적인 ML에서는 28×28=784로 1차원 벡터로 변환하여 사용.
- 딥러닝에서는 CNN(Convolutional Neural Network)을 활용하여 2D 형식으로 처리 가능.
- FashionMNIST:
- 의류 관련 이미지 데이터셋 (0~9, 총 10개 클래스).
- 흑백 이미지로 구성, 각 이미지 크기는 28×28.
- CNN 계열 구조를 사용하는 것이 적합하지만, Dense 기반의 일반적인 NN 구조로도 실험 가능.
2. 딥러닝 모델 설계
- Dense 기반 설계:
- 일반적인 Fully Connected Layer를 적층하여 모델을 구성.
- 입력 이미지를 Flatten 레이어를 통해 1D 벡터로 변환.
- CNN 기반 설계:
- Convolutional Layer를 활용해 이미지의 공간적 특징을 추출.
- Pooling 및 Activation Function(ReLU 등)을 포함하여 성능을 개선.
3. 실습 환경
- GPU를 활용하여 연산 속도를 높임.
- CPU에서도 실행 가능하지만, GPU 사용 시 학습 속도가 크게 향상됨.
4. 추가 실험
- Dense 기반 모델과 CNN 모델의 성능 차이를 비교.
- 다양한 설계 방식을 도입하여 모델의 정확도 및 효율성을 평가.
MNIST와 FashionMNIST를 사용한 기본적인 신경망 설계를 학습하는 데 유용하다.
단축어
- IL (Input Layer): 입력층, 모델의 첫 번째 레이어로 데이터가 네트워크에 들어오는 부분.
- HL (Hidden Layer): 은닉층, 입력층과 출력층 사이에 위치하며 데이터의 특징을 학습하는 레이어.
- OL (Output Layer): 출력층, 모델의 최종 결과를 제공하는 레이어.
- AF (Activation Function): 활성화 함수, 뉴런의 출력을 비선형적으로 변환하여 학습 가능성을 높이는 함수(e.g., ReLU, Sigmoid).
- OE (Output Error): 출력 오류, 모델의 예측값과 실제값 간의 차이.
- OF (Objective Function): 목적 함수, 모델이 최적화하려는 수식(e.g., 손실 함수).
- UF (Update Function): 업데이트 함수, 가중치와 편향을 조정하는 데 사용되는 규칙(e.g., Gradient Descent).
**코드에 대해 볼 때
gpt : 오류 정보 좀 있다
구글링 / kaggle : 오류 가능
공식 사이트 FM
batch size
p.136 - 137
Batch Size, Epoch, Iteration의 개념과 이들의 상호작용, 그리고 학습에 미치는 영향
1. Batch Size, Epoch, Iteration의 정의
- Batch Size: 한 번의 학습(순전파와 역전파)에서 사용하는 데이터 샘플의 수.
- 예: 총 데이터가 100개이고 Batch Size가 10이라면, 한 번의 Iteration은 10개의 데이터를 사용.
- Epoch: 전체 데이터셋이 모델을 한 번 통과하는 과정.
- 예: 데이터가 100개이고 Batch Size가 10일 경우, 1 Epoch = 10 Iterations.
- Iteration: 한 번의 Batch를 처리하는 과정. 즉, 1 Epoch을 완료하기 위해 필요한 Iteration의 수는 /Batch Size.
2. Batch Size와 학습 효율성
- Batch Size를 나누는 이유:
- 메모리 절약: 전체 데이터를 한 번에 처리하면 메모리 부족 문제가 발생할 수 있음.
- 계산 효율성: 작은 Batch로 나누면 경사하강법 계산이 더 빠르고 유연하게 이루어짐.
Batch 크기에 따른 장단점
큰 Batch Size:
- 장점:
- 계산된 손실(Loss)의 분산이 작아 안정적인 학습 가능.
- 빠른 수렴 가능성 (Local Optima에 빠질 확률 감소).
- 단점:
- 과적합(Overfitting) 위험 증가.
- 메모리 소모가 크고 학습 시간이 길어질 수 있음.
작은 Batch Size:
- 장점:
- Regularization 효과(손실 값의 분산 증가로 모델 일반화 능력 향상).
- 다양한 데이터 패턴을 학습할 가능성 증가.
- 단점:
- 학습 속도 저하(Iteration 횟수 증가).
- Local Minima에 빠질 위험 증가.
3. Epoch와 Overfitting/Underfitting
- 적절한 Epoch 값을 설정하는 것이 중요함:
- Epoch 값이 너무 작으면 Underfitting 발생.
- Epoch 값이 너무 크면 Overfitting 발생 가능.
- 최적의 Epoch 값은 문제에 따라 다르며, 일반적으로 Validation Set을 통해 조정.
4. 최적화 알고리즘과 Batch Size
학습률(Learning Rate)과 Batch Size의 상호작용
- 학습률이 클 때: 큰 Batch Size가 적합하며, 빠르게 수렴할 가능성이 있음.
- 학습률이 작을 때: 작은 Batch Size가 적합하며, 세밀한 학습 가능.
실험 결과 요약
Adam Optimizer
- 작은 Learning Rate (0.0001): 작은 Batch Size에서 더 높은 성능(Test AUC) 기록.
- 큰 Learning Rate (0.001): 큰 Batch Size에서 더 높은 성능 기록.
SGD Optimizer
- 작은 Learning Rate (0.0001): 중간 크기의 Batch Size에서 더 높은 성능 기록.
- 큰 Learning Rate (0.001): 큰 Batch Size에서 더 높은 성능 기록.
5. Gradient Descent 기법별 비교
Full-Batch Gradient Descent:
- 모든 데이터를 한 번에 처리.
- 계산 정확도가 높지만 메모리 소모와 시간이 많이 듦.
Mini-Batch Gradient Descent:
- 데이터를 작은 묶음으로 나눠 처리.
- 계산 효율성과 메모리 절약 간 균형을 유지하며 가장 널리 사용됨.
Stochastic Gradient Descent (SGD):
- 데이터를 하나씩 처리.
- 메모리 소모가 적지만 손실 값 진동이 크고 수렴 속도가 느릴 수 있음.
6. 실험 결과와 결론
첨부된 논문에서는 Convolutional Neural Networks(CNN) 모델을 사용해 Histopathology 데이터셋에서 Batch Size와 Learning Rate의 관계를 실험했습니다. 결과적으로:
- 작은 Learning Rate에서는 작은 Batch Size가 유리.
- 큰 Learning Rate에서는 큰 Batch Size가 유리.
CNN p.240 - 287
CNN
- 앞에서 한 대로 MNIST 계열의 이미지 데이터를 앞에서 한 순환신경
망의 DNN의 기반으로 할 수도 있음 -> 28 by 28의 2D 데이터를
28*28=784의 1D의 데이터로 변환해서 처리를 한다 - 2D에서 아래의 예제와 같이 나타나는 특징이 사라지게 된다. -> 이
러한 2D의 이미지적인 특징을 살리면서 인공신경망에 적용하고자
한다 - 그리고 이렇게 픽셀을 1D로 피게되면, 상당히 차원이 급격하게 증가
하는 문제점이 발생을 하게 된다.
=> 2D의 특징이 날라가게 된다.
Convolution이란?
- Convolution
- 두 함수를 곱해서 적분하는 연산
- 함수 f에 다른 함수 g를 적용해서 새로운 f_new를 만들 때 사용
Image에서 Convolution이란?
- 특징 추출 : 세로 특성, 가로 특성, edge추출
- 이미지 변환 : 뿌옇게 하는 현상
-> 전통적인 이미지에 Filter를 적용하는 방식 - 필터
**오늘 한 conv에 대해서 머리 속으로 그림이 그려지셔야 한다.
++ NN와 어덯게 연결
** 모양을 숫자를 정확히 맞춰보세요
==> 그림과 코드를 연결할 수 있음