Yolo 비전 선전
선전
지금 참여하기
용어집

신경망 아키텍처 검색(NAS)

신경망 아키텍처 검색(NAS)이 딥러닝 모델 설계를 자동화하는 방식을 알아보세요. 핵심 메커니즘을 발견하고 Ultralytics 같은 최적화된 모델을 탐구해 보십시오.

신경망 구조 탐색(NAS)은 자동화된 머신러닝(AutoML)영역 내의 정교한 기법으로, 인공 신경망 설계를 자동화합니다. 기존에는 고성능 딥러닝(DL) 아키텍처를 설계하기 위해 방대한 인간 전문성, 직관, 그리고 시간 소모적인 시행착오가 필요했습니다. NAS는 이러한 수동적 과정을 대체하여 특정 작업에 최적화된 구조를 발견하기 위해 방대한 네트워크 토폴로지를 체계적으로 탐색하는 알고리즘적 전략을 활용합니다. NAS는 다양한 레이어와 연산 조합을 테스트함으로써 정확도, 계산 효율성 또는 추론 속도 측면에서 인간이 설계한 모델을 크게 능가하는 아키텍처를 식별할 수 있습니다.

NAS의 핵심 메커니즘

우수한 아키텍처를 발견하는 과정은 일반적으로 상호작용하는 세 가지 기본 차원을 포함하여 최적의 신경망(NN)을 찾는 데 기여합니다:

  1. 검색 공간: 알고리즘이 탐색할 수 있는 모든 가능한 아키텍처 집합을 정의합니다. 이는 컨볼루션 필터, 풀링 레이어, 다양한 활성화 함수 등과 같은 구성 요소 라이브러리 역할을 합니다. 잘 정의된 검색 공간은 복잡성을 제한하여 혁신을 위한 충분한 유연성을 허용하면서도 검색이 계산적으로 실행 가능하도록 보장합니다.
  2. 검색 전략: 모든 가능성을 시험하는 방식(무차별 대입법) 대신, NAS는 지능형 알고리즘을 활용해 검색 공간을 효율적으로 탐색합니다. 일반적인 접근법으로는 강화 학습이 있는데, 여기서 에이전트는 시간이 지남에 따라 더 나은 아키텍처를 생성하는 법을 학습합니다. 또한 진화 알고리즘은 최고 성능 모델을 변이시키고 결합하여 우수한 후보를 생성합니다.
  3. 성능 추정 전략: 모든 후보 네트워크를 처음부터 훈련하는 것은 지나치게 느립니다. 이를 가속화하기 위해 NAS는 추정 기법(예: 적은 에포크 수로 훈련, 낮은 해상도의 대리 데이터셋 사용, 가중치 공유활용 등)을 사용하여 후보 아키텍처의 잠재력을 신속하게 평가합니다.

실제 애플리케이션

하드웨어 제약이나 성능 요구사항이 엄격한 산업 분야에서 NAS는 컴퓨터 비전(CV) 및 기타 AI 분야의 한계를 확장하는 핵심 기술로 자리매김했습니다.

  • 효율적인 엣지 컴퓨팅: 모바일 기기에 AI를 배포하려면 가볍고 빠른 모델이 필요합니다. NAS는 MobileNetV3EfficientNet과 같은 아키텍처를 발견하는 데 광범위하게 활용되며, 이들은 높은 정밀도를 유지하면서 추론 지연 시간을 최소화합니다. 이는 스마트 카메라나 자율 비행 드론에서의 실시간 영상 분석과 같은 엣지 AI 애플리케이션에 필수적입니다.
  • 의료 영상: 의료 영상 분석에서 정확성은 가장 중요합니다. NAS는 X선이나 MRI 스캔에서 detect 이상을 detect 네트워크를 맞춤화할 수 있으며, 인간 엔지니어가 간과할 수 있는 새로운 특징 추출 경로를 종종 발견합니다. 이는 뇌종양이나 골절 같은 상태를 더 높은 민감도로 식별하는 더 신뢰할 수 있는 도구로 이어집니다.

NAS 대 관련 개념

NAS의 구체적인 역할을 이해하기 위해서는 유사한 최적화 기법들과 구분하는 것이 도움이 됩니다:

  • NAS 대 하이퍼파라미터 튜닝: 둘 다 최적화를 포함하지만, 하이퍼파라미터 튜닝은 고정된 아키텍처에 대한 구성 설정( 학습률이나 배치 크기 등)을 조정하는 데 중점을 둡니다. 반면 NAS는 레이어 수나 뉴런 연결 방식과 같이 모델 자체의 근본적인 구조를 변경합니다.
  • NAS 대 전이 학습: 전이 학습은 기존에 사전 훈련된 모델을 가져와 새로운 작업에 맞게 가중치를 조정합니다. NAS는 훈련 시작 전에 모델 아키텍처를 처음부터 생성하거나 더 나은 백본을 탐색합니다.

NAS 기반 모델 활용

전체 NAS 검색을 실행하려면 상당한 GPU 자원이 필요하지만, 개발자는 NAS를 통해 생성된 모델을 쉽게 활용할 수 있습니다. 예를 들어, YOLO 아키텍처는 객체 탐지 작업을 최적화하기 위해 이러한 검색 원칙을 활용하여 발견되었습니다.

다음 Python 사전 검색된 NAS 모델을 로드하고 사용하는 방법을 보여줍니다. ultralytics 패키지입니다:

from ultralytics import NAS

# Load a pre-trained YOLO-NAS model (architecture found via NAS)
# 'yolo_nas_s.pt' refers to the small version of the model
model = NAS("yolo_nas_s.pt")

# Run inference on an image to detect objects
# This utilizes the optimized architecture for fast detection
results = model("https://ultralytics.com/images/bus.jpg")

# Print the top detected class
print(f"Detected: {results[0].names[int(results[0].boxes.cls[0])]}")

NAS의 복잡성 없이 최신 모델을 훈련하고자 하는 분들을 위해 Ultralytics 최신 연구 성과를 반영한 고도로 최적화된 아키텍처를 바로 사용할 수 있도록 제공합니다. Ultralytics 통해 이러한 모델의 데이터셋 관리, 훈련 및 배포를 손쉽게 수행할 수 있으며, 이는 전체 MLOps 라이프사이클을 간소화합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기