딥러닝 정규화 (배치 정규화, Relu) 바로 알기

deep learning normalization(노멀라이제이션)

이번에 소개할 것은 정규화입니다. 딥러닝에서의 정규화는 항상 뜨거운 주제였습니다. 정규화를 제대로 하는 것은 여러분의 모델이 효과적으로 훈련하도록 하는 데 중요한 요소가 될 수 있지만, 이것은 들리는 것만큼 쉽지 않습니다. 예를 들어 ResNet을 미세 조정할 때 배치 정규화 계층을 어떻게 처리해야 할까요? 다중 GPU 환경에서 배치 정규화 레이어는 어떻게 될까요? 학습 중에 배치 크기를 변경하면 어떻게 될까요? 당신이 정규화를 잘 이해하지 못한다면, 이 질문들은 답하기가 어려울 것입니다. 이것이 제가 이전에 배치 정규화, 중량 정규화, 레이어 정규화를 다루었던 이유입니다. 또한 그것들이 이 블로그에서 효과적인 이유입니다. 비록 그 당시에 저는 정규화에 대한 전체적인 시각을 제공하기 위해 최선을 다했지만, 그 이후로 저는 더 많은 것을 배웠고, 그룹 정규화와 경기 정규화 같은 많은 중요한 발전들이 있었습니다. 따라서, 저는 정규화, 그 효과, 그리고 그 변형에 관한 완전히 새로운 글을 쓰기로 결정했습니다. 본 포스트는 배치 정규화의 기본 사항과 중량 정규화, 그룹 정규화, 인스턴스 정규화, 계층 정규화 등의 다른 정규화 방법을 다룰 것입니다. 먼저 이 모든 것을 시작한 방법인 배치 정규화를 검토(또는 도입) 하는 것으로 시작하겠습니다. 배치 정규화는 네트워크의 활성화를 정규화하는 표준화 방법입니다. 각 형상에 대해 배치 정규화는 미니 배치 처리에서 해당 형상의 평균과 분산을 계산한다. 그런 다음 평균을 빼고 형상을 미니 일괄 기준 편차로 나눈다. 이렇게 하면 활성화가 0 평균과 단위 표준 편차로 제한됩니다. 이것에는 많은 잠재적인 문제들이 있습니다. Relu 활성화 함수를 사용하고 있었다면? 가중치의 크기를 증가시킴으로써 네트워크 성능이 향상된 경우에는 어떻게 해야 할까요? 이러한 잠재적 문제를 해결하기 위해, 배치 정규화에는 두 가지 학습 가능 매개 변수, 즉 활성화의 평균과 크기가 추가됩니다. 배치 정규화는 표준화된 활성화를 다시 검색하고 상수를 추가합니다. 이것은 네트워크의 표현성이 변하지 않는다는 것을 의미합니다. 형상 배율이란 가능한 형상의 양의 값 범위(척도)를 변경하는 것입니다. 데이터 집합의 기능들은 종종 서로 다른 척도를 가지고 있습니다. 예를 들어 무게와 키, 집 값, 방 수 등은 단위와 값의 범위가 다르죠. 모델을 사용하여 그러한 기능들 간에 서로 다른 스케일의 데이터셋을 훈련시키면 성공적으로 훈련될 수 없을 것입니다. 따라서 학습 전 사전 처리 시 형상 사이의 간격을 균일하게 만드는 것이 필요하게 됩니다. 피쳐 스케일링 유형을 살펴봅시다. 피쳐 스케일링에는 다음과 같은 두 가지 주요 유형이 있습니다. 정규화와 표준화 정규화란 무엇일까요? 정규화는 형상 값의 범위를 일정한 범위 이내로 유지하는 변환입니다. 대부분 [0, 1] 또는 [-1, 1]의 범위 내로 표현이 됩니다. 예를 들어 [0, 1]로 설정하면 th 값을 변환하는 공식은 다음과 같습니다. 이는 뒤에서 언급합니다. 표준화란 무엇일까요? 표준화는 형상의 평균을 0과 분산 1로 만드는 변환입니다. 변환식은 다음과 같습니다. 표준화 후 평균이 0이라는 것을 값을 통해 쉽게 알 수 있습니다. 실제로 분산이 1이 될 것이라는 것을 계산하고 확인할 수 있지만, 직관적으로 이해합시다. 원래 표준 편차는 데이터의 변화율과 각 데이터가 평균으로부터 얼마나 떨어져 있는지를 나타냅니다. 따라서 전체 데이터를 표준 편차로 나누는 것은 포진율을 1로 설정하는 것을 의미한다는 것을 알 수 있습니다. 따라서 형상에 특징 스케일링을 수행함으로써 최적의 해답을 찾기 위한 단계 수를 줄일 수 있다는 장점이 있습니다. 한편, 분류 문제에서도 데이터의 특징을 스케일링하여 학습할 경우 스케일링을 수행하지 않을 때보다 분류 정확도가 향상됩니다. 놀랍죠? 다음은 실제적인 예입니다. 표준은 표준화입니다. 정규화의 경우 특이 차이가 큰 영향을 미치기 때문이죠. 표준화 및 표준화 구분하는 방법입니다. 단, 영상 데이터의 경우 학습비를 줄이기 위해 255로 나누어 정규화하는 것이 일반적이어서 [0,1]의 범위 내로 만들어지게 되는 것이죠. 정규화 사용 시 이미지 처리 시 RGB 강도 [0,255] 또는 sigmoid와 같은 활성화 기능을 사용하여 여러 CNN 모델을 사용합니다. 혹은 표준화된 것을 사용 시 로지스틱 회귀 분석, SVM, NN 그라데이션 방법 등을 사용합니다. 기존 모델-kN, k-평균-기능 등의 거리를 사용하여 모델링할 수도 있습니다. PCA, LDA 및 커널 PCA와 같은 추출 방법 사용하지 않을 경우에는 결정 트리, 랜덤 포리스트를 사용합니다. Sklearn에서 구현해둔 홍채 데이터를 이용하여 표준화 및 정규화의 효과를 확인하면 됩니다. 홍채는 4개의 설명 변수와 1개의 객관적 변수(홍채 품종)로 구성된다. 그중 길이와 폭의 두 가지 설명 변수를 사용하여 다양성을 예측하는 분류 문제는 로지스틱 회귀 분석에 의해 이루어집니다. 학습 결과가 원본 데이터와 표준화된 데이터 간에 어떻게 다른지 확인해보시기 바랍니다. 두 가지 특징을 가진 수량과 라벨과 함께 데이터를 표시하여 분류할 수 있는 방법을 선택하여 확인해보시기 바랍니다. 변환 전후의 데이터를 그래프로 그려 기하학적으로 어떻게 변하는지 봅시다. 파란색 원본 데이터는 수평 축 x1에서 분산이 더 큽니다. 또한 녹색 표준화 데이터는 [0,1]에 있습니다. 그러나 우리는 훈련 데이터를 사용하고 있기 때문에 그 범위를 초과하는 일부 시험 데이터도 확인할 수가 있게 됩니다. 표준화에 의한 학습 결과의 차이를 로지스틱 회귀 분석을 사용한 적합성을 파악하는 방법입니다. 로지스틱 회귀는 표준화를 사용하기 때문에 학습 결과의 차이를 표준화와 원본 데이터와만 비교합니다. 즉, 위의 예시에서 녹색과 청색 데이터를 가지고 학습하는 것을 말합니다.

Leave a Comment