- Today
- Total
목록분류 전체보기 (387)
작심삼일

디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다. 나쁜 코드란 무엇인가 좋은 코드란 직관적으로 이해할 수 있는 코드다. 그럼 나쁜 코드란 무엇일까? 나쁜 코드라는 것은 수많은 예시가 있지만 한마디로 정리하자면 한눈에 들어오지 않거나 설명이 많이 필요한 코드라고 생각한다. 구체적으로 생각해보면 여러 가지가 있을 수 있다. 첫째, 이름을 직관적으로 짓지 않는다. 흔히 코딩을 하다보면 나만 아는 이름이나 편한 이름으로 변수명을 짓는 경우가 많다. 혹은 함수명을 정해두고 코딩을 하고 있는데 어쩌다보니 점점 그 함수가 하는 일이 많아지기도 한다. 이런 경우 모두 타인이 봤을 때 그 코드를 이해하는 데 시간이 많이 걸리게 된다. 전자의 경우에 대한 예시를 들어보면 다음과 같다...

Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network My Summary & Opinion 기존의 다른 SISR network와는 다른 upscaling layer를 사용했다. 이전 네트워크들은 네트워크로 하여금 image enhancement 하는 과정을 배우게 하기 위해 네트워크의 시작 전이나 앞부분에서 upscaling을 진행한다. 하지만 이렇게하면 계산량이 증가한다는 단점이 생긴다. 이 문제를 해결하기 위해 sub-pixel layer를 제안한다. Sub-pixel layer는 그림 1만 보면 이해할 수 있을 정도로 간단하게 구성되어 있다. 제일 마지막에 나오..

My Summary & Opinion SRCNN은 3개의 conv layers만 사용했기에 구조는 매우 간단하고 그 속도가 빠름에도 불구하고 그 성능이 이전 SOTA들과 비교했을 때 뛰어나다. 흥미로운 점은 필터들을 봤을 때, 필터들마다 edge detector 등 각각의 특색을 보인다. 이 논문에 적힌 실험에 따르면 이미지의 양이 많아질수록, 필터의 크기를 키울수록 성능이 향상되지만 층을 깊게 쌓을수록 항상 성능이 향상되는 것은 아니다. Layer를 3개만 사용해서 이미지 양을 많이 사용해도 over-fitting이 되기 어렵기 때문에 꽤 많은 양의 데이터를 사용해도 성능이 향상될 것이라 예상하지만, 이 모델의 크기가 작기 때문에 너무 많은 데이터를 다 학습하기에는 어려울 것 같다. 필터의 크기를 키울..