Deep learning 53

3. 신경망(2) - 손글씨 숫자 인식

이 포스팅은 밑바닥부터 시작하는 딥러닝 책을 공부하고 정리한것 입니다. 이번 절에서는 이미 학습된 매개변수를 사용하여 학습 과정은 생략하고 추론 과정만 구현한다. 이 추론 과정을 신경망의 순전파(forward propagation)라고도 한다. MNIST의 이미지 데이터는 28x28 크기의 회색조 이미지(1채널)이며, 각 픽셀은 0에서 255까지의 값을 취한다. import sys,os sys.path.append(os.pardir) 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.shap..

2. 신경망 (1)

이 포스팅은 밑바닥부터 시작하는 딥러닝을 공부하고 정리한것 입니다. 앞에서 배운 퍼셉트론의 장점은 복잡한 함수를 표현할 수 있다는 것이다. 그러나 단점은 가중치를 설정하는 작업은 여전히 사람이 수동으로 한다는 점이다. 신경망이 이러한 단점을 커버해준다. 가중치 매개변수의 적절한 값을 데이터로부터 자동으로 학습하는 능력이 이제부터 살펴볼 신경망의 중요한 성질이다. 퍼셉트론에서 신경망으로 여기서는 입력,은닉,출력층을 순서대로 0층,1층,2층 이라 하겠다. 그림 3-1의 신경망은 모두 3층으로 구성된다. 가중치를 갖는 층은 2개뿐이기 때문에 2층 신경망이라고 한다. 위 그림에서는 가중치가 b이고 입력이 1인 뉴런이 추가되었다. 이 퍼셉트론의 동작은 x1,x2,1 이라는 3개의 신호가 뉴런에 입력되어, 각 신호..

1. 퍼셉트론

이 포스팅은 밑바닥부터 시작하는 딥러닝을 공부하고 정리한것 입니다. 퍼셉트론은 프랑크 로젠블라트가 1957년에 고안한 알고리즘으로 신경망(딥러닝)의 기원이 되는 알고리즘이다. 퍼셉트론이란? 퍼셉트론은 다수의 신호를 받아 하나의 신호를 출력한다. x1,x2는 입력 신호, y는 출력 신호, w1과 w2는 가중치를 뜻한다. 그림의 원을 뉴런 혹은 노드라고 부른다. 입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해진다. 뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력한다. 그 한계를 입계값이라 하며 기호 세타로 나타낸다. 퍼셉트론 구현하기 def AND(x1,x2): w1,w2,theta= 0.5,0.5,0.7 tmp=x1* w1 + x2 * w2 if tmptheta: return..