머신러닝 (32) 썸네일형 리스트형 [파이썬] Ridge,Lasso Regression and Confusion matrix 1. Ridge, Lasso Regression Bias는 예측 값(prediction)과 실제 값(actual value, target)의 차이입니다. Bias는 값을 예측하기 위한 모델(회귀, 분류)에 중요한 정보를 충분하게 제공하지 못한 경우 값이 커지게 됩니다. 학습데이터가 적은 경우, 비선형 데이터에 선형 모델을 적용할 경우 Bias값이 커지며 이는 Underfitting이라고 할 수 있습니다. Variance는 데이터 변동에 대한 모델의 민감도로, 모델이 불필요한 데이터(noise)까지 학습하는 경우 Variance가 커지게 됩니다. Overfitting의 경우이며 학습에 적용된 데이터에 대한 예측은 정확하지만, 학습에 사용되지 않은 데이터(test/validation data)에 대한 예측은.. [파이썬] 딥러닝 BGD_SGD 1. BGD BGD는 Batch Gradient Descent로 모든 학습 데이터의 loss를 누적한 뒤, 가중치를 update합니다. 1 epoch에 대한 가중치 update 횟수는 1회이며, 계산량이 매우 많고 많은 메모리가 필요합니다. Global optimal 수렴에 안정적이나, local optimal에 수렴되면 탈출이 어렵다는 단점이 있습니다. epoch은 전체 학습데이터 셋에 대해 한 번 학습을 완료한 상태를 뜻하며, batch는 나누어진 데이터 셋을 뜻 합니다. BGD를 파이썬으로 구현하면 다음과 같습니다. 먼저 필요한 라이브러리를 불러옵니다. import numpy as np import pandas as pd import matplotlib.pyplot as plt 데이터 셋을 불러옵니.. [파이썬] MLP-Backpropagation 1. Backpropagation(역전파 알고리즘) Artificial neural network의 layer와 neuron의 수가 많아지고, 입력과 출력의 수가 많아질 수록 gradient descent를 통해 최적의 w와 b를 찾기 위한 계산량이 매우 많아집니다. (가중치 개수 만큼의 cost function이 중복 계산되어야 함) Cost function은 w와 b로 구성되어 있으므로, 출력 layer로부터 입력 layer쪽으로(역방향), 순차적으로 cost function에 대한 편미분을 구하고, 해당 편미분 값을 이용해 w와 b 값을 갱신합니다. Backpropagation의 단계는 다음과 같습니다. Forward propagation(정방향)과정을 통해 input을 마지막 output laye.. [파이썬] Polynomial linear-regression 1. Polynomial linear-regression Polynomial linear-regression을 알아보기 전 Overfitting과 Underfitting에 대해 알아보겠습니다. 과적합(Overfitting)은 학습을 수행할 때 사용한 데이터 집합에만 매우 정확하게 일치하고, 학습데이터 외의 새로운 데이터에는 잘 들어맞지 않는 상태이며, 일반화가 제대로 되지 않았다는 것을 의미합니다. 과소적합(Underfitting)은 이와 반대로 학습이 지나치게 덜 이루어져 학습 데이터를 통해서도 좋은 결과를 보이지 못하는 상태입니다. Polynomial linear regression은 선형 관계에 가까운 독립변수와 종속변수에 대해서는 선형회귀 모델이 충분히 좋은 해답이 될 수 있으나, 두 변수의 관계.. [파이썬] Perceptron Gradient Descent 1. Cost function 신경망에서의 학습은 최적의 weight와 bias값을 찾아가는 과정입니다. Cost function(비용함수)은 최적화된 가중치와 편향을 찾기 위한 기준이 되는 지표 함수입니다. 현재까지 진행된 학습의 상태를 지표로 나타내며, cost function을 가장 작은 값으로 만들어주는 것을 목표로 합니다. Cost function의 값은 신경망이 추정한 y 값(prediction)과 현재 입력 데이터에 대응되는 실제 target 값 사이의 오차를 나타냅니다. 일반적으로 Mean Squared Error(평균 제곱 오차)와 Cross Entropy Error(교차 엔트로피 오차)를 가장 많이 사용합니다. Classfication에서는 Cross Entropy Error를 주로 사.. [파이썬] 데이터 전처리 및 샘플링 1. Data Scaling 보통의 경우 각 컬럼이 가지는 값의 범위는 다양합니다. 대부분의 분석 알고리즘은 컬럼 간 데이터의 범위가 크게 차이날 경우 값의 범위가 작은 컬럼에 비해 범위가 큰 컬럼이 목표 변수를 예측하는 데 큰 영향을 준다고 판단합니다. 따라서 컬럼 간 데이터 범위가 많이 차이날 경우 스케일링을 통해 모든 컬럼 값의 범위를 동일하게 만들어줄 필요가 있습니다. 가장 일반적인 스케일링 방법에는 표준화와 정규화가 있습니다. 표준화는 각 컬럼의 평균을 0, 분산이 1인 표준정규분포로 만드는 방법이며, 정규화는 각 컬럼들의 값이 특정 범위(주로 0~1) 안에 들어가도록 스케일링 하는 방법입니다. 파이썬으로 표준화와 정규화를 구현해 보겠습니다. 먼저 iris 데이터 셋을 불러옵니다. import .. [파이썬] 선형 회귀(Linear-regression) 심화 1. Linear-regression 선형 회귀는 주어진 학습데이터 셋(x,y)을 구성하는 종속 변수 y와 한 개 이상의 독립 변수 (또는 설명 변수) X와의 선형 상관 관계를 모델링하는 회귀분석 기법입니다. 선형 회귀 모델의 예측은 다음과 같은 과정을 거칩니다. $$\widehat{y}=w_{0}+w_{1}x_{1}+w_{2}x_{2}+\ldots +w_{n}x_{n}$$ 위 식에서 n은 특징의 수, x_i는 i 번째 특징, w_i는 i번째 특징에 대한 가중치, w_0는 편향, y hat은 예측값을 뜻합니다. 또한 w_1x_1에서 w_1은 상수, x_1은 변수입니다. 아래 사진에서 y는 실제 값(target value), y hat은 예측 값(prediction) 입니다. 선형 회귀 모델의 예측을 벡터.. [파이썬] 딥러닝 활성화 함수(Activation function) 1. 활성화 함수 활성화 함수는 입력신호 (x)와 가중치(w) 곱의 합 (weighted sum)을 출력신호(y)로 변환하는 함수입니다. 인공신경망에선 각 노드마다 존재, layer에 따라 다른 활성화 함수 적용이 가능하며, 활성화 함수가 사용되지 않으면 각 노드를 지나도 계속해서 선형이 됩니다. 활성화 함수는 비선형 함수이며, 선형 함수가 활성화 함수인 경우 neuron을 multi-layer로 구성해도 linearly separable problem만 해결 가능하므로 비선형 함수를 사용합니다. 즉, 활성화 함수는 비선형 모델을 해결하기 위해 사용한다 생각하시면 됩니다. 1-1. Step function ( 계단 함수 ) Neural Networks model 학습 시, 활성화 함수가 미분이 가능해야 .. 이전 1 2 3 4 다음