확률적 경사하강법과 다르게 그냥 경사하강법이 데이터 계산량이 많다고 하는데요.
경사하강법에서 모든 데이터에 대해서 gradient를 계산한다는 설명이 잘 이해되지 않습니다. 손실 함수의 한 지점을 정해서 기울기와 보폭 사이즈대로 쭉 이동해서 극소값으로 이동하는게 경사하강법 아닌가요? ㅠㅠ
확률적 경사하강법과 다르게 그냥 경사하강법이 데이터 계산량이 많다고 하는데요.
경사하강법에서 모든 데이터에 대해서 gradient를 계산한다는 설명이 잘 이해되지 않습니다. 손실 함수의 한 지점을 정해서 기울기와 보폭 사이즈대로 쭉 이동해서 극소값으로 이동하는게 경사하강법 아닌가요? ㅠㅠ
10만개의 observation (너가 가진 트레이닝 데이터가 주어졌다고 했을때, each time step에서 모든 10만개 데이터 값에 대해서 loss 값 계산해서 gradient를 구하는것과 랜덤하게 N개씩 뽑아서 gradient를 구하는 것 이 차이임. 이건 gradient descent 최적화 수식을 보면 이해가 더 쉬움.
여기서 Hessian (즉 second order)를 사용하지 않는 단점으로 생기는 문제를 해결하려고 기존에 계산한 gradient 를 retain해서 써먹고 또 learning rate을 adaptive하게 가중치에 줄 수 있게 만들어본게 ada, rmsprop, Adam같은 알고리즘임. 해석학 지식 있으면 adam 논문은 한번 읽어보는게 좋음.
훈련 데이터로 그린 손실 함수에서, 극소값을 찾는 과정을 경사하강법이라고 이해했는데요. 각 스텝에서 모든 훈련 데이터에 대한 loss 값을 계산한다는 설명이 잘 이해가 안갑니다. 이부분 살짝 알려주실 수 있을까요? ㅠㅠ
각 스텝에서 모든 훈련 데이터에 대한 loss 값을 계산한다는건 신경망(딥러닝)의 기본 설계임. 굳이 신경망 아니어도 블랙박스 함수도 마찬가지.
Loss function의 설계가 데이터 전체에 대한 sum
Epoch에 대해 잘 모르시는거 같은데 N개의 데이터가 있을 때 N개 전체에 대해 gradient를 구해 GD 1 step을 밟으면 그게 1 epoch입니다
완벽하게 이해 했습니다. 다들 감사드려요❤+