[til]처음시작하는 머신러닝 6-9장

7장 추천

유사도

  • Jaccard similarity coefficient: 두 집합의 원소의 유사도
    • 개념
      • 두 집합 A, B
      • $\frac{|A \cap B|}{|A \cup B|} $
      • 두 집합의 교집합 원소 수와 합집합 원소 수의 비율
    • 특징
      • 희소 벡터로 구성된 데이터에 대한 집단 비교에 유용함
  • Cosine Similarity: 방향
    • $sim(X, Y) = \frac{X \cdot Y}{||X||\ ||Y||}$
      • X, Y 벡터
  • Edit Distance: 작업 연산 수
    • 편집 연산의 수
      • Insert(삽입)
      • Delete(삭제)
      • Substitution(대체)
      • transposition(전치)
      • 슈퍼맨 1, 슈퍼맨 2: 2 (1삭제, 2삽입)

Recommendation

내용 기반 추천

  • 장점
    • 사용자 정보 없이 추천 가능
    • 이해하기 쉬움
  • 단점
    • 독특한 아이템 추천이 어려움
    • 신규 사용자 추천 어려움

CF 추천

  • 사용자 기반 협업 필터링
    • 다른 사람의 구매 이력을 이용하여 추천
  • 상품 기반 협업 필터링

  • 상품 사용자 및 별점의 유틸리티 행렬을 이용

  • 상품기반 협렁 필터링 계산식

$$ r_{xi} = b_{xi} + \frac{\sum_jS_{ij}(r_{xj}-b_{xj})}{\sum_jS_{ij}} \\
b_{xi}=\mu+b_x+b_i $$

  • $r_{xi}$: 사용자 x의 i번째 상품 별점
  • i: 사용자 x의 별점이 없는 상퓸
  • $S_{ij}$: 상품 i와 j의 유사도
  • j: $S_{ij}$가 높고 사용자 x의 별점 정보가 존재하는 상품
  • $b_{xi}$: 사용자 x의 삼품 i에 대한 별점 편향
  • $\mu$: 전체 상품의 별점 평균
  • $b_{x}$: 사용자의 별점 편향
  • $b_{i}$: 상품 i의 별점 편향

LFD: Latent Factor Model

  • 잠재 요인 모델
  • 특잇값 모델(SVD, Singular Value Decomposition)
    • 행렬 하나를 여러개 행렬의 곱으로 분해하는 방법

7장 이미지 인식

  • 이미지는 특정 좌표 값을 반환하는 함수로 볼 수 있다.
  • 이산함수의 적분은 합산이다.
  • 이미지는 이산함수이다.

  • 이미지 필터링: 기존 이미지의 픽셀값을 선형적으로 조합하여 새로운 값으로 변환하여 새로운 이미지를 만드는 것
  • 3X3 픽셀의 조합: 윈도우 or kernel

    • 주로 사용하는 크기
      • 3X3 or 5X5
  • 이동평균 필터링

    • 커널의 모든 값 합산/커널크기(3X3)
    • 평균값: Smoothing 효과
  • 이미지 처리의 대표선수

    • Convolution
    • 수식
      • $(f*g)(t)=\int(\gamma)g(t-)d\gamma$
        • t: 함수 입력 값
        • $\gamma$: 임의의 값
      • $(f*g)(n)=\sum_{m=-M}^M f(n-m_g(n)$
        • 이산함수의 적분은 합산이다.
        • n: 윈도우 중심
        • 2M: 윈도우의 크기
  • 윤곽성 검출

    • 픽셀의 급격한 변화를 검출
      • Canny 윤곽선 검출기
        • 가우스 값으로 채워진 윈도우에 학성곱을 적용하여 노이즈 제거
  • 코너 검출

    • 이미지 인식에 중요한 피처의 특징
      • 회전불변성
      • 크기불변숭
      • 평균이동 불변성
  • 주성분 분석을 통해서 고유 얼굴 걸출기 개발

    • k값을 이용하여 얼굴 검출

CNN

8장 문제 해결 법

  • 문제 인식
    • 학습시 잘 되는데 실제 모델의 성능이 잘 나오지 않음
      • 과대적합
    • 데이터에 적합하 모델은 무엇인가?

과대적합

  • 학습 평가 데이터 분할
  • Nomalization
  • Early Stopping: 조기 종영
    • 힌튼교수 왈: 아름다운 공짜 점심
  • Drop-out
    • 모델을 간단하게 함
    • 불필요한 복잡한 데이터 학습 자제

좋은 모델 찾는 방법

데이터 고려사항

  • feature가 많다면
    • 학습이 느림, 과적합 우려
    • 특성 선택 방법
      • 카이제곱 선택법
        • 피처와 성능간의 통계학적 독립성 테스트
      • 상호-정보 피처 선택법
        • 피처와 결과의 상관관계 파악
      • 검증셋 성능
  • 데이터 부족시 고려사항
    • 전이 학습
  • 데이터 치우침
    • log 적용
    • loss function 수정
      • $loss = \sum_{자주발생데이터}(\hat{y}-y)^2 + \alpha\sum_{드문데이터}(\hat{y}-y)^2$
  • 학습 속도

9장. 환경 구성

  • CUDA: NVIDIA용 라이브러리
  • Open-CL: 애플에서 개발하고 Khronose Group에서 관리하는 헤테로 연산 플랫폼용 개발 라이브러리
작성자: 김태완
김태완 avatar
작성자: 김태완
1999년 부터 Java, Framework, Middleware, SOA, DB Replication, Cache, CEP, NoSQL, Big Data, Cloud를 키워드로 살아왔습니다. 현재는 빅데이터와 Machine Learning을 중점에 두고 있습니다.
E-mail: taewanme@gmail.com