12-1. 딥러닝 이해하기
딥 러닝(Deep Learning)
2000년대부터 사용되고 있는 심층 신경망(deep neural network)의 또 다른 이름
wiki에서는 인공 신경망을 기반한 머신 러닝 기법의 다양한 종류 중 하나라고 정의하고 있다. (링크)
딥 러닝은 다양한 분야에서 활용되고 있다.

신경망의 기초
1. 퍼셉트론 (Perceptron): 다수의 입력으로부터 가중합을 계산하고 이를 이용하여 하나의 출력을 만들어내는 구조

2. 활성화 함수(Activation Function): 생물학적 뉴련에서 입력 신호가 일정 크기 이상일 때만 신호를 전달하는 메커니즘을 모방하여 비선형 함수를 활용

3. 신경망의 종류
- (단층) 퍼셉트론: 은닉층(Hidden Layer)이 없음
- 다층 퍼셉트론 (Multi-Layer Perceptron, MLP): 은닉층이 한 개 이상
- 심층 신경망 (Deep Neural Network, DNN): 은닉층이 두 개 이상

신경망의 학습
학습의 기준이 되는 비용(cost) 또는 손실(loss) 함수를 정의한 후, 비용을 최소화하는 방향으로 학습을 진행햐여 가장 좋은 가중치(weight)를 결정하는 방법으로 보통 두 가지 알고리즘을 사용
1. 경사 하강법(gradient descent): 그래디언트 반대 방향으로 이동하면서 최솟값 위치를 찾는 방법
2. 오류 역전파(error backpropagation): 미분의 체인 룰(Chain-rule)을 이용하여 전체 가중치를 업데이트하는 방법
야기되는 문제점은 크게 세 분류로 세분화된 해결 방안은 다음과 같다
1. 학습이 제대로 이루어지지 않음
- Vanishing Gradient => ReLU(Rectified Linear Units)
- Overfitting => Regularization (Dropout, Batch Normalization)
- Weight Initialization => Random initialization, Xavier method, etc
2. 학습이 너무 느림
- 하드웨어 성능이 낮음 => CPU, GPU의 발전
- Gradient Decent => SGD, Adam method
3. 데이터 부족
- 카메라 기기 보급, 인터넷의 발전, 데이터 공유(ex. ImageNet, COCO, etc)
12-2. CNN 이해하기
컨볼루션 신경망(Convolutional Neural Network, CNN)
영상 인식 등을 위한 딥러닝에 특화된 신경망 구조
일반적 구조: 컨볼루션(Convolution) + 폴링(Pooling) + 완전 연결 레이어(Fully Connected Layers, FC)

컨볼루션 레이어(Convolution Layer)
2차원 영상에서 유효한 특징(feature)을 찾아내는 역할로 유용한 필터 마스크가 학습에 의해 결정된다.
보통 ReLU 활성화 함수를 함께 사용한다.


폴링 레이어(Pooling Layer)
학습이 필요 없는 단계로 유용한 정보는 유지하면서 입력 크기를 줄임으로써 과적합(Overfitting)을 예방하고 계산량을 감소한다.
최대 풀링(max pooling) 또는 평균 풀링(average pooling)을 사용한다.

완전 연결 레이어(Fully Connected Layer)
3차원 구조의 activation map(HxWxC)의 모든 값을 일렬로 이어붙인 후 적합한 신경망 레이어를 통해 결과 도출

CNN 예시
1. LeNet-5 (LeCun et al, 1998): CNN 원조로, 28x28 필기체 숫자 영상을 32x32로 확장하여 만든 입력 데이터를 사용하여 필기체 숫자를 인식. 7개의 레이어로 구성되어 있다.

2. AlexNet (Krizhevsky et al., 2012): 2012년 1000개의 카테고리, 120만개의 훈련 영상, 15만개의 테스트 영상을 제공하는 ImageNet Large Scale Visual Recognition Challenge(ILSVRC)에서 영상 인식 분야 1위를 차지했던 신경망으로 15.4%의 Top-5 Error를 기록하였다.

3. VGG16 (Simonyan and Zisserman, 2014): 2014년 ILSVRC에서 영상 인식 분야 2위로 7.3%의 Top-5 error를 기록하였다. 컨볼루션 레이어에서 3x3 필터만 사용했으며 총 16개의 레이어로 구성되어 있다.

4. GoogLeNet(Szegedy et al., 2014): 2014년 ILSVRC 영상 인식 분야 1위로 6.7% Top-5 Error를 기록했다. 총 22개의 레이어로 구성되어 있으며 Inception 모듈을 사용한 것이 특징이다.

인증 타임
딥러닝 초기 시간이라 대부분 이론에 대하여 배웠다. 배웠던 내용들이라 복습하는 느낌이 들었는데 신경망 학습 알고리즘에 대해서 더 깊숙하게 들어가면 수학적 요소가 많아져서 그런지 생략된게 좀 아쉬웠다. 컨볼루션과 폴링 레이어에 대한 설명도 한 번에 이해하기는 어려운 개념이라 개인적으로는 부족하게 느껴졌다. 대표적인 CNN 종류들은 2년전에도 배웠던 것들이긴 한데 1년 전에 만들어진 강의 치고 내용 업데이트가 없는 걸 보니 더 뛰어난 신경망이 나오지 않은건가 싶다.


#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #OpenCV를 활용한 컴퓨터비전과 딥러닝 올인원 패키지 Online
패스트캠퍼스(FastCampus) 강의 둘러보러 가기
↓ ↓ ↓
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'남돈내배 > 2022_FastCampus_환급이벤트' 카테고리의 다른 글
| 패스트캠퍼스 챌린지 48일차 - Ch12. 딥러닝 이해와 영상 인식 (0) | 2022.03.12 |
|---|---|
| 패스트캠퍼스 챌린지 47일차 - Ch12. 딥러닝 이해와 영상 인식 (0) | 2022.03.11 |
| 패스트캠퍼스 챌린지 45일차 - Ch11. 머신 러닝 (0) | 2022.03.09 |
| 패스트캠퍼스 챌린지 44일차 - Ch11. 머신 러닝 (0) | 2022.03.08 |
| 패스트캠퍼스 챌린지 43일차 - Ch11. 머신 러닝 (0) | 2022.03.07 |