728x90
반응형

데이터분석 37

Data Augmentation - boost classifier

가짜 데이터의 유용함 머신러닝 모델의 성능을 향상시키는 가장 좋은 방법은 더 많은 데이터로 훈련하는 것입니다. 모델이 더 많은 예제로 학습할 수록 이미지 속 차이점이나 중요한 것, 중요하지 않은 것을 잘 찾을 수 있습니다. 그렇게 모델이 새로운 데이터에서도 잘 분류하여 일반화되죠. 데이터를 더 얹는 방법 중 쉬운 방법은 가지고 있는 데이터를 사용하는 것입니다. 분류의 기준을 그대로 지키면서 가지고 있는 데이터를 변형할 수 있다면 그러한 변형을 무시할 수 있는 분류기로 성장시킬 수 있습니다. 예로 자동차의 좌측면과 우측면 사진은 보기엔 다르지만 자동차이지, 트럭이 될 수 없습니다. 그러므로 이런 뒤집힌 사진을 training data에 더해주어(augment) 분류기에게 왼쪽과 오른쪽의 차이점은 무시할 수..

Custom Convnets (Convolutional Blocks)

Simple to Refined 지난 세 수업에서 convnet이 feature extraction을 수행하는 과정을 보았습니다. 그 과정은 filter, detect, condense 연산을 차례대로 거쳐가는 것입니다. feature extraction의 한 라운드는 단순한 선이나 대비와 같은 이미지에서 비교적 간단한 feature만 추출할 수 있습니다. 수많은 분류 문제를 해결하기에 너무 간단하죠. 대신에 convnets은 이러한 추출과정을 여러번 반복합니다. 그로 인해 feature는 좀 더 복잡해지고, 더 깊은 네트워크를 여행하며 정교해집니다. Convolutional Blocks 추출을 해주는 convolutional block들의 긴 사슬을 통과하면서 진행됩니다. convolutional bl..

The Sliding Window

하나의 이미지로부터 특징을 추출하는 3가지 연산에 대해서 배워보았습니다. filter with a convolution layer detect with ReLU activation condense with a maximum pooling layer convolution과 pooling 연산은 같은 특징을 공유합니다. 둘 다 sliding window 위에서 수행하기 때문입니다. convolution에서는 이 window는 커널의 차원인 kernel_size 매개변수에 의해 결정됩니다. pooling에서는 pool_size에 의해 pooling window가 결정됩니다. convolution과 pooling 레이어 모두에게 영향을 주는 두 개의 매개변수가 있습니다. window의 strides 매개변수는 ..

Maximum Pooling - feature extraction

!!여기서 활성화 activation의 의미란, 이미지 행렬 안의 숫자값이 0이 아니고 색깔이나 의미를 가진 0 외의 숫자로 되어있다는 의미. 0이 있는 곳은 검은색으로 표시됨 이번 시간에는 convnet 속 base이 feature extraction을 수행하는 방법에 대해 보려 합니다. 이전까지 feature extraction에는 conv2d layer와 relu activation으로 2가지 과정이 일어난다고 했습니다. 이번에는 세번째 연산 과정을 보려합니다. maximum pooling을 이용한 압축(condense)입니다. 이는 케라스의 MaxPool2D layer에서 일어납니다. Condense with Maximum Pooling from tensorflow import keras from..

Convolution and ReLU

이전 시간에 convolutional classifier에는 convolutional base와 dense layer로 구성된 head가 있다고 배웠습니다. base는 이미지에서 시각적 특징을 추출하며 head는 이를 이용해 이미지를 분류합니다. 이번에는 base에 사용되는 두 종류의 layer를 배워보려 합니다. 하나는 ReLU activation을 적용한 convolutional layer이고, 다른 하나는 maximum pooling layer 입니다. 5번째 수업에서 특징 추출을 수행하는 단계에 사용되는 이러한 레이어들로 구성된 자신만의 convnet을 설계하는 법에 대해서 배울 예정입니다. 이번 시간은 ReLU activation을 적용한 convolutional layer만 보겠습니다. Fea..

Convolutional Classifier

Introduction of Computer Vision Keras로 만든 image classifier에 현대 딥러닝 네트워크를 사용합니다 자신만의 custom convnet을 설계해봅니다. Visual feature extraction 속 아이디어를 배워봅니다. model의 속도를 올리기 위해 transfer learning을 배워봅니다. data augmentation을 적용하여 dataset을 확장시켜 봅니다. 이 수업의 목표는 신경망이 자연 세계의 이미지를 어떻게 이해하는지 그 방법을 배우는 것입니다. 이는 사람이 시각적으로 처리하는 체계뱡식과 유사합니다. Convolutional Neural Networks (CNN or Convnet) 저마다 다른 구조의 convnet으로 된 레이어들을 반환..

[Kaggle Course] Binary Classification(이진 분류) - sigmoid, cross-entropy

지금까지 neural network로 'regression problems'를 어떻게 해결할 수 있는 배웠습니다. 이제 머신러닝의 또다른 골칫거리, 바로 'Classification'을 neural network에 적용해봅시다. 가장 큰 차이점은 우리가 사용했던 loss function에서, 그리고 마지막 layer에서 나온 출력값의 종류에서 찾을 수 있습니다. (저게 차이점이 아니야!) Binary Classification 두 그룹(class) 중 하나로 분류하는 것은 일반적인 머신러닝 기법입니다. 고객이 구매할 가능성이 있는지, 신용 카드 거래가 사기였는지, 우주에서 온 신호가 새로운 행성의 증거가 되는지 등, 모두 "Binary Calssification" 문제입니다. raw data에서 이 같은..

[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'..

728x90
반응형