What is a Neural Nework?

딥러닝의 정의:

  • 신경망(Neural Network) 을 훈련시키는 걸 말함.
  • 대부분의 일반적인 머신러인 모델은 신경망으로 대체할 수 있음.

 

ReLU 함수 정의:

  • 신경망에서 사용하는 활성화 함수.
  • 0이하의 값은 0으로, 양수 값은 그대로 출력한다.

 

 

복잡한 신경망 구조:

  • 여러개의 뉴런을 쌓아서 큰 신경망을 만들면 복잡한 신경망이 구축됨.

 

 

뉴런을 레고블록 처럼 생각하면 된다:

  • 뉴런을 하위 모듈로 생각하고, 이것을 여러개 조립해서 신경망을 구성한다고 생각하면 된다.

 

 

뉴런을 피처 엔지니어링처럼 데이터에서 유용한 특징을 추출하고 추상화하는 거라고 생각하면 좋다:

  • 집 값을 예측하는데 입력 데이터로는 집의 크기, 침실의 수, zip code, Wealth (부) 등이 들어올거고, 이 값들이 중간 층의 뉴런에서는 Family size (집의 크기 + 침실의 수), Walkability (보행 가능성, zipcode), School quality (Zip code, Wealth) 등으로 추상화할거임.

 

 

Neural Network 특징:

  • 입력층과 중간층으로 구별됨.
  • 주로 지도 학습 문제에 사용된다.

 

 

Neural Network 아키텍처 설계할 때 고려해야하는 요소:

  • Layer 의 수:
    • 입력층, 은닝층, 출력층 개수
    • 층의 개수가 많을수록 복잡한 특징을 학습할 수 있지만, 과적합 될 우려가 있음.
  • 각 층의 뉴런 수:
    • 뉴런 수가 많을수록 모델의 표현력이 증가하지만 학습 시간이 오래걸리고 과적합될 우려가 있음.
  • 연결 구조:
    • 완전 연결 (fully connected):
    • 합성곱 (convolutional):
    • 순환 (recurrent)

 

 

뉴런 수 결정 시 고려사항:

  • 복잡한 데이터는 더 많은 뉴런이 필요할 수 있음.
  • 데이터가 많을수록 더 큰 모델을 학습시킬 수 있으니 더 많은 뉴런을 설정할 수 있음.
  • 사용 가능한 메모리와 작업 능력을 고려해야함.
  • 과적합을 일으키지는 않은지, 과소적합을 일으키지 않는지 고려해야함.

 

 

최적의 뉴런 수를 찾는 방법:

  • 수동으로 찾는 방법
    • 입력과 출력 뉴런 수의 평균을 넣거나 입력 뉴런 수의 2/3배 등의 규칙을 사용하면 좋다.
    • 그리드 서치: 다양한 뉴런 수를 시도하고 성능을 비교해봐도 좋다.
    • 점진적 증가/감소: 작은 네트워크에서 시작해 점진적으로 크기를 조정해봐도 좋다.
  • 자동화된 방법: 신경 구조 탐색(Neural Architecture Search) 등의 기술을 사용하는 것도 좋다.
  • 결론적으로, 뉴런의 개수는 중요한 하이퍼파라미터이며, 최적의 수를 찾는 것은 실험과 경험이 필요한 과정임.

 

 

Neural Network Search (NAS):

  • 머신러닝을 이용해서 특정 작업에 맞는 최적의 뉴럴 아키텍처를 찾아주고 설계해주는 기술임.
  • AutoML 은 모델과 하이퍼파라미터 튜닝 모델 평가 등 전체 과정을 자동화해주는 반면에 NAS 는 신경망의 총 수, 각 층의 뉴런 수, 연결 구조 등을 자동화해줌.

 

 

Supervised Learning with Neural Networks

신경망은 대부분 지도 학습을 통해 이뤄짐.

 

 

신경망을 이용할 때는 입력과 출력에 대해 명확하게 정의하는게 중요함:

  • 먼저 출력을 생각해보고, 출력을 위해 필요한 데이터들을 생각해보는 것.
  • 입력과 출력의 특성에 따라서 적절한 신경망 구조 (CNN, RNN) 을 선택할 수 있음.

 

 

신경망 구조의 입력과 특징:

  • CNN:
    • 2D, 3D 구조의 데이터를 입력으로 받아서 공간적 패턴을 인식하는데 뛰어남.
  • Feed forward Network:
    • 일반적인 벡터 데이터들을 입력 받아서 패턴을 인식하는데 뛰어남.
  • RNN:
    • 시퀀스 데이터를 입력으로 받아서 데이터의 시간적, 순차적 의존성을 나타내는데 뛰어남.
  • Autoencoder:
    • 출력과 동일한 데이터를 입력으로 받아서 데이터의 압축된 표현을 익히는데 뛰어남.
  • GAN:
    • 랜덤 노이즈 또는 조건부 데이터를 입력으로 받아서 이미지나, 텍스트를 생성하는데 뛰어남.

'Deep Learning' 카테고리의 다른 글

Activation Function  (0) 2024.07.13
Neural Network Basics  (0) 2024.07.13

+ Recent posts