자동화된 Machine Learning의 컴퓨터 비전 작업에 대한 하이퍼 매개 변수

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

자동화된 ML 실험에서 컴퓨터 비전 작업에 특별히 사용할 수 있는 하이퍼 매개 변수를 알아봅니다.

Computer Vision 작업을 지원하여 모델 아키텍처를 제어하고 하이퍼 매개 변수를 스윕할 수 있습니다. 이러한 모델 아키텍처가 하이퍼 매개 변수는 스윕을 위한 매개 변수 공간으로 전달됩니다. 노출된 많은 하이퍼 매개 변수가 모델에 구애받지 않지만 하이퍼 매개 변수가 모델별 또는 작업별인 경우가 있습니다.

모델별 하이퍼 매개 변수

이 표에는 yolov5 아키텍처와 관련된 하이퍼 매개 변수가 요약되어 있습니다.

매개 변수 이름 Description 기본값
validation_metric_type 유효성 검사 메트릭에 사용할 메트릭 컴퓨팅 방법입니다.
none, coco, voc 또는 coco_voc여야 합니다.
voc
validation_iou_threshold 유효성 검사 메트릭을 계산할 때 상자 일치에 대한 IOU 임계값입니다.
[0.1, 1] 범위의 부동 소수점이어야 합니다.
0.5
image_size 학습 및 유효성 검사를 위한 이미지 크기입니다.
양의 정수여야 합니다.

참고: 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다.
640
model_size 모델 크기입니다.
small, medium, large 또는 extra_large여야 합니다.

참고: 모델 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다.
medium
multi_scale +/- 50%씩 이미지 크기를 변경하여 다중 스케일 이미지 사용
0 또는 1이어야 합니다.

참고: GPU 메모리가 충분하지 않으면 학습 실행이 CUDA OOM에 포함될 수 있습니다.
0
box_score_threshold 유추하는 동안 점수가 box_score_threshold보다 큰 제안만 반환합니다. 점수는 객관성 점수와 분류 확률을 곱한 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.1
nms_iou_threshold 비 최대 제거 사후 처리에서 유추하는 동안 사용되는 IOU 임계값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.5
tile_grid_size 각 이미지를 타일링하는 데 사용할 격자 크기입니다.
참고: 작은 개체 감지 논리를 사용하도록 설정하려면 tile_grid_size가 None이 아니어야 합니다.
'3x2' 형식의 문자열로 전달되어야 합니다. 예: --tile_grid_size '3x2'
기본값 없음
tile_overlap_ratio 각 차원에서 인접한 타일 간의 겹침 비율입니다.
[0, 1) 범위에서 부동이어야 합니다.
0.25
tile_predictions_nms_threshold 타일과 이미지의 예측을 병합하는 동안 NMS를 수행하는 데 사용할 IOU 임계값입니다. 유효성 검사/유추에 사용됩니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.25

이 표에는 유추 중 인스턴스 구분에 대해 maskrcnn_*에 관련된 하이퍼 매개 변수가 요약됩니다.

매개 변수 이름 Description 기본값
mask_pixel_score_threshold 개체 마스크의 일부로 픽셀을 고려하기 위한 점수 구분입니다. 0.5
max_number_of_polygon_points 마스크에서 변환한 후 다각형의 최대 좌표 쌍 수(x, y)입니다. 100
export_as_image 마스크를 이미지로 내보냅니다. False
image_type 마스크를 내보내는 이미지 유형입니다(jpg, png, bmp 옵션). JPG

모델 독립적 하이퍼 매개 변수

다음 표에서는 모델 독립적 하이퍼 매개 변수에 대해 설명합니다.

매개 변수 이름 Description 기본값
number_of_epochs 학습 Epoch의 수입니다.
양의 정수여야 합니다.
15
(yolov5: 30 제외)
training_batch_size 학습 일괄 처리 크기입니다.
양의 정수여야 합니다.
다중 클래스/다중 레이블: 78
(vit-variants:
vits16r224: 128
vitb16r224: 48
vitl16r224:10 제외)

개체 감지: 2
(yolov5: 16 제외)

인스턴스 구분: 2

참고: 기본값은 12GiB GPU 메모리에서 사용할 수 있는 가장 큰 일괄 처리 크기입니다.
validation_batch_size 유효성 검사 일괄 처리 크기입니다.
양의 정수여야 합니다.
다중 클래스/다중 레이블: 78
(vit-variants:
vits16r224: 128
vitb16r224: 48
vitl16r224:10 제외)

개체 감지: 1
(yolov5: 16 제외)

인스턴스 구분: 1

참고: 기본값은 12GiB GPU 메모리에서 사용할 수 있는 가장 큰 일괄 처리 크기입니다.
gradient_accumulation_step 기울기 누적은 모델 가중치를 업데이트하지 않고 구성된 수의 gradient_accumulation_step을 실행하면서 해당 단계의 기울기를 누적한 다음 누적된 기울기를 사용하여 가중치 업데이트를 컴퓨팅하는 것을 의미합니다.
양의 정수여야 합니다.
1
early_stopping 학습 중 조기 중지 논리를 사용하도록 설정합니다.
0 또는 1이어야 합니다.
1
early_stopping_patience 최소 Epoch 또는 유효성 검사 평가 수
실행이 중지되기 전에 기본 메트릭이 개선되지 않습니다.
양의 정수여야 합니다.
5
early_stopping_delay 대기할 최소 Epoch 또는 유효성 검사 평가 수
이전의 기본 메트릭 개선은 조기 중지를 위해 추적됩니다.
양의 정수여야 합니다.
5
learning_rate 초기 학습률입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
다중 클래스: 0.01
(vit-variants:
vits16r224: 0.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

다중 레이블: 0.035
(vit-variants:
vits16r224: 0.025
vitb16r224: 0.025
vitl16r224: 0.002)

개체 감지: 0.005
(yolov5: 0.01 제외)

인스턴스 구분: 0.005
learning_rate_scheduler 학습률 스케줄러의 유형입니다.
warmup_cosine 또는 step이어야 합니다.
warmup_cosine
step_lr_gamma 학습률 스케줄러가 step일 때 감마 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.5
step_lr_step_size 학습률 스케줄러가 step일 때 단계 크기의 값입니다.
양의 정수여야 합니다.
5
warmup_cosine_lr_cycles 학습률 스케줄러가 warmup_cosine일 때 코사인 주기 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.45
warmup_cosine_lr_warmup_epochs 학습률 스케줄러가 warmup_cosine일 때 워밍업 epoch의 값입니다.
양의 정수여야 합니다.
2
optimizer 최적화 프로그램의 유형입니다.
sgd, adam, adamw여야 합니다.
sgd
momentum 최적화 프로그램이 sgd일 때 모멘텀 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.9
weight_decay 최적화 프로그램이 sgd, adam 또는 adamw일 때 가중치 감소 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
1e-4
nesterov 최적화 프로그램이 sgd일 때 nesterov를 사용하도록 설정합니다.
0 또는 1이어야 합니다.
1
beta1 최적화 프로그램이 adam 또는 adamw일 때 beta1의 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.9
beta2 최적화 프로그램이 adam 또는 adamw일 때 beta2의 값입니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.999
ams_gradient 최적화 프로그램이 adam 또는 adamw인 경우 ams_gradient를 사용하도록 설정합니다.
0 또는 1이어야 합니다.
0
evaluation_frequency 메트릭 점수를 얻기 위해 유효성 검사 데이터 세트를 평가하는 빈도입니다.
양의 정수여야 합니다.
1
checkpoint_frequency 모델 검사점을 저장할 빈도입니다.
양의 정수여야 합니다.
유효성 검사에서 가장 좋은 기본 메트릭이 있는 Epoch의 검사점입니다.
checkpoint_run_id 증분 학습에 대한 미리 학습된 검사점이 있는 실험의 실행 ID입니다. 기본값 없음
layers_to_freeze 모델에 대해 고정할 레이어 수입니다. 예를 들어, seresnext의 값으로 2를 전달하면 아래 지원되는 모델 레이어 정보를 참조하여 layer0 및 layer1이 고정됩니다.
양의 정수여야 합니다.

- 'resnet': [('conv1.', 'bn1.'), 'layer1.', 'layer2.', 'layer3.', 'layer4.']
- 'mobilenetv2': ['features.0.', 'features.1.', 'features.2.', 'features.3.', 'features.4.', 'features.5.', 'features.6.', 'features.7.', 'features.8.', 'features.9.', 'features.10.', 'features.11.', 'features.12.', 'features.13.', 'features.14.', 'features.15.', 'features.16.', 'features.17.', 'features.18.']
- 'seresnext': ['layer0.', 'layer1.', 'layer2.', 'layer3.', 'layer4.'] * 'vit': ['patch_embed', 'blocks.0.', 'blocks.1.', 'blocks.2.', 'blocks.3.', 'blocks.4.', 'blocks.5.', 'blocks.6.','blocks.7.', 'blocks.8.', 'blocks.9.', 'blocks.10.', 'blocks.11.'] * 'yolov5_backbone': ['model.0.', 'model.1.', 'model.2.', 'model.3.', 'model.4.','model.5.', 'model.6.', 'model.7.', 'model.8.', 'model.9.']
- 'resnet_backbone': ['backbone.body.conv1.', 'backbone.body.layer1.', 'backbone.body.layer2.','backbone.body.layer3.', 'backbone.body.layer4.']
기본값 없음

이미지 분류(다중 클래스 및 다중 레이블) 특정 하이퍼 매개 변수

다음 표에는 이미지 분류(다중 클래스 및 다중 레이블) 작업에 대한 하이퍼 매개 변수가 요약되어 있습니다.

매개 변수 이름 Description 기본값
model_name 이미지 분류 작업에 사용할 모델 이름입니다.

mobilenetv2, resnet18, resnet34, resnet50, resnet101, resnet152, resnest50, resnest101, seresnext, vits16r224, vitb16r224, vitl16r224 중 하나여야 합니다.
seresnext
weighted_loss - 가중 손실이 없는 경우 0입니다.
- sqrt.(class_weights)를 사용한 가중 손실의 경우 1입니다.
- class_weights를 사용한 가중 손실의 경우 2입니다.
- 0 또는 1 또는 2여야 합니다.
0
validation_resize_size - 유효성 검사 데이터 세트를 자르기 전에 크기를 조정할 이미지 크기입니다.
- 양의 정수여야 합니다.

참고:
- seresnext는 임의의 크기를 사용하지 않습니다.
- 크기가 너무 크면 학습 실행이 CUDA OOM에 포함될 수 있습니다
.
256
validation_crop_size - 유효성 검사 데이터 세트를 위해 신경망에 입력되는 이미지 자르기 크기입니다.
- 양의 정수여야 합니다.

참고:
- seresnext는 임의의 크기를 사용하지 않습니다.
- ViT-variantsvalidation_crop_sizetraining_crop_size가 같아야 합니다.
- 크기가 너무 크면 학습 실행이 CUDA OOM에 포함될 수 있습니다
.
224
training_crop_size - 학습 데이터 세트를 위해 신경망에 입력되는 이미지 자르기 크기입니다.
- 양의 정수여야 합니다.

참고:
- seresnext는 임의의 크기를 사용하지 않습니다.
- ViT-variantsvalidation_crop_sizetraining_crop_size가 같아야 합니다.
- 크기가 너무 크면 학습 실행이 CUDA OOM에 포함될 수 있습니다
.
224

개체 검색 및 인스턴스 구분 작업별 하이퍼 매개 변수

다음 하이퍼 매개 변수는 개체 감지 및 인스턴스 분할 작업을 위한 것입니다.

경고

이러한 매개 변수는 yolov5 아키텍처에서 지원되지 않습니다. 지원되는 yolov5 하이퍼 매개 변수는 모델별 하이퍼 매개 변수 섹션을 참조하세요.

매개 변수 이름 Description 기본값
model_name 이미지 분류 작업에 사용할 모델 이름입니다.
- 개체 검색 작업의 경우 yolov5, fasterrcnn_resnet18_fpn, fasterrcnn_resnet34_fpn, fasterrcnn_resnet50_fpn, fasterrcnn_resnet101_fpn, fasterrcnn_resnet152_fpn, retinanet_resnet50_fpn 중 하나여야 합니다.
- 인스턴스 구분 작업의 경우 maskrcnn_resnet18_fpn, maskrcnn_resnet34_fpn, maskrcnn_resnet50_fpn, maskrcnn_resnet101_fpn, maskrcnn_resnet152_fpn 중 하나여야 합니다
- 개체 검색 작업의 경우 fasterrcnn_resnet50_fpn입니다
- 인스턴스 구분 작업의 경우 maskrcnn_resnet50_fpn입니다
validation_metric_type 유효성 검사 메트릭에 사용할 메트릭 컴퓨팅 방법입니다.
none, coco, voc 또는 coco_voc여야 합니다.
voc
validation_iou_threshold 유효성 검사 메트릭을 계산할 때 상자 일치에 대한 IOU 임계값입니다.
[0.1, 1] 범위의 부동 소수점이어야 합니다.
0.5
min_size 백본에 공급하기 전에 크기를 조정할 이미지의 최소 크기입니다.
양의 정수여야 합니다.

참고: 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다.
600
max_size 백본에 공급하기 전에 크기를 조정할 이미지의 최대 크기입니다.
양의 정수여야 합니다.

참고: 크기가 너무 큰 경우 학습 실행이 CUDA OOM에 포함될 수 있습니다.
1333
box_score_threshold 유추하는 동안 분류 점수가 box_score_threshold보다 큰 제안만 반환합니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.3
nms_iou_threshold 예측 헤드에 대한 NMS(최대값이 아닌 억제)에 사용되는 IOU(합집합 교차) 임계값입니다. 유추 중에 사용됩니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.5
box_detections_per_image 모든 클래스에 대해 이미지당 최대 검색 수입니다.
양의 정수여야 합니다.
100
tile_grid_size 각 이미지를 타일링하는 데 사용할 격자 크기입니다.
작은 개체 감지 논리를 사용하도록 설정하려면 - tile_grid_size가 None이 아니어야 합니다.
인스턴스 조각화 작업에는 - tile_grid_size만 지원됩니다.
'3x2' 형식의 문자열로 전달되어야 합니다. 예: --tile_grid_size '3x2'
기본값 없음
tile_overlap_ratio 각 차원에서 인접한 타일 간의 겹침 비율입니다.
[0, 1) 범위에서 부동이어야 합니다.
0.25
tile_predictions_nms_threshold 타일과 이미지의 예측을 병합하는 동안 NMS를 수행하는 데 사용할 IOU 임계값입니다. 유효성 검사/유추에 사용됩니다.
[0, 1] 범위의 부동 소수점이어야 합니다.
0.25

다음 단계