본문 바로가기

DeepLearning

(3)
[Deep Learning from Scratch] 3장. 신경망 - 구현 1. 계단 함수 def step_function(x): # x : np array y = x > 0 return y.astype(np.int) 2. 시그모이드 함수 def sigmoid(x): # x : np array return 1 / (1 + np.exp(-x)) 3. ReLU 함수 def relu(x): # x : np array return np.maximum(0, x) 4. 항등 함수 def identity_function(x): # x : np array return x 5. 소프트맥스 함수 def softmax(x): # x : np array c = np.max(a) # to prevent overflow exp_a = np.exp(a - c) sum_exp_a = np.sum(exp_a..
[Deep Learning from Scratch] 3장. 신경망 - 이론 신경망은 퍼셉트론과 별반 다를 것이 없습니다. 이미 설정된 가중치와 편향 값만 있다면 입력 값을 받아 결과에 맞는 출력을 얻을 수 있습니다. 가중치와 편향 값은 아래의 식을 계산할 때 이용됩니다. 위 식은 다음과 같이 나타낼 수도 있습니다. 이 때 h(x)는 활성화 함수(activation function)라 합니다. 활성화 함수는 뉴런의 입력신호의 총합을 통해 해당 뉴런을 활성화 시킬지 말지를 결정하는 함수입니다. 뉴런이 활성화 되었다는 것은 출력신호가 1이라는 뜻으로 해석할 수 있습니다. 활성화 함수 본 포스팅에서는 세가지의 활성화 함수에 대해 소개합니다. 바로 시그모이드 함수(sigmoid function), 계단 함수, ReLU(Rectified Linear Unit)입니다. 시그모이드 함수 시그..
[Deep Learning from Scratch] 2장. 퍼셉트론 퍼셉트론알고리즘은 프랑크 로젠블라트(Frank Rosenblatt)에 의해 1957년에 고안된 것으로 신경망(딥러닝)의 기원이 되는 알고리즘입니다. 퍼셉트론은 여러 입력을 받아 하나의 신호를 출력합니다. 이 작업을 수행하기 위해 한 개 이상의 층으로 이루어진 뉴런(노드)을 통해 신호를 전달합니다. 한 뉴런의 출력신호가 그 다음 층 뉴런의 입력신호로 사용되는 형태이며 이 때 고유한 가중치(weigt)가 곱해진 상태로 입력됩니다. 그리고 뉴런에 입력된 신호의 총합이 정해진 임계값을 넘길 때 그 뉴런의 출력신호는 1이 되고 그렇지 않을 경우 0을 출력합니다. 이것을 식으로 나타내보면 다음과 같습니다. 위 식에서 θ를 -b로 치환하면, 이 때 b를 편향(bias)이라고 합니다. 위의 식과 같은 퍼셉트론으로 AN..