AI(Aritificial Intelligence): 인간의 지능을 인공적으로 구현한 기능을 갖고 있는 컴퓨터
ML(Machine Learning): AI의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
DL(Deep Learning): ML의 한 분야로, 다량의 데이터를 스스로 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야
Deep Learning은 인공신경망(ANN)에 기초하여 기계학습 알고리즘을 갖음
인공신경망의 종류와 개념
ANN(Artificial Neural Network, 인공 신경망): 두뇌의 신경망을 흉내 낸 인공지능 기술
사람 | Machine |
Neuron | Node |
Calculation | Parameter |
Neuron Layer | Layer |
DNN 구조에서 은닉계층(Hidden Layer)이 1개인 경우로 입력 계층, 은닉 계층, 출력 계층으로 구성
DNN(Deep Neural Network, 심층 신경망): ANN 구조에서 은닉계층이 여러층으로 구성된 구조
CNN(Convolution Neural Network, 합성곱 신경망): 영상처리에 많이 활용되는 합성곱을 사용하는 신경망 구조
기존처럼 데이터에서 지식을 추출해 학습하는 것이 아니라 데이터의 특징을 추출하여 특징들의 패턴을 파악하는 구조
특징을 추출하는 과정은 Convolution과정과 Pooling과정으로 나뉨
- Convolution
: 데이터를 추출하는 과정으로 도출된 특징을 추상화하여 특정층으로 압축하며, 이렇게 도출된 층이 Convolution Layer
⭐ 예시
(3, 3) 크기의 kernel로 (5, 5) 이미지 행렬에 합성곱 연산을 수행하는 과정
Colvolution 과정이 끝난 결과를 특성맵(Feature Map, 이미지의 '출력')이라고 함
특성맵은 입력보다 크기가 작아지기 때문에 layer를 늘릴 경우, 최종 특성맵의 크기가 매우 작아지는 문제가 발생
-> 합성곱 연산 이후에도 특성 맵의 크기가 입력의 크기와 동일하게 유지되도록 하고 싶다면 패딩(padding)을 사용
패딩(Padding): (합성곱 연산을 하기 전에) 입력의 가장자리에 지정된 개수의 폭만큼 행과 열을 추가해주는 것
- Pooling
: 특성 맵을 다운 샘플링하여 특성 맵의 크기를 줄이는연산 과정
: max pooling: Convolution 과정에서 만들어진 feature map의 가장 큰 값만 가져와 사이즈를 줄이는 것
: average pooling: Convolution 과정에서 만들어진 feature map의 평균값을 가져와 사이즈를 줄이는 것
⭐ 예시
(Max pooling 예시)
풀링 연산은 커널(kernel)과 스트라이드(stride*) 개념이 존재한다는 점에서 합성곱 연산과 유사하지만, 합성곱 연산과 달리 학습해야 할 가중치가 없으며 연산 후에 채널 수가 변하지 않음
* stride: kernel의 이동 범위, 상기 이미지 예제에서는 2로 kernel간 겹치는 영역이 없도록 하였음
RNN(Recurrent Neural Network, 순환 신경망): 반복적이고 순차적인 데이터를 학습시키는데 우수한 인공 신경망 구조로 자연어 처리나 동영상 분류, 음악 장르 분류 둥에 활용할 수 있음
: 계층의 출력이 순환하는 신경망으로 과거 자신의 가중치를 기억하고 학습에 반영함으로서 신경망의 성능을 높임
소스 코드
참고 자료
📑 주요 인공신경망(ANN, DNN, CNN, RNN, AE, GAN, UNET) 개념
📑 tensorflow.keras.sequential api
📑 07-01 합성곱과 풀링(Convolution and Pooling)
📹 딥러닝 이론
📹 [딥러닝] RNN 기초 (순환신경망 - Vanilla RNN)
'Naver Clould with BitCamp > Aartificial Intelligence' 카테고리의 다른 글
Scalar, Vector, Matirx, Tensor (0) | 2023.01.20 |
---|---|
MultiLayer Perceptron (0) | 2023.01.20 |
Hyper-parameter Tuning (0) | 2023.01.20 |
ANN Model Construction (0) | 2023.01.15 |
Practice for AI Learning Model Construction (0) | 2023.01.14 |