본문 바로가기

전체보기198

Windows 10 Subsystem Linux, WSL(ubuntu) bash에서 TensorFlow 설치 및 실행하기 # WSL이란윈도우의 시스템콜을 우분투와 연결하여, 동시에 2개의 운영체제를 사용하는 환경http://www.itworld.co.kr/news/105480 # Windows 10에서 ubuntu 사용하기- 설정 -> 업데이트 및 복구 -> 개발자용 -> 개발자 모드선택- 제어판 -> 프로그램 -> '프로그램 및 기능'의 'Windows 기능 켜기/끄기' -> 'Linux용 Windows 하위 시스템(베타)' 선택- 재부팅- Microsoft Store에서 ubuntu를 검색해서 다운로드하고 실행- ubuntu 설치가 완료되면, id와 passwd를 입력하고 ubuntu를 사용 https://docs.microsoft.com/en-us/windows/wsl/install-win10http://sanghak.. 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.
신경과학의 원리 1 수업 - Chapter 1. The Brain and Behavior Principles of Neural Science 5th Edition : Chapter 1. The Brain and Behavior - 현대의 신경과학은 뇌-마음-행동을 하나의 신경과학적인 방법으로 모두 설명하고자 하는 학문이다.- 신경과학은 여러 뉴런들이 복잡하게 연결되어 있음으로 구성된 것을 밝힌 것이 중요한 시작이었다. 이는 골지가 개발한 silver salt 방법을 이용해 최초로 neuron doctrine(각각의 개별 뉴런들이 모여 전체 신경계를 구성한다)을 알게 되었고, 추후 electron microscopy 방법을 통해 synapse를 관찰함으로 확실해졌다.- 현대의 신경과학에서 가장 중요한 발견은 먼저 뇌의 각 영역마다 특수한 기능을 수행한다는 발견이다. 초창기에는 Gall이 주장한.. 2016. 9. 19.
p Norm vector norm : 각각의 엘리먼트의 절대값을 p제곱한다음 루트p 따라서 L1 norm은 element 절대값의 합에 해당하고, L2 norm은 피타고라스의 정리처럼 유클리드 거리를 구한것에 해당한다. http://mathworld.wolfram.com/VectorNorm.html - 좀 더 보기 편한 수식https://rorasa.wordpress.com/2012/05/13/l0-norm-l1-norm-l2-norm-l-infinity-norm/ 2016. 9. 17.
TensorFlow 프로그래밍 TensorFlow # flags 사용: https://stackoverflow.com/questions/33703624/how-does-tf-app-run-workflags로 지정된 변수들은, tf.app.run()을 이용해 실행할 경우 main.py 함수를 실행할 때 자동으로 커맨드 라인에 입력한 argument를 parsing하여 내부로 자동 전달해주는 역할을 한다. "Runs the program with an optional 'main' function and 'argv' list." The name 'conv_layer1/h_pool1' refers to an Operation, not a Tensor. Tensor names must be of the form ":". 아하.. 그냥 name.. 2016. 9. 13.
Maximum Likelihood Estimation의 의미 MLE에서 확률(*)의 곱을 최대화하는 대신 확률의 합을 최대화하면 어떻게 될까? 보다 정확히, (*)는 모델이 주어졌을 때 IID데이터의 확률. 즉, p(x1|M)p(x2|M)...p(xn|M) 을 최대화하는 것이 아니라 p(x1|M)+...+p(xn|M)을 최대화 하는 모델 파라미터를 선택한다면? --> 확률곱 : iid 에서 교집합의 확률 확률합 : iid 에서 합집합의 확률교집합은 and, 동시에라는 조건이고 합집합은 or, 또는이라는 조건이라 곱셈이 훨씬 강력한 가정이다. 둘다 각각의 확률 엘리먼트가 최대화가 되긴하겠지만 곱셈은 1개의 엘리먼트만 0을 가져도 전체확률이 0이 되어 Log Loss 값이 무한대가 되지만, 확률 합은 그렇지 않아서 더 약한 조건이다. 그리고 exp 이 있는 확률모델이.. 2016. 9. 2.
Ubuntu 기본 GUI/CLI/bash script 사용 법 ## Bash script 튜토리얼https://ryanstutorials.net/bash-scripting-tutorial/bash-if-statements.php#ifelse # Ubuntu 파일 경로 의미 /bin: core tools, some admin tools, contents controlled by package manager. /usr/bin: mostly end user tools, contents controlled by package manager as well. /usr/local/bin: yours to use and abuse. # Vim에서 키워드 검색/검색할키워드 엔터 # Shell에서 입력했던 명령어 보기 history # Bash 에서 *와 **의 의미 * 하위 모든 .. 2016. 8. 22.
Windows 7과 10 설치 / 노트북 한영키 Windows 7 설치 및 복구옛날 노트북이나 컴퓨터에는 그냥 바로 usb로 설치 디스크 만든다음 CMOS에서 부팅 설정 바꿔서 하면 끝이었음. 근데 요즘에는 일단 윈도우7이 표준이 아니라, 그 위의 8이나 10이 표준이라 문제가 발생함. 1) 일단 기가바이트 메인보드에서는 usb를 인식하지 못해서 설치 디스크가 없다고 계속 뜸--> 기가바이트에서 제공하는 설치 파일 제작 프로그램을 다운 받은 후, usb 드라이버를 추가하여 다시 제작해야함.http://playwares.com/hwboard/47350801 2) 그다음 제조사에서 제공하는 BIOS 에서 win7으로 부팅하는 것이 표준 목록에서 빠져있는 경우가 있음.--> 이런 경우 BIOS설정을 세밀하게 조정하여 win7으로 부팅이 되도록 해줘야함.ht.. 2016. 8. 6.
Ubuntu GUI 관련 트러블슈팅. Gym, Xserver, pyglet, TeamViewer OpenAI Gym을 원격서버 IPython에서 렌더링하기# 주의 # 아래의 방법으로 하면, 결국 되기는 되는데, CUDA 드라이버가 뭔가에 의해서(아마 범블비) 지워져버려서 GPU컴퓨팅이 안된다....... 그래서 결론은 이 글 가장 아래부분의 TeamViewer를 사용하는 것을 추천한다.-----원격 서버에서 IPython을 통해 GYM의 렌더링 결과를 gif로 보여주기를 시도해보았다. 결국 다음 링크의 예제를 재현하는 것이 목표였으나 pyglet과 xvfb 설정에서 상당히 많은 어려움이 있었다. 재현할 대상 : http://nbviewer.jupyter.org/github/patrickmineault/xcorr-notebooks/blob/master/Render%20OpenAI%20gym%20as%.. 2016. 7. 26.
Python에서 유용한 라이브러리 설치 프로그램easy_install, pip : python package 설치 프로그램. 근데 pip가 최신임. easy_install은 곧 사라질 녀석임apt-get : 리눅스 터미널 명령어. 전역 프로그램 패키지를 다운로드하고 설치해줌. # 주의사항 : apt-get으로도 설치하고, pip로도 설치하면 둘이 서로 꼬여버린다. 둘중하나로만 깔아야함.(한쪽을 지우든지) pip와 easy_install의 관계는 모르겠음 꼬일지 안꼬일지. http://blog.outsider.ne.kr/346http://egloos.zum.com/mcchae/v/11023238 deb 파일 설치 방법: sudo dpkg -i 패키지.debhttp://jjeong.tistory.com/664 Scrapy쓰기 좋은 웹 크롤러.. 2016. 2. 23.
Docker 사용방법 # Docker(도커)란 무엇인가? http://www.slideshare.net/pyrasis/docker-docker-38286477 OS에 부담을 주지 않는 매우 효율이 좋은 가상화 도구 VM보다 훨씬 구조가 간단함. 기본 OS 99% 의 성능을 냄 결론적으로 얘기하자면, 나는 도커에서 지금까지 실행하지 못한 기능이 하나도 없었다. redis도 성공했고, sftp도 성공하였다. # docker에서 쓰이는 용어 도커 이미지: 미리 임의의 환경을 구워놓은 이미지파일 도커 컨테이너 : 도커가 실행중인 프로세스 # Ubuntu 16.04 에서 설치하기apt-get update apt-get install apt-transport-https ca-certificates curl software-propert.. 2016. 2. 19.
Ubuntu 서버 구입부터 설치 및 인터넷 설정까지 1. GPU 서버 구입아래와 같이 고성능 GPU 컴퓨팅용 서버의 견적을 내고 주문한다. 아래 견적은 호환성이 검토되어 있다. 호환성은 다음의 4가지만 체크하면 큰 문제가 없다. 메인보드와 CPU의 소켓넘버가 같은지 / 메인보드가 RAM의 스펙을 지원하는지 / 메인보드의 PCI가 GPU를 지원하는지 / GPU의 전력용량을 파워가 충분히 만족시키는 지 (단, 하드디스크는 3TB이상일 경우 우분투에서 인식하지 못하는 버그가 있는 것으로 알려져있다.)위의 견적에서 가격을 조금 내리고 싶다면, 다음을 고려할 수 있다.1) 파워를 750W -> 650W 로 다운. (Titan X 는 권장 600W 을 요구하므로, 650W으로 충분할 수 있다.) 2) CPU와 메인보드를 다운그레이드 3) 케이스/키보드 구입 X or.. 2016. 2. 12.
Numpy 문법, API, 환경설정 / HDF5를 위한 H5PY API Numpy 기본 레퍼런스 http://docs.scipy.org/doc/numpy/reference/ # Numpy object 인지 type check하기type(a).__module__ == np.__name__ Truehttps://stackoverflow.com/questions/12569452/how-to-identify-numpy-types-in-python # 잘 모르는 유용한 method- np.triu: upper triangle matrix를 만든다.( == lower triangle을 0으로 만든다)- np.tril: lower triangle matrix를 만든다.( == lower triangle을 0으로 만든다) - np.cumprod: 주어진 axis로 cumulative pr.. 2015. 12. 1.
Advanced Gradient Descent Method Advanced Gradient Descent Method (고급 경사 하강 법)출처 : http://imgur.com/a/Hqolp 위에서 소개된 그림은 특정한 landscape에서의 각각의 optimizer들의 학습 속도를 표현 한 것이다. 보기에는 Adadelta가 최고인가하고 생각 할 수 있겠지만, 문제 상황에 따라 잘하는 경우도 있고, 못하는 경우도 있으므로 문제 상황에 맞게 잘 선택해야한다. 출처 : http://imgur.com/a/Hqolp 위의 이미지는 특히 Rmsprop와 Adagrad가 좋은 성능을 보인다. 뉴럴넷의 W와 같은 고차원의 공간에서는 이러한 saddle point가 매우 많아 문제가 되는 것으로 알려져있다. 따라서 이 두가지 옵티마이저를 선택하는 것은 좋은 방법이다. 요즘.. 2015. 10. 24.
미분의 체인 룰, 합성 함수 미분 # 체인룰 체인 룰이라 불리는 법칙은 사실은 합성 함수 미분의 원리를 말하는 것이다. 즉 f(g(x))를 미분하면, f'(g(x)) * g'(x)이 되는데, 이것이 바로 체인룰이다. 그냥 겉미분*속미분 같은 공식으로는 설명이 불충분하고 비직관적이다.보다 직관적으로 설명하자면, g(x)=u 라고 먼저 정의를 하고, f(u)를 u로 미분한다음, u를 다시 x로 미분하게되면 f'(u) = df/du * du/dx = df/dx f'(u) = df/du = f'(u) * u' (단, u' = g'(x)) 이 되고, 이는 마치 곱셈과 나눗셈으로 du 를 약분하듯이 계산된다. 이것이 체인룰이다. (물론 df/dx가 정확히 분수는 아니나, 아래의 합성 함수 미분의 증명을 보면 의미적으로는 충분히 약분이 가능한 형태임.. 2015. 10. 11.
여러 Classifier 간의 특성 - 여러 데이터의 구조에서 각 알고리즘들이 경계선을 찾은 결과 http://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html 참고로 scikit-learn 은 python 에서의 weka라고 생각될 정도로 매우 사용이 쉽고 다양한 알고리즘이 구현되어있다고한다. 단 2~3줄 만으로 학습 및 추론이 가능하다. - 아래와 같은 데이터를 분류해보자. (arff는 weka의 데이터 형식이다.) generated by 곽하녹 이 문제는 우선 2차원에서의 유클리드 거리정보가 매우 중요하다. 따라서 KNN알고리즘을 쓰면 쉽게 97%의 정확도에 도달할 수 있다. SVM으로 할 경우 gamma가 매우매우 성능에 민감한 영.. 2015. 9. 14.
ubuntu 설치 usb 만들기 http://deviantcj.tistory.com/508 1. ubuntu 14.04 iso파일을 다운받는다http://www.ubuntu.com/download/desktop/contribute/?version=14.04.3&architecture=amd64 2. Universal-USB-Installer로 usb를 만든다http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/ 3. 이미 설치된 ubuntu 14.0.4 에 usb를 연결한 후 ubuntu startup disk creator 를 이용해서 usb를 생성한다이것이 제일 빠르고 쉬운방법 2015. 8. 28.
고정ip가 할당된 공유기에 리눅스 서버를 올릴 때, 포트포워딩 - 고정ip가 할당된 공유기에 리눅스 서버를 올릴 때 1) 공유기에 접속해서 dhcp 가 할당하는 내부 ip를 고정시킨다.(mac 주소에 내부 ip를 고정시킴)2) 포트포워딩을 통해, 고정ip로 들어오는 특정 포트(22)로의 접속을, 내부 포트(22)로 보낸다. ssh(푸티)와 sftp는 모두 22번 포트를 사용함. 프로토콜만 다름3) 리눅스서버에 sudo apt-get install openssh-server 를 설치하고 실행한다. - 리눅스 설치하고나서 할일sudo update로 모든 설치된 프로그램을 업데이트 apt-get install build-essential로 빌드 에센셜 깔기 sudo apt-get install vimsudo apt-get install openssh-server 참고> .. 2015. 8. 24.
Bayesian Optimization, Active learning 둘다 가우시안 프로세스, 가우시안 리그레션으로 에러 펑션에 대한 근사함수를 만든다음 그 근사함수 상에서 에러를 최소화하는, 또는 근사 함수를 좀더 정확하게 만들 수 있는 점들을 다음 실험의 하이퍼파라미터로 사용한다.그렇게 최소화된 실험 횟수로 하이퍼파라미터를 찾을 수 있다.https://www.youtube.com/watch?v=VG2uCpKJkSg Bayesian Optimization : 딥러닝을 제외한 여러 하이퍼파라미터 서치 알고리즘. 뉴럴넷의 하이퍼파라미터에 대해 에러를 minimize하기위한 objective function을 가짐. 직접적으로 에러에 대한 최소화를 목표로하기때문에 active learning보다 더 성능이 잘나온다고함. 또한 이것의 의미는 비전문가도 머신러닝을 쉽게 쓸 수 있.. 2015. 8. 13.