[인공지능 기초] 정규화 (Normalization)

2023. 2. 26. 21:39·AI Research/Artificial Intelligence
728x90
반응형

이전 포스팅에 이어서 이번 게시물에서는 Normalization에 대해 설명하겠습니다.

​

​

▶ 정규화(Normalization)

이 기법은 학습시에 사용할 데이터 값의 범위를 0~1사이로 일정하게 만들어주기 위해 사용합니다. 데이터를 0-1사이의 범위로 바꿔주는 방법은,

$\frac{정규화하고자하는\ 값\ -\ 데이터\ 값들\ 중\ 최소\ 값}{데이터\ 값들\ 중\ 최대\ 값\ -\ 데이터값들\ 중\ 최소\ 값}$정규화하고자하는 값 − 데이터 값들 중 최소 값데이터 값들 중 최대 값 − 데이터값들 중 최소 값​​

위와 같습니다.

그렇다면, Normalization이 필요한 이유는 무엇일까요?

1. 사용하는 데이터의 범위가 너무 크면 노이즈가 발생하기 쉽고, 오버피팅이 일어나기 쉽습니다.

2. 학습을 더 빠르게 진행할 수 있도록 도와주며, local minimum에 빠질 가능성이 줄어듭니다.

3. 범위가 너무 커서 값의 분포 범위가 넓어지면 값을 정하기가 힘들어집니다.

4. 머신러닝에서 범위가 큰 feature의 영향이 비대해지는 것을 방지합니다.

​

이중 2번에 대해서 좀 더 자세하게 설명해보겠습니다.

출처

위 그림의 가운데는 정규화 되지 않은 입력이 주어진 경우를, 가장 아래쪽은 정규화된 입력이 주어진 경우를 그려놓은 것입니다. 정규화되지 않은 상태에서는 손실함수 공간 그래프가 굉장히 가늘고 길게 그려지는 것을 확인할 수 있습니다.

사람의 키와 시력을 가지고 성별을 판별하는 모델을 예로 들어보겠습니다. 키 데이터의 경우에는 대략 100-200 사이의 범위를 가질 것이고, 시력 데이터의 경우는 대략 0-2 사이의 범위를 가질 것입니다. 두 데이터의 범위 차이가 매우 심한데 이때, 이 데이터들을 모델에 그대로 입력하게 되면 각각의 가중치 값의 차이도 심해지게 됩니다. 따라서 가늘고 긴 그래프 형태를 가지게 됩니다. 반면에 0-1사이로 정규화하게되면 입력 값들이 모두 동일한 범위를 가지게 되고, 때문에 가중치 값이 크게 차이나지 않습니다. 따라서 가장 아래 그림처럼 대칭적인 그래프를 가지게 됩니다.

​

가중치 값 조정을 위해서 위 그래프에 경사하강법을 적용하면 정규화되지 않은 데이터들은 균형적이지 않기 때문에 시작점에 영향을 많이 받게 됩니다. 그렇기 때문에 많은 step이 필요하게 되고, 매우 작은 학습율(learning rate)을 사용할 수 밖에 없습니다. 정규화된 데이터는 어디서 시작하든 경사하강법으로 쉽게 최적화점을 찾아갈 수 있습니다. 따라서 많은 step이 필요하지 않고 큰 학습률을 사용함으로써 빠른 학습이 가능하게 합니다.

​

또한,

위 그림처럼 정규화를 하면 왼쪽 그래프를 오른쪽 그래프로 변형시킬 수 있습니다. 변동폭이 크지 않은 완만한 그래프가 그려지기 때문에 local optimum(local minimum)에서 더 빨리 빠져나올 수 있는 것입니다.

​

​

▶ Batch Normalization(배치 정규화)

딥러닝에서 가장 많이 쓰는 정규화 방법으로는 Batch Normalization이 있습니다. 배치 정규화는 간단하게 설명하면, 학습 시 미니 배치를 한 단위로 정규호를 하는 것으로 데이터 분포의 평균이 0, 분산이 1이 되도록 정규화 하는 것을 말합니다. 좀 더 자세한 설명은 후에 별도의 포스팅을 통해 설명하도록 하겠습니다!

728x90
반응형
저작자표시 (새창열림)

'AI Research > Artificial Intelligence' 카테고리의 다른 글

[인공지능 기초] 선형 회귀(Linear Regression)와 로지스틱 회귀(Logistic Regression) - 2  (0) 2023.02.28
[인공지능 기초] 선형 회귀(Linear Regression)와 로지스틱 회귀(Logistic Regression) - 1  (0) 2023.02.28
[인공지능 기초] Regularization  (0) 2023.02.26
[인공지능 기초] 랜덤 포레스트(Random Forest)  (0) 2023.02.26
[인공지능 기초] 결정 트리(Decision Tree)  (0) 2023.02.26
'AI Research/Artificial Intelligence' 카테고리의 다른 글
  • [인공지능 기초] 선형 회귀(Linear Regression)와 로지스틱 회귀(Logistic Regression) - 2
  • [인공지능 기초] 선형 회귀(Linear Regression)와 로지스틱 회귀(Logistic Regression) - 1
  • [인공지능 기초] Regularization
  • [인공지능 기초] 랜덤 포레스트(Random Forest)
ga.0_0.ga
ga.0_0.ga
    반응형
    250x250
  • ga.0_0.ga
    ##뚝딱뚝딱 딥러닝##
    ga.0_0.ga
  • 전체
    오늘
    어제
    • 분류 전체보기 (181)
      • Paper Review (51)
        • Video Scene Graph Generation (6)
        • Image Scene Graph Generation (18)
        • Graph Model (5)
        • Key Information Extraction (4)
        • Fake Detection (2)
        • Text to Image (1)
        • Diffusion Personalization (4)
        • etc (11)
      • AI Research (49)
        • Deep Learning (30)
        • Artificial Intelligence (15)
        • Data Analysis (4)
      • Pytorch (10)
      • ONNX (5)
      • OpenCV (2)
      • Error Note (34)
      • Linux (2)
      • Docker (3)
      • Etc (7)
      • My Study (16)
        • Algorithm (10)
        • Project (4)
        • Interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    RuntimeError
    Inductive bias
    GCN
    그래프신경망
    torch.nn
    활성화 함수
    tensorflow
    Logistic regression
    TypeError
    fine tuning
    dataloader
    pandas
    permute
    Activation Function
    i3d
    차원의 저주
    HRNet
    나이브 베이즈 분류
    dataset
    pytorch
    contiguous
    3dinput
    ONNX
    forch.nn.functional
    transformer
    JNI
    알고리즘
    오차 역전파
    정규화
    linear regression
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ga.0_0.ga
[인공지능 기초] 정규화 (Normalization)
상단으로

티스토리툴바