본문 바로가기
투코독갓 일간 인증/Deep-Learning

딥러닝이란 무엇인가? 이론적으로다가 궤념적으로다가

by 어다프 2024. 2. 6.

다크 프로그래머 :: 딥러닝과 Loss 함수의 이해 (tistory.com)

 

딥러닝과 Loss 함수의 이해

딥러닝.. 내겐 여전히 블랙박스 같은 존재이다. 하지만 딥러닝도 크게 보면 기계학습 방법의 하나로서 딥네트워크를 이용한 모델링과 파라미터 추정 방법으로 볼 수 있다. 그래서 전통적으로 기

darkpgmr.tistory.com

 

이 분에게도 블랙박스면 나한테는 블랙홀박스다.

 

 

딥러닝도 크게 보면 기계학습 방법의 하나로서 딥네트워크를 이용한 모델링과 파라미터 추정 방법

전통적으로 기계학습을 연구했던 사람들은 아마도 보다 넓은 시야를 가지고 딥러닝을 이해할 수 있을 것

Loss 함수, 파라미터 공간, 최적화 기법 등이 어떻게 딥러닝과 연결되는가

 

딥러닝과 파라미터 추정

딥러닝도 크게 보면 x에서 y로의 함수관계 fw(·)를 찾는 문제

x → fw(·) → y

함수의 구조와 복잡도를 정하는 것이 모델링

어떤 네트워크 아키텍쳐를 사용할 것인지, 몇 개의 층을 사용할 것인지, activation 함수로는 무엇을 사용할 것인지 등을 정하는 것이 모델링에 해당

예를 들어 아키텍쳐로는 VGG, ResNet 등을 사용할 수 있고 activation 함수로는 ReLU나 sigmoid 등을 사용할 수 있음

 

모델이 정해지면 모델의 파라미터가 정해지는데 딥네트워크에서는 입력층과 출력층 사이에 존재하는 모든 weight들이 모델 파라미터

모델 파라미터는 모델에 종속되어 정해지는 것으로서 예를 들어 돌맹이의 궤적을 2차 다항식 f(t) = at2 + bt + c로 근사하기로 결정했다면 모델은 2차 다항식이고 모델 파라미터는 a, b, c

 

모델과 모델 파라미터가 정해지면 이제 남은 일은 모델 파라미터의 값을 정하는 것이다. 주어진 입력(x)에 대해 원하는 출력(y)이 나오도록 모델 파라미터 값을 조정하는 것이 목적이다. 수집된 관측값들이 (xi; yi), i = 1, 2, ..., n라면 각각의 i에 대해 최대한 yi = fw(xi)가 되도록 파라미터 값을 찾게 되는데, 이 과정이 딥러닝의 학습과정 또는 파라미터 추정 과정에 해당

 

그런데, 파라미터 추정을 위해서는 먼저 파라미터의 좋고 나쁨을 판단하는 기준이 있어야 한다. 그것이 바로 loss 함수를 정하는 일

모델과 모델 파라미터가 정해지면 일종의 파라미터 공간(parameter space)이 생성

이 공간의 차원은 모델 파라미터의 개수와 동일하며 아직은 차원만 정해진 빈 공간 -> 말이 점점 어려워진다 ㅋㅋ

그런데, loss 함수가 정해지면 이 공간에 산맥이 생기고 골짜기가 생긴다. 즉, Loss 함수에 따라서 각 파라미터 값에 대한 score(or 손실)가 매겨지기 때문에 이 score에 따라서 파라미터 공간에 높고 낮음이 생성

 

딥러닝 학습에 있어서 마지막 선택은 주어진 산맥과 골짜기의 파라미터 공간에서 어떻게 최적의 답을 찾아갈 것인가

파라미터 공간이 정해지면 이미 최적의 답도 같이 정해짐

하지만 무한한 파라미터 공간을 미리 다 evaluation 해볼 수는 없기 때문에 현실적으로는 시작 위치에서 조금씩 해를 찾아갈 수 밖에 없음

즉, gradient descent 방법, Gauss-Newton 방법, LM 방법 등과 같은 최적화 기법(optimizer)이 필요

 

※ 일반적으로는 Newton, LM 방법 등의 성능이 더 좋다. 하지만 딥러닝에서는 현실적인 이유(파라미터 공간이 너무 고차원)로 gradient descent, 특히 stochatic gradient descent 류의 방식이 주로 사용됨

 

이상의 내용을 정리

  • 학습데이터: problem의 domain을 정의
  • 네트워크 구조: 함수의 복잡도와 power를 정의, 모델 파라미터를 정의
  • loss 함수: 파라미터에 대한 evaluation(cost)을 정의
  • optimizer: 파라미터 공간에서의 탐색 방법을 정의

 

이중 어떤 요소가 더 중요할까? optimizer는 해 자체를 바꾸지는 못하지만 optimizer에 따라 해를 잘 찾을 수도 있고 못 찾을 수도 있음

네트워크의 구조와 복잡도를 정하는 것(이게 뭔말이지?)은 비유컨데 닭 잡는데 소 잡는 칼을 쓸 것인지 아니면 소 잡는데 닭 잡는 칼을 쓸 것인지를 정하는 문제로 볼 수 있음 -> ReLU 이거 그래프 모양 본적 있는디;

물론 적당한 규격의 칼이 좋을 것 - 선택된 칼

학습데이터와 loss 함수는 선택된 칼의 규격 내에서 최적의 칼이 되기 위한 기준을 잡아줌

 

Loss 함수의 역할과 딥러닝 Loss 함수 파트는 다음 시간에...