1940년대 기계 학습의 연구의 시작은 "인공신경망(Artificial Neural Network)"이라고 할 수 있다. 생물의 신경조직 움직임을 모델로 하여 정보를 처리하는 구조로, 자극에 해당하는 데이터가 다른 신경으로 전달되면서 어떻게 처리하고 학습해야할지 정해지게 된다. 1960년대 프랑크 로젠블라트(Frank Rosenblatt)에 의해 "다층 신경망(Multilayer Neural Network)"이 제안되었고, 이는 "퍼셉트론(Perceptron)"이라 부르게 된다. 퍼셉트론은 비교적 정확히 기술된, 계산에 의한 최초의 신경망 모델이어서 여러 분야에 커다란 영향을 미치게 되었다. 자극을 받는 세포인 "자극층(입력층, 센서층)"은 데이터를 받는 역할을 하고, 자극에 따른 행동을 결정하는 "응답..
단순히 방화벽에서 하루동안 발생하는 로그가 1TB라면 어떻게 처리할 것인가? 수많은 인력을 통해 매일 분석할 수도 없는 노릇이다. 이러한 대용량 데이터를 처리하기 위해서는 빅데이터에 의존할 수 밖에 없다. 여기서 설명하는 빅데이터는 하둡이며 분산파일처리 시스템이다. 최근 드라이브의 용량은 상승하였지만 전송 속도는 약 100MB/s 수준에 머물러 있기 때문에 1TB의 디스크의 전체를 읽으려면 2시간 반이라는 계산이된다. 그래서 빅데이터에서 분산 파일 시스템의 경우 여러 디스크로부터 데이터를 읽어 처리 속도를 상승시킨다. 1TB의 크기의 데이터를 1/10 (100GB)만을 사용한 10개의 디스크로 병렬로 구현하여 읽는다면 1000초 즉 16~17분 만에 읽을 수 있게 된다. 이렇게 데이터를 병렬로 읽고 쓰려..
기계학습의 시작은 1950년대 부터 시작되었지만, 그 당시 데이터의 양이 한정되어 있어 학습시킬 데이터가 부족했다. 1959년 아서 사무엘(Arthur Samuel)이 기계 학습을 "컴퓨터에게 배울 수 있는 능력, 즉 코드로 정의하지 않은 동작을 싱행하는 능력에 대한 연구 분야"라고 정의하였다. 그는 1952년 체커를 소재로하여 기계 학습을 하여 스스로 강해질 수 있는 프로그램을 만들었다. 여기서 사용한 기계 학습은 파라미터 조정에 기초한 기계학습 방법이다. - 위키피디아 하지만 현재 인터넷의 발전으로 데이터가 폭발적으로 늘어나 다시 기계학습이 화두가 되고 있다. 특히 빅 데이터의 시대가 도래되면서 방대한 데이터에서 어떤 데이터를 어떻게 효과적으로 사용할 것인가를 해결하기 위해 기계학습을 도입하는 사례가..
1. Introduction 하둡(Hadoop) 공식 홈페이지에 업로드 되어 있는 컴파일 된 하둡을 사용할 때 다음과 같은 문제가 발생하였다. (사실 하둡만을 운영 한다면 문제 될 에러는 아니다. Java의 native 라이브러리를 사용하려고 한다면 해결해야 할 문제이다.) WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 이 오류는 32비트 운영체제에서 컴파일 된 것이기 때문에 64비트에서 사용하게되어 WARNING 에러가 발생한다. 그래서 이 문서에서는 하둡 2.2.0을 64비트로 컴파일하여 Psedo-Distribute..
1. 개요 개발자들의 암묵적인 사항으로 자바스크립트 파일은 *.js확장자를 가지도록 하며, 실제로 운영체제도 *.js는 자바스크립트 파일로 인식하고 있다. 하지만 자바스크립트 엔진을 가지고 자바스크립트 언어 및 파일을 인지하고 인식하는 브라우저는 어떨까? 자바스크립트 언어의 특징 중 하나는 파일 확장자와 무관하게 동작한다는 점이다. 그림 1. 악성코드 유포지가 삽입된 경유지 그림 1에서 보는 것과 같이 script 태그로 자바스크립트를 선언한 후 ***/top.jpg를 리디렉션 하고 있다. 확장자만 보았을 땐 jpg 그림파일이어야 하지만 script로 인식하여 파일 안의 자바스크립트 코드를 실행하게 된다. 이러한 이유는 script 태그를 사용하면 자바스크립트 엔진이 운영되고 엔진은 확장자 확인 없이 파..
브라우저 내부에는 자바스크립트 엔진이라는 특수한 소프트웨어을 포함하고 있으며 이 엔진은 자바스크립트 코드를 인터프리터 형태로 실행할 수 있도록 해준다. 그래서 일반적인 언어는 컴파일러가 필요하지만, 자바스크립트 언어의 경우 브라우저가 직접 파싱하고 직접 해석하게 된다. 페이지가 로딩 후 자바스크립트 코드는 웹 브라우저와 함께 작동하기 때문에, 실시간으로 사용자의 이벤트에 응답하고, 페이지를 수정하기도 한다. 사용자와 대화하는 자바스크립트 언어의 특징으로 인해 좀더 빠르게 사용자와 소통하기 위해 자바스크립트 언어는 클라이언트에 임시 저장을 하게 된다. 그래서 클라이언트용 언어라고 알려져 있으며, 사용자는 쉽게 소스코드를 볼 수 있다. 자바스크립트 코드는 웹 페이지에 소스코드를 그대로 사용하지 않아도 되며,..
document.writeln(""); document.writeln("var referer=document.referrer;"); document.writeln("if (referer.indexOf(\"baidu\") >0 || referer.indexOf(\"google\") >0)"); document.writeln("location.replace(\"http:\/\/www.naver.com\");"); document.writeln("") 리퍼러에서 baidu나 google이 있으면 현재 페이지를 naver로 바꾸어 주는 스크립트입니다. 구글이나 바이두의 검색을 통해 유포지로 흘러들어온다면 다른페이지로 리디렉션 시킬 수 있지 않을까? 생각해봅니다.