본문 바로가기

머신러닝

(118)
가지치기 가지치기(Pruning)은 의사결정 나무 알고리즘에서 과적합(Overfitting)에 대응하기 위한 대표적 수단입니다. 실제 의사결정 나무 알고리즘을 적용할 때, 나무의 깊이는 얼마나 나아갈지, 최하위 노드의 개수는 몇 개로 할지 등의 하이퍼 파라미터 등을 선택하는데, 어느 정도가 좋은 값인지 저희는 전혀 알 수 없습니다. 다만 미쳤다고 이걸 할 수 있는 최대치로 잡아버리면, 당연히 나무의 가지가 미친듯이 세부적으로 생겨날테고, 이건 학습데이터에 정말 꽉 맞게되는, 과적합이 발생할게 분명하겠지요. 이를 해결하기위해서는 가지들을 좀 잘라서, 모델을 좀 느슨하게 만들 필요가 있습니다. 이렇게하면, 모델의 일반성도 높아질테고, 모델의 무게도 가벼워진다는 장점이 있겠지요. 그렇게 어떻게 가지치기를 할 건지 생각..
의사결정 나무 / 정보 이득 / 이득율 / 지니 인덱스 의사결정 나무(Decision Tree)의 알고리즘 자체는, 누구라도 생각할 수 있을 법한 그런 아이디어입니다. 다만 그 과정 중 '어떤 잣대를 들이밀어 가지를 분기(또는 분할)시킬 것인가'-는 꽤나 고민이 필요한 문제일 겁니다. 어떤 가지가 뻗어나갈 때, 저희는 당연히 뻗어나가는 가지들이 최대한 같은 클래스에 속하는 샘플을 포함하기를 원하겠죠. 이러한 상황을, 저희는 노드의 순도(Purity)가 높다고 말합니다. 가령, 어떤 데이터가 키, 몸무게, 혈액형 등을 특성으로 갖는다면, 키, 몸무게, 혈액형이 노드가 되고, 저희의 목표는 이러한 노드(특성) 중 어떤 놈들을 우선적으로 선택하여 분기를 시작할 것인지, 생각해야하고, 이러한 우선적 선택의 기준의 해당 노드의 순도입니다. 이런 순도가 높고 낮음을, ..
Ordinary Least Squares, OLS 선형 회귀 관련 글을 읽다 OLS formula- 라는 것을 접했는데, 보통의 최소제곱..? 이라고 해석되는 OLS는, 결국 저희에게 친숙한 최소제곱법(Least square method)을 통한 풀이방식 중 하나인 것 같습니다. y = ax +b 라는 식으로 시작되어 문제를 해결하는 선형 회귀 모델은 실제 행렬을 통해 포현하면, Homogeneous coordinate를 통해, y = Xw와 같은 식으로 표현될테고, 이들의 잔차(Residual)는 y - y^ = y - Xw 로 표현되겠지요. 그럼 이런 잔차들의 제곱합 = Sum(y-Wx)^2을 최소화하는게 저희의 문제, 즉 최소제곱법 문제입니다. 이러한 문제는 경사하강법 또는 뉴턴법 등의 다양한 알고리즘으로 풀 수 있을텐데, 이중 가장 Ordinar..
선형 모델 / LDA / 클래스 불균형 머신러닝을 이용한 사업 예측이라는 프로젝트의 복잡한 PPT가 대개는 선형 모델을 이용한 예측이더라-라는 우스꽝 스러운 글과 그림을 어디선가 본 적이 있는데, 막상 찾으려니 안보이네요. 이번 3단원에서는 이 선형 모델으로 이야기를 시작합니다. f(x) = wx + b 라는 수식으로 표현되는 이 모델은, 매우 간단하면서도 머신러닝의 중요한 사상을 담고 있습니다. 머신러닝의 대장격인 딥러닝도 결국은 많은 선형모델을 쌓아올리되 사이사이 비선형성을 추가시킨 개념입니다. 선형 모델은 w,b라는 놈들의 최적해(Optimum solution)을 찾기 위해 최소제곱법(Least square method)를 활용하는데, 그 목적함수(Objective function)은 컨벡스(Convex)한 덕에, w에 대해 미분한 식과..
추론 / 가설 / 공짜 점심은 없다. 머신러닝을 곧이 곧대로 해석하면, 공부하는 기계-라고 생각할 수 있을 것 같습니다. 그런데, 얘들은 대체 뭘, 어떻게 공부한다는 걸까요. 이에 대한 설명에 앞서 저자는 연역(Reduction)과 귀납(Deduction)에 대해 언급합니다. 연역 소크라테스는 인간이다 모든 인간은 죽는다. 따라서, 소크라테스는 죽는다, 귀납 소크라테스는 죽었다. 피타고라스는 죽었다. 노가다김씨는 죽었다. 따라서, 모든 인간은 죽는다. 위의 예시에서 쉽게 알 수 있듯, 연역은 일반에서 특수로 추론하는 것이며, 귀납은 특수에서 일반을 추론하는 것입니다. 그렇다면 저희가 다루는 머신러닝은, 분명한 귀납적 추론으로 학습을 진행하겠네요. 다양한 샘플 데이터에 학습(Fitting)시킴으로써, 세상의 다양한 데이터에 일반화되기를 목적으..
추천사 / 머리말 지금으로부터 약 1년전 처음 머신러닝을 접했을 때에는, 각각의 모델들이 정확히 어떻게 정답을 내놓는가-에 대한 구체적 고민없이 그저 sklearn에 있는 코드 몇 줄을 따라적어봤던 것이 전부인지라, 막연히 '사람들이 머신러닝 머신러닝하드만 신기하네'라고 생각했었습니다. 모델 내부가 어떤 모델링을 따라가는지 조금씩 알게되면서 들었던 생각은, '이게 기존에 하던 수학적/통계학적 모델링이랑 다른게 뭔가?'였죠. 지금도 여전히 머신러닝과 기존의 통계학이 뭐가 다르냐-한다면, 솔직히 잘 모르겠습니다. 그럼 아예 같은건가-라고 생각을 해봐도. 여전히 모르겠습니다. 제 이러한 생각에서, 이 책에서 서술되는 아래의 내용이 인상깊네요. (주: 저자의 의견이 아닌 책에 등장하는 다양한 권위자들의 의견이 종합되어 있습니다...
단단한 머신러닝 해당 카테고리는 '단단한 머신러닝, 조우쯔화 지음'을 읽고, 해당 내용들 중 인상깊은, 또는 재밌었던 내용들을 제가 느낀대로 중얼거리며 적은 글들로 구성됩니다.
Senna's Embedding / Gazetteer feature? Bidirectional LSTM-CRF Model for Sequence Tagging이라는 논문을 읽다가 Senna's embedding, Gazetteer feature이라는 단어가 등장했습니다. 이게 뭔가 했는데 SENNA라는게 NLP Software네요.(...) 그리고 Gazetteer feature는 그냥 지명 사전..? 혹시나 저와 같은 고민을 하시는 분들이 있을까 그냥 간단하게만 정리해보겠습니다. Semantic/syntactic Extraction using a Neural Network Architecture 위 링크를 따라가시면 SENNA가 뭐하는 친구인지 나와있습니다. 간단하게 번역하면 다양한 NLP Task(POS tags, Chunking, NER 등)를 처리할 수 있는 소프트..