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될 수도 있다. 그렇기 때문에 내가 맡았던 부분이 정확히 어떤 부분이었는지에 대해 기입하는게 좋다.
  • 여러 군데 지원 시 유의점
    • 가장 가고 싶은 곳의 인터뷰 스케쥴을 먼저 잡을 것
    • 비슷한 시기에 오퍼를 받을 수 있다면 협상에 도움
  • 면접 관련 구성원들
    • Hiring manager 
      • 사람을 뽑으려는 팀의 팀장이 보통.
    • Recruiter
      • 인사팀장. 
      • position에 대해 자세히 알고있지 못하는 경우가 많다. 최대한 Hiring manager가 원하는 사람을 찾는 사람
    • Interviewers
      • 인터뷰하는 사람들. 보통 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

+ Recent posts