Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- difftime
- 그래프 생성 문법
- 불순도제거
- 여러 데이터 검색
- merge
- 빅데이터
- %in%
- loop 문
- max
- count
- 정보획득량
- 데이터분석가
- 회귀분석
- Dense_Rank
- 히스토그램 그리기
- 순위출력
- sql
- 단순회귀 분석
- 데이터분석
- Intersect
- 회귀분석 알고리즘
- 팀스파르타
- sqld
- if문 작성법
- 상관관계
- 그래프시각화
- Sum
- 막대그래프
- 총과 카드만들기
- 빅데이터분석
Archives
- Today
- Total
ch0nny_log
[빅데이터분석] 딥러닝_3. 하이퍼블릭 탄젠트 함수/렐루함수 본문
[ 복습 ]
사진 -------------------> 딥러닝 신경망 ----> 분류
음성 (CNN 신경망)
텍스트 ------------------> 딥러닝 신경망 ----> 텍스트에 대한 답변
(RNN 신경망)
뇌세포에서 활성화 함수의 역활은 입력되는 신호를 기억할지 말지를 결정하는 기능을 합니다.
기억이 되려면 강한 자극이 들어와야합니다.
■ 활성화 함수 하이퍼블릭 탄젠트 함수
시그모이드 함수는 입력값(신호)를 받아서 0~1 사이의 실수를 출력하는 함수인데 탄젠트 함수는 -1~1 사이의 실수를 출력하는 함수입니다.
예제1. 하이퍼블릭 탄젠트 함수를 파이썬으로 생성하시오
import math def tanh(x): return list( map( lambda x : math.tanh(x), x) )
설명: map(함수, 입력값)을 실행하면 입력값이 함수에 입력이 되고 함수에서 값을 처리해서 결과를 출력합니다.
numbers= [ 0, 1, 2, 3 ] print( tanh(numbers) )
예제2. tanh 함수를 파이썬으로 시각화 하시오.
import numpy as np import matplotlib.pyplot as plt import math def tanh(x): return list( map( lambda x : math.tanh(x), x) ) x = np.arange(-5, 5, 0.1) y = tanh(x) plt.plot(x, y) plt.show()
■ 활성화 함수 렐루 함수
Relu 함수 ↓ Rectified Linear Unit ↓ 정류된 |
정류는 전기회로 쪽 용어인데 그림 3-9 처럼 x 가 0 이하일 때는 y 값을 0 으로 해서 아무것도 출력하지 않고 0보다 큰 값은 그 값을 그대로 출력합니다.
고양이의 귀는 고양이를 분류하는데 있어서 너무나도 중요한 픽셀 부분이라 아주 큰 가중치로 학습시에 갱신이 될것이고 활성화 함수인 렐루는 그 중요한 값을 어느 가감도 없이 그대로 순전파 신경망에 흘려 보냅니다.
하지만 배경 부분은 고양이 사진을 분류하는데 있어서 중요하지 않는 부분이라 가중치가 학습되면서 점점 마이너스 값으로 갱신이 되어지기 때문에 렐루는 배경은 0으로 순전파 신경망에 흘려보내며 이 부분은 중요한 부분이 아니다라고 결정해주는 것입니다.
예제
1. relu 함수를 파이썬으로 구현하시오
import numpy as np def relu(x): return np.maximum(0, x) #0과 x값중에 큰 값을 출력합니다. print(relu(-2)) #0 print(relu(0.3)) #0.3
2. 위의 함수를 시각화 하시오.import matplotlib.pyplot as plt import numpy as np def relu(x): return np.maximum(0, x) #0과 x값중에 큰 값을 출력합니다. x = np.arange(-6, 6, 0.1) # -6 에서 6까지 0.1 간격으로 실수를 출력함 y = relu(x) plt.plot(x,y) plt.show()
3. 지금까지 만든 활성화 함수인 sigmoid, tanh, relu 함수는 전부 구글에서 만든 텐써 플로우 코드에 다 내장되어있습니다.
from tensorflow.keras.models import Sequential # 신경망 모델 구현 from tensorflow.keras.layers import Dense # 완전 연결계층 구현 model = Sequential() model.add(Dense(3, activation = 'sigmoid')) # 시그모이드함수 model.add(Dense(3, activation = 'relu')) # 렐루 함수 model.add(Dense(3, activation = 'tanh')) # 탄젠트 함수
텐써 플로우로 쉽게 신경망을 만들수 있지만 이 활성화 함수의 역활이 뭔지는 확실히 이해하고 있어야합니다.
✨ 딥러닝 면접질문) 신경망에 활성화 함수의 역할이 무엇인지 대답해 줄 수 있나요?
'빅데이터 분석(with 아이티윌) > deep learning' 카테고리의 다른 글
[빅데이터분석] 딥러닝_7. 미니배치/수치미분/사진인식(mnist) (0) | 2024.10.10 |
---|---|
[빅데이터분석] 딥러닝_6. 2층 신경망 구현하기 (1) | 2024.10.07 |
[빅데이터분석] 딥러닝_5. 출력층 함수 소프트 맥스 함수 (0) | 2024.10.07 |
[빅데이터분석] 딥러닝_2. Matplotlib를 이용한 시각화 / 퍼셉트론 / 신경망 구현 / 활성화 함수 (0) | 2024.10.02 |
[빅데이터분석] 딥러닝_1. numpy 행렬 (3) | 2024.09.30 |