Pixel이란?
컴퓨터가 색의 강도를 인식하는 방법 (picture + element)
- Picture: 사진, 그림
- Element: 요소, 항목
컴퓨터는 색을 어떻게 표현하는가? (대체적으로 R, G, B)
만약 웹 색상이 ##93DAFF이라면
- 93: Red를 표현하는 2개의 16진수
- DA: Gree을를 표현하는 2개의 16진수
- FF: Blue를 표현하는 2개의 16진수
구체적으로 컴퓨터는 색을 어떻게 표현하는가?
다양한 Chanel로 이미지의 색상을 표현
왜 컴퓨터가 색을 인식하기 위해 Pixel을 사용하는가?
이미지를 전자적으로 표현하는 방식이며 단위
- 화소 = 픽셀(Pixel)
- 해상도: 한 화면이 몇 개의 Pixel로 나뉘어져 있는지를 의미
- 8K 해상도: 가로에 약 8000개의 Pixel이 있는 해상도
Example) Chanel Image - Red
가운데에 빨간색의 한 점만 있는 화면은 어떻게 구성되어있을까?
1개의 화면은 R, G, B 3개의 Chanel로 이루어져있다.
R, G, B 3개의의 채널을 들여다보면 아래와 같이 생겨있다.
CNN (Convolutional Nueral Networks)
- 이미지를 위한 인공지능
- 데이터의 두 규칙을 곱하고 합하는 과정으로 구성된 인공 신경망
Convolution
하나의 함수와 또 다른 함수를 반전 이동한 값을 곱한 다음, 구간에 대해 적분하여 새로운 함수를 구하는 수학 연산자
Neural Networks
인공 신경망
왜 CNN을 사용해야 하는가?
컴퓨터는 이미지를 이렇게 본다
컴퓨터가 이미지를 인식하려면?
영역을 잘라서 확인시켜주어야 한다. -> 지역화(Localization) 문제
구글은 사람 인증을 통해 라벨 데이터를 실시간으로 수집하고 있다.
CNN의 원리
지역화 문제를 해결하기 위해 "데이터의 두 규칙을 곱하고 합한다!"
- 합성곱 신경망은 입력된 이미지에서 특징을 추출하기 위해 필터(커널 또는 슬라이딩 윈도우라고도 불림) 를 도입하는 기법이다.
- Convolutional Layer는 컨볼루션 신경망에서 특징추출을 담당하는 계층이다.
- Convolutional Layer는 특징을 추출하는 필터(Filter) 와 필터의 값을 비선형으로 바꿔주는 활성함수(Activation Function) 으로 구성된다.
Convolutional Layer
Convolutional Layer의 특징 추출 과정을 보자.
예를들어 입력된 이미지가 위와 같은 값을 가지고 있다고 하자.
- 여기에 2×2 커널을 준비.
- 각 칸에는 가중치가 들어 있음.
- 샘플 가중치를 다음과 같이 ×1, ×0이라고 하겠음.
- 이제 커널을 맨 왼쪽 윗칸에 적용시켜 보자.
- 적용된 부분은 원래 있던 값에 가중치의 값을 곱함.
- 그 결과를 합하면 새로 추출된 값은 2가 됨.
이 커널을 한 칸씩 옮겨 모두 적용해 보자.
그 결과는 위와 같다. (추출한 feature map)
Example
Convolutional layer 정리
하나의 이미지에 대해 kernal(필터)를 다양하게 적용한다.
(입력 값에는 여러가지 특징이 있기 때문에 하나의 필터가 아닌 여러 개의 다중 필터를 적용, 이로써 다양한 특징 추출 가능)
필터를 꼭 한 칸씩 이동해야 하는가?
Stride(스트라이드)를 변경하면 바꿀 수 있다!
Stride: 필터를 입력데이터나 특성에 적용할 때 움직이는 간격
Convolution을 반복적으로 수행하면 행렬의 크기가 점점 작아지지 않을까?
작아지는 것을 방지하기 위해 패딩(Padding)이란 개념을 도입
패딩(Padding)
- 반복적으로 합성곱 연산을 적용했을 때 특성의 행렬 크기를 작아지는 것을 방지
- 이미지의 모서리 부분의 정보 손실을 줄임
- 이미지 주변에 0을 채워 넣음
컬러 이미지는 어떻게 convolution을 할 수 있을까?
- 필터의 채널이 3개
- RGB 각각에 다른 가중치로 convolution 하고 결과를 더함
- 필터의 채널은 3개 지만 필터의 수는 1개
효과적인 CNN 사용을 위한 여러 방법
Pooling
- feature map의 결과가 여전히 크고 복잡하면 이를 다시 한 번 축소해야 한다.
- 이 과정을 풀링(pooling) 또는 서브 샘플링(sub sampling)이라고 함.
Max Pooling(맥스 풀링)
- Pooling기법 중 보편적으로 사용
- 정해진 구역 안에서 최댓값을 뽑아냄
- 이 과정을 거쳐 불필요한 정보를 간추림.
- 풀링 층은 데이터의 공간적인 특성을 유지하면서 크기를 줄여주는 층
- 특정위치에서 큰 역할을 하는 특징을 추출(전체를 대변하는 특징을 추출)
Drop out(드롭 아웃)
드롭아웃은 은닉층에 배치된 노드 중 일부를 임의로 꺼 주는 것
- 복잡한 CNN을 효과적으로 조절하는 방식
- 오버피팅을 막기위한 방법, 학습용 데이터에 편향되는 것을 막아줌
Flatten (플래튼)
다차원의 입력 데이터를 1차원으로 변환
- 복잡한 CNN을 효과적으로 조절하는 방식
- 컨볼루션 레이어와 풀링층의 특징을 추출한 다음 추출된 특성을 출력층에 연결하여 어떤 이미지인지 분류할 때 사용
CNN의 구조
출처: [성균관대 컨소시엄] 건양대 DNA School 기초과정 - 병원 임상데이터를 활용한 AI기초 강의자료
'Data Science > ML & DL' 카테고리의 다른 글
ILSVRC (Image Large Scale Visual Recognization Challenge) (0) | 2024.07.11 |
---|---|
인공지능을 위한 평가방법 Mextics(Accuracy, Confusion Matrix, ROC, AUC (0) | 2024.07.09 |
딥러닝의 원리와 확장성 (0) | 2024.07.08 |
선형(Linear) 문제 (0) | 2024.07.07 |
기계학습의 종류 (1) | 2024.07.05 |