일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 이클립스
- 자바스크립트
- mariadb
- 오픈한글
- 백준
- 배열
- OrientDB
- 연동
- r script
- Judge
- 설치
- 자료형
- online
- r
- 알고리즘
- 토네이도
- Python
- BAEKJOON
- MongoDB
- spring
- 저지
- Tornado
- 연결
- ubuntu
- AWS
- Java
- 파이썬
- 프레임워크
- Framework
- API
Archives
- Today
- Total
맛동산
계단 함수와 시그모이드 함수 그리고 ReLU, 활성화 함수가 선형 함수면 안되는 이유 본문
계단 함수 구현
import numpy as np import matplotlib.pylab as plt ##################################################### ## 계단함수 x = np.array([-1.0, 1.0, 2.0]) print(x) # [-1. 1. 2.] y = x>0 print(y) # [False True True] z = np.array(x>0, dtype=np.int) print(z) # [0 1 1] def step_function(x): return np.array(x>0, dtype=np.int) x2 = np.arange(-5.0, 5.0, 0.1) # 71p 오타 y = step_function(x2) plt.plot(x2,y) plt.ylim(-0.1,1.1) plt.show()
시그모이드 함수 구현(시그모이드 함수 식 참조)
import numpy as np import matplotlib.pylab as plt #################################################### ## 시그모이드 def sigmoid(x): return 1 / (1 + np.exp(-x)) # numpy의 브로드캐스트 x = np.array([-1.0, 1.0, 2.0]) #print(np.exp(-x)) y = sigmoid(x) print(y) x = np.arange(-10, 10, 0.1) y = sigmoid(x) plt.plot(x,y) plt.ylim(-0.1, 1.1) plt.show()
ReLU 함수 구현
import numpy as np import matplotlib.pylab as plt #################################################### ## ReLU def relu(x): return np.maximum(0,x) # print(np.maximum(0,x)) # maximum : 두 원소중 큰 값을 반환 # np.maximum(0,1) -> 1 # np.maximum(0,x) (x : -10 ... 9.9) -> 브로드캐스팅에 의해 maximum(0, -10) ... maximum(0, 9.9) x = np.arange(-10, 10, 0.1) y = relu(x) plt.plot(x,y) plt.ylim(-0.1, 10.1) plt.show()
신경망에서는 활성화 함수로 비선형 함수를 사용해야함
선형 함수를 이용하면 신경망의 층을 깊게하는 의미가 없음
h(x) = cx를 활성화 함수로 하는 3층 네트워크에서 y(x) = h(h(h(x)))가 되는데, y(x) = c*c*c*x가 되고 y(x) = ax, a = c^3 의 식이 되는겨. 즉 층을 늘린 의미가 없는겨
so 층을 쌓는 혜택을 얻고 싶으면 활성화 함수로 비선형 함수를 사용해야함.
수치 예측을 하는 신경망 구조를 만들기 위해서 어떤 활성화 함수를 구현해야하는가?
단순히 활성화 함수를 없애는 것으로 수치 예측 모델이 나올 수 있나?
자연어 처리 모델에 응용 가능성은?
'파이썬 > 딥러닝 구현' 카테고리의 다른 글
재현신경망? (0) | 2017.05.19 |
---|---|
신경망의 내적은 행렬의 내적과 같다 (0) | 2017.05.19 |
SyntaxNet 관련 좌표 (0) | 2017.05.15 |
다층 퍼셉트론의 구현(XOR) (0) | 2017.05.14 |
단순 퍼셉트론 (0) | 2017.05.12 |
Comments