답변:
내가 보는 방법은 통계 / 기계 학습이 최적화해야 할 것을 알려주고 최적화는 실제로 그렇게하는 것입니다.
예를 들어, 여기서 이고 선형 회귀를 고려하십시오 . 통계에 따르면 이것이 종종 좋은 모델이지만 최적화 문제를 해결하여 실제 추정치 를 찾습니다.
의 속성은 통계를 통해 우리에게 알려져 있으므로 이것이 해결하기에 좋은 최적화 문제라는 것을 알고 있습니다. 이 경우 쉬운 최적화이지만 여전히 일반적인 원칙을 보여줍니다.
보다 일반적으로 많은 머신 러닝은 내가 정규화없이 이것을 작성하고 있지만 쉽게 추가 할 수 있습니다.
통계 학습 이론 (SLT)에 대한 방대한 연구는 무증상 최적인지 아닌지, 의 복잡성과 어떻게 관련되는지 와 같은 것들 의 속성을 연구했습니다 . 그러나 실제로 를 얻으려고 할 때 종종 최적화가 어려워지고 그 문제를 연구하는 사람들이 완전히 분리되어 있습니다. SVM의 역사는 여기서 좋은 예라고 생각합니다. Vapnik 및 Cortes (및 기타 여러)와 같은 SLT 직원이 SVM이 어떻게 해결하기에 적합한 최적화 문제인지 보여주었습니다. 그러나 John Platt 및 LIBSVM 저자와 같은 사람들이 실제로 이것을 가능하게 만들었습니다.F
정확한 질문에 대답하기 위해 일부 최적화를 아는 것이 확실히 도움이되지만 일반적으로 아무도이 모든 분야의 전문가가 아니므로 최대한 많은 것을 배우지 만 일부 측면은 항상 당신에게 블랙 박스 일 것입니다. 선호하는 ML 알고리즘의 SLT 결과를 제대로 연구하지 않았거나 사용중인 최적화 프로그램의 내부 작동을 모르는 것 같습니다. 평생 여행입니다.
실제로 많은 패키지가 최적화와 대부분의 수학 세부 사항을 처리합니다. 예를 들어, TensorFlow는 신경망을 자동으로 학습하기 위해 역 전파 + 확률 적 경사 하강을 자동으로 수행 할 수 있습니다 (학습 속도 만 지정하면 됨). scikit-learn의 ML 도구는 일반적으로 최적화가 실제로 어떻게 이루어지는 지에 대해 실제로 알 필요는 없지만 일부 튜닝 매개 변수를 설정하고 나머지를 처리합니다 (예 : 옵티마이 저가 실행하는 반복 횟수). 예를 들어, scikit-learn에서 수학을 몰라도 SVM을 훈련시킬 수 있습니다. 데이터, 커널 유형을 입력하고 계속 진행하면됩니다.
그러나 기본 최적화 (예 : Boyd 및 Vandenberghe의 Convex Optimization / Bertsekas의 비선형 프로그래밍 수준)를 아는 것은 알고리즘 / 문제 설계 및 분석에 도움이 될 수 있습니다. 또는 최적화 알고리즘을 직접 구현하십시오.
교과서 최적화 방법은 종종 현대적인 환경에서 실제로 작동하기 위해 조정이 필요한 경우가 있습니다. 예를 들어 클래식 Robbins-Munroe 확률 그라디언트 디센트를 사용하지 않고 더 빠른 변형을 사용할 수 있습니다. 그럼에도 불구하고 최적화 문제에 대한 작업을 통해 통찰력을 얻을 수 있습니다.