반응형

 

안녕하세요

코딩교육자 헨리입니다.

 

오늘은 데이터 커리어 분야의 다양한 직군 중에

데이터를 활용하여 유의미한 서비스 모델을 개발하는 데이터 과학자를 배웠습니다.

이번 강의를 들으면서 멋진 머신러닝 모델을 만들기 위해서는

유의미한 데이터가 우선되어야 한다는 사실을 알게 되었습니다.

아무리 잘하는 데이터 과학자라도, 데이터가 제공되지 않는다면, 큰 힘을 발휘할 수 없다는 것이죠.

 

아래부터는 제가 노트 정리한 내용들입니다.

(어투가 변경될 수 있으니, 양해 부탁드립니다.)

 

 

데이터 과학자의 역할

# 머신러닝의 형태로 사용자들의 경험을 개선

 - 문제에 맞춰 가설을 세우고 데이터를 수집한 후에 예측 모델을 만들고 이를 테스트하는 역할

  * 장시간이 필요하지만 이를 짧은 사이클로 단순하게 시작해서 고도화하는 것이 좋다

 - 테스트는 가능하면 A/B 테스트를 수행하는 것이 더 좋다.

 

데이터 분석가는 내부 직원들을 상대하지만,

데이터 과학자는 외부 고객들을 상대해야 한다.(우리 서비스를 쓰는 실제 고객들)

 

# 데이터 과학자에게 필요한 스킬셋

 - 머신러닝/인공지능에 대한 깊은 지식과 경험

 - 코딩 능력 (파이썬과 SQL)

 - 통계 지식, 수학 지식

 - 끈기와 열정, 박사 학위가 도움이 되는 이유 중의 하나

 

가설을 먼저 잘 세우고, 어떤 문제를 해결할 것인지 이야기를 해보고,

해당 가설이 우리가 달성하고자 하는 목표에 중요한 과정이 될 것 같으면,

프로젝트를 진행한다.

 

가설: 제대로 해결되면, 어떤 지표가 어떻게 개선이 될 것인지 자세하게 세우는 것이 좋다.

짧은 사이클로 여러번 반복을 해서, 내가 만들고자 하는 모델을 점진적으로 고도화한다.

 

 

그렇다면 훌륭한 데이터 과학자란 무엇일까?

- 열정과 끈기

- 다양한 경험

- 코딩능력

- 현실적인 접근 방법?

 * 애자일 기반의 모델링(간단하게 시작해서, 점진적으로 고도화 시키는 것)

 * 딥러닝이 모든 문제의 해답은 아님을 명심하자.

- 과학적인 접근 방법

 * 지표기반 접근(정의가 명확하고 계산이 가능한 지표를 개선해야 한다.)

 * 내가 만드는 모델이 목표는 무엇이고 그걸 어떻게 측정할 것인가

 

 

제일 중요한 것은 모델링을 위한 데이터의 존재 여부라고 생각한다.!!

 

 

한기용 강사님은 데이터 과학자가 모델을 개발을 할 때, 점진적으로 애자일하게 개발하는 것이 좋다고 하셨는데,

애자일 개발방법론이란 뭘까?

 

 

세상이 느리게 굴러갈 때는 폭포수 개발방법론이 가능했다.

디자인 하는 동안 세상이 바뀌지 않았다.

 

그러나 오늘같은 세상에서는 디자인 하나가 세상이 바뀌게 된다.

그로 인해, 보통 2주 주기를 잡고 짧게 개발하고 구현하고 배포하고, 이 과정을 반복적으로 개발해나가는 것이

더 좋다고 생각이 되어졌다.

 

 

머신러닝 모델을 개발하는 과정을 아래와 같다.

 

모델빌딩 테스트와 A/B 테스트는 엄연히 다르다.

A/B 테스트가 조금 더 실제 사용자 환경과 밀접하게 연결된다.

위 사이클을 돌면서 점진적으로 부족한 부분이 있으면 개선하고, 더 나은 모델로 만들어가는 과정을 거칠 수 있다.

 

 

한번에 모든 것을 해결하려고 하는 것이 아니라, 짭게 한바퀴를 돌면서 

미리미리 다양한 형태의 가능성들을 빠르게 파악하면서 개발하는 애자일 방법론이 요즘 트렌드이다.

 

 

그럼 A/B 테스트에 대해서 알아보자

 

 

 

Control그룹과 Variation 그룹을 테스트하며 그 차이를 살펴본다.

 

ex) Udemy에서 상품 추천서비스를 일부는 규칙기반으로 하고, 나머지는 머신러닝 모델로 하면서,

상품 구매율에 대한 어떤 차이가 있는지 확인해보는 것.

 

A/B 테스트란?

# 온라인 서비스에서 새 기능의 임팩트를 객관적으로 측정하는 방법

 - 의료쪽에서 무작위 대조 시험(Randomized Controlled Trial)에 해당

# 새로운 기능을 론치함으로 생기는 위험부담을 줄이는 방법

 - 100%의 사용자에게 론치하는 것이 아니라 작게 시작하고 관찰 후 결정

 - 어떤 지표를 가지고 성공/실패를 결정할지 정해야 함.

 - 예제: 추천을 머신러닝 기반으로 바꾼 경우

  -- 먼저 5%의 사용자에게 론치. 나머지 95%의 사용자와 매출액과 같은 중요 지표를 기반 비교

  -- 5% 대상으로 별문제 없으면 10%, 20% 이런 식으로 점진적으로 키우고 최종적으로 100%로 론치(잘 동작함을 알게 되면)

 

100%로 되면 실제 프로덕션으로 론치가 되는 것.

 

# 보통 사용자들을 2개의 그룹으로 나누고 시간을 두고 관련 지표를 비교

 - 한 그룸은 기존 기능에 그대로 노출(control)

 - 다른 그룹은 새로운 기능에 노출 (test)

# 가설과 영향받는 지표를 미리 정하고 시작하는 것이 일반적(자기 좋을대로 해석하지 않기 위해)

 - 지표의 경우 성공/실패 기준까지 생각해보는 것이 필요

# A/B 테스트의 분석은 과학이 아닌 예술에 가깝다.

 

 

 

반응형
반응형

실리콘밸리에서 날아온 데이터 분석 커리어 특강

 

안녕하세요.

코딩교육자 Henry입니다~~!

 

Day 2에서 제가 프로그래밍 강의를 하나 신청했다고 말씀드렸는데요.

여기 참고 => https://datacodingschool.tistory.com/240

 

나에게 있어 성장이란?

안녕하세요. 코딩교육자 Henry입니다. 첫인사로 제 닉네임 앞에 코딩교육자라는 말을 넣어보았습니다. 코딩교육자? 무슨의미지 싶어하시는 분들도 있을 것 같습니다. 개발자가 교육자의 길을 걸

datacodingschool.tistory.com

오늘은 그 강의 중 1강을 퇴근하고 몇일동안 듣고 난 뒤, 배운 내용들을 정리하는 시간을 가졌습니다.

 

글 솜씨가 없어, 내용이 투박하게 느껴지는 점 양해부탁드립니다ㅎ

 

 

 

데이터 조직의 비전

- 신뢰할 수 있는 데이터를 바탕으로 부가 가치 생성 <- 에어비엔비 데이터팀의 모토

  • Data is the new oil?
  • 데이터의 중요성이 강조되니 데이터 팀도 어느회사나 인정을 받는다?

아니다! 데이터를 통해 돈을 버는 회사가 아니라면, 내가 원하는 대우를 받지 못할 것이다.

대우받기 위해 데이터를 통해 부가가치를 창출해야 한다.

 

"어떻게 데이터 조직이 회사의 성장과 발전에 기여하는지"

 

여기에 포커스를 맞추어야 한다.

 

 

데이터 조직이 하는일

1. 고품질 데이터를 기반으로 의사 결정권자에게 입력 제공

데이터를 기반으로 한 결정은 현재 일의 최적화를 가능케 하지만, 완전 새로운 일에는 필요하지 않다!

 

2. 고품질 데이터를 기반으로 패턴을 찾아 오류 탐지, 개인화 추천 등을 한다.

공장이라면? 이상 탐지 / 이커머스는 개인화 추천 모델링 등을 한다.

이것이 데이터 과학자들이 하는 일이다.

 

데이터의 흐름과 데이터 팀의 발전 단계

 

데이터 엔지니어를 고용하여, 곳곳에 뿌려진 (회사에 필요한) 다양한 데이터를 수집해서

한 곳(데이터 웨어하우스)에 모아놓는다.

 

이 과정을 흔히 ETL이라고 한다.

혹은 데이터 파이프라인, 데이터 잡이라고도 한다.

보통 파이썬을 많이 쓴다.

 

 

이게 주기적으로 실행되면, 데이터 웨어하우스에 적재가 되기 시작하고,

데이터 분석가들이 이 데이터를 활용하여 지표를 만들어내고, 시각화 한다.

데이터 과학자들은 이것을 활용해서 최적화, 개인화, 공정 개선, 탐지 등을 한다.

 

 

1. 데이터 인프라 구축

일단 데이터를 모아야지.

데이터 웨어하우스에 대해서 알아보자.

 

프로덕션데이터베이스 <(더 큰 개념) 데이터웨어하우스

 

프로덕션은 - 우리 서비스가 온라인 웹이라고 하면, 그 서비스를 운영하는데 필요한 데이터베이스이다.

특징: 응답 속도가 빨라야한다.(EndUser에게 서비스를 빠르게 제공해야하기 때문에)

데이터웨어하우스는 데이터 인프라에서 수집된 다양한 데이터들이 저장되는 곳

 

 

 

프로덕션 데이터베이스(외부고객들) -> 빨라야한다.

데이터웨어하우스(내부직원들) -> 빠르면 좋지만, 더 중요한 것은 처리할 수 있는 데이터의 크기이다.

 

데이터 웨어하우스

- 회사에 필요한 모든 데이터를 모아놓은 중앙 데이터베이스(SQL 데이터베이스)

  • 데이터의 크기에 맞게 어떤 데이터베이스를 사용할지 선택한다.
  • 크기가 커진다면 다음 중 하나를 선택

- AWS Redshift, 구글 클라우드의 BigQuery

- 스노우플레이크(Snowflake)

- 오픈소스 기반의 하둡/스파크

- 이 모든 SQL을 지원

 

 

데이터웨어하우스에 적재되는 데이터가 많아지면,

자연스럽게 ETL의 개수도 많아진다.

 

그러면 자연스럽게 이것을 관리하는 포인트를 가져야한다.

 

이때 가장 많이 사용되는 것이 Airflow이다.

 

 

현재는 ETL SaaS가 잘 되어있는 곳이 많이 없어서,

데이터가 많이 않은 초기에는 ETL SaaS를 사용해도 괜찮지만,

이후 처리하는 데이터가 많아지면, 데이터 엔지니어를 고용해서 데이터 웨어하우스 ETL과정을 관리해야한다.

 

 

2. 데이터 분석 수행

 

 

시각화 대시보드를 통해 지표를 보여주어야 한다.

- 보통 중요한 지표를 시간의 흐름과 함께 보여주는 것이 일반적

  • 지표의 경우 3A(Accessible, Actionable, Auditable)가 중요
  • Accessible: 이 지표가 대시보드 형태로 쉽게 접근할 수 있는가.
  • Actionable: 이 지표가 액셔너블 하는가, 올라가거나 내려가면 그 의미가 분명한가. / 이 지표의 변화가 의미하는 것이 분명한가.
  • Auditable: 이 지표가 제대로 계산되었는지 검증이 가능하는가.
  • 중요 지표의 예: 매출액, 월간/주간 액티브 사용자수, ...

- 가장 널리 사용되는 대시보드

  • 구글 클라우드의 룩커(Looker) <- 경제적인 부분이 넉넉히 마련되었다면, 가장 우수한 솔루션이다.
  • 세일즈포스의 태블로(Tableau)
  • 마이크로소프트의 파워 BI(Power BI)
  • 오픈소스 아파치 수퍼셋(Superset) <- 오픈소스이므로 무료이다.

 

3. 데이터 과학 적용

 

 

이제 인프라가 마련되었고, 데이터 분석가들이 지표를 마련해놓았다면,

데이터 과학자들이 새로운 피쳐를 뽑아내는 작업이다.

사용자 경험 개선(추천, 검색 등 개인화)

 

 

 

이 과정에서는 머신러닝이 주로 사용된다.

 

  • 머신러닝(Machine Learning)이란?

- (프로그래밍 없이) 배움이 가능한 알고리즘 -> 블랙박스

 

- 데이터로부터 패턴을 찾아 학습

  • 데이터의 품질과 크기가 중요
  • 데이터로 인한 왜곡(bias) 발생 가능 - 학습 데이터가 한쪽으로 치우쳐저서 들어온 경우. (왜곡 여부, AI 윤리침범 여부)
  • 내부동작 설명 가능 여부도 중요 (ML Explainability)

범주적으로 말하자면, 아래와 같다.

인공지능 >> 머신러닝 >> 딥러닝

 

 

머신러닝의 종류

 

1) 지도 기계 학습(Supervised Machine Learning)

- 명시적 예제(트레이닝셋)을 통해 학습

- 분류 지도 학습(Classification)

이진 분류(Binary)와 다중 분류(Multi-class)

- 회귀 지도(Regression)

 

2)비지도 기계 학습(Unsupervised Machine Learning)

- 클러스터링 혹은 뉴스 그룹핑처럼 주어진 데이터를 몇 개의 그룹으로 분리

 

3)강화 학습(Reinforcement Learning)

알파고 혹은 자율주행

기본적으로 규칙이 정해진 환경에서 잘 동작한다.

자율주행처럼 예외사항이 많은 경우는 아직 발전해야하는 부분이 많다.

 

 

머신러닝 모델을 실제로 배포하는 그림은 아래와 같다.

우선적으로 트레이닝 셋(X,Y)값이 필요하고,

모델을 학습했다면, 해당 모델을 Production한 환경으로 배포를 한다.

응용 프로그램에서 데이터가 발생하면 이 데이터를 모델에 넣어주고, 예측값을 전달하는 것이다.

 

 

 

요즘 뜨고 있다는 MLOps란?

데이터 과학자가 만든 모델을 배포하고, 모니터링 하고, 관리하고

문제가 있다면 재 배포하고, 이런 과정이 복잡해지면, 자동화하는 것을 맡게되는 직군이다.

 

 

느낀 점


아직 1강밖에 듣지 못했지만, 배우는 것이 많았던 시간이었다.

데이터 조직이 하는 일에 대해서 배우면서,
단순 기술을 사용하는 방법보다 더 거시적인 관점에서 데이터 기술을 바라볼 수 있었던 시간이었다.
강의 1/5이 끝났다. 5시간 강의에 거의 1시간짜리 강의였다.

한번에 다 듣지는 못해고, 수강기한이 있는 강의는 아니니까,
천천히 소화시키면서 공부해야겠다!


참! 강의 하나를 더 결제했다.
이번에는 강의가 아닌 스터디이다.

현재 듣고 있는 강의와 동일한 강사님인 한기용 강사님의 스터디가 열렸다!!
2/5일에 시작이라고 하는데, 스터디에서 뒤쳐지지 않도록 지금 듣고 있는 강의는 2월까지는 마무리 하는 걸로ㅎㅎ

 

반응형

+ Recent posts