전체 글 66

GIL. python

파이썬으로 고성능의? 아니 병렬화된 어떤 코드를 개발할 때, 항상 걸림돌이 되는 요소가 GIL(Global Interpreter Lock) 이다. ML 관련된 다양한 일들을 하면서, 파이썬이 상당히 각광받고 있는 것도 사실이지만, 반대로 이걸로 서비스를 개발하려고하면, 당면할 수 밖에 없는 문제가 바로 GIL 이다. 어? 근데 파이썬도 스레드를 지원하잖아요? 라고 묻는다면, 그 스레드가 여러개가 동시에 동작하더라도, 결국엔 하나의 스레드만 파이썬 오브젝트에 접근할 수 밖에 없기 때문에, 사실상 Single-threaded 프로그램과 다를 바 없으며, 그래서 원한만큼 효율을 높이는 데에는 한계가 있음을 알 수 있다. 이러한 특징으로 파이썬에서는 병렬화된 프로그래밍을 한다고 하면, 프로세스를 늘리는 형태로 ..

serving, pytorch.

꽤나 오랜만에 글을 쓰는 것 같은데, 참 오랫동안 ML 관련된 일을 하고 있다. 개인적으로는 backend, bigdata 관련 개발자이기도 하고, ML 을 오랫동안 하고 있다는 것 때문에 최근에 많이 요구하는 일들 중 하나가 serving 이다. serving 이 뭔데? 라고 물으신다면, scikit-learn/tensorflow/pytorch/mxnet 등등.. 다양한 ML 로 만들어진 Model을 서비스로 제공하는 방법을 말한다. 사실 scikit-learn 같은 경우엔 별 문제가 없다. scikit-learn 은 좀 헤비하다고 해도, 가벼운 수준이라 flask 같은 걸로 api 만들고, call 하면 그만이고, GPU 자원을 사용하는 것들도 없거나, 적어서 flask 만을 사용해도 별 무리가 없다..

kalman filter, extended kalman filter, unscented kalman filter...

kalman filter는 대부분 잘 알고 있고, 대단히 많은 내용들이 알려져 있기 때문에 핵심이 되는 내용 몇 가지 내용만 기록해두려 한다. wiki 나 다른 자료들을 보면, kalman filter가 prediction과 update라는 두 개의 흐름 구조를 갖고 있는 것을 쉽게 알 수 있다. 대체 prediction 과 update 는 어떤 원리를 기본으로 두고 하게 되는 것인가? 1. gaussian kalman filter 의 update 는 bayes rule 을 기본으로 product 의 성질을 갖고 있다. 또한, prediction 은 convolution 연산에 해당(사실상 덧셈)하며, total probability 을 계산한다. 사실 이렇게 말로 써놓으면 뭔 말인가 싶은데, 그림으로 ..

Research/Robotics 2018.04.22

hdf5 cmake in ubuntu

쉬운건데, 이상하게 매번 걸리적거리고 피곤하게 처리하는 내용이라 정리해놓는다. 1. 아래 홈페이지에서 Preconditions에 Windows/Unix 링크 다운https://support.hdfgroup.org/HDF5/release/cmakebuild.html 2. 어딘가에 압축 풀어놓기.. or 설치 3. HDF5-1.10.1-Linux.sh 실행 여기까진 뭐 그냥 쉽게 잘 간다. 마무리로 .bashrc 든 윈도우 환경이든HDF5_DIR=뭔가설치된 폴더/cmake 지정example) export HDF5_DIR=/usr/local/HDF_Group/HDF5/1.10.1/share/cmake 위에 HDF5_DIR 지정해주면, cmake 에서 hdf5 에 대한 내용들을 인식하여 처리할 수 있다.

update.

글을 안쓰고 있는 것은 아닌데, 대부분 일하고 관계가 있는 내용들이라 비공개로 작성 중이다. 어쩌다보니 꽤 오래전에 했었던 일들을 다시 꺼내야하는 일들이 계속 생기고 있는데, 차라리 그런 내용들은 하나씩 오픈하면서 내용을 같이 업데이트 하는 것도 괜찮지 않을까 싶다. 하나씩 꺼내보자면, 1. extended kalman filter 2. reinforcement learning ( including deep- ) 3. multi-objective optimization ( especially evolutionary algorithms ) 왠지 예감에는 비공개로 써놓은거 하나씩 오픈해도 될 것 같다. 깊은 내용은 아니지만...

Private 2018.03.14

새로운 회사, 새로운 기분

누가 그러더라. 이직할때 중요한 부분은 기존 회사에서 본인이 갖고 있었던 불만 사항에 대해 해소가 가능한지, 나머지 부분이 더 좋아지는 부분이 있을지를 잘 생각해봐야한다고. 그래서 정리해보기로 생각했다. 나는 대체 무엇이 불만이어서 회사를 이직하고자 했는가? 1. 업무 특성기존 회사는 산업용 로봇을 만드는 회사로서, 고 위험군에 속하는 산업용 솔루션 연구 개발이 주요 업무가 된다. 여기서 산업용 솔루션이라함은 24시간 쉬지 않고 가동되어야 하며, 오작동 시에 인명에 피해를 입힐 수 있는 특징이 있다. 그로 인하여 대부분의 업무가 몇 년에 걸쳐 검증이 완료된 것들이 아니면 연구 개발을 진행하기 꺼려하며, 이러한 특징으로 개발에 사용되는 대다수의 기술들이 사실 2010 년 이전에 개발이 완료된 기술 들이다...

Private 2018.01.14

새로운 한해를 맞이하며

2017년도는 여러모로 많은 변화가 있었다. 대부분이 내가 원해서, 혹은 내 의도로서 변화가 있었던 것이 아니라, 타인에 의한 다양한 변화가 있었다는 것이 아쉽지만, 그래도 많은 부분에서 달라진 것들이 있어서 나름 괜찮은 한 해 였던 것 같다.작년 한해 동안에 배웠던 것들, 학습했던 것들, 써먹었던 것들을 대략 정리해보자면... 1. Many-objective Optmization- 로봇 쪽 튜닝하는 분야에 적용 가능성 확인, 실제 툴 구현 완료지만 최종 테스트 및 검증 작업 필요- 내부 지원만 적절한 시기에 되었더라면, 작년에 완전히 끝났겠지 하는 아쉬움이 남음- 검토내용 중 특이점은 모든 목적함수가 독립적이지 않은 상태에서 Many-objective 를 적용하는 것이 효율면에서 Multi-object..

Private 2018.01.03

Many-objective problem

최근에 Multi- 혹은 Many-objective 에 대한 연구를 진행하고 있다. 회사에서 필요한 부분도 있지만, 오랫동안 개인적으로 연구해오던 테마이기도 하기 때문에, 꽤 많은 자료를 다시 살펴보고 연구를 진행하고 있다. 만약, 목적함수의 개수가 하나라고 가정하자. 이 경우에는 최소 혹은 최대라는 하나의 값으로 수렴해나갈 수 있다. 그러나 Trade-off 관계에 있는 2개의 목적함수를 사용할 경우에 한쪽이 상승할 경우, 필연적으로 다른 한쪽은 낮아질 수 밖에 없다. 만약 3개 이상의 목적함수가 각각이 상보적인 관계일 경우, 값의 방향성을 어떻게 잡아가야 하는 지는 더욱 모호해질 수 밖에 없다. 이러한 문제들에 대한 보편적 접근 방식은 Weight 를 적용하여 목적함수에 대한 가중을 두어 수렴시키는 ..

진화 연산의 한계

진화 연산은 여러면에서 매력적입니다. 공간에 대한 분포를 잘 모르고, 문제정의만 하면 왠만큼 해를 구할 수 있다는 것이야 말로 엄청난 매력이라 할 수 있죠. 복잡한 수학이 들어가 있지도 않고, 알고리즘만 이해할 수 있으면 누구나 쉽게 구현하고 접근할 수 있습니다. 이런 장점으로 많은 사랑을 받아왔죠. 그러나 이 부분이 진화 연산의 장점이면서 동시에 한계입니다. Evolutionary Strategies 나 기타 Covariance Matrix Adaptation 기법 등이 나왔지만, 여긴 수학의 영역에 약간의 진화연산의 Mutation 의 기법이 들어갔다고 보는게 맞을 것 같습니다. 또는 Mutation 이라는 것이 확률적이라 표현하는 확률의 기법이 들어갔다고도 볼 수 있겠네요. 거의 Random 에 가..

Research/Others.. 2017.04.24

이전 글들을 다시 정리하면서...

#1. 대학교/대학원 시절에 전공으로 일반적으로 잘 연구하지 않는 진화연산(Evolutionary Computation)과 로보틱스(Robotics)라는 분야를 선택하게 되었습니다. 그러다보니 혹시라도 있을지 모르는 같은 분야를 연구하는 누군가를 찾아보기 위해, 그리고 그 당시에 그런 분들과의 교류를 위해 한창 블로그에 공부하던 여러가지 내용들을 정리하고 있었습니다. 회사에 들어가고 나서, 한번 내용들을 전체적으로 다시 정리해서 하나씩 꺼내야지 마음 먹었던게 벌써 5년이 지났지만, 이것저것 일들에 시달리고 나니, 그럴 엄두가 안나고 있습니다. 그래서 옛날에 썻었던 글들을 다시 카테고리로 정리하여, 그냥 옛날 내용 그대로 공개하려고 합니다. 어쩌면 상당히 오래된 이야기이고, 전혀 쓸모없는 고대의 유물일 수..

Private 2017.03.22