본문 바로가기
반응형

딥러닝 머신러닝 데이터 분석/BoostCampAITech25

[ BoostCamp ] Day-18 학습로그( PyTorch pretrained model ) 1) 강의 복습 내용 최근에는 MLOps 같은 내용들이 부각되면서 이미 잘 나와있는 좋은 모델들을 어떻게 하면 더 잘 쓸 수 있을까를 고민하는 시대가 왔다. 거기의 중심에는 pretrained model이 있고 이 모델들을 내 데이터에 맞게 fine tunning 하여서 원하는 성능을 끌어내는 그런 작업이 굉장히 널리 쓰이는 중이다. 테스크를 설계하고 데이터를 처리하고 모델을 트레이닝하고 하이퍼파라미터를 조정하는 일은 굉장히 고통스러운 일이기 때문에.. 이런 과정들을 최대한 줄이고 거기서 발생하는 리스크도 통제가 가능하다는 것이 fine tunning의 큰 장점이다. PyTorch에서는 모델을 저장하는 방법을 2가지 정도 제공한다. 첫번째는 모델의 파라미터만을 저장하는 방식이고 이 경우에는 파라미터의 사.. 2021. 8. 20.
[ 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.
반응형