Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2015 Google Blog] Inceptionism: Going Deeper into Neural Networks #110

Open
Jasonlee1995 opened this issue Dec 16, 2022 · 0 comments
Open
Labels
Principle Understanding the AI Vision Related with Computer Vision tasks

Comments

@Jasonlee1995
Copy link
Owner

Jasonlee1995 commented Dec 16, 2022

DeepDream을 제안한 Google AI 블로그

블로그 글인지라 읽기 좋게 서술되어있어, 블로그 흐름대로 요약


Deep neural network는 layer가 깊어질수록 이미지의 higher-level features를 progressively extract하여 좋은 성능을 낸다고 알려져있음

하지만 각 layer마다 정확히 어떤 일이 일어나는지는 여전히 알 수 없음
(one of the challenges of neural networks is understanding what exactly goes on at each layer)

image

기존의 연구들은 input image를 enhance를 하여 layer가 무엇을 하는지 알아보고자 했음
(paper such as Understanding Deep Image Representations by Inverting Them)

간단하게 설명하면 adversarial attack과 비슷하게 해당 activation이 나오게끔 image를 enhance하되, realistic image를 위해 natural image statistics와 비슷해지는 constraint를 prior로 넣음
(neighboring pixels간의 correlated되게 한다던지 등)


image

해당 task가 왜 중요한 지에 대하여 설명하는데, 해당 방법을 통해 network가 right features를 학습했는지 확인할 수 있음

Neural network가 덤벨이라고 생각하는 이미지를 뱉게 했을 때, 사람의 팔이 보이는 것을 알 수 있음

이를 통해 neural network가 덤벨에 대한 essence를 completely distill하는데 실패했다고 볼 수 있음
(the network failed to completely distill the essence of a dumbbell)

해당 방식을 통해 어떤 이미지가 더 필요한 지도 알 수 있음


image

기존의 연구들은 어떤 feature를 amplify할지 정했는데, 저자들은 network가 내린 decision을 강화하도록 하였음

즉 기존의 연구들은 random noise에서 image enhance를 했던 반면, 해당 연구는 input image를 enhance하는 방식을 제안하였음
(Whatever you see there, I want more of it!)

사람이 선택해야할 사항은 어떤 layer의 activation을 enhance할지임

어떻게 학습하나 궁금할 수 있는데 선택된 layer activations의 L2 norm을 maximize하는 objective를 이용
(더 나은 image quality를 위해 다양한 테크닉을 사용하는데, 자세한 것은 original github repo 참고)

Higher-level layer를 선택하게 되면 이미지가 complex features 혹은 whole object가 나타나며, lower-level layers에서는 strokes 혹은 simple ornament-like patterns와 같은 edges, orientations과 같은 basic features가 나타남을 확인할 수 있음


image

image

또한 guide image가 있을 때, input image를 enhance하는 실험도 진행
(horizon, trees, leaves : input image, towers & pagodas, buildings, birds & insects : guide image)

위에서는 input image의 layer activations의 L2 norm이 maximize하도록 학습했는데, reference image가 있을 경우 guide image activations와 input image activations간의 dot-products를 maximize하도록 학습

해당 방식을 통해 neural network가 input image를 over-interpret하도록 사용할 수 있으며, 이는 마치 어린아이가 이미지를 보고 random shape로 interpret하는 것과 비슷함


저자들이 제안한 technique를 통해, particular layer가 가지고 있는 abstraction level을 이해할 수 있으며 해당 technique를 Inceptionism이라고 표현

@Jasonlee1995 Jasonlee1995 added Principle Understanding the AI Vision Related with Computer Vision tasks labels Dec 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Principle Understanding the AI Vision Related with Computer Vision tasks
Projects
None yet
Development

No branches or pull requests

1 participant