👩‍💻LEARN : ML&Data/Lecture 35

[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 로도 가능하다

[Advanced Learning Algorithms] #2. TensorFlow implementation & #3. Neural network implementation in Python

#2. TensorFlow implementation Inference in Code Forward propagation을 한다면 간단하게 아래와 같은 플로우로 진행된다 #x를 먼저 세팅해준다. 200도에 17분 로스팅 하면 어떤 결과가 나올까 x = np.array([[200.0, 17.0]]) #레이어를 세팅해준다. 이 레이어는 3개의 뉴런유닛을 갖고 있으며 활성함수로는 시그모이드를 쓴다.(나중엔 relu쓰겠지..?) layer_1 = Dense(3, activation = 'sigmoid') #레이어1에서 나온 활성함수값을 a1에 할당한다 a1 = layer_1(x) #레이어2를 세팅한다. output레이어는 binary로 나오므로 유닛을 1로 설정한다 layer_2 = Dense(1,activat..

[Advanced Learning Algorithms] #1. Neural network

#1. Neural network Demand Prediction 예시 : 어떤 티셔츠가 top seller 티셔츠가 될 것인가 ? → input : x = price , shipping cost, marketing, material ... → output : y = yes or no (binary:sigmoid) → activation : f(x) = 1 / 1+np.exp(-(wx+b)) Neural network에서 이를 사용하게 될 경우 → input layer : vector x [price,shipping cost, marketing, material] and vector y [1,1,0,1,...n] → layer1(hidden layer) : input layer와 fully connect..

[Supervised Machine Learning: Regression and Classification]#7. Gradient descent for logistic regression & #8. The problem of overfitting

#7. Gradient descent for logistic regression 로지스틱 회귀에서 cost function 수식까지 구해봤는데, 이를 최소화할 수 있는 경사하강법은 어떻게 수행할 수 있을까 Cost function을 줄이기 위해 기존에 배웠던 경사하강법 처럼 아래 내용을 반복하며 파라미터를 업데이트해나갈 수 있음 - wj = wj - alpha * (dj/dw) - b = b - alpha * (dj/db) 그런데 여기서 문제는, j의 수식이 cost function for logistic regression으로 바뀌었다는 것임. 이때의 기울기는 어떻게 구할 수 있을 지 살펴봐야 함 - ... 사실 똑같음. f(x)가 다르기 때문에 기존 선형회귀때 기울기 구했던 것과 똑같이 수행하면 됨...

[Supervised Machine Learning: Regression and Classification] #6. Classification with logistic regression & #7. Cost function for logistic regression

#6. Classification with logistic regression Logistic regression Binary classification : 2개의 class(0,1)만 output으로 나오는 것 - 기존 선형회귀로는 binary classification을 수행하기 어려움 - 이에 sigmoid(Logistic) 함수를 활용하여 1과 0 을 구분(threshold = .5 기준) Logistic regression - z = w*x + b 라고 가정 - z를 시그모이드 함수의 변수로 설정 - 해석 : 시그모이드 함수의 값이 0.7일 경우 → 1일 확률이 70%이다 - 표기법 (베이지안 언제 공부하지..) Decision boundary : 결과값을 0으로 판단할 지 1로 판단할 지 나누..

[Supervised Machine Learning: Regression and Classification] #5. Gradient descent in practice

회사원일때 좋았던 점 = 주중엔 노답인데 주말엔 뇌빼고 놀 수 있음 회사원일때 싫었던 점 = 회사일이 내 인생으 ㅣ전부가 된 느낌 (업무 커버리지가 넓어서 주중엔 맨날 일생각만 함...) vs 공부하니까 좋은점 = 내 맘대로 일정 짜서 공부하면됨 공부하니까 싫은 점 = 근데 그게 주말까지 이어짐 아니야 그래도 아직은....할만하다..화이팅! ^^ #5. Gradient descent in practice Feature scaling : 경사하강법이 더 빠르게 수행될 수 있도록 하는 테크닉 중 하나 Feature size and parameter size Feature size와 parameter size는 서로 반비례 하게 됨 (Feature size가 클수록 이에 해당하는 parameter는 작아짐. ..