슈코딩

[머신러닝] CNN 본문

코딩공부/머신러닝

[머신러닝] CNN

Roshu 2022. 5. 17. 17:01

1. CNN 합성곱 신경망

Convolution 연산이라고도 하는 합성곱은 컴퓨터 비전 분야에서 성능이 좋아서 많이 쓰이던 것이다.

기존의 Neural Network에 Convolution 연산을 적용시키면 이미지 처리에 유용하지 않을까 하는

생각에서 만들어지게 됐다고한다.

 

합성곱

합성곱 계산 방식 입력데이터와 필터의 각각의 요소를 서로 곱한후 다더한다. 

입력데이터의 3x3 크기를 오른쪽으로 한칸이동해서 필터와 곱하고, 아래왼쪽서부터 다시 반복해서

결과 2x2의 값이 나오게된다.

 

필터(커널), 스트라이드, 패딩

위 사진에서 합성곱이 진행되고 있는 5x5블록의 3x3 어두운 부분을 필터 혹은 커널이라고 하고

한칸씩움직이며 합성곱을하는데, 움직이는 간격을 스트라이드라고 한다. 

패딩(padding) 은 가상의 구역을 주게되어 출력값(feature map)을 입력값과 같은 크기로 뽑아낼때 사용하게된다.

 

2. CNN의 활용

1. 물체인식 (Object detection)

 

2. YOLO (You Only Look Once)

 

3. 이미지 분할 (Segmentation)

-인물과 배경을 분할해서 배경을 흐리게 해서 인물을 Focus하는 기술

 

#활용

1. 자율주행 물체 인식

2. 자세 인식 ( 인물 감지, 인체의 각 부분의 위치 파악 ) ex) 저스트댄스 게임

3. 화질 개선 ( 이미지의 각 feature 인식 후 고화질로 추론 )

4. 스타일 변경 ( 이미지에 다양한 화풍을 입히기 )

5. 사진 색 복원 ( 옛날 흑백 사진에 색을 입혀주기 )

 

 

#CNN의 종류

 

3. 전이학습 

전이학습은 인간이 학습하는 방법을 모사하여 만들어졌다.

과거에 학습을 하며 생긴 문제들을 해결하면서 쌓였던 노하우를 가지고

다음 학습에 가져가서 더 효율적으로 학습을 하듯이 학습 하는것을 말한다.

전이학습은 비교적 학습 속도가 빠르고 정확하고, 상대적으로 적은 데이터셋으로

좋은 결과를 낼 수 있다. 실무에서도 많이 사용한다. 다시말해 미리 학습시킨 모델을

가져와서 새로운 데이터셋에 대해 다시 학습시키는 방법을 말한다.

 

 

4. RNN(순환 신경망), GAN(생성적 적대 신경망)

RNN은 자연어 처리같은 다양한 분야에 활용이 된다.

음성, 문자 같은 순차적으로 등장하는 데이터 처리에 적합한 모델로 알려져있다.

ex) 소설을 지어내는 인공지능, 주식이나 암호화폐 시세 예측, 사람과 대화 하는 챗봇 

 

GAN은 이미지의 배경 계절을 바꾼다거나, 인물 사진속 표정을 바꾼다거나 혹은 애니메이션화 하는 둥

기능들이 있다.

 

 

 

5. 실습

CNN 수화 MNIST

https://colab.research.google.com/drive/1LliohNx-aL_MyzkoH0T0HU8TU9Dp2TQ4

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

 

 

과일 종류 예측

https://colab.research.google.com/drive/1ppG4eqlvCTDKJaqTVSTZIesjj8jihALM

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

 

Comments