-
Notifications
You must be signed in to change notification settings - Fork 484
머신러닝 엔지니어
Sung Yun Byeon edited this page Jan 10, 2021
·
8 revisions
머신러닝 엔지니어는 속한 도메인의 목적에 맞는 모델 생성 및 모델의 정확도를 개선해 고도화하는 업무를 합니다. 알고리즘을 만든 후, Production(실제 서비스) 단계로 적용합니다. 데이터 사이언티스트와 유사하지만 조금 더 "개발"적 관점을 가지는 직군을 머신러닝 엔지니어라고 생각합니다! 데이터 사이언티스트와 내용이 중복되는 부분이 있습니다. 아래 내용들을 가볍게 읽어보시고 추천 링크도 꼭 읽어보세요! :)
최근엔 MLOps 엔지니어라는 직군도 생기고 있습니다. ML + DevOps의 조합으로 Serving, 모델 파라미터, 데이터 처리 등을 다룹니다. 더 궁금하시면 머신러닝 오퍼레이션 자동화, MLOps를 참고하면 좋을 것 같습니다
- 속한 도메인의 목적에 맞는 모델 생성 및 퍼포먼스 개선
- 추천 시스템
- 개인화 추천 알고리즘 개선 및 설계
- 금융권(퀀트)
- 금융 자산 예측 모델 연구/개발
- 자연어 처리
- 자연어 처리(NLP), 자연어 이해(NLU) 모델 개발
- 컴퓨터 비전
- Image Classification
- Object Detection을 물체 인식
- Segmentation
- 음성 인식
- 음성 인식 모델 개발
- 강화 학습
- 강화 학습을 적용할 수 있는 도메인에서 모델 개발
- 게임 AI
- 만든 모델을 Production에 붙이는 업무
- 논문을 읽고 구현할 수 있는 능력
- 논문 이해를 위한 수학 지식
- 구현을 위한 코딩 능력(Python, Tensorflow, Spark ...)
- 머신러닝, 딥러닝 이론 지식
- 개발적 역량
- Docker, Linux
- 도메인 관련 지식
- 스팸 사진을 분류하고 싶은데, 어떻게 하면 될까요?
-
- 문제 정의
- 분류
- Task를 더 구체화 : 스팸 유무만 분류? 라벨이 여러가지?
-
- 데이터 수집
- 모델에 넣기 위해 데이터 전처리
- 데이터는 Database에 있는가? 클라우드 저장소에 있는가?
-
- 모델 선정 및 학습
- 베이스 라인 모델에서 성능을 최대한 올린 후, 앙상블 또는 스태킹 등을 사용해 성능 개선
- 하이퍼 파라미터 튜닝도 진행
- 실제 Production에 올라갈 때는 정확도보다 모델 weight 파일의 용량, 모델의 추론 속도 등이 더 중요할 수 있음(딥러닝이 최선은 아니라는 뜻)
-
- 영화 추천 모델을 만들어야 하는데, 어떻게 할까요?
- 과거 1년치 데이터를 기반으로 내년을 예측할 수 있나요?
- 딥러닝 모델을 실제 Production에 Serving
- Tensorflow Serving
- Google AI Platform
- RESTful API
- Kafka, Redis 등
- 머신러닝/딥러닝 강의 수강
- Andrew ng님의 Coursera Machine Learning
- 김성훈 교수님의 모두를 위한 딥러닝
- 추천 도서 : 밑바닥부터 시작하는 딥러닝
- 선형대수 강의
- 이상화 교수님의 선형대수
- Python 강의
- 최성철 교수님의 데이터 과학을 위한 Python 입문
- 추천 도서 : 점프 투 파이썬
- 딥러닝 Framework
- Tensorflow 공식 홈페이지
- 머신러닝 엔지니어를 지향하시면 Pytorch보단 Tensorflow를 추천합니다(엔지니어링 관점에서) 리서치 위주로 진행하시면 Pytorch 추천
- 이론만 배우고 끝이 아니고 코드로 구현해보는 연습을 꼭!!!! 해보기
- 선형대수도 코드론 1줄이지만 직접 쳐보세요
- 컴퓨터 비전
- Stanford CS231n 2017
- 딥러닝 공부한다면 분야 상관없이 꼭 들어보면 좋을 강의!
- 영어가 부담되시면 제 블로그 정리나 이재원님의 한글 자막을 참고해주세요
- 자연어 처리
- Stanford CS224n 2017
- 강화학습
- 어떤 분야를 좋아하는지 찾아보는 시간입니다. 세부 분야의 이론을 공부하며 코딩!
- 주 관심 분야를 정했으면 논문을 읽고 정리합니다
- 블로그에 정리 추천
- 코드로 구현해서 Github에 남기면 Best
- 최근에 나온 논문이고 아직 구현체가 없는 상황에 먼저 만들기 : 좋은 포트폴리오
- Reddit에 올릴 경우 인기 좋을 수 있음
- 처음에 영어 논문 읽기가 어렵다면
- 최성준님의 논문으로 시작하는 딥러닝
- Tensorflow KR의 PR12
- 논문을 보다 어려운 수학이 나오면 하나씩 공부
- 수학을 끝내고 딥러닝 시작해야지!도 정말 좋지만 끝없이 수학 공부하다 지칠 수 있으니 병행 추천
- 논문 정리하는 방법
- 정권우님의 Github : Issue에 태그를 달아 논문을 정리합니다. 발상이 Awesome!
- 데이터 프로젝트 진행
- 문제 정의, 데이터 수집, 모델 선정, 결론 도출의 과정을 경험해보기
- 직접 데이터를 가지고 오기 위한 노력(크롤링 혹은 노가다..)부터 끝까지 다 해보기!
-
Kaggle Competition에 참여하는 것도 좋은 방법
- 대량의 데이터를 다룰 수 있는 점은 Best
- 그러나 실제 데이터는 캐글처럼 깔끔하게 내려오지 않음. 한번은 직접 데이터를 가지고 오는 삽질을 경험해보기 추천
- Kernel에 있는 다른 분들의 지식을 통해 학습
- 참고하면 좋은 문서 : Kaggle Knowhow, Hello-Kaggle-KOR
- 빅데이터 공모전 참가
- 그래도 제일 좋은 것은 개인 프로젝트!
- 프로젝트하면서 핵심은 ~을 해봤다가 아닌, 그 경험에서 얻은 생각입니다
- 예를 들어 딥러닝에서 Batch Normalization을 하면 성능이 좋아진다고 배웠지만 실제 데이터에선 그러지 않을 수 있습니다. 그 이유는 왜 그럴까? 데이터가 불균형해서? 아니면 데이터 도메인의 특징 때문에?
- 기존에 알던 개념이 반드시 참은 아닐 수 있으니 이런 비판적 사고를 해보세요!
카일스쿨 유튜브를 시작했습니다-! 이 Wiki 문서에서 다루지 않은 현업 이야기를 공유할 예정입니다!
궁금하시거나 요청할 내용이 있으시면 [email protected]으로 메일 보내주시면 감사하겠습니다 :)