Deep NEural Network
Layer
- Input layer(입력층)
: 네트워크의 입력 부분, 우리가 학습시키고 싶은 x값- Output layer(출력층)
: 네트워크의 출력 부분, 우리가 예측한 값, 즉 y값- Hidden layers(은닉층)
: 입력층과 출력층을 제외한 중간층
- 입력층과 출력층은 문제마다 정해져 있기에, 은닉층을 신경을 써야한다.
- 은닉층은 완전연결 계층(Fully connected lyaer = Dense layer) 로 이루어져 있다.
기본적인 뉴럴 네트워크(Deep nueral networks)에서는 보통 은닉층에 중간 부분을 넓게만드는 경우가 많다.
보편적으로 아래와 같이 노드의 개수가 점점 늘어나다가 줄어드는 방식으로 구성.
ㅁ 입력층의 노드 개수 4개 ㅁ 첫 번째 은닉층 노드 개수 8개 ㅁ 두 번째 은닉층 노드 개수 16개 ㅁ 세 번째 은닉층 노드 개수 8개 ㅁ 출력층의 노드 개수 3개활성화 함수를 어디에 넣어야 하는지가 중요한데, 보편적인 경우 모든 은닉층 바로 뒤에 위치한다.
Network의 Width(너비)와 Depth(깊이)
Baseline model(베이스라인 모델)
: 적당한 연산량을 가진, 적당한 정확도의 딥러닝 모델을 보편적으로 지칭하는 말.예)
ㅁ 입력층 : 4개 ㅁ 첫 번째 은닉층 : 8개 ㅁ 두 번째 은닉층 : 4개 ㅁ ㅁ출력층 : 1개해당 베이스라인 모델으로 여러가지 실험(튜닝)을 하게 되는데,
가장 간단하게 성능을 테스트 하는 방법이 모델의 너비와 깊이를 가지고 테스트 해보는 것이다.
- 네트워크의 너비를 늘리는 방법
은닉층의 너비를 그대로 두고, 은닉층의 노드 개수를 늘리는 방법 ㅁ 입력층 : 4개 ㅁ 첫 번째 은닉층 : 8개 ➡️ 16개 ㅁ 두 번째 은닉층 : 4개 ➡️ 8개 ㅁ 출력층 : 1개
- 네트워크의 깊이를 늘리는 방법
은닉층의 개수를 늘리는 방법 ㅁ 입력층 : 4개 ㅁ 첫 번째 은닉층 : 4개 ㅁ 두 번째 은닉층 : 8개 ㅁ 세 번째 은닉층 : 8개 ㅁ 네 번째 은닉층 : 4개 ㅁ 출력층 : 1개
- 너비와 깊이를 늘리는 방법
ㅁ 입력층 : 4개 ㅁ 첫 번째 은닉층 : 4개 ➡️ 8개 ㅁ 두 번째 은닉층 : 8개 ➡️ 16개 ㅁ 세 번째 은닉층 : 8개 ➡️ 16개 ㅁ 네 번째 은닉층 : 4개 ➡️ 8개 ㅁ 출력층 : 1개너비와 깊이를 바꾸면서 실험하는 것은, 과적합과 과소적합을 피하기위해서는 꼭 필요한 방법이다.