본문 바로가기
Life/Pause and Ponder

2021 January: Pause

by zxcvber 2021. 2. 1.

작성 후기

  • 사실 간략하게 작성할 생각이었는데 뭐 했나 돌아보며 쓰다 보니 내용이 길어졌다. 생각 안 나는 것들도 많은데 2월에는 좀 매일 짤막하게라도 뭔가를 기록으로 남겨야 할까?
  • 정리 안된 의식의 흐름 주의

1월에는 무엇을 하고 지냈는가?

회사 제품 출시 기념(?)으로 12월 마지막 주부터 1월 3일까지 10일 정도 쉬기는 했는데

이후에 엄청난 후폭풍이 몰아칠 줄은 몰랐다. 분명 새해 버프를 받아서 야심 차게 시작했는데, 삐그덕 거리더니 바로 터져버렸다. 컴퓨터 프로그램처럼 지웠다가 다시 설치하고 싶다. 정 안되면 껐다가 켜보던가?

회사 일 이야기는 생략. 이제 회복기가 끝난 것 같고, 2월부터는 본격적으로 일을 다시 시작한다.

 

일단 확실히 집이랑 회사만 왔다 갔다 한 듯하다. 코로나 3차 여파가 지속되던 가운데 확진자는 너무 많았고, 일 때문에 심란해서 특별히 누구를 만나지도 않았다.

회사 분들의 심신이 지쳐 Minecraft Realm 서버를 열어 몇몇 회사 분들과 현실으로부터 도피하며 게임을 즐겼다. 게임 속에서 농사를 하고 채광을 하는 재미가 좀 있는 듯. 근데 이러다 보니 YouTube 에서 Minecraft 영상을 찾아보게 되어서 은근 시간을 좀 날린 듯하다. 따지고 보면 어차피 정신 상태가 정상은 아니었기 때문에 이거 아니더라도 시간은 날렸을 것이다. 공부가 손에 안 잡혔다.

zxcvber 가 나다. [MASK] are you? 언제나 유쾌한 사람들.


Stanford CS 242: Programming Languages 강의 자료를 읽다가 ‘이게 지금 당장 나에게 필요한 건가?’라는 생각이 들어서 자료를 다 지워버렸다. 하지만 재미있고 공부하고 싶은 분야이긴 하니 나중에 학교에서 수업으로 듣거나 더 좋은 자료로 확실하게 해야겠다.

손글씨 숫자 판별기

이외의 공부는... CNN 쪽을 아주 조금 했다. Python 으로 구현했던 CNN 을 다시 한번 보고 학습한 모델을 직접 서버에 배포했다. 그리고 UI는 적당히 인터넷에서 찾아 Bootstrap 을 입혀 간단한 ‘손글씨 숫자 판별기’를 만들었다. 모델이 overfitting 된 감이 좀 있어서 정확도가 좀 떨어지는데 아무튼 동작한다. 딥러닝 잘 모르시는 비전공자 분들이 신기해하셨다.

주인을 닮아서 나사가 하나 빠져있다.

얘는 backend 서버를 적절한 framework 로 다시 구현할 필요가 있고 (지금은 python toy server 수준) 생각보다 틀리는 경우가 많아서 parameter 재 학습을 하거나, 다른 방법으로 해결할 생각이다. 예를 들면, 만약 추론이 틀렸을 경우 사용자로부터 정답을 입력받아 input 과 label 을 서버에 저장해 둘 생각이다. 실 서비스가 아니기 때문에 쌓이는 데이터가 많지는 않을 테니, 새로운 데이터에 오류가 없는지 직접 판별한 후 해당 데이터로 추가적인 학습을 하는 continual learning pipeline 을 구성해보면 어떨까 싶다. 

그리고 이거 docker 로 말아서 올려야 하는데! 시도했지만 계속 에러만 나서 잠시 미뤄뒀는데 해야 한다! 할게 많다.


Deep Learning with Julia

또 Julia 가 더욱 떴으면 하는 개인적인 바람에서, Python 으로 구현한 CNN을 Julia 로 옮기고 있다. 새로운 언어다 보니 프로젝트를 어떻게 구조화할지 애매해서 고민을 참 많이 했다. 그리고 적합한 라이브러리를 찾는 것도 일이었다.

함수 정의를 상당히 깔끔하게 할 수 있다.

Parameter 를 파일로 저장해야 하니 (pickle 과 비슷한 역할을 하는) JLD2 라는 serialization library 를 찾아야 했고, MNIST dataset 을 다운받아 모델에 input 으로 넣을 수 있는 상태까지 전처리해 뒀다.

현재는 3개의 affine layer 로 이뤄진 간단한 모델을 구현해 뒀다. 그리고 pre-trained parameter 로 test dataset 에 대해 accuracy 를 구했을 때 92.04% 를 얻어 Python 구현 버전과 일치하는 것 까지 확인했다.

아직도 구현할 것이 태산이다.

 

하나 신기했던 점이 있는데, Julia 와 Python 의 array resize 동작 방식이 달랐던 점이다. Python 은 resize 시 row-wise 로 수행하는데 Julia 는 column-wise 로 수행해서 Julia 에서는 이미지 데이터를 ‘사람이 보기 편하게’ 하려면 한번 transpose 해줄 필요가 있었다.

[1, 2, 3, 4] 를 resize(2, 2) 한다고 하면 Python 은 [[1, 2], [3, 4]] 가 되지만 Julia 는 [[1, 3], [2, 4]] 가 되더라.

(사진 추가 예정)


접지 못하는 알고리즘

그리고 회사에서 동료분이 알고리즘 공부를 하신다고 해서 같이 탑승했다. LeetCode 의 문제들을 시간이 날 때 풀어볼 생각이다. 목표는 1일 1문제 풀기인데 1일 1 백준은 오래 지속해 왔어도 LeetCode 문제들은 좀 고민을 많이 해야 해서 가능할지 확신은 없지만 일단 하는 데까지는 해볼 생각이다.

Median of two sorted arrays 를 \(\mathcal{O}(\log (n+m))\) time 에 구하는 코드를 짰는데 놀랍게도 한 array 의 size 가 0인 경우가 존재해서 따로 처리하다가 길이가 짝수인 경우에 * 0.5 를 하지 않고 아무 생각 없이 / 2 를 해버리는 바람에 1번 틀렸다;;

LeetCode 는 참 신기하다. Implement strStr() 문제는 분명 easy 로 분류되어 있는데 discussion 탭에 들어가 보면 사람들이 KMP를 짜고있다 ㅋㅋㅋㅋㅋㅋㅋ 나는 그냥 str.find() 한 줄로 풀었다. 아 ㅋㅋ 이거 그렇게 하는 거 아님


7년 만에 다시 찾은 피아노

마지막 주쯤에 회사 동료 분께서 피아노 학원을 등록했다고 하셔서, 집 근처 피아노 연습실을 알아봤다. 갔더니 어느 정도 치냐고 원장 선생님께서 물어보시길래 쇼팽 흑건 친다고 했더니 그랜드 피아노에서 바로 쳐보라고 하셨고, 그랜드 피아노를 오랜만에 치는 내 입장에서 미스터치가 많이 날 수밖에 없었다. 음이 줄줄 샌다. 이 빠진 흑건... 그래도 잘 친다고 해주셨고 (감사합니다) 본인은 성악 전공이라 레슨 해주지는 못하고 음대생으로 선생님을 알아봐 주시겠다고 하셨다.

이후에 2번 정도 더 연습하러 갔고, 하농을 열심히 쳐서 손가락 힘을 약간(!) 회복했다. 요새 피아노 치는 게 인생의 유일한 낙인 듯. 연습실 등록하기 전에는 회사에서 피아노 자주 쳤고, 일요일에 피아노 치러 회사에 가기도 했다. 가서 3시간 동안 쉬지 않고 쳤다. 피아노 치면 요새 시간이 너무 잘 간다.

영상 올리려면 카카오 TV 써야 하던데 광고가 많이 나오는 관계로 연주 영상은 올리지 않겠다.


독서

책은 목표했던 대로 2권 읽었다. <코로나 투자 전쟁>, <유시민의 경제학 카페>를 읽었다. 전자는 그냥 그랬고… 후자는 재밌었다. 근데 읽어보니 옛날 책이더라. 2000년대 이야기가 좀 많았다.

다음 달 읽을 책은 <Sapiens> 이다. 원서다. 그리고 길다. 과연 14일 안에 다 읽을 수 있을지? 자신이 없어서 미리 읽기 시작하긴 했는데 최대한 노력은 해봐야겠다. 못 읽더라도 분량과 원서인 것을 감안하면 참작이 가능할지도 ㅎㅎ. (그런데, 원래 자기 자신에게 엄격해야 하는 법이다. 어림도 없다.)


체력 관리

운동은 적당히만 했다. 이틀에 한 번씩 집에 있는 사이클링 기계로 30~40분씩 페달을 밟았다. 대략 소모한 칼로리가 200 쯤 되면 멈췄다. 하면서 YouTube 를 보거나 음악을 듣는 건 덤.


2월에는 무슨 일이 일어날까? 사실 개인적으로는 폭풍 같은 1월이었기에 2021년이라기보다는 2020년 15월쯤 된 느낌이었다 좀 조용히 살고 싶다.

한 것도 별로 없이 날려버린 1월이지만, 아무튼 지나간 시간은 지나간 거고 2월을 열심히 살아나가야 한다. 시간을 효율적으로 사용해보기로 하자. 특히 나에게 당장 무엇이 필요하고 필요하지 않은지 명확하게 구분하여 ‘가지치기'를 해야 할 것 같다. 내 집중력을 분산시키는 필요 없는 것들은 과감하게 가지치기해야 한다.

 

1월에 날린 시간이 아깝다고 생각했는데 양심이 있으면 2월에는 열심히 살아야지.
양심이 있는지 없는지는 결과가 말해줄 것이다. 

 

'Life > Pause and Ponder' 카테고리의 다른 글

2021 September ~ October  (0) 2021.11.02
2021 July ~ August  (0) 2021.09.06
2021 June  (0) 2021.07.05
2021 April ~ May  (0) 2021.05.30
2021 February ~ March  (2) 2021.04.05
2020 Year Review  (4) 2020.12.31

댓글