본문 바로가기

트렌드 한눈에 보기/학계 트렌드

(111)
custom dataset을 활용한 CNN, LSTM 튜토리얼 인터넷에 검색해보면, CNN과 LSTM 튜토리얼은 잔뜩 나온다. 하지만, 죄다 기존의 데이터셋을 활용해서 진행하는 튜토리얼들이다. CNN과 LSTM을 쓸 줄 알게 된다는 점에서 그런 튜토리얼들이 나쁜 것은 아니지만, 결국 실제 사용해보기 위해서는 데이터셋을 구축하는 방법부터 진행해야 한다. 시계열 예측 | TensorFlow Core: 기존 데이터셋을 활용하는 튜토리얼 시계열 예측 | TensorFlow Core 시계열 예측 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 튜토리얼에서는 TensorFlow를 사용한 시계열 예측을 소개합니다. Convolutional/Recurrent Neural Network(C www.tensorflow.org custom datase..
MIT, Harry Asada, "Identification Estimation and Learning" 강의 정리 4: Random Variables and Random Processes 4강은 Random Variables에 대한 내용이다. 그간 여실히 들어온 기초 내용이지만, 역시 한번도 제대로 이해한 적이 없다고 생각한다. 하지만 필터링이 무엇인가? 노이즈를 없앤다는 것이다. 여기서 노이즈는 random variables로 정의된다. 뭘 없애야 하는지 명확히 이해해야만 하는 것이다.
MIT, Harry Asada, "Identification Estimation and Learning" 강의 정리 3: Recursive Least Squares with Forgetting Factor Recursive란, 실시간으로 데이터가 들어오는 상황을 의미한다. Linear Regression이라고 하면, 주어진 데이터셋을 최대한으로 설명하는 지표들을 뽑아내는 것을 상상하기 쉬운데, 실제 공학에서는 실시간으로 데이터를 처리해야 하는 때가 수두룩하다. 그럴 때 쓰이는 칼만 필터나, complementary filter나, 모두 recursive algorithm으로 분류가 되고, 특히 칼만 필터는 Least Squares에 바탕을 두고 있음이 지난 강의를 통해 드러났다. 중요하기 짝이 없는 내용이지만, 지난 강의에 비해 집중력이 많이 떨어졌다. 그래도 들었다는 사실을 정리하기 위해 내용을 기록해본다.
MIT, Harry Asada, "Identification Estimation and Learning" 강의 정리 1: Least Squares 대학원 교수님의 지도교수로 여러 일화를 숱하게 들었던 Harry Asada 교수의 영상을 우연히 유튜브에서 찾게 되었다. 제어 관련 이론들을 설명하고 있는 강의를 코로나 기간에 줌으로 찍은 김에 유튜브에 올린 것이다. "와 아직도 현역으로 이론 강의를 하는구나" 싶다가도, 현역 이론강의를 하지 않는 사람은 우리 교수님밖에 없는 것 같아 조금 아쉬웠다. 아무튼, 내게 필요한 강의였기에 듣고 내용을 정리해보기로 했다. 사실 Kalman Filter에 대한 내용을 집중적으로 들어야하지만, 일단 관심이 가는 강좌들을 찬찬히 둘러보는 것도 괜찮은 전략같다. 주말에는 얼마든지 둘러봐도 좋지. 처음에는 찬찬히 둘러봐야지~ 싶었는데, 난데없이 본 목적인 Kalman Filter를 마주치고 말았다. 야생의 전설의 포켓몬..
RoNIN: Robust Neural Inertial Navigation, IMU 사용기 명령어: python ronin_lstm_tcn.py test --type tcn --test_list /home/jewoo/WIRobotics/ronin/lists/list_test_unseen.txt --data_dir /media/jewoo/2E5A2A245A29E973/Database/RoNIN/unseen_subjects_test_set/ --out_dir /home/jewoo/WIRobotics/ronin/output/ --model_path /home/jewoo/WIRobotics/ronin/model/ronin_tcn/checkpoints/ronin_tcn_checkpoint.pt 드럽게 복잡하네 명령어 argument 마다 경로를 넣으라고 되어 있던데, 경로가 파일명인지, 파일이 있는 폴..
[딥러닝 공부] 2일차: Transformer를 공부하기 전에 훑어보는 LSTM (이론편) RNN (Recurrent Neural Network)이란, 아래 하나의 그림으로 표현이 가능하다. recurrent 라는 말이 의미하듯 (재현하다, 재발하다), 연속적인 데이터가 들어올 때, 동일한 블록을 거쳐서 연속적인 Output을 내놓는 형태의 Neural Network라고 할 수 있겠다. 연속적인 Output의 대표적인 예시가 언어의 문장 구조이기에 번역 등의 업무에 많이 쓰이지만, 이미지 해석 등의 영역에도 충분히 쓰일 수 있다. 하지만 단순한 RNN 블록으로는 한계가 있었는데, 바로 문장이 길어질수록 초반에 들어온 정보를 잘 기억하지 못한다는 것이다. 이런 현상이 나타나는 이유는 Gradient Vanishing 문제와 연관이 있다고 하는데, 상세한 내용은 아래 논문(링크)을 참고하면 좋을 ..
[딥러닝 공부] 2일차: Transformer를 공부하기 전에 훑어보는 LSTM (준비편) CNN의 가장 보편화된 버전인 ResNet을 익혔으니, 내가 알고 있는 언어 모델의 가장 보편화된 버전인 Transformer를 공부하기 전에 LSTM을 읽어봐야겠다 생각했다. 우선 "보편화"에 대한 정의를 생각해보자면, 1) 만족할만한 성능을 내면서 2) 구현하기 쉽도록 각종 튜토리얼이 많이 쌓여있어야 한다는 점이다. 그리고 Transformer를 바로 공부하지 않고 LSTM을 보는 까닭은, 예전에 하던 딥러닝 스터디에서 봤던 강연의 제목 때문이다. 위 제목 때문에, "아, Transformer를 이해하려면 LSTM부터 알아야겠구나!" 하는 생각을 했던 것이다. Transformer와 LSTM의 비교가 이뤄지는 강연이니, LSTM을 알면 Transformer를 더 잘 이해할 수 있을 것이라는 생각을 했..
[딥러닝 공부] 1일차: ResNet (2016)을 공부하는 2022년의 나 (실습편) ResNet 실습을 어떻게 해볼까 고민을 하다가, 그냥 github에 올라온 실습 코드를 그대로 따라가보기로 했다. ResNet: Deep Residual Learning for Image Recognition (꼼꼼한 딥러닝 논문 리뷰와 코드 실습) - YouTube 위 영상에서 소개해주는 ResNet 원리와 코드들이 상당히 쉽고 좋았다. 다만, 예제 코드에서는 ImageNet dataset을 사용하는데, 2021년 3월 이래로 사이트 개편이 되면서 더 이상 imagenet 예제를 사용할 수 없게 되었다. 다양한 예제들을 주피터 노트북을 통해 시도해봤지만, 일주일이 지난 오늘, 뭐가 뭔지 기억조차 잘 나지 않는다. 하지만 첫 술에 배부르랴? 일단 ResNet을 시도해봤으니 다음 논문으로 넘어가나 봐야겠다.
[딥러닝 공부] 1일차: ResNet (2016)을 공부하는 2022년의 나 (이론편) 아니 14만 회 인용된 논문은 난생 처음 본다. 아마 CNN을 처음으로 제안했던 논문은 이보다 더하겠지? CVPR이라는 Computer Vision 관련 학회에 2016년 publish된 논문으로, Kaiming He 등 microsoft 출신 연구진 4명이 작성했다. 이름만 들었을 때는 "어디 오스트리아쪽 사람인가?" 했더니 중국인이었다. 4명 모두 중국계다. 아래 그래프를 통해 보여지듯, ResNet의 장점은 두 가지라고 한다. 1) 성능 향상: 기존에 layer를 쌓아갈 때 발생하던 성능 저하 문제를 "잔여학습 (Residual Network)"를 통해 해결했음 2) 쉬운 알고리즘: 이해하기 쉬운 간단한 방법. 다만, 아래 그래프에는 첫 번째 장점 (성능 향상)만 확인할 수 있다. 초반 intro만..
[딥러닝 공부] 0일차: pytorch 튜토리얼 진행 그동안 깔짝대기만 했던 딥러닝 공부를 다시 한 번 시작해보고자 한다. 생각해보면 퇴사 후 인턴을 준비하면서도 딥러닝 스터디를 했고, 이번에 졸업 준비를 하면서도 딥러닝 공부를 시작하려는 참이니, 딥러닝을 "시간 때우기" 용으로만 써왔던 것이 아닌가 싶다. 조금만 바빠지면 거들떠도 보지 않게 되는 수준으로만 대했던 것 같다. 하지만 이번엔 다르다! 취미생활로라도 꾸준히 딥러닝을 파봐야겠다 생각을 한 것은, 이제 앞으로 할 일이 이것과 연관이 되어 있기도 하거니와, 내가 사용할 줄 아는 산업용 도구들의 (공학적 디자인 및 해석에 치우쳐 있다) 한계를 맛봤기 때문이다. 다시금 블로그에 기록을 하며 공부를 이어가야겠다. 첫 날에는 pytorch 튜토리얼을 진행했다. 몇 번째 진행하는 튜토리얼인지는 잘 모르겠지만..