본문 바로가기

딥러닝관련/기초 이론43

신경망 정리 6 (경사법, 경사 하강법) 경사법(gradient method) 기울기를 활용해 함수의 손실 함수의 최솟값(또는 가능한 한 작은 값)을 찾으려는 것이 경사법 그러나, 기울기가 가리키는 곳에 정말 함수의 최솟값이 있는지, 즉 그쪽이 정말로 나아갈 방향인지는 보장할 수 없다. 실제로 복잡한 함수에서는 기울기가 가리키는 방향에 최솟값이 없는 경우가 대부분. 함수가 극솟값, 최솟값, 또 안장점이 되는 곳에서는 기울기가 0 극솟값 : 국소적인 최솟값, 한정된 범위에서의 최솟값 경사법은 기울기가 0인 장소를 찾지만 그것이 반드시 최솟값이라고는 할 수 없다. (극솟값이나 안장점일 가능성도 있음) 또 복잡하고 찌그러진 모양의 함수라면 대부분 평평한 곳으로 파고들면서 고원(plateau)라고 하는, 학습이 진행되지 않는 정체기에 빠질 수 있다. .. 2021. 5. 24.
신경망 정리 5 (수치 미분, 편미분) 미분 10분동안 2km를 달렸다고 가정 1분에 0.2km만큼의 속도로 뛰었다고 할 수 있음 10분에 2km를 뛰었다는 것은, 정확하게는 10분 동안의 '평균 속도'를 구한 것임. 미분은 '특정 순간'의 변화량을 뜻함 수식으로 나타내면 아래와 같음 좌변 : f(x)의 x에 대한 미분 (x에 대한 f(x)의 변화량) 결국, x의 '작은 변화'가 함수 f(x)를 얼마나 변화시키느냐를 의미 시간의 작은 변화, h를 한없이 0에 가깝게 한다는 의미로 limit으로 표현 간단히 미분 구현 def numerial_diff(f, x): h = 10e-50 return (f(x + h) - f(x)) / h 위에는 개선해야 할 점이 2개 있음 h에 가급적 작은 값을 대입하고 싶었기 때문에 h를 무한히 작은 값인 10e-.. 2021. 5. 23.
신경망 정리 4 (손실 함수 설정) 손실 함수를 왜 설정하는가? 신경망의 목표는 정확도를 높이는 게 궁극적인 목표인데 왜 '정확도'라는 지표 말고 손실 함수의 값을 거치는가? 신경망 학습에서의 '미분'의 역할에 주목 신경망 학습에서는 최적의 매개변수 (가중치와 편향)을 탐색할 때 손실 함수 의 값을 가장 작게 하는 매개변술의 값을 찾는다. 이때 매개변수의 미분 (정확히는 기울기)를 계산하고, 그 미분 값을 단서로 매개변수의 값을 서서히 갱신하는 과정을 반복. 가중치 매개변수의 손실 함수의 미분이란 '가중치 매개변수의 값을 아주 조금 변화시켰을 때, 손실이 어떻게 변하나'의 의미 만약미분 값이 양수면 그 가중치 매개변수를 음의 방향으로 변화시켜 손실 함수의 값을 줄일 수 있다. 그러나 미분 값이 0이면 가중치 매개변수를 어느 쪽으로 움직여도.. 2021. 5. 23.
신경망 정리 3 (신경망 학습, MSE, Cross entropy loss ....) 학습 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것 신경망이 학습할 수 있도록 해주는 지표 : 손실 함수 이 손실 함수의 결괏값을 가장 작게 만드는 가중치 매개변수를 찾는 것이 학습의 목표 데이터에서 학습한다 신경망의 특징 : 데이터를 보고 학습을 할 수 있다는 점 학습 → 가중치 매개변수의 값을 데이터를 보고 자동을 결정한다. 학습이 필요한 이유.. 퍼셉트론을 생각해보자. 사람이 수작업으로 매개변수의 값을 설정했어야 했다. 만약 이 매개변수가 많아 진다면.... 사람이 일일히 수작업으로 할 수 없다. 데이터 주도 학습 기계학습은 데이터가 생명. 기계학습에서는 사람의 개입을 최소화하고 수집한 데이터로부터 패턴을 찾으려 시도. 만약 숫자 5를 인식하는 프로그램을 구현한다고 가정 막상 구.. 2021. 5. 12.