본문 바로가기

Study doc.

(35)
[Python] 파이썬 클래스, 이거 한 번만 읽어봐! Q. 야, 클래스가 뭐야? 왜 필요해? A. 썼던 내용들 반복 안하려고! 미리 정의해두고 필요할 때만 호출해서 쓰려고! Q. 그럼 그냥 함수를 만들어서 쓰면 되잖아!! A. 맞아, 근데 클래스가 함수들을 모아둔거야! 머신러닝 알고리즘 써봤어? 로지스틱 알고리즘 사용할 때 model = LogisticRegression() 쓴거 기억나? 이게 사실은 LogisticRegression 이라는 클래스를 호출해서 model이라는 객체에 넣은거야. 그리고 model.fit(X_train, y_train) 했었지? 여기서 fit이 LogisticRegression 클래스 안에 있던 하나의 함수였던거지! Q. 야, 어떤 사람이 클래스 쓴거 봤는데 init이랑 양옆에 underbar( __ )랑 self랑 처음 보는 ..
[cs231n] Recurrent Neural Network (RNN) 지난 시간까지 딥러닝의 한 분야였던 CNN에 대해서 공부했습니다. 이미지를 처리할때 어떻게 하는지, 어떤 layer를 어떤 구조로 얼마나 쌓을지 등을 공부했었죠! 오늘은 딥러닝의 또 다른 방법인 RNN에 대해서 알아볼게요. CNN은 Neral Network에서 Convolution을 적용한 개념이었다면, RNN은 NN에서 Recurrent를 적용한 개념이라고 생각하면 될 것 같습니다. recurrent 라고 하니 약간 재귀적이니 느낌이 나죠? 그럼 한 번 자세히 알아볼게요!! 순서 RNN 종류 RNN 작동 원리 RNN 을 이용한 예시 Language Model Image Captioning Visual Question Answering Long Short Term Memory (LSTM) 1. RNN 종..
[cs231n] CNN Architecture 지금까지 CNN의 전체적인 프로세스와 그 속에 있는 layer들을 자세히 공부했습니다. convolutional layer를 지나고 batch normalization를 지나고 다시 conv layer를 지나고,, 이렇게 층을 쌓아 마지막에 FC layer를 통해 score를 냅니다. 이제는 conv layer를 어떤 filter size로 언제 몇번 할지, batch normalization을 얼마나 언제 할지, drop out 을 할지, pooling 을 할지, learning rate는 얼마로 할지 등을 고려해서 CNN의 전체 구조를 세워야 합니다. 하지만 저희는 아직 딥러닝 초보자 입니다. 성능 좋은 구조를 처음부터 끝까지 뚝딱뚝딱 만들기가 현실적으로 불가능하죠. 따라서 사람들에게 널리 알려진, ..
[Python] os, pathlib, pickle 더 이상 모르는척 하지 말자 컴피티션의 상위권 커널을 보면 항상 등장하는 os,pathlib, pickle 모듈!! 경로를 지정해주는 것 같은데, 운영체제니 뭐니 이름부터 거부감들고 어려워보여서 여태 모르는척 했습니다. 하지만 딥러닝을 공부하고 있는 요즘,, 더이상 피할수가 없더라구요,, 그래서 한 번 해보자!! 하고 공부하고 정리해봤습니다. 모듈에 있는 모든 문법을 다뤄보려했으나, 다른 블로거 분들이 너무 설명을 잘해두셔서 저는 가장 많이 쓰이는 문법들에 대해서 간단하게 정리했습니다. 그리고 추후에 여러 커널들을 공부하며 해당 모듈들을 잘 활용한 사례가 있다면 내용을 계속해서 추가하도록 하겠습니다. 순서 os pathlib pickle 1. os os(operating system)는 운영체제 라고 합니다. (저는 운영체제로 wi..
[cs231n] Neural Network - part 2 지난 파트에 이어 이번 파트에서는 최적화(Optimization) 알고리즘의 종류, regularization의 종류 그리고 transfer learning에 대해서 공부해 보겠습니다. 바로 시작해볼게요! 순서 Optimization Stochastic Gradient Descent (SGD) SGD + Momentum Nesterov momentum AdaGrad RMSProp Adam Regularization Dropout Batch Normalization Data Augmentation Transfer Learning 1. Optimization 1-1. Stochastic Gradient Descent (SGD) 지금까지는 최적화의 방법으로 SGD(Stochastic Gradient Desce..
[cs231n] Neural Network - part 1 지난 포스팅에서는 Neural Network의 한 종류인 CNN에 대해서 공부하며 전체적인 프로세스를 익혔습니다. 이번 포스팅에서는 그 과정에 있는 다양한 선택지들과 추가적으로 고려해야 할 사항들을 중심으로 공부해보겠습니다. 포스팅은 총 두 파트로 이루어져있고, 첫 번째 파트에서는 활성함수의 종류, 데이터 전처리, 가중치 초기화 방법, 정규화 방법 등 모델링 하기 전의 셋팅과 하이퍼 파라미터 튜닝 등 학습 도중에 다뤄야 할 과정을 중심으로 작성하겠습니다. 두 번째 파트에서는 최적화(Optimization) 알고리즘의 종류, regularization의 종류 등 다양한 선택지들을 중심으로 다뤄보겠습니다. 그럼 시작해볼까요?? 순서 Activation Functions Data Preprocessing We..
[cs231n] Convolutional Neural Network (CNN) 순서 Neural Network (NN) Convolutional Neural Network (CNN) 동작원리 convolution layer activation function pooling layer fully connected layer 정리 1. Neural Network (NN) 지금까지 가중치(W)가 한 개인 함수를 다뤘습니다. 가중치가 한 개인 모델은 이미지의 분류 기준 특성이 적을 수 밖에 없고, 따라서 빨간 자동차만을 자동차로 인식하게 되는 한계가 있습니다. 이를 극복하기 위해 색깔 뿐만 아니라 더 다양하고 복잡한 특성을 고려해야 하는데요, 가중치(W)를 여러개 사용함으로써 이 문제를 해결할 수 있었습니다. input(이미지, x)에 첫 가중치(W1)를 곱한 값이 다시 input이 되고..
[ML] 스태킹(Stacking) 완벽 정리 이 포스팅만 읽으면 스태킹을 쉽게 이해할 수 있도록 정리해봤습니다 :) 천천히 읽어볼까요? 순서 스태킹의 핵심 개념 스태킹의 원리 목표 기본모델 최종모델 코드 1. 스태킹의 핵심 개념 스태킹은 여러 가지 모델들의 예측값을 최종 모델의 학습 데이터로 사용하는 예측하는 방법 입니다. 아직 잘 와닿지가 않나요? 간단한 예시를 아래 그림과 함께 들어보겠습니다. 저는 knn, logistic regression, randomforest, xgboost 모델을 이용해서 4종류의 예측값을 구했습니다. 그리고 이 예측값을 하나의 데이터 프레임으로 만들어 최종모델인 lightgbm의 학습데이터로 사용했습니다. 지금은 기본 모델로부터 예측된 값들이 최종모델의 학습데이터로 사용된다는 것만 이해하면 됩니다. 자세한 내용은 다..