티스토리 뷰

728x90

[ 밑줄/연결 ]

 

머신러닝은....주어진 목표에 맞게 최적화하는 확률적인 방식으로 문제를 해결할 수 있습니다.

경험적으로 해결책을 정의할 수 없는 문제에 적합한 시스템을 만들 때 특히 머신러닝이 유용합니다.

 

감당할 만한 규칙으로 문제를 해결할 수 있다면 머신러닝을 사용할 필요가 없습니다. (ex: 세금 계산 등)

 

머신러닝 문제는 데이터로부터 어떤 함수를 학습하는 것으로 간주됩니다.

 

머신러닝의 가능성을 평가하기 위해 머신러닝 문제의 두 가지 핵심 요소인 모델과 데이터를 파악해야 합니다.

(1) 모델 

ㅇ 많은 제품의 목표를 지도학습과 비지도 학습 알고리즘으로 다룰 수 있습니다. 

ㅇ 입력과 출력의 종류를 바탕으로 머신러닝 카테고리 중에서 잘 맞는 것을 찾을 수 있습니다.

- 분류와 회귀

- 지식 추출

- 카탈로그 구성 : 영화 추천

- 생성 모델 : 번역, 요약, 영상과 음성의 자막 생성, 이미지 생성 등 

 

(2) 데이터

ㅇ 데이터 타입, 데이터 가용성, 데이터 품질, 데이터 양과 질 등

 

머신러닝 프로젝트는 태생적으로 반복적이어서 데이터 정제, 특성 생성, 모델 선택을 여러 번 반복합니다.

모범 사례를 따르더라도 반복 속도를 느리게 만드는 두 영역은 디버깅과 테스트입니다.....머신러닝 프로젝트에는 더욱 중요합니다. 모델의 확률적 속성 때문에 간단한 오류를 찾는 데도 며칠이 걸리는 경우가 있습니다.

 

대부분의 SW 애플리케이션에서 test coverage가 높으면 애플리케이션이 잘 동작한다는 강한 확신으 줄 수 있습니다. 하지만 머신러닝 파이프라인은 많은 테스트를 통과하더라도 여전히 잘못된 결과를 만들 수 있습니다. 

 

 

캐시와 모델을 최신으로 유지하는 일은 어려울 수 있습니다. 많은 모델이 성능을 유지하기 위해서는 정기적으로 다시 훈련해야 합니다..

 

훈련된 모델은 일반적으로 학습된 파라미터는 물론, 타입과 구조에 관한 정보가 포함된 이진 파일로 저장됩니다. 대부분의 제품 애플리케이션은 시작할 때 훈련된 모델을 메모리에 적재하고 이를 호출해 결과를 제공합니다. 

모델 성능을 향상시키는 가장 좋은 방법은 데이터 처리와 특성 생성 과정을 반복하는 것입니다. 이는 새로운 버전의 모델이 추가적인 전처리 단계나 다른 특성이 필요

(머신러닝을 위한  CI/CD)

CI(지속적 통합)은 여러 개발자가 정기적으로 자신의 코드를 중앙 코드 저장소에 합치는 과정

CD(지속적 배퍼)는 새로운 버전의 SW를 릴리스하는 속도를 향상시키는 데 초점을 맞춥니다.

 

 

[ 자평 ] 실제 머신러닝 기반 애플리케이션을 만드는 개발자를 위한 책...

 

개발 업무를 할 필요가 없으므로 훑어서 읽었다.

특히 머신러닝 애플리케이션 배포와 유지보수에 대한 부분에서 기존 방식과 다른 점을 배울 수 있었다.

 

 

댓글