👩‍💻LEARN : ML&Data 91

[Unsupervised Learning, Recommenders, Reinforcement Learning] #2. Anomaly detection

#2. Anomaly detection ▶️ Finding unusual events 새로운 데이터셋이 기존의 데이터 plot과 유사한 곳에 있지 않을 경우, anomaly 하다고 판단할 수 있다 Density estimation 기존 데이터로 모델 P(x)를 학습시킨 이후 새로운 X가 데이터셋에서 나타날 확률을 P(X)라고 한다. 이때 P(X)가 epsilon(작은수)보다 작을 경우 anomaly로 분류한다 ▶️ Gaussian (normal) distribution 정규분포! 평균(Mu), 표준분포(sigma, 분산은 sigma**2)로 이뤄진 종모양 분포 x의 확률을 구하는 식은 p(x)이며, x가 중심에서 멀어질수록 p(x)도 낮아진다. Parameter estimation dataset이 주어졌..

[Unsupervised Learning, Recommenders, Reinforcement Learning] #1. Clustering

7일 안에...끝내기로 한 것은..매우 잘못된..선택이었던거같다...⭐️ 일단 우겨넣고...나중에 이해해보려 한다...🫥 개념들은 크게크게 이해가 되는데, 이걸 코드로?구현? 어? 이게 되네? 어 ? 이게 안되네? 이렇게 되는 상황 → 일단 끝내놓고 ...다시..코드...백지에서 구현해보자...화이팅... #1. Clustering ▶️ What is Clustering label y 가 없이 수행하는 것으로, 데이터 자체에서 structure을 찾도록 하는 것 ▶️ K-means intuition 1. 임의의 K개의 점을 cluster의 중심 (Cluster centroids)으로 가정 2. 각각의 데이터를 가장 가까운 centroid에 배정 3. 소속된 데이터들의 평균치로 centroid의 위치를 변..

[Advanced Learning Algorithms] #10. Decision Trees

#10. Decision Trees Decision Trees ▶️ Decision Tree model Root node → Decision nodes → Leaf nodes ▶️ Learning Process 1️⃣ Decision 1 : How to choose what features to spit on at each node Maximize purity (or minimize impurity) : 최대한 하나의 클래스만 결과값에 나오도록 하는 것 2️⃣ Decision 2 : When do you stop splitting? When a node is 100% one class When Splitting a node will result in the tree exceeding a maximum d..

[Advanced Learning Algorithms] #9. Machine learning development process

#9. Machine learning development process Iterative loop of ML development Error analysis 에러들 (분류의 경우 잘못 분류된 예시들)을 에러들 간의 common traits 들로 카테고리화 해보는 것 해당 카테고리 중 에러 해결의 중요도, 에러들의 수 들을 검토하여 순차적으로 해결 → model, data를 어떻게 설정해야 할지 인사이트를 얻을 수 있음 Adding data Add more data of the types where error analysis has indicated it might help Data augmentation: Distortion for Image , Audio (noise) , etc doesn't hel..

[Advanced Learning Algorithms] #8. Bias and variance

편향과 분산!이라고 보면 되는데 개념 자체는 어렵지 않다. Bias → 얼마나 '정확'하게 타겟을 예측하느냐 Variance → 예측값들이 모여있느냐 퍼져있느냐 (유연성?) 하지만 앤드류응쨩은 또 쉽지 않은 것들을 알려주겠지.... #8. Bias and variance Diagnosing bias and variance train / cv 데이터에서 두개를 확인하면 모델의 성능을 짐작해볼 수 있음 (그래프를 그릴 수 없을정도로 변수가 많을 경우) Polynomial이 적을 경우 (일차방정식 등) Train, cv의 Cost가 모두 높음 → Hifh bias Polynomial이 너무 클 경우 (5차방정식 등) Train의 Error는 작지만 cv는 높을 수 밖에 없음 → Train의 cost < Cv의..

[Advanced Leaning Algorithms] #7. Advice for applying machine learning

Evaluating a model Train / test procedure for linear regression (with squared error cost) Fit parameter by minimizing cost function Compute test error & training error / regularization 포함 X. regularization : 파라미터 핏을 미니마이즈하는거기때문 Train / test procedure for classification probelm Fit parameters by minimizing J(w,b) to find w,b Compute test error & train error → 분류는 이것보다 더 좋은 방법이 있음 Fraction of the ..

[Advanced Leaning Algorithms] #6. Additional Neural Network

#6. Additional Neural Network Advanced Optimization Gradient Descent 보다 더 좋은 Optimizer가 있다! Adam algorithm 모든 step에 하나의 학습률만 사용하는 것이 아니라 각 스텝별로 적합한 학습률을 자동으로 사용함 model.compile(optimizer = ADAM!! ) Additional Layer Types Convolutional Layer 픽셀로 이루어진 이미지를 입력받을 때 hidden layer의 하나 하나의 뉴런을 해당 이미지의 일부만 받아오도록 하는 것 2D 뿐 아니라 1D일때도 동일하게 가능 ( 작은 벡터 window를 여러개 세팅 )

[Advanced Learning Algorithms] #5. Multiclass Classification

#5. Multiclass Classification Softmax Softmax 개요 Softmax Cost - aj가 커질수록 loss가 줄어들음 y는 분류의 문제이므로 정확한 분류(N)를 맞춘 경우에 loss함수의 평균을 구해 cost 값을 확인할 수 있다. Neural Network with Softmax output Output layer에서 나오는 결과는 직전 layer의 a vector와 해당 layer의 파라미터를 곱한 z 들이 나옴 Softmax 함수를 적용하기 때문에, 최종 activation은 이를 softmax 함수에 적용한 10개의 결과가 나옴 (probabiliy) 다른 activation function과의 차이점은, softmax에서는 하나의 도출값에도 z1~z10까지 모두 ..

[Advanced Learning Algorithms]#3. Neural network training & #4. Activation Functions

#3. Neural network training Training Details 1️⃣ Define the model Sequential( (Dense(n,~~ ) 2️⃣ Loss and cost function Logistic regression → loss = 'binary_cross_entropy' ※ binary cross entropy : -y * log(f(x)) - (1-y)log(1-f(x)) model.compile( loss = 'BinaryCrossentropy()) Regression → loss = 'mse' 3️⃣ Gradient descent Use backpropagation to find w, j with computing derivatives for gradient des..

[Advanced Learning Algorithms] #참고. Vectorization

How neural networks are implemented efficiently 기존에 for 문으로 W벡터와 a input을 곱했지만 사실 넘파이의 matmul이 있으면 쉽게 가능 Matrix Multiplications A = np.array ([[1,-1,0.1], [2,-2,0.2]]) 가 있다면 [1],[2]가 한 뉴런에서 들어가는 값을 의미한다. 다만 이럴 경우 행렬간 곱이 어려우므로 A에 transpose를 취해 A.T를 만든다. 이렇게 될 경우 A.T = ([[1,2], [-1,-2], [0.1,0.2]]) 인 3*2행렬이 되어 이후 들어오는 W (2*4행렬)와 곱셈이 가능해진다. A.T와 W를 행렬곱하는 것은 np.matmul(AT,W)로 가능하며 AT @ W 로도 가능하다