오늘은 완강을 해버렸다. 제발 에어팟 프로 받게 해주세요 ㅠㅠ
4주차에는 딥러닝 신경망 구조들을 알아보고, 전이학습에 대해 학습하고 이에 대한 실습을 진행했다.
Convolutional Neural Network는 내가 Convolution을 전에 배웠기 때문에 그렇게 어렵지 않았다. Filter, Strides and Padding 모두 익숙했던 개념이었다.

CNN은 이 Convolution layer과 이전에 배웠던 Dense Layer(Fully connected Layer)으로 이루어져 있다.
또한 Polling layer은 Feautre map의 중요부분만 추출하여 전체적인 사이즈를 줄여주는 역할을 한다.
Pooling의 방법은 Max pooling과 Average pooling이 대표적이며 이 또한 나에게 익숙했던 개념이었다.
Pooling을 두번 거치고 난후의 Feature map은 Dense layer이 되기 위해 Flatten되어야 하는데 이때 Flatten Layer이 사용된다.

이 사진은 현재 다양한 CNN들을 성능으로 분류해 그래프에 표기한 것이다. 인공지능 학습관련 논문에서 보던 모델들이 나와서 뭔가 좀 반가웠다ㅎㅎ
Transfer Learning의 개념은 간단하게 아예 랜덤하게 초기값을 설정해 학습시키는 것이 아니라 이전에 만들어진 학습모델을 기반으로 초기값을 설정해 모델의 학습시간을 획기적으로 줄여주는 것이다.

Recurrent Neural Network 또한 배웠는데 CNN은 이미지 처리에 많이 쓰이는 반면 RNN은 hidden layer이 순차적으로 연결되어 순환구조를 이루고 있어 음성, 문자 등 순차적으로 등장하는 데이터 처리에 적합한 모델이다.
이들의 특징으로 길이에 관계없이 입력과 출력을 받아들일 수 있고 필요에따라 구조가 유연하게 변경할 수 있다.

Generative Adversarial Network는 되게 신기했던 모델이었다. 서로 adversial한 관계의 2개 모델(Generator and Discriminator)을 동시에 사용해 서로 학습해 나가며 발전하는 모델이다.
이 모델들을 통해서 내가 이전에 배웠었던 고흐 화풍으로 사진 바꾸기, Deepfake등의 기술이 발전된 것이었다.
그리고 CNN과 전이학습 실습을 진행하고 숙제로 풍경사진을 분류하는 전이학습을 진행하였다.
이렇게 완강을 하고나니 음 뭔가 deep한 지식은 부족하더라도 머신러닝에 대해서 가닥을 잡은 느낌이 든다. 어디가서 대화하는데 같이 낄수 있을 것 같고 만약 내가 실무를 위해 어떤 모델을 만들어야한다면 어찌저찌 할 수 있을 것 같다.
하지만 내가 아직 학생이라 그런건지 저런 개념 하나하나마다 그 작동원리나 그런 설명이 부족했던게 아쉬웠던 강의었다.
'IT(개발, 보안) > 코딩 스터디 일지' 카테고리의 다른 글
[스파르타코딩클럽] 기초 머신러닝 3주차 (0) | 2021.07.29 |
---|---|
[스파르타코딩클럽] 기초 머신러닝 2주차 (1) | 2021.07.28 |
[스파르타코딩클럽] 기초 머신러닝 1주차 (1) | 2021.07.26 |
스파르타코딩클럽 1일차 (1) | 2021.07.26 |