오늘 공부한 것
요약: 머신러닝의 핵심 지식과 개요
1. 머신러닝의 정의
- 머신러닝은 컴퓨터가 데이터에서 학습하고, 사람이 정해주지 않은 규칙과 패턴을 스스로 찾아내는 능력입니다.
- 전통적인 프로그래밍과 달리, 조건을 미리 지정하지 않고 데이터를 기반으로 작업을 수행합니다.
- 머신러닝의 목표는 데이터를 활용해 예측, 분류, 최적화와 같은 문제를 자동으로 해결하는 것입니다.
2. 머신러닝의 특징
- 학습 기반 접근법:
- 일반 프로그램은 미리 정의된 수학적 공식으로 결과를 생성.
- 머신러닝은 데이터를 기반으로 규칙을 학습하고, 이를 통해 예측과 분류 작업 수행.
- 데이터 중심적:
- 충분한 양과 품질의 데이터가 머신러닝 성능에 중요한 역할을 합니다.
- 자동화된 의사결정:
- 머신러닝 모델은 데이터 분석을 자동화하고 빠르게 의사결정을 내릴 수 있습니다.
3. 머신러닝의 학습 과정
- 문제 정의:
- 해결할 문제를 명확히 정의하고 목표를 설정.
- 데이터 수집 및 전처리:
- 데이터를 수집하고, 결측값 처리 및 이상치 탐지로 데이터를 정제.
- 모델 학습:
- 데이터를 사용해 머신러닝 모델을 학습시킴(지도학습, 비지도학습, 강화학습 등).
- 성능 평가:
- 모델이 얼마나 잘 작동하는지 평가(정확도, 정밀도, 재현율 등).
- 모델 개선:
- 하이퍼파라미터 튜닝, 피처 엔지니어링 등을 통해 성능을 최적화.
4. 머신러닝의 종류
- 지도 학습(Supervised Learning):
- 입력 데이터와 출력 데이터(레이블)를 함께 사용해 학습.
- 예: 분류, 회귀.
- 주요 알고리즘: 로지스틱 회귀, 의사결정 트리, 랜덤 포레스트, 서포트 벡터 머신(SVM).
- 비지도 학습(Unsupervised Learning):
- 입력 데이터만 사용하여 데이터의 구조나 패턴을 학습.
- 예: 군집화, 차원 축소.
- 강화 학습(Reinforcement Learning):
- 에이전트가 환경과 상호작용하며 보상을 최대화하는 방향으로 학습.
- 예: 자율 주행, 게임 AI.
5. 머신러닝 학습 로드맵
- 수학 및 통계학:
- 선형대수, 미적분, 확률 개념 이해.
- 파이썬 프로그래밍:
- 파이썬의 기본 문법과 데이터 구조 이해.
- 데이터 정제:
- 데이터 전처리 기술 습득.
- 머신러닝 알고리즘 학습:
- 지도학습, 비지도학습, 강화학습의 개념과 알고리즘 학습.
- 딥러닝 프레임워크 사용:
- TensorFlow, PyTorch와 같은 딥러닝 프레임워크 활용.
- 실전 프로젝트 수행:
- 데이터를 수집하고 분석하며, 머신러닝 모델을 학습시키고 성능을 평가.
6. 머신러닝의 응용 분야
- 의료: 질병 진단 및 치료 예측.
- 금융: 사기 탐지, 신용 점수 예측.
- 자율주행: 차량 경로 계획 및 장애물 감지.
- 추천 시스템: 사용자 맞춤형 콘텐츠 추천.
7. 주요 도구: 사이킷런(Scikit-learn)
- 장점:
- 사용하기 쉽고 오픈소스.
- 다양한 알고리즘 및 평가 도구 제공.
- 주요 기능:
- 모델 학습 및 평가(GridSearchCV, K-겹 교차검증).
- 데이터 전처리 및 피처 엔지니어링.
- 앙상블 방법(Random Forest 등) 지원.
8. 머신러닝과 빅데이터
- 머신러닝 모델은 빅데이터를 학습하여 규칙과 패턴을 찾아냅니다.
- 빅데이터는 구조화된 데이터(테이블 형식)와 비구조화된 데이터(텍스트, 이미지)를 포함합니다.
- 데이터의 양과 질은 머신러닝의 성능에 결정적인 영향을 미칩니다.
9. 데이터 속성
- 핵심 속성: 예측하려는 결과값(레이블)에 중요한 영향을 미치는 속성.
- 범주형 데이터:
- 순서가 없는 명목형 데이터(예: 성별).
- 순서가 있는 순서형 데이터(예: 성적 등급).
일단 오늘은 이 부분까지 학습했다.
집중이 되지 않아서 타이핑하면서 공부를 했는데
타이핑한 것을 지피티한테 주니까 이렇게 요약을 해 주었다. 나도 보려고 이렇게 남겨둔다. 깔꼼하군..
그리고 행렬, 벡터에 대해서도 학습했다.
튜터님께서 특강을 해 주셨기 때문
인공지능에 수학 지식이 필요하다는 것이 생각해보면 당연했는데... 거기까지 생각을 못했나보다
행렬이 어떻게 생겼는지, 곱셈은 어떻게 하는지 등은 기억이 났고, 잘 모르던 부분에 대해서 정리하겠다.
단위행렬이 필요한 이유
1. 행렬 곱셈의 중립원 역할
단위행렬은 행렬 곱셈에서 1과 같은 역할을 합니다.
- 단위행렬은 아무 행렬에 곱해도 그 행렬을 변경하지 않습니다.
- 이는 행렬 연산의 중립원(identity) 역할을 합니다.
2. 역행렬의 정의에 필수적
- 단위행렬은 역행렬의 계산과 존재성을 확인하는 데 필수적입니다.
3. 선형 시스템 풀이에서 기준점 제공
- 단위행렬은 변환 과정에서 기준 역할을 합니다.
4. 가우스-조르단 소거법에서 중요한 역할
- 행렬의 역행렬을 구하거나 행렬을 대각화하는 과정에서, 단위행렬은 목표 상태입니다.
5. 행렬 변환의 고유성 확인
- 선형 변환에서, 단위행렬은 벡터 공간을 변형하지 않는 고유한 변환으로 사용됩니다.
즉, 어떤 벡터도 단위행렬과 곱하면 변하지 않습니다.
단위행렬의 응용
- 벡터 공간의 유지
- 단위행렬은 변환 없이 원래 공간을 보존합니다.
- 역행렬 확인
- 행렬이 역행렬을 갖는지 확인할 때 곱한 결과가 단위행렬인지 확인합니다.
- 선형 시스템 풀이
- 단위행렬을 통해 선형 방정식의 해를 직접 계산하거나 검증할 수 있습니다.
- 기본 행렬 연산
- 행렬 분해(예: LU 분해, QR 분해)에서 단위행렬은 초기 상태를 나타내거나 결과를 비교하는 데 사용됩니다.
한참 벡터에 대해 설명해 주시는데.. 벡터랑 행렬이랑 뭔 관계가 있지..? 하는 의문이 들었다.
적분과 통계까지는 어찌어찌 꾸역꾸역 배웠으나
기하와 벡터에서 나의 한계를 느꼈던 고등학생 시절이 새록새록 떠오른다..
(사실 아직도 벡터가 뭔지 모르겠다 난.. 방향이 있는..뭐라고..?)
그래서 GPT에게 또 도움을 청했다. 최대한 쉽게 알려달라고..
벡터와 행렬의 관계를 쉽게 이해하는 방법
- 벡터는 "사람"이고, 행렬은 "엘리베이터"
- 벡터는 공간을 움직이는 "사람"이라고 생각해 보세요.
- 행렬은 "엘리베이터" 같은 도구로, 벡터가 다른 공간(위치)으로 이동하거나 크기를 변형시킵니다.
- 벡터는 "점", 행렬은 "사진 필터"
- 벡터가 이미지의 한 점이라면, 행렬은 이미지 전체에 색상을 변형시키는 필터라고 볼 수 있어요.
- 벡터는 "주소", 행렬은 "GPS 변경"
- 벡터가 어떤 장소의 좌표라면, 행렬은 지도에서 좌표를 다른 위치로 이동시키는 도구입니다.
왜 중요할까?
- 현실 세계 응용:
- 3D 그래픽에서 행렬은 물체를 회전시키거나 크기를 조정합니다.
- 물리학에서는 힘이나 속도를 계산할 때 벡터를 변환하는 데 행렬을 사용합니다.
- 머신러닝에서는 데이터를 새로운 차원(벡터 공간)으로 변환해 패턴을 학습합니다.
오늘 학습한 내용이고, 아직도 와닿지 않아서 큰일이다..
무엇을 실습해야 하는지도 사실은 아직..이다..
그래도 뭐가 뭔지는 조금은 알 것 같은 오늘이었다.
내일은 더 나아지리라 믿는다.
'TIL' 카테고리의 다른 글
내일배움캠프 본캠프 13일차 - 머신러닝 회귀모델 코드 뜯어보기 (0) | 2024.12.11 |
---|---|
내일배움캠프 본캠프 12일차 - 머신러닝 : 데이터 전처리, 의사결정나무 실습 (1) | 2024.12.10 |
2주차 WIL (3) | 2024.12.06 |
내일배움캠프 본캠프 10일차 - 머신러닝, 마크다운 작성 방법 (1) | 2024.12.06 |
내일배움캠프 본캠프 9일차 - 깃허브 (1) | 2024.12.05 |