생성형 인공지능 3주차
핵심 주제
CNN 중심의 딥러닝을 학습하자.
머신러닝과 비교
머신러닝은 Feature extraction 과 Downstream task가 분리 되어 있으나 딥러닝은 결합되어 있고, feature extraction도 모델에 의해 학습되므로 수작업으로 특징을 만들 필요가 없다.
딥러닝은 특징 추출과 실제 작업이 하나로 결합되어 있다. 또한 특징 추출 자체도 모델이 학습하기 때문에 사람이 직접 특징을 만들어 줄 필요가 없다.
즉, CNN의 Convolution Layer가 스스로 특징을 찾아내기 때문에, 특징을 사람이 일일이 정해서 컴퓨터에게 넣어줄 필요가 없다. 딥러닝에서는 원본 이미지만 넣어준다.
정리:
==머신러닝: 특징 추출 / 다운스트림 작업이 분리
딥러닝: 특징 추출 + 다운스트림 작업이 결합 ==
Convolution 컨볼루션이란?
두 함수를 결합하여 세번째 함수를 생성하는 수학적 연산이다.
이미지 처리에서 convolution은 ==전체 이미지에서 각 픽셀과 그 로컬 이웃에 커널을 적용==하여 이미지를 변환하는 프로세스
- 커널은 작은 행렬이다. 이 행렬을 필터로 사용하여 이미지 전체를 이동하며 적용한다.
딥러닝에서는 이미지 입력에서 특징을 추출하기 위해 신경망에 컨볼루션 수행
딥러닝에서 컨볼루션의 사용 목적은 feature의 계층적 표현을 만들기 위함이다.
- 따라서, 컨볼루션의 결과로 만들어지는 새로운 행렬을 Feature Map(특징 맵)이라고 부른다.
패딩이란, 합성곱 신경망이 이미지를 처리하는 영역을 확장하는 방식이다.
- 쉽게 말해, 컨볼루션을 하면 출력 크기가 점점 작아지는데, 이를 방지하기 위해 이미지 바깥에 0을 추가하는 방식이다.(왜냐하면, 5x5 이미지에 3x3 필터를 컨볼루션하면 3x3 결과값이 나온다. 이 결과 값 가장자리에 0을 추가하여 크기가 줄어드는 것을 방지하는 것이다.)
CNN
컨볼루션을 사용한 신경망을 CNN이라고 한다.
주요 구성 요소 3가지는 다음과 같다.
주요 구성요소
Convolution Layer: 입력 데이터에 필터를 적용하여 데이터의 패턴과 특징을 감지한다.
- 즉, 이미지에서 중요한 특징을 찾아 추출하는 레이어다.
Pooling Layer: 입력 데이터의 공간적 차원을 줄여 가장 중요한 기능을 요약하고, 선택해 필수 정보를 보존한다.
- 즉, 중요한 부분만 남기고 압축하는 영역이다.
Fully-Connected Layer: FCN을 통해 최종 출력을 생성한다.
- 즉, 최종 판단을 내리는 부분이다.
FCN이란?
- 완전 연결층을 의미하며, 앞 층의 모든 뉴런이 다음층의 모든 뉴런과 연결된 신경망을 의미한다.
CNN이 잘 수행하는 작업들 5가지
- 이미지 감지: 사진 전체가 무엇인지 맞춘다.
- 객체 감지: 사진 속에 무엇이 있고, 어디에 있는지 찾는다.
- 인스턴스 세분화: 물체 하나하나를 구분한다.
- 시맨틱 세분화: 같은 종류의 물체를 하나의 그룹으로 본다.
- 팬옵틱 세분화: 시맨틱 세분화 + 인스턴스 세분화 둘을 합친 방식
다층 구조 신경망 (ANN)
인간의 뇌 구조를 모방한 모델이다.
최신 딥러닝 알고리즘의 기본 구성 요소이다. 3개의 층으로 구성된다.
- 입력 레이어: 영상 픽셀 등의 원시 입력 데이터를 수신한다.
- 은닉 레이어: 가장 중요한 층으로, 신경망이 특징을 학습하는 층이다. 숨겨진이라는 뜻은 사람이 직접 내부 값을 볼 수 없음을 의미한다. 히든 레이어가 많을 수록 네트워크가 심층적이라고 말할 수 있다. 그래서 Deep 러닝이란 이름이 붙었다.
- 출력 레이어: 최종 예측 혹은 출력을 생성한다.
활성화 함수
활성화 함수란 신경망에 비선형성을 부여하는 함수이다. 이를 통해 데이터의 복잡한 패턴을 학습한다. 활성화 함수가 없으면 정교한 문제를 해결하기 힘들다.
하이퍼 파라미터
학습 전에 사람이 직접 설정하는 값이다. 즉 데이터로부터 학습되지 않고, 훈련전에 사용자가 수동으로 설정하는 구성 설정, 최적화를 하기 위한 중요한 값이다.