신경망에 기능 선택 / 엔지니어링이 필요한 이유는 무엇입니까?


14

특히 kaggle 경쟁과 관련하여 모델의 성능이 기능 선택 / 엔지니어링에 관한 것임을 알았습니다. 더 전통적인 / 구식 ML 알고리즘을 처리 할 때 그 이유가 무엇인지 완전히 이해할 수는 있지만 심층 신경망을 사용할 때 왜 그런지 알 수 없습니다.

딥 러닝 책 인용 :

딥 러닝은 다른 더 단순한 표현으로 표현되는 표현을 도입함으로써 표현 학습에서이 중심적 문제를 해결합니다. 딥 러닝을 통해 컴퓨터는 간단한 개념으로 복잡한 개념을 구축 할 수 있습니다.

따라서 나는 항상 "정보가 데이터에 있다면"충분히 깊이 매개 변수화 된 신경망이 충분한 훈련 시간이 주어지면 올바른 기능을 선택할 것이라고 생각했습니다.


4
당신의 두뇌는 여전히 기계보다 더 강력합니다. 따라서 인간의 작은 도움은 먼 길을갑니다
Aksakal

누가 기능 선택 / 엔지니어링이 필요하다고 말합니까? 당신은 어떤 참조를 줄 수 있습니까? 당신이 이미지로 작업 할 때, 그들은 거의 엔드-투-엔드로 작동합니다 ...

그게 요점입니다. 나는 문헌에서 신경망이 엔지니어링 및 선택 기능을 자동으로 수행한다고 가정하기 때문에 기존의 머신 러닝에서 한 단계 발전한 것으로 종종 인상을받습니다. 이것은 정보가 여전히 부족하다고 생각하는 CV 또는 NLP의 많은 작업에서 사실입니다. 반면에, 많은 노이즈 데이터를 이용할 수있는 경쟁 데이터 과학 (kaggle)에서 경쟁 솔루션을 구축하는 데 가장 중요한 요소는 "매직 기능"을 찾는 것입니다.
CephasW

CompVis에 대해 말할 수 있는데, 나중에 기능 엔지니어링을 수행하여 프로젝트를 네트워크에 공급하는 프로젝트를 기억할 수는 없습니다. 이는 이미지 품질이 일반적으로 낮은 의료 이미지 데이터에도 적용됩니다. 어쩌면 이것은 다른 분야에서 다를 수 있습니다 ...이 점에서 참조 할 수있는 논문이나 출판물이 있습니까? 고맙겠습니다.

답변:


18
  • "충분히 심도있는"네트워크가 너무 거대하여 모델 교육 비용이 너무 비싸거나 (AWS 요금이 추가됨) 리소스가 제한된 환경에 네트워크를 배포해야합니까?

  • 어떻게 알 수 있습니다, 사전 네트워크가 잘 파라미터된다? 제대로 작동하는 네트워크를 찾으려면 많은 실험이 필요할 수 있습니다.

  • 작업중인 데이터가 수천 또는 수백만 비트로 구성된 이진 문자열과 같은 표준 분석 방법에 "친숙하지 않은"경우 각 시퀀스의 길이가 다릅니다.

  • 사용자 수준 데이터에 관심이 있지만 트랜잭션 수준 데이터 만 수집하는 데이터베이스를 사용해야하는 경우 어떻게해야합니까?

  • 12,32,486,73,5,18,7

우리는 데이터 분석이 "턴키"인 세상에 살고 싶지만 이러한 종류의 솔루션은 일반적으로 특별한 경우에만 존재합니다. 이미지 분류를위한 심층적 인 CNN을 개발하기 위해 많은 작업이 진행되었습니다. 이전 작업에는 각 이미지를 고정 길이 벡터로 변환하는 단계가있었습니다.

기능 엔지니어링을 통해 실무자는 문제에 대한 지식을 피드 포워드 네트워크에 적합한 고정 길이 벡터로 직접 변환 할 수 있습니다. 기능 선택은 모델에 대한 매개 변수 수를 대폭 줄이면서 신호를 잃어 버리는 관계없는 기능을 너무 많이 포함시키는 문제를 해결할 수 있습니다.


6

여기서 핵심 단어는 사전규모 입니다. 간단한 예로, 사진에서 사람의 나이를 예측한다고 가정하십시오. 이미지와 연령의 데이터 세트를 사용하면 딥 러닝 모델을 훈련시켜 예측할 수 있습니다. 이미지의 90 %가 쓸모없고 사람이있는 영역 만 실제로 유용하기 때문에 객관적으로 실제로 비효율적입니다. 특히, 사람의 얼굴, 몸 및 옷일 수 있습니다.

반면에 사전 훈련 된 물체 감지 네트워크를 사용하여 먼저 사람의 경계 상자를 추출하고 이미지를 자른 다음 네트워크를 통과 할 수 있습니다. 이 프로세스는 여러 가지 이유로 모델의 정확도를 크게 향상시킵니다.

1) 모든 네트워크 자원 (즉, 가중치)은 먼저 사람을 먼저 찾아야하는 것과 달리 실제 연령 예측 작업에 초점을 맞출 수 있습니다. 사람의 얼굴에 유용한 기능이 포함되어 있기 때문에 특히 중요합니다. 그렇지 않으면, 처음 몇 층에서 필요한 미세한 기능이 손실 될 수 있습니다. 이론적으로는 충분히 큰 네트워크가이 문제를 해결할 수도 있지만 비효율적입니다. 자른 이미지는 원본 이미지보다 훨씬 더 규칙적입니다. 원본 이미지에는 많은 노이즈가 있지만, 잘린 이미지의 불일치는 대상과 훨씬 더 밀접한 관련이 있습니다.

2) 잘라낸 이미지는 동일한 배율 로 정규화 될 수 있습니다 . 이렇게하면 두 번째 네트워크가 스케일링 문제를 처리하는 데 도움이됩니다. 원본 이미지에서는 사람들이 가까이 또는 멀리서 발생할 수 있기 때문입니다. 사전에 배율을 표준화하면 자른 이미지에 자른 이미지 전체를 채울 사람이있을 수 있습니다 (멀리 떨어져 있으면 얼빠진 상태 임에도 불구하고). 이것이 어떻게 스케일링에 도움이되는지보기 위해 원본 이미지의 너비와 높이의 절반 인 자른 몸체는 처리 할 픽셀 수가 4 배 적으므로이 이미지에 적용된 동일한 네트워크는 각 레이어에서 원래 네트워크의 수용 필드의 4 배가됩니다.

예를 들어, kaggle lung 경쟁에서 최상위 솔루션 의 공통 주제는 가능한 한 많이 자르고 각 폐의 구성 요소를 분리하는 폐 이미지에 대한 일종의 전처리였습니다. 입방체 효과이기 때문에 3D 이미지에서 특히 중요합니다. 각 치수의 20 %를 제거하면 거의 절반의 픽셀을 제거 할 수 있습니다!


4

이 현상에 대한 나의 직관은 배울 모델의 복잡성과 관련이 있습니다. 심층 신경망 은 이론적으로 모든 기능 근접 할 수 있지만 매개 변수 공간의 크기는 수백만에서와 같이 실제로 클 수 있습니다. 따라서 실제로 좋은 신경망을 찾는 것은 정말 어렵습니다. 저는 기능 엔지니어링에 대해 알고리즘을 먼저 시작하여 데이터 표현에 관한 추가 정보를 제공하는 것으로 생각하고 싶습니다. 물론 이것은 공식적인 설명이 아니며이 질문은 과학적으로 엄격하게 대답하기 어려울 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.