TIL

내일배움캠프 본캠프 11일차 - 머신러닝 개념 정리

수현조 2024. 12. 9. 20:59

오늘 공부한 것

요약: 머신러닝의 핵심 지식과 개요

1. 머신러닝의 정의

  • 머신러닝은 컴퓨터가 데이터에서 학습하고, 사람이 정해주지 않은 규칙과 패턴을 스스로 찾아내는 능력입니다.
  • 전통적인 프로그래밍과 달리, 조건을 미리 지정하지 않고 데이터를 기반으로 작업을 수행합니다.
  • 머신러닝의 목표는 데이터를 활용해 예측, 분류, 최적화와 같은 문제를 자동으로 해결하는 것입니다.

2. 머신러닝의 특징

  • 학습 기반 접근법:
    • 일반 프로그램은 미리 정의된 수학적 공식으로 결과를 생성.
    • 머신러닝은 데이터를 기반으로 규칙을 학습하고, 이를 통해 예측과 분류 작업 수행.
  • 데이터 중심적:
    • 충분한 양과 품질의 데이터가 머신러닝 성능에 중요한 역할을 합니다.
  • 자동화된 의사결정:
    • 머신러닝 모델은 데이터 분석을 자동화하고 빠르게 의사결정을 내릴 수 있습니다.

3. 머신러닝의 학습 과정

  1. 문제 정의:
    • 해결할 문제를 명확히 정의하고 목표를 설정.
  2. 데이터 수집 및 전처리:
    • 데이터를 수집하고, 결측값 처리 및 이상치 탐지로 데이터를 정제.
  3. 모델 학습:
    • 데이터를 사용해 머신러닝 모델을 학습시킴(지도학습, 비지도학습, 강화학습 등).
  4. 성능 평가:
    • 모델이 얼마나 잘 작동하는지 평가(정확도, 정밀도, 재현율 등).
  5. 모델 개선:
    • 하이퍼파라미터 튜닝, 피처 엔지니어링 등을 통해 성능을 최적화.

4. 머신러닝의 종류

  1. 지도 학습(Supervised Learning):
    • 입력 데이터와 출력 데이터(레이블)를 함께 사용해 학습.
    • 예: 분류, 회귀.
    • 주요 알고리즘: 로지스틱 회귀, 의사결정 트리, 랜덤 포레스트, 서포트 벡터 머신(SVM).
  2. 비지도 학습(Unsupervised Learning):
    • 입력 데이터만 사용하여 데이터의 구조나 패턴을 학습.
    • 예: 군집화, 차원 축소.
  3. 강화 학습(Reinforcement Learning):
    • 에이전트가 환경과 상호작용하며 보상을 최대화하는 방향으로 학습.
    • 예: 자율 주행, 게임 AI.

5. 머신러닝 학습 로드맵

  1. 수학 및 통계학:
    • 선형대수, 미적분, 확률 개념 이해.
  2. 파이썬 프로그래밍:
    • 파이썬의 기본 문법과 데이터 구조 이해.
  3. 데이터 정제:
    • 데이터 전처리 기술 습득.
  4. 머신러닝 알고리즘 학습:
    • 지도학습, 비지도학습, 강화학습의 개념과 알고리즘 학습.
  5. 딥러닝 프레임워크 사용:
    • TensorFlow, PyTorch와 같은 딥러닝 프레임워크 활용.
  6. 실전 프로젝트 수행:
    • 데이터를 수집하고 분석하며, 머신러닝 모델을 학습시키고 성능을 평가.

6. 머신러닝의 응용 분야

  • 의료: 질병 진단 및 치료 예측.
  • 금융: 사기 탐지, 신용 점수 예측.
  • 자율주행: 차량 경로 계획 및 장애물 감지.
  • 추천 시스템: 사용자 맞춤형 콘텐츠 추천.

7. 주요 도구: 사이킷런(Scikit-learn)

  • 장점:
    • 사용하기 쉽고 오픈소스.
    • 다양한 알고리즘 및 평가 도구 제공.
  • 주요 기능:
    • 모델 학습 및 평가(GridSearchCV, K-겹 교차검증).
    • 데이터 전처리 및 피처 엔지니어링.
    • 앙상블 방법(Random Forest 등) 지원.

8. 머신러닝과 빅데이터

  • 머신러닝 모델은 빅데이터를 학습하여 규칙과 패턴을 찾아냅니다.
  • 빅데이터는 구조화된 데이터(테이블 형식)와 비구조화된 데이터(텍스트, 이미지)를 포함합니다.
  • 데이터의 양과 질은 머신러닝의 성능에 결정적인 영향을 미칩니다.

9. 데이터 속성

  • 핵심 속성: 예측하려는 결과값(레이블)에 중요한 영향을 미치는 속성.
  • 범주형 데이터:
    • 순서가 없는 명목형 데이터(예: 성별).
    • 순서가 있는 순서형 데이터(예: 성적 등급).

 

일단 오늘은 이 부분까지 학습했다.
집중이 되지 않아서 타이핑하면서 공부를 했는데
타이핑한 것을 지피티한테 주니까 이렇게 요약을 해 주었다. 나도 보려고 이렇게 남겨둔다. 깔꼼하군..

그리고 행렬, 벡터에 대해서도 학습했다.
튜터님께서 특강을 해 주셨기 때문
인공지능에 수학 지식이 필요하다는 것이 생각해보면 당연했는데... 거기까지 생각을 못했나보다

행렬이 어떻게 생겼는지, 곱셈은 어떻게 하는지 등은 기억이 났고, 잘 모르던 부분에 대해서 정리하겠다.

 

 

단위행렬이 필요한 이유

1. 행렬 곱셈의 중립원 역할

단위행렬은 행렬 곱셈에서 1과 같은 역할을 합니다.

  • 단위행렬은 아무 행렬에 곱해도 그 행렬을 변경하지 않습니다.
  • 이는 행렬 연산의 중립원(identity) 역할을 합니다.

2. 역행렬의 정의에 필수적

  • 단위행렬은 역행렬의 계산과 존재성을 확인하는 데 필수적입니다.

3. 선형 시스템 풀이에서 기준점 제공

  • 단위행렬은 변환 과정에서 기준 역할을 합니다.

4. 가우스-조르단 소거법에서 중요한 역할

  • 행렬의 역행렬을 구하거나 행렬을 대각화하는 과정에서, 단위행렬은 목표 상태입니다.

5. 행렬 변환의 고유성 확인

  • 선형 변환에서, 단위행렬은 벡터 공간을 변형하지 않는 고유한 변환으로 사용됩니다.
    즉, 어떤 벡터도 단위행렬과 곱하면 변하지 않습니다.

단위행렬의 응용

  1. 벡터 공간의 유지
    • 단위행렬은 변환 없이 원래 공간을 보존합니다.
  2. 역행렬 확인
    • 행렬이 역행렬을 갖는지 확인할 때 곱한 결과가 단위행렬인지 확인합니다.
  3. 선형 시스템 풀이
    • 단위행렬을 통해 선형 방정식의 해를 직접 계산하거나 검증할 수 있습니다.
  4. 기본 행렬 연산
    • 행렬 분해(예: LU 분해, QR 분해)에서 단위행렬은 초기 상태를 나타내거나 결과를 비교하는 데 사용됩니다.

 

한참 벡터에 대해 설명해 주시는데.. 벡터랑 행렬이랑 뭔 관계가 있지..? 하는 의문이 들었다.
적분과 통계까지는 어찌어찌 꾸역꾸역 배웠으나
기하와 벡터에서 나의 한계를 느꼈던 고등학생 시절이 새록새록 떠오른다..
(사실 아직도 벡터가 뭔지 모르겠다 난.. 방향이 있는..뭐라고..?)

그래서 GPT에게 또 도움을 청했다. 최대한 쉽게 알려달라고..

 

벡터와 행렬의 관계를 쉽게 이해하는 방법

  1. 벡터는 "사람"이고, 행렬은 "엘리베이터"
    • 벡터는 공간을 움직이는 "사람"이라고 생각해 보세요.
    • 행렬은 "엘리베이터" 같은 도구로, 벡터가 다른 공간(위치)으로 이동하거나 크기를 변형시킵니다.
  2. 벡터는 "점", 행렬은 "사진 필터"
    • 벡터가 이미지의 한 점이라면, 행렬은 이미지 전체에 색상을 변형시키는 필터라고 볼 수 있어요.
  3. 벡터는 "주소", 행렬은 "GPS 변경"
    • 벡터가 어떤 장소의 좌표라면, 행렬은 지도에서 좌표를 다른 위치로 이동시키는 도구입니다.

왜 중요할까?

  • 현실 세계 응용:
    • 3D 그래픽에서 행렬은 물체를 회전시키거나 크기를 조정합니다.
    • 물리학에서는 힘이나 속도를 계산할 때 벡터를 변환하는 데 행렬을 사용합니다.
    • 머신러닝에서는 데이터를 새로운 차원(벡터 공간)으로 변환해 패턴을 학습합니다.

 

 

오늘 학습한 내용이고, 아직도 와닿지 않아서 큰일이다..

무엇을 실습해야 하는지도 사실은 아직..이다..

그래도 뭐가 뭔지는 조금은 알 것 같은 오늘이었다.

내일은 더 나아지리라 믿는다.