-
#딥러닝 관련 논문 읽기 팁 #End-to-End LearningData miner/Information Retrieval 2019. 11. 7. 14:12728x90
아래는 두 가지 테마를 각각 이어서 연결한 글입니다. :)
#딥러닝 관련 논문 읽기 팁
신경망 모형, 딥러닝 모델이 기존의 수학적 모델과의 큰 차이점은 아이디어를 보다 유연하게 구현할 수 있다는 점이다. 신경망 모델 및 딥러닝 모델은 뉴런과 뉴런 사이를 잇는 weight들로 표현되는데, 이는 추후에 모델의 output이 다시 그 모델의 input으로 재학습 될 수 있다. 사용자의 목적에 따라서 뉴런의 연결 모양새가 달라지니, 수식적인 도출로 특정 출력값을 계산하는 것보다는 보다 유연한 사고를 할 수 있는 도구라고 할 수 있겠다. 이런 이유로, 특정 문제를 해결하기 위해서 딥러닝 모델을 사용했다면, 그 딥러닝 모델의 구조가 어떠한지를 살펴보아야 한다. 특정 문제를 해결하는데 성능이 우수한 모델을 제안했다면(보통의 논문들이 내 제안법이 최고!라고 하니까) 그 모델을 학습해 나가기 위해서 어떤 손실함수를 썼는지에 대해서 짚고 나가는 것이 중요하다고 하겠다.
#End-to-End learning? (출처: Andrew En의 강의)
논문에서 Encoder 'end-to-end' 라던가, End-to-End Learning을 심심찮게 발견하였다. 본 포스팅에서 다뤄보고자 한다. 딥러닝 분야에서 발전을 가져오게 한 접근법이라고 하는데, 뭘까? End-to-End은 '한 끝에서 한 끝을 잇는'이라는 사전적 의미를 가지고 있다. 이로부터 유추할 수 있듯이, End-to-End deep learning은 어떤 문제를 해결해 나가는 데 있어서 여러 가지 스텝이 필요한데, 이 End-to-End learning은 이 스텝들을 하나의 신경망을 통해서 '재배치'하는 과정을 의미한다. 문제 해결을 위한 하나의 파이프라인을 하나의 신경망 네트워크로 한 큐(?)에 해결할 수 있다. 기존의 파이프라인을 구축하는 방식은 데이터 크기가 적용할 때 유용하고, End-to-End Deep learning 접근 방식은 데이터 크기가 클 때 효율적이라고 한다.
실제 회사에서 쓰이는 알고리즘의 경우, 이론적인 정의처럼 하나의 신경망으로 모든 문제를 해결하려고 하지는 않는다고 한다. 크게는 두 개로 나누어서, 하나의 목적에 부합하는 신경망 네트워크를 구축하고, 이어서 다음 단계의 목적에 부합하는 네트워크를 생성하는 식이다. 성능이 좋기 위해서는 하나의 신경망으로 많은 데이터가 필요하지만, 두 가지 스텝으로 나눠서 처리할 경우 성능이 보다 좋기 때문이다. 앤드류 응의 소개에 의하면 바이두 기업에서는 End-to-End learning을 기반으로 얼굴 인식 기술을 실제에 적용했는데, 이 경우 사진에서 사람의 얼굴 부분만을 인식하는 부분과 그 추출한 이미지의 부분이 모델이 보유하고 있는 사람들의 얼굴값과 일치하는지 판별하는 부분 두 가지로 나누어서 학습했다고 한다.
흥미로운 점은, 이렇게 하나의 네트워크로 표현할 수 있게 됨으로써, 각각의 세부 파이프라인의 부속의 엔지니어링을 담당하던 사람들이 자신들의 연구 분야가 갑자기 작아지게 되었다고... AI 및 데이터 분석 분야에서도 분석 파트 마다 시류에 따라서 입지차가 극명하다는...
'Data miner > Information Retrieval' 카테고리의 다른 글
#[논문리뷰] Multiple Instance Learning Networks for Fine-Grained Sentiment Analysis (0) 2019.12.11 #hierarchical softmax #Word2vec을 효과적으로 학습시키는 방법 (0) 2019.11.25 서치 엔진에서의 사용자의 의도에 따른 3 가지 Query 유형 (0) 2019.11.06 #Information_retrieval #Inverted_Index (0) 2019.10.22 #FastText #초기_Pre-trained_model #논문리뷰 (0) 2019.10.22