2019년 1월 26일 토요일

[인공지능을위한머신러닝알고리즘] Lab 1


   개요
강의(질문) - 복습(필기) - 자료화

출처

https://www.youtube.com/watch?v=0bcATLm-ylk&t=78s

학습목표

  • 인공지능을 달성하기 위한 수단으로써 머신러닝을 이해할 수 있다.
    • 인공지능을 달성하기 위한 수단은 지식공학, 머신러닝이 있다.
  • 머신러닝 알고리즘의 종류와 차이점을 이해할 수 있다.
  • 일상생활 속 머신러닝이 사용되고 있는 예제들을 파악할 수 있다.


   인공지능과 머신러닝

지능
문제를 해결할 수 있는 능력
ex) 문서의 내용에 따라 항목 분류, 병 진단, 바둑

인공지능
지능 작업을 수행할 수 있는 기계의 능력
입력에 적합한 출력을 찾는 컴퓨터

인공지능의 역사

1. Alan Turing(1912~1954) - 튜링
2. 낙관의 시대 AI용어 등장
3. 암흑기 - 범용기계가 아닌 좁은 범위에서 작용하는 인공지능을 만들고자 함
4. 전문가 시스템
5. 암흑기 - 원하는만큼 신뢰할 수도 성능을 내지도 못함
6. 인공지능, 체스 챔피언을 이김
7. 인공지능 DARPA 그랜드 챌린지에서 우승
8. 인공지능, 퀴즈 챔피언을 이김
9. 인공지능, 바둑 챔피언을 이김

인공지능 구현 방법: 합리주의자 VS 경험주의자

인공지능을 만드는 방법은 근원적으로 지식의 근원이 어디서부터 왔을까? 어떻게 생겨나는가? 하는 철학적인 질문에 답하는 것으로 볼 수 있다.

인공지능을 구현하는 방법에는 크게 2가지 방법이 있다. 합리주의자경험주의자이다.

  • 합리주의자/이성주의자
    • 대표적 인물: Mavin Minsky, Noam Chomsky, Descartes
    • Top-down OR 지식공학이라 함
    • 모든 지식을 자명한 공리로부터 연역해낼 수 있다고 주장
    • 사람이 공리와 같은 지식을 넣어주어야 컴퓨터에게 지능이 생길 수 있다고 주장
    • 특정 분야의 전문가나 장인들이 학문 연구, 오랜 실무 경험으로 터득한 지식을 사람이 직접 컴퓨터에게 제공
    • 1980년대 전문가 시스템
  • 경험주의자
    • Andrew ng, Pedro Domingos, David Hume
    • Bottom-up OR 머신러닝이라 함
    • 모든 지식의 원천은 경험이라고 주장
    • 컴퓨터가 데이터로부터 지식을 직접 학습
    • 현대의 딥러닝


머신러닝의 비유

과학의 단계
티크브라헤, 많은 관측과 데이터를 수집함 (빅데이터)
케플러, 데이터로부터 학습 (머신러닝)
뉴턴, 심오한 진리 발견

농작물 재배
씨앗 = 알고리즘
영양분 = 데이터
농부 = 프로그래머
식물 = 프로그램


   머신러닝 알고리즘의 분류

학습의 방법

  • 지도학습(Supervised Learning)
    • 학습 데이터마다 레이블을 가지고 있음
  • 비지도학습(Unsupervised Learning)
    • 학습 데이터가 레이블을 가지고 있지 않음
  • 준지도학습(Semi-Supervised Learning)
    • 학습 데이터가 약간의 레이블을 가지고 있음
  • 강화학습(Reinforcement Learning)
    • 최종 출력이 바로 주어지지 않고 시간이 지나서 주어지는 경우
    • ex) 바둑: 바둑의 한 수 한 수가 주어진다고해서 패배와 승리를 알 수 있는 것이 아니고 어느정도 시간이 지난 후 결과를 알 수 있는 것

지도학습 (Supervised Learning)

  • 주어진 입력, 출력 쌍들을 매핑해주는 함수를 학습
  • D = {X,Y}로부터 F(X)=Y를 만족시키는 함수 F를 학습
    • X의 예) 물체의 속성들, 질량, 온도, 가속도, 부피, 색깔 등.. / 숫자 이미지 파일
    • Y의 예) 물체의 힘/숫자 레이블(0~9)
    • F의 예) 뉴턴 운동 법칙/숫자 자동 인식기
  • 새로운 데이터 X'의 출력을 함수 F를 사용하여 예측
    • F(X)가 이산적 (Discrete)일 때: 분류(Classification) 문제
    • F(X)가 연속적 (Continuous)일 때: 회귀(Regression) 문제
    • F(X)가 X의 확률 P(X)일 때: 확률 추정(Estimation) 문제
  • 보다 정확한 학습을 할 수 있음
    • 딥러닝이 대표적인 예
    • 사용할 수 있는 데이터에 한계가 있음 -> 정답 레이블이 존재하는 데이터는 많이 않음
    • 데이터를 생성하는 데 비용이 많이 듦 -> 정답 레이블이 있는 데이터를 생성하는 데 비용이 많이 듦
비지도학습 (Unsupervised Learning)
  • 입력만 있고 출력은 없는 상태에서 이뤄지는 학습
    • 데이터에 내재되어 있는 고유의 특징을 탐색하고자 함
  • D = {X}로부터 F(X)=X를 만족시키는 함수 F를 학습 <- Y가 없는 상태의 X만 존재, F는 X 고유의 특징을 파악해서 출력으로 내뱉어주는 함수
    • X의 예) 유튜브 비디오
    • F의 예) 비디오 항목 자동 분류기
  • 비지도학습을 위해 클러스터링이 주로 사용됨: 비슷한 데이터끼리 묶음
    레이블이 없는 데이터를 풀어놓고 데이터들의 특성을 바탕으로 하여 비슷한 특성을 가진 데이터를 클러스터링을 하는 방식으로 학습함
  • 지도학습에 비해서 학습하기 어려움
  • 우리 주변에 있는 대부분의 데이터는 레이블이 없음
  • 앞으로 머신러닝이 풀어야할 중요한 숙제
강화학습 (Reinforcement Learning)
  • 결과(출력)이 바로 주어지지 않고 시간이 지나서 주어지는 경우
    • ex) 바둑: 승/패의 결과(Final Outcome)이 바둑 기사가(Agent)한 수 두가마자(Action) 주어지지 않고 시간이 지나고 나서 주어짐. 바둑 기사는 매 순간 바둑판의 상황(State)을 읽고 어떤 수를 두어야 할지 고민함 (Agent가 받는 Reward를 최대화하는 쪽으로)
    • 게임, 미로 찾기 등..
    • 어떤 Action이 최종 출력에 영향을 주었는지 불명확한 문제에 사용됨
  • 강화학습에서 컴퓨터가 계산해야할 중요한 이슈가 있음
    • 매 순간 어떤 Action을 선택해야 하는가?
    • State에 대한 평가 ex) 바둑판의 상황이 어떤지 파악해야 하는 것
  • 우리 주변에 있는 많은 문제들이 강화 학습으로 풀어야 할 문제들
    • ex) 대화-상점에서 주문, 고객 상담 등..
    • 좋은 대학에 입학하기 위한 전략은?
    • 축구를 잘 하는 로봇을 만들려면?

   일상생활 속 머신러닝의 예

Netflix의 추천시스템

  • 온라인 DVD 대여 업체
  • 고객들이 Netflix가 보유하고 있는 영화를 골고루 볼 수 있도록 관리를 해야 함
  • 고객의 취향에 맞는 비디오 추천
  • 고객의 평점, 구매 내역을 활용 -> Collaborate filtering 라는 알고리즘을 사용
미국 국가안보국의 SKYNET
  • 파키스탄의 테러리스트를 식별하여 사살하기 위한 프로그램
  • 5,500만 명의 파키스탄 사람들의 휴대전화 기록을 활용
    • 전화 시간, 길이, 수신자/발신자 정보, GPS, 이동 기록 등
  • 잘못된 알고리즘 설계로 무고한 많은 사람들이 희생되어 비판 받음
등등 다양하게 적용되고 있음


   머신러닝의 구성 요소

데이터 준비

  • 훈련/검증/테스트 데이터 분리


  • 모델 학습에 사용할 수 있는 데이터는 훈련 데이터와 검증 데이터이다.
  • 훈련 데이터:검증 데이터 = 80:20, 70:30, 60:40
  • 검증의 데이터가 되는 대상을 고정시키지 않고 다양하게 변형시키면서 검증하는 과정을 cross valigation이라 함

모델 표현의 방법

  • 의사 결정 트리
    • 기호주의자 (Symbolists)
    • 모든 진행을 기호를 다루는 활동으로 표현함
    • 귀납적 추론, 철학과 심리학, 논리학에서 아이디어를 얻음
  • 신경망 기반
    • 연결주의자 (Connectionists)
    • 신경세포의 연결강도를 통해서 지식을 표현함
    • 지식을 노드들을 연결하는 가중치로 조절하면서 학습을 하게 되고, 학습은 역전파라는 과정을 통해 이뤄지며 알고리즘의 출력을 목표값과 비교한 뒤 노드들의 가중치 연결방법을 계속 바꿔가면서 알고리즘의 출력이 목표값에 가깝도록 학습해나감
    • 두뇌를 분석하고 모방하며 신경과학과 물리학에서 영감을 얻음
  • KNN, 서포트 벡터 머신 
    • 유추주의자 (Analogizers)
    • 기하학적 거리를 사용하여 지식을 표현함
    • 각 데이터들의 거리를 측정해서 이 데이터들이 서로 얼마나 가까운지 판단함. 지식들 사이에 기하학적 유사성을 인식하여 다른 지식들을 추론하는 것.
    • 이 알고리즘의 핵심과제는 지식들이 얼마나 가까운지 판단하는 것
    • 유사성 판단을 근거로 추정하면서 배우며 심리학과 수학적 최적화의 영향을 받음
  • 베이지안 모델
    • 베이즈주의자 (Bayesians)
    • 데이터로부터 학습된 지식은 불확실하므로 확률에 근거하여 추론하는 방식
    • 학습이 확률 추론의 한 형태라고 믿으며 통계학에 뿌리를 두고 있음
  • 유전 알고리즘
    • 진화주의자 (Evolutionaries)
    • 모든 학습은 자연선택의 형태로 표현함. 자연선택을 통해 만들 수 있고 이를 기반으로 컴퓨터로 모방하는 것
    • 컴퓨터에서 진화를 모의시험하며 유전학과 진화생물학에 의존
  • 모델 앙상블
    • 여러 알고리즘의 결과를 조합하여 하나로 취합하는 방식을 뜻함

모델 평가 방법

  • 에러의 제곱 (Squared Error)
    • sum{y - f(x)}^2
    • y: 정답 값, f(x): 모델의 예측 값, y-f(x): 에러
    • 주로 회귀문제에 사용
    • 이 값이 낮아지는 방향으로 모델을 학습시켜야 함
  • 정확도 (Accuracy)
    • 맞힌 테스트 데이터 개수/전체 테스트 데이터 개수
  • 우도 (Likelihood)
    • log_2(P(y))
    • y: 정답 레이블, P(y): 정답 레이블에 대해 확률을 추정한 것
      확률 값을 그대로 사용하는 것이 아니라 log를 씌워서 사용하는데, 이유는 log의 값이 점진적으로 증가하는데, P(y)의 값 또한 증가해야 하므로 P(y)가 증가하는 방향은 log(P(y)가 증가하는 방향과 같기 때문
    • 확률 추정문제에 주로 사용
    • 모델이 예측하고자하는 레이블의 log 확률로 평가함
    • 이 값이 높아지는 방향으로 모델을 학습시켜야 함
  • 정밀도와 재현률 (Precision and Recall)
    • 정보 검색에서 주로 사용
  • 엔트로피 (Entropy)
    • 주로 Cross 엔트로피가 많이 사용
    • Cross Entropy, 정답 레이블의 확률과 정답 레이블에 대해 내가 예측한 확률 사이의 거리를 측정
  • 사후 확률 (Posterior Probability)


댓글 없음:

댓글 쓰기