Machine learning(1)

Jinmin Kim·2020년 1월 3일
0

머신 러닝

  1. 개요
  • Machine Learning
  • 데이터에서 지식을 추출하는 작업 : 데이터 -> 정보 -> 지식 -> 지혜
  • 통계학, 컴퓨터 과학, 데이터 마이닝, 인공지능 등 전문분야가 섞여있다.
  • 예측 분석(predictive analysis), 통계적 머신러닝( statistical learning)
  • 예) 영화 추천, 음식 주문 추천, 쇼핑 추천, 맞춤형 VOD
  • 넷플릿스, 아마존, 페이스북 등 여러 서버스에서 이미 사용중
  1. 정의
  • 아서사무엘 : 명시적인 프로그래밍 없이 컴퓨터가 학습을 하는 능력을 갖추게 하는 연구 분야다
  • 톰미첼 : 어떤 작업 (Task:T)에 대한 컴퓨터 프로그램의 성능 P(Perperence)로 측정하였을때,
    경험 Experience(E)로 인해 성능이 향상되었다면,이 컴퓨터 프로그램은 작업 T와 성능측정 P에
    대해 경험 E로 학습한 것이다. (최초에는 허술하나 학습이 증가될수록 우수한 성능을 발휘)
  1. 데이터 과학(분석, 모델링등) 절차
    1) 연구 목표 설정

    • 전체 단계를 보고, 주제, 목적, 산출물의 형태를 고려
    • 무엇을 분석, 예측 모델, 평가 방법( 통계적 평가, 머신러닝/딥러닝의 평가 방법 )
    • 6단계 산출물의 형태를 정하고 들어가는것이 중요
      예) 넷플리스 => 추천 시스템의 정확도를 3% 증가
      서비스 구축, 사내 시스템(그룹웨어에 기능 추가), 품질관리 시스템 도입등등..
      => 명확하지 않으면 네버엔딩!!
      2) 데이터 획득
    • lv1 : 제공받는다 => 연구용 데이터, 경쟁(캐글, 챌린지), 공공 데이터, 정부기관요청(민원처리)
      , 사내 기업 데이터 => 데이터 3법 통과(중요), 데이터 바우처(구매)
      => 정규화된 데이터(가능성이 높다)
      -> 이하 레벨은 제공받을수가 없다 -> 웹을 통해서 획득
    • lv2 : OPEN API 활용 (데이터를 쿼리를 통해서 제공해준다=>풀데이터는 아니다, 정제된데이터)
      => 여기저기
    • lv3 : Web Scraping (접근이 용이)
      => BS4, Request
    • lv4 : Crawling (ajax, 인증, 검색등등 사람의 손을 타야 하는 사이트)
      => Selenium
      => 자동화, 스케쥴러(window:작업스케쥴러, linux:cron)
      => 데이터가 없으면 1단계로 백
      3) 데이터 준비
    • 데이터의 품질 향상 목표
    • 데이터 정제, 통합, 변환 -> 품질 향상 목표
    • 모델에 적합한 형태로 데이터를 변환
      4) 데이터 탐색
    • 데이터를 이해하는데 목적 -> 통찰
    • 통계적 분석(통계 요인을 이용), 시각적 분석(EDA)
      5) 데이터 모델링 및 모델 구축
    • 통계적 모델링
    • 머신러닝 모델링 (세부단계가 더 존재:뒤에서 언급)
      -> 딥러닝 모델링
      -> [ AI > 머신러닝 > 딥러닝 ]
      6) 시스템 통합
    • 서비스, 모듈, 라이브러리, 보고서
    • 이 부분은 1단계에서 이미 결정
  2. 머신러닝 시스템 종류

  • 지도 학습 : supervised learning
    • 알고리즘에 주입하는 훈련 데이터에 레이블(label, 정답, class)이 포함
    • 1) 분류
      => 붓꽃분류, 스펨필터,..
    • 2) 회귀
      => 중고차 가격 예측
  • 비지도 학습 : unsupervised learning
    • 훈련 데이터에 레이블이 없다
    • 알고리즘은 시스템의 도움 없이 학습을 진행
    • 1) 군집
    • 2) 차원축소, 시각화
    • 3) 연관규칙학습
      => 블로그 방문자 그룹화, 이상치 탐지...
  • 준지도 학습 : semi-supervised learning
    • 레이블이 일부만 존재한다
    • 통상적으로 보면 레이블이 없은 데이터가 다수, 레이블이 존재하는 데이터가 소수
      => 심층신뢰신경망,.. <= 비지도 + 지도 학습의 조합 구성
  • 강화 학습 : reinforcement learning
    • 에이전트 : 학습하는 시스템
    • 환경을 관찰, 행동을 실행, 이에 따른 결과를 보상(긍정적보상:reward,부정적보상:penalty)부여
    • 이를 통해서 에이전트는 가장 큰 보상을 얻기 위한 최적의 정책(policy),전략을 스스로 학습
    • 해당 정책/전략이 주어진 상황에서 어떤 행동을 취해야 하는가를 정의
      => 알파고
  1. 개발환경
  • anaconda
  • jupyter notebook
  • python 3.6 or 3.7
  1. 딥러닝 서버 (차후)

  2. 라이브러리

  • numpy
    • 수학, 과학용 라이브러리
    • 고수준 수학
      • 선형대수학 (백터, 행렬, 선형변환,...)
      • 푸리에변환 (시간의 함수, 연속적 신호등등.. 주파수... )
    • 유사난수 생성
  • scipy : 싸이파이 (함수 알고리즘, 수학식등등 구현)
    • 고성능 선형대수
    • 함수 최적화
    • 신호 처리
    • 특수 수학
    • 통계 분포
    • 회소 행렬등등 => 함수로 알고리즘을 구현해 놓았다
  • scikit-learn : 싸이킷런
    • numpy + scipy

    딥러닝 엔진 -> GPU 사용가능 => 학습 속도 향상 => 결과를 빠르게 보고 => 여러 뱡향 접근
  • tensorflow ( with keras )
  • pytorch
  1. 학습방안(모델구축후)
profile
Let's do it developer

0개의 댓글