dl24 Optimizer 총정리 : GD, SGD, Momentum, Adagrad, RMSProp, Adam Adam 은 Momentum 방식과 RMSProp 방식의 합입니다. GD부터 순차적으로 하나씩 뜯어보면서 Adam Optimizer에 대해서 알아보겠습니다. GD(gradient descent) GD복습하기 👈 클릭! Gradient Descent는 학습률에 따라 발산하거나 Local Minimum에 빠지기 쉽다는 단점이 있습니다. 또한 Convex(볼록) 함수에서는 잘 작동하지만 Non-Convex(비볼록) 함수에서는 안장점을 최저점이라 생각하고 벗어나지 못하는 단점이 있습니다. 이러한 안장점에서는 미분계수가 0이 나오기 때문에 학습이 더 이상 진행되지 않게 됩니다. 또한 GD는 한번에 epoch에 모든 학습데이터를 학습하기 때문에 컴퓨터에 큰 부담을 지우게 됩니다. 그래서 나온 Optimizer가 B.. 2023. 10. 2. Naver 부스트코스 - Certificate 수료증 마치며 2022년 여름방학, 정말 그 누구보다 열심히 살았다고 자부할 수 있을만큼 알차게 보낸 것 같다. 저 수료증 사진으로 보상을 받는 기분이다. 이제 여기서 그치는 것이 아니라, 하고싶은 공부는 이 카테고리에 꾸준히 해나가야겠다. 회고록 써보라고 여기저기서 추천을 받아서 몇줄 적어보는데 오그라들어서 오늘은 여기까지 해야겠다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 끝! 2023. 10. 1. Lec 11-6 : RNN Packed Sequence 딥러닝 공부 30일차 Sequential Data 이번에는 길이가 각각 다른 시퀀스 데이터를 하나의 배치로 묶는 2가지 방법에 대해서 알아보겠습니다. 자세히 알아보기 전에 sequential data 가 또 무엇이 있는지 알아보겠습니다. 시퀀셜 데이터는 길이가 정해지지 않는 경우가 많습니다. Padding CNN을 공부할 때 배웠던 padding과 비슷한 느낌입니다. 위 그림과 같이 다섯개의 각기 다른 사이즈를 가진 시퀀셜 데이터를 하나의 배치로 묶으려면 $\text{}$ 토큰을 이용하여 가장 긴 문장을 기준으로 맞춰 줄 수 있습니다. 패딩의 장점은 데이터가 깔끔하게 정리되어서 컴퓨터에서 처리하기 간편해진다는 점 입니다. 단점은 이렇게 빈 공간들을 패딩으로 채워넣기 때문에, 안해도 될 연산들을 해주어야 .. 2023. 9. 30. Lec 11-5 : RNN Seq2Seq 딥러닝 공부 29일차 Sequence to Sequence RNN은 sequencial data를 다루기 위해 만들어졌다고 하였었습니다. 기존의 rnn과 seq2seq는 무엇이 다른지 알아보겠습니다. seq2seq 의 예시로 챗봇을 들 수 있습니다. 만약 기존의 rnn이였다면 "나 어제 헤어졌어" 를 듣고 "유감이다" 등의 위로까지는 잘 처리할 수 있어도 그 다음 대화가 진행되다가 "오늘 날씨가 너무 멋져서 나를 슬프게 해" 라고 했을 때 sad 전까지의 문장이 이미 rnn을 통해 학습해버리기 때문에, 날씨가 완벽해서 슬프다 라는 역설적인 맥락을 파악하지 못할 가능성이 높습니다. 이러한 문제점을 해결하기 위해 나타난 것이 Sequence to Sequence 입니다. 그래서 seq2seq 는 encode.. 2023. 9. 29. Lec 11-4 : RNN Timeseries 딥러닝 공부 28일차 Time Series Data 주식하는 사람들은 어디서 많이 본 그래프일 것 같은데요, 제가 봤을 때는 작년 미국시장 S&P500 지수 그래프와 많이 유사한 것처럼 보입니다. 각설하고, 이러한 주가는 여러가지 변수에 의한 요인이 있겠지만 어찌되었던 시간과 관련이 있는 데이터라고 할 수 있습니다. data-02-stock_daily.csv 이러한 주가에서 5가지 항목들을 예측해보는 모델을 만들어 보겠습니다. 5가지 항목은 시작가, 최고가, 최저가, 거래량, 종가 입니다. Many-to-One 위 그림과 같은 구조를 여러개의 Input으로 한개의 결과값을 유추한다는 느낌으로 Many-to-One 이라고 표현합니다. 만약에 우리가 저 주가예측 RNN을 통해 종가를 알고 싶다고 가정해보겠습.. 2023. 9. 28. Lec 11-3 : RNN Long sequence 딥러닝 공부 27일차 Sequence dataset from long sentence 앞선 글에서는 문장을 커스터마이징 하는데까지 배워봤습니다. 그렇다면 위 그림과 같이 긴 문장은 어떻게 rnn으로 학습시킬 수 있을까요?? 사실 현직에서 사용하는 정도의 긴 문장은 절대 아니지만 아직 배운 수준에 비해선 긴 문장이니 그냥 그런거로 하겠습니다. x_data, y_data를 배열로 선언해줍니다. 반복문을 돌리는데, 우리는 긴 문장안에서 sequence_length 만큼씩 쪼개서 볼 겁니다. 예를들어 5개 글자중(공백포함) 시퀀스길이가 3이라면 5-3=2이므로 0부터2까지 3개의 반복문이 실행이 되는 것인데 이는 정확히 나눠서 세야할 반복 횟수와 동일합니다. 같은 원리로 for i in range(0, len(.. 2023. 9. 27. Lec 11-2 : RNN Hihello and Charseq 딥러닝 공부 26일차 'hihello' problem 앞선 글에서는 hello라는 글자를 가지고 rnn을 돌리는 방법을 간략하게 알아봤었습니다. 이제는 그 글자가 hihello 로 바뀌었을 뿐인데요, 여기서 우리는 주목해야할 문제점이 있습니다. h 같은 경우 그 다음 문자가 i 가 올지 e 가 오는지에 관해서 rnn을 구성해야한다는 점입니다. 문자 표현하기 by one-hot vector 원-핫 인코딩 복습하기 문자를 만약에 위 그림의 왼쪽처럼 0,1,2,3,4 로 의미를 부여해준다고 한다면 컴퓨터의 입장에서는 o 가 h 보다 훨씬 중요한 문자구나 라고 인지하게 되는 오류가 발생할 수 있습니다. 그래서 원-핫 인코딩이 필요한 것입니다. 원-핫 벡터로 h, i ,e, l, o 를 표현하면 위.. 2023. 9. 26. Lec 11-1 : RNN basics 딥러닝 공부 25일차 RNN을 Pytorch에서 구동하는 법은 두줄이면 끝납니다. 그림에서 볼 수 있듯이 rnn = torch.nn.RNN(input_size, hidden_size) outputs, _status = rnn(input_data) Input_data shape 위처럼 두줄이면 rnn을 가져다 쓸 수 있습니다. 이제 여기서 input data의 모양이 어떻게 구성이되는지, output shape도 어떻게 이루어져 있는지 알아보겠습니다. Input_size 우리가 살펴볼 글자는 hello 입니다. 여기서 글자수는 5개지만 실제로 사용되는 글자는 h, e, l, o 이렇게 4가지이므로, (-, -, 4) 괄호 안에들어가는 3가지중 맨 오른쪽에는 사용되는 글자 자체의 개수가 들어가게 됩니다. S.. 2023. 9. 25. 이전 1 2 3 다음 728x90