반응형

데이터 분석/딥러닝 10

[YoLo v2] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 ! 소신입니다. YoLo v1에 이은 두번째입니다. YoLo를 구현하면서 영상처리까지 진행해보고 싶어졌습니다.. Real Time으로 Object Detecting 하는 영상을 보니 구현이 가능하겠다는 생각이 들더군요 YoLo v2 영상 주로 작업을 구글 코랩에서 하다보니 이미지 불러오는게 bottleneck인 것 같아서 비교를 한번 해보려고 합니다. PIL과 cv2 각각 작업을 진행해서 어떤 게 Load가 빠른지 확인해보겠습니다. 그리고 모델을 학습하다보면, early stopping에 대한 필요성이 있었는데, 이것도 구현해보았습니다. # YOLO v2 이번 버전은 기존 YOLO에 좋은 부품들을 가져와서 열심히 조립한 모델입니다. 1. Batch Normaliztion 사용 - yolo v2..

[YoLo v1] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 ! 소신입니다. YoLo는 정확도를 조금 포기하고, 속도를 Real-Time 수준으로 끌어올린 모델입니다. 모델링 자체도 2stage로 학습해야했던 R-CNN 시리즈에 비해선 훨씬 간단한편입니다. # YoLo v1 YoLo는 원본 이미지를 448x448의 크기로 변환합니다. convolutional network로 Feature map을 추출한 뒤, fc layer에서 각 좌표별 object의 위치와 object 여부, class를 예측합니다. 마지막으로 NMS를 통과시켜 ground truth와 IoU를 계산했을 때 가장 높은 점수를 가진 예측 박스만 남기고 제거합니다. 위의 글만 보면 조금 헷갈릴 수 있는데, Faster R-CNN에서 SxS의 Grid별로 Anchor를 설정해서 box를 ..

[Faster R-CNN] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 ! 소신입니다. R-CNN이랑 Fast R-CNN은 거의 논문리뷰만 하고 구현은 안했는데, Faster R-CNN은 구현까지 해보았습니다. (근데 오류가 있는것 같음..) # Faster R-CNN 구조 Faster R-CNN의 구조는 Fast R-CNN에 Region Proposal Network(RPN)를 추가한 모델입니다. Fast R-CNN의 단점 Selective Search의 CPU로 연산 (연산 시간의 Bottleneck) Faster R-CNN의 해결 방안 Region Proposal을 모델에서 처리 이로 인해 진정한 end-to-end 학습이 가능한 모델이 되는데요, 근데 학습과정이 생각보다 까다로웠습니다. # Faster R-CNN 학습 과정 흔히 Backbone이라고 부르는..

[R-CNN] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 ! 소신입니다 Image Classification은 SeNet을 마지막으로 우선 마무리를 하고, Object Detection 모델들의 논문 리뷰를 해보려고 합니다. 최종적으로 나만의 실시간 영상처리 모델을 구축하는 것이 목표 ! # 기존의 Object Detection 당시 Object Detection 모델의 성능은 정체되어있었는데요 기존에는 Sliding Window 방식으로, 물체가 있을만한 곳을 하나씩 탐색하여 물체를 탐색했습니다. 이는 일일히 분류를 진행해야하기 때문에 연산량이 많고 연산시간이 오래걸려 비효율적인 방식이죠. 왜? 라고 생각하실수 있는데 Sliding window 방식은 크기가 고정되지 않아 여러 크기로도 순차적으로 계산해야하기 때문에 경우의수가 기하급수적으로 늘어나..

[SeNet] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 ! 소신입니다. 2017년 마지막 ILSVRC대회에서 1등을 한 SeNet 모델입니다. 사실 모델이라고 하기는 조금? 애매하고 새로운 Block이라고 할 수 있습니다. 최근 연구에서 네트워크 내부 피쳐간의 공간적 상관성을 학습하는 메커니즘으로 CNN이 좀 더 강력하게 될 수 있다는 것을 확인했습니다. 따라서 이러한 연구에 맞춰 CNN 내부 Feature들의 중요도를 학습하는 SeNet이 탄생하게 된 것이죠 SeNet을 활용하면, 적은 Complexity의 증가로 Performance의 증가를 가져올 수 있습니다. # SeNet의 원리 SeNet은 위와같이, WxH의 Feature Map을 Squeeze (압축)하는 첫 번째 단계가 있습니다. 논문상에선 편리상 Global Average Pool..

[MobileNet] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 ! 소신입니다. 성능을 최대한 보전하면서, 모델의 용량과 연산량을 가볍게 만드는 방법을 제시한 MobileNet입니다. 개인적으로 앞으로의 연구방향으로 제일 중요한 모델이라고 생각합니다. 성능을 보전하면서 가볍고, 빠르게 만드는것은 Real-Time world에서 굉장히 중요하기 때문이죠 # MobileNet, 미래 모바일과 임베디드 플랫폼에서 딥러닝 모델이 돌아갈 수 있다면 Real Time 처리가 필요한 시대에 정말 유용할 것입니다. 그런면에서 MobileNet은 이러한 현실에 집중한 모델이 아닐 수 없습니다. MobileNet은 기존의 Conv. Filter를 분리해 Depthwise, Pointwise로 네트워크를 구성했습니다. 이것은 큰 변화인데, 기존의 이미지, IN-OUT 채널, ..

[ResNeXt] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 소신입니다. ResNeXt는 ResNet에 Inception개념과 AlexNet 개념을 응용한 모델입니다 ! 뭔가 더 복잡하게 해서 성능이 올라간것처럼 보이지만 같은 복잡도 대비 성능을 끌어올린 모델입니다. # ResNet → ResNeXt 최신 연구의 방향은 Data를 변형하는 Feature Engineering에서 Network 즉, 모델을 Engineering로 바뀌었습니다. Channel의 개수나 Filter의 크기, strides를 변형하며 같은 데이터를 넣어도 더 예측력있는 모델을 만드는 것이죠 그래서 ResNet은 Inception Model의 Split - Transform - Merge 전략을 ResNet에 접목하게 됩니다. x를 나눠 여러 weight와 곱한뒤 합치는 것이죠 ..

[ResNet] 논문 리뷰 & 구현 (Pytorch)

안녕하세요, 소신입니다. 이미지 인식에서 엄청난 반향을 일으켰던 ResNet 입니다. Residual (잔차)를 학습한다해서 ResNet이라는 이름이 붙었습니다. # 기존 접근 방식의 문제점을 해결하기 위해 등장한 ResNet 기존 모델들은 Layer를 Deep하게 쌓으면 성능이 좋아질것이라고 했지만, 실제로는 20층 이상부터 Deep할수록 오히려 performance가 낮아지는 현상인 Degradation문제가 발생했습니다. 그래서 ResNet 팀은 예측하려는 y(분류된 모습)가 실제로는 x(분류되기 전 모습)와 같다고 보고, y-H(x)를 학습하기보다 x-H(x)를 학습하기가 더 쉽고 빠르다는 것이죠 결론적으로 위가 더 좋다는 것은 저 메달이 증명해줬습니다. Object Detection 대회인 CO..

[AlexNet] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 ! 소신입니다. AlexNet 논문 리뷰 및 Pytorch 구현입니다. AlexNet은 2012년 우승한 모델입니다. 이전 모델보다 분류 에러율을 약 10%감소시켰습니다. AlexNet은 Overfitting 해결에 집중한 모델입니다. Dropout과 Data Augmentation을 사용했고 Tanh, Sigmoid 대신 ReLU를 사용해서 학습속도를 높였습니다. 또한, Multi-GPU를 사용해 병렬연산하고 특정 구간마다 연결해 계산했습니다. AlexNet에선 LRN이라는 Neuron을 사용했습니다. 특정 Filter 한 픽셀의 가중치가 높으면 영향을 받은 Feature Map은 자연스럽게 그 주변의 수치가 높을 것입니다. 따라서 이를 해결하기위해 Filter를 정규화하는 방법을 사용했습니..

[VGGNet] 논문 리뷰 & 구현 (Pytorch)

안녕하세요 ! 소신입니다. VGGNet 논문 리뷰와 Pytorch를 활용한 구현입니다. VGGNet은 작은 필터로 네트워크층을 깊게 쌓은 모델입니다. 2015년에 발표된 논문으로 당시 엄청 복잡한 구조인 GoogleNet에 비해 구조가 간단하면서 에러는 0.1%밖에 나지않아 큰 주목을 받은 모델입니다. 제가 생각하는 VGGNet의 키포인트들입니다. 모델링 자체는 간단하지만, 전처리, 후처리 등 여러가지 방법을 사용해서 성능을 끌어올리기 위해 노력했다는 느낌을 많이 받았습니다. 전처리에선 이미지를 다양한 크기로 변형하고 Crop(오려내기), Color Shift, Flip등 다양한 전처리를 진행했습니다. 모델링은 Convolutional Layer를 3x3 필터에 Padding=1로 원본 크기에는 변화를 ..

반응형