본문 바로가기

분류 전체보기96

[논문 리뷰] I-JEPA 요약, 코드, 구현 논문을 상세히 번역하고 한단어씩 해석해주는 포스팅은 많다.나는 논문을 누구나 알아듣도록 쉽고 간결하게 전달하고자 한다. I-JEPASelf-Supervised Learning from Images with a Joint-Embedding Predictive Architecture ASSRAN, Mahmoud, et al. Self-supervised learning from images with a joint-embedding predictive architecture. In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2023. p. 15619-15629. 논문 원문 링크 메타.. 2024. 4. 22.
[논문 리뷰] Vision Mamba(Vim) 요약, 코드, 구현 논문을 상세히 번역하고 한단어씩 해석해주는 포스팅은 많다. 나는 논문을 누구나 알아듣도록 쉽고 간결하게 전달하고자 한다. Vision Mamba ZHU, Lianghui, et al. Vision mamba: Efficient visual representation learning with bidirectional state space model. arXiv preprint arXiv:2401.09417, 2024. 논문 원문 링크 저자의 의도 최근 효율적인 디자인의 state space model(SSM) Mamba가 긴 시퀸스 모델링에 큰 가능성을 보여줬다. 하지만 SSM 에게도 비전 문제는 어려운 문제다. 비주얼 데이터의 위치 민감도와 이미지 전체 맥락에 대한 이해가 필요하다. 고해상도 이미지 처리.. 2024. 4. 17.
[논문 리뷰] Swin Transformer 요약, 코드, 구현 논문을 상세히 번역하고 한단어씩 해석해주는 포스팅은 많다. 나는 논문을 누구나 알아듣도록 쉽고 간결하게 전달하고자 한다. Swin Transformer Swin transformer: Hierarchical vision transformer using shifted windows. LIU, Ze, et al. Swin transformer: Hierarchical vision transformer using shifted windows. In: Proceedings of the IEEE/CVF international conference on computer vision. 2021. p. 10012-10022. 논문 원문 링크 이 논문은 MS에서 작성했다. (Microsoft Research Asia) .. 2024. 4. 9.
[논문 리뷰] DenseNet 요약, 코드, 구현 논문을 상세히 번역하고 한단어씩 해석해주는 포스팅은 많다. 나는 논문을 누구나 알아듣도록 쉽고 간결하게 전달하고자 한다. DenseNet HUANG, Gao, et al. Densely connected convolutional networks. In: Proceedings of the IEEE conference on computer vision and pattern recognition. 2017. p. 4700-4708. 논문 원문 링크 저자의 의도 숏 커넥션이 포함된 경우 CNN은 훨씬 더 깊고 정확하게 만들 수 있다. DenseNet은 피드 포워드 방식으로 각 레이어를 다른 모든 레이어에 연결한다. 기존의 CNN보다 더 많은 연결로 밀도 높은, Dense한 CNN을 만들어보자. 기존 문제점 정보.. 2024. 4. 5.
FLOPs, #param, throughput 계산, 의미, 관계 딥러닝 모델 논문읙 실험이나 결과 부분에 꼭 나오는 것.FLOPs, #param, throughput 3가지 이다.그런데 나는 이걸 계산하지도 못하고 의미도 모르고 관계도 모른다.이번 포스팅에서 완벽히 정리하고 가자. 1. FLOPsFLOPs는 (Floating Point Operations)의 약자로,주로 모델의 계산 복잡성을 측정하는 데 사용된다.딥러닝 모델의 연산 중에 많은 것은 '부동 소수점 연산(FLOP)'이고이걸 몇번 하는지가 FLOPs다. FLOPs가 높다 = 연산량이 많다, 무겁다 FLOPs는 입력에 따라 크기가 변한다.따라서 단순히 파이썬 라이브러리 등으로 구하면 오류가 날 수 있다.공식을 알아두고 검산할 필요가 있다. [FLOPs 계산 공식 (CNN)]FLOPs = H × W × F ×.. 2024. 3. 19.
PIL 이미지를 NumPy로 변환하여 저장하지 마세요. 딥러닝 특히 CV 분야를 공부하다 보면 다양한 형태의 이미지를 다뤄야한다. 특히 파이토치 객체, 넘파이 객체, PIL 객체 를 왔다갔다 해야한다. 또 jpg를 쓸지, png를 쓸지, RGB 3채널일때, R 1채널일때 등 다양한 문제가 생긴다. 그런데 내가 오늘 발견한 것은 PIL이미지를 NumPy로 변환할때 치명적인 에러가 발생하는 것이다. 결론적으로 PIL 이미지는 그대로 저장하거나 파이토치 함수로 변환해야만 에러가 나지 않는다. RGB를 각각 따로 딥러닝 한 뒤 R, G, B를 저장하여 값을 보고 있었다. 파이토치 객체에서 부터 넘어와 저장해야 하기 때문에 이런 저런 변환을 거친 뒤 저장하는데, 이렇게 저장했다. (이 코드는 내가 작성한 것은 아니고 선행 연구자가 작성한 것이다.) 그런데 이렇게 저장.. 2024. 3. 5.
learning rate와 batch size 관계 딥러닝 모델로 학습을 하면서 가장 많이 겪는 문제점은 hyperparameter 문제다.learning rate와 epoch를 어떻게 결정하는지가 가장 문제다.이 문제는 어떤 천재에게 물어도 같은 답이 나온다."노가다 말곤 방법이 없어요."오늘은 그중에서 먼저 learning rate에 대하여 고찰해보자. 일단 간단하게 설명하면 epoch와 batch size를 고정한뒤,위 그래프를 참고해서 적절한 good learning rate를 찾으면 된다.그래프를 다 그려가며 비교해보고 좋은 learning rate를 고르자. 즉 learning rate를 x1, x2, x4, x1/2, x1/4 로 학습하며 loss를 그린 뒤에위 그림을 참고하며 learning rate를 고르면 된다.CNN이나 작은 데이터셋을.. 2023. 11. 7.
옵티마이저(Optimizer) 설명, 의미, 고찰 - SGD? Adam? 딥러닝을 배우면서 optimizer에 대하여 한번쯤은 듣게 될거다. 하지만 이게 정확히 뭔지 모르고 그냥 대충 Adam을 사용하면 된다~ 정도로 알고 있을거다. 그게 맞다....(?) 물론 초급적인 과정에서는 그게 맞다. 하지만 조금만 깊이 가면, transformer 까지만 가면 반드시 차이를 알아야 한다. 딥러닝에서는 다양한 알고리즘을 사용한다. 그리고 이 다양한 알고리즘에서 파생된 여러가지 종류의 레이어가 있다. 가장 대표적인 것이 다음 3가지다. 활성화 함수, 손실 함수, 최적화 함수 이 세가지는 정확하게 이해해야한다. 안그러면 서로 헷갈리기도 하고 자꾸 찝찝한 마음이 들거다. 여기서 최적화 함수가 다른말로 옵티마이저. optimizer 이다. 정의 옵티마이저를 한줄로 정의하면 '최소의 loss로.. 2023. 10. 12.
[논문 리뷰] MAE(Masked Autoencoders) 요약, 코드, 구현 논문을 상세히 번역하고 한단어씩 해석해주는 포스팅은 많다. 나는 논문을 누구나 알아듣도록 쉽고 간결하게 전달하고자 한다. MAE(Masked Autoencoders) Masked Autoencoders Are Scalable Vision Learners HE, Kaiming, et al. Masked autoencoders are scalable vision learners. In: Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022. p. 16000-16009. 논문 원문 링크 저자의 의도 MAE는 CV 분야의 scalable한 self-supervised 모델이다. 큰 모델을 효율적이고 효과적으로.. 2023. 10. 12.
오차 역전파(back propagation) 설명, 의미, 고찰 정의 오차 역전파(Backpropagation)는 인공 신경망에서 가중치를 조정하여 출력을 원하는 결과에 가깝게 만들기 위해 사용되는 알고리즘. 쉽게 설명해주겠다. 신경망은 일종의 함수라고 볼 수 있다. 이 함수의 가중치(w1, w2, w3)는 학습을 할 수록 업데이트 된다. 가중치 업데이트를 어떻게 할 것인가에 대한 알고리즘이 back propagation이다. 아래 딥러닝의 전체 과정에서 보면 어디에 위치한 과정인지 볼 수 있다. (인풋 입력 -> 네트워크 통과 -> 출력 -> 손실함수 계산 -> !오차 역전파! -> 가중치 업데이트) -> 처음부터 반복 오차 역전파를 잘 하는법 오차 역전파를 잘 하려면 다음과 같은 조건을 만족하면 된다. 1. 오차를 잘 구한다. 2. 경사 하강법을 이용해 직전 가중.. 2023. 9. 18.