Little Big Data 후기.

No Image

정리.

LETS(Local Exchange and Trading System)

  • 서로를 연결하는 배움과 지식의 품앗이 시스템
  • 포스트 잇을 통한 새로운 아이디어 공유 방법.
    • 내가 오늘 알아가고 싶은 것
    • 내가 오늘 알려줄 수 있는 것
    • 내가 오늘 배움을 나눈 것

내용.

  • 한국어 자연어 처리의 어려움
  • 한국어 자연어 처리는 PreProcessing가 80% 이상
  • 문제 정의를 잘 하는 것이 모델을 구현하는 것보다 중요.
  • Preprocessing의 중요성.
  • 꼭 Deep Learning으로 풀어야하는 문제인가?
    • 더 간단한 방법으로 해결할 수 있으면 그 방법으로 해결하자.
  • EDA 탐색적 데이터 분석(Exploratory Data Analysis)
  • Domain Analysis
  • Feature Engineering
    • 딥러닝은 모델보다 Feature가 더 중요.
    • 문제 해결에 필요한 Feature를 Selection하는 것이 중요.
    • Feature의 개수를 고민하기. 차원수가 높아지면 제대로 클러스터링이 안된다.
    • Feature의 개수를 줄이면 Overfitting 방지한다.
    • 모든 데이터 다 때려넣으면 안될까요?
      • 할 수는 있는데 Overfitting 문제 -> 정확도는 높으나 예측은 낮다.
      • 차원이 너무 많아져서 데이터의 밀도가 떨어짐
    • 어떤 Feature 상관관계가 높은지는 사후 분석해봐야 안다.
    • 사람이 직접 특이한 패턴을 찾는다.
    • 처음부터 무슨 Feature 상관관계가 높은지 모른다.
    • 용량은 더욱 커질 수 밖에 없음 -> Giga-> Tera -> Peta
      • Json보다는 특정한 Feature를 선별하여 CSV, TSV로 변환.
      • 목적에 맞도록 데이터 구성 : Cohort Retention를 위한 DataSet
      • 데이터에 중복이 없도록 최대한 설정
      • 최대한 데이터크기를 줄이기.
      • Flatten Table Data
      • Table Size 압축
    • 콜드데이터는 비용절감에 주력
    • 트레이닝 데이터 사이즈를 줄여보는 것도 방법 (1개월 -> 10일 -> 24시간 )
    • 머신러닝에 들어가는 피쳐는 최대한 줄이고 차원을 축소해서 트레이닝 비용을 줄이기.
  • 어떻게 모델을 만들어야 할까?
    • 어떤게 더 중요한지 모르니 모든걸 다 로그로 쌓고
    • EDA를 진하게 진행해서 특이한 패턴을 찾고
    • 특이한 패턴을 통해 모델을 학습시키고
    • 데이터는 테스트 기반 Validation.
    • 계속해서 시도하고 실패하다 보면
    • 원하시는 모델이 나올겁니다.
  • SVM은 왜 적용을 안했는가?
    • 처음 적용했지만 점점 정확도가 감소한다.
    • Feature를 선별해서 DeepLearning을 적용했다.
  • 모델이 변경된다면 어떻게 할까요?
    • 규약을 미리 정하기 Code Level
    • Validation을 해서 Warning이 나온다면 커뮤니케이션하기.
  • Preprocessing -> normalize -> 0~1사이로 바꾸기. log

나는 무엇을 얻었는가?

자연어 처리

  • 인턴 과제로 받았던 한국어 댓글 분석에서 내가 겪였던 문제들을 이렇게도 풀 수 있구나라는 걸 알게 되었습니다.
  • 한국어 자연어 처리가 매우 중요하다는 점.
  • 내가 사용하고 있는 자연어 처리 라이브러리가 어떻게 자연어 데이터를 사용하고 있는지?
  • 내가 어떠한 형태의 한국어를 분석하고 있는지?

문제에 대한 정의 중요성.

  • 요구사항에 대한 정의가 명확하지 않으면 원하는 결과가 나오지 않을 가능성이 높다.
  • 회사가 커지면 커질수록 문제에 대한 이해와 요구사항을 정의하는게 중요하다.
  • 문제를 어떻게 정의할 것인가?
    • 뭘 원하는지? 어떤 것을 해결하고 싶은지?
    • 이런 Case에는 어떻게 할 것인지?
  • 요구하는 사람이 원하는 것을 충족하는 게 가장 중요하다.

데이터 정제의 중요성.

  • 엄청나게 많은 Feature를 상대로 의미있는 데이터를 뽑아내기 위해선?
    • Peta 크기보다 더 많은 Data와 엄청난 Computing이 필요하다.
    • 구글 정도의 데이터 크기와 Computing이면 가능할지도?
  • 우리는 대부분 그런 데이터가 없다.
    • 그렇기 때문에 데이터에서 Feature를 선별할 수 있어야하며.
    • 다양한 Feature를 실험하고 정의하는게 중요한 것 같다.

앞으로 미래?

  • SQL을 예전에는 개발자만 사용했더라면 현재는 개발자뿐만 아니라 많은 사람들이 사용하는 것처럼
    • 앞으로 이런 Data를 쉽게 사용하는 Tool이 나올 것 같다.
    • Data를 어떻게 해석할 것인가? 어떻게 정제할 것인가? 중요해질 것 같다.
  • 생각보다 엄청난 Data의 크기.
  • 관련 논문 많이 읽어보기.

세상은 대단한 사람들이 너무 많고 언제나 나의 부족함을 느낀다. 개발자가 과연 개발만 하는 사람인가? 지금은 문제해결을 하기 위해 소프트웨어를 사용하는 사람으로 볼 수 있을 것 같다.

Reference

0%