Deep Neural Networks 구성

김건우·2022년 1월 6일
0

머신러닝

목록 보기
12/21
post-thumbnail

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개

해당 베이스라인 모델으로 여러가지 실험(튜닝)을 하게 되는데,
가장 간단하게 성능을 테스트 하는 방법이 모델의 너비와 깊이를 가지고 테스트 해보는 것이다.

  1. 네트워크의 너비를 늘리는 방법
은닉층의 너비를 그대로 두고, 은닉층의 노드 개수를 늘리는 방법

ㅁ 입력층 : 4개
ㅁ 첫 번째 은닉층 : 8개 ➡️ 16개
ㅁ 두 번째 은닉층 : 4개 ➡️ 8개
ㅁ 출력층 : 1개 
  1. 네트워크의 깊이를 늘리는 방법
은닉층의 개수를 늘리는 방법

ㅁ 입력층 : 4개
ㅁ 첫 번째 은닉층 : 4개
ㅁ 두 번째 은닉층 : 8개
ㅁ 세 번째 은닉층 : 8개
ㅁ 네 번째 은닉층 : 4개
ㅁ 출력층 : 1개 
  1. 너비와 깊이를 늘리는 방법
ㅁ 입력층 : 4개
ㅁ 첫 번째 은닉층 : 4개 ➡️ 8개
ㅁ 두 번째 은닉층 : 8개 ➡️ 16개
ㅁ 세 번째 은닉층 : 8개 ➡️ 16개
ㅁ 네 번째 은닉층 : 4개 ➡️ 8개
ㅁ 출력층 : 1개 

너비와 깊이를 바꾸면서 실험하는 것은, 과적합과 과소적합을 피하기위해서는 꼭 필요한 방법이다.

profile
공부하는 개발자가 목표입니다.

0개의 댓글