본문 바로가기

전체보기256

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.
Natural Language Processing NLP 기초 # 용어 - consonant: 자음 - vowel: 모음 - morpheme: 형태소, 뜻을 갖는 최소 단위 - syntactic: 문법적인 - semantic: 의미적인 - delexicalization: 3시15분 -> [Time]으로 바꿈 # Beam search greedy 탐색 알고리즘(휴리스틱 탐색)이다. DP가 아니다. 적당히 쓸만한 solution을 구하는 것이다. 빔서치는 # IOB format: token classification(Slot filling)에서 New York과 같든 2개의 word로 된 녀석들을 처리하기 위한 것. - New: B-city - York: I-city 이런식으로 B가 등장하고, 같은 종류의 sub-slot에 해당하는 I slot이 연속해서 .. 2017. 8. 14.
Precision Recall AveragePrecision # 컨퓨전 매트릭스 - True/False: 모델이 잘 맞췄느냐 못맞췄느냐를 의미함. 즉 True이면 모델이 정답을 맞췄다는 의미이고, False이면 모델이 정답을 틀렸다는 의미이다. - Positive/Negative: 모델이 예측한 값이 True였나, False였나를 의미함. http://www.dataschool.io/simple-guide-to-confusion-matrix-terminology/ - TP: 정답을 맞췄고(T), 모델이 1이라고 예측(P)함. 즉, 실제 정답도 1임 - TN: 정답을 맞췄고(T), 모델이 0이라고 예측(N)함. 즉, 실제 정답은 0임 - FP: 정답을 틀렸고(F), 모델이 1이라고 예측(P)함. 즉, 실제 정답은 0임 - FN: 정답을 틀렸고(F), 모델이 0이라고.. 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/jupy.. 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에 따라서 값이 천차만별이기 때문에, 절대 값만 보고 바로 성능을 판단하기가 어려운 반면, 결정계수의 경우 상대적 성능이기 때문에 보다 직관적으로 알 수 있다.) 결정계수(R^2) 구하는 공식 ( 보통의 경우 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 계열 알고리즘 Random ForestRandom Forest는 feature space를 랜덤하게 쪼갠다음, 쪼개진 sub feature space를 다시 디시전 트리를 이용해 격자 형태의 decision boundary를 갖도록 분류한다. 이렇게 학습한 N개의 디시전 트리를 앙상블하여 최종 inference에 사용한다. 즉 추론할 때에는 데이터를 모든 디시전 트리에 집어넣고 클래시피케이션한 각각의 분류 결과를 majority voting(다수결) 하는 방식으로 최종 결정을 한다. 이처럼 랜덤포리스트는 앙상블기반의 분류기이므로 이론적으로, 그리고 실질적으로 오버피팅 문제를 적게 격는다.(물론 decision tree의 개수가 너무 적거나, 개별적인 decision tree의 depth가 지나치게 복잡할 경우 오버피팅.. 2017. 2. 13.
TensorFlow Extreme Performance Tuning 텐서플로우는 잘못사용하면 정말 정말 정말 느리다. 기본적으로 주어지는 공식 예제는 속도 최적화를 전혀 고려하지 않은 예제이기 때문에, 내가 아무리 비싸고 좋은 GPU를 사용하더라도, 저렴한 GPU에 비해 심각하게 느릴 수 있다. 이에 대한 여러가지 분석과 해결법을 정리해본다. 1. GPU Utilization 분석 먼저 내가 만든 TensorFlow 모델이 과연 얼마나 최고의 효율로 GPU를 사용해서 돌아가고 있는지 확인하자. 그래서 nvidia-smi 혹은 nvidia-smi -a 를 입력하여 Volatile GPU-util 이라는 항목을 볼 수 있는데 이것의 의미는 최근 1 초동안 busy 상태였던 core의 비율을 의미한다. http://stackoverflow.com/questions/508681.. 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는 현재 학습하는 polic.. 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.
Windows Subsystem Linux(WSL)에서 TensorFlow 설치 및 실행하기 Windows Subsystem Linux(WSL)이란윈도우의 시스템콜을 우분투와 연결하여, 동시에 2개의 운영체제를 사용하는 가상환경http://www.itworld.co.kr/news/105480 그리고 WSL 1의 느린 파일 엑세스와 드라이버 문제 등을 해결한 WSL 2이 현재 진행형으로 개발중이다.WSL 2 특징 및 설치방법 WSL 1 설치방법- 설정 -> 업데이트 및 복구 -> 개발자용 -> 개발자 모드선택- 제어판 -> 프로그램 -> '프로그램 및 기능'의 'Windows 기능 켜기/끄기' -> 'Linux용 Windows 하위 시스템(베타)' 선택- 재부팅- Microsoft Store에서 ubuntu 16.04를 검색해서 다운로드하고 실행- ubuntu 설치가 완료되면, id와 passwd.. 2016. 11. 21.
Ubuntu 에서의 DNS 서버 구축 총 7대의 slave와 1대의 master로 구성된 클러스터 서버에서 IP주소를 일일이 외우지 않고, domain name으로 각 서버컴퓨터들을 사용하기 위해서 bind9을 이용한 DNS를 master서버에 구축하였다. * DNS의 원리 slave.dns.server.co.kr : 이런식으로 구성된 도메인은 역순으로 구성된 DNS서버들을 거쳐서 recursive하게 ip주소를 받아낸다. 즉, kr -> co -> server -> dns 순서로 DNS를 물어본다.보통의 경우 server.co.kr은 도메인을 구입해서 사용해야하고, 그 앞의 slave와 dns에 해당하는 부분을 서버 개발자가 구성하게 된다. # bind9 설정하기우선 아래의 링크만 정말 천천히 정독하면, 거의 한 번에 구현이 가능하다. 이.. 2016. 9. 28.
Ubuntu에서 FTP파일 서버 구축 - vsftpd 를 이용해 파일 공유하기 : ftp는 보안에 매우 취약하다. sftp는 보안은 강력한대신 속도가 느리다. vsftpd는 sftp 만큼 안전하면서 속도도 빨라서 가장 널리 이용되는 프로그램이다. - vsftp 설정하기sudo apt-get install vsftpd sudo vim /etc/vsftpd.conf # 원하는 대로 설정 변경. 그러나 우선은 default 상태로 실행시켜서 접속 테스트sudo service vsftpd restart # vsftd.conf 파일 수정하기http://blog.daum.net/99lib/27 http://isaac0448.iptime.org:8080/676http://webdir.tistory.com/199http://auctionpro.co.kr/.. 2016. 9. 27.