728x90
반응형
기초 input과 가중치(wi)의 곱들의 합이 threshold 문턱값을 넘었을 때 출력하는 hidden layer의 또는 output layer의 값을 말한다. 가장 많이 사용하는 시그모이드 함수느 0~1의 연속된 값을 갖도록한다.
시그모이드 함수에 앞서 계단함수를 구현해 본다.
def step_function(x):
if x>0:
return 1
else:
return 0
step_function은 x의 값이 0보다 크면 1의 값을 작거나 같으면 0의 값을 리턴해준다. 하지만 이 함수는 x의 값 하나만 받을 수 있다. 따라서 배열 형태의 input 값을 받을 수 있게 함수화 한다.
x = np.array([-1.0,1.,2.])
y = x > 0
y
# array([False, True, True])
x의 배열의 boolean 값을 이용해 다수의 값을 판별한다.
def step_function(x):
y = x > 0
return y.astype(np.int)
step_function의 boolean 값을 int 형태로 바꾸어 1/0을 출력한다.
계단 함수 그래프
시그모이드 함수
두 함수는 모두 비선형 함수이다. 선형 함수라하면 곧은 직선 한 개를 말한다. 반면 계단이나 시그모이드는 모두 직선이 아니다. 신뎡망 함수로는 선형 함수를 사용하면 안된다. 그 이유는 선형 함수를 사용하면 신경망을 깊게 구축하는 의미가 없어지기 때문이다. y=ax 함수에 y=cx라는 신경망을 쌓으면 y=a(cx)의 신경망이 나온다 결국 y=acx 즉 함수의 계수만 변할 뿐 달라지는 효과가 없다. 처음 부터 ac를 계수로 사용하면 그만이다. 층을 살리는 이점을 얻으려면 결국은 비선형 함수를 사용해야한다.
ReLu 함수
반응형
'Deep Learning' 카테고리의 다른 글
TFBertModel parameter (0) | 2021.03.05 |
---|---|
Softmax RuntimeWarning 해결 (0) | 2021.03.03 |
Batch Normalization (0) | 2021.03.02 |
GAN (Generative Adversarial Networks) (0) | 2021.02.26 |
역전파 (backpropagtion) (0) | 2021.02.26 |