| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 오류역전파
- 인공신경망
- 블록체인
- RNN
- 인공지능
- 결정트리
- 이항분포
- 파이썬
- AP Computer Science A
- MERS
- 자바
- HMM
- 캐글
- 인공지능 수학
- bioinformatics
- 서열정렬
- 바이오인포매틱스
- BLaST
- AP
- 시그모이드
- ncbi
- Kaggle
- 생물정보학
- 딥러닝
- SVM
- CNN
- 생명정보학
- 바이오파이썬
- Java
- COVID
- Today
- Total
데이터 과학
하이퍼볼릭 탄젠트 함수 본문
개념적 이해
하이퍼볼릭 탄젠트 함수는 인공신경망에서 자주 사용되는 활성화 함수입니다.
활성화 함수란, 신경망이 받은 입력 신호를 적절히 조절해 다음 단계로 넘겨주는 역할을 하는 함수입니다.
즉, 입력값이 얼마나 강하거나 약하든지 간에 너무 크면 줄이고, 너무 작으면 키워서 신경망이 학습하기 좋은 형태로 바꾸어 주는 장치라고 할 수 있습니다.
이 함수는 이름 그대로 쌍곡선의 탄젠트, 즉 “하이퍼볼릭 탄젠트(hyperbolic tangent)”라는 수학적 곡선에서 유래했습니다.
그 결과, 이 함수는 입력값이 커질수록 일정한 한계값에 가까워지고, 작아질수록 반대쪽 한계값으로 수렴하는 S자 곡선 형태를 띱니다.

함수의 형태적 특징
tanh 함수는 입력이 아무리 커지더라도 출력이 1을 넘지 않고, 아무리 작아져도 -1 아래로 내려가지 않습니다.
즉, 출력값은 항상 -1과 1 사이에 머무르게 됩니다.
함수의 중심은 0이며, 0보다 작은 입력은 음수 방향으로, 0보다 큰 입력은 양수 방향으로 부드럽게 증가합니다.
이 때문에 tanh 함수는 원점 대칭 형태를 가지며, 입력의 부호를 그대로 반영할 수 있습니다.
예를 들어, 입력이 음수라면 출력도 음수로 나타나고, 입력이 양수라면 출력도 양수가 됩니다.
이 점이 바로 tanh 함수의 중요한 장점 중 하나입니다.
다른 활성화 함수인 시그모이드(sigmoid) 함수는 출력값이 0과 1 사이에 있어 항상 양수만 나오지만, tanh 함수는 -1부터 1까지의 값을 가지기 때문에 데이터의 방향성, 즉 부호 정보를 보존할 수 있습니다.
이해하기
tanh 함수는 신경망이 받은 입력을 감정의 강도 조절기처럼 다룹니다.
입력이 너무 크면 [그만 좀 커져라] 하듯이 값을 1 근처로 눌러주고,
입력이 너무 작으면 [조금은 더 크게 반응해도 된다] 하듯이 0 근처로 끌어올립니다.
이 과정에서 tanh는 신호를 적당히 제한된 범위 안으로 조정하여, 신경망 전체가 지나치게 민감하거나 불안정하게 반응하지 않도록 돕습니다.
이 덕분에 tanh를 사용한 신경망은 학습 과정에서 출력값이 폭주하지 않고 안정적인 학습을 할 수 있습니다.
학습과정에서의 역할
신경망이 학습할 때는 “기울기(gradient)”를 이용해 오차를 역으로 전파합니다.
tanh 함수는 입력이 0 근처일 때는 기울기가 크기 때문에 학습이 빠르게 진행됩니다.
하지만 입력이 너무 커지거나 작아질 때는 tanh의 출력이 -1이나 1에 가까워지며, 그 구간에서는 기울기가 거의 0에 가까워집니다.
이 현상을 기울기 소실(vanishing gradient) 이라고 부르며, 학습 속도가 급격히 느려지는 원인이 됩니다. (시그모이드 함수의 문제점과도 비슷하죠.) tanh는 중간값에서는 매우 유용하지만, 너무 극단적인 입력에서는 학습이 둔해지는 한계를 가지고 있습니다.
그래서 tanh는 단독으로 쓰이기보다는, 데이터를 적절히 정규화하거나 다른 구조(LSTM, GRU 등) 안에서 조절된 형태로 사용됩니다.
미분(Gradient) 특성
tanh의 미분값은 다음과 같습니다.

출력값을 알고 있으면 바로 기울기를 구할 수 있습니다.
이 성질은 역전파(backpropagation)에서 계산 효율을 높여줍니다.
- x = 0 근처에서는 기울기가 약 1이므로 학습이 잘됩니다.
- 하지만 |x|가 커질수록 tanh(x)가 ±1에 가까워지며, 기울기가 0에 수렴 → 학습이 멈추는 기울기 소실(vanishing gradient) 현상이 생깁니다.
신경망 속에서의 tanh
tanh 함수는 특히 RNN(순환신경망) 이나 LSTM(장단기기억 네트워크) 안에서 자주 사용됩니다.
이 두 모델은 시간에 따라 정보를 전달하기 때문에, 각 시점에서 정보를 얼마나 보존하고 얼마나 잊을지를 결정해야 합니다.
이때 tanh는 새로운 정보를 부드럽게 정규화하여 메모리 셀로 전달하는 역할을 합니다.
즉, 입력 신호가 너무 강하지 않게, 그리고 방향성(긍정 또는 부정)이 유지된 채로 다음 단계에 전달되도록 도와줍니다.
LSTM에서는 셀의 상태를 최종적으로 출력할 때도 tanh가 사용됩니다.
이 함수는 셀 안에 저장된 값을 -1과 1 사이로 조정해, 모델이 안정적으로 다음 은닉층으로 정보를 전달하도록 합니다.
다른 활성화 함수와 비교
tanh와 sigmoid 함수는 모두 S자 곡선 형태를 띠지만, 중요한 차이점이 있습니다.
sigmoid는 출력이 0과 1 사이여서 항상 양수만 나오지만, tanh는 -1과 1 사이이므로 데이터가 중심 0을 기준으로 양·음 방향으로 균형 있게 퍼질 수 있습니다.
이 특성 덕분에 tanh는 은닉층에서 데이터의 분포를 중앙으로 맞추어 학습을 더 빠르게 만드는 효과가 있습니다.
예시
- tanh는 “입력값을 부드럽게 -1과 1 사이로 조정하는 정규화 게이트” 입니다.
예를 들어 신경망이 어떤 자극에 과도하게 반응하려 할 때, tanh는 “너무 극단적이지 않게” 완화시켜줍니다. - 그래서 RNN이나 LSTM에서는 tanh를 기억 셀의 후보 값(c~) 이나 은닉 상태 계산(h_t) 에 자주 사용합니다.
LSTM 셀 내부에서는 tanh가 두 곳에서 쓰입니다.
새로운 후보 기억 생성
→ 입력 정보를 -1~1로 스케일링하여 셀 상태에 더하기 적합하게 만듦.

출력 게이트를 거친 최종 은닉 상태 계산
→ 셀 상태의 값을 부드럽게 변환해 다음 층으로 전달.

즉, tanh는 LSTM 안에서 기억을 조절하고 정제하는 역할 을 맡습니다.
'인공지능 > 딥러닝 -파이썬 인공지능' 카테고리의 다른 글
| ReLU (Rectified Linear Unit) 함수 (0) | 2025.10.26 |
|---|---|
| RNN (0) | 2025.10.22 |
| 마르코프 모델과 벨만 방정식 (0) | 2025.10.22 |
| CNN, MNIST 코드 분석 (0) | 2025.09.10 |
| 패션 MNIST 소스 분석 (1) | 2025.09.10 |