안녕하세요 배도리 입니다. 머신러닝에 대해서 공부한 내용을 이곳에서 함께 공유하려고 합니다. 그런데 아직은 관련 지식이 많이 부족하고 블로그 운영도 생전 처음이라 글의 두서가 없을 수 있습니다. 게다가 지식도 없을 뿐더러 저는 또 영특하지 못합니다. 이것저것 많이 부족하네요. 하지만 영특한 분들과 어느정도 비빌 수 있게 해주는것이 꾸준함이라 생각합니다. 마부작침. 도끼를 갈아 바늘로 만드는 것처럼 하루 하루 갈아보겠습니다.
우선 머신러닝의 기본개념과 그리고 우리가 앞으로 머신러닝의 어느 부분에서 공부할지를 살펴보겠습니다.
Machine Learnig(ML)이란 인공지능의 한 분야로 데이터로부터 학습하여 모델을 구축하는 프로세스이며 데이터와 통계적인 모델링 기법을 활용하여 컴퓨터가 스스로 학습하는 알고리즘을 개발하는 기술입니다. 이를 통해 컴퓨터는 데이터를 분석하고, 패턴을 발견하며, 이를 기반으로 예측이나 분류를 수행할 수 있습니다. 인공지능은 많은 분야가 있는데 인공지능의 많은 분야 중 머신러닝이 있고 머신러닝 분야 중 딥러닝이 있습니다.
ML Model은 데이터셋 패턴을 학습하는 알고리즘 사용하여 학습된 결과물을 나타내는 것입니다. 모델은 데이터와 통계적인 모델링 기법을 사용하여 학습되며, 새로운 데이터를 입력으로 받아 원하는 결과를 출력합니다.
ML Project란 머신러닝을 사용하여 문제를 해결하기 위해 수행되는 프로젝트를 의미합니다. 데이터 수집 및 가공, 모델만들기. 모델 검증, 배포, 모니터링 등 여러 과정을 거치는 단계들로 구성되어 있습니다.
다음은 ML Project가 어떤 방식으로 이뤄지는지 보겠습니다.
MLOps(ML Operations)라는 방법론이 있는데 모델이 프로덕션까지 도달하는데 도움을 줍니다. ML Model의 지속적인 배포 및 자동화를 위한파 파이프라인입니다. 과정은 다음과 같습니다.

이것을 6단계로 나눈다면 다음과 같습니다.
1단계 : 문제정의 - ML로 해결가능한 문제 정의 및 데이터 확보방안
2단계 : 데이터 준비 - 데이터 수집 및 탑색
3단계 : 모델 설계 - 모델학습과 실험
4단계 : 배포/서빙 - 모델을 통한 서비스 운영
5단계 : 모니터링 - 지속적인 서비스 모니터링
6단계 : 모델 재 학습 및 재 배포
이렇듯 머신러닝은 여러 단계 들로 이뤄져있습니다. 머신러닝을 한다고하면 저걸 다한다고 해야하니... 그래서 큰 부분 중 저는 3단계, 여기에 집중해보겠습니다. 3단계는 데이터과확자가 맡게되는 업무 중 하나입니다. 앞으로 이 폴더에 업로드 되는 게시물들은 모델 설계 관련 방법론과 코드내용에 관한것입니다. 각설하고 일단
3단계(모델설계)에 과정에 대해 알아보겠습니다.
- 데이터가공(데이터 전처리 포함) : 데이터 가공 방법은 모델의 성능을 좌우하는 중요한 부분입니다.ex) 데이터 레이블링
데이터를 다루는 단계에 있어서 가장 시간이 오래걸리는 과정 중 하나입니다.
- 모델학습(모델 만들기) : 모델 학습을 위한 입력 조건으로 데이터, 학습 알고리즘, 하이퍼파라미터가 있습니다.
학습알고리즘은 입력데이터로부터 패턴을 찾아냅니다. 하이퍼 파라미터는 최적의 성능을 내기 위한 알고리즘의 속성입니다. 결국 모델은 데이터/알고리즘/하이퍼파라미터를 이용한 연산을 거쳐 만들어지는 산출물 입니다.
그 과정은 입력(데이터셋/학습 알고리즘/하이퍼파라미터 값) ㅡ> 학습(모델학습 인프라) ㅡ> 출력(모델) 입니다.
- 실험 : 다양한 실험을 통해 최적의 모델을 찾아가는 것을 의미하며 위에 언급된 입력조건을 바꾸는 과정입니다. 다양한 모델에 따른 성능비교 및 학습조건을 비교하여(비교평가라고 칭함) 최적의 모델을 찾습니다. 최적의 모델은 만족할만한 성능을 제공하는 모델입니다.
최적화의 의미는 문제해결을 위해 모든 경우의 수를 탐색하지 않고 최적화된 방법으로 입력조건을 찾아내는 과정입니다.
모든경우의수라 함은 데이터셋의수 * 알고리즘의 수 * 하이퍼파라미터 값의 수 가 되겠습니다. 최적화는 일반적으로 기존 연구결과를 참조하거나 개인의 노하우를 활용합니다.
이러한 과정들을 쉽게 해주는 것이 있습니다. 바로 Auto ML(Automated ML) 입니다.
- Auto ML: 모델학습/최적화/비교평가 자동화가 이뤄짐으로써 빠르게 최적의 모델을 찾아내는 지능화된 학습방법입니다. 따라서 개발자가 직접 데이터, 알고리즘, 하이퍼파라미터 등을 변경하면서 실험하는 과정이 불필요합니다. 똑똑한친구라서 모든경우의 수를 실험하지 않고 입력 조건에 따른 ML파이프라인 성능을 예측하여 성능이 좋을 것으로 예상되는 입력조건을 통해 모델 학습을 자동적으로 진행합니다.
실험추척관리 기능이 있어서 최적의 모델 선정을 위해 비교평가가 가능하도록 모든 실험조건을 기록하고 관리합니다. 예를 들어 메타정보인 데이터버전, 코드 버전, 환경(패키지) 버전을 관리하고 여러 차례 실험 수행을 통해 얻어진 다수의 모델 버전을 관리합니다
이제 마지막 과정입니다.
- 모델검증 : 모델검증은 예측성능과 처리성능으로 나뉩니다. 우선 예측성능은 모델의 예측값이 실제값에 얼마나 가까운가를 측정(performance metrics)하고 일반화(Generalization)의 정도를 측정합니다. 일반화 정도는 적정 수준의 적합화로(model fitting) 이해하시면 됩니다. 이 부분은 ML 과학자의 관심사 입니다.
처리성능은 모델이 예측값을 계산해 내는데 소요되는 시간 및 사용하는 컴퓨팅 자원입니다. 서비스가 배포된 뒤 얼마나 안정적으로 운영되고 있는지 확인하는 지표입니다. 이 부분은 ML 엔지니어의 관심사 입니다.
쓰다보니 길어졌네요 이렇게 장황하게 쓰는게 맞는지 모르겠습니다. 다른분들은 어떻게 하시는지 참고하고 싶은데 계속 카피할것 같아서 참고있습니다.
다음 포스팅은 머신러닝에서의 파이썬에 대해서 설명하겠습니다.
'Machine Learning_모델설계_Python' 카테고리의 다른 글
| Pandas_1 개요 (3) | 2023.05.01 |
|---|---|
| Numpy_3 비교연산과 데이터 추출 (0) | 2023.04.30 |
| Numpy_2 배열 연산, 장단점 (1) | 2023.04.28 |
| Numpy_1 개념 및 배열 객체 다루기 (2) | 2023.04.27 |
| 머신러닝에서 Python을 쓰는 이유 (1) | 2023.04.26 |