티스토리 뷰

2020/10/27 - [Study/인공지능] - 심층신경망

 

심층신경망

# coding: utf-8 import sys, os sys.path.append(os.pardir) # 부모 디렉터리의 파일을 가져올 수 있도록 설정 import numpy as np from collections import OrderedDict from common.layers import * from comm..

15051015.tistory.com

2020/10/26 - [Study/인공지능] - Overfitting [과적합] ( 인공지능 기초 #20 )


Parameter

 

- 데이터를 통해 머신이 학습하는 값, 데이터가 많고 신경망 모델이 좋으면 최적의 값을 머신이 스스로 찾아냅니다.

 

ex) 가중치, 편향, scaling, shift

 

Hyperparameter

 

- 사람이 결정하는 값, 좋은 값을 찾기 위해서는 여러 값을 직접 시도해보는 수 밖에 없습니다.

 

ex) 층의 개수, 뉴런의 개수, learning rate, 손실함수의 종류, 배치 크기, 훈련 회수, optimizer의 종류와 관련된 계수값, 가중치 초기값, 가중치 감소 계수, dropout 비율

 

 

 

몇몇 hyperparameter는 특정값이 추천되거나 실제 사용되는 값이 거의 고정되어 있는 경우도 있습니다.

 

일반적으로 Momentum계수는 0.9가 추천되고, Adam은 B1 = 0.9, B2= 0.999로 고정되어 사용됩니다.

 

 

 

 

데이터 분할 

 

데이터를 3분류로 나눕니다.

 

train 데이터 : parameter학습

 

validation 데이터 : hyperparameter 성능 평가

 

test 데이터 : 신경망의 범용 성능 평가

 

데이터를 3분류로 분할한다.

 

k-fold validation

데이터가 많지 않을 경우에는 k-fold validation을 사용합니다. (검증용과 훈련용 두가지로 분할합니다.)

 

train 데이터를 K-등분한 후 하나를 검증용으로 사용하고, 나머지를 훈련용으로 사용한 후 평균시킵니다.

 

위 그림은 데이터를 4등분을 시킨 후 , 1번째 부분을 검증용, 2,3,4 부분을 훈련용으로 사용하고

 

1,3,4를 훈련 2번을 검증

 

1,2,4를 훈련 3번을 검증 

 

1,2,3,을 훈련 4번을 검증

 

후에 4번의 트레이닝을 평균합니다.

 

Hyperparameter 탐색

하이퍼 파라메타는 중요도 차이가 크기 때문에 좌측의 격자모양보다는 우측처럼 무작위로 선택하는 것이 좋습니다.

 

머신러닝 초창기에는 좌측처럼 사용했지만, 후에 우측이 더 좋다는것을 알고 우측처럼 사용하고 있다고 합니다.

 

랜덤하게 선택했을 때, 좋은 조합 주위의 영역을 줌인해서

 

그 영역에서 다시 무작위로 선택하는 과정을 반복합니다.

충분히 반복이 된다면, 

 

데이터를 3분류로 분할한다.

test 데이터를 통해 성능을 검증합니다.

 

척도

 

선형척도

 

뉴런 개수의 범위를 50부터 100까지로 정하고 50,51,...,100에서 고른 확률로 뽑습니다.

 

로그척도

 

 

 

 

 

 

 

 

 

 

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
250x250