목록ML & DL/이것저것.. (12)
Depthwise separable Convolution은 Depthwise convolution과 1x1 convolution(pointwise convolution)의 두 가지 컨볼루션 연산을 합한 것이다. 케라스의 convolutional layer는 여러 개가 있지만 그 중 SeparableConv와 DepthwiseConv이라는 레이어의 차이를 간략히 정리한다. 케라스의 SeparableConv layer는 Depthwise separable Convolution을 뜻한다.즉, Depthwise conv + pointwise conv를 하나의 레이어에서 수행한다. 케라스의 DepthwiseConv layer는 Depthwise separable Convolution에서 first step만 한다..
이전에 pretrained model을 사용하되 conv layer는 프리징시키고 F.C layer만 업데이트 되도록 했더니 오버피팅이 심하게 나타났다.이번에도 사전학습된 모델을 불러오지만 conv layer도 학습이 가능하도록 수정하였다. (trainable 변수만 바꾸면 된다.)현재 파라미터들이 이미지넷 데이터셋에 최적화된 값으로 초기화되어 있으므로 다른 초기화 기법을 적용하지 않았다.F.C layer는 저번처럼 새로 이어 붙여서 학습이 가능하게 하였다. 다른 도메인이지만 이미 파라미터들이 feature를 잘 추출해내는 어떤 값으로 초기화되어 있다. 그렇다면 다른 도메인에서도 그 성능을 발휘할 수 있을까? 다시 말해, iteration을 조금만 하고도 빠르게 수렴할 수 있을까?이번에는 왠지 그럴 것 ..
blood cell dataset을 가지고 pre-trained vgg16 네트워크를 사용하여 classification을 해보았다.Imagenet으로 사전훈련된 vgg16의 F.C layer를 제외한 feature extraction부분의 레이어만 가져왔고 sequential model을 사용하여 새로운 classifier를 만들어 vgg에 연결하였다.학습이 진행되는 동안 기존 vgg의 weight값들은 변하지 않게 프리징시켰고 F.C layer만 학습되도록 만들었다. 나는 이제 트레이닝을 하기 전, 다음과 같은 부분을 고민해보았다. 이미지넷으로 트레이닝 된 네트워크를 사용해서, 한 번도 본 적 없는 데이터셋도 잘 분류할 수 있을까? feature extraction layer들이 blood cell이..
이 글을 쓰는 이유는 Keras를 통해 CNN을 직접 구현해보고 이미지 classification에서 자주 사용되는 데이터셋이 아닌 다른 데이터셋을 사용하여 classification을 해보는 것이 주 목적이다. 딥러닝 라이브러리를 통해 데이터셋을 바로 불러오는 게 아니라 직접 로컬 데이터를 불러와보고 전처리도 해보고 네트워크를 설계하고 하이퍼 파라미터를 조절해보며 겪게 될 시행착오를 남기고자 한다. 상대적으로 구조가 간단한 vgg16으로 시작하여 네트워크를 만들어보고 직접 트레이닝할 것이다. 이후 Imagenet dataset으로 pre-train된 네트워크와 비교해보고 다른 네트워크 역시 만들어볼 것이다. Dataset데이터셋은 캐글에 올라온 Blood cell dataset을 사용하였다. (문제시 ..