본문 바로가기
내일배움캠프

38. 내일배움캠프 - 29일차 TIL(딥러닝 4주차, 거북이반 day3)

by 새싹_v 2022. 10. 13.
728x90


 

 

TIL

📌
오늘 한 일
아침 딥러닝 쪽지 시험
딥러닝 4주 차 강의
장고 원격강의 
거북이 반

아침부터 딥러닝 쪽지 시험을 봤다.

쪽지 시험 내용은 어제 딥러닝 특강에서 배운 내용에서 나왔다.

어제 특강과 다른점은 사진 안에 있는 사람을 하나하나 출력하는 것이었다.

난 사진에서 사람 한 명은 되지만 여러 명을 출력하지 못했다.

for문을 사용해서 하는 것 같지만 어떻게 하는지 모르겠어서 그냥 제출했다.

나중에 튜터님께 어떻게 하는지 배우고 다시 수정해서 깃허브에 올렸다.

장고 마지막 4주 차 강의를 들었는데 

마지막 부분 실습은 좀 어려웠다. 집중이 안돼서 그런지 모르겠지만 

그냥 이렇구나 하면서 넘겼다 ㅎㅎ 4주 차 강의도 끝나고

장고 강의를 들었다 오늘 공부를 많이 해놔야 내일 중간고사 공부를 할 수 있기 때문에

오늘 많이 들어놓을 예정이다.

 

 

 

딥러닝 4주 차

 

- 전이학습 :

이미 학습된 모델을 비슷한 문제를 푸는데 다시 사용하는 것을 말함

더 적은 데이터로 더 빠르고 정확하게 학습시킬 수 있음

 

 

 

- Convolutional Neural Networks(합성곱 신경망)

합성곱(Convolution) :
입력데이터와 필터의 각각의 요소를 서로 곱한 후 다 더하면 출력값이 된다.

5x5 크기의 입력이 주어졌을 때, 3x3짜리 필터를 사용하여
합성곱을 하면 3x3 크기의 특성맵(Feature map)을 뽑아낼 수 있다.
필터를 한 칸씩 오른쪽으로 움직이며 합성곱 연산을 하는데, 이때
이동하는 간격을 스트라이드(Stride)라고 한다.

위처럼 연산을 하게 되면 특성맵의 크기가 줄어든다.
이를 방지하기 위해서 패딩, 마진(padding, margin)을 주어, 스트라이드가 1일 때
입력값과 특성맵의 크기를 같게 만들 수 있다.

위에는 1개의 필터를 사용하지만 여러 개 필터를 이용하여
합성곱 신경망의 성능을 높일 수 있다.

 

 

 

- CNN의 구성

- 합성곱 신경망은 합성곱 계층(Convolution layer)과 완전연결 계층(Dense layer)을 함께 사용
- 합성곱 계층 + 활성화 함수 + 풀링을 반복하며 점점 작아지지만 핵심적인 특성들을 뽑아낸다. 여기서 풀링 계층(Pooling layer)은 특성 맵의 중요 부분을 추출하여 저장하는 역할을 함
- Max pooling :
2x2 크기의 풀 사이즈(pool size)로 스트라이트 2의 Max pooling 계층을 통과할 경우
2x2 크기의 특성 맵에서 가장 큰 값들을 추출한다.
- Average pooling : 
2x2 크기의 특성 맵에서 평균값을 추출하는 방식
- 평탄화 계층(Flatten layer)을 사용해서 2차원을 1차원으로 펼치는 작업을 하게 된다.
평탄화 계층을 통과하게 되면 완전연결 계층에서 행렬 곱셈을 할 수 있고
마찬가지로 완전연결 계층+활성화 함수의 반복을 통해 점점 노드의 개수를 축소시키다가
마지막에 Softmax 활성화 함수를 통과하고 출력층으로 결과를 출력하게 된다.

(출처) https://www.superdatascience.com/blogs/convolutional-neural-networks-cnn-step-3-flattening

 

- CNN 활용

물체인식(Object Detection) : 사진 이미지에서 물체를 인식함
YOLO(You Only Look Once)

이미지 분할(Segmentation) : 각 오브젝트에 속한 픽셀들을 분리하는 것

활용 예 :
자율주행 물체인식
자세 인식(Pose Detection)
화질개선(Super Resolution)
Style Transfer
사진 색 복원(Colorization)

 

 

- 다양한 CNN종류

AlexNet :
합성곱 신경망과 Dropout과 Image augmentation 기법을 효과적으로 적용하여 딥러닝에 많은 기여

VGGNET :
큰 특징은 없는데 엄청 Deep한 모델(파라미터의 개수가 많고 모델의 깊이가 깊습니다)로 잘 알려져 있습니다.

GooglLeNet(=Inception V3) :
하나의 계층에서도 다양한 종류의 필터, 풀링을 도입함으로써 개별 계층을 두텁게 확장시킴

ResNet :
그래디언트가 잘 흐를 수 있도록 일종의 지름길(Shortcut=Skip connection)을 만들어주는 방법입니다.

 

 

- Recurrent Neural Networks(순환 신경망) :

길이에 관계없이 입력과 출력을 받아들일 수 있는 구조이기 때문에 
필요에 따라 다양하고 유연하게 구조를 만들 수 있다는 점이 RNN의 가장 큰 장점입니다.

 

- Generative Adversarial Network(생성적 적대 신경망) :

서로 적대(Adversarial)하는 관계의 2가지 모델(생성 모델과 판별 모델)을 
동시에 사용하는 기술입니다. 

 

 

 

거북이 반

 

- 로그인
            urls 등록
            [views.py](http://views.py) 작성
            template 작성
- 브라우저 쿠키 확인
- db 세션 확인 - 간단한 프로필 페이지 작성
- 로그인 사용자의 아이디 보여주기
- template에 context를 실어 보내기
728x90

댓글