해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. 요즘에는 앞 장의 단순한 RNN 대신 LSTM이나 GRU라는 계층이 주로 쓰인다. RNN이라고 하면 앞 장의 RNN이 아니라 LSTM을 가리키는 경우도 흔하다.LSTM이나 GRU에는 게이트라는 구조가 더해져 있는데 이 게이트 덕분에 시계열 데이터의 장기 의존 관계를 학습할 수 있다. ◼️ 6.1 RNN의 문제점RNN은 시계열 데이터의 장기 의존 관계를 학습하기 어렵다. BPTT에서 기울기 소실 혹은 기울기 폭발이 일어나기 때문이다. ◾ 6.1.1 RNN 복습RNN 계층은 시계열 데이터인 xt를 입력하면 ht를 출력한다. 이 ht는 RNN 계층의 은닉 상태라고 하여 과거 정보를 저장..
해당 포스팅은 '밑바닥부터 시작하는 딥러닝2'를 공부하고 정리, 요약한 글입니다. 모든 내용은 해당 도서를 기준으로 합니다. ◼️ 4.1 word2vec 개선 1위 그림과 같이 CBOW 모델은 단어 2개를 맥락으로 사용해 이를 바탕으로 하나의 단어를 추측한다. 이때 입력 측 가중치와의 행렬 곱으로 은닉층이 계산되고 다시 출력 측 가중치와의 행렬 곱으로 각 단어의 점수를 구한다.이 점수에 소프트맥스 함수를 적용해 각 단어의 출현 확률을 얻고 이 확률을 정답 레이블과 비교하여 손실을 구한다. 위 그림에서 보듯 입력층과 출력층에는 각 100만 개의 뉴런이 존재한다. 이 수많은 뉴런 때문에 중간 계산에 많은 시간이 소요되며 다음 두 계산이 병목이 된다.- 입력층의 원핫 표현과 가중치 행렬 Win의 곱 계산.- ..
Tracking을 하면서 자주 접한 단어인 Tracklet에 대해 간단하게 정리 해 보고자 한다.object tracking은 tracklet과 trajectory를 만드는 2단계로 구성이 된다. 여기서 tracklet이란 객체의 고유한 ID를 유지하기 위한 짧은 구간의 경로를 의미한다. 위 그림에서 객체의 이동 경로를 선으로 나타낸 것이 tracklet이다. tracklet을 구하기 위해서는 짧은 구간(k개의 frame, 보통 6개의 frame 마다 계산함)에 대해 검출한 객체 간 유사도를 비교하여 유사도가 높은 객체끼리 고유한 ID를 유지하도록 하여 tracklet을 만들게 된다.객체가 물체에 의해 가려지거나 객체가 아닌데 검출이 된은 경우는 어쩔 수 없이 생기는 문제인데 tracklet을 이용하여..
Multi-view Tracking Using Weakly Supervised Human Motion Prediction, Martin Engilberge, et al., 2022 을 읽고 정리, 요약한 글입니다. ◼️ Abstract people-tracking에 대한 Multi-view 접근 방식은 혼잡한 장면에서 single-view 접근 방식보다 occlusion을 더 잘 처리할 수 있는 잠재력을 가지고 있는데, 이는 대부분 사람을 먼저 detection한 다음 detection된 부분을 연결(association)하는 tracking-by-detection 패러다임에 의존한다.본 논문에서는 시간 경과에 따른 사람의 움직임을 예측하고 이를 통해 개별 프레임에서 사람의 존재를 추론하는 것이 훨씬 더..
보통, coco dataset은 아래 링크에서 다운로드가 가능하다. coco dataset download : https://cocodataset.org/#download COCO - Common Objects in Context cocodataset.org 근데 오랜만에 다운로드 하러 들어갔더니 아무리 데이터셋을 클릭해도 다운로드가 되지 않았다. 그래서 wget 명령어를 사용해 바로 원하는 디렉토리에 다운을 받고자 했지만... 이전에 사용했던 다운로드 경로가 변경되었는지 다운로드가 정상적으로 되지 않았다. 변경된 다운로드 경로를 열심히 구글링 해서 찾아냈고 같은 삽질을 반복하지 않기 위해 포스팅으로 남겨두게 되었다. ◾ COCO Datastet wget으로 Download하기 다운로드 후 압축 파일을 ..
yolov5나 mmcv 등을 사용하면서 학습 과정을 매 에폭마다 확인할 수 있고 결과까지 예쁘고(? 편하게 볼 수 있어 wandb를 연동하여 사용하고 있다. 회원가입을 하고 init이라는 아주 간단한 것만 해주면 학습 과정 및 결과를 기록하고 저장하기 편하다. 1️⃣ 회원 가입 & wandb 설치 https://wandb.ai/home Sign In with Auth0 Sign in with Microsoft Account wandb.ai 위 사이트에서 wandb에 회원가입을 먼저 해야 한다. 구글과 깃허브 계정으로 쉽고 빠르게 회원 가입이 가능하다. 회원 가입을 한 후에 wandb를 설치 해 주어야 한다. wandb를 사용할 가상환경에 접속한 후 pip install wandb 이렇게 wandb를 설치..
Quasi-Dense Similarity Learning for Multiple Object Tracking, Jiangmiao Pang, et al., 2021을 읽고 요약한 글입니다. 논문을 읽고 이해하면서 정리를 한 글이기에 논문 내의 contents 순서와 해당 포스팅의 목차 순서는 다른 것임을 미리 명시합니다. 정리에 앞서 논문을 읽으면서 따로 단어를 정리해 둔 것이 있어서 함께 작성한다. dense matching : 모든 픽셀에서 box 후보 간에 일치하도록 정의함. quasi-dense : 정보 영역에서 잠재적 객체 후보만 고려하는 것을 의미함. sparse matching : 객체 연결을 학습할 때 ground truth 레이블만 일치하는 후보로 간주한다는 것을 의미함. image pai..
지난 6월부터 12월까지 모두의 연구소에서 주관하는 인공지능 개발자 양성과정인 AIFFEL(아이펠)에 참여했다. 정확히는 12월 16일에 끝나는데 나는 10일 정도 앞두고 타 지역으로 취업을 하게 되면서 이것저것 준비하느라 남은 10일 동안 제대로 참여를 못할 것 같아 끝까지 출석을 하지 못하게 되었다. 6개월 동안 kdt 과정으로 노동부에서 월 30만원의 지원금을 받으며 진행을 했고 코시국으로 ALL 비대면으로 진행되었다. 이 블로그에도 아이펠 관련 게시글들이 있기 때문에 아이펠을 지원하기 전 많은 분들이 방문하는 걸 알고 있다. 나 역시 아이펠을 지원하기 전에 후기를 정말 많이 검색 해 봤지만 검색해서 나오는 후기는 3개도 안되었다. 국비 교육은 후기가 정말 중요한데 나는 몇 안되는 후기 때문에 포기..
sciPy와 Toolkit을 합쳐서 만들어진 사이킷런(Scikit-Learn)은 파이썬 기반 머신러닝용 라이브러리이다. 사이킷런을 이용하면 머신러닝 알고리즘을 구현할 수 있다. 먼저, 사이킷런에서 제공하는 데이터셋은 특성행렬(Feature Matrix)과 타겟벡터(Target Vector)로 NumPy의 ndarray, Pandas의 DataFrame, SciPy의 Sparse Matrix를 이용해 나타낼 수 있다. 특성행렬은 입력 데이터를 의미하며 [n_samples, n_features] 형태의 2차원 배열 구조를 사용한다. (n_samples: 행의 개수(표본의 개수), n_features: 열의 개수(특성의 개수)) 특성행렬은 NumPy의 ndarray, Pandas의 DataFrame, SciP..
어느새 아이펠 7주차가 끝났다. 첫 주였던 오티 이틀을 뺀다 해도 거의 2개월동안 아이펠 과정을 소화하고 있는 것이다. 7주차에는 1차 해커톤이 진행되었다. 저번주부터 정처기 공부에 이번주는 해커톤에 집중하느라 블로그 포스팅에 많이 소홀했었다. 그래서 1차 해커톤도 끝났겠다 1/3이 지난 시점을 기록으로 남겨두면 좋을 것 같아서 포스팅을 하게 되었다. 8/4 ~ 8/6 3일 동안 진행된 1차 해커톤은 캐글 경연대회에 참여하는 것이었다. https://www.kaggle.com/c/recruit-restaurant-visitor-forecasting Recruit Restaurant Visitor Forecasting | Kaggle www.kaggle.com 일본 레스토랑의 방문자 수를 예측하는, 이미 ..