[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 벡터
- $sim(X, Y) = \frac{X \cdot 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: 윈도우의 크기
- $(f*g)(t)=\int(\gamma)g(t-)d\gamma$
윤곽성 검출
- 픽셀의 급격한 변화를 검출
- 예
- Canny 윤곽선 검출기
- 가우스 값으로 채워진 윈도우에 학성곱을 적용하여 노이즈 제거
- Canny 윤곽선 검출기
코너 검출
- 이미지 인식에 중요한 피처의 특징
- 회전불변성
- 크기불변숭
- 평균이동 불변성
- 이미지 인식에 중요한 피처의 특징
주성분 분석을 통해서 고유 얼굴 걸출기 개발
- k값을 이용하여 얼굴 검출
CNN
- https://cs.stanford.edu/people/karpathy/convnetjs/demo/mnist.html
- 용어
- kernel
- 스트라이드
- 풀링
- activation function
- 완전 연결 레이어
8장 문제 해결 법
- 문제 인식
- 학습시 잘 되는데 실제 모델의 성능이 잘 나오지 않음
- 과대적합
- 데이터에 적합하 모델은 무엇인가?
- 학습시 잘 되는데 실제 모델의 성능이 잘 나오지 않음
과대적합
- 학습 평가 데이터 분할
- Nomalization
- Early Stopping: 조기 종영
- 힌튼교수 왈: 아름다운 공짜 점심
- Drop-out
- 모델을 간단하게 함
- 불필요한 복잡한 데이터 학습 자제
좋은 모델 찾는 방법
- 간단한 모델 적용
- 신속
- 성능의 기준선 마련
- 오류 파악이 쉬움
- 시각화
- 모델의 최대 성능 파악
데이터 고려사항
- feature가 많다면
- 학습이 느림, 과적합 우려
- 특성 선택 방법
- 카이제곱 선택법
- 피처와 성능간의 통계학적 독립성 테스트
- 상호-정보 피처 선택법
- 피처와 결과의 상관관계 파악
- 검증셋 성능
- 카이제곱 선택법
- 데이터 부족시 고려사항
- 전이 학습
- 데이터 치우침
- log 적용
- loss function 수정
- $loss = \sum_{자주발생데이터}(\hat{y}-y)^2 + \alpha\sum_{드문데이터}(\hat{y}-y)^2$
- 학습 속도
- Vectorization
- 하드웨어
- GPU
- 비디오메모리는 크면 클수록 좋음
- 단정밀도에 최적화된 GPU로도 충분
- GPU
9장. 환경 구성
- CUDA: NVIDIA용 라이브러리
- Open-CL: 애플에서 개발하고 Khronose Group에서 관리하는 헤테로 연산 플랫폼용 개발 라이브러리