학습(Training)
추론(Inference)
학습을 위해서는 많은 데이터가 필요하다.
하지만 모델을 만들어 가기 위한 학습과는 달리 추론의 목적은 현재 데이터에 대해서 해당 모델이 원하는 작업을 수행해 주는 것이다.
이미지 분류 모델의 예를 들면, 사람과 고양이를 분류하는 학습된 모델이 있다고 했을 때 단순히 내가 고양이 사진을 인풋 데이터로 넣으면 고양이라고 분류 해주면 되는 것이다.
따라서 추론 과정에서는 순방향 전파만이 일어난다.
학습 과정에서는 모델이 데이터를 넣을 때 마다 Weight가 업데이트 되며 조금 씩 바뀌어 간다면 추론 과정에서는 인풋 데이터를 어느 정도 넣는 지 상관 없이 모델의 Weight는 고정적이다.
실제 학습과 추론 작업을 수행할 때 어떤 차이점이 있을까?
학습은 추론에 비해 많은 데이터를 바탕으로 훨씬 긴 시간에 걸쳐 진행되며 여유로운 데드라인을 가지고 진행될 것이다.
반면, 추론작업은 실제로 사용자가 해당 모델에 원하는 사항을 요구하고 그것을 실시간으로 수행하는 서비스에 활용된다.
따라서 사용자에 훨씬 직면에 있는 작업이며 작업이 실시간으로 대응 되어야 하고 사용자가 원하는 시간과 요청 개수에 맞추어 대응해야 한다.
실시간으로 대응해야 한다는 것은 요청이 어떤 경우에는 적게 들어오고 어떤 경우에는 폭발적으로 늘어날 수 있다는 것을 의미한다.
스테판 커리는 3점슛을 잘쏘는 선수로 유명하다.
그는 농구 시합이 없을 때에도 수만번의 3점슛을 다양한 각도, 위치(많은 데이터셋)에서 던질 것(순방향 전파)이다.
던질 때마다 들어가는 슛과 들어가지 않는 슛이 있을 것이고 들어가지 않는 슛을 보완하기 위해 슛 쏘는 자세를 교정하며(역방향 전파) 열심히 슛을 더 쏠 것이다.
그렇게 연습을 한 스테판 커리는 팀의 승리를 책임지기 위해 다소 위험한 상황에 놓였다.
팀이 101:103 2점차로 지고 있는 상황에 경기 시간은 4초 밖에 남지 않은 것이다.
그 상황에서 타임 아웃을 부른 감독은 스테판 커리에게 이렇게 얘기한다 "4초 안에 3점슛을 넣어줘".
감독의 주문(사용자의 요구 사항)을 들은 스테판 커리는 어느 위치, 각도에서건 감독의 요구에 맞추기 위해 그동안 연습해온 슛을 바탕으로 3점슛을 시도하고 성공하거나 실패할 것이다(추론 결과).
사용자의 요구에 맞추어 원하는 작업을 수행하는 것, 그것이 딥러닝의 추론 작업의 특징이다.