반응형 딥러닝 머신러닝 데이터 분석38 [ BoostCamp ] Day-17 학습로그( PyTorch의 구조 학습 ) 1) 강의 복습 내용 PyTorch는 nn.Module로 시작해서 nn.Module로 끝난다고 해도 과언이 아니다. Pytorch 에서 가장 중요한 class는 nn.Module이다. 대부분의 layer들은 이 nn.Module의 자식들이고 거기서 훈련이 가능한 변수들은 nn.Parameter로 지정되어있다. nn.Parameter로 지정된 변수들은 register 라는 곳에 저장되는데 이렇게 저장된 변수만이 auto-grad로 gradient를 계산할 수 있다. 가끔 임의로 텐서를 추가해서 계산을 해야하는 경우가 있는데 이럴때도 미분에 반드시 기여해야한다면 nn.Parameter로 register 시켜주는 것이 좋다. 데이터를 모델이 잘 먹이는 것도 참 큰 일이다. TensorFlow 에서는 TFrec.. 2021. 8. 20. [ BoostCamp ] Day-16 학습로그( Pytorch Basic ) 1) 강의 복습 내용 이제 수학적인 문제들은 다 끝났고 PyTorch를 통한 실전 코딩으로 넘어갈 차례다. 그래도 좀 더 매운맛인 TensorFlow1을 해봤던 터라 파이토치가 정말 쉽고 좋은 툴로 여겨 질줄알았는데 꼭 그렇지만도 않았다... 우선 가장 핫한 이슈(였던) Define 과 Run의 시점에 관한 것인데 이게 초창기에나 핫한 이슈였지만 지금은 TF2.x도 Define by Run이 가능해서 큰 문제는 아니라고 생각한다. 아무튼 딥러닝은 정형화된 그래프에서 데이터들이 흘러가는 방식의 연산이라 모델을 먼저 다 메모리에 올려놓고 돌리는게 더 빠르다고 생각되던 시절도 있었다. 그때 TF1.x 는 Define and Run 방식으로 메모리에 모델을 먼저 다 올리고 그다음 데이터를 feed 하는 방식으로.. 2021. 8. 19. [ BoostCamp ] Day-12 학습로그( Generative model ) 1) 강의 복습 내용 Generative model은 내가 가장 관심있는 인공지능 분야다. 그리고 가장 이해하기 어려운 분야기도 하다. 특히나 수학적으로 접근해서 이해를 도출하기가 굉장히 힘든데 그 이유는 단순한 형태의 확률밀도에 대한 추론이 아니라 우도와 같이 여러 확률밀도가 동시에 발생하는 복잡한 확률에 대한 추론이기 때문이다. likelihood 조차 이해하고 받아들이는데 얼마나 오래 걸렸는지 모르겠다. Generative model도 오랜 시간이 걸리겠지만 꾸준히 접근해 보려 한다. Generative model을 이해하기 위하여 간단한 Gan으로 사람얼굴을 만든다고 하자. 눈은 대칭되게 존재할 것이며 코는 눈 사이 아래에 있고 입은 코 아래에 있고 그 아래에 턱이 있고.. 이런 식으로 서로의 위.. 2021. 8. 18. [ BoostCamp ] Day-11 학습로그(RNN) 1) 강의 복습 내용 RNN의 수학적인 부분은 BPTT의 내용이나 이전의 RNN 관련 AI Math부분에서 잘 짚고 넘어갔다고 생각한다. 따라서 이번 강의를 들을때는 좀거 테크니컬한 부분은 어떤 부분이 있는지 집중해서 들었다. RNN의 가장 유명한 부분은 아마 back propagation에서 나타나는 gradient vanishing 혹은 exploding 현상일 것이다. RNN의 BPTT는 일반적인 확률 분포의 값을 추정하는 것과 달리 weighted gradient를 연속해서 곱해야하는 작업을 포함하므로 이 값은 단순히 vanishing의 가능성 뿐만 아니라 exploding 의 가능성까지 가지고 있다. exploding 은 학습도중 nan이 떠버리고 그 이후의 모든 학습에서 weight 가 nan.. 2021. 8. 15. [ Boost Camp ] Day-10 학습로그( CNN ) 1) 강의 복습 내용 CNN은 더 이상 배울게 없다고 생각했는데 그게 아니었다. 역시 고수들의 통찰은 언제나 뭔가가 있다. 흔하게 찾을 수 없었던 부분들을 정리해서 남겨보겠다. 한줄로 요약하면 parameter의 수가 적어질 수록 모델의 성능이 좋다. Convolution layer 의 도입으로 신경망의 크기가 얼마나 줄어들었는지 말로만 말하면 잘 느낌이 안온다. 숫자로 봐도 '음 많이 줄었군' 정도의 느낌이지 크게 와 닿지 않는다. 컴퓨터 비전의 혁신을 가져온 CNN 인 만큼 눈으로 보면 딱 알 수 있다. https://youtu.be/FwFduRA_L6Q 1993년도에 찍었다는 이 영상을 볼 때 마다 기가 딱 막힌다. 가끔 인공지능을 하는 사람들을 만나면 어떠한 신비주의에 매료되어서 수학적인 근간이나.. 2021. 8. 13. [ Boost Camp ] Day-9 학습로그 1) 강의 복습 내용 최적화optimization에 대해서 총체적으로 배웠다. 그렇지 않은 경우도 있지만 대부분의 경우 모델의 일반화generalization을 최대로 하면서 최적의 모델을 찾고자 하는 시도를 한다. 일반화란 학습하지 않은 문제에 대해서도 일반적으로 동일한 성능을 기대할 수 있는 것을 말한다. 일반화도 잘 되면서 성능도 뛰어난 모델을 얻을 수 있는 방법에 대한 연구가 굉장히 많이 이루어졌다. 트레이닝 데이터에 과적합되면 테스트 데이터에 대해서 잘 대처하지 못하는 현상을 보이므로 이런 현상이 발생하지 않도록 하면서 성능을 최적화해야한다. 가장 첫번째 전략으로는 어느정도 성능이 안정되었다고 판단되면 generalization gap 이 더이상 벌어지기전에 학습을 중단하는 것이다. 두번째 방법.. 2021. 8. 10. 이전 1 2 3 4 5 6 7 다음 반응형