미래내일일경험 - 빅리더(23.06~23.12)/교육

[스터디챌린지] ICT융합대학 스터디 챌린지 6주차(8/05 ~ 8/11)

NINE1ll 2023. 8. 11. 18:39

[이번주 목표]

수업 : Deep Learning - 고우주 교수님 매일 매일 수업 내용 정리

과제 관련해서 내용 찾아보고 정리

개인 공부 : 


생각보다 진짜 드럽게 바쁜 일주일 이번 주는 더 나을 줄 알았는데 시험을 진짜 오랜만에 봤다

분산을 구할 때 제곱합으로 나눌 수 있는 값..? 이 문제를 처음에 봤을 때 약간 당황했다. 보통 분산을 구할 때, 제곱합을 나누지 않나..? 싶었고, 지금도 워딩이 매우 이상하다. 문제 오류 인듯. 

개념을 정리하자면, 모집단의 분산에서 계산식에 들어가는 값은 n이고, 표본 분산에서 분모에 들어가는 값이 n-1입니다.

n−1로 나누는 이유는 Bessel의 보정 때문입니다. 이는 표본의 평균이 모집단의 평균과는 다를 수 있기 때문에, 표본 분산이 모집단 분산을 과소추정하는 경향이 있습니다. n−1로 나눔으로써 이를 보정합니다.

이건 사실 처음 본 이야기라 틀릴 것 같았던 문제였습니다. 

  1. 균일 분포 (Uniform Distribution)
    • 균일분포는 주어진 구간에서 모든 값이 동일한 확률로 발생하는 분포입니다. 당연하게도 이산형, 연속형 모두 존재합니다.
    • 종종 무작위 선택이나 균등한 확률을 나타내는 데 사용됩니다. 
  2. 베타 분포 (Beta Distribution)
    • 베타 분포는 0과 1 사이의 값에 대한 확률 분포로, 두 개의 양의 모수 α와 β에 의해 모양이 결정됩니다.
    • 베타 분포는 종종 사전 분포나 베이지안 통계에서 사용됩니다.
  3. 감마 분포 (Gamma Distribution)
    • 감마 분포는 양의 실수에 대한 확률 분포로, 두 개의 모수 k (모양 모수)와 θ (규모 모수)에 의해 모양이 결정됩니다.
    • 감마 분포는 대기 시간, 수명 분포 등 다양한 분야에서 사용됩니다.

근데 여기서 또 사전 분포와 사후 분포가 궁금해졌습니다. 

  1. 사전분포 (Prior Distribution)
    • 사전분포는 데이터를 관찰하기 전에 이미 가지고 있는 파라미터에 대한 믿음 또는 지식을 나타냅니다.
    • 사전분포는 주관적인 선택이 될 수 있으며, 종종 특정 문제에 대한 전문가의 지식이나 이전 연구의 결과를 기반으로 합니다.
    • 예를 들어, 동전 던지기 문제에서 동전이 공평하다는 사전 지식이 있다면, 사전분포를 베타 분포의 특정 형태(예: Beta(1,1))로 설정할 수 있습니다.
    • Beta(1,1)
  2. 사후분포 (Posterior Distribution)
    • 사후분포는 주어진 데이터를 고려하여 파라미터에 대한 믿음을 업데이트한 결과를 나타냅니다.
    • 베이즈 정리를 사용하여 계산됩니다:
    • Posterior∝Likelihood×PriorPosterior∝Likelihood×Prior
    • "Likelihood"는 주어진 파라미터 값에서 데이터를 관찰할 확률을 나타냅니다.
    • 사후분포는 데이터를 통해 사전분포를 업데이트한 결과로 볼 수 있으며, 이를 통해 파라미터에 대한 불확실성을 더 잘 이해할 수 있습니다.

사전분포와 사후분포를 사용하는 과정은 데이터를 통해 우리의 믿음을 업데이트하는 반복적인 프로세스로 볼 수 있습니다. 초기의 사전분포는 데이터 없이 파라미터에 대한 믿음을 나타내며, 데이터를 통해 이 믿음은 사후분포로 업데이트되고, 이 사후분포는 다음 단계에서 새로운 사전분포가 될 수 있습니다.

  1. 릿지 회귀 (Ridge Regression)
    • 릿지 회귀는 L2 정규화를 사용합니다.
    • 목적 함수는 다음과 같습니다:여기서 MSE는 평균 제곱 오차(mean squared error)이고, α는 정규화 파라미터입니다.
    • α가 0이면 릿지 회귀는 일반적인 선형 회귀가 됩니다.
    • α가 매우 크면 모든 가중치는 거의 0에 가깝게 됩니다, 이는 과소적합을 초래할 수 있습니다.

식을 보면 제곱이 들어가 있다. 미분이 가능하다.

  1. 라쏘 회귀 (Lasso Regression)
    • 라쏘 회귀는 L1 정규화를 사용합니다.
    • 목적 함수는 다음과 같습니다:
    • 라쏘의 주요 특징 중 하나는 불필요한 특성의 가중치를 완전히 0으로 만드는 경향이 있다는 것입니다. 이는 특성 선택의 형태로 작동합니다. = 이게 차원 축소가 있다는 이야기입니다.

제곱이 안들어가 있다. 미분이 불가능하다.

  1. 엘라스틱넷 (ElasticNet)
    • 엘라스틱넷은 L1과 L2 정규화를 모두 결합한 형태입니다.
    • 여기서 r은 혼합 비율(mixing ratio)입니다. r=1이면 엘라스틱넷은 라쏘와 동일하게 되고, r=0이면 릿지와 동일하게 됩니다.

 

SVM은 카테고리를 구분하는 초평면이라고 적여있다. 그니까 분류에 사용이 가능한거고, 정리를 한게 있었는데 틀린 정말...

초평면을 도와주는 벡터를 서포트 벡터라고 한다. 서포트 벡터간의 간격을 최대한 크게 하는 것이 목적이다. 

부스팅은 분류하기 어려운 (학습이 잘 되지 않은) 데이터에 가중치를 주는 방법이다. 올바르게 분류 된 것은 가중치를 감소시켜주는 것이 포인트이다. 

랜덤 포레스트는 배깅 방법에 속한다.

주성분 분석(PCA)은 당연하게도 비지도 학습에 속한다. 차원을 기본적으로 축소되지 않아도 차원을 축소해준다.

주성분 분석을 차원 축소를 해도 시각화가 가능하다..? 어떻게..?

주성분 분석 (PCA, Principal Component Analysis)은 데이터의 차원 축소를 위해 널리 사용되는 기법입니다.

주성분 분석의 결과를 시각화하는 주요 방법은 다음과 같습니다:

  1. 스캐터 플롯 (Scatter Plot)
    • 주성분 분석 후 얻은 주성분 점수 (PC scores)를 2차원이나 3차원 공간에 그려볼 수 있습니다. 첫 번째 주성분을 x축으로, 두 번째 주성분을 y축으로 하여 2D 스캐터 플롯을 그리거나, 세 번째 주성분까지 포함하여 3D 스캐터 플롯을 그릴 수도 있습니다.
  2. 바이플롯 (Biplot)
    • 스캐터 플롯에 원래의 변수들 (features)의 방향과 크기를 화살표로 추가하여 그린 것입니다. 이를 통해 원변수들이 주성분에 어떻게 기여하는지 시각적으로 확인할 수 있습니다.
  3. 설명된 분산 (Explained Variance)
    • 각 주성분이 데이터 분산의 얼마나 많은 부분을 설명하는지 나타내는 막대 그래프를 그릴 수 있습니다. 이를 통해 몇 개의 주성분을 선택할지 판단하는 데 도움이 됩니다.
  4. 히트맵 (Heatmap)
    • 원변수와 주성분 간의 관계를 히트맵으로 표현할 수 있습니다. 히트맵의 색상은 각 원변수가 주성분에 기여하는 정도를 나타냅니다.

이거를 틀린 것을 보고 진짜 머리 속에 빵꾸가 많이 뚤려있다는 것을 알았습니다. 최대한 목차를 암기하고 도움을 받아야할 것 같습니다.

분류 모델은 1. 정확도 2. 정밀도 3. 재현율 또는 민감도 4. F1 점수 5. ROC 곡선 6. 로그 손실 이렇게 사용합니다. 

  1. 정확도 (Accuracy)
    • 전체 예측 중 올바르게 예측된 비율을 나타냅니다.
  2. 정밀도 (Precision)
    • 양성으로 예측된 샘플 중 실제 양성인 비율을 나타냅니다.
  3. 재현율 (Recall) 또는 민감도 (Sensitivity)
    • 실제 양성 중 양성으로 예측된 비율을 나타냅니다.
  4. F1 점수 (F1 Score)
    • 정밀도와 재현율의 조화 평균입니다. 불균형한 데이터 세트에서 유용한 지표로 사용됩니다.
  5. ROC 곡선 (Receiver Operating Characteristic Curve)
    • 재현율 대비 1에서 특이도 (1-Specificity)를 그린 그래프입니다. 그래프 아래의 면적을 AUC (Area Under the Curve)라고 하며, 모델의 성능을 나타내는 지표로 사용됩니다.
  6. 로그 손실 (Log Loss)
    • 실제 레이블과 예측 확률 사이의 차이를 나타내는 지표입니다. 값이 작을수록 모델의 성능이 좋습니다.

왜 R2를 사용하지 않는가?

R2는 회귀 문제에 사용되는 성능 지표입니다. R2는 예측값과 실제 값 사이의 상관 관계를 제곱한 값으로, 회귀 모델의 적합도를 나타냅니다. 분류 문제에서는 타겟 변수가 범주형이기 때문에 R2와 같은 연속형 변수에 적합한 지표를 사용할 수 없습니다. 따라서 분류 문제에는 위에서 언급한 지표들이 더 적합합니다.

  1. 지도 학습 (Supervised Learning)
    • 이 방법에서는 타겟 변수 (또는 레이블)가 있습니다. 학습 데이터에 입력 변수와 그에 해당하는 타겟 변수가 함께 제공되며, 모델은 입력 변수로부터 타겟 변수를 예측하도록 학습됩니다. 대표적인 예로는 회귀 (regression)와 분류 (classification)가 있습니다.
  2. 비지도 학습 (Unsupervised Learning)
    • 이 방법에서는 타겟 변수가 없습니다. 모델은 데이터의 구조나 패턴을 찾는 데 중점을 둡니다. 대표적인 예로는 군집화 (clustering)와 차원 축소 (dimensionality reduction)가 있습니다.

또한, 강화 학습 (Reinforcement Learning) 같은 다른 유형의 학습 방법도 있습니다. 이 방법에서는 타겟 변수 대신 보상 메커니즘이 있으며, 에이전트는 주어진 환경에서 최적의 행동을 학습하기 위해 보상을 최대화하려고 합니다.


### 지도 학습 (Supervised Learning)

1. **선형 회귀 (Linear Regression)**
   - 연속형 타겟 변수를 예측하는데 사용됩니다.
   - 데이터가 선형 관계를 가질 때 잘 작동합니다.

2. **로지스틱 회귀 (Logistic Regression)**
   - 이진 분류 문제에 주로 사용됩니다.
   - 출력값을 확률로 해석할 수 있습니다.

3. **서포트 벡터 머신 (Support Vector Machine, SVM)**
   - 분류와 회귀 모두에 사용될 수 있습니다.
   - 선형 및 비선형 분류가 가능하며, 마진을 최대화하는 경계를 찾습니다.

4. **결정 트리 (Decision Tree)**
   - 분류와 회귀 문제에 모두 사용됩니다.
   - 이해하기 쉽고 시각화가 가능합니다.

5. **랜덤 포레스트 (Random Forest)**
   - 여러 개의 결정 트리를 결합하여 사용합니다.
   - 과적합을 줄이고 일반화 성능을 향상시킵니다.

6. **신경망 (Neural Networks)**
   - 깊은 계층 구조를 가진 모델로, 이미지나 텍스트 등 복잡한 데이터에 적합합니다.
   - 딥러닝의 기본 구성 요소입니다.

### 비지도 학습 (Unsupervised Learning)

1. **K-평균 (K-Means)**
   - 데이터를 K개의 클러스터로 그룹화합니다.
   - 중심점을 기반으로 클러스터링을 수행합니다.

2. **DBSCAN (Density-Based Spatial Clustering of Applications with Noise)**
   - 밀도 기반의 클러스터링 방법입니다.
   - 클러스터의 개수를 미리 정의할 필요가 없습니다.

3. **계층적 군집화 (Hierarchical Clustering)**
   - 트리 형태의 구조로 클러스터를 형성합니다.
   - 덴드로그램을 사용하여 시각화가 가능합니다.

4. **주성분 분석 (Principal Component Analysis, PCA)**
   - 데이터의 차원을 축소하는데 사용됩니다.
   - 데이터의 분산을 최대화하는 주성분을 찾습니다.

5. **t-SNE (t-Distributed Stochastic Neighbor Embedding)**
   - 고차원 데이터를 2D나 3D로 시각화하는데 사용됩니다.
   - 비선형 차원 축소 방법입니다.

6. **오토인코더 (Autoencoders)**
   - 입력을 재구성하려는 목적으로 신경망을 학습시킵니다.
   - 특징 추출 및 차원 축소에 사용됩니다.

각 알고리즘은 특정 문제나 데이터 유형에 더 적합할 수 있으므로, 특정 문제에 대해 가장 적합한 알고리즘을 선택하는 것이 중요합니다.

 

-- 이번 시험의 결론, 최대한 목차를 잘 암기하고 알다시피 코드는 인터넷에 있기 때문에, 최대한 방법론을 알고 가자


노션은 팀끼리 같이 쓰는 거라 서로 응원도 해주고 그렇습니다. 이번주 진짜 힘들었네요.. ㅎ