- Today
- Total
목록전체 글 (384)
작심삼일
My Summary & Opinion 이 논문에서 제일 맘에 드는 점은 이름이 직관적이라는 점이다. Squeeze-and-Excitation이라는 이름을 보면 누구나 이것이 어떻게 작동하는지 와닿을 것이다. Squeeze 하는 부분은 핵심 feature들만 남기는 역할을 하고, Excitation은 그 핵심 feature들의 channel-wise dependency를 사용할 수 있게 하는 역할을 한다. 그 이후에 원래 크기로 다시 rescaling을 진행한다. SE block에서 제일 중요한 부분은 Excitation 부분이라고 생각한다.핵심 feature들을 뽑는 것은 쉽지만, 그것들을 어떻게 사용하느냐에 따라서 성능이 많이 달라지기 때문이다. 그리고 다른 네트워크들에 쉽게 적용할 수 있는 점이 SE..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 이 패턴도 개념은 이해하기 쉬웠다. 이름이 Template인 것처럼 알고리즘의 뼈대만 정의하고, 구체적인 수행 방법은 서브클래스에서 정의한다. 하지만 곧 Factory method와 헷갈리기 시작했다.내 스스로 정리해본 결과, Factory method보다 Template method가 좀 더 작은 내용인 것 같다.밑에도 써놨지만, 서브클래스의 확장을 제어하기 때문이다. 어떻게 쓰는가 대부분의 기능은 같지만, 사소한 부분이 다를 때 주로 사용한다. 또한 동시에 서브클래스를 어느 정도 제어하고 싶을 때도 사용한다. 많은 분들이 커피 만드는 것을 예시로 드는데, 이 예..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 Prototype method. 한글로는 원형 패턴이라고 한다. 난 이 '원형'이 circular list처럼 circle이라는 뜻인 줄 알았는데, 그게 아니라 '원본'의 뜻이었다;; Prototype의 의미먼저 생각해봤으면 이런 일은 없었을텐데 멍청하게 왜그랬을까... 아무튼 이 패턴도 매우 간단하다. 쉽게 말해 ctrl+C/V, 복붙을 할 때 사용하면 된다. 똑같은 객체를 매번 만들기 귀찮으니 cloning을 하는 것이다. 예시를 보면 이해가 빠르다. 어떻게 쓰는가 Prototype: 인터페이스 정의 ConcretePrototype: 복제 연산 구현 Client..
My Summary & Opinion PSNR에 의구심을 갖고 진행되는 연구가 많고, EnhanceNet도 그중 하나다. 기존의 Euclidean loss를 사용해 학습한 네트워크로는 PSNR 기준으로 SOTA를 찍었고, photo-realistic한 이미지를 만들기 위해 adversarial training, perceptual loss, texture transfer loss를 이용했다. Adversarial training과 perceptual loss는 이전의 SRGAN에서 사용했으니 texture transfer loss가 이 논문의 핵심이 되겠다. Texture transfer loss가 style transfer에서 사용되는 loss라는데, 그 영역에 대한 공부는 하지 않았지만, 수식을 보니..
My Summary & Opinion CNN의 층을 더 깊게 쌓을수록, SR에 대한 성능이 좋아지는 추세였다. 하지만 너무 깊어지면 long-term dependency 때문에 더 이상 성능이 높아지지 않는 경향이 있는데, 이를 memory block으로 해결했다. Memory block 안의 gate unit으로 long-term 하게, recursive unit으로 short-term 하게 학습이 되도록 했다. 개인적으로는 memory block이라는 컨셉을 사용한 것은 좋지만, 이 논문의 마지막에 언급한 DenseNet이 간단하면서 획기적인 구조를 가진다고 생각한다. MemNet은 뭔가 이것저것 좋은 것들을 다 합친 느낌이랄까... 물론 이런 것들을 잘 합치는 것도 좋지만, 간단하면서 획기적인 구조..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 Singleton 패턴은 개념이 어렵지 않기 때문에 쉽게 이해할 수 있다.두가지 조건을 만족할 때 이 패턴을 사용한다. 1. 객체가 딱 한 개만 존재해야 하는 경우 2. 이 객체를 어디서든지 참조할 수 있도록 해야할 때 사용 그렇기 때문에 Singleton 패턴을 사용하면 처음 생성할 때만 메모리를 할당하기 때문에 메모리를 절약할 수 있고 데이터를 공유하기에도 용이하다. 하지만 그렇기 때문에 OCP 원칙(Open-Closed-Principle)을 어기게 된다는 단점이 있다. 어떻게 쓰는가 인스턴스가 유일해야 함을 보장하는 것이 이 패턴을 사용할 때 제일 중요한 부분..
디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 틀린 부분은 알려주시면 감사하겠습니다. 어떤 패턴인가 이전에 설명한 Abstract Factory Pattern은 Factory method를 여러 개 묶은 것으로 볼 수 있다. 전에 예를 들었을 때의 그림을 가져와보면, 위에서 수학, 물리, 화학을 각각 Factory method로 볼 수 있다. 어떻게 쓰는가 Factory method는 크게 네 가지(Product, ConcreteProduct, Creator, ConcreteCreator)로 구성된다. Product는 물건을 정의하고, Creator는 만드는 것이다. Concrete가 붙은 것은, 실제로 물건을 정의하거나 실제로 만들 때 사용한다. 이렇게 Conc..
My Summary & Opinion ResNet의 구조에서 BN을 제거해 사용했다. BN이 feature map을 normalize해서 blur효과가 나타나기도 하고, 학습할 때 메모리를 많이 먹기 때문이다. Residual scaling 방법을 통해 큰 feature map에서도 안정적으로 학습되도록 했다. Scale-specific pre-processing / up-sampling과 shared network 구조를 통해 multi-scale 네트워크를 제안했다. BN이 여러 영역에서 사용되지만, normalization 때문인지 SR영역에서는 자주 배제되는 것 같다. Residual scaling 방법이나 scale-specific layer, shared network같은 구조의 컨셉을 잘 알..