본문 바로가기
Naver Clould with BitCamp/Aartificial Intelligence

Types of Artificial Neural Networks

by HJ0216 2023. 1. 15.

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, 순환 신경망): 반복적이고 순차적인 데이터를 학습시키는데 우수한 인공 신경망 구조로 자연어 처리나 동영상 분류, 음악 장르 분류 둥에 활용할 수 있음

: 계층의 출력이 순환하는 신경망으로 과거 자신의 가중치를 기억하고 학습에 반영함으로서 신경망의 성능을 높임

 

 

 

소스 코드

🔗 HJ0216/TIL

 

참고 자료

📑 주요 인공신경망(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