모델 = CNN
모델은 학습시킬때 사용된다. 모델은 사람의 뇌 세포의 구조와 비슷하게 만들어졌다고 한다.
(CNN = Convolution Neural Networks)
레이어를 3종류로 나눌수 있음.
레이어는 많으면 좋지만 효율적이지 않게 너무 많이 쌓으면 컴퓨터 메모리를 많이 사용해서 컴퓨터에 부하가 생긴다.
VGG16는 옥스포드에서 만든 모델로 다양한 모델중 하나이다.
CNN = Convolution Neural Networks
Convoltion = 합성의 곱 (역할 = 이미지와 합성해서 결과를 뽑아낸다.)
이미지를 필터로 받아서 이미지를 계산해서 feature map처럼 결과를 추출한다.
Weight = Convolution에서 학습하려고 하는 대상이라고 볼 수 있다.
Y = Wx + B
(output = Weight*input + Bias) 과 같이 볼수 있다.
Pooling Layer의 max Pooling은 이미지의 가장 큰 특징들의 높은 수치들을 반으로 줄여준다.
Convoltion = 특징을 추출
Pooling = 압축
학습시키고 난 뒤의 인공지능을 최적화 시키는 용어라고 보면된다.
loss func을 줄려 갈수 있도록 도와주는 역할을 한다.
뽑은 특징들을 제거 할 수도 있고 다양한 기능들을 넣어서 변화 시킨다.
ReLU를 먼저 보자~!
마지막에 컴퓨터가 예측.
앞에서 받은 집합(값)을 확률로 계산해준다.
각 수치를 부여해서 나열 하였을때 나오는 가장 큰 값을 정답으로 인식하여 추출해 낸다.
Loss func = 정답의 확률이 있는 숫자를 나열했을때 계산하는 방식을 말함.
(얼마나 틀렸는지 예측을 해준다)
learning Rate은 hyper parameter중 하나이다.
hyper parameter란? - 컴퓨터가 스스로 설정 할수 없는 부분에 사람이 컨트롤 하는 부분을 말한다.
learning rate을 연구원이 직접 조절한다.
MNIST 데이터가 6만개인데, 한 모델에 한번에 넣을수 없음. 메모리도 부족,,,
그래서 몇장씩 잘라 넣어줄지를 결정하는데 그것을 Batch size라고 말한다.
60000만장의 데이터를 본후
인공지능이 Epoch 만큼 데이터를 보게 한다. (학습을 위해)
Epoch는 60000만개의 데이터를 한번 보게되면 1 Epoch 두번은 2Epoch라고 할 수 있다.
Data set을 받게되면 트레인셋 테스트셋을 받게 된다.
이유는 테스트와 트레이닝할 부분을 나누면 효율적으로 두가지의 결과물들을 도출할수 있기 때문이다.
그래서 꼭 나누어야 한다.
CNN에 데이터 셋을 넣었을때, 정답 또는 레이블이 있어야 한다.
위 자료를 Epoch처럼 볼수 있도록 하자.
결국엔 인간도 반복해서 공부해야 하는 객체라는 사실......
'workSpace > PYTHON' 카테고리의 다른 글
[Numpy] Numpy 문제 모음 정답 및 설명 (100 numpy exercises) - ing (0) | 2021.01.11 |
---|---|
[Numpy] Numpy 문제 모음 (100 numpy exercises) (0) | 2021.01.11 |
[openCV] openCV 기본 함수 정리 + (간단한 응용프로그램 만들기) (0) | 2021.01.06 |
[openCV] openCV 관련 함수 및 설명 (0) | 2021.01.05 |
[Python][AI] 자동 투자 주식 봇 설계 (0) | 2021.01.02 |