목록ML & DL/Coursera-ML (21)
뉴럴넷에서 Optimization을 사용하기 위해 파라미터를 벡터나 행렬로 사용하는 방법에 대해 알아본다. 뉴럴넷이 다음과 같을 때, 파라미터 θ 행렬을 하나의 큰 벡터에 담을 수 있다. (Gradient 행렬도 마찬가지) 기존의 θ 행렬은 하나로 만들었던 큰 벡터에서 reshape을 통해 추출할 수 있다. (θ 행렬이 3개 있고, 그림에서 히든 레이어가 1개밖에 없다. 히든 레이어가 2개가 되거나 파라미터 행렬이 2개만 있어야 되는 거 같은데 오타인지?) 위에서 정의한 방법을 사용하면 뉴럴넷 학습 알고리즘은 다음과 같이 요약할 수 있다. 파라미터 θ 행렬을 가지고 있는다. Optimization에 적용하기 위해 초기의 파라미터 θ 행렬을 하나의 큰 벡터로 펼쳐서 넣는다. 아래의 cost function..
뉴럴넷을 학습시키는 방법에 대해 알아본다. 이전에 배웠던 내용이지만, 만약 Binary classification 문제를 풀고자 한다면 마지막 레이어의 unit은 하나만 있으면 된다. 그리고 class의 수가 K인 분류 문제를 풀고자 한다면 마지막 레이어의 unit 수는 K개가 있으면 된다. 따라서 각 h(x)는 K차원의 벡터가 된다. 뉴럴넷의 Cost function을 정의하기 전 로지스틱 회귀에서 우리가 정의했던 cost function은 다음과 같다. 앞에서 Loss값을 구하고 뒤에서 Regularization을 이용하여 파라미터 θ의 값이 작아지도록 하면서 균형을 유지하도록 하였다. 뉴럴넷에서 h(x)가 K차원의 벡터이고 h(x)_i가 output 레이어의 i번째 unit이라고 할 때 cost f..
뉴럴넷이 어떻게 복잡한 non-linear function을 계산하는지 알아본다. 분류문제를 풀기위해 로지스틱 회귀로 non-linear decision boundary를 만들어 오른쪽과 같이 두 class를 분류하였다. XOR 혹은 XNOR도 non-linear classification 문제다. 뉴럴넷으로도 non-linear classification 문제를 풀 수 있다. 먼저 linear model로 풀 수 있는 AND 논리연산이 뉴럴넷으로 어떻게 만들어지는지 보자 Sigmoid의 input으로 들어가는 값이 x1, x2 두 변수 외에 bias unit을 고려해서 3개의 unit이 존재하며 다음 unit과 연결된 wire의 파라미터는 다음과 같다. 따라서 우리가 구하게 될 output 값 h(x)..
신경망 모델의 기본 개념, hypothesis등 뉴럴넷의 전반에 대해 알아본다. 뇌 안의 뉴런에선 Dendrite라는 여러 개의 input wire가 존재하며 Axon을 통해 다른 뉴런으로 신호를 전달한다. 간단한 인공지능 신경망 기본구조를 보면 여러 개의 input 뉴런이 다음 레이어의 뉴런과 연결된 wire를 따라 신호를 전달하고 output은 output wire를 따라 어떤 값이 나오게 된다. X_0는 보통 bias unit이라 1이다. 그리고 뉴럴넷 모델의 파라미터들을 weight라고 한다. 뉴럴넷은 이렇게 여러 개의 뉴런들이 서로 복잡하게 연결되어 있다. Input layer와 output layer 사이의 layer를 hidden layer라고 한다. 히든 레이어 유닛의 activation을..
뉴럴넷이 필요한 이유에 대해 알아본다. 이러한 데이터셋을 잘 분류해야 하는 문제를 풀 때 우리는 로지스틱 회귀를 이용하였다. 여기서 굉장히 많은 다항식을 필요로 하였고 두개의 feature만 다뤘기 때문에 이 모델은 현재 학습 데이터만 잘 분류할 수 있을 것이다. 이것보다 더 많은 100개의 feature를 다뤄야 하는 경우를 생각해보자 여기서 우리가 다변수 이차항까지 사용하게 된다면 항이 엄청나게 많아질 것이다. 그리고 이 때 사용하게 되는 feature의 개수는 약 5,000개 가량이 되며 이는 점근적으로 O(n^2)에 가까워진다. 단순히 각 feature를 제곱해서 모델을 만들면 훨씬 feature의 수는 적겠지만 위의 그림처럼 data를 잘 분류하긴 어려울 것이다. 그리고 만약 x_1 * x_2 ..
Overfitting의 정의와 Overfitting을 해결하는 방법에 대해 알아본다. 선형회귀로 집 값을 예측하는 예제를 다시 보자 첫번째 모델은 직선으로 집 값을 예측하고 있다. Size가 작을 때는 가격을 어느정도 예측할 수 있으나 Size가 점점 더 커질 수록 가격이 상승하는 폭이 줄어들기 때문에 직선을 사용해선 데이터를 잘 나타낼 수 없다. 다시 말해, 이 모델은 데이터에 제대로 맞지 않는 것이다. 이러한 문제를 과소적합(underfitting)이라고 하며 알고리즘이 high bias 성향을 가지고 있다고 한다. High bias 특성을 갖는다는 뜻은 이 모델이 데이터의 분포와 상관없이 집 크기에 따라서 집 값을 무조건 선형적으로만 예측하려는 성향을 가지고 있기 때문이다. 집 크기가 엄청 큰 데이..
로지스틱 회귀를 이용하여 Multi-class classification 문제를 푸는 방법을 알아본다. 멀티클래스 분류는 클래스가 여러 개인 문제를 분류하는 것이다. 이메일을 종류별로 분류하는 것 환자를 진단하는 것 그리고 날씨를 4개의 경우 중 하나로 분류하는 것 등이 있다. Y의 클래스 값을 0으로 시작하든 1로 시작하든 상관 없다. Binary classification에서 이렇게 직선을 그어 클래스를 구분하였다. 멀티클래스 분류에서도 이와 같은 방법을 이용한다. 3개의 클래스를 가지는 데이터셋을 분류하기 위해 이 문제를 binary classification 문제로 전환할 것이다. 먼저 삼각형 class1을 양성이라 하고 나머지 데이터는 모두 음성으로 취급한다. 그러면 오른쪽 위의 그림처럼 bin..
로지스틱 회귀에서 파라미터를 fitting 시키기 위한 Cost function 정의에 대해 알아본다. 트레이닝 셋이 m개 있고 n개의 feature가 있다면 feature 벡터 x는 n+1차원의 벡터가 된다. 계속 언급하는 부분이지만 x_0=1이다. 일단 이진분류만 할 것이기 때문에 y는 0 또는 1이된다. 로지스틱 회귀에서의 가설 h(x)는 위와 같이 정의하였다. 그러면 적절한 파라미터 θ를 어떻게 찾을 수 있을까? 선형회귀에서 비용함수 J를 이렇게 정의하였다. (1/2을 시그마 안으로 넣은 것 뿐이다.) 선으로 그은 부분을 간단하게 cost(h(x), y)라고 하자. 그러면 cost(h(x), y)는 오차제곱에 1/2을 곱한 값이 된다. (눈에 잘 들어오기 위해 위의 첨자를 일부러 지운 것임) 선형..