본문 바로가기

머신러닝, 딥러닝

(3)
Gradient(그래디언트)가 왜 접평면에 수직이야?! 딥러닝을 공부하다 보면, Gradient는 상당히 중요한 개념이다. 나는 스스로 Gradient를 어느 정도 이해하고 있다고 생각했는데, 이는 아주 큰 착각이었다. (나 이과 맞냐 .. ㅜㅜ) 따라서 이번에 Gradient에 관한 당연한 내용을 다루려고 한다! 들어가기 전에 (feat. 나만 몰랐던 이야기) 나에게 큰 충격을 준 부분은 구글에 Gradient를 검색하면 가장 처음으로 볼 수 있는 이미지이다. (1행 1열 사진) 좀 더 자세히 보자면, 아래 사진과 같다. 아래 이미지에서 P점 $(x_{0}, y_{0}, z_{0})$ 에 대한 Gradient가 무엇이냐에 대한 내용이냐는 질문에 대해, 나는 막연히 P점과 저 구의 접평면(C)을 생각했다. 하지만, 여기서 정답은 접평면에 수직인 벡터($\na..
SVM을 전용 패키지 없이 파이썬으로 구현해보기 이전 포스트에서 loss ftn에 대해 다뤘는데, 그중 Hinge Loss가 SVM에서 사용되는 Loss이다. 아래 Hinge Loss 식에서 왜 safety margin 값이 +1인지 궁금했다. 그래서 이를 더 이해하고자, 추가로 SVM을 공부해보고, Hinge Loss를 기반으로 최적화하는 SVM을 간소하게 구현해보았다. (보통 파이썬에서는 sklearn 패키지를 사용하면 SVM을 쉽게 사용할 수 있지만, 작동 원리를 이해를 위해서 패키지 없이 직접 구현해보았다.) SVM에 대한 개념 설명은 이미 잘 정리되어있는 곳이 많아서, 다른 글들을 참고하면 좋을 것 같다. (추천 블로그 : https://sanghyu.tistory.com/7) 코드 목표 2차원의 공간에 아래와 같이 +, - 그룹 별로 2개의..
Loss Function 이해하기 - Hinge loss, Softmax loss 분류 문제에 많이 쓰이는 Loss Function(손실 함수)인 Hinge Loss와 Softmax Loss에 대해서 알아보려고 한다. 아래 내용은 cs231n 3강 강의를 참고로 정리했다. Loss Function 이란 머신러닝에서 학습은 (그중에서도 supervised learning은) 학습데이터를 기반으로 실제값과 예측값 사이의 Loss(오차)를 최소화하도록 weight(가중치)와 bias(편향)을 최적화하는 과정이다. 그렇다면 이때 Loss는 어떻게 구할까? Loss Function를 기반으로 구할 수 있다! 머신러닝에서 사용해야 하는 Loss Function는 하나로 정해진 것은 아니고 다양하다. 사용하는 데이터와 도메인 특성을 고려해서 원하는 Loss Function를 골라서 사용하면 된다...