개발/머신러닝

[머신러닝] 딥러닝의 개념 / 딥러닝 과정 / 신경망 구조 / 순전파, 역전파

섭교수 2023. 2. 7. 13:13
반응형

 

목차

1. 딥러닝의 개념
2. 신경망 구조
3. 인공신경망을 이용한 인공지능 모델 학습 과정
4. 순전파(propagation), 역전파(back propagation)

 

1. 딥러닝의 개념

 

딥러닝이란 인공 신경망을 사용한 학습방법이며 대부분 준비된 데이터셋을 사용해 학습하는 "지도학습"법을 사용한다.

인공 신경망은 아래 그림과 같은 input -> output 구조로 이루어져 있다.

IBM Cloud Education

 

인공 신경망의 장점으로는 활용도가 굉장히 다양하다는 점, 비교적 손쉽게 구성할 수 있다는 점이 있다.

이미지를 보여줬을 때 강아지와 고양이를 구분해주는 모델을 만들거나 기사제목만으로 부정/긍정 의견을 예측하거나 앞으로의 주가 추이를 예측할 수도 있다. 얼굴인식 모델(특정 사람인지도 확인 가능)도 만들 수 있고 자율주행 자동차에 사용되는 기술에도 응용이 가능하다.

케라스 라이브러리를 사용하면 정말 말도 안되게 쉽게 인공신경망 모델을 만들 수 있다. 무려 10줄도 안되는 코드로 인공신경망을 구현할 수 있으니..

사실 몇십년 전부터 이 인공신경망이라는 기술이 연구되어 왔지만 지금에서야 각광받는 것은 학습에 필요한 세 가지 때문이다.

1. 학습에 활용할 다량의 데이터 (Data)

2. 학습시 발생하는 무수히 많은 계산 (Computation)

3. 알고리즘적인 측면 (Algorithm)

정보의 디지털화가 진행됨에 따라 사용할 수 있는 데이터들이 충분히 쌓이고 컴퓨터의 성능이 기하급수적으로 발달한 게 크다. 알고리즘적으로는 다양한 분야에서 연구가 진행되고 그 연구들이 인터넷 상으로 빠르게 공유된 것. 이라고 인공신경망의 급부상을 설명할 수 있다.

조금 수학적인 개념으로 인공신경망 학습을 설명하자면 이렇다.

 

목적함수를 최소화(또는 최대화)하도록 모델을 학습시키는 것

얼굴인식 모델을 예로 들어보자

각 이미지의 픽셀 데이터를 받아와서 특정 얼굴의 "특징"을 나타내는 벡터로 만들고

그 벡터 간의 norm을 계산해서 수치화된 특징의 "차이"로 같은 사람인지 다른 사람인지 학습시키는 것이다.

IBM Developer

 

 

이 과정에서 목적함수(cost function) 또는 손실함수(loss function)을 설정하고 그것이 최소화 되게끔 학습하는 것이 딥러닝이다.

IBM Cloud Education

 

2. 신경망 구조

Neural Network는 크게 세 가지 layer(층)으로 구성된다.

IBM Cloud Education

 

입력층(Input layer), 은닉층(Hidden layer), 출력층(Output layer)으로 이루어져 있는데, 위 그림은 4 layer NN이다.

신경망 전체가 몇 개의 층으로 구성되어 있는지를 논할 때 일반적으로 input layer는 세지 않는다.

input과 output 은 내가 조절할 수 없지만 hidden layer 부분은 몇 개의 인공 뉴런을 사용할 건지 내가 설정할 수 있다.

위 그림에서는 5개의 인공뉴런으로 구성된 세 개의 층을 사용했는데 내 맘대로 64, 128, 등등 은닉층을 조절할 수 있다.

물론 최적의 모델을 만들어내기 위해 필요한 인공 뉴런의 수는 무조건 많다고 좋은 것은 아니다.

3. 인공신경망을 이용한 인공지능 모델 학습 과정

인공 신경망이란 말을 처음 접한 건 2017학년도 6월 평가원 국어 지문..

여기 나온 가중치 방법으로 작동한다는 것은 굉장히 단편적인 이야기고 딥러닝 모델은 다음 네 가지 단계로 학습시킨다.

1. 어떤 문제인지 규명(이진 분류 / 다중 분류 / 선형 회귀 / 예측 등등)

2. 데이터 준비(데이터 전처리)

3. 신경망 구성

4. 파라미터 조정으로 성능 높이기

파라미터에는 은닉층의 수, 은닉층에서 인공 뉴런의 개수, 에포크(학습을 반복하는 횟수) 횟수 등이 있다.

4. 순전파(propagation) / 역전파(back propagation)

순전파라고 번역되는 propagation은 다음과 같이 이전 layer에서 넘어온 값에 가중치(w)와 편향(b)를 적용해 다음 layer로 넘기는 것이고

역전파라고 번역되는 back propagation은 propagation 결과로부터 가중치와 편향을 수정하는 것이다.(목적함수 또는 손실함수가 최소화되는 방향으로)

아래 그림처럼 input -> 가중치 곱해지고 편향 더해진 다음 활성화함수(activation function)를 거쳐 다음 layer로 전달되는 것이 propagation이고

GeeksForGeeks

 

 

back propagation은 결괏값이 실제 값과 얼마나 차이가 있는지로부터 가중치를 수정한다.

순전파와 역전파 모두 학습 단계에서 일어나는 것이며 역전파를 적용하는 방법으로는 경사하강법(gradient descent)이 있다.

https://www.ibm.com/topics/gradient-descent

 

What is Gradient Descent? | IBM

Learn about gradient descent, an optimization algorithm used to train machine learning models by minimizing errors between predicted and actual results.

www.ibm.com

 

반응형