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와 어덯게 연결

 

** 모양을 숫자를 정확히 맞춰보세요

==> 그림과 코드를 연결할 수 있음