전체 글

생각정리

    모델 학습 시 데이터를 shuffle해야 하는 이유(배치 학습)

    모델 학습 시 데이터를 shuffle해야 하는 이유(배치 학습)

    개요 모델을 훈련할 때 흔히들 데이터셋을 shuffle하여 학습시키곤 한다. 데이터셋을 training data: test data로 나눌 때도 shuffle하고 매 에폭마다 training data를 shuffle한다. 이렇게 data를 shuffle하는 이유에 대해 막연하게 알고 있었는데 이번에 데이터를 shuffle해야 하는 이유에 대해 알아보고자 한다. 미니배치와 배치를 혼용하여 쓰는 경우도 있지만 이 글에선 편의를 위해 미니 배치 학습은 전체 data를 나눠서 학습하는 것, 배치학습은 전체를 한번에 학습하는 것을 의미하여 쓴다. data를 shuffle하는 경우는 두가지가 있다. 첫째는 데이터셋을 training data: test data로 나눌 때이고 둘째는 모델 학습시 매 에폭마다 shuf..

    캐글 타이타닉 생존자 예측 실습(Logistic Regression)

    캐글 타이타닉 생존자 예측 실습(Logistic Regression)

    여태 이론적으로 배운 내용들을 실제로 구현해보고, 머신러닝 라이브러리를 직접 사용해봄으로써 이론적으로 배운 내용을 복습할겸 캐글의 가장 간단한 Competition인 타이타닉 생존자 예측을 해보았다. 먼저 문제를 보았을 때 승객의 데이터를 이용하여 생존 유무를 예측하는 문제이므로 이진 분류문제라 생각하였다(죽음=0, 생존=1). 이진 분류를 위한 알고리즘에는 Logistic Regression, KNN, SVM, Ensemble(XGB, Bagging Decision Tree, Random Forest..), Decision Tree, LGBM등 다양한 기법들이 있지만 그 중 Logisitic Regression, XGB를 이용하여 문제를 풀어보기로 했다. 우선 SVM은 데이터의 차원이 11차원으로 크지..

    Attention Is All You Need 리뷰

    Attention Is All You Need 리뷰

    링크: https://arxiv.org/pdf/1706.03762.pdf Introduction 게이트를 가진 RNN(LSTM)은 sequence modeling과 language modeling , 기계 번역에서 뛰어난 성과를 보였다. 그러나 RNN은 은닉상태 ht가 이전의 은닉상태 ht-1과 시각 t에서의 input의 함수이기에 sequential하고, 따라서 학습시 병렬화가 배제되어 긴 시계열을 다룰 때 좋지 않다. attention은 input과 output간의 거리에 상관없이 dependencies modeling을 가능케 하여 다양한 분야에서 중요하게 사용되고 있다. 이 논문에선 recurrence를 없애고 encoder와 decoder 모두에 attention을 사용함으로써 input과 ou..

    Deep Learning without Poor Local Minima 리뷰

    링크: https://arxiv.org/pdf/1605.07110.pdf Introduction 딥러닝은 많은 분야에서 사용되지만 층이 깊은 모델은 비볼록 최적화 함수를 가지기에 최적화 하기 힘들어 보인다. 딥러닝이 현업에서 많이 사용되긴 하지만 최적화가 쉬워지는지는 이유를 이론적으로는 모른다. 이 논문에선 기존의 deep linear network에 관한 Corollary를 증명하고 deep nonlinear networks의 미해결문제를 해결한다. 그리고 기존의 Corollary와 미해결문제에 관한 더 일반적이고 더 강한 statements를 증명한다. Deep linear neural networks deep linear model의 최적화는 deep nonlinear model과 유사한 점들이 있..

    Identifying and attacking the saddle point problem in high-dimensional non-convex optimization 리뷰

    Identifying and attacking the saddle point problem in high-dimensional non-convex optimization 리뷰

    링크: https://arxiv.org/pdf/1406.2572.pdf Intro 저차원에서의 기하학에 대한 경험을 고차원으로 적용할수 없다. 왜나하면 error function들은 차원이 커질수록 안장점의 개수는 지수적으로 증가하기 때문이다. 그리고 통계학, 랜덤 행렬이론, 신경망 이론, 선험적인 증거들로 비볼록함수를 최소화 하는것은 local minima의 문제가 아닌 안장점에서 비롯됨을 보인다. 특히, 고차원에서 안장점은 high error plateaus로 둘러 쌓여있어 학습을 극도로 낮추고 local minimum이 있다는 착각을 하게한다. 그래서 저자들은 기존의 SGD, quasi-Newton과는 다른 2차원 최적화 방법인 saddle-free newton method로 고차원에서 안장점을 탈..

    손실함수의 그래프(Training Curve, Loss Landscape)와 최적화 방법

    손실함수의 그래프(Training Curve, Loss Landscape)와 최적화 방법

    책을 읽으며 손실함수와 최적화함수에 대해 공부하던 중 손실함수의 그래프에 대해 의문을 갖게 되었다. 왜냐하면 최적화함수마다 최솟값을 찾아가는 경로, 움직임이 전부 다르기 때문이다. 또한 손실함수의 global minimum을 찾을 때 안장점(saddle point), Local minima 등의 문제가 있어 초기값과 탐색경로가 중요한 것을 알 수 있었다. 따라서 손실함수의 그래프를 알 수 있다면, global minimum을 효율적으로 찾아가기 위해 어떤 초기값이 좋을지, 어떤 최적화함수가 좋을지에 대한 insight를 얻거나 inference가 가능할 수도 있겠다 싶어 손실함수의 그래프에 대해 찾아보게 되었다. 일반적으로 우리가 보는 손실함수의 그래프는 Traing Curve이고 다음과 같다. 이는 에..

    Visualizing the Loss Landscape of Neural Nets 리뷰

    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)로 변환한다. 이때 문장의 길이가 길어지면 벡터의 차원이 너무 커지기 때문에 특잇값 분해를 통하여 벡..