본문 바로가기

활성화함수

혼자 해 보는 머신러닝 딥러닝 (6) 활성화 함수 - ReLU ReLU 함수는 최근에 많이 이용되는 활성화 함수입니다. ReLU 함수의 특징은 입력값이 0을 넘으면 그대로 출력하고, 0 이하이면, 0을 출력합니다. 식으로 표현하면 h(x) = { x (x>0), 0 (x ≤ 0) }으로 표현이 가능할 것 같습니다. 코드로도 간단히 아래와 같이 표현해 볼 수 있습니다. def relu(x):return np.maximum(0, x) ReLU 함수가 등장하게 된 배경은 앞에 설명한 Sigmoid함수와 관계가 있습니다.바로 Sigmoid함수가 BackPropagation이 적용되는 딥러닝의 Hidden Layer가 깊어질 수록 미분값이 0에 가까워 지면서 제대로 학습이 되지 않는 현상이 나타나기 때문입니다. ReLU 함수의 그래프는 아래와 같습니다. 출처 : http:/.. 더보기
혼자 해 보는 머신러닝 딥러닝 (5) 활성화 함수 - Sigmoid Sigmoid 함수는 신경망에서 자주 이용되는 활성화 함수 입니다. Sigmoid 함수를 나타낸 식은 다음과 같습니다. h(x) = 1 / (1 + exp^(-x)) Sigmoid 함수는 입력에 따라 특정값을 반환해 줍니다. 예를들면 h(1.0) = 0.731, h(2.0) = 0.880과 같이 됩니다. Sigmoid 함수의 구현고 그래프를 그려보겠습니다. def sigmoid(x):return 1 / (1 + np.exp(-x)) 함수의 구현은 numpy를 이용하면 쉽게 처리가 가능합니다. 그리고 브로드캐스트 기능이 작동해서 x에는 numpy배열도 쉽게 처리가 가능합니다. 실제 그래프는 matplotlib를 사용해서 그려보겠습니다. import matplotlib.pylab as plt x = np.a.. 더보기
혼자 해 보는 머신러닝 딥러닝 (4) 퍼셉트론에서 신경망으로 퍼셉트론을 기반으로 신경망에 대해서 본격적으로 살펴보겠습니다.아래는 단순하게 표현한 신경망입니다. 출처 : 위키백과, 인공신경망 모양은 앞선 다층 퍼셉트론과 비슷하게 보여집니다. 신경망을 이해하기 위해 이전 강의에서 다루었던 퍼셉트론의 그림을 더 명확히 그려보겠습니다. y = b + w1 * x1 + w2 * x2 출처 : Enough is not Enough (http://eehoeskrap.tistory.com/139) 이전 그래프와 달라진 점은 입력값이 1이고 가중치가 b인 노드가 추가되었다는 점입니다. 그리고 y ≤ θ 일때 0, y > θ 일때 1로 표기되는 것을 Activation Function으로 표기해 보겠습니다. a = b + w1 * x1 + w2 * x2y = h(a) 출처 : 잡다.. 더보기