deep learning

1. Deep Learning Frameworks 이 강의가 제작되던 시기에도 이미 딥러닝 분야에서 활용할 수 있는 다양한 프레임워크들이 존재했다. 어떤 프레임워크를 사용할 것인지는 사용자의 선호에 따라 달라질 수 있다. 하지만 현재 오픈 소스인 것이 이후에는 어떤 이유에 의해서든지 아니게 될 수가 있으므로 장기적으로는(개인의 관점은 아닌듯하다) 어떤 프레임워크를 선택할 것인지에 대해 보다 신중한 판단이 요구된다. 2. TensorFlow Motivating problem Cost Function이 위와 같다고 했을 때 TensorFlow를 사용하면 W와 b를 간편하게 구할 수 있다. import numpy as np import tensorflow as tf w = tf.Variable(0, dtype..
1. Normalizing Activation in a Network Normalizing inputs to speed up learning gradient descent 과정에서 빠르게 local minima에 도달하는데 normalization이 도움이 된다는 것은 이전에 배웠다. 그렇다면 neural network에서, 즉 hidden layer가 여러 개인 경우에는 normalization을 언제언제 적용해야 할까? 다시 말하자면 input만 normalization을 해야할까? 아니면 activation function을 통해 나온 결과값에도 적용을 해야할까? 교수님은 둘 다 하는 것을 default로 생각하라고 하셨다. activation function의 결과가 어떻게 나올지는 확실히 예측할..
1. Exponentially Weighted Averages (지수 가중 평균) Temperature in London 영국의 1년 날씨를 날짜에 따라 표시한 그래프다. 전날과 오늘의 관계를 수식적으로 표현하여 그래프가 그려지는 양상을 예측하고자 한다. Exponentially weighted averages V_t 로 표현된 수식이 Exponentially wieghted averages에 대한 수식이다. 이는 과거의 비중(가중치)을 베타로 표현하고 오늘의 비중을 세타로 표현하고 있다. 따라서 베타가 아주 큰 경우에는 과거의 기록을 더 많이 반영하게 되므로 그래프가 완만한 초록색 선으로 표현된다. 대신 말 그대로 과거의 기록을 더 많이 반영하기 때문에 실제 데이터보다는 약간 우측에 치우치게 된다. 반..
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..
1. Practical aspects of Deep Learning (Quiz) examples의 수에 따라 train/dev/test set을 어떤 비율로 split 해야 하는가? 10,000개 정도로 작을 경우 : 60/20/20 20,000,000개 정도로 많을 경우 : 99/0.5/0.5 training, test set은 같은 source로부터 구해진 것을 사용해야 한다. 그렇지 않을 경우 학습이 제대로 이루어지지 않는다. 'high bias' 문제가 있는 경우 hidden layer 숫자를 늘려(deeper network) 해결을 시도할 수 있다. 'high variance' 문제의 경우 더 많은 train data를 확보하거나 regularization을 시도할 수 있다. Data augme..
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)로 표현된다. 이를 기존 미분 정의와 ..
chanmuzi
'deep learning' 태그의 글 목록