no image
[Book Review] 머신러닝 실무 프로젝트
한빛미디어에서 출간된 머신러닝 실무 프로젝트(2판) 책은 기존 내용에 MLOps 및 슬롯머신 알고리즘을 활용한 강화학습 등의 내용을 추가하여 2판을 출간했다고 한다. 1장에서는 머신러닝을 어떻게 프로젝트에 적용하는지에 대해 배우며, 머신러닝 프로젝트 진행과정을 다음과 같이 명료하게 나누어 두었다. 1. 비즈니스 문제를 머신러닝 문제로 정의 2. 논문을 중심으로 유사한 문제들을 조사 3. 머신러닝을 사용하지 않는 방법은 없는지 검토 4. 시스템 설계를 고려 5. 특징량, 훈련 데이터와 로그를 설계 6. 실제 데이터를 수집하고 전처리 7. 탐색적 데이터 분석과 알고리즘을 설정 8. 실제 데이터를 수집하고 전처리 9. 시스템 통합 10. 예측 정확도, 비즈니스 지표 모니터링 머신러닝 엔지니어들은 이미 머신러닝..
2022.04.24
no image
[Pose Estimation] waterfall module 기반으로 설계된 자세 추정 방법들 (UniPose, UniPose+, OmniPose, BAPose)
waterfall module 즉 WASP(Waterfall Atrous Spatial Pyramid)는 위 그림과 같은 구성으로 되어있으며 원래 semantic segmentation을 위해 multiscale fields-of-view(FOV)를 유지하면서 cascade architecture에서 progressive filtering을 활용하는 “Waterfall” Atrous Spatial Pooling 기반 방식으로 이루어진 모듈이다. 이와 같은 module로 설계된 자세 추정 방법들은 아래와 같다. 1. UniPose, Unified Human Pose Estimation in Single Images and Videos (CVPR 2020) WASP module (w/ a cascade of..
2022.04.20
no image
[Paper Review] UniPose, Unified Human Pose Estimation in Single Images and Videos
“Waterfall” Atrous Spatial Pooling architecture를 기반으로 인간의 자세를 추정하는 UniPose를 소개합니다. 참고로 Waterfall Atrous Spatial Pooling 방법은 semantic segmentation을 위해 multiscale fields-of-view를 유지하면서 cascade architecture에서 progressive filtering을 활용하는 module 입니다. 본 논문에서는 contextual segmentation 및 joint localization을 통합하여 statistical postprocessing 방법에 의존하지 않고 single stage 에서 인간의 자세를 높은 정확도로 추정한다고 합니다! 이러한 방법은 mul..
2022.04.20
no image
[Object Detection] Anchor-free 기반 Object Detection의 Center Sampling 방법 (FCOS, FoveaBox)
초창기 Object Detection 분야에서는 하나의 grid cell에 객체를 하나만 검출할 수 있었으며, 더 나아가 여러개의 grid에서 객체를 검출하기 위해 Anchor box라는 개념을 사용하여 객체를 탐지하였습니다. 여기서 Anchor box는 딥러닝 신경망이 검출해야할 object shape에 대한 가정입니다. 하지만 Anchor box는 크기, 종횡비, 개수에 굉장히 민감하다는 단점이 있습니다. 이 Anchor box를 어떻게 설계하느냐에 따라 모델 성능에 영향을 미치게 됩니다. 또한 pre-defined anchor는 모델 일반화 성능을 해치게 되고, anchor box 크기와 다른 ground-truth를 검출하기 어렵다는 단점이 있습니다. 따라서 anchor box를 사용하지 않는 a..
2022.04.15
vim 편집 시 ctrl+s 눌렀을 때 터미널 멈추는 현상
vim 으로 원격서버에 있는 코드 편집중이였는데 습관적으로 ctrl+s 를 누르다보니 터미널이 멈추는 현상이 발생하여 검색해보았다. 스크롤 락 건거라고 한다. ctrl+Q 누르면 다시 움직인다. 그리고 편집중에 터미널을 꺼버리면 .swp 확장자 파일이 생겨서 자꾸 다시 편집 할 때 마다 E325: ATTENTION 에러가 뜨니까 아래 블로그를 참고하여 해결하길 바란다. 요약하면 아래와 같다. .swp 파일 확인 -> 다른 프로세스가 작업중인지 확인 -> 사용안하면 파일 저장(wq) -> rm ~~.swp 삭제 E325: ATTENTION 해결 방법 https://clear-sky-sun.tistory.com/23 E325: ATTENTION vi swap 해결 방법 Linux vi을 통하여 작업을 하던 ..
2022.04.13
[Deep Learning] Pre-trained model로 gray image를 학습하는 방법
보통 pre-trained model(ResNet 50, ...)의 경우 RGB 3채널을 가지는 color image 를 기반으로 학습을 진행하기 때문에 모델의 입력 정보는 (height, weight, channel=3) 으로 이루어지게 된다. 따라서 이러한 모델에 임의로 1채널을 가지는 gray image를 입력할 경우 shape error 가 발생하게 된다. 이는 단순히 모델의 첫 레이어의 채널을 변경한다고해서 해결되지 않는다. 정확히 말하면 에러는 해결되지만 학습 진행이 안된다. 따라서 pre-trained model로 gray image를 학습시키는 법은 다음과 같다. 1. 첫번째 conv layer 의 채널을 1로 변경하기 2. pretrained weight load 시 1채널로 변경된 첫번..
2022.04.06
no image
[Paper Review] FCOS, Fully Convolutional One-Stage Object Detection
이번에 리뷰할 논문은 바로 FCOS: Fully Convolutional One-Stage Object Detection 입니다. 이 논문은 2019년에 나왔으며, Anchor box 기반 검출기 만큼의 정확도를 달성하는 Anchor Free 기반 검출기의 baseline이 되는 논문이기 때문에 리뷰하게 되었습니다! (사실 CornerNet이 먼저이긴 하지만, CornerNet은 더 복잡한 post-processing 절차가 필요하다고 하네요!) 기존 객체 검출(Object Detection) 분야에서 대장을 이루었던 YOLO v3를 비롯하여 RetinaNet, SSD, Faster R-CNN 등의 객체 검출기들은 Anchor box를 사용하는데 비해, FCOS는 One-stage Detector이기 때..
2022.03.30
no image
[Paper Review] ResNet strikes back: An improved training procedure in timm
저번에 페이스북에서 ResNet strikes back: An improved training procedure in timm 이라는 논문이 나왔다는 게시글을 보고 논문을 살펴보았습니다. 이 논문은 pytorch-image-models github (a.k.a timm)의 원작자인 Ross Wightman의 논문입니다. Ross-Wightman-github 에 들어가보니 소개글에 아래와 같이 적혀있었습니다. 개인적으로 깊이 감명 받았습니다. 🤩 Always learning, constantly curious. Building ML/AI systems, watching loss curves. 아무튼, 이 논문은 모델을 학습하는데 있어서 기본적이면서도 유용한 테크닉들이 잘 소개되어 있으며, 제안하는 학습방법..
2022.03.30
숫자 42의 의미
sklearn 패키지의 train_test_split 모듈을 사용하다가 random_state 값은 왜 42를 사용할까라는 궁금증이 생겨 구글링을 하던 도중에 알아낸 사실이 있다. (이외에 다른데서도 42라는 숫자를 종종 보았었다.) 여기서 random_state 값은 데이터 분할시 셔플이 이루어지는데 이를 위한 시드값이며, some number 이다. 1로 설정하거나 2로 설정해도 어떤 int 값 숫자를 사용할 때마다 처음 나눌 때 항상 동일한 출력을 얻는다는 것이다. 어떤 기사(https://www.joongang.co.kr/article/21790238)에 의하면 아래와 같다. 영국 작가 더글러스 애덤스의 SF소설 "은하수를 여행하는 히치하이커를 위한 안내서"에 등장하는 한 외계 종족은 삶과 우주,..
2022.03.29
[Linux] 파일 개수 및 디렉토리 개수 세기
리눅스 환경에서 현재 폴더의 파일 개수를 세는 명령어는 아래와 같다. ls -l | grep ^- | wc -l 디렉토리의 개수를 세는 명령어는 아래와 같다. ls -l | grep ^d | wc -l 참고로 ls 는 현재 디렉토리의 내용을 확인 할 수 있으며, grep 명령어는 파일 내용에서 특정 문자열을 찾을 때 사용하는데, ^ 라는 것이 붙으면 문자열 라인의 처음을 보겠다는 뜻이다. 그리고 wc 명령어는 파일 또는 표준입력의 줄 수를 출력한다. 뜻을 알면 잘 외워진다.
2022.03.28
no image
[Book Review] fastai와 파이토치가 만나 꽃피운 딥러닝
한빛미디어에서 "fastai와 파이토치가 만나 꽃피운 딥러닝" 이라는 책이 출간되어 읽어보았다. 먼저 fastai가 무엇인지 알아보았다. fastai는 제레미 하워드라는 사람이 만든 PyTorch의 상위 Wrapper 같은 개념이며, PyTorch를 이용하여 다양한 기능들을 자동화시켜주고, 딥러닝 모델 구현을 용이하게 한다고 한다. 이 책에서는 fastai를 이용하여 최고의 결과를 달성하는 모델을 학습 시키는 방법, AI 모델을 웹 어플리케이션으로 바꾸는 방법, 딥러닝 모델이 작동하는 이유와 방법 등을 다룬다. 또한 딥러닝을 처음 접하는 사람들을 대상 독자로 다루고 있으며, 코딩 경험이 없더라도 내용을 이해하는데에는 무리가 없다. 다만 책이 총 720 페이지에 달하기 때문에 들고다니기에는 약간 무리가 있..
2022.03.27
[PyTorch] PyTorch 모델을 저장하는 방법 및 고려해야할 점
PyTorch 모델을 학습 한 뒤, 모델을 저장하고 불러오는 방법은 다음과 같다. 모델 저장하고 불러오기 다음과 같이 PyTorch 모델은 학습한 매개변수를 state_dict 이라고 불리는 internal state dictionary에 저장한다. 이 state 값들은 torch.save 함수를 이용하여 저장 할 수 있다고 한다. 모델의 가중치를 불러와서 저장하려면 저장하려는 모델의 인스턴스를 생성한 다음 load_state_dict() 함수를 사용하여 매개변수를 불러온다. 참고로 state_dict은 dictionary 이며 이 형태에 맞게 데이터를 저장하거나 불러오는 것이 가능하다. 이는 각 계층을 매개변수 Tensor로 매핑하며 학습 가능한 매개변수를 갖는 계층(conv layer, linear ..
2022.03.23