구글 고급 검색 명령어 우리는 원하는 정보를 검색하기 위해 검색엔진을 사용한다. 하지만 단순 키워드 검색만 가지고는 원하는 결과를 얻지 못하는 경우가 많은데, 이럴 때 구글의 고급 검색 명령어(기법)을 사용해보면 좋다. 명령어 사용법이 단순해서 익히기 쉬우니 한번 익혀놓으면 검색할 때 상당히 효율적이다. 특정 단어/문장 반드시 포함시키기 ( "" ) 코딩을 하다가 에러가 발생하면 보통 구글링을 하게된다. 한 예로 크롤링을 하다가 Connection ResetError 에러가 발생했다고 가정해보자. 해당 에러에 대해 검색을 하는데 crawling이라는 단어가 꼭 포함됐으면 하는 경우, crawling을 ""로 감싸주면 된다. 제목에 특정 단어/문장 포함시키기 ( intitle: ) 위에서 살펴본 ""는 제..
크롬 확장프로그램, JSONView 크롤링을 하거나 기타 등의 작업을 하다보면 JSON 데이터를 마주하게될 때가 있는데 이 때 추천하는 크롬 확장프로그램 중 하나가 바로 JSONView이다. 프로그램 이름으로도 기능을 쉽게 유추할 수 있는데, 바로 JSON 데이터를 가독성있게 볼 수 있도록 해주는 확장프로그램이다. JSON이란? (출처: 위키백과) JSON(JavaScript Object Notation)은 "속성-값" 쌍 또는 "키-값 쌍"으로 이루어진 데이터 오브젝트를 전달하기 위한 개방형 표준 포맷이다. 본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다. JSONView 설치 크롬 확장프로그램이기 때문에 설치는 매우 쉽다. 크롬 웹스토어의 해당 ..
석사 졸업논문을 쓸 때 OLE 기반의 여러 파일들에 대한 특징을 추출해야 할 일이 있었는데 그 때 데이터를 좀 축소시켜볼까 해서 썼던 방법 중 하나가가변 길이의 데이터를 같은 차원으로 압축?축소? 시키기 위해 사용할 적당한 알고리즘을 찾다가 LSH(Locality Sensitive Hashing)라는 것을 발견했다. 결론적으로 사용하진 않았다. LSH는 고차원 데이터의 차원 확률에 기반한 차원 축소 방법론이라고 할 수 있다. 하나의 문서가 100여개의 단어로 이루어져 있다면 이를 벡터로 표현하면 100차원이다. 이것을 제한된 크기 n차원으로 줄이는 기술이다. 간략히 공부하면서 어떤 저자가 Coursera 강좌를 듣고 Minhash 알고리즘에 대해 정리해 놓은 글을 봤는데 해당 글을 다시 정리해보았다. M..
MCMC는 진짜... 해도해도 이해가 안가고 할수록 더 이해가 안가는 모델인 것 같다.... 원래 논문 실험을 할 때 샘플링을 할 일이 있어서 (결국 안쓰게 됐지만) 그때 MCMC를 정리해놨던게 있는데 여기에 올린다. 일단, 위키백과에 따르면 MCMC(Markov Chain Monte Carlo, 마코프체인 몬테카를로)란 '마르코프 연쇄의 구성에 기반한 확률 분포로부터 원하는 분포의 정적 분포를 갖는 표본을 추출'하는 알고리즘의 한 부류이다. 쉽게 말하면 어떤 목표 확률분포(Target Probability Distribution)로부터 랜덤 샘플을 얻는 방법이라고 할 수 있다. 마코프 체인(Marcov Chain) 마코프 체인에서의 체인을 쓴 것은 상태값이 독립이 아니라 이전의 상태에 영향을 받기 때문..
우리집은 FUJI xerox라고 레이저 프린터기를 쓰고있다. 그런데 어느샌가부터 희미하게 새로줄이 생기더니 완전 선명해지기 시작해졌다. 프알못이기 때문에 수리점에 맡겨야 하나 싶어서 이것저것 구글링해보는데 이렇게 새로줄이 생기는 경우는 기계적인 결함이라기 보다는 내부에 뭔가 끼거나 먼지가 있거나 등의 청소 문제인 경우가 많은 것 같았다. 바로 확인 고고. 프린터 윗판을 열면 아래와 같이 토너 카트리지가 있는데 잡아서 들어올리면 빠지게 된다. 토너를 빼낸 후에 프린터 가이드 (DocuPrint P115 w, User Guide)에 설명되어 있는대로 먼저 '기기 내부 청소 - 코로나 와이어 청소'를 해주었다. 아래 사진처럼 연두색 탭같은게 있는데 이걸 몇번 왼쪽, 오른쪽, 왼쪽, 오른쪽 슥삭슥삭 해주면 된다..
머신러닝을 공부하고 코드를 작성하다 보면 (케라스를 사용하는 사람도 있지만) tensorflow 프레임워크 사용이 거의 필수적이다. tensorflow는 tensorflow-cpu와 tensorflow-gpu를 설치하는 과정이 전혀 다른데, gpu 버전은 cpu에 비해 상대적으로 설치가 좀 까다롭다. 이번 포스팅에서는 설치가 쉬운 윈도우 tensorflow-cpu 버전 설치 과정을 알아본다. 윈도우 아나콘다(Anaconda) 설치 아나콘다는 파이썬 가상환경을 지원하는 일종의 프로젝트로 tensorflow 포함 여러 패키지가 포함되어 있다. 가상환경이기 때문에 나중에 tensorflow-cpu와 tensorflow-gpu를 왔다갔다 하기도 편하고 관리가 쉬워서 윈도우에서는 tensorflow 사용 시 대다..
지난 퍼셉트론 포스팅에서 퍼셉트론의 기본 개념을 알아보면서 단층 퍼셉트론의 한계와 그것을 해결하기 위해 등장한 다층 퍼셉트론까지 간단히 살펴봤다. 다층 퍼셉트론은 곧 신경망이라고 보아도 무방하기 때문에 여기서는 다층 퍼셉트론이라는 용어 대신 '신경망'이라고 표기하겠다. 지난 포스팅에 이어서 오늘은 신경망의 학습 규칙인 델타규칙(Delta Rule), 경사하강법(Gradient Descent), 역전파(Back Propagation)에 대해 알아볼 것이다. 이 개념들은 전부 신경망의 학습 과정 중에 나오는 개념들이다. /* 해당 포스팅에서의 표기법은 다음과 같다 */ xi : 입력값 zi : 은닉층 값 yi : 출력층 값 ti : 목표값 E : 에러 α : 학습률 신경망의 계층구조 위에 링크시킨 포스팅의 ..
퍼셉트론(Perceptron)을 실제로 구현해보기 전에 퍼셉트론이란 무엇인지 퍼셉트론의 정의와 학습 규칙에 대해 먼저 살펴본다. 그리고 단층 퍼셉트론(Single Layer Pereptron)과 다층 퍼셉트론(Multi Layer Perceptron)이 어떤 차이가 있는지, 단층 퍼셉트론의 한계점과 이를 해결하기 위해 등장한 다층 퍼셉트론의 경우 어떤 특징이 있는지 등을 살펴본다. 퍼셉트론(Perceptron) 이란? 퍼셉트론이란 신경망의 기원이 되는 알고리즘으로 다수의 신호( in(t):x1,x2... )를 입력으로 받아 하나의 신호( out(t) )를 출력한다. 여기서 퍼셉트론은 복수의 입력 신호에 고유한 가중치(w1,w2...)를 부여하는데 이는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용..
파이썬 코드로 쉽게 배우는 머신러닝 시리즈 (3) SVM(Support Vector Machine) sklearn을 사용한 SVM 모델 학습으로 주어진 데이터셋을 분류하고 시각화해보려 한다. 참고로, 본 포스팅에서는 수학적 지식은 다루지 않고 sklearn의 SVM을 사용하기 위한 최소한의 개념을 다루며 '코드 구현과 활용'의 측면에 초점을 맞춘다. 또한 sklearn svc 함수의 매개변수 kernel, C에 따른 변화도 살펴본다. SVM(Support Vector Machine) 이란? SVM(Support Vector Machine)은 주어진 데이터가 어느 그룹에 속하는지 분류하는 분류 모델이다. 아직 포스팅하진 않은 신경망을 포함해 기존의 분류 모델들은 분류 오류를 최소화하려는 목적으로 설계되었지..
ELK 스택이란? "Elasticsearch" "Logstash" "Kibana" "Filebeat" ELK란 데이터 수집 및 분석 툴로 로그분석이나 데이터분석에 쓰이는 툴로써 동작하는 오픈소스 프로젝트의 약자이다. 여기서 각각 ElasticSearch (엘라스틱서치)는 검색 및 분석엔진, Logstash는 수집 로그를 가공 후 ElasticSearch에 전송하는 파이프라인, Kibana는 데이터 시각화를 담당하는 엔진을 담당한다. 여기에 데이터 수집을 하는 Filebeat가 추가되면서 ELK Stack (ELK 스택)이 되었다. ELK 스택 환경구성 ELK는 전부 우분투(Ubuntu_1) 한곳에 설치할 예정이다. Filebeat 서버는 총 2곳인데 둘다 우분투여서 _1, _2로 나누었다. Ubuntu_..
파이썬 코드로 쉽게 배우는 머신러닝 시리즈 (2) 로지스틱 회귀분석(Logistic Regression) 지난 포스팅에서 선형 회귀분석 (Linear Regression)에 대해 간단히 살펴보았다. 오늘은 로지스틱 회귀분석(Logistic Regression)에 대해 살펴본다. 본 포스팅은 수학적 지식은 최소한으로 다루고 파이썬 sklearn을 사용한 로지스틱 회귀분석의 '코드 구현과 활용'의 측면에 초점을 맞추었다. 로지스틱 회귀분석 (Logistic Regression) 이란? 선형 회귀와는 다르게 로지스틱 회귀는 결과가 범주형일 때 사용하기 때문에 분류 모델로 사용할 수 있다. 선형 회귀는 기본적으로 'y=ax+b'의 모습을 갖고 있었고 달라지는 x값에 대한 y값을 예측하는 것이 목표인 모델이었다...
파이썬 코드로 쉽게 배우는 머신러닝 시리즈 (1) 선형 회귀분석(Linear Regression) 대학원 시절, 패턴인식 과제로 수행했었던 혹은 과제 수행을 위한 선행 지식을 위해 혼자 공부했던 머신러닝, 딥러닝 관련 코드를 정리해서 올려보려 한다. 첫 시작은 선형 회귀분석이다. 참고로 본 포스팅에서는 수학적 지식은 최소한으로 다루고, 파이썬 sklearn을 사용한 선형 회귀분석의 '코드 구현과 활용'의 측면에 초점을 맞추었다. 선형회귀(Linear Regression) 모델이란? 선형회귀 모델은 지도학습 중 예측 문제에 사용하는 모델이다. 예측 문제란 기존 데이터를 기반으로 생성된 모델을 이용하여 새로운 데이터가 들어왔을 때 어떤 값이 될지 예측하는 문제를 말한다. 주식예측을 간단한 예로 들 수 있겠다..