728x90
반응형

머신러닝 81

강화학습 공부 - (1) 마르코프 결정 프로세스

서론 MDP란 강화학습의 환경을 공식적으로 설명하는 것이다. 모든 환경이 관찰 가능하다고 가정한다. 거의 모든 강화학습의 문제들이 MDP로 표현될 수 있다. 마르코프 구성요소 현재를 기준으로 미래는 과거와 무관하다 상태 S_t는 $P[S_{t+1} | S_t] = P[S_{t+1} | S1, … S_t]$ 상태 $S_{t+1}$은 오직 상태 S_t에 의해서만 결정된다. 이것이 상태 S_1에서 S_t까지 (히스토리)를 모두 반영한다고 가정한다. 따라서 현재의 상태가 다음(미래)상태를 결정하는데 충분하다고 본다. 상태 전환 확률은 마르코프 상태 s의 제일 높은 확률을 가진 다음 상태 s'를 결정하는 확률이다. $P_{ss'} = P[S_t+1 = s' | S_t = s]$ 상태 전환 행렬은 현재 상태에서 다..

하둡 2.0 튜토리얼 - (8) 하이브 MySQL 메타스토어

MySQL 메타스토어 MySQL 설치 MySQL설치법은 운영체제마다 다르고, 다른곳에도 자료가 많으니 따로 정리하지 않겠습니다. 저는 호스트 기기에 MySQL을 따로 설치하였습니다. MySQL config 수정 아래 방법은 호스트 기기 리눅스 기준입니다. /etc/mysql/mysql.conf.d/mysqld.cnf 파일을 열어 아래 부분을 수정해줍니다. 이는 localhost를 사용하지 않고 외부 접속을 허용하는 것입니다. (위의 부분 앞에 #를 사용해 주석처리 해준것입니다.) #bind-address = 127.0.0.1 혹시 방화벽에 의해 포트가 막힐수도 있으니, 해당 문제는 포트를 열어 해결해 주시기 바랍니다. 위를 수정하셨으면 mysql을 재시작합니다. > /etc/init.d/mysql res..

하둡 2.0 튜토리얼 - (7) 아파치 하이브 설치

하이브 하둡은 자바 기반으로 되어있습니다. 그리고 파이썬이나 루비와 같은 스크립트 언어로도 접근이 가능합니다. 하지만 보통 데이터를 만지는 사람들은 기존 RDBMS를 만지던 데이터 분석가들이나 DBA에 익숙한 사람들일 것입니다. 이러한 문제 때문에 페이스북에서 하이브를 개발하게 되었고, 지금은 아파치의 정식 프로젝트가 되었습니다. 설치 하이브를 설치해 보도록 하겠습니다. 다음 링크로 설치하거나 아래 wget으로 설치하신 뒤 scp로 doop01기기로 전송하겠습니다. https://archive.apache.org/dist/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz > wget https://archive.apache.org/dist/hive/hive-2.1.1/apa..

하둡 2.0 튜토리얼 - (6) 얀 명령어

Yarn 얀은 하둡 2.0에서 새로 도입된 시스템으로 Yet Another Resource Manager의 약자입니다. 하둡 1.0에서 클러스터의 마스터노드가 모든 기기들의 리소스 관리를 했지만, 이것이 부족하다고 판단되어 개발된 시스템입니다. 또한 하둡 1.0에서의 마스터노드에 장애가 나면 모든 HDFS의 워커노드 및 데이터노드를 사용할 수 없게 되기 때문에 취약점이 발생합니다. 마스터노드의 장애로 인해 모든 시스템이 쓸모 없어져버리는 것을 SPOF (Single Point of Failiure)라고 합니다. 리소스매니저 얀은 리소스매니저라는 시스템을 내부적으로 사용합니다. 리소스매니저는, 또 컨테이너라는 개념을 활용하는데 이 컨테이너는 리소스의 집합체 입니다. 시스템 입장에서의 리소스란 당연히 CPU..

PyTorch 5 - 딥러닝 기반 협업필터링

딥러닝 기반 협업필터링¶ 이번 포스팅에서는 신경망을 기반으로 한 협업필터링을 구현해본다. 신경망 기반 협업필터링은, 기존의 MF기반 협업필터링과는 조금 다르다. MF기반은 벡터끼리의 내적곱을 활용하지만, 신경망 기반은 비선형 활성함수(relu)를 사용하게 된다. In [43]: # 패키지 import from pathlib import Path import pandas as pd import numpy as np In [44]: data = pd.read_csv('./ml-latest-small/ratings.csv') data.head() Out[44]: userId movieId rating timestamp 0 1 1 4.0 964982703 1 1 3 4.0 964981247 2 1 6 4.0 9..

하둡 2.0 튜토리얼 - (4) 하둡 실행

하둡 실행 하둡을 실행하기 위해서는 앞서 했던 설정파일들을 오타 없이 잘 작성하셔야 합니다. (저는 한글자 오타 때문에 고생을 많이 했습니다.) 무언가 실행이 잘 되지 않을때는 꼭 로그파일들을 확인하시기 바랍니다. 하둡을 실행하기 위한 프로세스는 다음과 같습니다: 주키퍼 포맷 3개의 저널노드 실행 Active 네임노드 실행 Standby 네임노드 실행 주키퍼 장애 컨트롤러 (zkfc)실행 데이터노드 실행 얀 클러스터 실행 히스토리서버 실행 alias등록 먼저 하둡 실행 및 운영을 위해 미리 편리한 alias들을 등록해두겠습니다. .bashrc 파일을 열어 다음과같은 alias들을 등록해줍니다. alias hadoop="~/hadoop/sbin/hadoop-daemon.sh" alias hdfs="~/ha..

하둡 2.0 튜토리얼 - (3) 하둡 설치

하둡 설치 아래 튜로리얼은 hadoop 1.x와 관련된 파일인 hadoop디렉토리와 hadoop-data디렉토리를 삭제한 뒤 진행됩니다. 하둡 2.7 다운로드 먼저 하둡2의 특정 버전을 다운로드 받겠습니다. 하둡은 이미 3.x이상의 버전이 출시되고 있기 때문에 특정 버전들만 공식적으로 나와있습니다. 우리가 다운로드할 2.7.2버전은 2.7.6버전으로 stable release되어있고 2.7.2버전은 아카이브 되어있습니다. 따라서 아래 링크를 통해 다운받아 주겠습니다. https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz 직접 링크로 다운받으셔도 되고 wget명령어를 이용하셔도 됩니다. > wget https://arc..

하둡 2.0 튜토리얼 - (2) 주키퍼 설치

하둡 High Availability 하둡2부터는 High Availability (이하 HA)라는 용어를 사용합니다. High Availability란 하나의 네임노드와 보조네임노드를 설정하는것이 아닌, 두개의 네임노드를 설정하는 방법입니다. 이는 Active-Stanby방법으로 두번째 네임노드가 Active네임노드에 장애가 생기면, Stanby상태에 있다가 Active한 상태로 되는 방식입니다. 주키퍼 (Zookeeper) 주키퍼는 이 두개의 네임노드를 이용한 HA를 가능하게 하는 분산 코디네이터입니다. 하둡은 주키퍼를 통해 어떤 네임노드가 Active인지 혹은 Stanby인지를 저장합으로서 네임노드들을 관리합니다. 하둡 설정에 의해 주키퍼는 기본적으로 3대가 설정되어 있어야 합니다. 주키퍼 사용자 ..

하둡 2.0 튜토리얼 - (1) 프로토버프 설치

하둡 2.0 이제 하둡 2버전으로 넘어가보도록 하겠습니다. 먼저 설치를 진행할 것인데요, Virtual Box VM과 Java가 모두 설치되었다고 가정하고 진행합니다. 해당 설치 내용은 아래 두개의 포스팅에서 찾아볼 수 있습니다. https://jyoondev.tistory.com/32 https://jyoondev.tistory.com/34 프로토콜 버퍼 프로토콜버퍼란 (이하 프로토버프, Protobuf) 구글이 개발한 데이터전송 방식(규격)입니다. 다른말로는 직렬화 라이브러리 라고도 하죠. 우리가 흔히 알고있는 직렬화/규격 포맷은 json과 xml이 있습니다. 프로토버프는 json이나 xml보다 크기가 작고 성능이 좋아 하둡에서 채택해 사용하게 되었습니다. 이를 설치하기 위해 구글의 깃허브 페이지로 ..

하둡 1.0 튜토리얼 - (17) 하둡 스트리밍

하둡스트리밍 하둡 스트리밍이란, 기존 자바로 맵리듀스를 실행하던것 외에 스크립트 언어 (파이썬, 루비, 셸스크립트 등)를 하둡에서 실행하게 해주는 인터페이스를 말합니다. 맵리듀스가 일정 시간동안 쌓인 데이터를 한번에 배치처리 하는 개념이었다면, 하둡스트리밍은 그때그때 데이터를 처리해야할 필요가 있을때 많이 쓰는 방식입니다. 하둡스트리밍 패키지 하둡 스트리밍을 실행하기 위해서는 contrib/streaming 디렉터리의 hadoop-streaming-1.2.1.jar 파일이 필요합니다. 이 jar파일을 사용해 스크립트를 실행시키는 구조입니다. 하둡 스트리밍을 사용하기 위한 기본적인 커맨드 문법은 다음과 같습니다. > hadoop jar hadoop-streaming-1.2.1.jar \ -input 입력경..

빅데이터/하둡 2019.07.21
728x90
반응형