일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 컴퓨터구조
- ChatGPT
- 자바스크립트심화
- 혼공머신
- 순환신경망
- 디버깅
- 중학1-1
- 자바
- JSP/Servlet
- SQL
- JDBC
- 딥러닝
- c언어
- 연습문제
- 컴퓨터비전
- 데이터베이스
- 상속
- CSS
- html/css
- 자바 실습
- 머신러닝
- 중학수학
- 정보처리기사필기
- 정보처리기사실기
- 데이터분석
- 파이썬
- 자바스크립트
- rnn
- 개발일기
- JSP
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
CNN 1 - CNN 이미지 분석과 필터 그리고 패딩에 대하여 본문
오늘 새벽부터 아침 9시까지 이력서와 포트폴리오를 수정하는데 시간을 보냈다. 아마 6시간 정도 걸린 것 같다. 또 오늘 모의 면접도 있는데 과연 잘할 수 있을지 걱정이 되기도 한다. 그래도 잘하리라 믿고 이제 아침 공부를 시작해보려고 한다. 사실 새벽에 잘 안 되는 코드가 있어서 그걸 연구하는데 너무나 많은 시간을 보내기도 했다. 결국 원하는 대로 해결은 못했지만 그래도 한 과정을 끝낼 수 있어서 정말 기뻤다.
이제 오늘 아침부터는 CNN 공부를 하려고 한다. 오후에 면접이 있으니 그전에 준비해야 할 것도 있어서 오늘은 이틀 치의 수업만 공부할 생각이다.
CNN의 개념 학습
선형 모델이 이미지의 위치에 대해 학습하기에 위치에 민감하게 반응한다.
흰색과 검은색의 위치값을 학습하는데 한 칸만 움직여도 이처럼 인식을 하지 못한다.
이미지나 영상을 처리할 때 사용하는 모델이 CNN이다. 조금 틀어져도 이미지를 잘 추출하게 된다.
전체 이미지를 알려주지 않아도 특징을 추출하기 때문에 알 수 있다.
CNN의 유래
CNN의 구조
고양이 사진도 특징을 추출해서 학습한다. Dense를 사용해서 분석하는데, CNN에서는 Convolution과 Polling에서 진행된다. 약자로 conv라고 쓴다. 먼저 Convolution이 특징을 찾고 특징이 없는 부분은 Pooling에서 삭제한다. 그런 다음에 두 가지 특징을 합쳐서 사용하게 된다.
첫 번째 층에서 다음 층으로 갈수록 점점 더 자세한 특징을 찾게 된다.
CNN에서 특징을 추출하는 방법
원본 이미지 위에 필터를 입혀서 연산을 한다. 그런 다음 같은 숫자끼리 곱한 것을 더하는데 여기서는 1이 된다. 연산이 끝나면 다음 칸으로 이동해서 다시 연산을 한다. 이렇게 이동을 하면서 연산하면 3 x 3의 9개의 데이터가 입력된다.
필터를 위에 덧씌워서 연산을 한다.
필터를 거치면 이미지의 크기가 작아진다. 입력과 출력되었을 때의 크기가 다르기 때문이다. 이것을 보완하기 위해 사용하는 것이 패딩값이다.
패딩이란 무엇인가?
패딩은 여백이다. 실제 이미지에 의미없는 0을 채워 넣는 것이다. 이동하면서 필터로 추출할 때 가운데와 가장자리 부분의 필터의 크기가 달라진다. (0, 0)은 1개, 그 옆은 2번, 3번이 된다. 즉 가장자리는 특성 추출이 적어진다.
CNN Padding 관련 영상
커널은 필터로 (3, 3)을 (5, 5)의 이미지의 특성으로 추출해 보았다. 이렇게 하나씩 특징을 추출해서 3 x3에 넣어줄 때마다 이미지의 크기가 작아진다. 이것을 패딩으로 해결할 수 있다.
패딩을 불러와서 5 x 5를 내는 것이 패딩의 역할이다.
패딩하는 방법
파란색이 원본인데 여기에 주황색 네모칸이 왼쪽부터 차례대로 이동하면서 패딩값을 주는 것이다.
학습을 마치고
책으로 공부할 때보다 선생님이 가르쳐주시니 머릿속에 쏙쏙 들어왔다. 사실 혼공책의 강사님의 목소리는 저음인 데다 말소리가 귀에 잘 들어오지 않아 늘 집중이 안되었다.
하지만 사람마다 자신의 귀에 잘 들어오는 목소리의 톤과 음색이 있다는 걸 느꼈다. 남자들은 남자의 목소리가 잘 들어오고, 여성의 경우 남자 목소리는 잘 들어오지 않고 흩어지는 느낌이다.
어쨌거나 이번 시간에 CNN이 무엇인지 잘 배울 수 있었다. 개념 학습을 했으니 이제 다음 포스트에서는 실습을 진행해 볼 것이다.
'인공지능 > 딥러닝' 카테고리의 다른 글
CNN 3 - 개와 고양이를 분류하는 실습 1 : 이미지 파일 분류 (0) | 2024.10.28 |
---|---|
CNN 2 - 합성곱 신경망 실습해보기 (0) | 2024.10.28 |
이미지를 위한 인공 신경망 6 - 합성곱 신경망의 시각화 2 : 함수형 API 및 특성 맵 시각화 (0) | 2024.10.27 |
이미지를 위한 인공 신경망 5 - 합성곱 신경망의 시각화 1 : 가중치 시각화 (0) | 2024.10.27 |
이미지를 위한 인공 신경망 4 - 합성곱 신경망을 사용한 이미지 분류 2 : 모델 컴파일과 훈련 (0) | 2024.10.27 |