
사람의 감독 없이 데이터를 통해 학습하는 머신러닝의 한 유형
지도 학습과 달리, 비지도 머신러닝 모델은 라벨이 없는 데이터를 제공받고 명시적인 지침이나 안내 없이 패턴과 통찰을 스스로 발견
클러스터링 (Clustering)
: 라벨이 없는 원시 데이터를 탐색하고 유사성 또는 차이에 따라 그룹(또는 클러스터)으로 나누는 기법
연관 (Association)
: 대규모 데이터셋에서 데이터 포인트 간의 흥미로운 관계를 밝히는 규칙 기반 접근법
차원 축소 (Dimensionality reduction)
: 데이터셋에서 특징 또는 차원의 수를 줄이는 비지도 학습 기법
AI 기반 시스템(에이전트)이 행동에 대한 피드백을 사용하여 시행착오를 통해 학습할 수 있게 하는 머신러닝의 한 부분
탐색 (Exploration)
: 역동적인 환경에서 잠재적으로 더 우수한 전략을 발견하기 위해 위험을 감수하는 것
활용 (Exploitation)
: 이미 알려진 전략을 통해 즉각적인 보상을 최대화하는 것

-> 보통 6:2:2 비율로 나눔
: Training Set과 별도로 분리된 data set으로, 훈련 중 모델의 성능을 검증하는 데 사용됨
: 학습과 검증이 완료된 모델의 최종 성능을 평가하기 위해 사용됨
-> Validation Set과 Test Set은 모델을 학습시키지 않음!
그렇지만, Validation Set은 학습에 관여함.
-> Training set으로 학습 시에 너무 높은 epoch으로 학습시키면 overfitting될 수 O
-> Validation set을 사용하여 적절한 epoch(위 그림의 파란 선)을 찾음!
-> epoch뿐만 아니라, hyperparameter, hidden layer를 조정할 때에도 사용됨

: Validation Dataset에서의 예측 오류(Prediction error)가 상당히 높거나, Training Dataset에서의 오류보다 높을 때, 모델이 과적합(Overfitting)되었다고 말함




* Perceptron = Perception + neuron
: 인공 신경망의 기본적인 구성 요소이자, 가장 단순한 형태의 신경망 모델
: Input을 가중치와 함께 선형 결합한 후, 이 값에 활성화 함수를 적용해 출력함
-> Single-Layer Perceptron의 경우, 이진 분류 문제를 해결하는 데 사용됨 (선형 분류기 역할, 선형적으로 구분할 수 있는 문제에서만 사용)
<학습 과정>
-> 출력이 0이어야 하지만 1이 나온 경우, 입력이 1인 가중치를 감소시킴
-> 출력이 1이어야 하지만 0이 나온 경우, 입력이 1인 가중치를 증가시킴






-> 에러 발생 시 weights와 b 업데이트 (g(x) 바뀜)



-> 위와 같이 Error = 0이 되면 해당 퍼셉트론은 "Convergence" 라고 표현
: 수렴은 학습 과정이 안정된 상태에 도달하여 네트워크의 매개변수(가중치, 편향)가 훈련 데이터에 대해 정확한 예측을 생성하는 값으로 설정된 지점을 의미

: 다층 퍼셉트론(MLP)은 현대적인 feedforward* 인공 신경망의 명칭으로, 비선형 활성화 함수를 가진 fully connected* 뉴런들로 구성되며, 최소한 3개의 층(Input Layer, Hidden Layer, Output Layer)으로 조직됨
-> 선형적으로 분리할 수 없는 데이터를 구분할 수 있음!



: 인공 신경망의 노드에서 활성화 함수는 각 입력과 그 가중치에 따라 노드의 출력을 계산하는 함수

: 특정 결과, 사건 또는 관찰의 확률을 예측하여 이진 분류 작업을 수행하는 지도 학습 알고리즘
: 0/1, 예/아니오, 참/거짓과 같이 2가지의 가능한 결과로 제한된 이진 or 양자 선택의 결과를 제공
: 확률(Probability)을 생성하기 위해 z = w * x + b 를 Sigmoid 함수에 넣음
: 이 함수는 실수 값을 받아 (0,1)범위로 변환함
Sigmoid 함수는 Logistic 함수라고도 불림!

P(y=1) + P(y=0) = 1 이어야 함
-> P(y=1) 은 입력값 x가 y=1로 분류될 확률
-> P(y=0) 은 입력값 x가 y=0으로 분류될 확률

-> Sigmoid 함수의 성질:

이므로, P(y=0)을 아래와 같이 나타낼 수 O


: Logit 함수는 Sigmoid 함수의 역함수
: Odds에 자연로그를 씌운 것
-> Sigmoid함수의 출력값(확률, 0~1사이의 값)을 Logit함수에 넣음으로서 확률을 선형적 공간(-무한대 ~ 무한대)으로 되돌려 가중치와 특성의 기여도를 더 잘 해석하기 위함 (모델의 해석 및 확률의 선형화를 위해)
-> 값이 0보다 큰지 작은지로 판단

: 확률의 다른 표현법, 실패 비율 대비 성공 비율(성공 확률이 실패 확률에 비해 얼마나 더 큰지를 나타냄)
-> Odds가 크면, 성공확률이 크다는 의미
-> 값이 1보다 큰지 작은지로 판단

: 두 클래스 간의 경계, 분류 모델이 데이터를 어느 클래스에 속할지 예측할 때 기준이 되는 경계

-> 예측된 y^가 실제 y와 최대한 가까워지도록 파라미터(w, b)를 학습하는 것이 목표
-> 손실 함수의 값을 최소화하기 위해 w와 b를 업데이트하는 최적화 알고리즘이 필요함
: 주로 Classification 문제(이진 분류, 다중 클래스 분류)에서 사용되는 손실 함수
: 모델이 예측한 확률 분포와 실제 정답 사이의 차이를 측정하는 용도





-> 모델이 잘못된 예측을 하면 큰 손실값을 반환함!
: 머신러닝 모델을 학습시키기 위해 사용하는 최적화 알고리즘 중 하나
: 손실 함수 최소화 및 모델의 파라미터(가중치, 편향)를 학습하기 위해 사용됨
: 경사 하강법의 변형된 형태 (손실 함수의 기울기를 계산하여 손실을 최소화하는 방향으로 파라미터를 업데이트 함)
: online algorithm (모든 데이터를 한 번에 처리X, 데이터가 순차적으로 들어올 때마다 실시간으로 처리하는 알고리즘)
-> 각 샘플에 대해 기울기를 계산하고 즉시 모델 파라미터를 업데이트하는 방식이기 때문에 온라인 알고리즘에 해당
<기본 경사 하강법과 차이점>
-> 전체 데이터셋을 사용하지 않고, 하나의 데이터 포인트(샘플) 또는 소규모 미니배치를 사용하여 파라미터를 업데이트함 (고로 더 빠른 업데이트 가능)

-> theta = (w, b)
-> 예측값 y^ 를 f(x; theta)로 나타냄 (theta에 의존함을 표현)
-> 하나의 최소값만 가짐 (최소값 찾는 것이 보장됨)
-> 지역 최소값(local minima)에 갇혀 global optimum을 찾지 못할 수 O


-> 각 차원 wi에 대해, 기울기의 성분 i는 해당 변수에 대한 경사를 나타냄
-> 기울기는 편미분들로 이루어진 벡터로 정의됨

<도함수(derivative)>

-> 손실 함수 편미분 식을 사용하여 다시 표현하면,

