Backpropagation - multiple layers와 gradient descent를 이용한 네트워크 학습에대해 더 알아보자. - 우리가 만든 네트워크를 이용하여 최초의 시도로 output을 뽑아낸 뒤, - 얼만큼 이 값이 잘못된지를 반영하여 weights를 다시 설정하여야 하지 않겠는가? - 따라서 input → hidden → output 으로 이어지는 네트워크 flow에서 - weights를 다시 바로잡기위해 역행하며 정보를 전달하는 과정을 Backpropagation이라 함. - gradient descent를 사용하여 hidden layer의 weights를 업데이트하려면 - 각 hidden unit이 최종 output에 얼마나 많은 오차를 남겼는지를 알아야한다. - 각 layer의 o..
Implementing the hidden layer - 이전에 XOR 퍼셉트론을 사용해서 추가적으로 units의 layer를 추가하면 - 우리의 네트워크 모델이 선형적으로 해결할 수 없는 문제점에 대한 해결이 가능했다. - 위 사진에서 보듯, multi-layer 퍼셉트론의 개념은 - Input unit → Hidden unit → Output unit 으로 이어지는 구조를 가지고있다. - hidden layer에 대한 activation이 output layer의 input으로 사용된다. - 이와같은 구조로 이어지게 된다. - 이 hidden layer의 수가 많을수록 정교한 네트워크를 형성하게되고 - 이 개념이 딥러닝의 핵심이 된다. Implementing the hidden layer - 신경망 ..
Implementing Gradient Descent - weights를 업데이트 하는 알고리즘은 위와같다. - 단일 weight에 대한 업데이트 알고리즘인데, 이를 네트워크가 학습하여 - 다중 weights에 대한 업데이트를 진행할 수 있도록 하려면 어떻게해야할까? - 전에 진행했던 데이터를 기반으로 대학에 입할 할 수 있는지 없는지를 예측하는 프로그램을 만들어보자. - 단일 output layer와 단일 unit을 가진 프로그램을 먼저 만들어보도록 하자. - sigmoid function을 output unit activation으로 사용할 것임. - 세개의 input unit이 있다고 생각할 수 있지만(GRE score, GPA, Rank) - 먼저 데이터를 사용가능하도록 변형을 해줘야한다. - r..
Mean Squared Error Function - 이전에 다뤄본 내용은 Log-Loss 에 관한 오류 최소화 방법이었다. - 신경망 네트워크에는 오류를 최소화하기 위한 여러 방법들이 존재하는데, - 이번에 다뤄볼 내용은 Mean squared error function이다. - 이는 prediction 과 label의 차 에 대한 제곱의 평균을 의미함. Gradient Descent with Squared Errors - 우리가 만들어 나갈 neural network에 들어갈 weights를 찾는법에 대해 고민해보자. - weights의 최종 목표는 prediction이 실제 값에 최대한 근사하도록 만드는것이다. - 이 오차율을 측정하기위해 error 값을 두고, 얻어낸 prediction이 얼마나 ..
Backpropagation - Neural network를 학습시키기 위해 backpropagation 이라는 방법을 사용할 것인데, 다음과 같이 작동한다. Backpropagation procedure - feedforward 연산 수행 - 모델의 출력 결과와 바람직한 결과(desired output)를 비교 - 오류를 계산 - 오류를 각각의 weights로 분산시키기위해 feedforward 연산을 역방향으로 수행(backpropagation) - 이 결과값을 이용하여 weights를 업데이트하고 더 나은 모델을 얻는다. - 최선의 모델을 얻을 때 까지 위 과정을 반복. - feedforward부터 recap해보자. - 우리는 하나의 파랑 점(y = 1)을 input으로 집어넣을 경우 그 좌표를 X..
Feedforward - 입력을 출력으로 변환하는데 사용되는 process neural networks. - 우리는 지금까지 neural network가 뭔지 알아봤으니, 그걸 어떻게 학습(train) 시킬지에 대해 알아보자 - 학습은 우리가 가진 데이터를 모델링 하기위해서 edges에 어떤 인자(parameters)들을 가질 것인지를 의미한다. - 그렇기때문에 이를 알아보기위해선 input을 통해 output이 리턴되는 프로세스를 자세히 살펴봐야한다. - X1과 X2를 input으로, y =1 즉 파란점인 모델의 경우 - w1과 w2는 edges에 있는 weights이고, B는 note에 있는 bias이다. - w1의 값이 w2보다 더 크므로 굵은선으로 표시됨. - 빨강영역에 있는 점인데 해당 점은 파..
Neural Network Architecture - 앞서 배운 내용을 토대로 Neural Networks(또는 Multi-layer Perceptrons)를 구현해보도록 하자. - 먼저 두가지의 퍼셉트론을 어떻게 결합하는지에 대해 알아보도록 하자. Combining Regions - 비선형 모델을 그리기위해서는 간단하다. 약간의 트릭임 - 이와같이 두개의 선을 사용한 경계가 커브로 역할을 하는것과 같다. - 우리가 알다시피 선형 모델(일차방정식)은 전체 확률 공간이다. - 즉, 모든 점에 있어서 그 점이 파랑(또는 빨강)일 확률을 리턴할 수 있다는 것. - 동일한 한 점에 대해 파랑일 확률을 첫번째 선형모델로는 0.7이라는 확률을, 두번째 선형모델로는 0.8을 얻었다 가정하면 - 우리는 이 두개의 점을..
Non-linear Data - 현실에는 비선형 데이터들이 더 많다. - 즉, 직선으로 양분할 수 없는 수치를 가진 데이터들이 더 많이 존재한다는 의미. - 이런 곡선을 나타내어 분류함에 있어 딥러닝이 무한한 가능성을 지니고 있다 할 수 있음. Non-linear Models - 위와같은 데이터들을 분류하기에 직선으로만 영역을 이분하는것은 오류를 범할 가능성이 크다. - 따라서 우리는 곡선을 표현하는방법을 알아보게 될 것인데 - 여전히 Gradient Descent 알고리즘을 이용하여 영역을 나눠볼 것임 - 위와같이 영역을 나눠서 빨강일 가능성이 더 높은 영역과 파랑일 가능성이 더 높은 영역으로 - 곡선으로 경계를 나누는 방법에 대해 알아보도록 하자.
Perceptron vs Gradient Descent 공통점 - 잘못 분류된(misclassified) 점의 경우 경계에게 더 가까이 와야한다는 신호를 보냄(추상적으로 말해서) 차이점 · Perceptron Algorithm - 잘못 분류된(misclassified) x의 weight에 대해서만 변경 - y(label) = 1 또는 0 그리고 yHat(prediction) = 1 또는 0 - 따라서 옳게 분류된 경우 y - yHat = 0 - 옳게 분류된 경우 해당 점에대해 아무것도 수행하지 않음 · Gradient Descent Algorithm - 모든 weights를 바꾼다 (Wi += learningRate * (y - yHat) * Xi) - yHat의 값이 0부터 1사이의 값. - 옳게 분류..