신경망의 훈련 요소
- 네트워크 [ 연속된 층으로 구성 ] 를 구성하는 층
- 입력 데이터와 그에 상응하는 타깃
- 학습에 사용할 피드백 신호를 정의하는 손실함수 [ 예측과 타깃을 비교하여 기댓값과 비교하여 손실값 생성 ]
- 학습 진행 방식을 결정하는 옵티마이저 [ 가중치 업데이트 ]
층 : 딥러닝의 구성 단위
하나 이상의 텐서를 입력으로 받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈.
대부분의 층은 가중치 [ 확률적 경사 하강법 ] 라는 층의 상태를 가진다.
확률적 경사하강법(stochastic gradient descent) 알고리즘은 데이터에 대한 매개변수를 평가를 하고 값을 조정하면서 손실함수(Loss Function)을 최소화하는 값을 구하는 접근 방법입니다. 데이터의 값이 커질수록 훨씬 빠르게 값에 수렴합니다.
https://playdata.io/archives/7670
- 층 호환성 : 각 층이 특정 크기의 입력 텐서만 받고 특정 크기의 출력 텐서를 반환한다.
from keras import layers
layer = layers.Dense(32, input_shape=(784,)) ==== 32개의 유닛으로 된 밀집층
첫번째 차원이 784인 2D텐서만 입력을 받는 층
케라스에서는 모델에 추가된 층을 자동으로 상위 층의 크기에 맞추어 호환해준다.
모델 : 층의 네트워크
딥러닝 모델은 층으로 만든 비순환 유향 그래프이다. 가장 일반적인 예로 하나의 입력을 하나의 출력으로 매핑하는 층을 순서대로 쌓는 것이다.
비순환 유향 그래프 : 방향 순환이 없는 무한 유향 그래프이다. 즉, 무한히 수많은 꼭짓점과 간선으로 구성되며 각 간선은 하나의 꼭짓점에서 다른 꼭짓점으로 방향을 잇는데 이처럼 어떠한 꼭짓점 v에서 시작하여 끝내 다시 v로 돌아가 순환 반복되는 일정한 방향의 일련한 간선을 따라가는 방법이 없다. [ 유행 그래프들의 꼭짓점을 변의 방향을 거스르지 않도록 한다. ]
손실 함수와 옵티마이저 : 학습 과정을 조절하는 열쇠
- 손실 함수 : 훈련하는 동안 최소화될 값. 주어진 문제에 대한 성공지표
- 옵티마이저 : 손실 함수를 기반으로 네트워크가 어떻게 업데이트 될지 결정한다. 특정 종류의 확률적 경사 하강법을 구현한다.
올바른 손실 함수를 선택하는 지침!
- 2개의 클래스가 있는 분류 문제 : 이진 크로스엔트로피
- 여르개의 클래스가 있는 분류 문제 : 범주형 크로스 엔트로피
- 회귀문제 : 평균 제곱 오차
- 시퀀스 학습 문제 : CTC
케라스의 작업 흐름
- 입력 텐서와 타깃 텐서로 이루어진 훈련 데이터를 정의합니다.
- 입력과 타깃을 매핑하는 층으로 이루어진 네트워크(또는 모델)를 정의합니다.
- 손실 함수, 옵티마이저, 모니터링하기 위한 측정 지표를 선택하여 학습 과정을 설정합니다.
- 훈련 데이터에 대해 모델의 fit() 메서드를 반복적으로 호출합니다.
'전공수업 > 데이터베이스 [DB]' 카테고리의 다른 글
제 10장] 회복과 병행 제어 (0) | 2019.11.19 |
---|---|
제 9장 ] 정규화 (0) | 2019.11.11 |
제 8장] DB 설계 (0) | 2019.11.10 |
제 7장 ] DB언어 SQL (0) | 2019.10.19 |
ORACLE 오류 ] ORA - 12505 (0) | 2019.10.17 |