일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- dacon
- 코로나19
- 프로그래머스 파이썬
- PYTHON
- 캐치카페
- 우분투
- leetcode
- SW Expert Academy
- 맥북
- ChatGPT
- programmers
- Kaggle
- ubuntu
- github
- Docker
- 금융문자분석경진대회
- 편스토랑 우승상품
- hackerrank
- Real or Not? NLP with Disaster Tweets
- Baekjoon
- Git
- 파이썬
- 편스토랑
- gs25
- 더현대서울 맛집
- 프로그래머스
- 데이콘
- 백준
- 자연어처리
- AI 경진대회
- Today
- Total
솜씨좋은장씨
[Keras]Keras에서 Model이란(feat, 레고블럭) 본문
이 글은 아래링크의 강의를 보고 공부했던 내용을 정리한 내용입니다.
내용은 아직 공부 초반이라 많이 부족합니다. 공부하면서 점점 보완하여 업데이트 하도록 하겠습니다.
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은 네트워크가 학습할 준비가 됐다 라고 생각하면 됩니다.
'머신러닝 | 딥러닝 > TensorFlow | Keras' 카테고리의 다른 글
[TF2.0] Tensorflow 2.0 GPU 사용 가능 여부 확인하기 (0) | 2020.10.06 |
---|---|
[TensorFlow] ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory 해결 방법 (0) | 2020.07.20 |
[TF2.0] MNIST - ValueError: Shapes (32, 10) and (32, 1) are incompatible 해결 방법 (10) | 2020.06.28 |
[Keras]기사 제목을 가지고 긍정 / 부정 / 중립으로 분류하는 모델 만들어보기 (56) | 2019.10.07 |
[Keras]영화 평점, 줄거리를 가지고 평점 예측 모델 만들어보기 (6) | 2019.09.27 |