머신러닝의 정의와 머신러닝 개발자와 데이터 엔지니어의 차이점
안녕하세요 머킹입니다.
머신러닝 개발자가 되고 싶은 분들이나
딥러닝, 인공지능에는 어떤 관계가 있는지
혹은 머신러닝 개발자는 어떤 업무를 하고 데이터 엔지니어와의 차이점은 어떤 것인지
궁금하신 분들을 위해서 따로 정리하는 글을 적고자 합니다.
머신러닝이란
직역하자면 "기계 학습"이라는 뜻을 가진 머신러닝은 대체 무엇일까요?
ML(머신러닝)은 데이터를 기반으로 학습 또는 성능 향상을 지원하는
시스템을 구축하는 데 초점을 맞추는 인공지능(AI)의 하위 집합입니다.
일단 머신러닝을 알려면 인공지능, 즉 AI의 역사에 대해부터 알아야 합니다.
1956년 존 매카시는 처음으로 인공지능(AI)이란 용어를 언급하며
"기계를 인간 행동의 지식에서와 같이 행동하게 만드는 것"이라고 정의를 내렸습니다.
대부분은 인공지능, 머신러닝, 딥러닝을 비슷한 내용으로 간주하나
인공지능(AI) = 컴퓨터가 사람처럼 생각하고 판단하게 만드는 기술
머신러닝(ML) = 인간의 학습능력과 같은 기능을 컴퓨터에 부여하기 위한 기술
딥러닝(DL) = 빅테이터를 기반으로 스스로 학습하여, 판단하는 기술
이렇게 분류된다고 생각하시면 됩니다.
그렇다면 제가 앞으로 배워나갈 머신러닝은 대체 어떻게 학습한다는 걸까요?
일반적으로 머신러닝의 방법은 2가지로 나누어집니다.
1단계 > 사람이 정답을 판단하기 위해서 봤던 트레이닝 데이터의 특징들을 추측
2단계 > 다양한 특징들을 기반으로 판단
딥러닝은 컴퓨터 지능을 한 차원 더 높인 개념으로 머신러닝의 한 방법입니다.
기본 원리는 머신러닝의 많은 방법 중 인간의 뇌세포 구조와 유사한 방법인
뉴럴 네트워크 구조를 이용하는 방법입니다.
이를 위해서 무수히 많은 양의 데이터가 필요하고 옛날에는 적용이 어려웠습니다.
하지만 하드웨어 GPU 출시 이후로 복잡한 계산이 가능해지고
새로운 계산 방법들이 연구되어 빠르게 발전했습니다.
머신러닝의 3가지 학습 방법
머신러닝에서는 방법론을 적용하여 크게 3가지 학습 방법으로 구분하는데요.
1. 지도학습 : 문제와 정답을 모두 알려주고 공부시키는 방법
ex) 아이가 말을 배우는 과정
2. 비지도 학습 : 답을 가르쳐주지 않고 공부시키는 방법
ex) 아이가 크면서 서로 유사한 것들을 군집화 하는 과정 (자동차랑 음식은 다르다)
3. 강화학습 : 보상을 통해 상은 최대화, 벌은 최소화 하는 방향으로 행위를 강화하는 학습
ex) 아이가 스스로 일어나는 방법
3번의 방법의 대표적인 예로는 알파고가 있습니다.
또 머신러닝으로 할 수 있는 일과 할 수 없는 일들에 대해서도 알아볼까요?
머신러닝 모델의 장점
- 인간이 놓칠 수 있는 데이터 패턴을 식별할 수 있다.
- 설정 후 사람의 개입 없이 작업할 수 있다.
- 시간이 지날수록 정확도가 높아진다.
- 복잡한 데이터 환경에서 다양한 형식을 처리할 수 있다.
머신러닝 모델의 단점
- 초기 훈련 비용에 투자되는 시간과 비용이 많이 필요하다.
- 충분한 데이터를 사용할 수 없으면 구현이 어렵다.
- 전문가의 도움이 없다면 결과의 정확도가 떨어진다.
머신러닝 개발자가 하는 일
이제 머신러닝에 대해서 알아봤으니
머신러닝 개발자가 하는 일에 대해서도 알아볼까요?
머신러닝 개발자
알고리즘을 사용하여 인간이 학습하는 방식을 복제하는 방식으로 데이터를 해석합니다.
기계가 학습 정확도를 개선하고 해당 학습을 기반으로 데이터를 사용자에게 제공하는 것을 목표로 합니다.
머신러닝을 담당하는 인공 지능을 연구, 구축 및 설계하고 기존 인공 지능 시스템을 유지 및 개선합니다.
머신러닝 개발자의 역량
머신러닝 개발자가 되기 위해서는 필수적으로 수학적 개념이 필요합니다.
딥러닝 지식 : 용어의 개념을 정확히 이해하고 기초를 다져야 한다.
전산학 지식 : 인공지능 개발자라면 탄탄한 전산학 지식 요구된다.
수학 : 고등학교 수준의 선형대수학, 미분, 확률, 통계에 대한 지식이 있는 게 좋다.
영어 : 유창하진 않아도 익숙해야 함. 대부분의 인공지능 자료들은 영어다.
머신러닝 분야는 최신 트렌드가 워낙 빨리 바뀌어서 석사 이상의 학위가 거의 필수적입니다.
그래서 영어를 읽는 능력이 필요합니다.
머신러닝 개발자와 데이터 엔지니어의 차이
아마 많은 분들이 위의 두 직군을 헷갈려하실 것 같은데요.
데이터를 다루는 분야가 워낙 광범위하기 때문에
많이 겹쳐 보이는 분야이기도 합니다.
데이터 엔지니어는 데이터 파이프라인을 설계, 구축, 유지 보수를 수행합니다.
데이터베이스 성능 최적화 및 데이터 보안 유지 관리하는 역할을 맡고 있습니다.
따라서 데이터 핸들링 지식, ETL 프로세스 및 도구 활용 등 전문적인 지식이 필요합니다.
머신러닝 엔지니어는 머신러닝 모델을 개발하고 배포하는 역할을 수행하는데요.
머신러닝 엔지니어가 조금 더 개발적 관점을 가지고 있습니다.
오늘은 이렇게 머신러닝 개발자에 대한 것들을 알아봤는데요.
개발을 하기로 마음먹었다면 어떤 개발자가 맞을까에 대한 고민이 된다고 생각합니다.
각 개발 분야의 직무를 확실히 알고 시작하고, 조금이라도 무료 강의를 들어보면서
자신에게 정말 맞는지, 잘할 수 있는지에 대한 탐색을 꼭 하셨으면 좋겠습니다.
이런 유형 찾기도 있습니다만 재미로 보셨으면 좋겠습니다.
감사합니다.
참고자료 : https://modulabs.co.kr/blog/machine-learning/
https://www.oracle.com/kr/artificial-intelligence/machine-learning/what-is-machine-learning/
'AI > 머신러닝' 카테고리의 다른 글
그림으로 배우는 StatQuest 머신러닝 강의 (0) | 2023.10.07 |
---|---|
머신러닝 개발자는 어떤 언어가 필요할까 (0) | 2023.07.29 |
머신러닝 초보자 꿀팁 사이트 모음 (2) | 2023.07.27 |
머신러닝 무료 강의 추천[도움 되는 사이트 정리] (0) | 2023.07.26 |
머신러닝 개발자의 첫 시작 (0) | 2023.07.25 |