Deep Neural Networks 구성 방법
- \딥러닝에서 네트워크의 구조는 크게 3가지로 나누어집니다.
출처: https://www.kdnuggets.com/2016/10/deep-learning-key-terms-explained.html
- Input layer(입력층): 네트워크의 입력 부분입니다. 우리가 학습시키고 싶은 x 값입니다.
- Output layer(출력층): 네트워크의 출력 부분입니다. 우리가 예측한 값, 즉 y 값입니다.
- Hidden layers(은닉층): 입력층과 출력층을 제외한 중간층입니다.
- 풀어야하는 문제에 따라 입력층과 출력층의 모양은 정해져 있고, 따라서 우리가 신경써야할 부분은 은닉층입니다. 은닉층은 완전연결 계층 (Fully connected layer = Dense layer)으로 이루어져 있지요.
- 기본적인 뉴럴 네트워크(Deep neural networks)에서는 보통 은닉층에 중간 부분을 넓게 만드는 경우가 많습니다. 예를 들면 보편적으로 아래와 같이 노드의 개수가 점점 늘어나다가 줄어드는 방식으로 구성합니다:
- 입력층의 노드 개수 4개
- 첫 번째 은닉층 노드 개수 8개
- 두 번째 은닉층 노드 개수 16개
- 세 번째 은닉층 노드개수 8개
- 출력층 노드개수 3개
- 곧 배우는 활성화 함수를 어디다가 넣어야하는지도 중요합니다. 보편적인 경우 모든 은닉층 바로 뒤에 위치합니다.
딥러닝의 주요 개념
-
- Batch size, Epoch (배치 사이즈, 에폭)
- batch와 iteration
- 만약 우리가 10,000,000개의 데이터셋을 가지고 있다고 가정합시다. 10,000,000개의 데이터셋을 한꺼번에 메모리에 올리고 학습시키려면 엄청난 용량을 가진 메모리가 필요하고 그 메모리를 사는데 (메모리가 없다면 개발하는데) 천문학적인 비용이 들 것입니다.
- 따라서 우리는 이 데이터셋을 작은 단위로 쪼개서 학습을 시키는데 쪼개는 단위를 배치(Batch)라고 부릅니다. 예를 들어서 1,000만개의 데이터셋을 1,000개 씩으로 쪼개어 10,000번을 반복하는 것이죠. 이 반복하는 과정을 Iteration(이터레이션)이라고 부릅니다.
- epoch
- 보통 머신러닝에서는 똑같은 데이터셋을 가지고 반복 학습을 하게되는데요, 이 과정은 우리가 수능시험을 대비해서 모의고사 문제를 여러번 풀어보는 과정하고 비슷합니다. 만약 100번 반복 학습을 한다면 100 epochs(에폭)을 반복한다고 말해요.
- batch를 몇 개로 나눠놓았냐에 상관 없이 전체 데이터셋을 한 번 돌 때 한 epoch이 끝납니다.
- 따라서 1천만개의 데이터셋을 1천개 단위의 배치로 쪼개면, 1만개의 배치가 되고, 이 1만개의 배치를 100에폭을 돈다고 하면 1만 * 100 = 100만번의 이터레이션을 도는 것이 됩니다!
출처: https://www.mauriciopoppe.com/notes/computer-science/artificial-intelligence/machine-learning/glossary/
그밖에 알아 두어야 할것
Activation functions (활성화 함수)
Overfitting, Underfitting (과적합, 과소적합)
주요 스킬
Data augmentation (데이터 증강기법)
Dropout (드랍아웃)
Ensemble (앙상블)
'머신러닝 공부중' 카테고리의 다른 글
lemonade회귀 , boston집값 (0) | 2022.01.11 |
---|---|
독립변수 종속변수 (0) | 2022.01.07 |
Table (0) | 2022.01.07 |