인공지능-머신러닝-맛보기04

아래의 글은 elice(엘리스) 에서 진행한 인공지능/머신러닝 맛보기 수업을 듣고 개인 공부를 목적으로 정리한 글입니다.
학습자료가 따로 있기에 그림이나 예제등 자세한 내용 없이 키워드와 기억하고 싶은 내용, 궁금해서 따로 검색해 놓은 내용만 적어놓은 것임을 밝힙니다.


이상 탐지 & 추천 알고리즘

정규분포

  • Normal Distribution
  • Gaussian Distribution

자연에서 발생하는 데이터를 설명하는 방법 중 하나

  • 사람의 키
  • 기계에서 만들어내는 물건들의 크기
  • 측정치(오차 포함)
  • 시험 점수

보통 Bell curve를 그린다.
이런 분포들을 “정규분포를 따른다” 라고 한다.

초기에 Bean Machine - “Quincunx” or “Galton Box” 를 활용해 밑에 떨어진 공의 개수가 정규분포를 따른다는 사실을 도출해냄

σ(sigma) = Standard deviation, “표준 편차”
이전 강의에 나온 분산은 sigma의 제곱이다.(σ²) - 데이터가 퍼져있는 정도
작을 수록 데이터가 덜 퍼져있다는 것을 의미.
N(μ, σ²)
위의 N은 Normal Distribution을 나타낸다.
평균 μ(mu-뮤)는 정확히 중간을 가리킨다.

1차원 데이터를 히스토그램을 활용해서 시각화하는 방법이 있다.
히스토그램이 정규분포를 표현한다.

트레이닝한 모델을 활용해서 원하는 데이터가 나올 확률이 적다면 이상점(anomaly) 으로 판단할 수 있다.

Gaussian Mixture Model (GMM)

두 개 이상의 데이터 모델이 섞여 있는 경우
어떤 데이터가 있을 때 각각의 모델에 매치될 확률을 찾을 수 있다.
2차원에 점을 찍으면 등고선처럼 구분할 수 있다.
분산이 크면 등고선이 넓고 각각의 모델은 클러스터로 구분이 된다.
평균(등고선의 정상)에 가까울수록 해당 모델일 확률이 높아진다.

협업 필터링(Collaborative Filtering)

두 가지 방법 이 있다.

  1. 유저 기반 협업 필터링 - 예)당신과 비슷한 사람은 이 영화를 봤으니 당신도 좋아할거에요.
  2. 아이템 기반 협업 필터링 - 예)당신이 봤던 영화들과 비슷한 영화들은 당신도 좋아할거에요.

유저 기반 협업 필터링

  1. 유저간의 유사도를 구한다.(벡터를 활용 - 각각의 데이터 벡터를 모아 매트릭스(matrix)를 만든다)

    • 코사인 유사도 : 두개의 벡터 사이에 각도를 본다. 각도가 작을 수록 높은 유사도를 갖는다.
  2. 유사도를 고려하여 각 영화에 대해 다른 유저의 추천도를 계산한다.

    • 각 유사도를 활용해 각 유저별 점수의 평균 수치를 활용한다.

아이템 기반 협업 필터링

다른 사람에게 선택 됐는지 안됐는지를 통해 수치를 계산 하는 것

  1. 아이템간의 비교(유저간 비교와 비슷하지만 벡터를 아이템별로 만든다)
  2. 각 아이템의 유사도를 고려하여 아이템을 추천한다.

평가 기반

평가를 기반으로 계산
평가 수치를 가지고 계산하는 것으로 위의 단순하게 1과 0(영화를 봤는지 안봤는지)으로 나누는 것보다 더 효율적일 확률이 높다.
마찬가지로 유저 기반 협업 필터링과 아이템 기반 협업 필터링으로 나눌 수 있다.
중요한 것은 평가를 하지 않았다를 0으로 두면 안된다는 것이다.
평가하지 않은 것은 어떤 평가를 할 지 모르는 것이고 0을 주는 것은 나쁘게 평가하는 1과 비슷하므로 엄연히 다른 값이다.
평가가 되지 않은 Missing Data는 보통 평균값을 대입하고, 수치에 변별력이 없다고 판단되면 다른 방식 혹은 데이터마다 알맞은 값을 넣어서 계산을 한다.


참고 해볼만한 자료

  • Netflix Prize Data

총정리

  • 머신러닝

    • 지도 학습
      • Linear Regression(선형 회귀법)
      • Classification(분류) - Naive Bayes(나이브 베이즈)
    • 비지도 학습
      • Dimension Reduction(차원축소) - PCA
      • Clustering(클러스터링) - K-Means
        • Hard Clustering : K-Means
        • Soft Clustering : GMM
    • 추천 시스템
      • Collaborative Filtering(협업 필터링)
  • 안배운 개념

    • Reinforcement Learning(강화 학습)
    • Optimization(최적화)
    • Batch Learning(한번에 배운다)
    • Online Learning(천천히 배운다)
    • SVM Support Vector Machine(서포트 벡터 머신) - 지도 학습 분류에 좋다
    • Deep Learning(딥러닝) - 보통 지도 학습의 분류에 사용
    • 그 외에 무수히 많다.

마치며

그 동안 4번의 강의를 통해 인공지능과 머신러닝에 대한 대략적인 개념과 활용범위를 배웠습니다.
사실 지금 당장 사용할 지식을 배운 것은 아닙니다. 그러나 이번 코스를 통해 개발자와 수학에 대한 연결고리를 느낄 수 있었고, 앞으로 개발자 커리어에 대한 고민을 많이 해볼 수 있는 기회였습니다.
언제나 그렇듯 지식은 한번에 새로운 것들을 이루기 위한 것이라기 보다는 기반으로 삼아 응용하고 발전하기 위해 활용되는 것으로도 충분히 가치가 있다고 생각합니다.
앞으로도 다양한 분야의 지식을 쌓고 발전시켜 폭넓게 사고할 수 있는 개발자가 되려고 노력할 것입니다.

Share 0 Comments