인공지능/공부

모두를 위한 머신러닝 총 정리

이게될까 2024. 6. 14. 18:53
728x90
728x90

정리내용을 GPT에 던지고 다듬은 글입니다.

2024.06.09 - [인공지능/공부] - 모두를 위한 머신러닝 1 ~ 7주차 정리

 

모두를 위한 머신러닝 1 ~ 7주차 정리

1주 차 1차시 - 머신러닝이란?머신러닝이란 == 이전의 경험이나 사례를 바탕으로 새로운 패턴을 예측한다.인공지능 == 컴퓨터 시스템으로 인간의 지능으로 해결할 수 있는 문제를 푼다.시각 인지

yoonschallenge.tistory.com

2024.06.10 - [인공지능/공부] - 모두를 위한 머신러닝 9 ~ 14주차 정리

 

모두를 위한 머신러닝 9 ~ 14주차 정리

9주 차 1차시 - 예측 함수 성능 평가Cost function은 실제 출력(예측 값), Label,  regularization으로 이루어져 있다.테스트 데이터는 학습에 사용되지 않은 데이터로 모델의 성능을 평가할 때 사용되며

yoonschallenge.tistory.com

 

1 주 차 머신러닝 강의 정리

1차시 - 머신러닝이란?

머신러닝은 이전의 경험이나 사례를 바탕으로 새로운 패턴을 예측하는 기술입니다.

  • 인공지능(AI): 컴퓨터 시스템이 인간의 지능으로 해결할 수 있는 문제를 푸는 것. 시각 인지, 청각 인지, 의사 결정을 포함.
  • 머신러닝: 인공지능의 한 분야로, 컴퓨터 알고리즘이 경험으로부터 자동으로 학습하고 성능을 향상함. 명확하게 프로그래밍하지 않아도 문제 해결 능력을 가짐.

머신러닝의 핵심 개념:

  • 경험(E): 데이터에서 얻는 경험
  • 과제(T): 해결하려는 문제
  • 성능 지표(P): 성능을 평가하는 기준

Adaptive System: 오차로부터 학습하여 T의 파라미터를 output에 대한 오차를 측정하여 개선함.

  • 예측함수(h): 예측값(y)을 생성하는 함수. 오차를 줄이기 위해 parameters를 업데이트.

학습 과정: 예측값을 올바르게 만들기 위해 예측함수의 parameters를 업데이트하는 과정. 정답(레이블)이 주어진 데이터를 통해 진행됨.

 

2차시 - 지도학습

지도학습은 라벨링된 데이터를 통해 학습합니다.

  • 선형 회귀 분석: 라벨링된 데이터를 통해 예측값을 찾는 방식
  • 분류(Classification): 주어진 데이터를 통해 예측함수를 찾아내고, 입력에 대한 결과를 예측함. 제대로 분류하지 못하면 Miss Classification이라고 함.

 

3차시 - 비지도 학습

비지도 학습은 라벨이 없는 데이터를 사용합니다.

  • 목표: 데이터의 유사성 찾기, 그룹의 수 파악
  • 차이점: 지도학습은 라벨이 필요하지만, 비지도 학습은 정답이 주어지지 않음.

 

4차시 - 행렬과 벡터

  • 행렬(Matrix): rows * columns로 표현됨. Transpose(전치)하면 columns * rows로 바뀜.
  • 내적(Dot Product): 벡터의 같은 열끼리 곱한 뒤 더하여 스칼라 값을 얻음.
  • 벡터의 크기(Vector Norm): 벡터의 크기를 나타냄.
  • 대칭행렬(Symmetric Matrix): 행렬이 대칭을 이룸.
  • 행렬식(Determinant): 행렬의 규모를 측정함.

 

5차시 - 행렬 벡터 연산

  • 행렬 합: 크기가 동일한 행렬의 각 요소끼리 더함.
  • 행렬과 스칼라 연산: 각 요소에 스칼라 값을 더하거나 곱함.
  • 행렬 곱: (mn)과 (nl) 크기의 행렬을 곱하여 (m*l) 크기의 행렬을 만듦. 교환법칙은 성립하지 않음.
  • 단위행렬(Identity Matrix): ii만 1이고 나머진 0인 행렬. 단위행렬을 곱하면 항상 본인이 나옴.
  • 역행렬(Matrix Inverse): 오른쪽에서나 왼쪽에서 곱해도 단위행렬이 됨. 항상 존재하지 않으며, 행과 열의 숫자가 같아야 함.
  • 특이행렬(Non-Invertible Matrix): 역행렬이 존재하지 않는 행렬.

 

2주 차 머신러닝 강의 정리

1차시 - 선형 회귀

선형 회귀 분석은 데이터 간의 상관관계를 통해 없는 데이터의 값을 예측하는 방법입니다.

  • Univariate Linear Regression: 입력 변수가 하나인 선형 회귀.
  • Hypothesis가 Training Data Set을 통해 학습하며 예측 함수 h를 만듭니다.
      • 예측 함수:
    • 오차를 통해 학습합니다.

 

2차시 - 비용 함수

비용 함수는 예측 함수의 성능을 측정합니다.

  • Prediction Error: 예측 값과 실제 값의 차이
    •  
  • Sum of Square Errors: 에러들의 합
    • 평균 제곱 오차(MSE): 데이터 개수로 나눈 값
  • Cost Function: 비용 함수 J를 최소화하여 최적의 파라미터 w*를 찾습니다.
    • 목적: 비용 함숫값이 최소화되는 w 값 찾기
    • 파라미터가 1개면 2차원, 2개면 3차원 그래프가 나옴.
    • 등고선으로 표현하면 같은 비용 함수를 가진 지점들이 선으로 연결됩니다.

 

3차시 - 경사하강법 (Gradient Descent Algorithm)

경사하강법은 비용 함수가 최솟값에 도달할 때까지 진행합니다.

  • 각 파라미터에 대해 편미분 한 값을 학습 상수(알파, learning rate)에 곱한 후 마이너스 시켜서 업데이트합니다.
  • Global Minimum: 전역 최솟값
  • Local Minimum: 국소 최솟값 (초기값에 영향을 받음)
  • Local minimum은 옵티마이저를 통해 극복 가능합니다.

 

4차시 - 경사 하강 개념

경사하강법은 기울기 미분값을 빼는 방식으로 업데이트하여 단계적으로 최솟값에 다가갑니다.

  • Learning rate가 너무 작으면 학습 속도가 느려집니다.
  • 너무 크면 오버슈팅이 발생하여 발산할 수 있습니다.
  • 고정된 학습 상수값을 가지고 있어도 점점 속도가 줄어들며 천천히 수렴합니다.

 

5차시 - 경사 하강과 선형 회귀

선형 회귀 직선은 경사하강법을 사용하여 파라미터를 업데이트하거나 정확한 값을 계산합니다.

  • Batch Gradient Descent: 각 스탭마다 모든 데이터를 사용합니다.
  • Stochastic Gradient Descent: 각 스탭마다 하나의 샘플을 사용합니다.
  • 입력 변수가 여러 개면 Multivariate Linear Regression이 됩니다.

 

3주 차 머신러닝 강의 정리

1차시 - 다변수 선형 회귀

다변수 선형 회귀는 여러 개의 특징 값을 기반으로 예측 함수를 설계하는 문제입니다.

  • 파라미터는 입력 변수 개수보다 하나가 더 많습니다. (bias)
  • x의 0행에는 1을 넣고 행렬 곱으로 계산하면 편리합니다.

경사하강법은 비용 함수가 감소하며 데이터의 트렌드를 잘 나타내는 직선(평면, 공간)으로 수렴합니다.

  • n: feature의 개수
  • m: 데이터의 개수
  • x의 아래 첨자: j번째 feature
  • x의 윗 첨자: i번째 example

 

2차시 - 특징값 스케일링

특징 값의 범위가 다르면 비용 함수의 모양이 왜곡되어 경사하강법이 제대로 작동하지 않을 수 있습니다.

Feature Scaling을 통해 데이터의 범위를 조정하여 경사하강법이 잘 작동하도록 합니다.

  • 여러 변수들의 값의 범위가 다양할 때 필요합니다.

 

3차시 - 경사 하강, 학습 속도

Learning Curve를 통해 학습 속도를 판단하고 경사하강법이 올바르게 작동하는지 확인합니다.

  • 단조 감소 (Monotone Decreasing): 초기에는 빠르게 감소하다가 수렴에 다가가면 천천히 감소.
  • 오차가 더 이상 감소하지 않으면 비용 함숫값이 최솟값에 도달했는지 판단할 수 있습니다.
  • 학습률(learning rate)이 너무 작으면 수렴하는 데 오래 걸립니다.
  • 학습률이 너무 크면 반복마다 비용 함수가 감소하지 않거나 수렴하지 않을 수 있습니다.

 

4차시 - 새로운 특징 값 만들기

예를 들어, 부피는 길이 * 너비 * 높이로 계산합니다. 이 경우 3개의 변수를 하나의 변수로 통합할 수 있습니다.

  • 특징 값의 개수는 그대로지만 다항식을 추가하여 자유도를 높일 수 있습니다.
  • 다항식을 추가할 때 스케일링이 매우 중요합니다.

Square Root(Monotone Increasing): 데이터가 점점 증가하다가 어느 정도 이상이 되면 더 이상 커지지 않는 패턴을 효과적으로 표현합니다. 선형 회귀 예측에 도움이 됩니다.

 

5차시 - 정규 방정식 (Normal Equation)

정규 방정식은 다음과 같이 표현할 수 있습니다:

  • 그러나 X의 역행렬을 구하는 것은 어려울 수 있습니다. ( w= X^(-1)y인 경우)
  • 이 방식(n^3)은 특징 값의 개수가 적을 때 사용합니다. 많아지면 경사하강법(n)이 더 효율적입니다.
  • 특징 값들이 독립적이지 않고 단순 비례 관계일 때는 사용할 수 없습니다.

 

4주 차 머신러닝 강의 정리

1차시 - 이진 분류 (Binary Classification)

이진 분류는 데이터의 분류 결과가 두 가지 가능한 값으로 나타나는 경우를 의미합니다. 예를 들어, 코로나 검사 결과가 양성 또는 음성으로 나뉩니다.

  • 결과를 {0, 1}로 나타내며, 관심 있는 경우인 positive class를 1로 둡니다.
  • Multiclass Labels도 가능합니다.

선형 회귀는 이상치에 민감하고 결과가 항상 0~1로 고정되지 않아 이진 분류에 적절하지 않습니다. 이를 해결하기 위해 로지스틱 회귀 시그모이드(Sigmoid) 함수를 사용하여 출력을 0 ~ 1로 고정시킵니다. 

  • 시그모이드 함수:
  • 결과 값이 클수록 양성일 가능성이 높고, 작을수록 음성일 가능성이 높습니다.
  • 양성일 확률과 음성일 확률의 합은 항상 1입니다.

 

2차시 - 분류 경계선 (Decision Boundary)

분류 경계선은 파라미터 값을 통해 결정됩니다.

  • 예를 들어, 단순한 경우에는 직선, 복잡한 경우에는 원 형태의 경계선이 나올 수 있습니다.
  • 더 높은 차수의 다항식을 사용하면 복잡한 형태의 경계선을 만들 수 있습니다.

 

3차시 - 로지스틱 회귀: 비용 함수 (Logistic Regression Cost Function)

로지스틱 회귀의 비용 함수는 Convex 형태를 가져야 합니다.

  • 경사 하강법을 진행하면 최솟값이 보장되어야 합니다.
  • 로지스틱 회귀는 원래 non-convex 비용 함수 곡선을 가지므로, 국소 최솟값에서 업데이트가 진행되지 않을 수 있습니다.
  • 비용 함수를 Convex 형태로 변환하면 전역 최솟값에 접근이 가능합니다.
  • cost(h(x),y) = -ylog(h(x)) - (1-y)log(1-h(x))

 

4차시 - 최적화 (Optimization)

최적화 기법은 경사 하강법의 대안으로 라이브러리 형태로 구현되어 있습니다.

 

5차시 - 다중 클래스 분류 (Multiclass Classification)

다중 클래스 분류는 여러 개의 클래스로 데이터를 분류하는 방법입니다.

  • One vs All 방식: n개의 분류 직선을 사용하며, 각 직선에 해당되는 것만 그 클래스로 분류합니다.

 

5주 차 머신러닝 강의 정리

1차시 - 과적합 (Overfitting)과 과소적합 (Underfitting)

  • 과소적합 (Underfitting): 모델이 데이터를 잘 표현하지 못함. 이는 High Bias로 이어지며, 파라미터가 매우 적고 학습 데이터도 잘 맞추지 못해 모델이 너무 단순합니다.
  • 과적합 (Overfitting): 모델이 데이터에 과하게 적합화되어 새로운 데이터를 잘 표현하지 못함. 이는 High Variance로 이어지며, 파라미터가 너무 많고 학습 데이터는 잘 맞춥니다.

해결 방법:

  • Feature 수 줄이기
  • Data Set 늘리기
  • 정규화 (Regularization)

 

2차시 - 정규화 (Regularization)

정규화는 오버피팅을 예방하기 위해 사용됩니다.

  • 페널티 항을 작게 만들어 w3, w4 등의 파라미터를 작게 줄여 모델의 복잡도를 낮춥니다. 이를 통해 오버피팅 문제를 줄입니다.
  • 람다(λ)가 커지면 오버피팅을 피하는 역할이 커지고, 작아지면 학습 데이터에 잘 적응합니다.

 

3차시 - 선형 회귀의 정규화

정규화는 선형 회귀에서 다음과 같은 효과를 가집니다:

  • 수렴 속도가 빨라집니다.
  • 데이터 수(m)가 특징 수(n) 보다 적을 때 역행렬이 존재하지 않는데, 정규화가 이를 해결해 줍니다.

 

4차시 - 로지스틱 회귀의 정규화

높은 차수의 다항식과 복잡한 분류 경계선 (Decision Boundaries)은 오버피팅을 유발할 수 있습니다. 이때 정규화를 통해 문제를 해결할 수 있습니다.

  • λ가 0일 경우 정규화 항이 없으며, 단순히 원래 로지스틱 회귀 모델로 돌아갑니다.

 

5차시 - 다항 회귀의 정규화

다항 회귀에서의 정규화는 다음과 같습니다:

  • SSE (Sum of Squares of the Errors): MSE와 비슷하지만 데이터 개수로 나누지 않습니다.
  • Polyfit을 통해 최적의 파라미터를 계산할 수 있습니다.
  • 오버피팅을 감소시키기 위해 train set을 늘리고 정규화를 진행합니다. 데이터 개수가 충분하면 높은 차수의 다항식이라도 오버피팅을 피할 수 있습니다.
  • Regularization이 너무 크면 언더피팅이 발생할 수 있습니다.

 

6주 차 머신러닝 강의 정리

1차시 - 비선형 예측 함수

컴퓨터 비전은 컴퓨터가 사람처럼 사물을 인지하는 기술입니다. 수학적 알고리즘을 통해 이미지로부터 의미 있는 정보를 추출합니다.

  • : 카메라
  • 두뇌: 머신러닝 알고리즘

카메라로부터 얻은 수치 정보를 분석하여 정보를 추출하며, 학습 데이터를 통해 분류(classification)합니다 (지도학습).

  • 픽셀 정보는 매우 많아 복잡한 분류 경계선이 필요합니다 (non-linear decision boundary).
  • Input feature: 너비 * 높이 * (RGB라면) 3 -> 파라미터가 매우 많아 단순한 분류 경계선으로는 분류하기 어렵습니다.
  • Quadratic, cubic, higher order polynomials: 복잡한 비선형 가설 예측함수가 필요합니다.
    • Quadratic polynomial: 각각의 feature들을 2개씩 결합 -> (n^2)
    • Cubic polynomial: 3개씩 결합 -> 특징값의 (n^3)에 비례

이 방식들은 파라미터가 너무 많아 데이터가 충분하지 않으면 오버피팅이 일어납니다. -> 해결 방법 필요

 

2차시 - 뉴런과 두뇌

두뇌는 100억 개의 뉴런과 6조 개의 시냅스 연결로 이루어져 있습니다.

  • 바이탈(혈압, 자기, 먹기)을 컨트롤하고, 움직임과 포즈를 제어하며, 시각, 청각 등의 감각 기관을 통해 들어오는 신호를 처리합니다.
  • 뉴런은 전기 신호를 통해 정보를 전달합니다.

사람의 두뇌는 다양한 입력 신호(시각, 청각, 미각, 촉각, 후각)에 대해 동일한 알고리즘을 적용합니다. 예를 들어, 청각 위치에 시각 정보를 연결함으로써 보는 것을 담당하는 것을 확인했습니다.

  • 뉴런은 전기 화학적 신호를 발생시켜 다른 뉴런에 신호를 전달하며, 가중치를 조절합니다.

 

3차시 - 뉴런 모델 표현

인공 신경망은 사람의 두뇌를 인위적으로 표현한 모델입니다.

  • 뉴런(node)과 뉴런 사이의 연결선(edge)이 있으며, 이는 학습 진행에 따라 조절해야 할 파라미터(가중치)를 가집니다.

입력 레이어는 층으로 치지 않습니다.

  • i열에는 i번째 노드의 파라미터들이 저장되어 있습니다.

 

4차시 - 신경 회로망 모델 표현

Multilayer Neural Networks: 단일 레이어 신경망에 hidden layer가 추가된 형태입니다.

Forward Propagation: 입력 신호가 중간층을 거쳐 출력층에 도달하는 과정입니다.

  • 가중치 합과 activation function을 반복해서 진행합니다.
  • 입력 신호가 점차 여러 형태의 특징 값들로 변화합니다.

많은 hidden layers를 사용하면 표현 성능이 우수하며, 복잡한 문제 해결 시 더 복잡한 분류 경계선을 만들 수 있습니다.

 

5차시 - 논리 함수 구현

XOR는 선형적인 경계선으로 그룹을 분류할 수 없습니다.

  • Multilayer 신경망을 구성하면 비선형 분류 경계선을 필요로 하는 비교적 복잡한 XNOR 논리 함수를 구현할 수 있습니다.
  • 더 복잡한 분류 경계선을 만들고, 표현 방법도 더 강력해집니다.

이 기술은 이미지 분류와 같은 컴퓨터 비전 문제와 비선형이고 복잡한 분류 경계선을 필요로 하는 문제에 적용됩니다.

 

7주 차 머신러닝 강의 정리

1차시 - 비용 함수

학습 알고리즘은 다음 세 가지 단계로 이루어져 있습니다:

  1. 비용 함수 정의: 모델의 성능을 평가하는 함수입니다.
  2. 비용 함수를 표현하는 파라미터 최적화: 예측 함수 구현으로 이어집니다.
  3. 예측 함수 구현: 최적의 파라미터를 구하는 과정으로, 이를 Learning(학습)이라고 부르며 오차를 최소화하는 방향으로 진행됩니다.
  • Classification: 두 개의 클래스를 분류하면 Binary Classification, 세 개 이상을 분류하면 Multi-class Classification입니다.
  • Multilayer: 하나 이상의 hidden layer를 포함한 신경망입니다.
  • Feedforward: 신호가 한 방향으로만 이동합니다.
  • 오차: 원하는 출력값 - 실제 출력값으로 계산합니다.
  • Cost Function: Sum of Squares Error (SSE)를 최소화하는 파라미터를 계산합니다.
    • 목적: 모델의 오차를 평가하는 척도로 사용됩니다.

 

2차시 - 오차 역전파 학습 알고리즘 (Backpropagation)

오차 역전파 알고리즘은 신경회로망의 파라미터를 최적화하는 가장 널리 사용되는 학습 알고리즘입니다.

  • Error Backpropagation algorithm (BP or EBP): 오차를 역전 파하여 파라미터를 업데이트합니다.

입력 -> 히든 레이어로 전파 -> 히든 레이어 activation 구하기 -> 출력 레이어 activation -> 최종 출력 -> 원하는 출력과 실제 출력 오차 계산 -> 반대 방향으로 전파 

시그마가 가장 핵심적인 역할을 하며 계속 발전시켜 뒷 부분을 연산

 

3차시 - 신경 회로망 파라미터 최적화

신경회로망의 파라미터 최적화에는 다음과 같은 단계가 포함됩니다:

  • Backpropagation: 대부분의 인공지능 모델의 파라미터 업데이트 방식으로, 경사하강법을 통해 손실을 최소화하는 방향으로 학습합니다.

 

4차시 - 오차 역전파 알고리즘의 행렬 표현

Stopping Criteria: 역전파 알고리즘을 언제 멈출 것인가에 대한 기준입니다.

  • Gradient Threshold: 일정 기준에 도달해야 하므로 오래 걸릴 수 있습니다.
  • Average Error Measure: 평균 error를 측정하여 변화가 적을 때 멈춥니다. 파라미터 튜닝이 필요합니다.
  • Initializing Weights: 업데이트 전 weight 값을 초기화합니다. -1 ~ +1의 랜덤 값으로 진행합니다.
  • Sequential Update: 각 샘플마다 weight를 업데이트하여 학습 속도가 빠르고 구현하기 쉽습니다. Local minimum에 빠지지 않을 수 있습니다.
  • Batch Update: 모든 샘플을 사용하여 weight를 한 번에 업데이트합니다. 로컬 미니멈에 빠질 수 있으며, 메모리가 더 필요합니다.

 

5차시 - 오차 역전파 알고리즘 응용

학습이 진행됨에 따라 학습 오차는 서서히 줄어듭니다.

  • 데이터 수가 많아질수록 하나의 epoch를 완성하는 데 드는 시간은 오래 걸립니다.
  • 애매모호한 입력이 주어졌을 때 학습된 신경 회로망이 잘못된 결과를 만들 수 있습니다. (Confidence Level이 0.5 이하인 경우가 많거나 다른 값을 고르는 경우)
  • 잘 학습된 신경 회로망은 비교적 높은 정확도를 가집니다.

이 강의는 신경망 학습 알고리즘의 기초와 오차 역전파 알고리즘을 통해 모델의 성능을 최적화하는 방법을 중점적으로 다룹니다. 학습 알고리즘의 작동 원리와 다양한 파라미터 최적화 기법을 이해하는 것이 중요합니다.

 

9주 차 머신러닝 강의 정리

1차시 - 예측 함수 성능 평가

Cost Function은 실제 출력(예측 값), 라벨(Label), 정규화(Regularization)로 구성됩니다.

  • 테스트 데이터: 학습에 사용되지 않은 데이터로, 모델의 성능을 평가하는 데 사용됩니다. 테스트 데이터에서 오차가 크면 성능 향상이 필요합니다.

성능 향상 방법:

  1. 학습 데이터 더 수집하기: 좋은 생각이지만 시간과 노력이 필요합니다.
  2. Feature 수 줄이기: 오버피팅을 방지하기 위해 유용합니다.
  3. Feature 수 늘리기: 현재 feature로 모든 정보를 다룰 수 없을 때 유용합니다.
  4. 다항식 추가하기: 새로운 특징 값을 만듭니다.
  5. 정규화 파라미터 감소하기: 학습 데이터에 대해 잘 학습합니다.
  6. 정규화 파라미터 증가하기: 오버피팅 문제를 해결할 수 있습니다.

오버피팅 감지 방법:

  • 예측 함수를 실제 데이터와 함께 플로팅하여 확인합니다. (많은 feature가 있는 경우 불가능할 수 있음)
  • 테스트 데이터에 대한 비용 함수 값을 구합니다. 로지스틱 회귀에서는 비용 함수 대신 정확도를 사용할 수 있습니다.

 

2차시 - 최적 모델 선택 (데이터 셋 나누기)

데이터 셋 분할: Train, Validation, Test set으로 나눕니다. (60:20:20 비율)

  • Train: 학습을 위해 사용
  • Cross Validation: 모델 선택을 위해 사용
  • Test: 최적화된 모델의 일반화 성능 확인

낮은 training error는 학습 데이터에 잘 맞는 것이지만, 새로운 데이터 샘플에도 잘 작동한다는 보장은 없습니다.

모델 선택 과정:

  1. Train 데이터를 통해 학습
  2. Validation 데이터를 통해 error가 제일 낮은 모델 선택
  3. Test 데이터로 최종 테스트

 

3차시 - Bias와 Variance

  • High Bias (Underfitting): 지나치게 단순하여 데이터의 추이를 따라가지 못함. Train과 Validation 모두 error가 높음. 정규화 항이 높음.
  • High Variance (Overfitting): 지나치게 복잡하여 학습 데이터에만 잘 맞음. Train error는 낮으나 Validation error는 높음. 정규화 항이 작음.

Bias-Variance Tradeoff:

  • Bias: 모델이 실제 값을 얼마나 잘 나타내는지(실제 값과의 차이)
  • Variance: 모델의 예측 값이 주어진 데이터에 대해 얼마나 변동성이 있는지(얼마나 퍼지는지)

전체 오차를 줄이기 위해 Bias와 Variance를 동시에 줄여야 합니다.

 

4차시 - 학습곡선 (Learning Curves)

Learning Curves는 학습이 얼마나 진행되었는지 확인하고, 언더피팅과 오버피팅을 진단하며 성능 향상을 시각화합니다.

  • 데이터가 증가함에 따라 Train error는 증가하고, Validation error는 감소하다가 일정 값 이상이 되면 수렴합니다.
  • Train 데이터를 늘려도 영향을 주지 못하면 복잡도를 늘립니다.
  • 정규화 파라미터가 너무 작으면 Validation과 Train 오차가 큽니다.
  • High Bias: 데이터 개수를 증가시켜도 언더피팅이 해결되지 않음. - train error만 늘어난다.
  • High Variance: 데이터 개수를 증가시키면 차차 줄어듦.

 

5차시 - 학습 알고리즘의 성능 향상

선형 회귀 함수를 학습시키고 새로운 데이터에 적용했을 때 큰 오차가 발생할 경우:

성능 향상 방법:

  1. Train 데이터 늘리기: High Variance 문제 해결 가능.
  2. Feature 수 줄이기: High Variance 문제 해결 가능.
  3. Feature 수 늘리기: High Bias 문제 해결 가능.
  4. 다항식 늘리기: High Bias 문제 해결 가능.
  5. 정규화 파라미터 줄이기: High Bias 문제 해결 가능.
  6. 정규화 파라미터 늘리기: High Variance 문제 해결 가능.

뉴럴넷 구성:

  • 작은 뉴럴넷: 계산량 면에서 유리하지만 언더피팅 발생 가능.
  • 큰 뉴럴넷: 오버피팅에 유의해야 하며, 정규화 필요.

한 개의 레이어에 많은 뉴런을 사용해보고, 해결되지 않으면 여러 레이어에 적은 뉴런을 사용해봅니다.

 

10주 차 머신러닝 강의 정리

1차시 - 머신러닝 시스템 설계 시 고려사항

불균형 데이터에서 정확도는 머신러닝 알고리즘의 성능을 제대로 평가할 수 없습니다.

예시: 스팸 분류기

  • Feature 설정: 단어 100개를 feature로 설정하여 존재하면 1, 없으면 0으로 입력.
  • 데이터 수집: 가짜 이메일을 만들어 다양한 곳에 배포.
  • 메일 헤더를 통해 스팸 메일인지 판별 가능하지만, 스팸 발송자들이 이를 속일 수 있습니다.
  • 비정상적인 단어를 찾아내는 알고리즘 필요.

 

2차시 - 오차 분석 방법

머신러닝 구현 시 단순한 알고리즘으로 시작하여 test와 validation, Learning curve를 통해 오버피팅, 언더피팅을 확인합니다.

예시: 스팸 분류기

  • 분류하지 못한 스팸 메일을 분석하여 해당 부분을 강화.
  • 오차의 세부 내역을 보고 성능 향상 방법 결정.
  • 수치 평가 척도를 이용해 성능 개선 여부 확인.

 

3차시 - 불균형 데이터의 경우 오차 평가 척도

불균형 데이터는 데이터의 수가 크게 차이 나는 경우로, 일반적인 정확도로 평가하면 성능이 과대평가될 수 있습니다. (극단적인 경우 Skewed Classes)

다른 평가 척도가 필요합니다:

  • Precision: Positive로 예측한 사람들 중 실제 cancer 환자 비율.
  • Recall: 진짜 암에 걸린 사람 중 참이라고 예측한 경우 
  • Sepecificity: 진짜 부정 중 예측을 부정으로 한 경우 비율.
  • False positive rage : Cancer가 아닌데 Cancer로 잘 못 분류

 

4차시 - 정밀도와 재현율의 Trade-off

  • Threshold가 크면: 예측값이 0.7보다 높아야 Cancer로 예측 (High Confidence)
    • Precision은 올라가고 Recall은 내려감.
  • Threshold가 작으면: 예측값이 0.3보다 높으면 Cancer로 예측 (Avoid False Negative)
    • Precision은 내려가고 Recall은 올라감.

두 지표의 평가는 평균 대신 F1 Score를 사용합니다. - 조화평균

 

5차시 - 학습 데이터 수와 테스트 오차의 관계

충분한 특징 값과 파라미터의 개수가 되어야 데이터가 늘어나도 쓸모가 있습니다. (Low Bias Algorithms)

  • 충분한 feature와 hidden layer 수가 중요.
  • 데이터가 부족하면 High Bias Problem 발생.

데이터 개수를 충분히 확보하면 매우 높은 성능의 학습 알고리즘을 만들 수 있습니다.

 

11주 차 머신러닝 강의 정리

1차시 - SVM의 최적화

서포트 벡터 머신(SVM)은 복잡하고 귀찮은 로지스틱 회귀 문제를 직선 함수로 근사화하여 계산량을 크게 줄입니다.

  • C 파라미터: 데이터에 매우 민감합니다. C는 정규화 항에서 나왔다.

 

2차시 - 최대 마진 개념

데이터를 분류하는데 애매한 상태가 나지 않도록 안전한 여백(마진)을 만들어 두는 것이다.

  • 최대 마진: 마진을 최대로 할 경우 일반화 성능이 높아집니다.
  • SVM 파라미터: 항상 decision boundary와 수직입니다.
  • C 파라미터:
    • 큰 경우: 람다가 매우 작아져 잘못된 데이터에 매우 민감합니다.
    • 작은 경우: 람다가 커서 이상치에 약간의 영향을 받지만 강건한 분류선을 만듭니다.
  • Support Vector: 마진 내부의 점들을 지칭합니다.

 

3차시 - 최대 마진 분류의 수학적 개념

  • 내적 교환 법칙이 성립합니다.
  • 비용 함수를 최소화하려면 w가 작아야 하며, 조건을 만족하려면 w가 커야 합니다.
  • P가 커져야 한다. 즉 decision boundary와 수직인 weight vector에 projection 시켰을 때 커야 합니다.
  • SVM decision boundary는 마진을 최대화하는 방향으로 최적화됩니다.

 

4차시 - 커널의 개념

  • 다항식의 개념: 특징 값을 사용하여 고차 다항식 형태의 예측 함수를 만들어낼 수 있습니다.
  • 커널: 유사도 함수로, 계산량이 많은 다항식 대신 사용됩니다.
    • 가우시안 커널: 특정 위치에 설정하여, 가까워지면 1, 멀어지면 0을 둡니다. 가우시안 분포를 활용합니다.
    • 분산: 커지면 넓어지고, 작아지면 좁아집니다.
  • 랜드마크 설정: 학습 데이터와 동일한 위치에 랜드마크를 둡니다.
  • C 파라미터와 시그마:
    • C가 크면 오버피팅
    • C가 작으면 언더피팅
    • 시그마 폭이 커지면 언더피팅, 작으면 오버피팅

 

5차시 - SVM 적용하기

  • 적절한 C와 커널 선택: 언더피팅과 오버피팅을 피할 수 있도록 조절합니다.
  • 스케일링: 커널을 사용할 때 필수적입니다. - 큰 값에 지배되기 쉽기 때문 
  • 다중 분류 문제: 1 vs all 접근 방식으로 여러 이진 분류 SVM을 만듭니다.
  • 알고리즘 선택 기준:
    • n (num of features) >> m (num of examples): 로지스틱 회귀 사용, SVM을 커널 없이 사용하거나 리니어 커널 사용
    • n 작고, m 작음: SVM 가우시안 커널 사용
    • n 작고, m 큼: 가우시안 커널 대신 feature를 늘리거나 로지스틱 회귀, SVM 커널 없이 사용
    • m이 너무 많으면 커널을 쓰기엔 연산이 너무 힘들다.

로지스틱 회귀는 커널 없는 SVM과 유사하며, DNN은 학습과 연산에 시간이 많이 소요됩니다.

 

12주 차 머신러닝 강의 정리

1차시 - 비지도학습 (Unsupervised Learning)

비지도 학습은 라벨링되지 않은 데이터로부터 패턴 등의 유용한 정보를 추출하는 것을 의미합니다.

  • 유사한 데이터 그룹핑: 판매 전략, 패턴 탐색, 특이 데이터 발견 등에 활용됩니다.
  • 데이터 특성 기반: 데이터의 특성에 기반하여 그룹을 찾아내고, 이를 라벨링하여 사용할 수 있습니다.

 

2차시 - K-Means 알고리즘의 원리

K-Means 알고리즘은 다음 두 단계를 반복하여 진행합니다:

  1. 클러스터 할당: 데이터를 가장 가까운 클러스터 중심(centroid)에 포함시킵니다. - Cluster Assignment
  2. 클러스터 중심 업데이트: 포함된 데이터들의 중앙으로 centroid를 이동시킵니다. - Centroid Movement
  • 종료 조건: Centroid의 좌표가 변하지 않으면 알고리즘이 종료됩니다.
  • 데이터 유사성: 데이터가 서로 비슷해지면 유사도가 올라갑니다.
  • 클러스터 비어 있음: 클러스터가 아무런 포인트도 포함하지 않으면 centroid 수를 줄이거나 초기화를 다시 시도합니다.

 

3차시 - K-Means 알고리즘의 최적화 목적 함수

Cost Function (Distortion): 가장 가까운 클러스터와의 평균 제곱 오차(MSE)로 정의됩니다.

  • K-Means 알고리즘은 비용 함수(distortion)를 최소화하는 방향으로 진행됩니다.

 

4차시 - 랜덤 초기화와 K-Means 알고리즘

  • 랜덤 초기화: 원하는 결과가 나올 수도 있지만, 그렇지 않을 수도 있습니다.
  • Local vs Global Optima: 초기화에 따라 전역 최적값(global optima) 또는 국소 최적값(local optima)에 도달할 수 있습니다.
  • 반복 시도: 여러 번 시도하여 비용 함수가 가장 낮은 값을 선택하면 이상적인 클러스터링 결과를 얻을 수 있습니다.
  • 클러스터 개수: 클러스터의 개수가 지나치게 많으면 큰 도움이 되지 않습니다.

 

5차시 - 클러스터 수의 결정

클러스터의 수를 결정하는 것은 애매모호할 수 있으며, 다음과 같은 방법으로 결정할 수 있습니다:

  1. 여러 클러스터 개수 시도: 다양한 클러스터 개수를 시도하여 비용 함수가 가장 많이 줄어든 뒤 감소가 급격히 줄어드는 지점을 선택합니다. - Elbow Method
  2. Elbow Method: 비용 함수의 감소 그래프에서 '팔꿈치' 지점을 선택합니다.
  3. 전략 및 분포 기반: 데이터 분포와 목적에 따라 클러스터 수를 결정합니다.
  4. 사람이 고르기 

 

13주 차 머신러닝 강의 정리

1차시 - 차원 줄이기의 목적

차원 줄이기는 높은 차원의 데이터를 낮은 차원 데이터로 바꾸는 과정입니다.

  • 데이터 압축: 정보량의 큰 손실 없이 데이터 크기를 줄여 학습 알고리즘의 속도를 향상시킵니다.
  • 데이터 시각화: 시각화하기 어려운 높은 차원의 데이터를 2차원 또는 3차원으로 변환하여 쉽게 시각화할 수 있습니다.
  • 데이터의 상관관계(Redundancy): 상관관계가 높은 데이터에서 차원 줄이기를 통해 중복성을 제거합니다.

차원을 낮추면 시각화가 가능해지지만, 시각화 자체에 특별한 의미를 두지는 않습니다.

 

2차시 - 주성분 분석 (Principal Component Analysis)

PCA는 높은 차원 데이터를 낮은 차원의 평면에 투영하여 차원을 줄이는 방법입니다.

  • 목적: 데이터의 중복성을 제거하고 정보 손실을 최소화하는 방향으로 데이터를 투영합니다.
  • 평균값 정규화: 데이터를 평균값으로 빼주어 평균을 0으로 만듭니다.
  • 투영 거리가 작아야 좋은 투영입니다.

 

3차시 - PCA 알고리즘

PCA 알고리즘의 주요 단계는 다음과 같습니다:

  1. 평균값 정규화: 데이터를 평균값으로 빼주어 평균을 0으로 만듭니다.
  2. 스케일링: 각 feature가 비슷한 범위의 수치 값을 갖도록 스케일링합니다.
  3. 상관 행렬 계산: 데이터의 상관 행렬을 계산합니다. 이는 대칭 행렬이며, 주로 Transpose를 곱하여 구합니다.

 

4차시 - 주성분 수의 결정

주성분 수를 결정할 때는 다음을 고려합니다:

  • 평균 제곱 투영 오차 Total Variation 비율을 고려하여 가장 작은 k를 사용합니다.
  • 특정 조건을 만족하면 그 개수가 주성분의 개수가 됩니다.

더 효율적인 계산을 위해 S를 사용하여 반복 작업을 줄일 수 있습니다.

 

5차시 - PCA 적용 방법

  • 입력 데이터가 이미지라면 차원이 커져서 계산량이 엄청나게 늘어납니다.
  • PCA 압축: 테스트 데이터도 함께 압축해야 합니다.
  • 오버피팅 해소: PCA를 오버피팅 해소용으로 사용하면 안 되며, 대신 정규화를 사용해야 합니다.
  • PCA 사용 시점: 원래 데이터를 사용하다가 만족스럽지 않으면 PCA를 사용하십시오. PCA 자체도 시간이 걸리고, 오차가 발생할 수 있습니다.

 

14주 차 머신러닝 강의 정리

1차시 - 이상 데이터 검출 문제 정의

이상 데이터는 일반적으로 발생하지 않는 정상적이지 않은 데이터를 의미합니다.

  • 다양한 feature (예: 열, 진동, 강도 등)를 사용할 수 있으며, 정상 범위에서 많이 벗어납니다.

 

2차시 - 가우시안 분포

가우시안 확률분포는 정규분포로 평균과 분산으로 이루어져 있습니다.

  • 전체 면적은 1이며, 분산은 데이터의 퍼짐을 결정합니다.
  • 평균과 표준편차는 데이터의 평균값을 찾아 근사화할 수 있습니다.
  • 데이터 수(m)가 충분히 클 경우 m과 m-1의 차이가 거의 없으며, 추정치가 유사합니다.
  • 데이터 수가 적을 경우 m과 m-1의 차이에 의해 추정치 간 차이가 발생할 수 있습니다.

 

3차시 - 이상 데이터 검출 알고리즘

이상 데이터 검출 알고리즘은 모든 feature가 독립적이라고 가정하여 확률 분포를 계산합니다.

  • 정상 데이터만 학습에 활용하고, 이상 데이터는 테스트와 검증 단계에서 활용합니다.
  • 평가 시 정확도 외에도 Precision, Recall, F1 Score 등의 다양한 지표를 사용합니다.

 

4차시 - 이상 데이터 검출을 위한 특징 변환

불균형 데이터는 데이터 수의 차이가 있어 학습하기 어렵습니다.

  • Transform: feature의 분포를 가우시안 분포로 변형합니다. 적절한 함수를 선택해야 합니다.
  • 비정상 데이터가 정상 데이터 분포 내에 있는 경우, 차원을 늘려 효과적으로 이상 데이터 검출을 진행할 수 있습니다.
  • 이상 데이터 발생 시 크게 변하는 feature를 선택하고, 이를 통해 새로운 feature를 만들 수 있습니다.

 

5차시 - 다변수 가우시안 분포

정상적인 데이터는 선형적인 분포를 가지며, 가우시안 분포를 따릅니다.

  • 적은 차원에서 특이하다고 보기 힘든 경우도 있습니다.
  • 이상 데이터가 기울어진 분포를 확인할 수 있는 경우, 다변수 가우시안 분포(Multivariate Gaussian Distribution)를 사용하여 이상 데이터를 확인할 수 있습니다.
  • 각 feature는 가우시안 확률 분포를 가지지만, 확률적으로 독립이라는 가정을 뺍니다.
  • 시그마의 변화를 통해 가우시안 분포의 변화를 확인할 수 있으며, 평균에 따라 이동합니다.
  • 다변수 가우시안을 통해 일반적이고 이상 데이터를 찾아내기 어려운 경우에도 적용 가능하며, 독립 가정 하에서도 특이 데이터를 도출할 수 있습니다.

주의사항:

  • 항상 데이터 개수가 특징 개수보다 커야 합니다.

.

 

728x90