관리 메뉴

솜씨좋은장씨

[Keras]Keras에서 Model이란(feat, 레고블럭) 본문

머신러닝 | 딥러닝/TensorFlow | Keras

[Keras]Keras에서 Model이란(feat, 레고블럭)

솜씨좋은장씨 2019. 9. 13. 16:40
728x90
반응형

이 글은 아래링크의 강의를 보고 공부했던 내용을 정리한 내용입니다.

 

내용은 아직 공부 초반이라 많이 부족합니다. 공부하면서 점점 보완하여 업데이트 하도록 하겠습니다.

 

딥러닝 입문에서 활용까지 케라스(Keras) | T아카데미 온라인강의

1. 딥러닝 레이어(Layer)에 대한 개념을 '블록'에 비유하여 설명한다. 2. 케라스를 이용한 MLP, CNN, RNN, GAN 모델링 방법에 대해 알아본다.

tacademy.skplanet.com

Model을 구성하는 Network, Objective Function, Optimizer

 

Model을 크게 3가지로 나누어 본다면

 

Network  /  Objective Function  /  Optimizer 3가지로 볼 수 있습니다

 

이 세가지를 레고 사람 블럭 에 비유하면 

 

Network = 레고 머리

딥러닝 모델에서 두뇌라고 생각하면 됩니다.

 

ex)

Xception(88MB, 126) -> 괄호 안에는 (용량, 층 수)

 

층 수에 용량이 비례하지는 않습니다.

 

 

 

Objective Function = 레고 몸통

Objective Function은 목표함수 일명 학습목표입니다. 

 

학습 시 가장 중요한 값 입니다.

 

여기서 설정해주는 학습 목표에 따라 도출되는 결과가 달라집니다.

 

 

 

 

기말고사 점수와 만족도를 예를 들어보겠습니다.

 

A와 B의 기말고사 점수는 두 명 모두 80점일때

 

기말고사때 목표를 100점으로 잡았던 A는 만족하지 못하고 실망한다는 결과를 보이겠지만

 

기말고사때 목표를 70점으로 잡았던 B는 만족한다는 결과를 보일 것 입니다.

 

- mean_squared_error - 수치예측

   > 내일의 교통량, 내일의 기온, 내일의 미세먼지 농도 등을 예측할 때 주로 사용합니다.

 

- binary_crossentropy - 이진 분류

   > 남자와 여자, 개와 고양이이렇게 두 가지로 분류가 필요할 때 주로 사용합니다.

 

- categorical_crossentropy - 다중분류 

   > 여러 동물들 중 강아지, 고양이, 너구리와 같이 여러 가지로 분류가 필요할 때 사용합니다.  

 

Oprimizer = 레고 다리

Optimizer는 최적화기로 네트워크를 갱신할 객체 입니다.

 

최적값을 찾기위한 다양한 옵션, 학습에 도움을 주는 코디의 느낌으로 생각하면 됩니다.

 

학원선생님, 과외 선생님에 비유하여 생각하면 됩니다.

 

SGD, Adam 등 여러 가지 중에 골라 사용하면 됩니다.

 

 

만약 Objective Function에서

 

도출된 값이 0.1이고 정답이 1.0이라면

 

도출된 값과 정답 사이의 오차를 계산하여 Optimizer로 넘어오게 되고 Oprimizer는 받은 오차 값을 가지고 최적값을 찾도록 다시 네트워크를 갱신합니다.

 

 

Compile (컴파일)

 

  여기서 머리, 몸통, 레고다리 즉 Network, Objective Function, Optimizer

 

  이 세 가지를 하나로 연결해주는 것이 compile 과정입니다.

 

  compile은 네트워크가 학습할 준비가 됐다 라고 생각하면 됩니다.

 

 

 

 

 

 

Comments