본문 바로가기

전체보기198

Belief Propagation # Belief PropagationAcyclic PGM 모델을 학습하여 MLE나 MAP를 수행하기 위한 알고리즘이다. Cyclic PGM의 경우 수렴성이 보장되지 않고, 계속 확률분포가 진동하지만, Acyclic한 경우 수렴성이 이론적으로 증명되었다고 한다.어떤 임의의 parametric PGM모델을 Acyclic하게 만들고, 이것의 파라미터를 MLE나 MAP에 대해 최적화 하기 위해 각 그래프에서의 Node가 자기와 연결된 주변 Node로 Belief Propagation을 시키고, 이것들이 모여서 1번의 학습이 이뤄진다. 이러한 Belief Propagation을 계속해서 iteration하면서 학습을 수행하게 된다. 기본개념: https://en.wikipedia.org/wiki/Belief_pr.. 2018. 1. 5.
Thompson Sampling, Multi-armed bandit, Contextual bandit # Multi-armed bandit(=K-armed bandit) 여기서 armed는 action이고, K는 action의 개수를 의미함.- Multi-armed bandit = One-state MDP one-state MDP란 것은 state가 1가지로, 항상 고정된 상태를 의미함. 즉 state가 변하지 않기 때문에 이는 곧 state를 무시한다는 말과 동일함. 한마디로 state가 없는 MDP임 # Contextual bandit(=Associative Search) Multi-armed bandit에서 한발 나아가, context를 given condition으로 받아서 문제를 확장한것임. 이때 context는 state와 다른데, 원래의 MDP에서는 Transition probability에.. 2018. 1. 5.
Mac에서 압축한 파일의 제목이 깨질 때 Mac에서 압축한 파일을 window에서 압축 해제했더니 파일 제목이 깨질 때winarchiver lite를 사용해서 압축하면 됨 (압축할 때 setting에서 Korean window옵션 선택) 2017. 12. 18.
PPT로 포스터 인쇄하기 / 그림파일 추출하기 # A0 사이즈의 고해상도 출력물을 PPT로 만들어 인쇄할 때 주의사항.우선 [파일-옵션-고급-인쇄]에서 다음과 같이 체크박스를 할 것.https://m.blog.naver.com/PostView.nhn?blogId=radiobj5&logNo=220108065742&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2Fhttp://powerpoint.pe.kr/220079391846https://support.office.com/en-us/article/PowerPoint-Options-Advanced-bdbee278-4984-4c7d-88ad-6f493bd18343?omkt=en-US&ui=en-US&rs=en-US&ad=US # 시행착오 과정 PPT를 PDF로 변환하는 것.. 2017. 11. 14.
Ubuntu 여러 에러 잡기, 설치 # apt-get install 팁1) apt-get update를 하면, 등록해둔 주소에서 패키지 리스트를 가져온다2) 아래와 같이하면 등록을 할 수 있다.(tee라는 명령어로 /etc/apt/sources/list파일 뒷부분에 이어쓰기한것)echo "deb https://dl.bintray.com/wangzw/deb trusty contrib" | sudo tee /etc/apt/sources.list 3) 또는 설치파일인 deb를 직접 curl로 받아서, dpkg로 아래와 같이 설치할 수도 있다.curl -O http://kr.archive.ubuntu.com/ubuntu/pool/main/p/protobuf/libprotobuf8_2.5.0-9ubuntu1_amd64.debdpkg -i libpr.. 2017. 9. 6.
Git pages # Github Pages: https://imcomking.github.io/Markdown의 생산성과 효율성을 활용하기 위해 이제부터 Git pages를 이용해 블로그를 포스팅해보려고한다. # 쉽게 만드는 방법 이미 누군가 잘 만들어둔 기본 git page를 fork해서, 그대로 활용하면됨.http://thdev.net/653 https://github.com/gjchoi/gjchoi.github.io # 심지어이 사람이 만든 git에서 fork된 모든 git들이 다 공개되어 있어, 이중에서 아무거나 마음에드는 것을 골라서 가져와서 시작할수가 있다. 진정한 오픈소스.. https://github.com/barryclark/jekyll-now/network/members # 이미지 업로드 쉽게하기 is.. 2017. 8. 23.
Github Markdown 사용법 마크다운은 매우 편리하게 문서를 작성해 주는 도구이다. 특히 github 문서를 작성할 때 매우 용이하며 다음과 같은 기능을 제공한다. 참고로 underline은 존재하지 않는데, 그 이유는 아마도 hyperlink랑 구분하기 위해서로 추정된다. # 큰 제목## 그다음 큰 제목### 그다음 큰 제목....###### 제일 작은 제목 - 글머리기호1. 숫자 기호 하이퍼링크(단축키 컨트롤+k): [GitHub](http://github.com)엔터 2번: 문단나누기 (띄어쓰기를 넣으면 안됨)*기울기***굵게*****기울고 굵게***~~취소선~~ 다른 github issue 태깅하기 : # 하고 선택해서 태깅 space 3번( ): 문단 들여쓰기(Indentation) > : 이메일 스타일 문단 인용 *** .. 2017. 8. 21.
Precision Recall AveragePrecision # 컨퓨전 매트릭스 - True/False: 모델이 잘했느냐 못했느냐를 의미함. 즉 True이면 모델이 정답을 맞췄다는 의미이고, False이면 모델이 정답을 틀렸다는 의미이다. - Positive/Negative: 모델이 예측한 값이 True였나, False였나를 의미함.http://www.dataschool.io/simple-guide-to-confusion-matrix-terminology/ - TP: 모델이 1이라고 예측(P)했고, 그 예측이 맞았음(True, 정답을 맞춤) 즉, 이 경우에 실제 정답도 1임 - TN: 모델이 0이라고 예측(N)했고, 그 예측이 맞았음(True, 정답을 맞춤) 즉, 이 경우엔 실제 정답이 0임 - FP: 모델이 1이라고 예측(P)했고, 그 예측이 틀렸음(False,.. 2017. 5. 31.
Jupyter Notebook # Jupyter와 IPython의 관계: 원래는 Jupyter와 IPython은 하나의 프로젝트 였음. 근데 notebook이 엄청 흥하면서 점차 프로젝트의 규모가 커졌음.이에 Python이 아닌 다른 언어를 지원하기시작하고 더 잦은 업데이트가 필요한데 규모가 너무커서 힘들었음.그래서 3.0버전까지는 하나의 통합된 IPython만 존재했는데, 이제부터는 쪼개서 jupyter라는 거대한 통합 플렛폼안에 소속된 프로젝트로 IPython이 들어가는 형식으로 쪼갰음.(즉 여러 언어중에 하나로 Python도 지원한다.)http://blog.jupyter.org/2015/04/15/the-big-split/ 현재 최신 jupyter notebook은 5.0 버전임. https://github.com/jupyter.. 2017. 5. 23.
Coefficient of Determination(결정계수), R^2(R square) 결정계수 = Coefficient of Determination = R^2 = R squared - Regression model의 성능을 측정하기 위해 mean value로 예측하는 단순 모델(Zero-R 모델)과 비교, 상대적으로 얼마나 성능이 나오는지를 측정함. (다른 성능 지표인 RMSE나 MAE는 데이터의 scale에 따라서 값이 천차만별이기 때문에, 절대 값만 보고 바로 판단하기가 어려움.) ( 보통의 경우 0 2017. 5. 22.
Computer Vision Techniques Superpixel이미지 segmentation에서 사용되는 방법으로, 기계학습관점에서 직관적으로 설명하면 한마디로 RGB색상에 대해 K-means 클러스터링을 하는 것이라 말할 수 있다. 예를 들어 포토샾에서 영역선택 툴을 사용하는 것과 동일한 메커니즘으로, SLIC라는 방법에서는 K-means의 변형을 사용한다. 물론 이외에도 graph-based 기반의 superpixel 알고리즘도 존재한다. 각 superpixel 클러스터의 크기는 평균적으로 비슷하지만, 다를 수 있다.https://infoscience.epfl.ch/record/177415/files/Superpixel_PAMI2011-2.pdf Lab Color spaceLab Color space는 XYZ 색 공간보다 균일한 색 체계를 목표.. 2017. 3. 15.
Decision Tree 계열 알고리즘 - 랜덤포리스트는 feature space를 랜덤하게 쪼갠다음, 쪼개진 sub feature space를 다시 디시전 트리를 이용해 격자 형태로 분류한다. 학습이 끝나면, 학습된 디시전 트리를 앙상블하여 최종 inference에 사용한다.즉 추론할 때에는 데이터를 모든 디시전 트리에 집어넣고 클래시피케이션을 한다음, 각각의 분류 결과를 majority voting 하는 방식으로 최종 클래시피케이션. 랜덤포리스트는 앙상블기반의 분류기로, 여러 피처(ex) MFCC 피쳐 409개)중에서랜덤하게 몇개를 추출하여 디시전 트리로 학습한다. 학습은 이런 과정을 N번 반복한 뒤 추론할 때에는 디시전트리를 앙상블해서 한다.이러한 이유로 오버피팅이 적다. Gradient Boosting Tree Gradient Boos.. 2017. 2. 13.
TensorFlow Extreme Performance Tuning 텐서플로우는 잘못사용하면 정말 정말 정말 느리다.기본적으로 주어지는 공식 예제는 속도 최적화를 전혀 고려하지 않은 예제이기 때문에, 내가 아무리 비싸고 좋은 GPU를 사용하더라도 끌어낼 수 있는 최고 성능에 심각한 저하가 발생할 수 있다. 이에 대한 여러가지 분석과 해결법을 정리해본다. 1. GPU Utilization 분석먼저 내가 만든 TensorFlow 모델이 과연 얼마나 최고의 효율로 GPU를 사용해서 돌아가고 있는지 확인하자.그래서 nvidia-smi 혹은 nvidia-smi -a 를 입력하여 Volatile GPU-util 이라는 항목을 볼 수 있는데 이것의 의미는 최근 1 초동안 busy 상태였던 core의 비율을 의미한다. http://stackoverflow.com/questions/50.. 2017. 1. 20.
Python game programming. Pygame + PyBox2D Python으로 2차원 게임 환경을 구현하여 강화학습을 실험하기http://projectlog.ferranfabregas.info/python-box-2d-pygame-demo-bumper-cars/ 1. Pygame : 파이썬 게임 엔진, rendering을 담당한다.(필요에 따라 pygame 대신 opencv나 pyglet등으로 대체 가능)sudo pip install pygame 2. PyBox2D : 파이썬 게임 물리 엔진swig 최신 버전 설치 : http://www.linuxfromscratch.org/blfs/view/7.6/general/swig.htmlsudo apt-get install libpcre3 libpcre3-dev wget https://downloads.sourceforge.. 2017. 1. 16.
On-policy와 Off-policy, Policy Gradient, Importance Sampling # On-policy : 학습하는 policy와 행동하는 policy가 반드시 같아야만 학습이 가능한 강화학습 알고리즘. ex) Sarsa on-policy의 경우 1번이라도 학습을 해서 policy improvement를 시킨 순간, 그 policy가 했던 과거의 experience들은 모두 사용이 불가능하다. 즉 매우 데이터 효율성이 떨어진다. 한 번 exploration해서 얻은 experience를 학습하고나면 그냥은 재사용이 불가능하다.(Importance sampling등을 해야 재사용가능 함.) # Off-policy : 학습하는 policy와 행동하는 policy가 반드시 같지 않아도 학습이 가능한 알고리즘. ex) Q-learning off-policy는 현재 학습하는 policy가 과거.. 2017. 1. 3.
옛날 인공지능 용어 / 최적화이론 관련 용어 옛날 인공지능 용어The Turk : 사람이 로봇인 척하고 체스를 두는 것. Amazon Mechanical Turk도 여기에서 나온 단어임.Automata : 어떠한 임의의 기능을 하는 로봇, 함수, 알고리즘을 의미. 매우 폭넓은 단어Learning Automata : Deterministic MDP에서의 RL알고리즘과 동치임. 구버전 RLAnticipatory System : Environment Dynamics에 대한 model을 가지고 있는 시스템. 즉 Model-based RL같은 느낌임. Cognitive Dynamic System : 인공지능 시스템의 초기 버전? 2006년에 레이더를 어떻게 지능적으로 만들지 제안하였음. ex) 레이더에 의해 포착된 비행체가 새인지 비행기인지 구분해서, 필요.. 2016. 12. 29.
Bagging, Boosting, Bootstrapping Bagging, Boosting, Bootstrapping의 세가지 용어가 기계학습에서 자주 사용되는데, 자주 개념이나 뜻이 헷갈려서 정리해본다. 1. Bagging : Bootstrap Aggregating의 줄임말이다. 그런데 이것의 의미는 먼저 원래 데이터에 대해서 여러개의 작은 데이터셋 N개를 샘플링해서 만든다음, 각각의 데이터를 작은 모델 N개로 학습을 시킨다. 그 다음 학습된 N개의 모델을 모두 하나로 합쳐서 최종적인 모델로 사용하는(bag에 담는 느낌) 방법론을 의미한다.(병렬적으로 데이터를 나누어 여러 개의 모델을 동시에 학습시킴)http://m.blog.naver.com/muzzincys/220201299384 2. Boosting : Boosting은 Bagging과 다르게 먼저 간단한.. 2016. 12. 29.
에어프랑스 항공기 결항건 EU보상 신청 에어프랑스 한국지점 전화번호 : 02 - 3483 - 1033 (10시반~12시 / 2시~3시반) 직접 위의 지점과 통화해서 얻은 항공기 결항 보상 내용을 정리한다. 1. 온라인 접수신청 http://claim.airfrancekorea.com/htm/company/contact_us_serviceAndClaim.asp?sCat=1&sEmail=cs@airfrance.co.kr 이때 접수페이지에는 증빙자료를 원본으로 우편을 통해 보내라고 써있지만, 꼭 그러지 않아도 된다고 한다. 사본으로 그냥 첨부파일로 보내도 된다고함. 그래서 실제로 결항된 항공편에 탔다는 것이 입증되면 보상 규정에 따라 보상을 받을 수 있다. 2. EU 보상 규정 관련 링크http://m.clien.net/cs3/board?bo_st.. 2016. 12. 16.
IP타임 공유기 스위치 허브 모드 스위치 허브 모드 : 공유기를 단순히 포트의 확장으로 사용하기(각 컴퓨터에 할당된 고정아이피 사용) 1. 내부아이피 주소 끝을 1에서 200으로변경2. 인터넷 연결을 끊었다가 재접속3. DHCP중지4. WAN을 빼서 LAN으로 이동5. 컴퓨터의 네트워크를 갱신-고정아이피로 설정변경6. 그럼이제 모든 컴퓨터가 각자 고정아이피모드임http://m.blog.naver.com/michaelrodri/120184371244 2016. 12. 15.
연구용 파이썬 에디터 찾기 : IPython, Notepad++, PyCharm, Atom, Sublime Text 3 서버에 있는 python 코딩을 IPython으로만하다가 한계를 느끼고 PyCharm을 도입하기로 했다. 우선 IPython을 사용해서 웹으로만 하면, 스크립트 코딩시 찾기 기능이 잘 안되고, 한번에 이름을 못바꾸고, 탭키 사용이 제한적인 등 많은 불편함이 있다. Notepad++의 경우 직관적이고 쉬운 사용법이 강점이지만 체계적인 프로젝트 관리와 ssh를 직접실행할 수 없는 단점이 있다. 이에 PyCharm의 경우 제대로 설정만 한 번 해놓으면 거의 모든 작업을 다 할수가 있다. 1) PyCharm 유료/무료 : 유료버젼의 경우 가격이 1년에 90달러로 상당히 비싸다. 그리고 유료(Professional)버전을 사용해야만 원격 서버에 있는 파이썬 코딩을 할 수 있기 때문에 반드시 필요하다. https:.. 2016. 11. 29.