러닝 공부

lab 6-2 부터 lab 7-2 까지 강의를 들으며 코드를 분석해 보았다. lab 6-2 에서는 reshape , one hot encoding에 대해서 공부를진행했으며 이에 대한 내용을 블로그에 포스팅을 하는것이 좋다고 판단했다. 포스팅은 내일 일을 마치고 진행하도록 하겠다. 또한 중요한 것은 lab7-1에 나왔던 learning rate와 normalization이다. 여기서는 우리가 러닝을 진행할때 cost와 prediction값이 nan or inf 값으로 나올때 우리는 이 두개의 요소를 의심해봐야 한다고 했다. learning rate을 적절히 하는것도 중요하며 input data를 raw로 그냥 쓰지 않고 normalized 하는것이 중요하다고 한다. 따라서 normalized의 경우에는 Minmaxscaler를 사용하는 경우가 많으며 이는 사용자의 데이터 분포나 타입을 고려해서 normalize를 어떻게 할지 정하는것이 중요할 것이다.
lab7-2 에서는 MNIST 에 대해서 배웠다. batch 와 epoch 에 대해서도 다시한번 배웠다.

  • batch : 트레이닝 시 넣을 데이터의 사이즈를 의미하며 크기가 클 수 록 메모리를 많이 사용하게 된다.
  • epoch : 전체 데이터 셋을 한번 돈것을 1 epoch이라고 한다. 데이터가 너무 많은 경우에는 batch 를 이용해서 데이터를 자르게 되는데 데이터가 3개로 잘렷다면 3번 이터레이션 돌게되면 전체 데이터 셋을 한번돈 1 epoch이 되는것이다.

만약 데이터의 갯수가 100000개 이고 batch size 가 100 이였고 epoch을 15로 정의했다면 (데이터갯수)/(배치 사이즈) 만큼의 이터레이션을 도는 행위를 총 15번 반복하는 것이다. 정확도,성능을 평가하기 위해서는 training data 가 아니라 한번도 학습되지 않은 데이터인 test data를 사용해야한다.

아직 MNIST의 소스코드를 뜯어 돌려보지는 않았기 때문에 내일 돌려보고 개인 프로젝트에 대해서 정리하고 진행방향을 포스팅하도록 하겠음.

CODE 책 읽기

[CODE 하드웨어와 소프트웨어에 숨어 있는 언어]라는 책을 읽기 시작했다. 하루에 1챕터씩 천천히 읽고 있는데 처음은 부호화에 대해서 이야기를 한다. 즉, 0과1으로 이루어진 바이너리 코드에 대해 시작하며 나아가 점자책에 대한 이야기를 하며 점차 복잡해지는 코드의 기원과 그 원리에 대해서 설명해주고있다. 앞으로 한챕터씩 계속 읽어보려한다. 책의 전반적인 내용은 과거의 기초적인 코드,측 부호 부터 시작해서 현대의 컴퓨터까지 이르기 까지에 전반적인 내용을 다루고 있어서 도움이 될 것 같은 느낌이다.

오늘은 러닝 공부를 열심히했다. 사실 조금 더 공부를 진행했어야 했는데 주말이기도 하고 친구가 놀러오게되어서 많이하지는 못했다. 내일은 일이 일찍끝나기 때문에 일이 끝나고 바로 집으로 들어와서 마저 못한 러닝 공부를 하고 stl 포스팅 또한 진행하도록 하겠다. 자기 전에는 stl 책을 읽고 자도록 하겠다.