신경망 2출력층 설계하기항등 함수항등함수는 입력과 출력이 같은 함수입니다. 항등함수는 회괴에서 주로 사용합니다. 소프트맥스 함수소프트맥스는 분류에서 사용합니다. 식은 아래와 같습니다. exp(x)는 자연상수 e를 x제곱한 지수 함수 입니다. n은 출력층의 뉴런 수, y는 그중 k번째 출력임을 뜻합니다. 분자는 입력신호 a의 지수 함수, 분모는 모든 입력 신호의 지수 함수의 합으로 구성됩니다. 소프트맥스 함수를 구현해 보겠습니다. 12345678import numpy as np def softmax(a): exp_a=np.exp(a) sum_exp_a=np.sum(exp_a) y=exp_a/sum_exp_a return ycs 그런데 여기서 방금 구현한 softmax()함수는 식을 제대로 표현하고 있지만...
신경망퍼셉트론과 신경망신경망은 퍼셉트론이 발전된 것이라고 볼 수 있습니다. 둘의 차이점이라면 활성화 함수와 매개변수가 가장 큰 차이점입니다. 퍼셉트론은 매개변수를 사람이 직접 설정하지만 신경망은 이 매개변수를 사람이 정하는 것이 아니라 스스로 지정하여 올바른 값이 나올 수 있도록 하는 것입니다. 그리고 퍼셉트론은 활성화 함수가 계단식 함수이고, 신경망은 시그모이드 함수, ReLU 함수 등 여러가지를 사용합니다. 활성하 함수활성화 함수는 일반적으로 입력 신호의 총합을 출력 신호로 변환하는 함수를 말합니다. 그림으로 표현해 보면 아래와 같습니다.위 그림은 말로 옯기면 입력신호와 가중치를 곱한뒤 총합을 활성화 함수인 시그모이드 함수를 통과시켜 출력하는 것을 의미합니다. 계단 함수퍼셉트론의 활성화 함수인 계단 ..
이 카테고리에 있는 모든 글들은 밑바닥부터 시작하는 딥러닝을 읽고 정리한 글입니다. 퍼셉트론퍼셉트론은 프랑크 로젠블라트가 1975년에 고안한 알고리즘이다. 퍼셉트론이 중요한 이유는 신경망의 기원이기 때문이다. 퍼셉트론이란?퍼셉트론은 다수의 신호를 입력으로 받아 하나의 신호를 출력한다. 위 그림은 입력으로 2개의 신호를 받은 퍼셉트론의 예이다. x1과 x2는 입력을, w1과 w2는 가중치를, 원은 뉴런을 모방한 노드를 뜻한다. 동작원리는 입력 신호가 노드에 보내질 때는 각각 고유한 가중치가 곱해진다. 여기서 가중치는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용한하고, 가중치는 클수록 해당 신호가 더 중요하다는 것을 의미한다. 그리고 노드에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출..
Does not work xor을 단일 퍼셉트론으로 구현하는 것은 불가능하다. 왜냐하면 위 그림과 같이 직선으로 1과 0을 나눌 수 없기 때문이다. 그럼 한번 텐서플로우를 이용하여 단층 퍼셉트론을 구현해 보자123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051import tensorflow as tfimport numpy as np # 07train.txt# # x1 x2 y# 0 0 0# 0 1 1# 1 0 1# 1 1 0 xy = np.loadtxt('07train.txt', unpack=True) x_data = xy[:-1]y_data = xy[-1] X = tf.placeholder..
Neural NetworkHow can we learn W1, W2, B1, B2 from training data?위 그림처럼 여러 개의 입력이 발생할 수 있는데, 이들 입력을 행렬을 이용해 하나로 통합하는 과정을 보여주는 그림이다. 이제 그럼 어떻게 하면 학습을 시킬 수 있을까?앞에서 배웟던 gradient descent 알고리즘을 이용해 학습하면 된다. Backpropagation NN은 여러 개의 layer를 두어서 복잡한 문제도 해결할 수 있도록 구성된다. 첫 번째 layer를 input layer, 가운데에 파란색 층을 hidden layer, 그리고 마지막은 output layer이라고 한다. 인공지능 초기에는 input과 output밖에 없었지만 복잡한 것까지 해내도록 하다보니 은닉층이 생..
Neural Network 위 그림을 보면 각각은 logistic regression으로 두 개 중에서 하나만 선택할 수 있다. logistic regression 한 개만 사용해서는 xor 문제를 해결할 수 없지만, 그림처럼 3개를 연결해서 사용한다면 가능하다. 기존의 방식을 연결하여 사용하는 것이 NN의 핵심일 수 있다. XOR using NN 두 개의 feature x1과 x2가 있고, 이들은 0 도는 1의 값을 갖는 boolean 데이터이다. 이때 XOR 연산은 두 개의 값이 같은 경우에는 False, 다른 경우에는 True가 된다는 것을 보여준다. 그래프를 통해서도 볼 수 있다. 위 그림은 과연 XOR을 풀 수 있을지 실제로 계산해 본 그림이다. 그림을 설명해 보면 3개의 logistic reg..
Mnist dataset- 0 ~9까지 사람이 쓴 손글씨 이미지- 28 x 28(784) pixels- 파일 구조[학습 데이터] - 60,000개 (test : validation = 55,000 : 5,000) train-images-idx3-ubyte.gz train-labels-idx1-ubyte.gz [테스트 데이터] - 10,000 개 t10k-images-idx3-ubyte.gz t10k-labels-idx1-ubyte.gz tensorflow 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374im..
Training and Test data set으로 분류- Training data set : 학습에만 사용- Test data set : 모델이 한번도 본 적 없기에 새로운 데이터 TensorflowTraining data set과 Test data set분류 예제12345678910111213141516171819202122232425262728293031323334353637383940414243444546import tensorflow as tf # 학습 데이터x_data = [[1, 2, 1], [1, 3, 2], [1, 3, 4], [1, 5, 5], [1, 7, 5], [1, 2, 5], [1, 6, 6], [1, 7, 7]]y_data = [[0, 0, 1], [0, 0, 1], [0, 0..