The Batch from Andrew Ng
인공지능으로 커리어를 쌓으시려는 분들이 굉장히 많습니다. 너무나 유명하신 Andrew Ng교수님의 The Batch 블로그에서 이런 분들을 위한 조언의 글을 모아서 올려둔 글이 있습니다. 이 글에 있는 내용 중 "머신러닝을 어떻게 배우는가?(How to Learn Machine Learning)", "어떻게 실전 경험을 쌓을 것인가? (How to gain Practical Experience)", "어떻게 인공지능 분야의 직업을 얻을 것인가? (How to Get a Job in AI)"를 발췌 번역해 보았습니다. 원문의 구성은 아래와 같이 총 5개의 주제이니 관심있으신 분들은 꼭 원문을 참고해 주세요^^
How to Learn Machine Learning
How to Gain Practical Experience
How to Overcome Societal Obstacles
How to Get a Job in AI
How to Keep Up in a Changing Field
완전 기초부터 시작하여 실무자레벨까지 알려줄 수 있는 강의코스가 많이 있다. 실무자가 되기까지 동기부여 되어있는 고등학교 수준의 지식을 갖춘 사람이라고 한다면 약 2년정도면 가능할 것이다.
3단계이다 : 코딩의 기초 배우기, 머신러닝 배우기, 롤을 찾아 집중하기
1) 코딩의 기초 배우기 : 코딩을 해야 구현 할 수 있다. 기초적인 코딩 스킬을 배워라. 선형대수, 확률, 통계와 같은 선수과목에 대한 자나친 두려움은 필요없다. 수학적인 지식을 많이 아는 것이 좋겠지만 머신러닝 공부를 시작하면서 필요한 수학을 그때 그때 공부하는 것도 효율적인 방법이 될 수있다.
2) 머신러닝 배우기 : 머신러닝을 배운 후(예를들면 코세라의 machine learning 강의) 딥러닝을 배워야 한다.
3) 롤을 찾아 집중하기 : 데이터 싸이언티스트, 머신러닝 엔지니어, AI +x 와 같이 어떤 롤을 선택할 것이냐에 따라 배워야 할것이 달라진다. 데이터 싸이언티스트라면 데이터 시각화, 비즈니스 분석, 응용 통계학, 데이터 베이스와 같은 기술을 필요로 할것이다. 머신러닝 엔지니어라면 데이터마이닝, MLOps와 같은기술 그리고 확장 가능한 시스템을 만들기 위한 소프트웨어 엔지니어링 같은 기술이 필요할 것이다. 이미 한 분야의 전문가로 인공지능을 적용하게되는 AI+x 를 선택한다는 것은 데이터싸이언티스트나 머신러닝엔지니어가 되기 위해 전문분야를 버리는 것이 아니다. 인공지능을 활용하는 더욱 성장한 한 분야의 전문가가 되는 길을 선택한다는 것을 뜻한다.
어떤 길을 가건 responsible AI의 개념은 잘 알고 있어야 한다. 인공지능이 가져올 임팩트가 초기엔 에측하기 어렵기 때문에 이익을 극대화하고 손실을 최소화하는 방향으로 인공지능을 개발되고 배포될 수 있도록 충분한 이해가 필요하다
실제 인공지능 관련 업무를 진행하기 위해서는 프로젝트 경험이 중요하다. 대회에 참여하거나 토이프로젝트를 진행하는 것도 좋은 방법이지만 실전 문제는 이들이 제공하는 잘 정의된 목표가 없다.
프로젝트 경험을 위한 단계는 다음과 같다.
1. 프로젝트를 명확히 하라 : 토이 예제에 빠지지 않도록 고객의 입장이 되어 생각헤야된다.
2. 데이터를 구해라 : 업무에 적합한 데이터를 구해라. 문제를 데이터에 맞추려고하지 말고 문제에 맞는 데이터를 구해야한다.
3. 데이터 전처리 : 정확한 데이터 레이블, 클래스 밸런스, 데이터의 품질, 데이터 증강 등을 활용하여 데이터를 적합하게 만들어라
4. 분명한 목표를 정해라 : 문제가 해결된건지 아무도 알려주지 않기 때문에 스스로 정해야 한다. 이는 분류 정확도, mse이 등이 될 수도 있다. 어플리케이션 마다 목표로하는 것이 달라질 것이다.
5. 문헌을 조사하라 : arxiv나 paperswithcode에서 다른 사람들이 비슷한 문제를 어떻게 해결했는지 알아봐라. 현재 존재하는 모델을 finetuning하면 해결할 수 있는지 처음부터 만들어야하는 건지등 알수 있게 된다
6. 쏠루션을 구현하라 : 최종 고객에게 전달 될 요건을 갖춘 모델을 구현하고 학습 시켜라. 예를들어 모바일에 모델을 올려야한다면 그 모델의 사이즈는 작아야 할 것이다.일반적으로 최종 프로덕션 단계를 위한 튜닝만 몇개월이 걸린다.
7. 자신의 성과를 공유하라 : 깃허브에 올려서 많은 사람들에게 공유하라. 이 프로젝트의 처음부터 끝까지를 설명할 수 있는 관련 블로그 포스트를 작성하라. 프로젝트를 해결하기 위한 사고의 과정, 만나게 된 장애물, 이를 극복했던 방법에 대해 작성하라.
이러한 프로젝트를 5번정도 경험하게 되면 전문가 수준이 될 것이다
이 분야의 채용은 늘고있다. 그러나 이런 생각이 들것이다. ‘난 프로그래밍과 수학 전문가도 아닌데 나를 채용할 곳이 있을까?’ 분명히 있다. 가능하다. 가장 중요한 기술은 상식, 데이터에 관한 직관, 배웠던 내용을 실제 문제에 적용하려는 열정이다. 인공지능 관련 잡을 얻는 5단계를 설명해 본다.
1. 목표를 설정해라 : 자신이 어느부분에 더 매력을 느끼는지 생각해보라 - 코딩,데이터분석 작업, 머신러닝, 동료와의 협업. 일반적인 직군은 다음과 같다.
1-1. 데이터 분석가 : 코딩능력보다는 통계적인 지식이 더 중요하다. 자신의 프로덕트에 대한 충분한 이해를 가지고 있어야하기에 동료들과 긴밀하게 일하는 경우가 많다.
1-2. 데이터 사이언티스트 : 일반적으로 데이터분석가보다 더 많은 코딩능력과 머신러닝 지식을 요구한다.
1-3. 머신러닝 엔지니어 혹은 데이터 엔지니어 : 굉장히 높은 수준의 코딩능력을 요구한다. 모델을 제품화 수준으로 배포할 수 있는 능력과 모델 아키텍쳐를 이해할 수 있는 능력이 필요하다.
1-4. 프로덕트 매니저 : 리더십, 데이터와 제품에 관한 높은 이해도, 고객 및 다른 팀과의 높은 상호작호 능력이 요구된다.
2. 첫 연락하기 : 가장 좋은 방법은 취업 하고자 하는 회사의 친구, 혹은 전 직장동료나 매니저의 추천을 통하는 방법이다. 링크드인의 네트워크를 활용해보라. 생각보다 연결될 수 있는 지인들이 많이 있을 것이다. 부끄러워하지 말고 밋업과 컨퍼런스에 참여하여 새로운 사람들을 만나라. 새로운 사람들은 기꺼이 도움을 주려고 할 것이며 그돌도 소개를 통해 보너스를 받는 경우도 많다. 채용담당자에게 연락하는 것도 잊지마라. 그들은 당신과 같은 사람을 찾고 있을것이고 그들의 일을 덜어 주는것이된다.
3. 인터뷰 준비하기 : 채용담당자가 연락하기전부터 인터뷰를 준비해두는 것이 좋다. 다음 기술에 탄탄한 기반을 다지고 있음을 알려야 한다. 프로그래밍(파이썬, SQL, C++ 등), 컴퓨터 사이언스 (알고리즘, 자료구조), 수학(확률, 통계, 선형대수, 미적분), 머신러닝
3-1. 부트캠프, 코세라, 유투브에서 공부할 수 있는 자료가 많다
3-2. 코딩연습을 위해 LeetCode나 HackerRank를 활용할 수 있다
3-3. 머신러닝은 캐글을 통해서 배울 수 있다
4. 지원하기 : 자신에게 맞는 모든 직책에 지원해라. 인터뷰를 많이 하는 것이 인터뷰를 더 잘하는 가장 좋은 방법이다. 인터뷰 예정이라면 채용 담당자에게 어떤 주제를 다뤄야 하는지 미리 물어봐라. 인터뷰를 재밌게 즐겨라. 인터뷰 하는동안 면접관들은 당신과 일하는 모습을 상상하고 있을 것이다. 인터뷰 과정이 흥미롭고 즐겁다면 면접관들은 당신과 일할경우 즐거울것이라고 생각할 것이다. 그리고 팀의 일원으로 일하게 될것이기에 혼자가 아닌 팀의 일원으로서 어떤 기여를 하게될지를 중심으로 준비해야 한다. 인터뷰가기 전에 주변에 조언을 구해도 좋다
5. 후속 조치 : 인터뷰가 끝난 후 가능하다면 면접관에게 메일을 보내라. 인터뷰 중에 배운 모든 것에 감사드린다고 말해라. 떨어지더라도 좋은 인상을 준다면 새로운 포지션이 열렸을때 연락이 올 수 있다. 계속 연락을 유지하고 지내면 좋다
3개의 글의 요점을 번역해 보았는데요 빠르게 변하는 트렌드를 어떻게 따라잡을지, 어떻게 사회적인 장애물을 극복할지에 대해서도 관심있으신 분들은 앞서 말씀 드렸던 대로 원문을 확인해 주세요.
감사합니다.