본문 바로가기

분류 전체보기195

[기초통계 정리 3] - Probability, Bayes' Rule Probability, Likelihood의 이론적 배경을 공부했다면, 이제 Conditional Probability와 같은 확률의 중요한 개념과 함께 베이즈 이론을 공부해야 한다. 본격적으로 확률과 베이즈 이론에 대해 공부하기 전에, 순열과 조합에 대한 학창시절의 기억을 상기시켜야 한다. Probability, Likelihood에 대한 설명 - Combinations : 조합 서로 다른 N개에서 n개를 뽑는 경우의 수를 말한다. 고등학교 시간에 배웠던 그 조합이 맞다. 식은 아래와 같이 나타낼 수 있다. - Permutations : 순열 N개 중에 n개를 뽑아 나열하는 경우의 수이다. 조합에서 중복을 허용한 것과 동일하다. - Conditional Probability : 조건부 확률 Probab.. 2018. 8. 14.
영화 이야기 : 20년대의 할리우드 영화 내러티브라는 무기를 장착한 영화는 본격적으로 예술산업으로 확장하기 시작한다. 현재에도 세계 영화계를 주름잡고 있는 할리우드는, 1920년대에는 영화산업이 본격화되는 공장처럼 기능하였다. [영화의 역사 이야기 시리즈] [1] 영화의 탄생[2] 볼거리로서의 영화[3] 1차 대전 전후의 할리우드 영화[4] 20년대의 할리우드 영화[5] 30~40년대의 할리우드 영화[6] 2차 대전 전후의 할리우드 영화[7] 독일 표현주의 영화, 소비에트 영화[8] 프랑스의 아방가르드와 시적 리얼리즘[9] 네오 리얼리즘과 뉴 이탈리안 시네마[10] 50년대 이후의 할리우드 영화 1920년대에는 기존의 독립 영화사들이 주류 영화사로 발전하였다. 그러나 이와 경쟁했던 영화 특허권 회사는 살아남지 못했다. 유니버설, 워너브라더스, .. 2018. 8. 12.
[기초통계 정리 2] - Probability, Likelihood, MLE와 Python 구현 Deep Learning까지 가지 않더라도, 대부분의 머신 러닝의 개념에서는 확률과 우도의 개념이 빈번하게 등장한다. 그래서 기초 통계를 공부하던 도중, Probability와 Likelihood의 개념을 조금 더 자세하고 천천히 살펴보았다. 본 포스팅은 확률과 우도에 대한 기초적인 개념을 공부하고, 이를 간단한 Python 코드로 짜본 것이다. 1. Random Variable : 확률 변수 - 확률 변수의 정의 일반적으로, 변수라고 함은 특정한 하나의 숫자를 대표하는 것이다. 반면 확률 변수는 나올 수 있는 값들이 확률적 분포를 가지는 것이다. 머신 러닝에서의 확률 변수는 특정한 Vector, 혹은 숫자를 생성하는 기계에 비유할 수 있다. 확률은 0에서 1사이의 값으로 표현하지만, 확률 변수는 실수의.. 2018. 8. 5.
[IntelliJ PyCharm] - Anaconda env 개발환경 세팅하기 Anaconda 혹은 virtualenv로 python 가상환경을 구축했다면, 이를 Pycharm의 개발환경과 연결해주는 작업을 해야 한다. 필자는 Pycharm처럼 제법 무거운 IDE들을 사용하면서도 path를 잡아놓거나 자동완성 기능을 잘 사용하지 않았었다(..) 가상환경을 중구난방으로 마구 생성해놓고 코딩을 하기도 했었고, notebook으로 코딩하는 것에 익숙해진 탓도 있었고, 자동완성을 사용하지 않아야 실력이 는다는 말도 안되는 믿음도 있었다. 어쨌든 Pycharm에서 가상환경의 경로를 잡는 작업은 다음과 같다. (본 포스팅은 conda로 가상환경을 설치한 사용자를 기준으로 진행한다) 1. 가상환경 경로 추출 우선 terminal을 열어 "conda env list"로 가상환경들의 경로를 추출해.. 2018. 8. 4.
[Recommender System] - Python으로 Matrix Factorization 구현하기 Matrix Factorization 혹은 Matrix Complementation과 관련된 수많은 변형 알고리즘들이 존재한다. 하지만 본질적으로는 행렬을 분해하고 분해한 행렬을 변수로써 학습하는 것이다. 업데이트 방법에 따라 NNMF, ALS 등으로 나뉘고, cost를 정의하는 방식에 따라 Implicit, explicit data를 처리하는 다른 알고리즘이 된다. 그래서 본질을 제대로 이해하고 있다면, 최근 Kaggle 등에서 유행하고 있는 여러 Matrix Factorization의 최신 알고리즘도 크게 다르지 않다는 것을 알 수 있다. 본 포스팅에서는 Python 코드를 이용하여 banila-MF를 구현할 것이다. (Matrix Factorization에 대한 이론적 설명 참고) 1. Basic .. 2018. 8. 1.
[기초통계 정리 1] - 통계 용어 공부를 하면 할 수록 기초학문이 중요하다는 것을 깨닫고 있다. 기초 통계학의 내용 중, 명쾌하게 문장으로 요약하여 정리해두면 도움이 될 만한 것들을 글로 나타내보고자 한다. 아무리 쉬운 내용이라도 정의를 곱씹어보고 문장으로 정리하게 되면, 더 깊은 내용을 이해하는 데 도움이 될 것이다. - Inferential Statistics (추론 통계학) 추론 통계의 관점에서 통계학은, 표본을 통해서 모평균 등의 모수의 정보를 추정하는 것이다. 이를 신뢰도라는 개념을 통해서 검정하게 된다. 모집단의 정보인 평균, 분산 등을 통계학에서는 parameter 라고 한다. 예시) 출구조사로 모집단을 추론 - Random Variables (확률 변수) 관찰하기 전까지는 알 수 없는 값을 말한다.변수는 변수인데, 아직 관.. 2018. 7. 30.
[Recommender System] - MF(Matrix Factorization) 모델과 ALS(Alternating Least Squares) 추천 알고리즘 중에 가장 널리 사용되는 알고리즘은 단연 CF이다. 그중에서도 단일 알고리즘으로써 가장 성능이 높은 것은 단연 Model Based CF인 Matrix Factorization 계열의 알고리즘이다. (CF 기반 모델링에 관한 내용 참고) 이번 포스팅에서는 MF와 ALS에 대해 공부해보고, Implicit feedback 상황에서 ALS를 적용하는 방법을 살펴볼 것이다. 포스팅의 내용은 [추천 엔진을 구축하기 위한 기본서 - Suresh K.Gorakala]와 논문 그리고 이곳을 참고하였다. 1. Matrix Factorization 우선 MF 모델은 user-item 의 matrix에서 이미 rating이 부여되어 있는 상황을 가정한다. (당연히 sparse한 matrix를 가정한다) MF.. 2018. 7. 16.
Softmax Classifier의 이해 & Python으로 구현하기 이번 포스팅은 Softmax 함수를 이용하여 다중 클래스를 분류하는 방법과 모델 학습에 대해 개인적으로 이해한 내용을 바탕으로 작성한 것이다. Softmax Regression, 혹은 Softmax Classifier를 이해하기 위해서는 Regression, Logistic Regression에 대한 이해가 선행되어 있어야 한다. 1. Softmax 알고리즘의 이해 회귀분석의 개념을 이진 분류문제로 확장한 Logistic Regression(Logistic Regression 혹은 Linear Regression에 대한 설명 참고)의 원리를 생각해보자. input에 대한 연산 결과를 0~1 사이의 확률값으로 표현하고, 이를 통해 두 가지 중에 하나로 결론을 내리는 방법이 바로 로지스틱 회귀이다. 소프트맥.. 2018. 7. 8.
[Recommender System] - Spark로 연관 규칙(Association Rule) 구현하기 딥 러닝, 하이브리드 CF, FM 등의 최신 추천 알고리즘이 유행이지만, 여전히 적지 않은 곳에서는 가장 기초적인 알고리즘을 잘 활용하고 있다. 그 중 하나가 바로 연관 규칙(Association Rule)이다. 이번 글에서는 추천 시스템에서 사용되는 가장 기초적이면서도 활용성이 높은 알고리즘인 Association Rule에 대해 설명하고, 이를 두 가지 버전의 Spark (PySpark, Scala) 언어로 구현하는 예제를 설명하도록 하겠다. 1. 연관 규칙의 개념 연관 규칙, 혹은 연관성 규칙(Association Rules)은 어떤 항목이 어떤 항목을 동반하여 등장하는 지에 대한 연구이다. 주로 유통 거래 데이터 구매항목들 사이의 연관성에 대해 규칙을 추론하였기 때문에, 장바구니 분석이라고 불리기.. 2018. 6. 25.
영화 이야기 : 1차 대전 전후의 할리우드 영화 앞선 포스팅들에서는 영화의 탄생, 그 후의 '볼거리로서의 영화'에 대해 이야기하였다. 영화는 드디어 볼거리로서의 영화를 벗어나기 시작한다. 오늘은 1차 세계대전 전후의 할리우드 영화의 중요성과 그 발전상에 대해 얘기해보고자 한다. [영화의 역사 이야기 시리즈] [1] 영화의 탄생[2] 볼거리로서의 영화[3] 1차 대전 전후의 할리우드 영화[4] 20년대의 할리우드 영화[5] 30~40년대의 할리우드 영화[6] 2차 대전 전후의 할리우드 영화[7] 독일 표현주의 영화, 소비에트 영화[8] 프랑스의 아방가르드와 시적 리얼리즘[9] 네오 리얼리즘과 뉴 이탈리안 시네마[10] 50년대 이후의 할리우드 영화 1차 세계대전이 발발하자, 전쟁은 유럽에 영향을 미쳤다. 그 영향은 세계적으로 배급되는 유럽영화를 축소시킨.. 2018. 6. 25.