Implementing Gradient Descent - Gradient descent 알고리즘을 직접 구현해보도록하자. - 여기 에서 repo를 클론해서 notebook상에서 gradient-descent 폴더 내의 GradientDescent.ipynb 오픈 Instructions - sigmoid : sigmoid 함수를 구현 - output_formula : prediction 값을 리턴하는 함수 구현 - error_formula : 해당 점에서의 error 값을 리턴하는 함수 구현 - update_weights : 매 gradient descent step별 새롭게 weights를 갱신하는 함수를 구현 - 위 함수들을 구현하고 train 함수를 실행하면 연속적인 gradient descent s..
Gradient Descent Algorithm - pseudo code를 작성해보도록 하자. - 랜덤한 weights에서 시작하여(W1, ..., Wn, b) 전체 확률 함수가 sig(Wx + b)로 주어진다. - 그리고 모든 점의 error를 계산하고, 앞서 해온것과 동일하게 - 점이 제대로 분류가 되어있으면 error 값은 작고, 점이 잘못 분류(misclassified)되어있으면 error 값은 크다. - 그 다음 좌표상의 모든 점(X1, ..., Xn)에 대해 learning rate를 고려하여 Weights를 업데이트 - Weights를 업데이트한다는말은 즉, W'과 b'을 구한다는 얘기이고 - 이는 이와같이 구할 수 있다. - 근데 우리는 이미 우측의 편미분값에 대해 앞서 yHat과 y의 관..
Gradient Descent - Gradient Descent를 그래프상에 표현해보면 위와같다. - 각 축은 weights와 error로 구성되어있고, 그 위에 면의 형태로 펼쳐져 있음. - inputs으로는 W1과 W2가, Error function은 E로 주어진다. - E의 gradient(경사도)는 W1과 W2에 대하여 편미분한 벡터값의 합에 의해 주어진다. - 이 그라디언트는 error function을 가장 높게 상승(∇E)시키고자 할 경우 움직여야 할 방향(direction)을 말해준다. - 즉 가장 가파른 기울기를 가진 방향(∇E)을 알려주게 된다는 의미. - 그러므로 우리가 그 그라디언트의 음수값(-∇E)을 얻게된다면, 이것이 error function을 가장 감소시키는 방향이 된다. -..
Logistic Regression - 머신러닝에서 가장 인기있고 유용한 알고리즘 중 하나. - Logistic Regression 즉, 논리 회귀 알고리즘이다. - 그리고 이것의 흐름도는 다음과 같다. - 데이터 수집 (Take your data) - 랜덤 모델 선택 (Pick a random model) - 에러 계산 (Calculate the error) - 에러 최소화 및 더 나은 모델 탐색 (Minimize the error, and obtain a better model) - Cross-Entropy : 일어나는 사건의 가능성을 측정한 것. - 좋은 네트워크는 낮은 엔트로피를 갖음. - 이말은 곧 발생한 사건과 알려진(known) 확률 사이에 상관관계가 있다는 의미이다. - Cross-Entr..
Cross-Entropy - Cross-Entropy : 일어나는 사건의 가능성을 측정한 것. - 좋은 네트워크는 낮은 엔트로피를 갖음. - 이말은 곧 발생한 사건과 알려진(known) 확률 사이에 상관관계가 있다는 의미이다. - Cross-Entropy는 error function을 계산할때 사용되며 이를 통해 각 네트워크(모델)를 비교하고 - 어떤것이 더 나은지 알 수 있다. 그러므로 더 나은 네트워크(모델)에 가까워 질 수 있다. - Error function은 해당 네트워크(모델)가 얼마나 잘 작동하는지 를 - 네트워크를 비교하고, 더 나은 네트워크에 가깝게 접근하기위해 수학적으로 계산을 한 것이다. - 이때 이 Error function은 기술적으로 cross-entropy를 사용하여 얻어낼 수..
Maximum Likelihood - 확률은 딥러닝에 있어 매우 중요한 도구 중 하나이다. - 확률을 어떻게 우리의 모델에 적용시켜 사용할 수 있는지 알아보자. - 여러 모델 들이 있다 가정하고, 하나의 사건이 있을때 그 사건에 대해 모델들이 확률을 리턴한다 가정해보자. - 이 경우 일어난 사건에 대해 더 높은 확률을 부여하는 모델이 가장 유용한 모델이 된다. - 이러한 방법을 Maximum-Likelihood 라고 한다. - 존재하는 label들에 대해 가장 높은 확률을 부여하는 모델을 선택하는것이 우리가 해 나갈 일이다. - 그러므로 확률을 극대화 함으로써 우리는 가장 유용한 모델(best model)을 고를 수 있다. - 위의 두개의 모델중 왼쪽의 모델은 2개의 옳게분류된 점과 2개의 잘못 분류된점..
One-Hot Encoding - 여지껏 다뤘던 경우들은 input 데이터가 모두 숫자였다. - 그런데 input으로 주어지는 값들이 항상 숫자가 아닐 수도 있다. - 오리, 비버, 왈루스의 경우 각각 0, 1, 2로 할당하였지만 그 경우 클래스 사이의 의존성을 갖기때문에 - 사용하기 곤란하다. - 따라서 다음과같이 One-Hot Encoding을 구성할 수 있다. - 각각의 클래스는 해당하는 열(column)을 가지고 있고, input이 해당 열과 일치할경우 1을, - 그 외엔 0을 표시하여 확인이 가능하다. - 이 방법은 의존성(dependencies)이 반드시 있는것은 아니므로 더 많은 컬럼이 있더라도 가능하다. - 이러한 방법을 One-Hot Encoding이라 하며, 데이터처리에 매우 많이 사용..
Multi-Class Classification and Softmax - 지금까지 우리는 yes or no의 리턴값 또는 파랑과 빨강 중 더 가까운 방향에 대한 확률로 리턴하는경우를 다뤄봤는데, - 만약 우리가 리턴해서 얻고자 하는 값이 R, G, B와 같은 컬러값 또는 강아지, 고양이, 새 와 같은 대상이라면?? The Softmax Function - 우리가 본것이 어떤 동물인지에 대한 모델을 구현해본다 가정하자. - 오리, 비버, 왈루스 중 위에 할당된 확률에 따라 판단하는 모델을 구현하고, 전체 확률을 합한 값은 당연하게 1이 된다. - input으로는 부리가 달렸는지, 이빨의 개수, 털의 종류 등등이 되겠다. - Score로 오리는 2, 비버는 1, 왈루스는 0을 할당해주고 그 다음 설정해 줘야..
Discrete vs Continuous Predictions - 이산과 연속 에러 함수에서, 연속이 에러처리를 함에 있어서 더 나은점을 확인했고 - 그러므로 우리는 discrete → continuous prediction이 가능하도록 진행해보자. Prediction - 알고리즘을 통해 리턴되는 값. - discrete answer : Yes or No / continuous answer : 63.8%과 같은 number - discrete의 경우 0 또는 1, yes or no로 리턴되는 반면, continuous의 경우 확률의 개념으로 리턴된다. - continuous에서의 확률을 보자면, 경계선에 가까울수록 50%, positive-area쪽으로 멀어질수록 100%, negative-area쪽은 ..
Non-Linear Regions - 만약 한 학생이 있는데, 기존에 설정해 둔 경계선에 의하면 Test : 9/10, Grades : 1/10으로 입학이 가능한데 - Grade가 너무 낮아 입학을 시키고싶지 않다면???? - 그럼 기존의 일차방정식형 경계선이 역할을 하지 못한다. - 이번엔 비선형 지역에 대한 Positive-area, Negative-area를 판단해보도록 하자. Error Functions - 이러한 비선형 영역의 판단을 위해 우리는 error function의 도움을 받아 처리할 것인데, - error function은 우리가 solution까지 얼마만큼 멀리 떨어져있는지를 말해준다. - 예를들어, 1미터 전방에 차량이 있고, 나는 거기까지 도달해야한다고 한다면 - 1미터라는 거리..