728x90

요즘 시험 준비랑 몇 가지 일로 블로그 관리를 제대로 못하고 있다.

 

빅데이터 분석기사 시험 관련해서 이론적인 내용은 충분히 정리한 것 같아

 

더 정리 하기 보다는 그동안 배운 내용들을 반복해서 빠르게 훑어보고 있고,

 

 

 

얼마전에 잠깐 간단한 캐글 대회(타이타닉 생존 여부)에 제대로 참가하게 되서

 

그거 하느라 신경을 더 쓰지를 못하고 있었다.

 

 

 

내 목표는

 

1. 다양한 분류기들을 성능 비교

2. 하이퍼 파라미터 튜닝 전후 비교

3. 전처리 과정 추가 후 성능 비교 등을 하려고 했으나

4. 피드백, 재조정

 

여러 분류기 모델을 다루다 보니

 

이걸 다하기에는 너무 지쳐서 2번까지만 하고 말았다

 

데이터를 제대로 처리 하지 않아서인지 생각보다 성능이 잘 나오지는 않더라

 

 

 

그래도 캐글 대회에 (제대로는) 처음 참여하면서

 

노트북 작성 방법, 제출 방법 등 캐글을 어떻게 참여하는지는 알게 되었고,

 

노트북을 잘 정리한것 같아 뿌듯하긴 하다.

 

 

링크 : www.kaggle.com/dojeongchan/jdo-s-titanic

 

 

 

 

300x250

'그외 > 로그' 카테고리의 다른 글

2021.01.08 daily english study log  (0) 2021.01.08
2021.01.07 daily english study log  (0) 2021.01.07
컴퓨터 비전 알고리즘 구현 - 1. 시작  (0) 2020.11.26
논문 읽기와 구현  (0) 2020.11.23
과제 마무리  (0) 2020.11.19
728x90

예전에 학교에 다닐때

 

알고리즘을 구현 하려면

 

 

슈도코드를 보고 그흐름을 직접 구현할수 있어야 한다고 생각하고

 

시도해보려고 한적은 있었다.

 

 

하지만 당시에는

 

내가 알고 있는 내용으로는

 

간단한 히스토그램이랑 단순 이진화 밖에 구현하지 못하고 포기해버리고 말았었다.

 

 

 

어쩔수 없는게

 

당시에는 제곱 오차니, 최적화 이론이든 공업 수학이든 지금 처럼 

 

수학, 통계적 지식이 부족한데다가

 

타인의 코드를 참고하지 않고 억지로 시행착오를 격으려고 하다보니 재뿔에 지쳤었던것 같다.

 

 

 

 

하지만 알고리즘 구현 연습을 할수 밖에 없는게

 

아무리 OpenCv에서 쉽게 쓸수 있도록 다양한 함수들을 제공해주고 있다고 하지만

 

그 API들을 사용해서 응용 어플리케이션을 만드는 것과는 별개로

 

알고리즘들을 분석하고 활용하려면, 슈도 코드에 대한 이해만으로는 부족하고

 

어느정도 구현은 할줄 알아야 된다고 생각하곤 있었다.

 

 

 

 

 

 

 

 

그래프나 트리 기반 알고리즘에 대해 분석을 하려면

 

자료구조에 대해 얼마나 이해해야하는가

 

개념만 알면 될까, 구현까지 해야될까

 

이런 자료구조 기반 알고리즘을 바로 다루기에는 나한태는 너무 어려운 일이고

 

 

 

 

얼마전에는 C++에서 자료구조로 연습할까했지만

 

기존의 알고리즘들은 C++로 eigen 같은 수학 처리 라이브러리로 구현해 놓은게 있지만

 

numpy로도 빠르게 할수 있어서인지 파이썬에서 구현해놓은것도 많다보니

 

아직 자료구조 다룰것도 아니고, 인덱싱이든 선형대수 연산이든 파이썬에서 할수 있으니까

 

 

 

단순 2차원 배열인

 

이미지 프로새싱 하는것에서 부터

 

수학적 지식을 코드로 구현하는 과정들을 다시 연습해보려고 한다.

 

 

 

 

내가 할수 있을지는 몰랐는데

 

다행이 오늘

 

히스토그램, 단순 이진화, 평균을 이용한 적응적 이진화 이 세가지를 구현할 수 있었다.

 

 

 

꾸준히 할지는 모르지만

 

꼭 넘어야 할 산이다.

 

 

 

 

 

이런거 공부하면서 매번 느끼는거지만

 

기업에서 채용할때 알고리즘 테스트가 정말 소용이 있는건가 싶다.

 

나는 한번도 본적없어서 자세히는 모르지만

 

자료구조, 탐색 알고리즘에 대해서 설명하고 구현하는 방법을 위주로 보는거 같아보여서

 

이걸로 뭘 할수 있는지 잘 모르겠다.

 

내가 모르는게 있겠지 싶지만서도

 

 

 

 

 

 

면접용 알고리즘 공부를 장려하기보다는

 

개인적으로 수학적 기반들을 직관적으로 가르쳐주고

 

실생활에서 사용가능한 알고리즘들을 구현하거나 개선해 나갈수 있도록 도와주는게  필요하다고 생각한다.

 

 

 

 

300x250

'그외 > 로그' 카테고리의 다른 글

2021.01.07 daily english study log  (0) 2021.01.07
캐글 대회 참여와 시험 준비  (0) 2020.12.03
논문 읽기와 구현  (0) 2020.11.23
과제 마무리  (0) 2020.11.19
시험 과제를 하면서  (0) 2020.11.17
728x90

난 개인적으로 시각 관련 알고리즘에 관심이 있는 편인데

 

opencv에서 제공하는 기본 함수 밖에 사용할 줄 모르니

 

어떻게 실제 연구에서 쓰는 알고리즘들을 구현하고, 연구할수있을까 막막할때가 많았다.

 

 

 

논문 잘 정리된 내용들이 많은데

 

부족한 영어실력으로 굳이 모든 내용을 번역해서 공부하는건 정말 아닌것같고,

 

 

 

 

pca나 sift 같은 알고리즘들을 구현한 내용들을

 

github에서 보긴했지만 엄두가 안나더라.

 

 

 

 

그래도 이전에 슈도코드를 보면서 직접 따라 구현해본다거나

 

이런 내용들을 몇번 검색해 봤었는데 원하는 답을 찾지는 못했었다.

 

 

 

이번에는 쿼라에 누가 이런 질문을 올린걸 찾았다.

 

ref : www.quora.com/How-do-I-learn-how-to-implement-algorithms-and-data-structures-in-C++

 

 

코딩 닌자에서 강의 들으면서 구현해보는게 좋다고 한다.

 

읽다보니 광고였네 ..

 

 

 

 

아무튼 c++로 데이터구조와 알고리즘 구현 연습이 필요한데 막상 시작하기가 참 힘들다.

 

 

 

이거랑 상관없이

 

 

jason brownlee라는 분이 좋은 머신러닝 알고리즘을 만드는 방법을 정리해서 올려주셧더라

 

 

 

ref : machinelearningmastery.com/how-to-implement-a-machine-learning-algorithm/

 

 

그러다가 찾은 책

 

Mastering Machine Learning Algorithms: Expert techniques for implementing popular machine learning algorithms, fine-tuning your models, and understanding how they work, 2nd Edition Paperback – January 31, 2020

 

복잡한 머신러닝 모델들을 만들고 싶은 사람들을 대상으로 하고, 평판은 되게 좋다.

 

www.amazon.com/Mastering-Machine-Learning-Algorithms-understanding/dp/1838820299/ref=sr_1_1?dchild=1&keywords=Master+Machine+Learning+Algorithms&qid=1606119400&sr=8-1

 

 

 

아무튼 데이터구조와 알고리즘 연습하긴 해야할듯하다 ㅠㅠ.

 

 

 

 

300x250

'그외 > 로그' 카테고리의 다른 글

캐글 대회 참여와 시험 준비  (0) 2020.12.03
컴퓨터 비전 알고리즘 구현 - 1. 시작  (0) 2020.11.26
과제 마무리  (0) 2020.11.19
시험 과제를 하면서  (0) 2020.11.17
인공지능에 대해 공부하면서  (0) 2020.11.11
728x90

Selective Search for Object Recognition 물체 인식을 위한 선택적 탐색

J. R. R. Uijings et al, IJCV13

 

 

요약

- 이 논문은 물체 인식에서 사용하기 위한 물체 위치를 찾기 위한 방법을 다룸.

- exhaustive search(완전 탐색)과 세그먼테이션의 강점을 합친 선택적 탐색 방법을 소개

- 세그먼테이션처럼 샘플링 과정에서 이미지 구조를 사용함.

- 완전 탐색 방법과 같이 모든 가능한 물체 위치들을 캡처함.

- 가능한 물체 위치를 만드는데 하나의 기술만 사용하기 보다는, 가능한 많은 이미지 분할 경으로 다각화해서 탐색함.

- 선택적 탐색 방법은 적은 수의 데이터에, 클래스 독립적이며.. 아무튼 좋은 성능을 보임.

- 완전 탐색 방법과 비교해서 이 방법으로 더좋은 머신 러닝 기법이나 물체인식 모델을 사용할수 있게 되었다.

- 선택적 탐색 방법 덕분에 단어 가방도 사용할수 있게 되었음.

* 단어 가방 bag of words : 정보 검색에서의 경우 문서를 단어 벡터로 만들어 표현하는 방식


 

소개

- 오랜 시간동안, 물체 인식보다 어디있는지 찾는게 오래 다루어짐. 

- 유전 알고리즘으로 이미지 영역 분할하고자 하는 세그먼테이션이 뜨게됨.

* 유전 알고리즘 : 적응적으로 최적해를 찾아내는 알고리즘

- 하지만 이미지는 본질적으로 계층적임. 그림 1a 샐러드와 스푼은 샐러드볼 안에 있음. 샐러드볼은 테이블위에있고

- 그래서 자연 이미지나 다른 용도의 물체들은 계층적으로 있음. 

- 이 문제 때문에 특정 목적용을 제외하고 모든 물체가 고유의 영역을 갖도록 분할하기가 힘듬.

- 세그먼테이션에서 여러개의 척도가 필요함.

- Arbelaez가 이에 대해서 계층적 분할을 다루는 연구를 함.

 

그림 1. 물체를 이루는 다양한 이미지 영역들

b) 고양이는 색으로 구분할 수 있지만 질감으론 힘듬.

c) 카멜래온은 질감으로 구분할수 있으나 색상으로 힘듬.

d) 바퀴는 차에 붙어있는 일부분이지만, 색상이나 질감은 다름.

그러므로 물체를 찾기 위해서는 다양한 전략들을 사용해야함. 그러므로 이미지는 본질적으로 계층적이라 할수 있음.

a)에서 테이블, 샐러드볼, 샐러드 스푼은 한가지 척도만으로 다 찾아낼수는 없음.

 

 

 

- 세그먼테이션은 계층적이기 때문에, 단일 전략으로 세그먼테이션을 위한 유전적 해결법은 존재하지 않음.

- 이러한 이유로 영역들을 하나의 그룹으로 묶여야만함. 

- 그림 1b서 고양이들은 색상으로 분리할수 있지만, 질감은 같음

- 반대로 그림 1c 카멜레온은 주변의 잎과 색상이 비슷하지만 질감이 다름.

- 그림 1d의 휠은 차와 색상, 질감 둘다 다름.

- 개별적인 시각적 특징으로 세그먼테이션의 애매함을 풀기는 힘들다.

 

 

 

각 물체가 하나의 물체로 인식하는 경우

- 여기에다 더 구조적인 문제가 존재하는데, 서로 다른 특성을 가진 영역들(물체가 사람으로 인식된 후에 스웨터 위에 얼굴은)은 하나의 물체로 묶일수도 있음. 

- 그래서 사전 인식 없이 얼굴과 스웨터가 한 물체의 일부인지 결정하기가 힘듬.

Z. Tu, X. Image parsing: Unifying segmentation, detection and recognition. IJCV, Marr Prize Issue, 2005. 1

 

 

- 이 문제 때문에, 다른 방법으로 물체 인식을 통한 위치를 찾아보게 되었음.

- 이 방법 덕분에 물체 인식 분야가 최근에 크게 진보함.

N. Dalal. Histograms of oriented gradients for human detection. In CVPR, 2005

P. F. Felzenszwalb, Object detection with discriminatively trained part based models. TPAMI, 2010. 1,

H. Harzallah. Combining efficient object localization and image classification. In ICCV, 2009. 1,

P. Viola. Rapid object detection using a boosted cascade of simple features. In CVPR,  2001.

 

 

완전 탐색 방법의 한계

 - 완전 탐색 방법은 이미지내 존재하는 모든 위치를 잠재적인 물체 위치를 놓치지 않도록 검사함. 

- 하지만 완전 탐색 방법은 많은 결점을 가짐.

- 가능한 모든 위치를 탐색한다는것은 계산하기 불가능함.

- 탐색 공간은 격자와 고정 크기, 고정 종횡비에 따라 줄일수 있어야함.

- 많은 경우 탐색할 공간이 크므로 제약 조건들이 필요함.

- 분류기는 간편하며, 외형 모델 appearance은 빨라야만함.

- 균일 샘플들이 너무많은 박스들을 찾아내서 객체를 찾는대 도움되지 않음.(?)

Furthermore, a uniform sampling yields many boxes for which it is immediately clear that they are not supportive of an object.

- 탐색적 방법을 사용한 위치 샘플링 보다는 데이터 기반 분석으로 샘플링을 할수 있지는 않을까?

 

 

 

선택적 탐색적 방법의 목표 

- 이 논문은 세그먼테이션과, 완전 탐색을 합하여 데이터 기반인 선택적 탐색을 제안함.

- 바텀업 세그먼테이션을 참고하여 이미지 구조를 활용하여 물체 위치들을 생성하고,

- 완전 탐색을 참고하여, 가능한 모든 객체 위치를 찾아내고자함.

- 단일 위치 샘플링 기술쓰기 대신에 가능한 많은 이미지에 사용할수 있도록 샘플링 기술들을 다각화하고자함.

- 특히, 데이터 주도 그루핑 전략를 사용.

 ->  다양한 상호보완적인 그룹 기준과 불변성을 가진 다양한 색상 공간을 사용하여 다양성을 높여냄.

- 파티션들의 위치를 합쳐 위치들을 얻음.

- 목표 클래스 독립이며, 데이터 주도, 선택적 탐색 방법으로 적은 종류의 고퀄리티 물체 위치들을 만들어내는것임.

 

 

 

- 선택적 탐색 방법의 주요 활용 분야는 물체 인식임. 그래서 평가에는 파스칼 VOC 대회 데이터를 사용함.

- 데이터셋의 크기는 선택적 탐색을 사용하기에는 비용적으로 제약이 되나.

- 이 데이터셋을 사용하여 바운딩 박스의 위치 퀄리티를 주로 평가했엇음.

- 우리 방법은 잘 영역들을 분할함.

 

- 물체 인식을 위한 선택적 탐색 방법을 제안.

- 주요 연구에 대한 질문으로 다음의 3가지가 있음

- 1) 적응적 분할을 위해 좋은 다양화 전략이 무엇이 있을까?

- 2) 어떻게 선택적 탐색이 이미지 안에 존재하는 작은 고퀄리티의 위치를 찾아낼까.

- 3) 물체 인식을 위해 선택적 탐색 방법을 좋은 분류기와 외형 모델에 사용할수 있을까?

 

 

 

 

 

관련연구

- 물체 인식 분야에 대해 3가지 카테고리로 보고자 함.

- 완전 탐색 방법, 분할, 다른 샘플링 전략

 

 

완전 탐색 방법 exhaustive search 관련 연구

- 물체는 이미지의 어느 위치나 척도상에 존재.

H. Harzallah Combining efficient object localization and image classification. In ICCV, 2009. 1 

- 하지만 시각적인 탐색 공간은 너무 큼, 완전 탐색 방법을 하기에는 계산 비용이너무 큼

- 그래서 위치나 고려해야하는 위치의 개수에 따라서 평가 비용을 제한을 함.

- 대부분 경우 슬라이딩 윈도우 방식은 격자형, 고정비의 그리드를 사용함. 

- 약 분류기와 HOG 같은 이미지 특징 추출기 사용함.

- 이 방법은 폭포수 분류기의 선 선택 단계에서 자주 사용.

P. Viola and M. J. Jones. Robust real-time face detection. IJCV, 57:137–154, 2004.

 

 

- 슬라이딩 윈도우 관련 기술은 성공적인 파트 기반 물체 위치찾기 방법이었음.

P. F. Felzenszwalb. Object detection with discriminatively trained part based models. TPAMI, 2010. 1

- 이 연구에선 선형 SVM, HOG 피처를 사용한 완전 탐색을 사용함.

- 하지만 물체와 물체의 파트들을 찾아냄. 이들의 조합은 좋은 물체인식 성능을 보임.

 

 

Lampert의 외형 모델

- Lampert는 탐색을 위한 외형 모델을 사용하는 방법을 제안.

- 이 방법에서 고정 규격 그리드, 스케일, 종횡비제약을 완화함.

- 동시에 찾아야할 위치 수를 줄여냄

- 분기 한정 기술로 이미지내에 최적의 윈도우로 탐색을 수행했음.

- 선형 분류기로 좋은 결과를 얻었고, alexe는 비선형 분류기를 사용했는데 100,000개 윈도우를 찾음.

B. Alexe, T. Deselaers, and V. Ferrari. What is an object? In CVPR, 2010. 2, 6

 

 

 

- 맹목적 완전 탐색 방법이나 분기 한정법(branch and boung)탐색 대신 우리는 선택적 탐색 제안

- 이미지 구조로 물체 위치들을 생성.

- 앞의 방법들과는 달리 이 방법은 클래스에 독립 적으로 생성.

- 고정된 종횡비를 사용하지 않으므로  우리 방법은 물체에 한정하지 않고, "잔디"나 "모래" 같은 것들도 찾아낼수 있음.

- 마지막으로 적은 위치들을 찾기를 원하므로, 샘플을 다양성을 낮춤으로서 할수 있다. 

- 더 중요한건 계산량을 크게 줄여 강한 머신러닝 기술이나 외양 모델을 사용할 수 있음.

 

 

 

세그먼테이션

- Carreira나 Endres는 세그먼테이션을 이용한 클래스에 독립적인 물체 가설들을 생성하는 방법들을 제안

J. Carreira. Constrained parametric mincuts for automatic object segmentation. In CVPR, 2010.

I. Endres and D. Hoiem. Category independent object proposals. In ECCV, 2010. 2

- 이 방법 둘다 다중으로 전경/배경 세그먼테이션들을 만듦.

- 전경의 세그먼트가 완전한 객체일 가능성을 예측하는 방법을 배우고, 이로 세그먼트의 순위를 매김

- 두 알고리즘다 이미지에 있는 물체들이 얼마나 정확한지에 대한 정도를 보여줌. 

- 세그먼테이션에서 공통적으로, 두가지 방법다 좋은 영역들을 식별하는데 한가지 강한 알고리즘에 의존함.

- 이 방법들은 임의로 초기화된 전경과 배경으로 다양한 위치를 찾아냄.

 

- 반대로 우리의 방법은 다른 그룹 기준과 다른 표현들을 사용하여 다양한 이미지 상태에서 대처할수 있음.

- 비싼 윤곽선 검출기 같은 단일한 최적의 분할 방법을 하는것이 아니라 적은 계산 비용을 가짐.

- 우리건 이미지 상태를 분할해서 다룰수 있고, 일관성 있는 위치를 구할 수 있게됨.

 

 

중간 생략

 

 

- 정리하자면, 우리의 새로운 방법은 완전 탐색을 사용하는 대신, 세그먼테이션으로 클래스 독립인 물체 위치들을 구함.

- 세그먼테이션과는 달리. 하나의 강한 세그먼테이션 알고리즘(윤곽선을 이용한 이미지 분할같은)을 사용하기 보다는

P. Arbelae. Contour ´ detection and hierarchical image segmentation. TPAMI, 2011.

- 많은 이미지조건을 다룰수 있는 다양한 방법들을 사용

- 계산 비용은 줄이고, 더 많은 잠재적인 물체들을 찾아낼수 있었음.

- 임의로 샘플링된 박스에 객관성 측정을 학습하는 대신, 좋은 물체 위치를 구하기 위해 바텀업 그룹방식을 사용.

 

 

--------------------------------------

한 2시간 동안 보면서

 

겨우 2페이지 밖에 보지 못했다.

 

하지만 컴퓨터 비전 분야에서

 

한창 뜨고 있는 다중 물체 인식 기술의 바탕이라 할수 있는

 

물체 분할에서

 

물체 분할의 한 방법인 selective search 방법에 대해 보니

 

 

 

기존 교재나 영상 강의로는 부족했던 깊은 내용들을 배울수 있었다.

 

이전에 오일석 교수님의 교재를 보고나서

 

이미지 분할 방법으로 물체 분할시 색상으로 분할할수 있는건 알았지만

 

질감으로도 분할 할수 있다는 방법은 잊고 있었다.

 

 

 

이미지 분할에 있어서

 

이미지가 계층적인지도 몰랐고,

 

색상 기준으로만, 질감 기준으로만 할수도 없이 다양한 방법들을 혼합해야되는걸 알았다.

 

 

계속 이 내용들을 번역해 가면서

 

 

 

선택적 탐색 방법의 기반이 되는

 

완전 탐색과 세그먼테이션에 대해서 살짝 살펴볼수 있어서 좋았다.

 

 

 

이미지 분할 연구에 대한 10년간의 역사를

 

간단하게 훑어봤다고 생각하면 

 

2시간 동안 2페이지를 본 거지만 위안삼아도 될까..?

 

 

 

 

 

이런 내용들을 훨신 간결하게 정리해 놓은 사람들은 많다.

 

개인적으로는 나도 시간없어서 대충 적으면서 넘어가지만 좋아하지는 않는다.

 

 

 

이미 아는 사람들이야 생략하고 넘어가도 되지만

 

모르는 사람에게 한 기술에 대해 간결하게 설명하고 넘어가면

 

대강 어떻게 동작하는구나는 이해시키고 넘어갈 수는 있어도

 

어떻게 활용을 할수 있는지, 구현을 할지, 좀더 큰 범위에서 활용하기는 힘들 것이다.

 

 

 

 기술에서 만들어진 배경과 맥락들을 파악하지 않고서는 답답한게 너무 많다.

 

그래서 정리하면 다 하거나 너무 대충대충할떄가 많다.

 

아무튼 오늘은 개요와 관련 기술에 대해 정리하였으니

 

내일  선택적 탐색 방법 위주로 하고자 한다.

 

 

 

 

 

300x250
728x90

드디여 기말 과제 마무리했다.

 

마음먹고 하면 금방 끝낼일을

 

과제물 하나하나 너무 하기너무 싫어서

 

하루에 한두문제씩 하다보니 이제서야 끝냈다...

 

 

그래도 끝낸게 어딘가 싶다.

 

이제 빅데이터 기사 시험을 준비하긴 해야하는데,

 

 

매번 해야하는 일보다 다른일이 눈에 들어온다.

 

그래서 어제 논문 정리한다고 했지만 엉망으로 해버리고 말했다.

 

다른 사람들의 논문 리뷰를 많이 안봐서 그런것 같기도 하고 ㅋㅋ...

 

 

 

 

아무튼 빅데이터 분석 기사와는 별개로

 

나는 시각 관련 쪽에 관심이 있다보니 

 

오랜만에 RCNN에 대해서 잠깐 살펴봤다.

 

RCNN 몇년 전에도 봤지만 너무어려워서 보는 둥 마는둥 했었는데 ㅋㅋㅋ

 

요즘에는 다른 사람들이 정리한 글이 많아 졌더라

 

개개인 블로그 상에서도 올라온 것도 그렇고

 

r cnn tutorial : blog.lunit.io/2017/06/01/r-cnns-tutorial/

 

라온 피플에서도 잘 정리되어있다.

 

m.blog.naver.com/laonple/220918802749

 

 

 

 

이런걸 보면 나도 1일 1논문 정리하기 해야하는데

 

한 논문조차 제대로 보질 못하니 쉽지는 않다.

 

대강 살펴보니 rcnn에서는 region proposal 추천 리전을 구하기위해 selective search 방법을 사용한다고한다.

 

selective search 예전에 오일석 교수님의 책에서 본것 같기도하고 ㅋㅋㅋ 잘생각은 안난ㄷ.

 

오늘 보려는 논문은

 

selective search for objection recognition 

 

이미 잘 정리한 사람들이 많아서 

 

정리하다 말아도 괜찬겟지..

 

 

 

 

 

 

300x250

'그외 > 로그' 카테고리의 다른 글

컴퓨터 비전 알고리즘 구현 - 1. 시작  (0) 2020.11.26
논문 읽기와 구현  (0) 2020.11.23
시험 과제를 하면서  (0) 2020.11.17
인공지능에 대해 공부하면서  (0) 2020.11.11
시험 준비와 근황  (0) 2020.11.09
728x90

Adaptive deconvolutional networks for mid and high level feature learning

 

Matthew D. Zeiler, Published 2011

 

 

 

요약

- 합성곱 계층과 맥스 풀링을 수정하여 이미지 분해를 학습하는 계층적 모델 소개

- 일반 이미지 학습시 우리 모델의 레이어는 이미지 정보를 캡처함

      ex. 저 층 : 에지, 중층 : 에지 교차, 고층 : 물체 일부 혹은 완전한 물체

- 계층 출력을 아래로 내리는게 아닌, 각 레이어들이 입력을 복원시키는 모델을 개발.

- 이렇게 하여 여러 층을 표현들을 배울수 있음. 

- 그리고 4계층의 모델을 보여주고자함. 이미지는 칼텍 101, 256 데이터셋으로 학습.

- 이 모델로 추출된 특징들은 SIFT이나 다른 특징 학습 방법들보다 더 좋은 결과를 보였음.

 

 

 

 

소개

- 비전 분야에 좋은 이미지 표현법을 찾는것이 중요한 문제임.

- SIFT와 HOG같은 영상기술자들이 매칭과 물체인식에서 급격한 진보를 가져왔지만, 여전히 성공적인 영상 표현은 적음.

- 저 수준 이미지 구조를 캡처하는 것보다 코너와 물체 일부같은 이미지를 이해하는데 중요한 중, 고레벨 구조적 표현을 찾는게 중요해짐.

- 이 문서는 저수준 에지서부터 고수준 물체 일부까지 구조 정보를 갖는 이미지 표현법들을 소개할 것이고,

- 이미지 계층화와 관련된 두 구조적 문제를 해결한 새로운 방법을 소개하고자 함.

 

- 첫 번째 문제는 불변성에 대한것으로 에지가 방향과 스케일따라 다양한 반면에,  큰 스케일의 구조들은 더 다양한 형태라는점.

- 모든 교차, 코너에 대해서 기록한다고 하면 이 모델은 지수적으로 커지게 될것임. 중, 고레벨 구조까지 모델링시에 불변성을 다루기는 힘듬.

- 두 번째 문제는 계층적 모델에서 사용하는 계층 별 학습 정책이라 할수 있는데, 각 입력에 대해 모든 레이어를 효율적으로 학습 시키는 방법의 부족함. 보통 모델들은 바텀업 방식으로 훈련됩니다.

- 여기서 주요 문제는 이미지 빅셀들이 다음 레이어로 가면 사라져, 모델의 고층으로 갈수록 입력과의 연결성이 희박해 집니다. 이는 층을 깊게 만들지 못하게 만듭니다.

 

 

- 이 두 이슈에 대한 해결방법으로 스위치 변수 소개.

- 스위치 변수는 각 이미지들을 계산해서 모델의 필터를 적응 시킴.

- 간단한 모델은 다양한 이미지 구조를 캡처할 수 있음.

- 스위치 변수들은 이전 층의 입력을 받는게 아니라 입력 통로로서 각 계층이 이미지에 대해 학습할수 있게됨.

- 이를 통해 학습이 더 강건해지고, 효율적인 모델을 만들수 있게 됨.

 

 

 

 

 

 

 

관련 연구

1. 컨브넷

- 컨브넷은 학습된 필터들로 특징맵들의 계층을 만듬.

- 바텀업으로 이미지가 처리되면서, 판별하며, 순수 지도적으로 훈련하게 됨.

- 우리의 방식은 탑다운 방식이고, 비지도적

 

2. 예측적 희소 분해 Predictive Sparse Decomposition

- PSD는 희소 코딩 요소 sparse coding component를 컨브넷에 추가한 것으로 비지도 학습을 할수있게함.

- 우리 방식은 각 레이어의 바로 아래만 수정한 것임.

 

3. DBN Deep Belief Networks 

- 제한 볼츠만 머신 RBM과 비교되는 DBNs 모델도 이 한계를 가지고 있음.

- 각 RBM레이어는 입력에 의존적이며, 직접적으로 설명할수 없는 인자화된 표현을 가짐.

- 학습 과정도 느림.

 

- 우리 모델은 이미지 분해를 수행.

- 전체 픽셀 보다 이미지 일부 구조만을 구하는 다른 계층적 모델과는 다름.

 

 

 

 

 

 

 

 

2. 연구 방법

 

- 우리 모델은 일반 물체 분류기에 입력으로 쓸수 있는 이미지 표현을 만듦

- 이미지로 학습하고, 새 이미지가 주어지고, 추론을 수행합니다.

- 우리 모델은 이미지를 컨벌루션 희소 코딩(디컨벌루션)과 맥스풀링으로 계층적 형태로 분해시킵니다.

- 각 디컨볼루션 레이어들은 입력 이미지의 복원 오차를 최소화 시킵니다.

 

디컨볼루션

- 모델의 첫번째 레이어는 fig.2(a)에서 볼 수 있음.

- 복원 hat_y_1은 특징 맵 z_k_1과 필터 f_k,1^2를 컨볼루션 연산을 하여 구할수 있음.

 

 

그림 2.a 모델의 2 레이어 층

- 각 레이어는 디컨벌루션과 맥스 풀링으로 구성.

- 디컨벌루션 레이어는 희소 코딩이 컨벌루션 형태로 입력 이미지 y를 피처맵 z1과 학습된 필터 f1으로 분해함.

 * 이 둘을 컨볼루션하면 y로 복원됨.

- 이 필터는 c 개의 평면들을 가지는데, 각각은 입력 이미지의 채널을 복원하는데 사용됨.

 

 

 

 

 

 

 

풀링

- 각 컨볼루션 레이어의 위에서 특징 맵 z에 대해 3차원 맥스 풀링 연산이 수행됨 

- 레이어의 특징맵이 현재 레이어보다 큰 스케일에서의 구조를 캡처 할수 있도록 함.

- 풀링은 3차원이므로 공간적으로 수행되며, Fig.3에서 보여주고 있음.

그림 3. 3차원 맥스풀링의 예시.

- 풀링연산 P가 특징 지도 z에 수행하여 풀된 지도 p와 스위치 변수 s를 생성.

- 스위치 변수는 풀링 영역의 최대점 위치를 가짐.

- 주어진 풀된 지도와 스위치로 언풀링 연산 U_s를 수행할 수 있음. 

 

 

 

 

 

 

 

 

 

다중 레이어

- 이 아키택처는 고층에서도 동일하지만, 특징 지도의 개수 K_l은 다를수 있습니다.

- 각 레이어에서 우리는 필터와 레이어의 스위치 변수로 입력을 복원시키고 아래로 보냅니다. 

- 복원 연산자 R_l를 사용하는 레이어 l의 특징 맵 z_l을 정의. 컨벌루션 F, 언풀 연산 U_s를 입력으로함.

- l 레이어의 복원 hat_y_l은 특징 맵 z_l에 의존.

- 복원 연산자 R_l은 풀링 스위치 변수에 의존. 

- 사영 연산자 R_l^T는 신호를입력으로 받아, 주어진 스위치 변수 들에 대해 특징맵들을 사영합니다.

- 우리 모델에서 중요한 점은 스위치 변수 s가 주어질때,

   복원 연산자 R_l과 사영 연산자 R_l^T가 선형이며, 그라디언트를 쉽게 구할수 있음.

- 그림 2(a)에서 두 레이어에서의 디컨벌루션과 풀링을 보여주고있고,

- 그림 2(b)에서 어떻게 복원과 연산이 필터링, 풀링, 언풀링 연산을 통해 수행되는지 알수있다.

 

 

 

 

그림 2.(b) 2레이어 2에서 추론 연산에 대한 블록 다이어그램

 

 

 

 

3. 물체 인식에서의 응용

 우리 모델은 완전이 비지도적이므로, 물체 인식을 수행하는 분류기가 추가되어야 함.

- 단순하고, 성능 좋은 Spatial Pyramid Matching SPM을 사용함.-

- 새 이미지를 주면, 우리 모델로 다층 레이어의 특징 맵과 스위치 컨피그로 분해했다.

- 이제 SPM 분류기와 분해를 사용한 방법을 설명함.

 

 

 

- 필터들은 이미지들끼리 공유되지만, 스위치 설정들은 그렇지 않음.

- 그래서 두 이미지의 특징 맵은 다른 R_l을 사용하여 바로 비교할수는 없습니다.

 

그림 1. 적응정 디컨벌루션 신경망을 이용한 이미지 분해 기반 탑다운 파츠.

- 각 컬럼은 서로 다른 입력 신호로

- 첫번째 행은 4번쨰 레이어의 특징 지도 활성을 이미지 공간으로 사영한 것

- 레이어의 활성 정도에 따라 5, 25, 125개 활성 특징들을 찾음(3, 2, 1 레이어)

- 행 2-4에서 이미지 공간상으로 보여줌.

- 활성을 보면서 우리의 모델로 중, 고수준의 특징들을 찾아낼 수 있었음.

 

 

 

 

- 그림 1의 예시. 4층 레이어에서 탑다운 분해를 시작하였으나 상당히 다른 복원 결과를 얻었습니다.

- 이것으로 2가지 중요한 점을 보여주는데

- 비슷한 클래스사이 분해시 비슷한 부분들을 공유하고, 특정 영역을 위주로 하고 있습니다.

- 스위치 설정의 적응성에 따라 이 모델은 다른 클래스와도 복잡성을 배울수 있었습니다.

 

 

 

 

 

 

 

4.1 모델 시각화

- 탑다운으로 보면 이해하기 쉬운데, 그림 5에서 모델의 필터들을 시각화 하였습니다. 

 

그림 5.

a-d) 각 레이어마다 학습된 필터의 시각화 (해당 특징의 변화를 보기위해 줌인)

e)  필드 사이즈 비교

f) 각 레이어의 이미지 복원 

 

- 레이어 1(그림 5a)에선 DC필터와 서로다른 주파수의 방향들을 볼수 있음.

- 레이어 2는 교차 에지와 커브를 볼수 있음. 1레이어 필터 내용물들의 조합.

- 레이어3 그림 5c. 조금더 큰 범위를 보여주고 있음.

- 레이어 4 그림 5d는 해당 그룹에 속하는 물체에 대해 거의 완전히 복원한 결과를 보여줌.

- 레이어별 상대적인 사영 크기를 이해하려면 그림 5e참고

- 4개의 입력 이미지의 이 모델에서 각 레이어로부터 복원은 그림 5.f

 

 

 

 

 

정리

- 많은 레이어를 갖는 모델을 살펴볼수 있는 방법을 소개.

- 스위치 변수로 필터가 입력의 패턴에 더 적응적으로 됨.

- 우리 모델은 중, 고 수준 특징들을 캡처할 수 있음.

- 이 렇게 구한 특징들로 일반 분류기를 사용한 결과 칼텍-101, 칼텍-256에서 좋은 성능을 보임.

- 다른 데이터셋에서도 성능을 보일만큼 일반화할만한 모델임.

 

 

 

 

 

 

 

 

 

------------------

 

내가 2시간 동안 이 논문을 정리하면서 얼마나 이해햇느냐 하면 

 

2~30프로 될가 모르겟다.

 

여전히 이해하려고 해도 문맥을 다 파악하지를 못하내 의역이 아닌 직역을 하면서

 

이해하기엔 어색한 부분들이 너무 많다.

 

일단 내가 이 논문을 본게 합성곱 신경망의 시각화와 이해에서

 

디컨볼루션에 대한 이야기가 나와서 보기는 했는데,

 

 

 

 

 

 

디컨볼루션에 대한 개념은 조금 더 이해는 가긴 했다.

 

 

기존의 컨볼루션 연산이

 

입력 이미지와 가중치의 콘볼루션 연산으로   특징 맵들을 만들어 냈다면,

 

 

특징맵(언풀링 과정을 거친)과 가중치들의 컨볼루션으로 영상을 복원시키는게 초점이 아닌가 싶다.

 

1층이 기존 영상을 복원한다면

 

 

층을 내려갈수록

 

입력으로 사용한 특징맵을 복원하는 개념인것 같다.

 

 

 

 

 

 

 

 

이 내용들을

 

그냥 특징맵을 시각화 해주면 되지 왜 이런 디컨브넷을 쓰는지

 

그리고 그림 1에서 왜 레이어 4층에서 탑다운을 시킨건지 등

 

여전히 이해되지 않는 부분들이 너무 많다.

 

디컨브넷의 원리는 이해햇으니

 

다시 아까보던 논문으로 돌아가야되나 싶다.

 

 

빅데이터 공부해야되는데 ㅠㅠ 

 

 

이분 처럼 잘 정리할 수 있어야되는데 참 힘들다.

ref : dambaekday.tistory.com/3

 

 

 

300x250

'그외 > 논문' 카테고리의 다른 글

Backpropagation applied to handwritten zip code recognition  (0) 2021.01.23
물체 인식을 위한 선택적 탐색  (0) 2020.11.19
합성곱 신경망의 시각화와 이해  (0) 2020.11.17
ORB-SLAM 대강  (0) 2020.08.16
ORB SLAM 개요  (0) 2020.08.16
728x90

ref : arxiv.org/abs/1311.2901

 

Visualizing and Understanding Convolutional Networks

Matthew D. Zeiler Dept. of Computer Science, Courant Institute, New York University

 Thu, 28 Nov 2013 

 

 

합성곱 신경망의 시각화와 이해

 

요약

- 이미지넷 밴치마크에서 분류성능이 좋은 합성곱 신경망 모델들이 많아짐

- 왜 이렇게 성능이 좋고, 개선되는지 잘 몰라서 연구

- 중간 특징 계층과 분류기 동작을 시각화하여 영감을 얻음

   -> 이 방법으로 Krizhevsky보다 좋은 모델을 만듬

- 모델 계층 하나를 없애면서 성능 변화를 살펴보기도 하고, 다른 데이터셋에서도 잘 동작하는걸 확인함.

 

 

 

 

 

소개

- 일찍이 LeCun(1989)이 소개했을때부터 손글씨, 얼굴 인식에 합성곱 신경망이 좋은 성능을 보임

- 작년(2012)년에 7논문이 좋은 분류 성능이 좋았는데, 그 중 Krizhevsky께 가장 좋았음.

   * 2012년 이미지넷 분류 벤처마크에서 2등의 에러율이 26.1%인데 16.4% 에러율이 남.

 - Hinton에 따르면 1. 큰 훈련 데이터 셋, 2. 좋은 GPU 성능, 3. 새로운 정규화 기법이 성능 개선의 요인이라고 한다.

 

 

  하지만 여전히 내부 동작에 대해서는 잘 모르고, 어떻게 좋은 성능이 나오는지는 잘 몰라서 답답하다. 동작 원리를 모르고서는 시행 착오 때문에 더 나은 모델이 나오기는 힘들어질것 같다. 이 논문에서는 입력이 어떻게 신경망의 피처 맵을 자극, 영향을 주는지 시각화해서 보여 주고자한다. 이 덕분에 훈련되는 과정에 특징들이 어떻게 변화되는지 볼수 있었고, 모델에 존재하는 잠재적인 문제들을 분석해볼수 있었다.

 우리가 제안한 시각화 방법을 특징 활성이 입력 픽셀로 역방향으로 가도록 하기 위해 다층 디컨벌루션 신경망에 사용했다. 입력 이미지에 따라 분류기 출력이 얼마나 민감한지 분석하였는데, 이미지의 일부분이 분류에 중요하다는 사실을 알 수 있었다. 이런 방법들로 Krizhevsky보다 더 나은 모델을 만들어서 이미지넷에서 좋은 결과를 보였다.

 

 

관련 연구

 신경망에대해 이해하기 위해서 특징을 시각화하는건 어려운 문제. 픽셀 공간으로 사영이 쉬운 1층을 제외하구요.  계층이 깊어 질수록 더 어려워지며, 변화를 이해하기가 힘들어 집니다. 이미지 공간 상에서 신경이 최대로 활성하는 경사 하강을 수행하여 최적의 신경을 찾았습니다. 이때 신경들을 잘 초기화하고 불변성에 대한 다른 정보를 주어서는 안됩니다. 후에 나온 연구에선 어떻게 불변성에 대한 정보가 주어진 신경의 헤시안이 수치적으로 최적과 반대되도록 계산하는것을 보여주며, 불변성에 대해 잘 고려해보아야 합니다. 이 문제는 고층으로 갈수록 불변성이 매우 복잡하고, 단순 이차 근사만으로는 확인하기가 어려워 집니다.

 우리의 방법은 불변성에 대한 비모수적인 관점에서 보는게 아니라 훈련 집합이 활성시키는 특징 지도의 패턴을 보여주고자 합니다. Donahue은 모델의 고층 레이어에서 강한 활성을 시키는 패치들을 시각화하여 보여주었습니다. 하지만 우리는 입력 이미지의 조각 만이 아니라 여러 개의 구조물과 각각의 패치들을 탑다운으로 사영하면서 보여주고있습니다.

 

 

 

접근 방법

 기본적으로 LeCun과 Krizhevsky의  합성곱 신경망 모델을 사용.

이 모델들은 2차원 이미지 x_i를 입력으로 받으며 각 층의 출력은 확률 벡터 hat{y_i} 이고, 클래스는 C개가 있음.

-> 그림 3이 우리가 쓴 모델

 

 

그림 3. 8계층 레이어 합성곱 신경망 모델. 이미지(3색)를 224 x 224 조각을 내서 입력으로 받음.

1층 : 96개의 필터(빨강)로 합성곱 연산, 각 필터는 7 x 7 크기, 스트라이드는 2

   1) relu 함수를 통과,

   2) 3x 3 맥스 풀링. 스트라이드 2

   3) 55 x 55의 96개의 특징 지도(정규화된)

2, 3, 4, 5도 비슷하게 동작. 마지막 2개의 계층은 완전연결. 6 x 6 x 256 =9216차원을 입력백터로

마지막 계층은 C개 분류를 위한 소프트맥스 함수. (모든 필터와 특징은 정방 형태)

 

 

 N 개의 라벨 이미지로 학습. -> y_i는 진짜 클래스 

이미지 분류에 적합한  교차 엔트로피 비용 함수 사용( y_i와 hat{y_i})

신경망은 역전파로 학습했고, 파라미터들을 호가률적 경사 하강으로 갱신.

 

 

2.1 디컨브넷 시각화

 합성곱 신경망 동작을 이해하기 위해서는 중간 계층들의 특징들 변화를 해석해야함.

 우리가 제안하는 방법 : 특징 변화를 입력 픽셀 공간으로 사상하여 특징 맵의 변화를 입력 패턴으로 보여줌.

 디컨브넷은 합성곱 신경망 모델을 역으로 만든거라 생각할수 있는데,(이미지를 특징으로 맵핑이아니라 반대로)

 우리가 제안한 디컨브넷(2011)에서는 비지도 학습을 함.

* Adaptive deconvolutional networks for mid and high level feature learning.

 

 컨브넷을 살펴보기위해, 그림 1의 위처럼 디컨브넷을 각 레이어에 연결함. 

   -> 결과를 이미지 픽셀을 되돌려줌.

 시작하여 입력 이미지를 컨브넷에 주고, 각 레이어마다 피처들이 계산됨.

 컨브넷 활성을 보기 위해서 다른 활성함수들을 0으로 설정하고, 특징 맵을 부착된 디컨브넷 레이어에 입력으로 줌

  1. 언풀, 2. 개정 , 3. 필터링 과정으로 복원 시킴.  이 과정은 입력 픽셀 공간에 도달할떄까지 반복

 

그림 1

위 : 컨브넷 계층(오른쪽)과 연결된 디컨브넷 계층(왼쪽) 

  - 디컨브넷은 컨브넷 피쳐들을 재구성 할것임.

아래 : 전환을 통한 디컨브넷에서의 언풀링. 전환 당시 각 풀링 영역에서 지역 최대치의 위치를 기록.

 

 

언풀링

- 컨브넷에서 맥스 풀링 연산은 역행할수는 없었음.

- 전환(스위치) 변수 집합에 각 풀링 영역의 최대지점 위치를 기록해놓으면, 근사적으로 역행시킬순 있음.

- 디컨브넷에서 이러한 전환을 통해 언풀링을 수행해서 레이어를 복원시킬 수 있음.(그림 1 아래것 처럼)

 

개정

 - 컨브넷은 렐루 함수의 비선형성을 사용하는데, 특징 맵이 항상 양의 값을 갖도록 고쳐주기 때문.

 - 올바른 특징 복원 결과물을 얻기위해 relu 함수를 사용

 

필터링

- 컨브넷은 이전 층으로부터 특징 맵을 컨볼루션시킨 학습된 필터를 사용.

- 이를 역행하기위해서 디컨브넷은 전치된 필터를 사용.(대상은 relu 함수 적용된 맵에, 레이어 출력 x)

 

 높은 층에서 아래로 사영하면서, 최대 풀링 당시 전환 설정을 사용.

이 전환 설정들은 주어진 입력 이미지에 대한 것으로 , 한 활성으로부터 얻은 복원물은 원본 이미지의 일부를 닮음

 

 

3. 훈련 상세 사항

 

- 우리의 컨브넷은 그림 3과 비슷하지만 다른점은 3, 4, 5계층에서 우리 모델을 연결시킴

- 또 다른건 1, 2 레이어는 4.1에서 설명할것이고 그림 6에서 볼수 있음.

 

 이 모델은 이미지넷 2012 훈련 셋을 사용. 

 이미지 256 x 256으로 축소. 코너, 센터 10씩 잘라서 224 x 224 이미지 만듬.

 128미니배치 사이즈로 확률적 경사 하강법 사용하여 파라미터 갱신. 학습률은 0.01, 모맨텀항은 0.9

 0.5 레이트로 6,7계층에 드롭아웃 함. 모든 가중치들은 0.01로 초기화, 평향은 0으로 설정

 

 

훈련후 첫번제 레이어 필터 시각화한 결과는 그림 6.(a)에서 볼 수 있음.

소수의 특징이 좌우하고 있으므로, 각 필터를 재정규화함. 

70에폭 훈련 후 중지함. GTX580으로 12일이 걸림.

 

그림 6. (a) 1번째 레이어로 특징 스케일 클리핑을 하지않은 특징들.

(b) Krizhevsky의 1층 

(c) : 우리 모델의 1층 특징들. 스트라이드 ( 2, 4), 필터 사이즈 (7x7, 11x11) 작을 수록 특징들이 더 명확하고, 죽은 특징이 적었음.

(d) :Krizhevsky의 2층 특징들

(e) : 우리 모델 2층 특징들. 앨리어싱도 없이, 더 깨끗하고 보기좋음.

 

 

 

4. 컨브넷 시각화

 3장에서 설명한 모델로 특징 활성을 보여주기위해 디컨브넷을 사용하겠음.

 

특징 시각화

 그림 2는 훈련된 모델로 특징을 시각화한 걸 보여주고있음.

주어진 특징 지도에 대한 가장 강한 활성을 보여주기 보다는, top 9개를 보여주고 있음.

픽셀 공간으로 사영시킨 것을 보면, 여러 가지 형태로도 해당 특징 맵을 만들수 있는 것을 알 수 있고,

입력이 변형되더라도 불변함을 알 수 있음

 게다가 특징 활성에 해당한느 이미지를 같이 보여주고 있는데,

각 패치가 초점을 맞추는 판별 구조에 따라 여려 변형이 나올 수 있습니다.

예를들어  5 레이어의 1행 2열의 패치들을 보면 공통점이 없어보이는데, 시각화를 해본 결과 특징지도가 앞에있는 물체가 아닌 뒤에있는 잔디에 초점을 맞추었음을 알 우 있따.

 

 

그림 2. 완전 훈련 모델의 특징 시각화.

2-5 레이어는 

 

특징 지도의 일부분 중에서 가장 좋은경우 9개씩 보여주고 있음, 디컨볼루션 신경망 방법으로 픽셀 공산으로 사영시킴

우리 방법은 모델에서 샘플링뿐만이아니라 특징 지도상에 강한 활성을 시키는 이미지들에 대한 패턴으로 복원 시킴.

각 특징 지도에 대해 이에 대응되는이미지 패치들도 같이 보여줌.

 

 

 

 

 

정리

 

많은 합성곱 신경망 모델들을 다양한 방법으로 살펴보았습니다.

첫째, 모델의 활성을 시각화하는 방법을 소개했으며, 특징들이 해석할수 없는 특징들이 아니라 층이 올라갈수록 클래스를 판별할수 있는 성질들을 이 나타나는것을 확인하였습니다.  그리고 시각화로  모델이 더 나은 성능을 얻을수 있도록 고칠수 있는지 문제를 찾는데 사용할 수 있었습니다. 

 

 

 

 

 

 

--------------

 

으아ㅏㅏㅏ

 

전부터 논문 정리해야지 싶었는데

 

부족한 영어 실력으로 시간만 오래걸리고 제대로 해석하지도 못했다.

 

계속하기는 질리고

 

 

일단 대강 내용을 정리하면

 

이 논문 저자는

 

 

합성곱 신경망의 필터(특징 맵)을 시각화 하는 방법을 고안해냈는데,

 

이 방법으로 2012년 우승자 모델의 문제점을 찾아내고, 분류 성능을 개선해 내었다고 한다.

 

파스칼, 칼텍 데이터셋으로 훈련해서도 사용해보고 만든 모델이 성능이 더 잘나왔다. 

 

 

특징 시각화 하는 방법으로

 

8계층 합성곱 신경망의 2, 3, 4계층에 디컨브넷을 붙였는데,

 

언 풀링 -> relu -> 컨볼루션(전치) 연산으로, 컨브넷 레이어의 피처맵을 픽셀 맵으로 복원시킨다는것같다.

 

 

어떻게 경쟁자 모델을 개선시켰는지 부분도 안보고

 

 

논문좀 잘 볼줄 알아야 하긴 하는데 어렵네 ㅋㅋㅋ

 

 

 

 

내일 마저 정리해봐야겟다.

 

 

 

300x250

'그외 > 논문' 카테고리의 다른 글

물체 인식을 위한 선택적 탐색  (0) 2020.11.19
중, 고 레벨 특징 학습을 위한 적응적 디컨볼루션 신경망  (0) 2020.11.18
ORB-SLAM 대강  (0) 2020.08.16
ORB SLAM 개요  (0) 2020.08.16
논문 정리  (0) 2020.08.16
728x90

시험 과제를 정리하면서

 

6과목중 마지막 1과목만 남았다.

 

대학 수학, 확률, 통계, 파이썬R, 인공지능 등

 

 

이전에 공부 정리한다고,

 

정신없이 하다보니 

 

내가 이전에 뭘했나 가끔 검색해서 볼때는 도움되지만

 

머리에는 하나도 남아있지 않더라

 

 

그래서 이번 과제를 하면서

 

공부했던 내용들을 많이 복습 할수 있었다.

(오래 걸리기도 했고 ..)

 

 

특히 파이썬R이 문제가 4개인데

 

한문제에 문제가 문항이 2~4개있고,

 

한 문항이 그룹별 시각화를 하라고하니

 

과제하면 할수록 하기싫어져 더 오래 걸리긴 했다.

 

 

 

 

이번에 인공지능 과제물을 하는 중에

 

예~ 전에 공부했던 밑바닥에서 시작하는 딥러닝 책을 참고하는데

 

기억이 새록새록 나면서도,

 

필터를 시각화 했을때 나오는 이상한 문양들이 이게 무슨소리인지

 

잘 이해하지 못하곤 했었다.

 

 

 

한동안 딥러닝을 공부하지 않으면서 서서히 잊어가다

 

이제서야 합성곱 연산의 결과가 특징이고

 

학습된 필터 결과가 특징 분류기인걸 이해했다 ..

 

 

한가지만 깊이 해야하는데 ㅋㅋㅋㅋㅋ 

 

 

 

그걸 보고나서

 

뒤에 나오는

 

LeNet 부터 vgg16, googlenet 등등 보면서

 

지금은 신경망 모델을 이해할수 있을것 같은 자신감이 생기더라 

 

 

 

 

 

한번 딥러닝에 대해서 쭉 정리해보고는 싶었는데

 

마침 저자가 합성곱 계층별 필터 시각화에 대해 다음 논문을 참고 했더라.

 

오늘 과제 마무리하고 저 논문을 정리해볼까 싶다.

 

 

 

 

Visualizing and Understanding Convolutional Networks

합성곱 신경망의 시각화와 이해

ref : arxiv.org/abs/1311.2901

 

 많은 합성곱 신경망 모델들이 이미지넷 밴치마크에서 좋은 성능을 보이고 있는데, 왜 이렇게 성능이 좋고, 어떻게 개선되는지는 명확하지 않았습니다. 본 논문에서는 이 문제들을 다루었으며, 중간 특징 계층과 분류기 동작을 시각화하여 보여주고자 합니다.

 이 과정에서 이미지넷 분류 밴치마크에서 krizhesky의 것보다 더 좋은 성능의 모델을 만들었으며, 여러 모델 계층에서 하나를 제거시 어떻게 성능 변화가 생기는지 실험해보았습니다. 추가적으로, 이 모델을 다른 데이터 셋에 훈련하고 실험해 본 결과 잘 동작하는것을 볼수 있었습니다.

300x250

'그외 > 로그' 카테고리의 다른 글

논문 읽기와 구현  (0) 2020.11.23
과제 마무리  (0) 2020.11.19
인공지능에 대해 공부하면서  (0) 2020.11.11
시험 준비와 근황  (0) 2020.11.09
공부해나간 과정  (0) 2020.11.01
728x90

오늘 방통대 인공지능 과목 내용들을 대강 훌터본것같다.

 

내가 처음 인공지능을 공부했을 때 

 

"밑바닥 부터 시작하는 딥러닝" 책을 보면서 시작했었다.

 

 

그 책은 수학적인 이론 내용들은 최대한 줄이고,

 

개념적인 내용과 구현 위주다 보니

 

인공지능의 범위, 종류

 

기초적인 퍼샙트론의 개념부터

 

신경망을 만들어가고, 학습시키고

 

효과적으로 학습하기 위한 다양한 기법 

 

그리고 당시 딥러닝 기술 등을 알아봤었다.

 

 

 

 

수학 관련 내용이 없다보니 너무 좋긴 했으나

 

mnist 데이터 셋을 분류하는 신경망 만들고,

 

아무 CNN이나 가져와서 이미지 인식을 해보는건 좋은데

 

인공지능으로 뭘 해볼려고 할수가 없었다.

 

 

 

 

그 다음으로는 텐서 플로우 책을 봤었는데

 

쌩으로 신경망을 만들어주는게 아니라

 

함수 하나하나가 신경망 층이되서 

 

밑바닥부터 시작하는 딥러닝 책에서 설명해주는 쌩 코딩보다는

 

훨씬 쉽게 신경망을 만들수 있었다.

 

거기에 대한 이미지 관련 예제들을 해보곤 했었다.

 

 

 

 

그 다음에는 케라스 책을 봤었는데

 

케라스는 텐서 플로보다 더 간단하게 신경망을 만들수 있었으나

 

텐서플로 책과 비슷한 예제만 몇번 해보고 끝났었다.

 

 

 

 

 

 

당시 내가 궁금했던 부분은

 

단순히 여러가지 신경망을 예제만 따라치면서 구현하고 성능 평가하고 끝내기 보다는

 

다른 신경망들을 비교하면서, 모델을 조정하면서 어떻게 성능이 개선되었는지와

 

영상 분할 부분을 제대로 공부하고 싶었는데

 

이런 내용들은 시중 책으로는 잘 나오지가 않더라.

 

특히 영상 분할 같은 경우는 몇 페이지에 설명, 예제 코드 주고 끝일때가 많았다.

 

 

 

 

 

그 이상의 영역은 논문들을 봤어야 했는데

 

당시 수학을 공부하지 않은 상태로는 논문을 제대로 이해할 수도 없었고

 

 

 

 

 

최근 확률, 통계, 다변량 분석 등을 공부하면서

 

이전에 매번 우도, 우도비, 최대우도법 내용들을 볼때마다 번역체 때문에 이해  하지도 못했던것과 달리

 

우도를 가능도라고 배우니까 그동안 답답하던 최대 우도법이 이해가 되었고,

 

 최소 제곱법 또한 R을 이용해서 실제 데이터를 가지고 몇번 연습하면서 좀더 명확하게 알수 있었다.

 

 

 

 

 

 

사실 가장 먼저 공부했어야만 하는 과목인 인공지능을

 

늦었지만 컴퓨터비전, 딥러닝, 패턴인식, 확률, 통계를 공부하고 보니

 

전보다는 많이 이해하게 된거같다.

 

 

 

300x250

'그외 > 로그' 카테고리의 다른 글

과제 마무리  (0) 2020.11.19
시험 과제를 하면서  (0) 2020.11.17
시험 준비와 근황  (0) 2020.11.09
공부해나간 과정  (0) 2020.11.01
공부 고민  (0) 2020.08.16
728x90

올해 12월 말 빅데이터 분석기사 필기 시험이 진행되는데

 

첫 시험 접수 기간이 11.23 ~ 11.27로 얼마 남지 않았다.

 

 

지금 빅데이터, 통계 관련 분야들 어떤걸 공부했더라 ..

 

 

방통대, 학원을 병행하면서

 

 

데이터 분석 전반

 

확률론

 

통계학 제문제

 

실험 계획법

 

회귀모형 등을

 

훑어보고 있다.

 

 

최근 오랜만에 코딩도 조금씩하고

 

방통대 과제 하느라 속도가 많이 느려지기는 했는데

 

마지막 과목으로 다변량 분석까지만 보고

 

빅데이터 분석기사 위주로 공부 진행하고자 한다.

 

어제 제대로 못 자서 피곤하다 ..

300x250

'그외 > 로그' 카테고리의 다른 글

시험 과제를 하면서  (0) 2020.11.17
인공지능에 대해 공부하면서  (0) 2020.11.11
공부해나간 과정  (0) 2020.11.01
공부 고민  (0) 2020.08.16
가끔 보는 유튜브 - 커넥팅닷  (0) 2020.08.16

+ Recent posts