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 |