conv 5*5 -> subsampling 2*2
feature extraction 과정임
마지막으로 classification
CNN이 ct image 분석
수상했던 결과
주어진 이미지 데이터 움직이고 여러개의 값 나온걸 pooling 한다
간단한 이미지를 우선 생각해보자
2*2*1 필터 stride 1
이런 과정 거치면 2*2 결과가 나온다.
텐서플로에서는 알아서 나온다.
우선 토이 이미지를 만듬
앞의 값은 n = 1 하나의 이미지 3 * 3
시각화
weight 정할 때 필터 크기 2 *2 * 1 * 1
앞 1은 color 뒤 1 은 필터
그리고 첫번째 필터부터 다 더한 값 number로 저장
텐서플로로 어떻게 구현하냐? 이렇게
시각화 하기 위해서 출력
그럼 12 16 24 28이 나온다.
3*3 으로 채워주고 싶으면 패딩을 더한다. padding = smae 하면 필터에 맞춰서 0을 추가로 더해준다.
결국 이렇게 나온다
3*3 필터가 되면?
3장으 ㅣ이미지가 나온다.
conv2d 호출 시키면 이미지 세개 나온다
풀링 작업을 할 수 있다 subsampling
필터 사이즈 다음 스트라이드 패딩 이렇게 정해주고
그다음 max_pool 함수에 의해 뽑아낸다.
신기하게 처음 값이랑 결과 같다
ㅎㅎ
mnist
conv 레이어 통과하는거 보자
3*3 1 5 레이어
패딩은 same
stride 14 * 14 가된다
conv2d
출력하기 위한 마지막 두줄
5개를 뽑아냈으니까 5개 나옴
이제는 max poling
14*14 이미지, stride = 1 이기 때문에 7*7 사이즈 나온다
subsampling
==================================
99% 정확도에 도전하도록 한다
이번 실습에서 사용하는 모델
con pool conv pool 그리고 10개 추측 시스템
우선 인풋 이미지를 conv pool 에 맞게 바꾸는 단계
이미지 처음 크기 28 28 1
n개가 들어오겠자 -1
필터 32개의 필터
stride 1 로 하고 padding same 이면 weight 크기 상관없이 결과는 인풋과 같다
렐루 통과
맥스 풀링 2 * 2 필터 사이즈 스트라이드 패딩
이제 2 이기 때문에 14 * 14가 된다
결과적으로 이렇게 나온다
14 * 14 * 32를 이제 다음 단계에 사용하게 된다.
3*3* 32 * 64
64개의 필터
풀링
이제 마지막에 fc 에 넣을 예정 쭉 펼쳐있는데 다시 reshape 한다
7*7*64 긴 배열이 n개 쌓여있는 형태 3136
이걸 fc에 넣을 예정
입력 값은 7*7*64 였지
xavier initlizer
10은 0~9
matul + b 똑같다
adam softmax 부분으 똑같다
train session 부분은 똑같다
그런 다음에 hypothesis ,1 과 비굑해서 같으면 1 아니면 0 이렇게 cost accuracy나온다
deep CNN
conv 3개 했다면 어떻게 되냐?
아까와 똑같지만 한단 더 추가됨
장점? 정확도가 높아진다 드랍아웃할 떄 주의할 점은 마지막 단계 1 이어야 한다는 거 또 주의
==========================================
저번 시간 0.9938 봤지
파이썬 클라스를 하는 방법을 배우자
위의 파이썬 클라스 살펴보면
init
build net
predict
get_accuracy
train
model(ses, 'ml')
batch xs batch ys
그다음으로 tf.layers라는 모듈도 있다.
dense(...)
이부분 굉장히 간단하다
어떻게 하냐면 layers.conv2d (inputs filters kernel_size padding activation)
이렇게 바로바로 줄 수 있다.
드랍아웃은 training true false 주고 rate = 1 실수 방지할 수 있다.
한줄로 다 해결 가능 : ㅇ
조화롭게 만든다는 장점
여러개의 모델을 트레인하고 뉴 데이터 예측 각각 예측시키고
metaclassifer로 조합시킨다
ensemble traning
모델 클라스
7개라고 정했다. 그다음 7개 만드는데 클래스 쓴다
학습 시작 epoch 돌고 batch마다 학습시킨다
train
cost 어떻게 되는지 확인
조합하는 방법 여러 가지 있는데 우리는 합하는 걸로 하자
각각 모델 예측 값 결과 다 합쳐서 확인 가장 점수 높은걸 argmax로 궇ㄹ 수 있다
루프를 돌면서 모델 하나 예측하게 되고 그리고 그걸 합한다
한다음 돌려보면 모델 accruacy모다 앙상블이 더 높다
연습문제 고민해봤다
깊고 넓게?
등
'머신러닝,딥러닝 > tensorflow' 카테고리의 다른 글
lec12 NN의 꽃 RNN 이야기 (0) | 2021.02.10 |
---|---|
lec11 ConvNet 의 conv 레이어 만들기 (0) | 2021.01.25 |
lec10 xsigmoid 보다 ReLU가 더 좋아 (0) | 2021.01.24 |
lec09 XOR 문제 딥러닝으로 풀기 (0) | 2021.01.24 |
lec08 tensor manipulation(reshape, stack, zip, one_hot ..) (0) | 2021.01.22 |
lec08 deep neural network for everyone (0) | 2021.01.22 |
lec07 learning rate, data preprocessing overfitting (0) | 2021.01.21 |
lec06 multinominal 개념 소개 (0) | 2021.01.21 |