Neural Network

1. Mini-batch Gradient Descent Match vs. mini-batch gradient descent 많은 양의 데이터를 처리해야 하는 딥러닝은 연산 시간을 줄이는 여러 기법들이 필요하다. 그 중 하나가 여러 데이터를 일부씩 묶어 계산하는 방식인 mini-batch gradient descent이다. 만약 처리해야 하는 데이터의 개수가 5,000,000개라면 어떻게 될까? 이 많은 양의 데이터를 한꺼번에 forward하고 backward 하는 것은 엄청난 computing power를 필요로 할 것이고, 이것이 뒷받침된다고 하더라도 썩 좋은 시간적 효율을 보이진 못할 것이다. 따라서 우리는 이를 일정 개수(위 예에서는 1,000개)씩 묵어서 연산을 시도하기로 한다. 이때 묶인 각 b..
4. Numerical Approximation of Gradients Checking your derivative computation 미분의 정의를 통해 접선의 기울기를 계산하는 과정을 이해해보자. x = θ일 때 아주 작은 값 ε = 0.01을 더하고 빼서 함수값을 구해본다. 본래 기울기는 'y의 변화량 / x의 변화량' 이므로 {f(θ+ε) - f(θ-ε)} / 2ε 이 기울기가 된다. 이는 함수 f(θ) = θ^3을 미분하여 구한 g(θ) = 3θ^2와 근사한 결과다. 실제 값을 대입해보면 미분값이 3.0001로 기존 도함수 g를 통해 구한 3과 0.0001 차이가 나는 것을 알 수 있다. 계산은 이와 같은 방식으로 이뤄진다. 이때의 error는 O(ε^2)로 표현된다. 이를 기존 미분 정의와 ..
1. Key Concepts on Deep Neural Netoworks (Quiz) 어려운 내용은 아닌데 다 맞히기가 어려워서 몇 번이고 시도했다... cache는 forward를 진행하는 과정에서 backward 계산을 편리하게 하기위해 저장하는 변수값이다. 이때 저장되는 Z는 미분계수를 구하는데 사용된다. parameter에는 W,b가 포함된다. activation function, number of layers 등은 hyper parameter에 속한다. vecotirzation을 통해 explict한 for-loop를 줄일 수 있지만 각 layer에 대한 계산을 수행하는데 있어서는 for-loop를 제외할 수 없다. Z,A를 각 layer에 대해 계산하는 알맞은 코드를 고른다. 결과적으로 Z[1..
1. Shallow Neural Networks (Quiz) X는 각 column별로 하나의 training example인 matrix이다. tanh를 activation function으로 사용하면 그 범위가 -1부터 1까지이므로 데이터를 0을 중심으로 모이게한다. 따라서 학습을 보다 간단하게 만들어버려서 제대로 학습이 이루어지지 않는다. binary classification의 output layer activation function은 sigmoid가 적절하다. axis = 0을 기준으로 sum을 하면 행이 날아가고 열이 남는다.(행을 합쳐서 각 열별로 표시) 반대로 axis = 1을 기준으로 sum을 하면 열이 날아가고 행이 남는다.(열을 합쳐서 각 행별로 표시) weight와 bias를 0으로..
1. Gradient Descent for Neural Networks 두 개의 hidden layers가 존재하는 neural network에 대해 gradient descent의 parameters는 네 개이다. w1, b1, w2, b2. 이를 cost function의 매개변수로 넣고 이 값들을 최적화하여 cost의 값을 최소화하는 것이 최종 목표이다. 값을 업데이트 하는 과정은 cost function을 각 변수로 편미분하여 구한 미분계수를 빼는 방식으로 진행한다. 이 반복은 적절한 값이 찾아질 때까지 계속된다. Formulas for computing derivatives forward/back propagation 의 공식이 나열되어있다. forward propagation은 앞에서 다룬 내..
1. Simple neural networks neural network를 이루는 작은 원 하나를 neuron이라고 한다. 그 구조는 활성화 함수인 시그모이드에 가중치 w와 입력 a를 곱하고 b를 더한 값을 집어넣는 것이다. 만약 입력이 여러개이고 이것이 여러개로 구성된 다음층으로 전달될 때는 위와 같은 구조를 가진다. 1번 layer에 속하는 neuron들이 0번 layer에 속하는 neuron들과 모두 연결되어있다. 그리고 그 연결은 위에서 설명한 가중치와의 곱 + 편향으로 구성된다. 이를 일반화하면 단순한 숫자(scalar)의 곱이 아닌 벡터의 곱으로 이해할 수 있게 된다. 가중치벡터 W와 입력벡터 a를 곱하고 여기에 편향벡터 b를 더한 결과를 시그모이드 함수에 집어넣는 것이다. 다양한 일들을 수행..
chanmuzi
'Neural Network' 태그의 글 목록