본문 바로가기
반응형

신경망8

딥러닝) 신경망 학습 전체 알고리즘 (코드) 1. 신경망 구축에 필요한 Layers import numpy as np from common.functions import * class Relu: def __init__(self): self.mask = None def forward(self, x): self.mask = (x lambda 변수: return 식 grads = {} grads['W1'] = numerical_gradient(loss_W, self.params['W1']) grads['b1'] = numerical_gradient(loss_W, self.params['b1']) grads['W2'] = numerical_gradient(loss_W, self.params['W2']) grads['b2'] = numerical_gradi.. 2021. 3. 18.
딥러닝) 신경망 학습 알고리즘 , Stochasitc Gradient Descent , epoch, iteration , batch size 1. 신경망 학습 알고리즘 구현신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 training data에 적응하도록 조정하는 과정을 '학습'이라 한다. 신경망의 학습은 4가지 단계로 이루어진다. 1단계 - 미니배치training data 중 일부를 random으로 가져온다. 선별된 데이터를 미니배치라 하며, 미니배치의 손실 함수 값을 줄이는 것이 목표이다. 2단계 - 기울기 산출미니배치의 손실 함수 값을 줄이기 위해 손실 함수의 값을 가장 작게하는 방향을 제시해주는 각 가중치 매개변수의 기울기를 구한다. 3단계 - 매개변수 갱신가중치 매개변수를 기울기 방향으로 갱신한다. 4단계 - 반복1~3단계를 반복한다. 신경망의 학습은 경사 하강법으로 매개변수를 갱신하는 과정이다. 하지만 매개변수를.. 2021. 3. 2.
딥러닝) 수치 미분 , 해석적 미분 , 편미분 1. 수치 미분미분이란 한 점에서의 기울기를 의미한다. 기울기는 두 점 사이에서 발생하는 경사인데, 미분을 '한 점에서의 기울기'라고 하는 이유는 그 두 점 사이의 거리를 매우 좁혀서 한 점으로 보일때 그 점에서 기울기를 구하기 때문이다. 즉, 처음에는 두 점 사이의 기울기에서 시작하여 최종적으로는 거의 한 점에서의 기울기가 된다. 차분을 통해 미분하는 것을 수치 미분이라 하는데 수치 미분은 아래와 같다 (※ 차분이란 임의의 두 점에서의 함수 값들의 차이를 말한다.) 위의 미분 식을 보면, f(x)를 x에 대해 미분한다는 것은 x의 변화가 함수 f(x)를 얼마나 변화시키는지를 구하겠다는 것이며, 시간 h를 무한히 0으로 근접시켜 한 순간의 변화량을 나타낸다. 위의 식대로 미분 계산을 구현해보면 다음과 같.. 2021. 2. 25.
딥러닝) 손글씨 숫자 인식 MNIST 신경망 , 배치 batch 처리 신경망 구조를 손글씨 숫자 분류 문제를 해결하는데 적용해볼 것이다. 기계학습의 문제 풀이는 학습과 추론 단계를 거친다. 학습 단계에서는 모델을 학습하고, 추론 단계에서는 학습한 모델로 예측해야하는 데이터에 대해 추론을 수행하는 것이다. 신경망도 마찬가지로 두 단계를 거친다. 훈련 데이터를 사용하여 가중치 매개변수를 학습하고, 추론 단계에서는 학습한 매개변수를 사용하여 입력 데이터를 분류한다. 이번 포스팅에서는 학습 단계를 생략하고, 순전파(foward propagation)라고도 불리는 '추론 과정'을 구현해볼 것이다. 1. MNIST 데이터셋 MNIST dataset은 0~9까지 숫자 이미지 데이터이다. Training dataset은 60,000개이고 Test dataset은 10,000개이다. Tr.. 2021. 2. 18.
728x90
반응형