728x90
반응형

Machine Learning/[Kaggle Course] ML (+ 딥러닝, 컴퓨터비전) 30

[Kaggle Course] Dropout, Batch Normalization

딥러닝의 세계에는 dense layers 외에도 더 있습니다. 12종류가 넘는 layer를 한 모델에 추가할 수도 있죠 전처리 또는 변형을 다른 방식으로 한다거나, 뉴런 간 연결 관계를 새롭게 정의할 수도 있고요 이번 시간에는 특별한 두 종류의 layers에 대해 알아봅니다. 이들은 neurons을 가지고 있지 않지만, model을 개선시켜주는 기능을 추가해주죠. Dropout Layer overfitting을 수정할 때 사용 traindata 속 가짜 패턴을 학습한 neuron으로 인해 생긴 overfitting을 처리해보려 합니다. '가짜 패턴'을 알아채기 위해선 network는 종종 특정한 가중치들의 조합들, 즉 가중치의 'conspiracy'에 의존합니다. 너무 구체적이면, 망가지기 쉬우므로 하나..

[Kaggle Course] Overfitting, Underfitting → early_stopping + capacity↑

이번 튜토리얼에서는 아래의 두 가지에 대해 배우게 됩니다. - learning curve 해석 - 그 해석을 바탕으로 model development 특히, learning curve의 underfitting 또는 overfitting의 요소를 찾고 이를 개선하기 위한 방책을 세우는 것이죠. Interperting the Learning Curves train data에는 두 가지의 정보가 있습니다. - signal: 일반적으로 생기며, 새로운 data에서도 모델이 좋은 예측을 하도록 해줍니다 - noise: 오직 train data에서만 참값을 보입니다ㅠ (그렇다고 noise가 도움되지 않는 건 아닙니다...!) noise는 실세계의 데이터 또는 model에 부수적이고 도움되지 않는 패턴으로 인해 발생..

[Kaggle Course] Stochastic Gradient Descent

이전까지, fully-connected networks를 만드는 법에 대해서 배웠습니다. 무조건 모든 network의 가중치는 무작위로 설정했고요. 이 상태는 network가 아무 학습도 되지 않은 상태입니다. 이번 시간에는 nerual network를 훈ㄹ녀시키는 방법을 배우게 됩니다. 모든 기계학습 일이 그렇듯, training data부터 시작합니다. training data 속 각각의 example은 몇가지 features(입력값)과 하나의 예상되는 target(출력값)으로 구성되어 있습니다. network를 훈련한다는 것은 features를 target으로 변형시키는 방식을 이용해 가중치를 조절하는 것입니다. 80 Cereals dataset으로 'sugar', 'fiber', 'protein'..

[Kaggle Course] Deep Neural Networks _ nonlinear with ReLU

이번 시간에는 어떻게 복잡한 관계로 엮인 깊은 신경망(deep nets)를 표현할 수 있는 nerual networks를 생성하는 법에 대해 배우게 됩니다. "Modularity"가 주요 아이디어입니다. 이는, 더욱 간단한 functional units로부터 comples network를 생성해줍니다. 이전 시간에 linear unit이 어떻게 linear function을 계산하는지 보았습니다. 이제 이러한 single unit을 어떻게 결합하고 수정할 수 있는지 봅시다 Layers neurons는 layer로, layer가 쌓여 neural network가 됩니다. 공통된 입력값을 사용하는 linear unit을 합치면 dense layer을 얻을 수 있습니다. 사진 설명: A dense layer ..

[Kaggle Course] A Single Neuron _ Define a linear model

Introduction Tensorflow와 Keras를 앞으로 이용하여 배우게 될 것들은, fully-connected neural network 아키텍쳐 생성하기 기초적인 머신러닝(regression, classification) 기법에 neural nets 적용하기 stochastic gradient descent로 neural net 훈련하기(train) dropout, batch normalization 등의 기법으로 성능 향상시키기 What is Deep Learning? 수없이 쌓인 계산(deep stacks of computations)해야 할 때 그 중의 특징을 잡아내어 기계에 학습시키는 것 계산의 양은 딥러닝 모델에 어떻게 현실의 데이터 속 복잡하고 계층적인 패턴을 적용 가능하는가에 달..

[Kaggle Course] How to prevent "Data Leakage"

Introduction Data leakage (or leakage)는 training data에 target에 대한 정보가 포함되어 있음에도, 비슷한 데이터에서 예측하지 못할 때 발생합니다. 즉, leakage는 model로 decision(결정)을 내리기 시작할 때까지는 정확해보이지만 이후에는 model이 매우 부정확한 값을 산출하게 합니다. leakage에는 두 종류가 있습니다. Type 1) Target Leakage 예측 시에 사용할 수 없는 data가 포함된 상태에서 예측을 할 때 발생 그러니 데이터를 이용할 수 있는 타이밍이나 정방향 순서대로(chronological order)의 관점에서 생각해봐야 함 위의 표로 pneumonia에 걸릴 사람이 누군인지 예측해봅시다. 사람들은 회복을 위해 ..

[Kaggle Course] XGBoost (gradient boosting) + Ensemble method

Introduction 지금까지 random forest model로 예측했지요. 그 model은 single decision tree보다는 훨씬 나은 성능을 보여줍니다. 수많은 decision tree에 대해서 예측을 한 뒤 평균을 계산하니깐요. random forest같은 방법을 "ensemble method"라고 부릅니다. Ensemble methods는 몇 개의 모델들에 대한 예측을 결합하는 것입니다. random forest의 경우 여러 tree를 사용하여 예측한 뒤 결합했으니 이에 포함되는 것입니다. 이제 우리는 또다른 ensemble method를 배워볼 것입니다. 바로 gradient boosting. Gradient Boosting 반복적으로 모델을 ensemble에 더하는 cycles을..

[Kaggle Course] Cross-Validation(교차검증)

Introduction 지금까지 validation(검증)(or holdout) data set을 사용하여 model을 quality(품질)을 측정했습니다. 그러나 이같은 접근 방식에는 몇가지 단점이 존재합니다. 예로 5000개의 행(row)가 있는 data set이 있다고 가정해봅시다. 일반적으로 데이터의 약 20%을, 또는 1000개의 행을 validation data set으로 둡니다. 이는 모델의 점수(MAE가 낮은지 확인하기)를 결정할 때 운이 따릅니다.(it leaves some random chance) 즉, 모델이 1000개의 행 중 한 집합에서 잘 수행될 수 있지만 다른 1000개의 행에서는 정확하지 않을 수 있죠. 극단적인 경우를 가정한다면, validation set에 데이터가 오로지..

[Kaggle Course] Pipelines + How to make and submit CSV in Kaggle

Pipeline 데이터 전처리 과정 중 거치는 단계. missing values를 가진 column과 categorical data를 동시에 가지고 있는 data를 쉽게 다룰 수 있음. Pipeline의 장점 1. Cleaner Code 전처리의 각 단계에서 data를 매번 수정하기엔 복잡할 수 있음. pipeline이 있으면, 하나하나 train data와 valid data의 각 과정마다 data 전처리를 따로 해주지 않아도 됨 2. Fewer Bugs 전처리 과정 중 한 단계를 깜박하고 skip하거나 잘못 적용할 경우가 줄어듬 3. Easier to Productionize 한 모델을 prototype에서 완벽한 모델로 바꾸는 게 실제로 어려움. 그런 어려움을 여기서 다 다루진 못해도 pipelin..

[Kaggle Course] Categorical Variables

Categorical Variables란? 설문조사의 항목처럼 제한된 가짓수로 선택지를 숫자로 대체 표현가능한 변수. 변수에 대해 범주를 만들어 그 안에 포함시켜 분류하기 위해. 예로, survey에서 "never"==0, "rarely"==1, "most days"==2, "every day"==3, 이렇게 표현 가능 Categorical Variables를 다루는 3가지 방법 1. Drop Categorical Variables (the easiest way) 이 방법은 해당 column들이 유용하지 않은 정보를 포함할 때만 쓸모있음. 2. Label Encoding 각각 다른 정수를 부여하여 구별시키기 위의 예의 경우 never부터 every day 항목까지 순차적으로 정렬할 수 있음. 순위를 부여..

728x90
반응형