퍼셉트론에서 신경망으로(5) - 학습 : 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득 - 지표 : 신경망이 학습할 수 있도록 해줌 (손실 함수) 신경망은 데이터를 보고 학습할 수 있다. 여기서 학습한다는 의미는 가중치 매개변수의 값을 데이터를 보고 자동으로 결정한다는 것이다. 데이터에서 답을 찾고 데이터에서 패턴을 발견하기 때문에 꼭 데이터가 있어야 한다. 신경망 학습에서 사용하는 지표는 손실 함수이다. - 평균 제곱 오차 E=12∑k(yk−tk)2 import numpy as np def mean_squared_error(y, t): return 0.5 * np.sum((y-t)**2) t = [0,0,1,0,0,0,0,0,0,0] y1 = [0.1,0.05,0.6,0... 퍼셉트론에서 신경망으로(4) 신경망의 구조를 조금 알게 되었으니 MINIST를 사용하여 신경망이 이미지를 분류하게 만들어본다. 이와 같은 추론 과정을 순전파(forward propagation)라고 한다. 링크에 들어가 MINIST 파일을 받을 수 있는 mnist.py 를 다운로드 한다 import sys, os from minist 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) 실행하여 올바른 결과가 나오는지 확인해본다. ministy.py에서 load_mn.. 퍼셉트론에서 신경망으로(3) 다차원 배열을 이용하여 직접 신경망을 구현해본다. import numpy as np import matplotlib.pylab as plt X = np.array([1,2]) print(X, X.shape) W = np.array([[1,3,5],[2,4,6]]) print(W, W.shape) Y = np.dot(X,W) print(Y) X=[12] W=[135246] 행렬 곱은 그냥 하면 된다. numpy가 다 해줌. 이걸로 3층 신경망을 구현해본다. 입력층은 .. 퍼셉트론에서 신경망으로(2) 활성화 함수는 임계값을 경계로 출력이 바뀐다. 이러한 함수를 계단 함수(step function)이라고 한다. 계단 함수 이외의 다른 함수를 알아본다. - 시그모이드 함수 h(x)=11+exp(−x) 여기서 exp는 우리가 흔히 알고 있는 자연상수 e이다. - 계단 함수를 그려보자. def step_function(x): if x > 0: return 1 else: return 0 아주 간편하게 0 초과의 값이 나오면 1을 반환하고 0 이하의 값이 나오면 0을 주는 함수이다. 하지만 우리가 사용하는 numpy를 input으로 넣을 수 없으므로 조금 수정한다. import numpy as np def step_function(x): y = x > 0 return y.astype(.. 퍼셉트론에서 신경망으로(1) 퍼셉트론은 구현하기 간편하고 좋아보이지만 한 가지 단점을 가지고 있다. 가중치를 여태 직접 정해준 것이다. 결과를 보면서 내가 적절한 가중치 값을 정해주었는데 이 것은 비효율적이다. 문제를 해결하기 위해 신경망을 사용할 수 있다. 신경망은 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력을 가지고 있다. 다시 퍼셉트론을 복습하고 지나가자면 편향을 나타내는 매개변수를 포함하여 표현할 수 있다. 실제 입력은 x1, x2 이지만 1*b (가중치) 입력까지 포함해주어 출력을 결정한다. 편향은 항상 존재하기 때문에 1로 표현해주었다. 여기서 퍼셉트론또한 하나의 함수로 표현할 수 있다. y=h(b+W1∗X1+W2∗X2) h(x)=0(x0) 이렇게 입력 신호의 총.. 이전 1 ··· 29 30 31 32 33 34 35 ··· 40 다음 목록 더보기