[AI] 딥러닝 추론(Inference)이란?

아현·2024년 9월 9일
1

AI

목록 보기
2/7

출처

딥러닝(Deep Learning)


  • 딥러닝은 크게 두가지 단계로 나눌 수 있다.
  1. 학습(Training)

    • 학습과정의 특징은 축적된 많은 데이터를 바탕으로 각 신경망들의 Weight를 업데이트 해가며 딥러닝 모델을 만들어 가는 과정이다.
  2. 추론(Inference)

    • 학습을 통해 만들어진 모델을 실제로 새로운 입력 데이터에 적용하여 결과를 내놓는 단계이다.



1) 학습(Training)과 추론(Inference) 비교


  • 학습을 위해서는 많은 데이터가 필요하다.

    • 그 데이터 들은 우선 순방향 전파를 통해 각 신경망을 거쳐가고 Loss function을 통해 에러율이 얼마나 되는지 판단하고, 그 에러율을 줄이기 위해 역방향 전파로 다시 신경망을 반대로 지나가면서 각 신경망의 Weight들을 바꾸는 것이다.
  • 하지만 모델을 만들어 가기 위한 학습과는 달리 추론의 목적은 현재 데이터에 대해서 해당 모델이 원하는 작업을 수행해 주는 것이다.

    • 이미지 분류 모델의 예를 들면, 사람과 고양이를 분류하는 학습된 모델이 있다고 했을 때 단순히 내가 고양이 사진을 인풋 데이터로 넣으면 고양이라고 분류 해주면 되는 것이다.

    • 따라서 추론 과정에서는 순방향 전파만이 일어난다.

  • 학습 과정에서는 모델이 데이터를 넣을 때 마다 Weight가 업데이트 되며 조금 씩 바뀌어 간다면 추론 과정에서는 인풋 데이터를 어느 정도 넣는 지 상관 없이 모델의 Weight는 고정적이다.

    • 한마디로 해당 모델이 고양이 분류를 5%의 오차율로 수행했다면 같은 데이터에 대해서 다음번에도 5%의 오차율로 수행할 것이라는 것이다.
  • 실제 학습과 추론 작업을 수행할 때 어떤 차이점이 있을까?

    • 학습은 추론에 비해 많은 데이터를 바탕으로 훨씬 긴 시간에 걸쳐 진행되며 여유로운 데드라인을 가지고 진행될 것이다.

    • 반면, 추론작업은 실제로 사용자가 해당 모델에 원하는 사항을 요구하고 그것을 실시간으로 수행하는 서비스에 활용된다.

      • 따라서 사용자에 훨씬 직면에 있는 작업이며 작업이 실시간으로 대응 되어야 하고 사용자가 원하는 시간과 요청 개수에 맞추어 대응해야 한다.

      • 실시간으로 대응해야 한다는 것은 요청이 어떤 경우에는 적게 들어오고 어떤 경우에는 폭발적으로 늘어날 수 있다는 것을 의미한다.



예시) NBA 농구 선수인 스테판 커리를 예로 들며 학습과 추론 비교


스테판 커리는 3점슛을 잘쏘는 선수로 유명하다.

  • 그는 농구 시합이 없을 때에도 수만번의 3점슛을 다양한 각도, 위치(많은 데이터셋)에서 던질 것(순방향 전파)이다.

  • 던질 때마다 들어가는 슛과 들어가지 않는 슛이 있을 것이고 들어가지 않는 슛을 보완하기 위해 슛 쏘는 자세를 교정하며(역방향 전파) 열심히 슛을 더 쏠 것이다.

그렇게 연습을 한 스테판 커리는 팀의 승리를 책임지기 위해 다소 위험한 상황에 놓였다.

팀이 101:103 2점차로 지고 있는 상황에 경기 시간은 4초 밖에 남지 않은 것이다.

그 상황에서 타임 아웃을 부른 감독은 스테판 커리에게 이렇게 얘기한다 "4초 안에 3점슛을 넣어줘".

  • 감독의 주문(사용자의 요구 사항)을 들은 스테판 커리는 어느 위치, 각도에서건 감독의 요구에 맞추기 위해 그동안 연습해온 슛을 바탕으로 3점슛을 시도하고 성공하거나 실패할 것이다(추론 결과).

    • 이것이 딥러닝의 추론 과정이라고 볼 수 있다.

사용자의 요구에 맞추어 원하는 작업을 수행하는 것, 그것이 딥러닝의 추론 작업의 특징이다.



profile
For the sake of someone who studies computer science

0개의 댓글