본문 바로가기
전공수업/데이터베이스 [DB]

케라스와 신경망

by wonseok99 2019. 11. 29.

신경망의 훈련 요소

  • 네트워크 [ 연속된 층으로 구성 ] 를 구성하는
  • 입력 데이터와 그에 상응하는 타깃
  • 학습에 사용할 피드백 신호를 정의하는 손실함수 [ 예측과 타깃을 비교하여 기댓값과 비교하여 손실값 생성 ] 
  • 학습 진행 방식을 결정하는 옵티마이저 [ 가중치 업데이트 ] 

 

층 : 딥러닝의 구성 단위

하나 이상의 텐서를 입력으로 받아 하나 이상의 텐서를 출력하는 데이터 처리 모듈.

대부분의 층은 가중치 [ 확률적 경사 하강법 ] 라는 층의 상태를 가진다.

확률적 경사하강법(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

 

 

케라스의 작업 흐름

  1. 입력 텐서와 타깃 텐서로 이루어진 훈련 데이터를 정의합니다.
  2. 입력과 타깃을 매핑하는 층으로 이루어진 네트워크(또는 모델)를 정의합니다.
  3. 손실 함수, 옵티마이저, 모니터링하기 위한 측정 지표를 선택하여 학습 과정을 설정합니다.
  4. 훈련 데이터에 대해 모델의 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