GithubHelp home page GithubHelp logo

deviationpooling's Introduction

DeviationPooling

Pooling method using deviation.

텐서플로우는 몇가지 종류의 강력한 풀링 툴을 제공한다. 그러나 나는 텐서플로우에 존재하지 않는 편차(Deviation)를 이용한 풀링방식을 원했다.

Basic Idea

기본적인 아이디어는 이것에서 출발하였다. 텐서의 경계가 더 뚜렸해 지기 위해서는 풀링을 하여 값을 추출해내며 이를 통해 텐서의 사이즈 또한 줄인다. 텐서플로우에서 제공하는 평균 풀링(AveragePooling)은 텐서의 경계를 오히려 모호하게 할 수 있는 문제점을 갖고 있다. 그렇기에 선명한 상을 얻기 위해서는 최대(Max) 또는 최소(Min)풀링을 진행한다.

모래사장 위에 모래와 색이 비슷한 나무상자가 올려져있다고 가정해보자. 만약 gray채널(1채널)을 갖는 텐서가 입력될 때, 최대 또는 최소 풀링을 진행하면 모래와 나무상자의 경계면에서 각각 최대 또는 최소 값을 구해낼 것이다. 그렇게 된다면 그 경계면은 모호해진다. 값이 튀어야지 그 경계는 뚜렷해 질 수 있다.

다른 예를 들어 사진을 찍었는데 연기(smoke)에 의해 사진이 흐려진 부분이 있다고 가정하자. 그 경우 흐려진 사진은 최대풀링을 진행할 경우, 밝은 연기는 텐서에서 최댓값으로 인식되어 풀링될 것이다. 비슷하게 안개가 낄 경우에도 마찬가지의 결과를 낼 것이다. 검은 연기는 최소풀링을 진행할 때, 검은연기가 최솟값으로 인식되어 풀링될 것이다. 비슷한 경우로 흐릿한 이미지를 풀링할 경우 다른 풀링 방식보다 효과적인 풀링이 가능할 것으로 예측한다.

그러나 편차를 이용하여 풀링을 할 경우 다르다. 평균으로부터 가장 튀는 값을 인지하기 위해서는 편차의 제곱을 이용하여 값을 비교한다. 편차의 제곱이 가장 큰 값을 풀링한다면, 밝은 연기에서는 상대적으로 밝지 않은 뒤의 오브젝트가 선명히 풀링될 것이며, 모래사장에서의 경계면에서의 그림자나, 평균으로부터 튀는 값들이 풀링되어 선명한 텐서를 반환할 것이다.

편차를 이용한 풀링방식으로 이러한 문제를 해결할 수 있다.

실제 사용

아래 사진은 채널이 1개인 흑백 예시 사진이다.

sample

이를 편차풀링한 결과는 다음과같다. # filter_size = (2,2), stride = (2,2)

sample1_deviation_pooling

흰 부분이 체워진 부분에 대하여 색을 잃은 부분이 있지만 계산시 경계면은 확실히 뚜렷해진 모습을 볼 수 있다.

아래는 max_pooling을 한 부분이다.

sample1_max_pooling

경계면은 모호한 느낌이 있으나 편차를 이용하였을 때 보다 형상을 더 잘 알아볼 수 있다. #

Mix pooling

이 두 가지의 방식을 혼합하여 풀링한다면 더 좋은 성과를 이룰 수 있을 것이다. 또한 구현하진 않았지만 상황에 따라서 최소풀링을 섞으면 각각의 단점을 모두 보완한 풀링 방식을 만들 수 있을 것이다.

deviationpooling's People

Contributors

zjvlwndehr avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.