under prediction을 주는 부분 고민
이를 어떻게 loss function (손실 함수) 안에 반영시킬 수 있을 것인가?
under prediction이라는 것에 대해 회고해보자.
t_i : target label
y_i : prediction
t_i > y_i일 때 under prediction이 되었다고 할 수 있을 것.
배달 시간 예측같은 경우는 예상 시간이 실제 배달 시간보다 더 걸리게 될 경우 소비자의 불만이 더 클 것. 그래서 더더욱 under prediction을 방지해야 함.
이를 잘 valancing할 수 있는 loss function을 만드는 것이 우리의 목표
loss function을 만들 때 가져야 하는 특징
t_i ≥ y_i -> (t_i - y_i)^2
t_i < y_i -> 1/2(t_i - y_i)^2
위의 두 가지 경우가 가능.
각각의 경우에 따라 다른 가중치를 가진 squared loss function으로 줄 수 있다.
이걸 하나의 식으로 표현하려면 다음과 같이 하면 된다.
tensorflow에서 기본적으로 주어진 squared error function을 확장시켜 custom한 loss function으로 바꾸는게 어렵지 않다.
keras api를 쓰면 간단해진다.
ML 커리어 종류
- ML research scientist
- 모델을 만드는 사람
- ML research engineer
- 시스템 운영, 구현 부분에 초점
- Data scientist (analytics)
- 유저들 행동 로그 등의 데이터 지표를 분석하는 직업으로 따로 구분해 부르기도 한다.
- 크게는 머신러닝 엔지니어와 통합하여 쓰기도 함.
회사가 커지면 커질수록 분업이 생기게 된다.
ML 커리어 과정
- Individual contributor (IC)
- research scientist -> senior research scientist -> principle research scientist -> senior principle research scientist -> VP -> senior VP -> CTO
- Manager
- manager(처음에 individual contributor로 join해서 일을 하다 manager로 선회하는 경우가 대부분) -> senior manager -> director -> senior director -> VP -> senior VP -> CEO
ML 취업
- 과정
- 온라인지원(linkedin), 인맥을 통한 referral, 리크루터로부터 연락
- Phone screening (이력서랑 과거에 했던일이 일치하는지 확인)
- On-site interview
- Offer
- Resume
- 간결하게 impact 위주로, 부풀리지 말 것.
- 강조한 부분에 대해 면접에서 집중 질문을 받기 때문에 실제로 안한 부분에선 굉장히 크게 minus될 수도 있다. 그렇기 때문에 내가 맡았던 부분이 정확히 어떤 부분이었는지에 대해 기입하는게 좋다.
- 간결하게 impact 위주로, 부풀리지 말 것.
- 여러 군데 지원 시 유의점
- 가장 가고 싶은 곳의 인터뷰 스케쥴을 먼저 잡을 것
- 비슷한 시기에 오퍼를 받을 수 있다면 협상에 도움
- 면접 관련 구성원들
- Hiring manager
- 사람을 뽑으려는 팀의 팀장이 보통.
- Recruiter
- 인사팀장.
- position에 대해 자세히 알고있지 못하는 경우가 많다. 최대한 Hiring manager가 원하는 사람을 찾는 사람
- Interviewers
- 인터뷰하는 사람들. 보통 Hiring manager 같은 레벨에 있고 다른 팀인 사람 혹은 선임 혹은 팀의 팀원들로 구성
- Hiring manager
- 면접 준비
- 회사, 팀, 인터뷰어에 대한 사전조사 (경력이나 인터뷰어가 어떤 면접 질문을 하는지 알아둘 것)
- 회사가 풀고 있는 문제에 대해 알고 있는 것이 중요.
- 기본 재점검
- 응용분야 지식 보완
- 코딩
- 코딩보단 ML 전문성을 더 보는 경우도 있고.. 팀바팀이다.
- 회사, 팀, 인터뷰어에 대한 사전조사 (경력이나 인터뷰어가 어떤 면접 질문을 하는지 알아둘 것)
- 면접
- 코딩 (많으면 1명 절대 2명 이상은 안물어본다...)
- ML 지식 (최소 1명 최대 2명..) (최신 연구결과보다 기초가 중요)
- 시스템 디자인 (이 시스템을 어떻게 design할 것인지. 성공지표, 실험설계 등 포함)
- 모델을 어떻게 측정할 것인지 - 성공지표(metric)을 어떤걸 써야 모델을 잘 만들 수 있을 지.
- 어떤식으로 실험을 설계해야할지.. 모델을 launching했을 때 어떤 식으로 사용자들이 이것을 평가할 수 있게 user를 어떻게 묶을 것인지.. (나이? 성별? 직업?)
- 과거 프로젝트 경험 (명확한 문제정의, 본인의 기여)
- 이 문제가 얼마나 어려운 문제였고, 내가 얼마나 어려운 / 중요한 문제를 풀었는지
- 이 안에서 내가 얼마나 기여를 했는지 명확하게 기억하는 게 중요.
- 회사문화, 팀문화
- 회사랑 팀이랑 어울리는가를 보는 면접관들이 한명정도 있을 수 있다.
- 나의 경험이 내가 이런 사람이라는 걸 보여주는 상황을 설명해야 함. 그리고 내가 그 상황에서 어떤 action을 취했고, 이 action때문에 바뀌어진 결과에 대해서 말하기
- 오퍼 받은 후
- 시장조사 후 적절한 연봉협상할 것
- 절대 바로 받지 말고 한 번 이상은 협상을 해봐야 한다!
- 학교 졸업하고 바로 들어갈 땐 서툴러서 처음 제시된 걸 그대로 받을 뻔 했지만.. 소심하게 얘기했다가 살짝 올려줬다고 하신다..!
- 여러 개의 offer가 있는 것이 확실하다. 하나만 있으면 올려달라고 말할 순 있지만 반영될 확률이 낮다. 그러나 두 개 이상있으면 두 개 사이에서 협상할 확률이 굉장히 높다.
- 세 가지 요소
- 매달 들어오는 월급
- 매년 주식으로 받을 수 있는 금액(보통 한꺼번에 줌. 향후 3년, 4년동안 1/4씩 주기도 함)
- 매년마다 받을 수 있는 보너스 (연봉의 20% 25% 회사마다 다름)
- 회사의 상장 가능성도 볼 것. 상장 가능성이 보이면 base(월급)를 적게 받더라도 주식을 받으면 나중에 훨씬 이득을 볼 수 있을 것이다. 그게 아니고 stable한.. 변동이 심할 것 같지 않으면 base를 낮게 받는 것이 불리할 것....
- 다수의 오퍼가 있다면 협상에 절대적으로 유리하다
- Hiring manager, recruiter들과 좋은 관계 유지하기
- 절대 바로 받지 말고 한 번 이상은 협상을 해봐야 한다!
- 시장조사 후 적절한 연봉협상할 것
- 인턴은 쌍방으로 서로를 평가하는 것!
'AI > KDT 인공지능' 카테고리의 다른 글
[06/24] 심층학습 기초 (0) | 2021.06.24 |
---|---|
[06/23] 다층 퍼셉트론 (0) | 2021.06.23 |
[06/21] 신경망의 기초 (0) | 2021.06.21 |
[06/16] 인공지능과 기계학습 (0) | 2021.06.16 |
[06/15] 분류문제 실습 (0) | 2021.06.15 |