반응형

mini batch란?

미니 배치(Mini-batch)는 데이터를 작은 그룹으로 나누어 신경망 모델의 학습을 수행하는 방법입니다. 일반적으로 전체 데이터셋을 한 번에 사용하여 학습하는 것보다 미니 배치를 사용하는 것이 계산 효율성과 일반화 성능 측면에서 유리합니다.

 

mini batch 학습 단계

  1. 데이터셋 분할: 전체 데이터셋을 작은 배치로 나눕니다. 배치는 주로 2 거듭제곱 개수로 설정됩니다(: 32, 64, 128 ).
  2. 순전파: 미니 배치에 대해 순전파를 수행하여 예측값을 계산합니다. 입력 데이터와 예측값을 기반으로 손실 함수를 계산합니다.
  3. 역전파: 손실 함수를 사용하여 역전파를 수행하여 가중치와 편향에 대한 그래디언트(gradient) 계산합니다.
  4. 매개변수 업데이트: 계산된 그래디언트를 사용하여 가중치와 편향을 업데이트합니다. 이를 위해 최적화 알고리즘(: 확률적 경사 하강법) 사용합니다.
  5. 위의 2~4단계를 반복: 나머지 미니 배치에 대해서도 순전파, 역전파, 매개변수 업데이트를 반복하여 모든 미니 배치에 대한 학습을 완료합니다.

 

mini batch 장점

  • 계산 효율성: 전체 데이터셋을 한 번에 처리하는 것보다 작은 배치로 처리하는 것이 계산 속도를 향상시킵니다. 특히 GPU와 같은 병렬 컴퓨팅 환경에서 효과적입니다.
  • 일반화 성능: 미니 배치 학습은 모델이 더 일반화되도록 도움을 줍니다. 미니 배치를 사용하면 데이터의 다양성을 높이고, 모델이 더 일반적인 패턴을 학습하도록 돕습니다.
  • 경사 하강법의 안정성: 미니 배치 학습은 학습 과정에서 그래디언트의 평균을 사용하기 때문에 노이즈에 대한 영향을 줄일 있습니다. 이는 학습 과정의 안정성을 향상시킵니다.
반응형

'머신러닝 & 딥러닝 > 용어' 카테고리의 다른 글

Bounding box coordinates(in 딥러닝)  (0) 2023.04.09
반응형

Bounding box 이란?

Bounding box는 이미지 안에서 박스 형태로 위치를 표시해주는 것을 말합니다.

Coordinates 이란?

Coordinates는 좌표라는 뜻을 가지고 있고, 딥러닝에서도 좌표라는 의미로 사용됩니다.

 

Bounding box Coordinates

Bounding box에서 사용되는 coordinate는 보통 center coordinatescorner coordinates입니다. 

기본적으로 center coordinates은 주로 IoU를 계산할 때 사용됩니다. corner coordinates는 anchor나 MSELoss를 계산할 때 사용합니다.

 

 

cx = (x1 + x2) / 2

cy = (y1 + y2) / 2

w = x2 -x1

h = y2 -y1

 

 

 

 

 

 

코드

def corner_to_center(corner_boxes):
    """
    input
    corner_boxes: corner coordinates boxes : [N, 4] (x1, y1, x2, y2)
    output
    center_boxes: center coordinates boxes : [N, 4] (cx, cy, w, h)
    """
    cxcy = (corner_boxes[..., :2] + corner_boxes[..., 2:4]) / 2
    wh = corner_boxes[..., 2:4] - corner_boxes[..., :2]
    centor_boxes = torch.cat([cxcy, wh], dim=-1)
    return centor_boxes
    
    
def center_to_corner(center_boxes):
    """
    input
    center_boxes : center coordinates boxes : [N, 4] (cx, cy, w, h)
    output
    corner_boxes : corner coordinates boxes : [N, 4] (x1, y1, x2, y2)
    """
    x1y1 = center_boxes[..., :2] - (center_boxes[..., 2:4])/2
    x2y2 = center_boxes[..., :2] + (center_boxes[..., 2:4])/2
    corner_boxes = torch.cat([x1y1, x2y2], dim=-1)
    return corner_boxes

 

 

 

 

 

 

반응형

'머신러닝 & 딥러닝 > 용어' 카테고리의 다른 글

[용어]mini batch  (0) 2023.05.14

+ Recent posts