본문 바로가기

분류 전체보기101

[ML / DL] Backpropagation in softmax function 본 포스팅에서는 정말 많은 시간을 고민하고 검색한 주제를 다뤄볼까 한다. softmax에서 backpropagation을 어떻게 할까? 사실, 그렇게 쓸모 있는(?) 주제가 아닐 수도 있다. pytorch에서는 nn.CrossEntropyLoss 함수를 제공하고 이는 내부적으로 log softmax까지 해주기 때문에 softmax에서 계산되는 down stream gradient을 계산할 필요가 없기 때문이다. 이에 관한 내용은 아래 포스팅은 참고해주기 바란다.https://steady-programming.tistory.com/91 [Pytorch] nn.CrossEntropyLoss와 nn.NLLLoss분류 문제를 풀다보면 반드시 만나는 손실함수가 있다. 그것은 바로 cross entropy loss.. 2024. 8. 31.
[Pytorch] nn.CrossEntropyLoss와 nn.NLLLoss 분류 문제를 풀다보면 반드시 만나는 손실함수가 있다. 그것은 바로 cross entropy loss. cross entropy loss가 무엇을 의미하는지, 왜 수식이 그렇게 정의되는지에 대한 탐구는 아래 포스팅에서 진행했으니 참고하길 바란다.https://steady-programming.tistory.com/89 [ML / DL] Cross entropy loss function in classification problem지난 포스팅에서 회귀 문제와 분류 문제에서의 loss function은 분포를 가정하고 세운 maximum likelihood function의 간단한 변형임을 살펴보았다.https://steady-programming.tistory.com/36 [ML / DL] Cost func.. 2024. 8. 30.
[ML / DL] Backpropagation of loss function 지도학습의 머신러닝은 회귀 문제 / 분류 문제 중 하나에 속한다. 회귀 문제라면 최종 레이어에서 계산한 예측값 ($\hat{y}_i$)과 실제값 ($y_i$)와의 mean squared error $( L = \dfrac{1}{2} \sum (y_i - \hat{y}_i)^2 )$을 최소화하는 방향으로 학습이 진행된다. 분류 문제라면 최종 레이어에서 계산한 logit을 softmax 함수에 한번 넣고 ($\hat{y}_i = softmax(z_i)$), 이 확률값과 실제 라벨의 cross entropy $( L = \sum^C_{i=1} y_i \log \hat{y_i} )$을 최소화하는 방향으로 학습이 진행된다. 어느 경우가 됐든, backpropagation을 할 때, 최초로 예측값에 대한 loss.. 2024. 7. 28.
[ML / DL] Cross entropy loss function in classification problem 지난 포스팅에서 회귀 문제와 분류 문제에서의 loss function은 분포를 가정하고 세운 maximum likelihood function의 간단한 변형임을 살펴보았다.https://steady-programming.tistory.com/36 [ML / DL] Cost function과 Maximum likelihood estimation과의 관계서울대학교 딥러닝 기초 강의를 듣고 정리하였다. 딥러닝에서 파라미터를 근사하기 위해 필수적으로 세워야하는 cost function와 통계학에서 파라미터를 추정하기 위해 필수적으로 세우는 maximum listeady-programming.tistory.com간략하게 정리하면 회귀 문제에서의 mean squared error을 최소화하는 것은 error 항을 .. 2024. 7. 24.
[DL][Implementation] Numpy을 사용하여 MLP 구현하기 backpropagation을 수식으로 공부하다가, pytorch로 쓱 하고 지나갈 개념이 아닌 것 같다는 생각이 들었다. 모든 딥러닝 문제에서는 gradient descent을 사용해서 optimal parameter을 찾고 그 과정에서 backpropagation은 반드시 들어가기 때문이다. 물론, pytorch에서 똑똑하신 분들이 성능 좋은 함수들을 구현해주셨으나, 이를 마음껏 활용하기 이전에 직접 backpropagation을 구현해서 도대체 어떻게 돌아가는지 피부로 직접 느껴보고 싶었다.Model architecture입력 차원은 4, hidden layer의 개수는 3, 깊어질수록 hidden node의 수는 1씩 줄어들도록 모델을 설계해보자. 그림으로 그려보면 아래와 같다.activation.. 2024. 7. 13.
[Pytorch] MSE Loss in regression problem 오늘은 회귀 문제에서 loss function으로 가장 널리 사용되는 Mean Squared Error loss function에 대해서 살펴보고 pytorch에서 구체적으로 어떻게 돌아가는지 수식과 함께 살펴보고자 한다. MSE loss function을 살펴보고 분류 문제에서의 Cross entropy loss을 살펴볼 것이다. pytorch에서 모델을 정의하고, prediction, loss, grad을 구하고, 이를 기반으로 gradient descent을 하는 것은 잘 구현되어 있지만 그 내부에서 왜 이런 grad가 나왔는지 개인적으로 알아보고 싶었기 때문에 글을 적어본다.Simple Linear Regression우선, 문제를 심플하게 바라보기 위해 변수가 1개인 단변량 회귀 문제를 생각해보.. 2024. 6. 10.