[DL] 딥러닝 주요 개념 (1) - Feature Engineering & Deep Learning

­chae-zero·2023년 3월 27일
0

✨ Feature Engineering 이란?

  • Feature Engineering 이란 말 그대로 feature들을 잘 다듬고, 잘 제거하고, 잘 생성하는 engineering을 통해 주어진 데이터를 의사결정에 도움이 되도록 더욱 적절하게 만들어보는 일입니다.

  • 주어진 데이터가 얼마나 적절하게 engineering 되었는지에 따라 의사결정의 규칙이 달라지며,
    이는 모델 제작 난이도를 좌우합니다.

  • 머신러닝에서의 feature engineering은 속된 말로 인력을 갈아서(?) 완성됩니다.

  • 거의 모든 일이 수작업이기 때문에 불상사가 일어나기도 합니다.


📌 수제 Feature Engineering 의 폐해

  • 사람이 오랜 시간 고민을 거쳐 조정한 feature들은 설명이 용이합니다.
    당연합니다, 피같은 시간을 들여 직접 고민하고 결정한 것들이니까요.
    단, 그 설명력은 성능이 망하지 않는다는 전제 하에서만 유효하겠지요.

  • 성능이 망한다면? 아무리 오랜 고민을 거쳤다 한들 해당 feature들은 설명력을 잃습니다.

  • 다음으로, 오차를 줄이는 데에 도움이 될지 안 될지 모델링 전까지는 알 수 없습니다.
    즉, 해봐야 안다 는 것이 단점입니다.

  • 또한, 만들어낸 feature무엇이 도움이 되는 feature인지 설명하기 어렵습니다.

  • 게다가, 원래는 도움을 주던 feature들이 다른 feature가 추가되는 순간 오히려 성능을 저하시키기도 합니다. 오늘의 아군이 내일의 적이 되는 것입니다.

  • 무엇보다도, 충분한 개수의 특징을 제거/생성/수정한 게 맞는지 알기가 어렵습니다.
    사람의 주관적인 판단과 기계의 판단 사이에는 괴리가 있지요.
    사람 입장에선 충분해보여도 기계 입장에선 우주먼지 한 톨일 수 있습니다.

  • 마지막으로, 우리가 나름의 기준을 세워 수많은 새로운 feature들을 만들었다고 합시다.
    이런 경우 너무 많은 feature를 생성한 나머지 모든 feature 하나하나를 설명하기엔 연결고리가 너무 복잡해 설명이 지저분해집니다.

그렇다면, 좋은 변수란 어떤 것들일까요?


📌 좋은 변수들이란?

  • 좋은 변수들은 오차를 줄여주고, 예측률을 높여 성능을 높여줍니다.

  • 또한, 각 변수 하나하나를 설명하는 일이 용이합니다. 분명한 특징을 가지고 있으니까요.

  • 그리고 모델링을 위한 충분한 개수의 feature를 가지고 있을 때,
    우리는 그것들을 좋은 변수들이라고 말할 수 있습니다.

    자, 그래서 좋은 변수들은 어떻게 뽑아야 하냐고요?

  • 사람만의 힘으로 최적의 변수들을 뽑아내기란 쉬운 일이 아닙니다.
    대신, Deep Learning(딥러닝)이 그 일을 대신 해줄 수 있지요.


✨ Deep Learning 의 장점

  • 딥러닝의 학습 과정에서는 기계가 직접 feature engineering과 모델 학습(fitting)을 수행합니다.
  • 이 경우, 알아서 다 해주는 딥러닝 덕분에 우리가 할 일은 대폭 줄어듭니다.
    우리가 할 일은 다음과 같습니다.
    1. Node 수 조절 : feature의 양을 조절
    2. Layer 수 조절 : 얼마나 높은 수준으로 특징들을 뽑아낼지 결정
    3. 각종 파라미터들...

그렇다면, 딥러닝이 특히 빛을 발할 때는 언제일까요?

  • 딥러닝은 사람이 다루기 어려운, 정제가 어렵고 양이 방대한 고차원 데이터를 다룰 때 용이합니다. (ex. CV)

  • 우선, 이미 잘 정제된 데이터를 Tabular Data("정형 데이터")라고 합니다.
    대표적인 예로 excel, csv 파일 등등이 있지요.

  • 정형 데이터의 경우 보통 데이터 양이 많지 않으며, 사람이 feature engineering을 진행할 만한 데이터들도 꽤 많습니다.

  • 그러나 이와 반대되는 비정형 데이터들의 경우는 보통 데이터 양이 압도적으로 많으며, 사람이 직접 다루기가 매우 어렵기 때문에 딥러닝에 맡기는 것이 현명합니다.

  • 즉, 딥러닝은 이미 잘 정제된 데이터보다는 비정형 데이터를 다루기에 적합합니다.

profile
사람 재미를 아는 길잡이가 될래요

0개의 댓글