제퍼넷 로고

딥러닝의 활성화 함수에 대한 기본 소개

시간

이 기사는 데이터 과학 Blogathon.

개요

활성화 함수는 다음과 같이 정의됩니다. 활성화 함수는 가중 합계를 계산한 다음 바이어스를 추가하여 뉴런이 활성화되어야 하는지 여부를 결정합니다. 활성화 함수의 목표는 뉴런의 출력에 비선형성을 도입하는 것입니다.

활성화 함수가 없는 신경망은 기본적으로 딥 러닝의 선형 회귀 모델입니다. 이러한 기능은 신경망의 입력에 대해 비선형 계산을 수행하여 더 복잡한 작업을 학습하고 수행할 수 있기 때문입니다.. 따라서 각 활성화 함수의 장단점을 분석함과 동시에 활성화 함수의 미분 및 적용에 대한 연구는 특정 신경망 모델에서 비선형성과 정확도를 제공할 수 있는 적절한 활성화 함수 유형을 선택하는 데 필수적입니다.

딥러닝의 활성화 함수
출처: Datajango.com

우리는 신경망의 뉴런이 가중치, 편향 및 활성화 함수에 따라 작동한다는 것을 알고 있습니다.. 출력 오류를 기반으로 신경망에서 뉴런의 가중치와 편향을 변경합니다. 역전파는 이 프로세스의 용어입니다. 가중치와 편향을 업데이트하기 위해 오차와 동시에 기울기가 제공되기 때문에 활성화 함수는 역전파를 가능하게 합니다.

차례

  1. CNN에서 활성화 기능이 필요한 이유는 무엇입니까?
  2. 활성화 기능의 변형
  3. 파이썬 코드 구현
  4. 결론

 왜 우리는 그것을 필요로합니까?

비선형 활성화 함수: 활성화 함수가 없으면 신경망은 선형 회귀 모델일 뿐입니다.. 활성화 함수는 입력을 비선형 방식으로 변환하여 더 복잡한 작업을 학습하고 수행할 수 있도록 합니다.

수학적 증명:-

다이어그램의 요소는 다음을 포함합니다:- 숨겨진 레이어, 즉 레이어 1:- 보이는 레이어, 즉 레이어 2:- 보이는 레이어, ie

딥러닝의 활성화 함수

출처: geeksforgeeks.com

a(1) = 지(1)

= W(1)X + b(1) (1)

여기

레이어 1의 벡터화된 출력은 z(1)입니다.

W(1)은 은닉층 뉴런에 적용된 벡터화된 가중치(w1, w2, w3, w4), X는 벡터화된 입력 특징(i1 및 i2), b는 벡터화된 바이어스(b1 및 b2)를 나타냅니다.).

모든 선형 함수는 a(1)이 벡터화된 형태입니다.

(여기서 활성화 함수는 고려하지 않습니다.)

출력 레이어 또는 레이어 2는 다음과 같습니다.

레이어 2 입력은 z(2) = W(2)a(1) + b(2) a(2) = z(2)a(1) + b(2) a(2) = z(2)a입니다. (1) + b(2) a(2) = z(2)a(1) + b(2) a(2) = z(2)a(1) + b(2) a(2) (2 )

출력 레이어 계산:

z(1)의 루.

(W(2) * [W(1)X + b(1)]) + b = (W(2) * [W(1)X + b(1)]) (2)

[W(2) * W(1)] = z(2) * [W(2)*b(1) + b(2)] + X

하자,

승 = [승(2) * 승(1)]

b = [W(2)*b(1) + b(2)]

z(2) = W*X + b는 최종 결과입니다.

다시 한 번 선형 함수입니다.

은닉층을 적용한 후에도 이 관찰은 선형 함수를 산출하므로 우리는 은닉층이 아무리 많다고 추론할 수 있습니다. 신경망에 추가하면 두 선형 함수의 조합이 선형 함수를 생성하기 때문에 모든 레이어가 동일한 방식으로 동작합니다.

1). 선형 함수: -

• 방정식: 선형 함수에 대한 방정식은 y = ax이며, 이는 직선에 대한 방정식과 매우 유사합니다.

• -inf ~ +inf 범위

• 응용: 선형 활성화 함수는 출력 계층에서 한 번만 사용됩니다.

선형 활성화 기능 | 딥러닝의 활성화 함수
출처: V7labs 

• 문제: 선형 함수를 미분하여 비선형성을 도입하면 결과는 더 이상 입력 "x"와 관련되지 않습니다. 그리고 그 기능은 일정해질 것이고, 따라서 우리의 절차는 어떤 행동도 보여주지 않을 것입니다.

예를 들어 주택 가격을 결정하는 것은 회귀 문제입니다. 아파트 가격이 크거나 작을 수 있기 때문에 출력 계층에서 선형 활성화를 사용할 수 있습니다. 이 경우에도 신경망의 은닉층에 비선형 함수가 필요합니다.

2) 시그모이드 함수:

• 'S'모양으로 그려지는 함수입니다.

• 공식: A = 1/(1 + ex)

본질적으로 비선형입니다. X 값의 범위는 -2에서 2이지만 Y 값은 매우 가파르다. 이것은 약간의 변화가 있음을 나타냅니다. x에서 Y 값이 크게 변경됩니다.

시그모이드 함수 | 딥러닝의 활성화 함수
출처 : Medium.com

• 범위의 0 ~ 1 값

3). 탄 함수: 탄젠트 쌍곡선 함수로도 식별되는 Tanh 함수는 거의 항상 시그모이드 함수보다 더 잘 작동하는 활성화입니다. 단순히 조정된 시그모이드 함수입니다. 둘 다 관련되어 있으며 서로 추론할 수 있습니다.

• 방정식: f(x) = tanh(x) = 2/(1 + e-2x) – 1 OR tanh(x) = 2 * 시그모이드(2x) – 1 OR tanh(x) = 2 * 시그모이드(2x) - 1

쌍곡선 탄젠트 | 딥러닝의 활성화 함수
출처 : medium.com

• 값 범위: -1 ~ +1

• 용도:- 값이 -1에서 1로 변경되기 때문에 일반적으로 신경망의 은닉층에 사용됩니다., 숨겨진 레이어의 평균을 0 또는 매우 근접하게 만들어 평균을 0에 가깝게 하여 데이터 센터링에 도움이 됩니다. 이렇게 하면 다음 레이어를 훨씬 더 정확하게 학습할 수 있습니다.

4). 렐루 (정류 선형 단위)는 알파벳의 네 번째 문자입니다. 가장 많이 사용되는 활성화 방법입니다. 신경망의 은닉층이 주로 사용됩니다.

• 공식: A(x) = 최대값(0,x). x가 양수이면 x를 반환합니다. 그렇지 않으면 0을 반환합니다.

• 값 범위: (inf, 0)

르루

출처 : Medium.com

• 본질적으로 비선형입니다. 이는 단순히 오류를 역전파하고 ReLU 기능이 많은 뉴런 층을 활성화하는 것을 의미합니다.

• 응용 프로그램 : 더 적은 수의 연산을 포함하기 때문에 ReLu는 tanh 및 sigmoid보다 계산 비용이 적습니다.. 한 번에 몇 개의 뉴런만 활성화되어 네트워크가 부족하고 계산에 효율적입니다.

간단히 말해서, RELU 함수는 시그모이드 및 Tanh 함수보다 훨씬 빠르게 학습합니다.

5). 소프트맥스 기능: softmax 함수는 분류 문제를 처리할 때 유용한 시그모이드 함수 유형입니다.

• 자연의 비선형성

• 용도: 일반적으로 많은 클래스를 처리할 때 사용됩니다. softmax 함수는 출력과 압착의 합으로 나눕니다. 아웃

딥러닝의 활성화 함수
출처 : Medium.com

• 출력: softmax 함수는 확률을 사용하여 각 입력의 클래스를 정의하려고 하는 분류기의 출력 레이어에서 가장 잘 사용됩니다.

올바른 활성화 기능 선택

어떤 활성화 함수를 사용할지 잘 모르겠다면 요즘 대부분의 상황에서 사용되는 광범위한 활성화 함수인 RELU를 선택하면 됩니다. 출력 레이어가 이진 식별/검출에 사용되는 경우 시그모이드 함수가 확실한 선택입니다.

 

import numpy as np
#시그모이드 함수 설계하기

def 시그모이드(x):
s=1/(1+np.exp(-x))
ds=s*(1-초)
반환 s, dsx=np.arange(-6,6,0.01)
sigmoid(x)# 중심 축 설정
무화과, 도끼 = plt.subplots(figsize=(9, 5))

#Axis 스파인은 기본적으로 주어진 플롯 영역을 제한하는 선입니다.
ax.spines['left'].set_position('center') ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') ax.xaxis.set_ticks_position ('하단') ax.yaxis.set_ticks_position('왼쪽')
# 시그모이드 플롯 생성 및 표시

ax.plot(x,sigmoid(x)[0], color=”#307EC7″, linewidth=3, label=”sigmoid”)
ax.plot(x,sigmoid(x)[1], color=”#9621E2″, linewidth=3, label=”derivative”)

#축의 오른쪽 상단 모서리에 범례 배치
ax.legend(loc="오른쪽 위", frameon=False) fig.show()

 

출력, 출처: 저자

 

 

결론

자세히 보기 블로그 Analytics Vidhya에서.

이상으로 이 블로그를 마칩니다.

내 이름은 프란슈 샤르마 그리고 저는 데이터 과학 애호가입니다.

귀중한 시간을 내어 이 블로그를 읽어주셔서 대단히 감사합니다. 실수가 있으면 자유롭게 지적하고(결국 저는 학습자입니다) 각각의 피드백을 제공하거나 의견을 남겨주세요. 이메일: [이메일 보호]

 

이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다. 

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?