딥러닝
-
손실함수와 경사법딥러닝 2020. 1. 16. 02:03
개요 학습이란 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것이다. 학습의 지표로 손실함수를 사용할 것이고, 손실함수의 최솟값을 구하는 것이 목표이다. 이것을 위한 기법으로 함수의 기울기를 활용하는 경사법을 이용할 것이다. 손실함수란 신경망 성능의 나쁨을 나타내는 지표. 그러므로 값이 작을수록 좋다. 그렇다면 학습의 지표로서 왜 정확도가 아닌 손실함수를 사용하는가? 정확도를 구하는 식을 보면 (정답 수)/(전체 수) 이므로 미세한 조절이 불가능하다. 그래서 우리는 손실함수를 사용할 것이고, 그 미분값을 활용해 최솟값을 찾을 것이다. -오차제곱합(평균오차제곱) k : 데이터의 차원수 y : 신경망의 출력(신경망이 추정한 값) t : 정답 레이블 식을 잘 보면 값이 작을수록 정답에 가까워진..
-
3층 신경망 구현해보기딥러닝 2020. 1. 10. 17:15
import numpy as np def sigmoid(x): return 1/(1+np.exp(-x)) def identy_function(x): return x def init_network(): network = {} network['W1'] = np.array([[0.1, 0.3, 0.5], [0.2, 0.4, 0.6]]) network['b1'] = np.array([0.1, 0.2, 0.3]) network['W2'] = np.array([[0.1, 0.4], [0.2, 0.5], [0.3, 0.6]]) network['b2'] = np.array([0.1, 0.2]) network['W3'] = np.array([[0.1, 0.3], [0.2, 0.4]]) network['b3'] = np...
-
활성화함수딥러닝 2020. 1. 10. 17:08
활성화함수란 입력 신호의 총합을 출력 신호로 변환하는 함수입니다. 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 합니다. h가 활성화 함수 입니다. 입력 신호의 총합인 a를 입력값으로 가지고 y를 출력하네요. y = h(b + x1w1 + x2w2) 위 식의 활성화 함수는 임계값을 경계로 출력이 바뀝니다. 활성화 함수가 계단함수인 것입니다. 퍼셉트론이 예시가 되겠네요. 이 활성화 함수를 다른 함수로 바꾸면 신경망을 만들 수 있습니다. 그럼 활성화 함수의 종류를 알아봅시다. 종류 계단 함수, 시그모이드 함수, ReLU 함수 등이 있습니다. 시그모이드 함수는 신경망에서 자주 사용합니다. 입력을 넣으면 값이 작아져서 나옵니다. 그래서 계단함수와는 다르게 곡선입니다. (h(1.0) -> 0.7..., ..
-
퍼셉트론딥러닝 2020. 1. 9. 14:37
'밑바닥부터 시작하는 딥러닝' 이라는 책을 참고하여 작성하였습니다. 퍼셉트론은 다수의 신호를 입력받아서 하나의 신호를 출력하는 것 입력이 2개인 퍼셉트론을 보도록 하자 x는 입력값, w는 가중치, b는 편향이라고 할 때 y = x1*w1 + x2*w2 + b y의 값이 1을 넘으면 1을 출력. 못넘으면 0을 출력 편향과 가중치는 다르다. 가중치는 각 입력 신호가 결과에 영향력을 조절하는 매개변수이고 편향은 뉴련이 얼마나 쉽게 활성화되는지 결정한다. 논리게이트 AND, NAND, OR, XOR를 구현해보도록 하자. import numpy as np import matplotlib.pyplot as plt def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5..