[AIFFEL 대전 1기] 73일째 날

데이터 여행자·2021년 4월 15일

[일기]

목록 보기
74/105

Going Deeper

어제에 이어 프로젝트를 하는 날이다. 오늘은 오후에 코딩 마스터가 있어서 시간이 짧은 만큼 쉽게 집중이 되지 않았다. 잠시 이야기를 나누고 이것저것 하다 보니 금세 시간이 흘렀다. 프로젝트는 생각만큼 진도가 많이 나가지 않았다. attribute 단어셋을 만드는 부분에서 장르 간 중복을 없애고 싶었지만 장르가 많고 2차원 배열이라서 중복 데이터를 제거하는 방법이 잘 생각나지 않았다.

게다가 자꾸만 주피터 노트북이 죽었다. 노드할 때는 괜찮았는데, 막상 프로젝트에 들어와서 뭔가 해보려고 하면 주피터 노트북이 죽어서 몇 번을 재부팅했는지 모른다. 토큰화에 10-15분 넘게 걸리고 토큰화를 여러 번 해야하기 때문에 시간이 몇 배로 오래 걸렸다.

결국 프로젝트는 미완성인 상태로 끝내야 했다. 주말에 생각이 나거나 좋은 방법을 찾을 수 있었으면 좋겠다.

코딩 마스터

오늘부터 정렬에 대해 배운다. 지난 주 아이효 스터디 때 정렬에 대한 이야기가 나왔을 때 몰라서 헤맸는데, 드디어 배우나 보다. 어제 예습을 하느라 힘들었다. 한 장을 모두 예습하라고 해서 이해가 안 되는 코드는 넘어가고 내용만 살펴보았다. 하지만 각 정렬의 방법에 대해서 계속 혼동되었고, 왜 여러 가지 정렬을 배워야 하는지, 그리고 왜 그런 식으로 구현을 하는지 등에 대해 궁금증이 생겼다.

코딩 마스터 시간에는 다행히 5개의 정렬(순차, 선택, 삽입, 병렬, 퀵, 이분 정렬) 중 앞의 3개만 나갔다. 책에서는 키 순서대로 세우기를 예를 들었는데, 순차는 말 그래도 앞에서부터 비교해가면서 정렬하는 것이고, 선택은 가장 키가 작은 사람을 뽑고, 그 다음 키가 작은 사람을 뽑는 식으로 정렬을 한다. 삽입은 아무나 한 명을 뽑아 기준으로 삼고, 다음 사람은 처음 뽑힌 사람보다 크면 그 뒤에, 작으면 그 앞에 세운다. 그 다음에 뽑힌 사람은 키 순서대로 정렬된 사람들과 키를 비교하여 그 사이에 삽입한다. (설명이 조금 애매한 것은 제대로 이해가 잘 가지 않기 때문이다.)

여러 정렬 방법을 한 번에 배우고 구현 방법을 이해하려다 보니 앞에서 했던 것을 잊어버려서 다시 봐야 하고... 이런 과정을 몇 번 거쳤다. 구현한 코드를 이해하는 것조차 어려워서 하나씩 결과를 찍어보면서 이해해야 했다. 그러나 왜 그렇게 구현해야 하는 것인지는 아직 잘 모르겠다.

코딩 마스터 때 어쩌다 보니 발표를 2번이나 했다. 돌림판을 돌렸는데, 우리 조만 2번이나 걸렸다. 어제부터 나만 걸리는 느낌이다.

다행히 코딩 마스터 숙제가 연습문제이고, 수업이 일찍 끝나서 숙제를 시간 안에 마칠 수 있었다. 예습도 미리 해놨으니 다음주에는 발표 준비에만 신경쓸 수 있다!

수업을 마치고

지시머 스터디 준비를 하려고 강의를 듣는데, 자꾸만 잠이 들어서 10분짜리 강의를 1시간 넘게 들어야 했다. 강의가 이해가 잘 되지 않는다. 듣고 있어도 전체적인 그림이 보이지 않으니 큰 일이다. 우선은 듣고 나중에 다시 보면 이해가 될까?

오늘 스터디에서는 Gradient 방법에 대해서 배웠다. Logistic Regression에서 θ\theta를 최적화하는 방법을 찾기 위해 Gradient 방법을 써야 한다고 한다. CS231n에서 배웠던 방법과 달리 테일러 급수를 사용해서 Gradient를 구하는 방법을 써서 이해가 잘 되지는 않았다. 그래도 Y님께서 설명을 자세히 해주셔서 조금 이해가 갔다. 오늘의 스터디는 강의 내용보다도 수학적인 내용이 대부분이었다. (코딩 마스터 때 Y님께서 잠깐 설명해주신 부분과 겹치는 내용도 있어서 조금 더 쉽게 이해할 수 있었다.)

스터디가 끝나고는 말 그대로 쓰러졌다. 손 하나 움직일 수 없어서 가만히 누워 있었다. 할 일은 많지만 그냥 쉬고 싶은 날이었다.

0개의 댓글