AI
손실함수의 그래프(Training Curve, Loss Landscape)와 최적화 방법
책을 읽으며 손실함수와 최적화함수에 대해 공부하던 중 손실함수의 그래프에 대해 의문을 갖게 되었다. 왜냐하면 최적화함수마다 최솟값을 찾아가는 경로, 움직임이 전부 다르기 때문이다. 또한 손실함수의 global minimum을 찾을 때 안장점(saddle point), Local minima 등의 문제가 있어 초기값과 탐색경로가 중요한 것을 알 수 있었다. 따라서 손실함수의 그래프를 알 수 있다면, global minimum을 효율적으로 찾아가기 위해 어떤 초기값이 좋을지, 어떤 최적화함수가 좋을지에 대한 insight를 얻거나 inference가 가능할 수도 있겠다 싶어 손실함수의 그래프에 대해 찾아보게 되었다. 일반적으로 우리가 보는 손실함수의 그래프는 Traing Curve이고 다음과 같다. 이는 에..
Visualizing the Loss Landscape of Neural Nets 리뷰
논문: https://arxiv.org/pdf/1712.09913v3.pdf Intro 손실함수를 시각화하는 방법에 대해 궁금해하던 중 발견한 논문이다. 왜냐하면 손실함수를 시각화하여 봄으로써 최적화함수의 선택에 도움이 될 것이라고 생각했기 때문이다. 이 논문에서는 단순 손실함수 시각화뿐 아니라 모델의 구조, 최적화 함수, Weight Decay와 skip-connection 그리고 배치 사이즈에 따른 손실함수의 변화를 시각화하여 보여줌으로써 모델에 주는 영향을 직관적으로 알 수 있게 한다. The Basics of Loss Function Visualization 이 논문에선 손실함수를 표현하는 방법으로 '1-Dimensional Linear Interpolation'와 'Filter-Wise Norm..
밑바닥 부터 시작하는 딥러닝② 요약
밑바닥부터 시작하는 딥러닝 2권을 읽고 필기한 내용들이다. 딥러닝의 기본적인 모델인 RNN과 언어처리에 대하여 배우는 책이였다. RNN의 기본원리와 CNN과의 차이점, 시계열 데이터인 텍스트 데이터들을 다루는 법을 배웠다. 그리고 RNN을 개선한 다양한 기법들과 공통적으로 일반화 및 성능개선에 도움되는 기법들에 대해 공부하였다. 문장을 벡터로 나타내는 방법 두 가지를 배웠다. 딥러닝으로 사용할 수 있는건 추론기반기법인데 word2vec로 문장을 벡터로 만들어 신경만의 입력으로 사용할 수 있게 한다. 벡터로 바꾸면 동시발생 행렬이라고 주목하는 값만 1이고 나머지는 값이 0인 행렬(one-hot-vector)로 변환한다. 이때 문장의 길이가 길어지면 벡터의 차원이 너무 커지기 때문에 특잇값 분해를 통하여 벡..
밑바닥부터 시작하는 딥러닝①: 손실함수와 정확도 미분
모델의 평가방법으로 정확도가 아닌 손실함수를 사용 하는 이유에 대해 내가 이해한 대로 써보려 한다. 정확도가 아닌 손실함수를 평가요소로 사용하는 이유는 두가지가 있다. ① 정확도는 매개변수의 변화에 민감하게 반응하지 않고, 값이 불연속적이다. ② 정확도는 매개변수의 미분값이 대부분 0이여서 매개변수 갱신이 되지 않는다. 정확히는 ①이 ②의 원인이다. 먼저 정확도 그래프를 보자. 값이 불연속적으로 변하는 것을 볼 수 있다. 왜냐하면 정답 갯수는 값이 1개, 2개..등으로 셀 수 있는 정수, 즉 불연속적인 값이기 때문이다. 이 정확도 함수는 미분을 하여도 구간별로 상수이기때문에 미분값이 0이 될것이고, 따라서 역전파를 통한 최적화시에 매개변수 값을 바꿀 수 없다. 왜냐하면 0은 더하거나 곱해도 0이기 때문이..
밑바닥 부터 시작하는 딥러닝① 요약
딥러닝을 공부한지 두달정도가 지났고 딥러닝계의 바이블로 불리는 '밑바닥부터 시작하는 딥러닝①'로 시작하였다. 신경망(ANN)의 기초와 평가방법, 최적화 그리고 합성곱계층(CNN), 오버피팅 방지 등에 대해 배우는 책이였다. 책을 공부하며 정리한 요약본을 남겨본다. 책을 읽으며 생긴 의문점과 그에 대한 답은 후속 포스트에 남겨놓았다. 신경망에 대해 처음 배우는 장이다. ANN, 완전연결계층과 입력(label)을 이용해 머신러닝의 기초에 대하여 배웠다. ANN은 입력층, 은닉층, 출력층으로 나눌 수 있었고 층의 깊이를 깊게 할때는 은닉층을 깊게 쌓았다. 입력층에 데이터를 바로 입력하지 않고 데이터의 특성들을 고려하여 전처리 후, 입력하면 정확도를 더 높힐수 있었다. 모델을 평가할 때는 정확도와 손실함수라는 ..