Techbrad

딥러닝(DeepLearning)이란? 본문

AI & BigData/Deeplearning

딥러닝(DeepLearning)이란?

brad.min 2024. 1. 7. 17:16
반응형

딥러닝 주제 중에 자연어처리 등 코딩으로 학습을 위주로 하면서 경사하강법, 로스 등 적용되는 원리에 대해 많이 생각해본 적이 없었다. 이번 대학원 강의 수업은 딥러닝의 원리를 파악하는데 많은 도움이 되었다.


딥러닝 목표는 데이터를 입력했을때 출력값에 대해 예상 값과 실제 값과의 차이를 최소화하는 학습 방법? 이다. 굉장히 단순해 보인다 ^^;

 

고양이 사진을 데이터로 입력하고 예상 값은 고양이라는 레이블인데 개라는 레이블이 출력이 되었을 때의 차이를 최소화 하는 것이다.

대충 감이 오는데 사진의 차이를 구한다? 이거를 어떻게 학습하지? 어떤 방식인지 많은 의문이 생겼다!

 

"모든 입력 값은 숫자로 변환되어 차이를 구하게 된다."

 

고양이 사진이나 텍스트 등 입력값은 컴퓨터가 인식할 수 있도록 숫자로 입력된다. 그리고 숫자는 정의된 함수에 입력된다. 우리들의 눈에 숫자가 아닌 것을 모두 숫자로 변환하는 작업이 필요한 것이다. 숫자로 변환 후 아래 식에 적용하여 차이를 계산할 수 있다.


예를 들어 아래 식의 x에 고양이 사진을 숫자로 변환하여 입력하면 y 의 예측값과 실제값이 숫자로 나오게 되며 이러한 차이를 ‘로스(손실)’이라고 한다.

 

$$ y = f(x) $$

 

 

"딥러닝의 목표는 최적의 기울기를 찾는 것"

 

아래의 그림에서 빨간 점은 실제값이고 곡선이 예측값이다. 빨간 점과 곡선 과의 거리는 로스이며 딥러닝의 목표는 아래 그림의 선이 빨간점을 정확하게 지나가도록 그래프를 그리는 것이다. 하지만 이는 이론상 불가능하고 그렇게 된다면 robust하지 않다. 따라서 빨간점에 가장 가까운 선을 만드는 것’이 딥러닝의 목표가 된다.


그렇다면 빨간점에 가까운 선을 만들기 위해서는 그래프의 기울기를 변경해야한다. 결과적으로 딥러닝은 반복적인 학습을 통해 그래프의 기울기를 계속 조정하면서 최적의 기울기를 찾는 것이다. 마치 출근길에 최대한 시간을 적게 걸리게 하기 위해 반복적으로 버스, 지하철을 다르게 타보며 최적의 루트를 찾는 과정과 비슷하다고 볼 수 있지 않을까? (기울기는 가중치 w 로 표현)

 

“가장 좋은 그래프는 로스를 모두 더한 값이 가장 작은 것”

 

최적의 기울기는 찾는 방법은 간단하게 생각하면 전체 로스가 적은 그래프를 만들면 된다.

보통 출근 시간을 줄이기 위해 카카오맵에서 전체 걸리는 시간 중에 짧은 것을 선택한다. 버스, 지하철의 소요시간을 각각 계산 하지 않는다. 너무 복잡하고 어렵기 때문이 아닐까? 딥러닝도 마찬가지로 전체의 손실을 더해서 가장 작은 것을 목표로 한다.

아래의 식은 입력 데이터를 식 $f(x) = W_1 X + W_0$ 에 넣어 얻은 예측값과 실제 값 y와의 차이를 sum 하는 것을 의미한다. 이처럼 학습 데이터 전체의 로스를 더한 값이 가장 작은 방향으로 학습이 진행되는 것이다.

 

 

반응형