실용적으로 비교한 딥러닝, 머신러닝.

실무에서의 데이터분석 분야는, 산업별, 고객별, 상황별로 몇가지로 딱 나눠보기가 힘들다. 웨이퍼 Anomaly 예측, 공항의 수요 예측, 공휴일의 제품 예측, 텍스트 분석을 통한 고객 분류, 고객 군집화 등.

그러나 무언가를 예측해야 하는 작업을 알고리즘적으로 적용해보면, 크게 두세개의 메인스트림이 있다고 할수 있을것같다.

  • 딥러닝이 쓰이는 이미지류
  • 기존의 전통적인 방법이 주가 되는 테이블류의 데이터

딥러닝은 전처리일 뿐

사실 둘이 위상이 다르다. 딥러닝은 보통 feature extraction하는 부분이 메인이라 할수 있고, 정작 데이터를 다 합쳐서 예측하는 부분은 head에서의 인공신경망이 대부분이다. 즉 어떻게 보면 feature engineering의 단계, 피처를 골라내는 전처리와 동일한 의미일수 있다.

컨볼루션 필터, 위에서 아래로 해상도를 바꾸면서 이것저것 합치는 것들, 모두 feature를 잘 뽑아내기 위한 사전단계일 뿐이다. 이 feature는 여러 레이어를 겹치면서 1024 x 1024 이미지가 5 x 5 x 10000 이런식의 10000개의 feature가 골라내지는것이다.

따라서, 딥러닝은 이미지나 음성 등 분명한 패턴은 존재하는데 그 이유가 무엇인지 골라내기가 애매할 때 쓴다고 생각할 수 있다. 예를들어 성별을 구별하는 문제를 생각해보자. 사람의 경우 이성의 얼굴형태나 실루엣만 잠깐 봐도 대부분은 기가막히게 이성인지 동성인지 잘 골라낸다. 그렇다면 이를 잘 구별하게 해주는 요인을 딱 열거해보라면? 눈썹의 길이? 턱의 위치? 입술의 길이? 뽑아내기가 애매하다. 이러한 경우에 딥러닝에 맡기면, 정확히 어떤 로직에 의해 훈련되는지는 바로 알기 힘들지만, 여튼 이후 분류 알고리즘이 신경망에 넣을정도로 예쁘게 feature 를 골라내준다.

텍스트 분석은 어떤가?

텍스트도 마찬가지로 분명한 패턴이 있다. 그러기에 문자가 있고 의사소통이 있다. 다만, 그 패턴이 너무 애매하고 컨텍스트를 파악하는 능력이 중요하다. ‘감’이 중요하다는건데, 그 감이 뭔지 고려하지 않고 번역등을 시도했다가는 엉뚱한 번역이 되기 십상이다. 텍스트분석에는 Embedding이라는 표현을 많이 듣게 되는데, 컨텍스트에 맞게 단어를 숫자로 옮기는 과정이다. 이 자체가 뭔가 분류를 하지는 않는다. 고로, feature extraction과정인것이다. 숫자가 정확히 무엇을 의미하는지는 알지 못한다. 하지만 우리가 바로 말하기 어려운 문맥과 맥락을 어떤방식으로든 표현했다고 생각해볼수는 있다.

디시전 트리류는 이미 feature가 예쁘게 골라져 있을때 쓰기 편하다.

정말 많은 경우의 실무 데이터들이 모조리 이 분류로 떨어지는데, 디시전 트리 기반이 되는 부스팅은 feature는 모두 예쁘게 골라져 있다고 가정한 상태에서 모델 훈련이 시작된다. 회사 실무에서 볼수 있는 데이터들은 오라클 데이터나 여튼 어떠한 데이터베이스에 테이블 형태로 잘 담겨져 있는 형태가 많다. 그걸 고려해서 데이터 설계자들이 테이블을 만들때 열심히 그림도 그려가며 유용한 column을 나열하고 이에따라 데이터들을 열심히 넣게 되었다.

이 설계자들은 어떤사람들인가? 대부분 20년동안 테이블만 만드시는 DBA분들이 있는데, 테이블 설계의 장인이 벌써 feature extraction을 용도에 맞게 잘 해놓았다고도 표현할 수 있다. 물론 gubun과 같은 애매한 단어로 예비 컬럼을 대충쓰다가 섞이는 경우는 있지만, 그럼에도 불구하고 그것또한 규칙은 있게 집어넣어 놓았다.

이러한 경우 딥러닝은 전혀 필요가 없다. 우리가 잘 알려져 있는 컬럼을 무작위로 흩어 놓아 보기 어렵게 한 다음에 다시한번 이를 추출하는 작업을 해야하는가? 이럴 필요가 전혀 없다.

시계열은?

다시한번 생각해보면, . timestamp가 찍혀져 있으면 시계열이라고도 볼수 있지만, 여튼 테이블 형태이다. 단순히 시간에 따른 value의 움직임이 보이는 시계열은 눈에 보이는 패턴이 없으면 기존 이론등(ARIMA, Holt-Winters)에 fitting하기 힘들다. 우리가 관심가지는 시계열 데이터는 사실 굉장히 많은 x변수를 어떻게 처리하냐가 관건이기 때문에, 결국에는 짜내려면 부스팅류를 찾게 된다.

딥러닝을 이용해 피처를 추출 하고, 부스팅을 써서 정확도를 올릴수 있지 않을까?

좋은 시도이긴한데, 정확도는 FCN(Full connected neural network)보다 보통은 떨어진다. 일단 트리기반 부스팅은 결정경계(Decision Boundary)가 우둘투둘하기 때문에 훈련시 있었던 데이터 경계 밖의 보지않은 데이터에 대해서는 쥐약이다. 부스팅의 장점은 스케일링 등이 필요없이 막 집어넣을 수 있고, 범주형 데이터 (Categorical) 또한 취급하기가 너무 쉬운데에 있다. 오라클 DB에 들어가는 데이터는 까보면 엄청나게 많은 범주형 데이터들이 있다. 따라서, 인공신경망이 우세하다.

테이블 데이터에 인공신경망은?

상당히 귀찮은 과정이 있는데, 스케일링을 정말 잘해야 한다는것과 생각보다 많은 파라미터 세팅이 필요하다는 것이다. 부스팅의 경우 대충 iteration만 조절하면 다른 파라미터들은 어떻게 넣든 결국에는 비슷비슷하다.

대부분의 경우, 데이터 feature가 딱딱 나눠지는 테이블 데이터류는 인공신경망(전처리가 잘되었어도)이 부스팅보다 정확도가 소폭 떨어진다.

결론

  • feature가 애매한 경우(이미지, 음성) – 딥러닝 (CNN)
  • feature가 순서가 있고 패턴이 있는데 애매한 경우 (텍스트) – 딥러닝 (RNN)
  • feature가 예쁘게 생긴 테이블이나 꽤 데이터가 많고 전처리가 복잡할 것같은 경우 – 디시전트리를 베이스로 하는 앙상블 방법 (부스팅 혹은 랜덤포레스트, 설명력을 높이려면 단일의 디시전트리)
  • feature간의 상관성이 적고 설명력이 중요한 경우 – 회귀 등.

30 thoughts on “실용적으로 비교한 딥러닝, 머신러닝.

  1. We’re each top notch and good value essay creating support! Our bargain essay writers are serious experts using a MA and PhD levels | Hurry up and ask for a paper.

  2. 마지막 결론 부분에 부스팅 “(랜덤포레스트, 설명력을 높이려면 디시전트리)” 라고 하셨는데, 랜덤포레스트는 boosting기반 모델이 아니라, bagging기반의 모델입니다. bagging의 경우 bootstrap을 허용하여 랜덤하게 여러가지 모델을 만들고 이 결과만 합치는 기법이고, boosting의 경우 여러 모델을 만들긴 하지만 이를 순차적으로 이전 모델의 가중치를 수정하며 학습해나가는 방식이기 때문에 두 개의 개념이 다릅니다. boosting 기반의 모델에는 대표적으로 Gradient Boosting, Adaboost, LightGBM, XGBoost 등이 있습니다.

    1. 사실 글을 올리고 내용을 추가할게 훨씬많았는데 오해의 소지가 많게 글을 그냥 놔뒀네요. ‘혹은’ 이라는 두글자 추가하였습니다.

      좀더 엄밀하게 말하자면, bagging방법과 boosting방법 모두 적극적으로 쓰이는 방법이고,
      boosting모델에는 크게 두가지, 즉 가중치를 학습하는 방식(adaboost)과 잔차, 즉 gradient를 학습하는 방식 두가지가 있습니다. 보통은 후자를 병렬처리로 잘 구현하고 있는 lightGBM과 XGBoost가 항상 많이 쓰이는게 2020년 초까지의 대세였다고 생각합니다. 랜덤포레스트만 혼자 적극적으로 쓰이지는 않구요. 보통 부스팅을 구현한 라이브러리에 bagging자체가 내장되어 있으니..

      해당부분 찾아주셔서 감사합니다.

  3. excellent points altogether, you simply gained a new reader.
    What may you suggest in regards to your put
    up that you simply made a few days ago? Any sure?

    Feel free to visit my webpage see g

  4. When I initially commented I clicked the “Notify me when new comments are added”
    checkbox and now each time a comment is added I get three e-mails
    with the same comment. Is there any way you can remove me from that service?
    Thank you!

    my web page :: to g

  5. Hey there! I’m at work browsing your blog from my new
    apple iphone! Just wanted to say I love reading your blog and look
    forward to all your posts! Carry on the superb work!

    My web page because g

  6. Nice post. I learn something new and challenging on sites I stumbleupon everyday.
    It will always be interesting to read through content from other authors and use a
    little something from their websites.

    my page – g but

  7. It’s amazing in support of me to have a website, which is valuable in favor
    of my know-how. thanks admin

    Here is my web site g many

  8. I have been surfing online more than three hours today, yet I never
    found any interesting article like yours. It is pretty
    worth enough for me. In my opinion, if all website owners
    and bloggers made good content as you did, the net will
    be a lot more useful than ever before.

    Here is my web site – g say

  9. Link exchange is nothing else except it is only placing the
    other person’s weblog link on your page at proper place and other person will also do similar in support of you.

    my site :: use g

  10. I’ve been exploring for a little bit for any high quality articles or blog posts on this
    sort of space . Exploring in Yahoo I eventually stumbled upon this
    website. Reading this information So i’m glad to show that I have
    an incredibly good uncanny feeling I came upon just what I needed.
    I most indubitably will make certain to g
    do not put out of your mind this web site and give it a glance on a continuing basis.

  11. At this time it sounds like Expression Engine is the top blogging
    platform out there right now. (from what I’ve read) Is that what
    you are using on your blog?

    Stop by my site: g rsacwgxy

  12. Good day! Do you know if they make any plugins to help with
    SEO? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing
    very good gains. If you know of any please share. Appreciate
    it!

    Visit my webpage; cbd oil that works 2020

  13. I have been surfing online more than 2 hours today,
    yet I never found any interesting article like yours.
    It’s pretty worth enough for me. Personally, if all website owners and bloggers made good content as you did, the web
    will be a lot more useful than ever before.

    My site – cbd oil that works 2020

  14. Good post. I learn something new and challenging on blogs I stumbleupon everyday.
    It will always be useful to read content from other authors and practice a little
    something from their web sites.

    My page … cbd oil that works 2020

댓글 남기기