일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Python Challenge
- 역전파
- picoCTF
- C언어
- 코딩
- PostgreSQL
- 오차역전파법
- 소프트맥스 함수
- 순전파
- FastAPI
- 책
- 신경망
- 아파치
- 우분투
- PHP
- 리뷰
- 백준
- 파이썬
- flag
- HTML
- CTF
- PICO CTF
- 신경망 학습
- 딥러닝
- 기울기
- Python
- 설치
- Apache2
- AdaGrad
- sgd
- Today
- Total
목록기울기 (4)
Story of CowHacker

이번 글에서는 신경망 학습 알고리즘에 대해 알아볼 것이다. 지금 까지 알아온 손실 함수 미니 배치 기울기 경사 하강법 등 많은 걸 봤다. 이것은 신경망 학습 절차에 그대로 적용된다. 신경망 학습 절차 0. 전제 신경망에는 적응 가능한 가중치와 편향이 있고, 이 가중치와 편향을 훈련 데이터에 적응하도록 조정하는 과정을 학습이라고 한다. 1. 미니 배치 훈련 데이터 중 일부를 무작위로 가져온다. 이렇게 선별한 데이터를 미니 배치라고 한다. 이 미니 배치의 손실 함숫값을 줄이는 것이 목표다. 2. 기울기 산출 미니배치의 손실 함수 값을 줄이기 위해 각 가중치 매개변수의 기울기를 구한다. 기울기는 손실 함수의 값을 가장 작게 하는 방향을 제시한다. 3. 매개변수 갱신 가중치 매개변수를 기울기 방향으로 아주 조금..

이번 글에서는 경사 법에 대해 알아보겠다. 머신러닝 문제 대부분은 학습 단계에서 최적의 매개변수를 찾아낸다. 딥러닝 즉, 신경망 역시 최적의 매개변수를 학습 시에 찾아야 한다. 여기서 최적이란 손실 함수가 최솟값이 될 때의 매개변수 값이다. 경사 법이란 기울기를 이용해 함수의 최솟값을 찾으려는 것이다. 경사 법을 수식으로 나타내 보겠다. 그림 1이 바로 경사 법을 수식으로 나타낸 것이다. 수식에서 η ( 에타 )는 갱신하는 양을 나타낸다. 이를 신경망 학습에서는 학습률이라 한다. 학습률이란 한 번의 학습으로 얼마만큼 학습해야 할지, 즉 매개변수 값을 얼마나 경신하냐를 결정하는 것이다. 이제 경사 법을 파이썬으로 구현해보겠다. 경사 법 코드 def gradient_descent ( f, init_x, lr..

이번 글에서는 앞 글에서 봤던 편미분을 묶어서 동시에 계산하는 방법을 알아보겠다. 이 묶어서 계산하는 방법이 바로 기울기라는 것이다. 지금부터 기울기에 대해 알아보겠다. 그림 1처럼 모든 변수의 편미분을 벡터로 정리한 것을 기울기라고 한다. 이 기울기를 파이썬으로 구현해보겠다. 기울기 코드 import numpy as num def numerical_gradient ( f, x ) : h = 1e-4 grad = num.zeros_like ( x ) for idx in range ( x.size ): tmp_val = x [ idx ] x [ idx ] = tmp_val + h fxh1 = f ( x ) x [ idx ] = tmp_val - h fxh2 = f ( x ) grad [ idx ] = ( ..

이제 신경망 학습에 대해 알아보겠다. 먼저 신경망의 특징에 대해 보면 데이터를 보고 학습할 수 있다는 점이다. 이 말은 가중치 매개변수의 값을 데이터를 보고 자동으로 결정한다는 뜻이다. 여기서 신경망의 매개변수의 수는 수천에서 수만입니다. 더 들어가 층을 깊게 한 딥러닝 정도면 수억에 이른다. 그림 1은 이미지 5라는 것을 숫자 5라고 인식하는 과정을 나타낸 것이다. 첫 번째 과정은 사람이 생각한 알고리즘을 토대로 한 과정이다. 가장 어려운 방식이다. 두 번째 과정은 사람이 생각한 특징과 머신러닝을 토대로 한 과정이다. 세 번째 과정은 사람 개입 없이 온전히 신경망을 토대로 한 과정이다. 세 번째 과정을 종단 간 머신러닝 이라고도 한다. 처음부터 끝까지 사람의 개입 없이 결괏값을 얻을 수 있다는 뜻을 가..