주요 컨텐츠로 이동

컨볼루션 신경망 적용: 온디맨드 웨비나 및 FAQ가 공개되었습니다!

Webinar-DL3-NeuralNetworks-OD%25402x

Published: November 13, 2018

솔루션1분 이내 소요

Databricks에서 이 노트북을 사용해 보세요

10월 25일, Databricks의 기술 제품 마케팅 관리자인 Denny Lee와 함께 라이브 웨비나합성곱 신경망 적용하기를 개최했습니다. 이 웨비나는 Databricks에서 제공하는 무료 딥 러닝 기본 시리즈의 세 번째 웨비나입니다.

이번 웨비나에서는 입력이 이미지라고 가정하며 이미지 분류 및 객체 인식에 매우 효과적인 것으로 입증된 특정 유형의 신경망인 합성곱 신경망(CNN)에 대해 더 깊이 살펴보았습니다.

특히 다음과 같은 내용에 대해 이야기했습니다.

  • 너비, 높이, 깊이를 갖춘 3D로 배열된 노드를 사용하여 합성곱 필터를 적용하고 특징을 추출하는 CNN 아키텍처.
  • 입력 이미지의 픽셀 영역에서 특징을 추출하기 위해 필터 크기, 스트라이드, 패딩을 선택하는 방법을 포함한 컨볼루션 커널(필터)의 작동 방식.
  • 풀링 또는 서브샘플링은 이미지 크기를 줄여 매개변수 수를 감소시키고 과적합의 위험을 줄이는 기법입니다.

Databricks에서 Keras(TensorFlow 백엔드)를 사용하여 이러한 개념 중 일부를 시연했으며, 지금 바로 시작할 수 있는 노트북 링크는 다음과 같습니다.

아래에서 Part 1과 Part 2를 시청하실 수 있습니다.

Databricks 통합 분석 플랫폼 에 무료로 액세스하여 노트북을 사용해 보려면 여기에서 무료 체험을 이용할 수 있습니다.

마지막 부분에서는 Q&A를 진행했으며, 아래에 주제별로 분류된 질문과 답변이 나와 있습니다.

기본 사항

Q: 신경망을 사용하려면 신경망의 수학적 원리를 꼭 이해해야 하나요?

신경망을 사용하기 위해 그 기반이 되는 수학을 완전히 이해할 필요는 없지만, 올바른 알고리즘을 선택하고 딥러닝(및 머신러닝) 모델을 최적화, 개선 및 설계하는 방법을 이해하려면 이러한 기본 원리를 이해하는 것이 중요합니다. 이 주제에 대한 좋은 글은 Wale Akinfaderin의 The Mathematics of Machine Learning입니다.

컨볼루셔널 신경망

Q: 일반적인 신경망 대신 CNN을 사용하는 이유는 무엇인가요? 그리고 실생활에서 CNN을 어떻게 사용하나요? 이에 대한 적용 사례를 공유해 주실 수 있나요?

출처: https://cs231n.github.io/convolutional-networks/

신경망 훈련에서 더 자세히 설명했듯이, 컨볼루션 신경망(CNN)은 일반적인 인공 신경망 과 유사하지만, CNN은 입력이 이미지라는 명시적인 가정을 합니다.  문제는 (왼쪽 그래픽에서 시각화된 것처럼) 완전 연결 인공 신경망이 이미지에 잘 확장되지 않는다는 것입니다. 예를 들어 200픽셀 x 200픽셀 x 3 컬러 채널(예: RGB)은 120,000개의 가중치가 됩니다. 이미지가 (채널별로) 더 크거나 복잡할수록 더 많은 가중치가 필요합니다. CNN의 경우, 노드는 3D(너비, 높이, 깊이)로 구성된 이전 레이어의 작은 영역에만 연결됩니다.  노드가 완전 연결되어 있지 않기 때문에 가중치 수(즉, 카디널리티)가 줄어들어 네트워크가 더 빨리 패스를 완료할 수 있게 됩니다.

Q: CNN은 계층, 크기, 유형으로 구성된 네트워크입니다. 어떻게 선택해야 하나요? 무엇을 기준으로요? 즉, 아키텍처는 어떻게 설계해야 하나요?

'신경망 입문 온디맨드 웨비나 및 FAQ 공개'에서 언급했듯이, 시작점에 대한 일반적인 경험 법칙이 있지만(예: 하나의 은닉층으로 시작하여 그에 따라 확장하고, 입력 노드 수는 특징의 차원과 같게 하는 등) 핵심은 테스트가 필요하다는 것입니다.  즉, 모델을 훈련한 다음 해당 모델에 대해 테스트 및/또는 검증을 실행하여 정확도(높을수록 좋음)와 손실(낮을수록 좋음)을 파악해야 합니다. 아키텍처 설계 측면에서, 더 잘 이해되고 연구된 아키텍처로 시작하는 것이 가장 좋습니다(예: AlexNet, LeNet-5, Inception, VGG, ResNet 등).  여기에서 실험을 실행하면서 레이어의 수, 크기, 유형을 조정할 수 있습니다.

Q: 완전 연결 레이어에 소프트맥스를 사용하는 이유는 무엇인가요?

로지스틱 회귀로 작업할 때, 이는 이진 분류에 대한 베르누이 분포를 가정합니다.  두 개 이상의 분류기에 적용해야 할 경우(예: MNIST 분류 문제) 베르누이 분포의 일반화인 다항 분포가 필요합니다.  다항 분포(다중 분류기)에 적용되는 회귀 유형은 소프트맥스 회귀라고 합니다. MNIST의 경우 완전 연결 계층에서 0, ..., 9 사이의 값에 대한 손글씨 숫자를 분류하므로 softmax를 사용합니다.

Q: 필터 크기는 항상 홀수인가요?

필터 크기에 대한 일반적인 접근 방식은 f x f 이며, 여기서 f 는 홀수입니다.  명시적으로 언급되지는 않았지만 Applying 신경망의 39번 슬라이드에서 목표는 소스 픽셀과 주변 픽셀을 합성곱하는 것이므로 f 는 홀수입니다.  최소 필터 크기는 3 x 3 이 되는데, 이는 2D 공간에서 소스 픽셀 + 바깥쪽 1픽셀에 해당하기 때문입니다.

f 크기가 짝수이면 소스 픽셀 주위 픽셀의 절반도 채 안 되는 부분을 합성곱하게 됩니다.  더 자세히 알아보려면 https://datascience.stackexchange.com/questions/23183/why-convolutions-always-use-odd-numbers-as-filter-size/23186에서 이 질문에 대한 좋은 SO 답변을 확인할 수 있습니다.

Q: 가변 입력 길이를 사용하는 CNN을 어떻게 구현할 수 있나요?  즉, 크기가 다양한 이미지를 가진 학습 데이터에 대한 제안이 있으신가요?

일반적으로 CNN의 모든 입력 이미지 크기가 동일하도록 이미지 크기를 조정하거나 제로 패딩을 해야 합니다.  가변 크기 입력을 처리할 수 있는 LSTM, RNN 또는 재귀 신경망(특히 텍스트 데이터의 경우)을 포함하는 몇 가지 접근 방식이 있지만, 이는 종종 간단하지 않은 작업이라는 점에 유의하세요.

ML 환경 & 리소스

Q: 저는 Databricks 유료 사용자입니다.  제 PC에서 Keras를 실행하는 방법은 알지만 Databricks 내에서는 아직 모릅니다.

Databricks를 사용하는 경우 Keras, TensorFlow, XGBoost, Horovod, scikit-learn 등을 포함하는 Databricks Runtime for Machine Learning 클러스터를 시작하세요.  자세한 정보는 Announcing Databricks Runtime for Machine Learning을 참조하세요.

Q: ML에 대해 비슷한 세션이 있었나요?

훌륭한 Databricks 웨비나 가 많이 있으며, Machine Learning에 초점을 맞춘 웨비나는 다음과 같습니다(이에 국한되지 않음):

리소스

 

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요

다음은 무엇인가요?

Social Card

데이터 사이언스 및 ML

July 24, 2024/1분 이내 소요

GenAI 모델 파인튜닝을 위한 Mosaic AI Model Training 소개

Unlock-Faster-Machine-Learning-with-Graviton

데이터 사이언스 및 ML

August 16, 2024/1분 이내 소요

Graviton으로 더 빠른 머신 러닝 실현