동에 번쩍, 서에 번쩍

[스파르타 코딩클럽] 가장 쉽게 배우는 머신러닝 4주차 개발일지 본문

다오니의 소소한 일상👀/스파르타 코딩클럽

[스파르타 코딩클럽] 가장 쉽게 배우는 머신러닝 4주차 개발일지

dayonits2 2021. 7. 14. 23:06

 

3주차 개발일지를 내가 6월 29일에 올렸었네..?

오늘은.. 7월 14일 이네..?

아 물론 강의는 바로 다음날 수강했다.

근데 개발일지를 작성하는 것을 미루다보니..!!!!

부끄럽도다.. >-<...

 

 

 

 

아무튼! 오늘은 가장 쉽게 배우는 머신러닝 수업의

마지막 수업에 대한 개발일지를 작성하고자 한다.

물론 개발일지는 수강한 직후 작성해야

제대로된 의미를 가지지만

복습(?)의 의미로..! 작성해보겠다!

 

 

 

 

4주차에는 신경망을 구성하는 여러가지

방법들(CNN, RNN, GAN)과 신경망들을

효과적으로 학습시키는 방법인 전이학습,

위의 이론수업을 듣고 난 후 직접 실습해보는 실습이

주된 구성이었다.

 

 

 

 

출처 : https://www.cnblogs.com/wangxiaocvpr/p/6247424.html

뚜둔 이게 뭐냐하면 현재까지 개발된

딥러닝 신경망의 일부들이다.

본 수업에서는 이렇게 많은 신경망 중

가장 유명한 CNN, RNN, GAN 등에 대해서 다루었다.

첫번째로 CNN부터 살펴보자

 

 

 


1. CNN

 

 

 

CNN이란?

(CNN: Convolutional Neural Networks)

합성곱 신경망.

 

 

 

 

출처: https://ce-notepad.tistory.com/14

CNN의 주요 기술인 합성곱은새로 등장한 내용은 아니다.

합성곱은 예전부터 컴퓨터 비전이나

영상처리 분야에서 많이 쓰였던 이미지 처리방식으로

계산 방식은 위의 사진에서 표현된 것 처럼

입력 데이터와 필터의 각각의 요소를서로 곱한 후에 다시 더하면 된다.

 

 

 

 

딥러닝계에서 너무나도 유명한 르쿤 교수님은

이러한 콘볼루션 연산(합성곱)을 이용하여 딥러닝 신경망을

디자인하였는데 이 CNN이 성능면에서 대박을 치면서

엄청난! 떡상을 하게 된 것이다.

실제로 CNN은 얼굴인식, 사물인식 등 대용량의 데이터를 처리하는

연산에 뛰어난 성능을 보이며

따라서 이미지 처리 면에서 가장 보편적으로 사용되는

네트워크 구조이다.

 

 

 

 

나는 CNN의 세부내용까지는 아니지만

대학교 3학년 때 영상처리 관련 과목에서

성곱과 이에 대한 용어들을 배우긴 하였는데

그 당시.. 수업이 매우 ★로 였기에 기억에서 지웠었다

그러다 사진을 보니 문득 ㅎㅎ

기억이 살아나고..뭐.. 그랬다는 것...

 

 

 

 

아무튼! CNN을 활용한 예시를 살펴보면되게 재밌는 것들이 많다.

 

 

 

 

1. Object Detection

출처: https://arxiv.org/abs/1612.04402v1
YOLO(You Only Look Once)

 

 

 

 

2. Segmentation

 

 

 

3. 자율주행 물체인식

 

 

 

 

4. 자세 인식(Pose Detection)

(닌텐도의 유명한 저스트 댄스 아시죠!?

저스트 댄스도 Pose Detection을 응용하여

개발된 게임이랍니당)

 

 

 

 

5. 화질개선(Super Resolution)

 

이외에도 Style Trasfer, 사진 색 복원 등등

여러가지의 예시가 있지만

우선 여기까지 하는걸로!

 

 

 

 

이렇게 영상처리에 큰 바람을 불어넣은

CNN을 활용하여 딥러닝의 부흥에 일조한

모델들에 대해서도 배웠다.

이에 대한 내용은 포스팅이 길어질 것 같기에..

패스!

(RNN와 GAN은 아래에 간략하게 설명하겠음!)

 

 

 

 


2. 전이학습

 

 

 

 

전이학습을 가장 쉽게 설명해보자면

우리가 영어를 배워서 완벽하게 구사할 수 있다고

가정한다면, 후에 프랑스어를 배울 때는

영어 공부를 할 때 사용한 지식과 방법, 노하우들을 통해

더욱 빠르게 프랑스어를 습득할 수 있을 것이다.

 

 

 

 

이렇게 과거에 문제를 해결하면서

축적된 경험을 토대로 그것과 유사한 문제를

효육적으로 해결하도록 하는 인간이 학습하는 방법을

모사하여 컴퓨터가 학습할 수 있게 한 것

전이학습이다.

 

 

 

 

 

다시 말해서 전이학습은

위에서 언급했던 성능이 뛰어난 모델들을

가져와서 새로운 데이터셋에 대해서 다시 학습을 시켜서

필요한 곳에 쓰일 수 있게 하는 것으로

이러한 전이학습의 효과는 생각보다도 더더더욱

효율이 좋다고 한다!

 

 

 

 


3. RNN과 GAN

 

 

 

 

RNN이란?

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

 

 

 

 

출처: https://ratsgo.github.io/natural language processing/2017/03/09/rnnlstm/

RNN은 딥러닝 모델에서 은닉층이 순차적으로 연결되어

순환구조를 이루는 신경망의 한 종류이다.

(사진 참고하면 더더욱 이해가 쉬움!)

 

 

 

 

이러한 RNN은 길이에 관계없이 입력과 출력을

받아들일 수 있는 구조이기에

필요에 따라서 다양하고 유연하게

구조를 변경할 수 있다는 것이 가장 큰 장점이다!

 

 

 

 

 

소설을 지어내는 인공지능을 만든다고가정하고 예시를 들어본다면,

 

 

 

 

출처: https://ratsgo.github.io/natural language processing/2017/03/09/rnnlstm/

hell 이라는 입력을 받으면

ello 라는 출력을 만들어내게 해서

결과적으로 hello 라는 순차적인 문자열을

만들어 낼 수 있게 하는

아주 좋은 구조이다!

이외에도 사람과 대화하는 챗봇이나 주식이나

암호화폐의 시세를 예측하는 모델 등에

쓰인다고 한다.

 

 

 

 

GAN이란?

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

 

 

 

 

GAN은 서로 적대하는 관계의 2가지

모델을 동시에 사용하는 구조의 신경망으로,

요즘 딥러닝 학계에서 굉~장히 핫한 분야라고 한다.

 

 

 

 

위조지폐범과 이를 보고 적발해야하는 경찰의

관계를 예시로 GAN을 설명해보자면,

 

 

 

 

출처: [가장 쉽게 배우는 머신러닝] 강의자료

이러한 플로우를 가지는 신경망에서

생성모델은 위조지폐범으로, 이 모델의 목적은

경찰도 구분 못하는 진짜같은 위조지폐를 만드는 것!이고

판별모델은 경찰로, 진짜 지폐와 위조지페를 잘 구분하여

판별해내야 하는 것이 목적이다.

 

 

 

 

이처럼 생성모델은 판별모델을 경쟁상대로,

판별모델은 생성모델을 경쟁상대로 두어

서로가 서로의 발전관계가 되어 더욱 좋은

결과를 거두는 신경망인 것이다.

 

 

 

 

이러한 GAN을 활용한 예시들은

요즘들어 자주 접할 수 있는데

 

 

 

 

사진을 계절이 다른것 처럼 바꾼다던지,

인물사진을 웹툰처럼 바꾼다던지,

요즘 떠오르는 딥페이크 기술 등에 널리 사용되고 있다

 

 

 

 

 

뭔가 찝찝하지만 재밌는 사실은

GAN의 이론 자체가 생성모델이 있으면

판별모델이 있듯이 요즘 딥페이크를 이용한

범죄가 판을 치고 있기에

사회제도적으로도 공모전이나 Deepfake 판별대회가

굉~장히 많이 열리고 있다고 한다!

(딥페이크 범죄는 진짜 최악인듯..)

 

 

 

 


4. 실습

 

 

 

 

이렇게 마지막 강의인 4주차 강의를 다 수강하고

실습수업에서는 3주차에 MLP를 이용해서 분류했던

MNIST를 CNN을 사용하여 분류해보고,

전이학습 실습을 위해 미리 학습되어진

Inception-V3 모델을 가져와서 과일사진을

분류해보았으며,

 

 

 

 

과제로는 CNN과 전이학습을 짬뽕하여

풍경 사진을 분류하는 실습이 진행되었다!

 

 

 

 

이번 과제 역시 주어진 실습내에서

약간의 변형을 통해 할 수 있는 범위였지만

그래도 제일 4주간의 과제 중에서

제일 어려웠던 과제였다!

 

 

 

 

이로써

[가장 쉽게 배우는 머신러닝]

4주차 개발일지 끝!!

다음은 수강 후기나 겟레디윗미 굿즈관련해서

포스팅을 해보겠다..!!

 

 

 

 

그렇다면

Good Bye~~~

Comments