본문 바로가기
IT/Python

CNN , RNN 에 대해서

by 성준하이 2023. 7. 20.
반응형

딥러닝에 대해서 입문을 하려는 분들은 많이 들어봤을 것이고, 기본이 되는 학습 기법에 대해 CNN 과 RNN 에 대해서 소개하려고 한다.

 

CNN (Convolution Neural Network : 합성곱신경망)

먼저 그림에서 보면 알수 있듯이

데이터(이미지 혹은 동영상) 의 특징을 추출하여 특정 패턴을 파악하는 구조이다.

추출에 대해서는 Convolution(데이터의 특징을 추출) 과정과 Pooling(Convolution Layer 의 사이즈를 줄임) 과정으로 진행을 한다.

사용되는 경우는 아래와 같다.

- Object Recognition : 사물을 알아맞추는 것 (ex. 자동차를 바운딩박스 처리)

- Object Identification : 사물의 특성을 알아맞추는 것

- Face Identification : 사람의 특성을 알아맞추는 것 (ex. 사람이라면 '저 얼굴은 홍길동이다'까지 알아맞춤)

- Style Transfer : 기존의 스타일을 학습해서 새로운 그림을 해당 스타일로 변형 (ex. 화가의 화풍을 새로운 그림에 적용함)

- Deblurring and Denoising : 흐림 및 노이즈를 제거

- Super-Resolution : 저해상도 이미지의 해상도를 높이는 것

 

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

rnn 은 입출력을 시퀀스 단위로 처리하는 시퀀스 모델이라고 생각하면 이해가 빠르다.

반복적이고 순차적으로 데이터를 학습 시키는데 특화된 인공신경망의 한 종류이다.

순환 구조를 이용해 과거 학습을 통해서 현재 학습에 반영한다.

사용되는 경우는 아래와 같다.

- Speech Recognition :  말을 인식해서 내용이나 감정을 알아맞추는 것

- Machine Translation : 번역기

- Information Retrieval : 정보 검색 (ex. 검색엔진) (비지도학습 Unsupervised Learning)

 

CNN은 정해진 크기의 입력을 받아 정해진 크기를 출력하고
RNN은 랜덤하게 입력과 출력을 나타낸다.

CNN은 이미지 비디오 처리에 적합하고
RNN은 텍스트와 스피치 분석에 적합하다.

CNN은 입력값에 한해서 분석 및 합성곱을 하고
RNN은 마지막 입력 정보가 다음 값에 영향을 준다.

 

반응형

'IT > Python' 카테고리의 다른 글

SyntaxError: Non-UTF-8 code starting with '\xbf' in file  (26) 2024.04.25
python 에서 try 문 사용  (66) 2023.07.25
matplotlib.pyplot 사용법  (49) 2023.07.19
파이선에서 날짜 문자열 추출  (30) 2023.06.13
파이선에서 escape 종류  (21) 2023.03.06

댓글