티스토리 뷰

Study/AI

[MLY] end-to-end 학습의 성장

생각많은 소심남 2018. 10. 11. 09:18

 온라인 상품의 리뷰를 검사해주고, 해당 글 작성자가 상품에 대해서 좋아하는지 안 좋아하는지를 자동적으로 알려주는 시스템을 만들고 있다고 가정해보자. 예를 들어 다음 리뷰에 대해서는 아주 긍정적으로 인식되기를 원할 것이다:

This is great mop!( 이건 훌륭한 걸레야! )

그리고 다음 글에 대해서는 매우 부정적인 것으로 인식될 것이다.

This mop is low quality--I regret buying it.(이 걸레는 질이 낮아서, 산 걸 후회한다.)

 긍정적인 것과 부정적인 것을 인식하는데 있어 문제가 발생하는 것을 보통 "감정 분류(sentiment classification)"이라고 부른다. 이런 시스템을 만들기 위해서는 두 가지 구성요소로 이뤄진 하나의 "파이프라인"을 만들어야 한다.

 1. 분석기(Parser)
 : 이 시스템은 문장 내에서 가장 중요한 단어[각주:1]를 식별해서 단어에 각주를 달아주는 역할을 한다. 예를 들어, 문장내 모든 형용사와 명사에 라벨링을 하길 원하면 분석기를 사용해야 한다. 이를 사용하면 다음과 같이 각주가 달린 문장을 얻을 수 있다.

This is a great(형용사) mop(명사)

 2. 감정 분류기(Sentiment classifier)
 : 이 학습 알고리즘은 앞에서 얻은 각주가 달린 문장을 입력으로 받아 전체 문장의 감정을 예측해준다. 분석기의 각주는 이 학습 알고리즘이 잘 동작하도록 도와준다. 형용사에 높은 가중치를 부여함으로써, "great"와 같이 중요한 단어를 재빠르게 습득할 수 있고, "this"와 같이 덜 중요한 단어에 대해서는 무시할 수 있게 해준다.

위와 같은 두가지 요소로 구성된 "파이프라인"을 다음과 같이 시각화 할 수 있다.

 최근 경향은 위와 같은 파이프라인 형태의 시스템을 하나의 학습 알고리즘으로 대체하고 있다. 이 작업을 위한 end-to-end 학습 알고리즘은 입력으로 원래의 문장인 "this is a great mop!"을 받고, 직접적으로 감정을 인식시키게 된다.

 신경망은 end-to-end 학습 시스템에 많이 쓰인다. "end-to-end"라는 단어는 보통 학습 알고리즘에다 직접적으로 입력을 넣고 그에 대한 출력을 직접적으로 얻는 것을 말한다. 예를 들어 학습 알고리즘이 입력의 끝단과 출력의 끝단에 직접적으로 연결되어 있는 것이다.

 데이터가 충분한지의 문제에 관해서는, end-to-end 시스템이 잘 동작할 수 있다. 하지만 이 시스템이 항상 좋은 부분만 있는 것은 아니다. 다음 포스트에서 end-to-end 시스템이 어떨 때 써야하고 어떨때 쓰지 말아야 할지에 대해서 몇가지 예를 들어보고자 한다.

< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 47. The rise of end-to-end learning를 번역한 내용입니다.>

  1. 분석기는 이번 포스트에서 소개한 것보다 더 좋은 각주 형태로 표현할 수 있는데, 여기서 다루는 예제에서는 이정도로도 충분하다. [본문으로]
댓글