본문 바로가기
AI/머신러닝

[AI 부트캠프] DAY 50 - 머신러닝 5

by HOHHOH 2023. 9. 26.

[오늘의 일지]

머신러닝 실시간 강의 - ML PJT Workflow, 머신러닝의 정의

[상세 내용]

ML PJT Workflow 

- 이번 머신러닝 수업은 프로젝트를 위함이기에 아래의 큰 틀을 가지고 있습니다.

 

 

머신러닝

시작하면서 느낀점

- 오늘은 머신러닝 실시간 수업이 시작되는 날이었습니다. 지난주 머신러닝 수업 시작 후로 생각해 봤는데 수업을 들으면서 정작 머신러닝 자체의 정의를 한 번도 제대로 정리하고 넘어간 적이 없었던 거 같습니다. 그래서 오늘 수업은 뭔가 근본적으로 머신러닝이라는 것에 대해서 제대로 알고 시작한다는 점에서 의미가 있었던 거 같습니다. 

 

역사

- 역사적인 부분에서 시작한다면 머신러닝의 첫 등장은 대략적으로는 1950년대인 거 같은데 찾아본 사이트들마다 조금씩 다른 이야기를 하고 있어서 정확히는 언제였다고는 할 수 없을 거 같습니다. 그렇지만 대중적으로 알려져 있는 이야기는 인공지능을 연구하기 위해서 처음 시작했는데 그 시작이 체커게임을 학습시키기 위한 알고리즘을 개발했다는 것으로 알려져 있습니다. 여기서 중요한 사실은 체커게임이라는 게임 룰을 데이터라고 정의하고 그 안에서 게임을 승리하기 위함이라는 결과를 도출하기 위해서 기계가 학습했다고 생각하면 오늘날까지 이어져 오는 데이터 분석을 위한 큰 틀은 크게 변하지 않았다는 것을 알 수 있습니다. 여기서 나오는 데이터 분석이란 무엇인지 자세하게 알아보겠습니다.

 

데이터 분석 문제 정의

- 제가 수업시간에 배운 내용에서는 크게 7가지의 질문을 통해서 데이터 분석 문제에 대한 정의를 설명하려고 하는 것 같았습니다. 저는 여기서 아래와 같은 질문을 던지는 이유에 대해서 생각해 봤는데 결과적으로는 얼마나 더 효율적인 방법을 선택해서 데이터를 분석할 것인지에 대한 것이 아닌가 하는 생각이 들었습니다. 그러면서 이러한 데이터 분석을 위한 질문들이 머신러닝을 할 것인지 아니면 다른 더 좋은 방법을 선택할 것인지와 같은 선택지를 주면서 무작정 생각 없이 진행될 작업들에 대한 필터링 역할을 해준다는 것도 알게 되었습니다.

  1. 해당 문제는 예측이 필요한 문제인가?
  2. 예측 모델 개발에 필요한 데이터를 얻을 수 있는가? (eg. 자연수 홀수/짝수 -> 규칙 기반)
  3. 문제 해결 방식이 deterministic 해야 하는가? (eg. deterministic vsv stochastic)
  4. 상황에 대한 해석이 필요한 문제인가? (eg. 정말 해석이 필요하다면 EDA를 하면 된다.)
  5. 정량적 해석이 중요한가, 정성적 해석이 중요한가? (eg. 예측의 정확도 vs 예측 방법의 설명력)
  6. 문제 해결에 모델의 성능이 중요한가? (eg. 정확도 or 시간 or 메모리 사용량)
  7. 문제 해결에 많은 computing resource가 필요한가? (eg. ML vs DL)

 

머신러닝의 정의

- 머신러닝은 경험 E에 대해 특정 작업 클래스 T 및 성능 측정 P와 관련하여, 작업 T에서의 성능이 성장하는 것으로 정의됩니다. 다음과 같은 요소들을 강조합니다.

  • 경험 (Experience, E): 머신러닝은 데이터와 경험에 의존합니다. 모델은 데이터를 통해 학습하고 경험을 쌓아가며 작업을 수행하는 데 사용됩니다. 이 경험은 주로 학습 데이터로부터 얻어집니다.
  • 작업 클래스 (Task Class, T): 머신러닝은 특정 작업을 수행하는 데 사용됩니다. 작업 클래스는 모델이 풀어야 할 과제 또는 작업을 나타내며, 예를 들어 이미지 분류, 음성 인식, 자연어 처리 등이 될 수 있습니다.
  • 성능 측정 (Performance Measure, P): 성능 측정은 모델이 작업 T에서 얼마나 잘 수행하는지를 측정하는 방법이며, 목표와 관련이 있습니다. 성능 측정은 일반적으로 정확도, 정밀도, 재현율, F1 점수 등과 같은 지표를 사용하여 수행됩니다.
  • 성능 향상 (Performance Improvement): 머신러닝의 핵심 목표는 경험을 통해 작업 T에서의 성능을 향상시키는 것입니다. 모델은 학습 데이터를 기반으로 학습하고 최적의 예측을 수행하기 위해 모델 파라미터를 조정하거나 새로운 데이터를 통해 계속적으로 개선됩니다.

 

머신러닝의 7단계

  1. 데이터 수집 (Gathering Data): 머신러닝 프로젝트의 시작 단계로, 필요한 데이터를 수집합니다. 데이터는 문제에 따라 다양한 형태와 소스에서 나올 수 있으며, 데이터 품질이 매우 중요합니다.
  2. 데이터 준비 (Preparing Data): 수집한 데이터를 전처리하고 준비하는 단계입니다. 이 단계에서 데이터 정제, 누락된 값 처리, 이상치 제거 및 데이터 스케일링과 같은 데이터 정규화 작업을 수행합니다. 또한 데이터를 학습용과 테스트용으로 나누는 작업도 이 단계에서 수행됩니다.
  3. 모델 선택 (Choosing a Model): 문제의 종류와 목표에 따라 적절한 머신러닝 모델을 선택합니다. 이는 분류 문제, 회귀 문제, 군집화 문제 등에 따라 다를 수 있습니다. 머신러닝 라이브러리에서 사용 가능한 모델 중에서 선택하게 됩니다.
  4. 모델 학습 (Training): 선택한 모델을 학습 데이터에 적용하여 모델을 학습시킵니다. 학습 단계에서 모델은 입력 데이터와 해당 출력(레이블) 간의 관계를 학습하고 모델 파라미터를 조정하여 예측을 수행할 수 있도록 준비됩니다.
  5. 모델 평가 (Evaluation): 학습한 모델을 검증 데이터 또는 테스트 데이터에 대해 평가합니다. 모델의 성능 지표를 계산하여 모델이 얼마나 잘 수행되는지를 확인합니다. 일반적으로 정확도, 정밀도, 재현율, F1 점수 등의 지표를 사용합니다.
  6. 하이퍼파라미터 튜닝 (Hyperparameter Tuning): 모델의 하이퍼파라미터를 조정하여 모델의 성능을 최적화합니다. 하이퍼파라미터는 모델의 학습 과정 및 구조를 제어하는 매개 변수로, 최적 값을 찾기 위해 그리드 서치, 랜덤 서치 등의 기술을 사용할 수 있습니다.
  7. 예측 (Prediction): 최종 모델이 학습된 후에는 새로운 입력 데이터에 대한 예측을 수행합니다. 이를 통해 모델을 실제 환경에서 사용하고 원하는 작업을 수행할 수 있습니다.

출처:https://www.mygreatlearning.com/blog/what-is-machine-learning/

 

머신러닝 타입

지도 학습 (Supervised Learning)

  • 입력 데이터와 해당 데이터에 대한 정답(레이블 또는 타깃)을 사용하여 모델을 학습시키는 방법.
  • 주로 분류(Classification)와 회귀(Regression) 문제로 나뉨.
  • 예: 이미지 분류, 스팸 이메일 탐지, 주택 가격 예측

비지도 학습 (Unsupervised Learning)

  • 정답 레이블이 제공되지 않는 데이터에서 패턴이나 구조를 발견하는 방법.
  • 주로 군집화(Clustering)와 밀도 추정(Density Estimation)으로 나뉨.
  • 예: 고객 세그먼테이션, 이미지 압축, 주성분 분석(PCA)

반지도 학습 (Semi-Supervised Learning)

  • 일부 데이터에만 레이블이 주어진 상황에서 모델을 학습시키는 방법.
  • 레이블이 없는 데이터를 레이블링 하기 위해 보조 정보를 활용.
  • 예: 웹 문서 카테고리 분류, 의료 이미지 분석

강화 학습 (Reinforcement Learning)

  • 에이전트(Agent)가 환경(Environment)에서 행동하고 보상(Reward)을 기반으로 학습하는 방법.
  • 에이전트는 시간 경과에 따라 행동을 선택하고 최대 보상을 얻으려고 시도함.
  • 예: 게임 플레이, 자율 주행 자동차 제어

출처:https://towardsdatascience.com/types-of-machine-learning-algorithms-you-should-know-953a08248861
출처:https://priyalwalpita.medium.com/types-of-machine-learning-556529ad6a23

 

Data split

Data split은 머신러닝 및 데이터 분석에서 중요한 단계 중 하나입니다. 데이터 분할 또는 데이터 분리라고도 합니다. 이 작업은 데이터를 여러 부분 또는 하위 집합으로 나누는 것을 의미합니다.

  • 학습 데이터 (Training Data): 이 부분은 모델을 학습하는 데 사용됩니다. 모델은 학습 데이터에서 패턴을 학습하고 최적의 예측을 수행하기 위해 조정됩니다. 일반적으로 전체 데이터의 대다수(약 70-80%)가 학습 데이터로 할당됩니다.
  • 검증 데이터 (Validation Data): 학습 데이터로 모델을 학습하고 나면 모델의 성능을 평가하고 튜닝하기 위한 데이터 부분입니다. 이 데이터는 모델의 하이퍼파라미터를 조정하거나 모델의 일반화 성능을 검증하는 데 사용됩니다. 검증 데이터는 학습 데이터와 독립적이어야 하며, 모델의 학습에 직접적으로 사용되지 않아야 합니다.
  • 테스트 데이터 (Test Data): 모델이 학습 및 검증 단계를 거친 후에 최종 모델의 성능을 평가하기 위해 사용됩니다. 모델이 처음에 보지 못한 데이터에 대한 성능을 평가하는 데 사용되며, 모델의 일반화 능력을 측정하는 데 중요합니다. 테스트 데이터는 학습 및 검증 데이터와 독립적이어야 합니다.

출처:https://www.mygreatlearning.com/blog/what-is-machine-learning/

 

[마무리]

 오늘은 머신러닝을 그 자체로 정의하면서 왜 수행해야 하는지, 어떻게 시작하는지와 같은 근본적인 내용에 대해서 공부했던 거 같습니다. 결과적으로 머신러닝은 기계를 학습시키면서 새로운 예측을 위한 학습된 모델을 구축하는 것이 중요한 목적이라는 것을 알게 되었습니다.  오늘 배운 내용을 하나의 이미지로 나타낼 수 있다면 아래와 같다고 느껴서 가져와 봤습니다.

출처:https://www.mygreatlearning.com/blog/what-is-machine-learning/

반응형

댓글