[머신러닝 엔지니어 기본기] 1. 머신러닝 엔지니어의 역할과 트랜드

DaeHoon·2024년 3월 19일
1

01. 머신러닝 엔지니어란 무엇인가

머신러닝 엔지니어링에 대해서

  • 머신러닝과 관련된 문제를 엔지니어링 관점으로 푸는 것
  • 엔지니어링이란 비즈니스의 처한 문제를 컴퓨터 공학적 관점으로 푸는 것

머신러닝 엔지니어는 AI 서비스를 준비/출시하는 과정에서의 문제를 해결하는 것

AI 서비스를 준비하는 과정에서 겪는 문제들

ML 관련 엔지니어 직무 이해

머신러닝 기반 서비스와 기존 서비스의 차이

  • 전통적인 백엔드 서비스
    • 비즈니스 로직, 아키텍처 설계 집중
    • 예상되는 입력에 대한 로직(패턴) 작성이 중요
  • 머신러닝 기반 서비스
    • 모델 전처리, 휴리스틱 로직 집중
    • 입출력을 모아서 패턴을 만들어내는(학습) 것이 중요
    • 콜드 스타트 문제 존재(AI 서비스 초기과정에서의 학습 데이터가 부족)

전통 서비스의 개발 과정

  • 백엔드 개발은 사용자 요청(1)에 따라 동작할 수 있는 코드. 즉, 비즈니스 로직을 서비스(2)에 구현하는 과정으로 이루어진다.
  • 서비스(2) 개발이 완료 되었다면 사용자(1) 요청에 따라 결과(3)를 연산 및 반환한다.

머신러닝 기반 서비스의 개발 과정

  • 머신러닝 서비스 초기 과정에서는 사용자 요청과 결과를 바탕으로 서비스(모델)을 학습하게 됨.
  • 학습된 머신러닝 모델은 사용자 요청과 결과를 바탕으로 서비스(모델)을 학습하게 됨.

머신러닝 도메인

MLOps

  • MLOps 측면에서 머신러닝 코드는 일부분에 불과하다. 따라서 각 분야의 폭넓은 이해가 중요하다.

MLOps를 이루고 있는 분야

02. 머신러닝과 딥러닝의 차이

인공지능, 머신러닝 그리고 딥러닝

머신러닝 퍼셉트론

  • 입력이 있고 가중치를 통해 계산을 한 다음에 활성함수를 통해 최종적으로 출력이 일어난다.

머신러닝 예시

  • 위의 예시를 백엔드 서비스로만 구현하는 것은 어렵다. 텍스트의 앞뒤 맥락을 파악하지 않고 해당 단어로만 판별하기 때문에 오동작이 있을 수 있다. 맥락을 구현할수도 없는 것이 자연어는 맥락이 너무 많아 일일이 구현할 수 없다.
  • 입력과 출력을 머신러닝 모델에 제공해주면 모델은 입력이 출력이 되게 가중치와 편차를 계속 바꿔준다.

머신러닝과 딥러닝의 정의

  • 머신러닝은 인공지능의 하위 개념으로, 기계가 패턴을 학습하는 개념을 의미한다.
    • 직관적이고 단순한 구조. 다만 신경망 구성이 심층적이지는 않아서, 각 태스크에 따라서 모델 설계를 직접 해야 한다.
  • 반면, 딥러닝은 머신러닝의 하위 개념으로 인공 신경망 계층으로 데이터에 맞게 스스로 학습
    • 머신러닝에 더 나아가서 신경망을 계층적으로 쌓아 스스로 다양한 패턴에 대응하도록 구성됨

머신러닝 신경망 구조

  • 입력층과 출력층을 가지게 되고 그 사이에 있는 층을 은닉층이라고 한다.
  • 상황에 따라 각 층에서의 노드 개수를 설정할 수 있다.

딥러닝 예시

  • 강아지/고양이 분류 모델
    • 사람이 판단할 수는 있지만, 기계가 사진의 픽셀만 가지고 강아지/고양이를 분류하기는 어려웠다. 코드 상 강아지/고양이를 표현할 수 있는 방법이 모호하기 때문이다.
    • 딥러닝은 심층적으로 신경망이 구성되어 있어 설령 이미지라 할지라도 강아지나 고양이로 평가가 가능하다. 다만 아키텍처가 너무 심층적이라 강아지나 고양이로 인식한 이유를 알기 어렵다.

딥러닝 심층 신경망(Deep Neural Network) 구조

Reference: 개발자를 위한 MLOps : 추천 시스템 구축부터 최적화까지(FastCampus)

profile
평범한 백엔드 개발자

0개의 댓글