본문 바로가기

머신러닝8

XGBoost 알고리즘의 간단한 이해 캐글에서 가장 유명한 알고리즘은 XGBoost이다. 웬만한 대회의 리더보드에는 XGBoost가 최상단에 위치해 있다. 이가 시사하는 바는, Vision 이나 NLP 등의 Specific한 Task를 제외한 일반적인 ML Task에서 가장 범용적으로 잘 동작하는 알고리즘이 XGBoost라는 것이다. 이런 기법은 아직 문제의 해결법이 미숙하거나 숙련도가 높지 않은 도메인의 새로운 문제를 풀 때 가장 먼저 고려되어야 하는 방법이 될 수 있다. 일반적으로 어떤 도메인의 ML 문제를 해결할 때 가장 중요한 것은 정확한 피쳐 엔지니어링을 통한 모델링이다. 또는 샘플링이나 파라미터 튜닝 같은 ML 테크닉이 중요할 수도 있고, 어떤 알고리즘을 사용하느냐가 중요할 수도 있다. 하지만 오늘 소개할 XGBoost는 데이터 .. 2023. 7. 6.
YouTube Recommendation system 트릴로지 리뷰 - [2] YouTube Recommendation system 트릴로지 리뷰 - [1] 이번에 리뷰할 자료는 으로, 2016년에 발표된 것이다. 이 자료는 당시에 나오자 마자 읽어봤던 자료인데(물론 우연이었다), 추천시스템에 막 관심을 가지기 시작했을 때 생애 처음(..)으로 제대로 읽어본 '논문' 비스무레한 것이다. 복잡한 수식도 나오지 않고 intuitive 하면서도 흥미로운 내용이라 지금 읽기에는 무척 재미난 논문이지만, 당시에는 딥러닝은 커녕 머신러닝의 'ㅁ' 자도 모르던 학부생 시절이었기 때문에 끝까지 읽는데 아주 애를 먹었던 기억이 있다. 게다가 2016년에는 추천시스템에 대한 자료 자체가 다소 귀한 편이었기 때문에(물론 지금도 넉넉치는 않다), 개념을 잡아주고 트렌드를 파악하기에 매우 도움이 됐었다... 2020. 2. 4.
YouTube Recommendation system 트릴로지 리뷰 - [1] 본 포스팅은 2010, 2016, 2019에 발표한 유튜브의 추천시스템 자료를 리뷰한 것이다. 3부작이 끝이 아님에도 트릴로지라는 이름을 붙인 것은, 필자에게는 이 자료들이 매트릭스 3부작이나 반지의제왕 3부작 만큼이나 재미있었기 때문(..) 오늘 리뷰할 자료는 으로, 2010년에 발표된 것이다. 유튜브 붐이 일어나던 초창기에 사용된 추천시스템을 살펴볼 수 있다. 하지만 그 철학과 기본 틀은 현재까지도 유효하며, 이제 막 추천시스템을 구축하려는 작은 서비스에서는 여전히 현대적인 추천시스템이라고 할 수 있다. 1. Intro 유튜브 추천시스템을 요약하면, 유저가 유튜브에서 행동한 데이터를 바탕으로 개인화된 비디오를 추천해준다는 것이라고 할 수 있다. 그리고 이 논문은 그 과정에서 직면한 문제점들과 이를 어.. 2020. 1. 31.
[Recommender System] - Autoencoder를 이용한 차원 축소 기법 차원축소에 흔히 사용되는 방법은 SVD와 같은 Matrix Factorization, Eigen value 등의 개념을 활용한 것이다. 특히나 추천시스템에서는 유저나 아이템 단위의 profile에 이러한 차원축소를 유용하게 사용하곤 한다. 유저의 행동정보를 flat하게 펼쳐놓은 vector라던지, 비정형 정보의 embedding을 예로 들 수 있다. 기본적인 차원축소는 원래의 고차원 데이터를 중간 단계의 vector로 표현하고, 이를 다시 원래의 모형대로 완성하는 학습을 거치면 중간 단계의 vector가 축소된 정보를 잘 담고있다는 아이디어에서 출발한다. 가장 널리 알려진 PCA는 원래의 모형대로 학습하는 과정 없이, 선형적인 성질만을 이용하여 데이터의 분산을 최대화하는 차원으로 데이터를 투영시킨다. P.. 2019. 5. 20.
인공뉴런(퍼셉트론, 에이다라인)과 그래디언트 디센트(Gradient Descent)의 개념 및 구현 머신러닝의 핵심 원리1. 인공 뉴런의 개념머신 러닝과 관련된 학문은 초기에 인공 뉴런을 표방하는 것으로 시작되었다. 뇌가 어떻게 일하는지를 이해하려는 노력의 산물이 바로 인공 뉴런이다. 뉴런은 뇌에서 서로 연결되어있는 신경 세포를 의미하는데, 이를 알고리즘으로 해부하면 다음과 같다. 하나하나의 신경세포는 바이너리 출력을 갖는 간단한 논리 게이트를 가지고 있다. 신경세포가 다음 신경세포로 신호를 보내는 임계치를 판단하는 것이 바로 활성함수의 개념이다. (정확히는 활성함수의 아웃풋은 비용함수로 이용되고, 임계함수가 최종 판단의 역할을 한다. 아래의 예제코드에서 활성함수는 new_input, 임계함수는 predict이다. 글을 정독한 뒤 다시 이 문단을 읽으면 이해가 된다) 이 활성함수의 최적의 가중계수를 자.. 2017. 8. 3.
머신 러닝의 개요 - intro 머신 러닝 개요1. 머신 러닝의 유형머신러닝은 크게 비지도학습, 지도학습, 강화학습으로 분류된다. - 지도학습은 또다시 분류, 예측등으로 나뉘게 된다. 회귀를 기준으로 분류를 설명할 때, 회귀선이 바로 분류의 기준이 되는 선을 의미한다. 연속형 결과를 예측하는 경우에서는 회귀선이 예측의 함수를 의미한다. - 강화학습은 상호작용을 기반으로 자신의 성능을 개선하는 학습구조를 의미한다. 행위를 보상함수로 잘 측정할 수 있는 측정 기준에 관한 것이 강화학습에서의 피드백, 즉 보상 신호이다. - 비지도학습은 주로 은닉 구조를 발견하는 용도로 사용된다. 이미 알려진 결과변수나 레이블, 보상함수의 도움을 받지 않고서도 데이터에서 의미있는 정보를 추출해낸다. 군집분석이 가장 대표적인 예로, k-means 등의 알고리즘.. 2017. 7. 29.
R을 이용한 머신러닝 - 4 (로지스틱 회귀모델을 이용한 분류 문제) R에서의 로지스틱 회귀모델을 이용한 분류1. 분류 알고리즘1.1 회귀분석에서의 분류의 기법- y값은 범주형 데이터(그룹 변수)여야 분류가 가능한 수식이 완성됨. 1.2-1 로지스틱 회귀로지스틱 회귀는 독립변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는 통계적 기법이다. 따라서 로지스틱 회귀의 y값은 0~1 사이의 확률이 되는데, 이때의 확률은 이진 그룹에 속할 확률이다. 또한 로지스틱 회귀는 선형 회귀 분석과 다르게, 종속변수가 범주형 데이터이다. - 만약 일반적인 수식 y = b + ax라는 식이 있다고 할 때, 이 식은 y가 0~1로 나오지 않을 수 있음. - 따라서 f(x)의 결과가 0~1 확률로 나올수 있도록 함수를 구성해주는 것이 로지스틱 함수의 아이디어이다. - y에 log를 취해서.. 2017. 7. 14.
R을 이용한 머신러닝 - 3 (분류와 클러스터링 : K-NN, K-means) 분류 & 클러스터링1. 분류 알고리즘1.1 K-NN- 최근접 이웃을 찾아가는 분류 알고리즘. - K는 최근접 이웃의 갯수를 말하는 것. - 지도학습의 일종으로 레이블이 있는 데이터를 사용함. - 예를 들어 K가 1이면, iterate 할 때, 그 데이터와 가장 가까운 Class를 자신의 Class로 하게 됨.\ - 2이면, 자신과 가장 가까운 2개의 데이터의 클래스를 참조하여 자신의 클래스를 결정 - 이웃을 찾을때는 여러가지 거리 측정 방법 중에 주로 유클리디안 거리를 사용함. - feature들이 numerical할 때, 데이터를 표준화시켜주는 것이 좋음. wbcd = read.csv("wisc_bc_data.csv", header = T, stringsAsFactors = F, sep = ",") s.. 2017. 7. 13.