딥러닝에 대해서 입문을 하려는 분들은 많이 들어봤을 것이고, 기본이 되는 학습 기법에 대해 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 |
댓글