[딥러닝] 17

밑바닥부터 시작하는 딥러닝 1 - 4 신경망에서의 기울기

신경망 학습에서 가중치 매개변수에 대한 손실함수의 기울기를 구해야 합니다. 가중치가 W, 손실함수가 L, 형상이 2by3인 신경망을 생각해 봅시다. W $= \begin{pmatrix} w_{11} & w_{12} & w_{13} \\ w_{21} & w_{22} & w_{23} \end{pmatrix}$ 일 때 경사는 $\frac{\partial{L}}{\partial{W}}$로 나타낼 수 있습니다. $\frac{\partial{L}}{\partial{W}} = \begin{pmatrix} \frac{\partial{L}}{\partial{w_{11}}} & \frac{\partial{L}}{\partial{w_{12}}} & \frac{\partial{L}}{\partial{w_{13}}} \\ \f..

밑바닥부터 시작하는 딥러닝 1 - 4 경사 하강법

이 전 포스팅에서 미분을 이용하여 매개변수의 최적값을 찾기 위해 손실 함수를 설정한다고 했습니다. 여기에서는 미분에 대한 이야기를 해보려 합니다. 수치미분, 해석적 미분, 편미분에 대하여 다루어 보고 경사하강법에 대해 소개하겠습니다. 수치 미분 다음 식은 미분을 나타낸 식 입니다. $\frac{df(x)}{dx} = \lim_{h→0}\frac{f(x+h)-f(x)}{h}$ 여기에서 수치미분은 $h$를 아주 작은 값, 예컨데 $h = 10^{-4}$등의 값으로 설정한 후 직접 $\frac{f(x+h)-f(x)}{h}$ 계산을 진행하는 것을 의미합니다. (이론적으로는 $h$값이 작으면 작을수록 좋지만, 컴퓨터의 계산 문제 때문에 일반적으로 $h=10^{-4}$를 이용하면 좋은 결과를 얻을 수 있다고 알려져..

밑바닥부터 시작하는 딥러닝 1 - 4 신경망 학습

신경망 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것을 뜻합니다. 기계학습 문제는 데이터를 훈련 데이터와 시험 데이터로 나누어 학습과 실험을 수행합니다. 이는 과적합(overfitting)을피하기 위함입니다. 과적합이란 우리가 학습시킨 데이터가 어느 특정한 데이터에 대해서만 적절한 매개변수를 찾은 경우를 의미합니다. 이런 과적합 상태에서는 범용적으로 사용할 수 없기 때문에 올바르게 학습시키지 못한 것 입니다. 손실함수 손실함수란 신경망 성능의 "나쁨" 상태를 나타내는 지표로, 현재 신경망이 훈련 데이터를 얼마나 잘 처리하지 못하는지를 나타냅니다. 손실함수는 일반적으로 오차제곱합과 교차 엔트로피 오차를 사용합니다. 오차제곱합(sum of squared for error, SSE..

밑바닥부터 시작하는 딥러닝 1 - 3 손글씨 숫자 인식 예제

신경망에서는 우선 훈련 데이터를 사용해 가중치 매개변수를 학습하고, 추론 단계에서 이 매개변수를 사용해 입력 데이터를 분류합니다. 위 사진과 같이 dataset이라는 디렉터리 안에 mnist.py라는 파일이 있습니다. from dataset.mnist import load_mnist (x_train, t_train), (x_test, t_test) = load_mnist(flatten=True, normalize=False) print(x_train.shape) print(t_train.shape) print(x_test.shape) print(t_test.shape) 우선 위의 코드를 이용하여 로드가 잘 되었나 확인해줍니다. from dataset.mnist import load_mnist import..

밑바닥부터 시작하는 딥러닝 1 - 3 신경망

신경망은 그림과 같이 입력층(Input layer), 은닉층(Hidden Layer), 출력층(Output Layer)로 구성됩니다. 은닉층의 뉴런은 입력층과 출력층과는 달리 보이지 않습니다. $y= \begin{cases} 0, & (w_{1}x_{1}+w_{2}x_{2}+b \le 0) \\ 1, & (w_{1}x_{1}+w_{2}x_{2} +b> 0)\end{cases}$ 위 식을 다음과 같이 표현할 수 있습니다. $y=h(w_{1}x_{1}+w_{2}x_{2}+b)$ $h(x) = \begin{cases} 0 & (x \le 0) \\1 & (x > 0)\end{cases}$ 여기서 이 $h(x)$를 활성화 함수(activation function)라고 합니다. (위의 경우 계단 함수 Step f..

밑바닥부터 시작하는 딥러닝 1 - 2 퍼셉트론

퍼셉트론은 딥러닝의 기원이 되는 알고리즘입니다. 따라서 퍼셉트론을 공부하는 것은 신경망과 딥러닝으로 나아가는 데 중요한 아이디어를 배우는 일입니다. 퍼셉트론을 수식으로 나타내면 다음과 같습니다. $y= \begin{cases} 0, & (w_{1}x_{1}+w_{2}x_{2} \le \theta) \\ 1, & (w_{1}x_{1}+w_{2}x_{2} > \theta)\end{cases}$ 여기서 $x_1, x_2$는 입력 신호, $y$는 출력 신호, $w_1, w_2$는 가중치를 나타냅니다. 수식을 보면 알 수 있듯, 가중치는 해당 노드의 중요도를 나타냅니다. 위 식에 편향을 추가해보겠습니다. $y= \begin{cases} 0, & (w_{1}x_{1}+w_{2}x_{2}+b \le 0) \\ 1, ..

반응형