시작하며
오늘부터 Machine Learning 파트에 들어가서 AI부터 Machine Learning, 인공신경망 등 관련 이론 학습을 진행하였다. 수학적 이론이 많이 나와서 다소 어려웠지만 미리 공부를 어느 정도 해둔 덕분에 잘 이해할 수 있었던 것 같다.
Machine Learning
과정
- 입 / 출력 정의
- 모델 만들기
- 손실함수 정의
- Weight 최적화
핵심요소
데이터
- 머신러닝은 데이터를 기반으로 모델을 학습하고 예측하는 방법
- 데이터는 입력 데이터(features)와 출력 데이터(labels)로 구성 (예외 경우도 존재)
- 데이터 품질이 모델 성능에 큰 영향을 미치며, 전처리(결측값 처리, 이상값 제거, 정규화 등)와 특징 추출이 필수
모델
- 데이터를 통해 패턴/관계를 학습하고 결과를 예측하는 수학적인 알고리즘의 집합
- 수학적 함수
학습 알고리즘
- 데이터를 활용해 모델의 파라미터를 조정하고 최적화 (머신러닝)
- 쉽게 표현해서 기계가 함수를 찾아내는 과정
평가 및 예측
- 학습된 모델은 평가 데이터를 활용해 성능 검증 후, 새로운 입력 데이터에 대해 예측 수행
- 모델의 일반화 능력을 평가하고 필요에 따라 모델을 조정하거나 다른 알고리즘을 시도
데이터 전처리 및 데이터 분할
데이터 전처리
- 데이터 사이언티스트들이 소모하는 전체 시간의 약 60%를 차지함
- 오류 데이터나 불완전한 데이터를 처리하여 분석 결과의 신뢰도를 높임
데이터 분할
- 전체 데이터셋을 훈련 데이터, 검증 데이터, 테스트 데이터로 나누어, 모델 학습, 하이퍼파라미터 튜닝, 성능 평가를 각각 독립적으로 수행하도록 구성
- 훈련, 검증, 테스트 데이터는 서로 겹치지 않아야 함
데이터 분할의 목적
- 일반화 성능 평가
- 모델이 새로운 데이터(테스트셋)에 대해 얼마나 잘 동작하는지 확인
- 과적합(Overfitting) 검증
- 훈련 데이터에 지나치게 특화되어 새로운 데이터에 대한 일반화 성능이 떨어지는 현상
- 하이퍼파라미터 튜닝
- 모델 학습 과정을 제어하는 설정값으로, 사람이 직접 설정하는 매개변수
- 검증셋으로 하이퍼파라미터를 조정하여 최적의 모델 구성
머신러닝의 학습 방법
- 지도 학습(Supervised Learning)
- 비지도 학습(Unsupervised Learning)
- 강화 학습(Reinforcement Learning)
지도 학습
- 입력 데이터와 이에 해당하는 정답(라벨)이 있는 데이터를 사용해 학습하는 방식
- 분석모형(알고리즘) : 회귀, 분류
비지도 학습
- 정답(라벨) 없이 입력 데이터만 가지고 학습하는 방식
- 데이터 안의 패턴이나 구조를 발견하거나, 비슷한 데이터끼리 그룹화하는 데 사용
- 분석모형(알고리즘): 군집, 차원 축소
- 군집화 : 입력 데이터 내에서 비슷한 데이터끼리 그룹화하는 분석 모형
- 차원 축소 : 데이터를 요약하여 적은 차원으로 변환하는 분석 모형
- 이미지 압축, 데이터 시각화, 노이즈 제거 등
강화 학습
- 보상과 벌칙신호를 기반으로 AI가 환경과 상호작용하며 최적의 전략을 학습
- 보상을 중심으로 탐험과 활용의 균형을 맞추며, 라벨 데이터 없이 환경과 상호작용하면서 학습
인공신경망 (Artificial Neural Network)
입력 → (커넥션 / 엣지 ) → 가중치 → 편향 → 활성화 함수(Activation Function) → 출력
인공신경 / 노드(Node)
- 인공신경망을 이루는 작은 단위로, 입력값을 받아서 간단한 계산을 하고 결과를 출력하는 역할
- 뇌 속의 뉴런이 신호를 받아 다른 뉴런으로 보내는 것과 비슷함
- 활성화 함수를 가지고 있음
머신러닝의 과정
- 모델이 학습을 통해 자동으로 파라미터 값을 조정하며 최적의 값을 찾아내는 과정
- 가중치(Weight) : 입력 신호의 중요도를 조절하는 연결 강도 (커넥션 / 엣지마다 존재)
- 편향(Bias) : 활성화 함수의 임계값을 조절하는 상수항
인공신경망
- 입력층 - 은닉층 - 출력층으로 구성
- Perception : 단일 계산층
- MLP : 다층 퍼셉트론(은닉계층은 하나 이상으로 구성)
- 인접한 두 층의 뉴런간에는 완전 연결(fully-connected)
활성화 함수
- 노드에서 계산된 값을 기반으로 어떤 출력 값을 다음 층으로 보낼지 결정하는 함수
- 계단함수(Unit Step Function), Sigmoid, ReLU 등
함수(Function)
- 입력 값과 출력 값 사이의 관계
- 데이터 분석에서 함수는 입력 x(feature)와 출력 y(label) 간의 관계를 설명하는 데 사용
- 예측값을 나타낼 때는 햇 모양(^)을 씌워 표현
1차 함수
- y가 x에 대한 일차식으로 표현 된 경우
- y = ax + b (a≠0)
- a : 기울기 (a가 커지면 기울기가 커짐)
- b : 절편
2차 함수
- y가 x에 대한 이차식으로 표현 된 경우
- y = a(x - p)**2 + q (a ≠ 0)
- a : 그래프의 모양과 방향을 결정 (양수면 아래로 볼록, 음수면 위로 볼록)
- (p, q): 꼭짓점의 좌표
- 꼭짖점에서 멀어질수록 가파른 방향(기울기가 커짐) / 가까이 오면 완만한 방향(기울기가 작아짐)
미분
- 미분을 통해 최적화나 그래프의 증가/ 감소 경향을 분석할 수 있음
- 함수의 특정 점에서의 순간 변화율을 구하는 것
- 2점 사이의 평균 변화율 = y변화값 / x변화값
함수의 최솟값
- 아래로 볼록한 그래프의 꼭짓점 = 최솟값
- 머신러닝에서는 함수의 최솟값을 구하는 것이 목적
편미분
- 변수가 여러 개인 다변수 함수에 대해, 다른 변수들은 고정시키고, 특정 변수에 대해서만 미분하는 것
- 그라디언트 : 다변수 함수의 모든 편미분을 모아놓은 벡터
- 그라디언트는 가파른 방향을 향함
회귀(Regression)
회귀의 의미
- 사전적 회귀 : 한 바퀴 돌아 제자리로 돌아오거나 돌아감
- 통계적 회귀 : 변수 간의 관계(함수)를 모델링하여 예측하는 방법
연속적인 값(실수형 데이터)을 예측하기 위해 사용됨
주요 목표
- 입력 변수(특성)와 출력 변수(목표 값) 사이의 관계를 모델링하여, 새로운 입력 데이터에 대해 정확한 출력을 예측하는 것
- 최적의 회귀 계수를 찾아내는 것 = 손실 함수를 최소화 하는 것
선형 회귀(Linear Regression)
- 종속 변수 y와 하나 이상의 독립 변수 x와의 선형 상관관계를 모델링하는 기법
- 데이터 속에서 일정한 패턴(규칙)을 찾아내고, 이를 직선 방정식으로 표현하는 것 (y = w * x + b)
- 단순 선형 회귀 : 독립 변수 x가 1개 / 직선 형태의 그래프
- 다중 선형 회귀 : 독립 변수 x가 2개 이상 / 평면 그래프
가중치(Weight)
- 입력 변수 x가 결과값 y에 얼마나 영향을 미치는지를 나타냄
- 그래프상 직선의 기울기
편향(Bias)
- 모델이 입력 값과 관계없이 일정한 기본 출력 값을 가지도록 조정하는 역할
- 직선이 y축과 만나는 지점, 즉 y절편
가중치와 편향을 조정해서 실제 값과 예측 값 간의 오차를 최소화
오차(Error)
- 모델이 예측한 값(y^ )과 실제 값(y)의 차이를 나타내는 지표
- 오차 = y - y^
- 0에 가까울 수록 정확도가 높다고 판단
손실 함수(Loss Function)
- 가중치와 편향에 따라 손실값이 바뀌는 것
- 머신러닝에서 모델의 성능을 측정하고 학습시키는데 사용되는 함수
- 예측값과 실제값의 차이를 수치적으로 나타낸 것
성능 평가 지표
- 평균 제곱 오차(MSE) : 오차의 제곱을 평균하여 손실을 계산(손실에 민감하게 반응)
- 평균 절대값 오차(MAE) : 오차의 절대값을 평균하여 손실을 계산(튀는 값이 많은 경우)
경사 하강법(Gradient Descent)
- 오차를 줄이면서 모델이 더 나은 예측을 할 수 있도록 최적화하는 과정
경사 하강법 구하는 과정
- 함수를 통해 기울기 계산
- 기울기의 반대 방향으로 이동(매개변수 업데이트)
- 기울기가 최소화 되는 지점 도출
학습률(Learning Rate) : 반복 / 발산을 방지하기 위해 파라미터를 얼마나 크게 업데이트할지 조절(하이퍼 파라미터)
마치며
어려운 내용이 많았지만 AI 관련 내용들이 꽤 재미있는 것 같아서 이번 파트에서 기본기를 어느 정도 배우고 이후에 조금 더 디테일하게 공부해보고 싶다.
NOTION
MY NOTION (Machine Learning. 01)