Perception
import math
import matplotlib.pyplot as plt
import numpy as np
입력 :
- 입력: (x1, x2)
- 출력:
a = x1 * w1 + x2 * w2 + b 계산
y = 1, a > 임계값= 0,a <= 임계값
- 신경망의 뉴런(neuron)에서는 입력 신호의 가중치 합을 출력값으로 변환해 주는 함수가 존재
-
활성화 함수(activation function)
> Example
def step_function(x):
if x > 0:
return 1
else:
return 0
> Execute
x = np.arange(-3, 4)
print('x = ', x)
for x_i in x:
print(step_function(x_i), end ='\t')
> Result
x = [-3 -2 -1 0 1 2 3]
0 0 0 0 1 1 1
> Numpy.exp()와 Math.exp() 비교
def step_function(x):
"""
Step Function.
:param x: numpy.ndarray
:return: step(계단) 함수 출력(0 또는 1)로 이루어진 numpy.ndarray
"""
y = x > 0 # [False, False, ..., True]
return y.astype(np.int)
같은 결과 출력
math.exp() : 숫자 하나만 변수로 들어갈 수 있다.
def sigmoid1(x):
""" sigmoid = 1 / (1 + exp(-x))"""
return 1 / (1 + math.exp(-x))
print('sigmoid =', sigmoid1(x))
Result
Traceback (most recent call last):
File "C:/dev/lab_dl/ch03/ex01.py", line 59, in <module>
print(step_function(x), end ='\t')
File "C:/dev/lab_dl/ch03/ex01.py", line 42, in step_function
if x > 0:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
math.exp() : 함수 실행부분 수정
for x_i in x:
print(sigmoid1(x_i), end = ' ')
Result
0.04742587 0.11920292 0.26894142 0.5 0.73105858 0.88079708 0.95257413
Numpy.exp() : list, tuple, array 모두 변수로 사용 가능
def sigmoid2(x):
""" sigmoid = 1 / (1 + exp(-x))"""
return 1 / (1 + np.exp(-x))
print('sigmoid =', sigmoid2(x))
Result
sigmoid = [0.04742587 0.11920292 0.26894142 0.5 0.73105858 0.88079708
0.95257413]
Step Function, Sigmoid Function을 그래프로 출력
x = np.arange(-5, 5, 0.01)
y1 = step_function(x)
y2 = sigmoid(x)
plt.plot(x, y1, label = 'Step_Function')
plt.plot(x, y2, label = 'Sigmoid_Function')
plt.legend()
plt.show()
> ReLU(Rectified Linear Unit)
ReLU 함수 작성
def relu(x):
"""ReLU(Rectified Linear Unit)
y = x, if x > 0
= 0, otherwise
"""
return np.maximum(0, x)
Execution
# print(relu(x))
x = np.arange(-3, 4)
y3 = relu(x)
plt.title('Relu')
plt.plot(x, y3)
plt.show()
'Python > Python 딥러닝' 카테고리의 다른 글
[딥러닝용어-평가] 혼동행렬 정확도 정밀도 재현율 F1스코어 특이도 ROC곡선 (0) | 2020.07.10 |
---|---|
[딥러닝용어-학습] 하이퍼파라미터, 배치, 에포크, 스텝, 지도학습, 비지도학습, 강화학습 (0) | 2020.07.10 |
[딥러닝용어-데이터준비] 회귀와 분류, 원핫인코딩, 교차검증, 클래스 불균형, 과소표집과 과대표집, 홀드아웃 검증기법,K-폴드검증 (0) | 2020.07.10 |
Python 딥러닝 3_ numpy 행렬의 내적 (0) | 2020.06.23 |
Python 딥러닝 1_ Perceptron과 Logic Gates (0) | 2020.05.01 |