일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 딥러닝
- 알고리즘
- CV
- 백준
- OpenCV
- Windows 10
- error
- 프로세스
- 쉘
- 턱걸이
- 백준알고리즘
- TensorFlow
- 운영체제
- c
- 코딩
- 학습
- C++
- 공부
- Windows10
- 영상처리
- 텐서플로우
- 회귀
- linux
- 리눅스
- python
- C언어
- 프로그래밍
- Computer Vision
- shell
- 시스템프로그래밍
- Today
- Total
목록경사하강법 (3)
줘이리의 인생적기
Gradient descent에 대한 짧은 이야기는 아래 글에서 다루어 보았습니다. https://cho000023.tistory.com/168 경사하강법(gradient descent)를 뿌수자 앞서 배웠던 회귀계수(w)를 기억하시나요? 이 회귀계수가 적다면 고차원 방정식으로 cost가 최소가 되는 w 값들을 도출할 수 있겠지만, 딥러닝은 이 회귀계수가 정말 많습니다. 즉, 고차원 방정식 cho000023.tistory.com 위 글에서는 feature의 개수가 1개여서 일반적인 gradient descent로도 충분히 가능했지만, 좀 더 복잡한 문제를 다루게 되어 feature의 개수가 늘어난다면 업데이트해야 되는 weight의 양이 기하급수적으로 늘어납니다! 그에 따라 컴퓨팅 자원소모도 엄청나게 되..

앞서 배웠던 회귀계수(w)를 기억하시나요? 이 회귀계수가 적다면 고차원 방정식으로 cost가 최소가 되는 w 값들을 도출할 수 있겠지만, 딥러닝은 이 회귀계수가 정말 많습니다. 즉, 고차원 방정식으로도 해결하기가 어렵다는 말입니다 ㅠㅠ 그래서 cost를 최소화하는 방법인 경사하강법(gradient descent)을 공부해보려 합니다. 경사하강법은 예측값과 실제값 사이가 작아지는 방향성을 가지고 회귀계수 파라미터를 업데이트합니다. 업데이트하다가 차이 값(=오류 값)이 작아지지 않으면 그 값을 최소 비용으로 판단합니다. 그렇다면 작아지는 방향성을 어떻게 알 수 있을까요? 2차 함수라고 가정했을 때 처음 회귀계수 값부터 미분을 적용한 뒤 미분 값이 계속 감소하는 방향으로 업데이트하면 됩니다..! 위 MSE L..

sigmoid 활성화 함수를 구현하여, 입력이 1일 때 출력이 0이 되는 뉴런을 만들어보겠습니다. import tensorflow as tf import math def sigmoid(x): return 1 / (1 + math.exp(-x)) x = 1 y = 0 w = tf.random.normal([1], 0, 1) output = sigmoid(x * w) error = y - output print("output = ", output) print("error = ", error) 0이 되기에는 역부족으로 보입니다. 이제 w값을 변화시켜야 하는데 경사하강법을 사용해보겠습니다. 경사하강법은 w에 입력과 학습률(α)과 error를 곱한 값을 더해주는 것입니다. w = w + x * α * error ..