Private

새로운 한해를 맞이하며

shhyun 2018. 1. 3. 00:21

2017년도는 여러모로 많은 변화가 있었다.
대부분이 내가 원해서, 혹은 내 의도로서 변화가 있었던 것이 아니라, 타인에 의한 다양한 변화가 있었다는 것이 아쉽지만, 그래도 많은 부분에서 달라진 것들이 있어서 나름 괜찮은 한 해 였던 것 같다.

작년 한해 동안에 배웠던 것들, 학습했던 것들, 써먹었던 것들을 대략 정리해보자면...


1. Many-objective Optmization

- 로봇 쪽 튜닝하는 분야에 적용 가능성 확인, 실제 툴 구현 완료지만 최종 테스트 및 검증 작업 필요

- 내부 지원만 적절한 시기에 되었더라면, 작년에 완전히 끝났겠지 하는 아쉬움이 남음

- 검토내용 중 특이점은 모든 목적함수가 독립적이지 않은 상태에서 Many-objective 를 적용하는 것이 효율면에서 Multi-objective 적용(weighted sum 으로 독립적이지 않은 목적함수를 표현)하는 것 대비 우수할 수 있느냐에 대한 부분


2. Atomic

- 반복성이 강하면 강할수록 lock을 거는 행위 대비 급격한 속도에서의 이익을 얻을 수 있음

- 대학원 시절에 The art of multiprocessor programming 을 통해 java 를 사용하여 맛을 봤던 내용이지만, c++ 에서 지원하는 것을 보고 다시 내용을 정리하고 결과 검토 및 확인

- lock-free, wait-free 에 대한 명확한 이해가 수반된다면, 응용단에서는 mutex 를 굳이 이용해야할 필요가 있을까?


3. Variational Autoencoder

- 어떤 계기로 인해 전혀 모르는 내용인데 밑바닥부터 살펴보느라 고생좀 했음

- 이걸 이용해서 Anormaly Detection 부분에 적용할 수 있는 초안에 해당하는 부분의 구현을 완료함.

- 로봇 데이터를 사용하여 네트워크를 설계하고 학습 가능성도 확인하고, 그걸로 고장 예지 가능성도 어느정도 체크함.

- 다만, 실질적 적용 및 여러가지 다른 수 많은 문제들이 있다보니 그냥 연구선에서 멈추는 걸로...


4. Tensorflow

- 여전히 전문적으로 쓴다라고 하기에는 부족하지만... 그래도 필요한 게 있으면 만들어서 쓰고, 결과 보고 하는데는 부족함이 없음

- deep learning 관련된 기술로 실질적 적용을 위해 대규모 커스터마이징을 하거나 한다면 모르겠는데, 아직은 그저 네트워크를 설계하고 시험해보고 하는데 있어서 그렇게까지 규모가 있는 코딩을 할일이 없다보니 그렇다고 위로중...

- 물론, 이게 위로가 될지 아닐지는 올해는 알겠지...


5. design-pattern review

- c 코드로 작성되어 있는 legacy code 들을 c++ 로 refactoring 하는 과정에서 일부 state-machine 이나 observable 한 변수들에 대한 재설계를 진행하면서 design-pattern 을 다시 한번 살펴보게됨

- 최근에 주로 c 코드를 작성하다보니, 한동안 class 다룰 일이 없어서 익숙해진게 결국 함수포인터 였는데, 다시 c++ 로 뇌세포를 이동시키느라 고생함...

- c와 c++ 은 엄연히 다른 언어라고 생각하는게 맞다고 생각하는 1人으로서, c++을 사용하여 c코드처럼 코딩하는 것은 지양하고자하여 다시 리뷰시간을 갖게됨...

- 결론적으로 뇌가 썩진 않았음...


큰 카테고리에서 deep learning, optimization, programming 3가지 카테고리에 대해 지속적으로 학습/적용이 이어지고 있는 것 같아서 나름 괜찮은 한해라고 자평하지만...

아쉬운 부분은 이제는 회사를 옮기게 되었다는 것, 그리고 뚜렷한 product 를 완성하지 못했다는 것.


2018 년도 목표로 생각하는 것은


1. GO 언어

- GO 언어를 처음 보게 된 계기는 병렬처리때문임...

- 근데 GO 언어의 디자인 컨셉이나 이런걸 보고, 간단한 crawler 프로그램 만들어서 사용해봤는데, 우와... 이거 좋다.

- 문법적 어색함은 시간이 해결해주리라 생각하고, 올해에는 이걸 사용해서 genetic programming 코드를 구현해 보는 것이 목표

- 위 목표는 순수 학습 목적이라 아마 한달안에 하지 않을까...


2. tf, pytorch

- 사실 예전부터 torch 유저였음...

- lua 를 주위 사람들이 의외로 싫어해서... tf 를 울며 겨자먹기로 배우긴 했는데...

- pytorch 등장 이후에 사람들이 torch 를 다시 보게 된 것 같기도 하고... 근데, 아직 잘 모르겠다.

- 분명 python 으로 옮기는 데에서 모든게 끝은 아니었을테니까... 여기에 대해 자세히 보고 싶다.


3. 새로운 회사에 대한 적응

- 회사를 옮기게 된 계기 중 하나는 결국 분야에 대한 문제

- 산업용 솔루션 개발이라는 것이 갖는 장점은 다른 개발 과정헤 비해 높은 수준의 신뢰성을 요하기 때문에 개발프로세스가 복잡하고 시간이 길다는 것인데, 사실 난 여기에 잘 안맞는 사람인 것 같다.

- 새로운 것들을 배우고, 적용해보고 다른 방향으로 발전도 시켜보고, 완전히 새로운 이론들, 기술들 끼리 융합도 해보고 뭐 이런 것들이 잘 어울리는 것 같다.

- 새롭게 가는 회사는 속도가 꽤 중요하게 여겨지는 회사 인 듯 하니... 거기에 맞게 적응하고자 하는 것이 나의 개인적인 목표


여유가 될지는 모르겠지만... 2018년도을 새롭게 맞이하면서... 다시 하나둘 씩 글을 써내려갈 수 있었으면 좋겠다.

지난번 회사에서는 너무 폐쇄적인게 많아서 활동 자체를 아예 할 수 없었던 게 함정...