[인공지능] CNN (1)

2023. 3. 31. 11:40_Study/AI

728x90

#0331

 

최적화 방법

Adam : 가장 적합

 

컨볼루션 신경망

딥러닝에서 가장 성공한 모델

 

컴퓨터 비전은 인간의 시각 기능 모방: 컴퓨터도 인간처럼

딥러닝 이후 컴퓨터 비전 연구 패러다임 변화: 수작업 규칙 기반 -> 대용량 영상 데이터로 기계 학습

컴퓨터 비전(문제)과 딥러닝(해결 도구)은 상호작용을 통해 공진화

 

 

가장 위에 있는 Fully 한 노드에 mapping (모든 픽셀에 가중치)

CNN은 다름

 

사람의 시간과 비슷하게 구성 : 보고싶은 부분만 보도록

수용장(receptive field) : 작은 영역만 하나의 노드에 넣어준다.

 

ILSVRC2012 우승한 AlexNet

- 자연 영상을 1000개 class 부류로 분류하는 문제

- 5순위 오류울 15.3%로 우승 (이전 해 대회는 고전적인 컴퓨터비전 기술로 25.8% 우승)

- 이후 대부분 컴퓨터 비전 연구자가 고전적 방법에서 딥러닝으로 전환

 

 

컨볼루션 신경망이 순환 신경망 또는 강화 학습과 결합

- 자연 영상 내용을 파악하여 10단어 정도로 설명하는 시스템

- 비디오 게임을 하는 인공지능

 

컨볼루션 연산

receptive field(파란부분)을 3으로 정함

커널과 곱하고 모두 더함 = - 2+0+9 = 7

 

한 칸 테두리가 생기는 이유 : 계산할 값이 없다. 따라서 컨볼루션 연산시 가장자리 값은 한칸씩 지워진다.

 

 

 

2차원 컨볼루션

sigma(width-1) sigma(h-1) x * y 

 

 

 

 

퍼셉트론 : 전체적인 배경에 영향을 받음

CNN: 보고싶은 부분만 골라서 가중치를 받기 때문에 더 정확함

 

 

특징 맵이 작아지는 문제 해결을 위해서 덧대기 (0값으로 빈칸을 채우는 padding)을 진행함.

따라서 해상도를 유지할 수 있음.

 

 

 

영상 크기를 축소할 수 있는 보폭(보폭을 k로 설정하면 특징 맵은 1/k로 줄어듬)

바이어스 추가

 

stride : 보폭 : 0번째, 2번째, 값이 중복해서 겹치기 때문에 두 칸에 한 번 계산을 할 수 있음. 따라서 특징맵이 줄어들고 값이 사라짐.

 

 

 

다중 커널을 사용

첫번째 커널은 첫번째 layer에 곱해서 나온다. k -> k' 만큼, 커널 개수 만큼 특징맵이 나온다.

더하기 연산을 하면 하나의 특징맵만 나오기 때문에 줄어든다.

 

 

 

풀링층 pooling layer

 

모든 detail을 가지고 있을 필요가 없음

대부분의 값이 검정, 흰색인데

resolution 값을 계속 유지해야할까

해상도를 줄일 수 있음

 

 

 

퍼셉트론은 fully connection 이다.

부분연결성 : 컨볼루션층은 중요부분만 찾아서 본다.

 

 

 

마지막 dense layer을 추가해주면 10개의 output만 출력가능

여기서 학습해야할 파라미터는 feature map이 아닌 kernel

커널만 학습하면 된다. 특징맵은 나오는 값이라 계속 바뀐다.

 

 

LeNet-5 사례 [LeCun 1998]

- 자기가 만든 Network

- layer가 5개라서 5

 

padding을 쓰지 않아 계속 해상도가 줄어들고 있다.

pulling layer을 사용하여 반으로 줄어들었다.

1차원으로 변형해서 perceptron 후 output 10개

숫자에 집중하지 말고 예전에는 이런 방법을 사용했다 까지만 알기.

 

핵심: (컨벌션 레이어 -> 풀링) -> 풀리 커넥트 레이어

 

파라미터 개수가 이해가 안된다면 

 

 

컨볼루션 신경망의 학습

 

 

손실함수

 

옵티마이저

 

 

딥러닝 (end to end) 통째 학습

: 개발자의 개입없이 알아서 학습함.

사람이 수작업으로 미리 데이터를 만들어 줘서 특징을 추출해줬어야 했었다. (hand-craft)

좋은 feature을 넘겨줘야 분류 정확도가 올라가기 때문에 사람이 수작업으로 했었다.

그와 다르게 딥러닝은 알아서 feature을 만든다.

 

 

 

 

 

 

컨볼루션 신경망의 성능이 월등한 이유

- 통째 학습

- 특징 학습

- 신경망 깊이를 깊게하여 풍부한 특징을 추출 : 수십~수백 층 사용

- 데이터의 원래 구조를 유지한 채 특징 추출