본문 바로가기

전체 글347

자연어처리 : 기본적인 Workflow 1) 수집 (acquisition) model을 학습시키기 위해서는 data가 필요하다. 자연어 데이터를 말뭉치 또는 corpus 라고 부른다. Corpus는 조사나 연구 목적에 의해서 특정 도메인으로부터 수집된 텍스트 집합을 말한다. Corpus는 txt, csv, xml 등등 다양하다. 2) 점검 및 탐색 (Inspection and Exploration) data를 수집했다면 점검하고 탐색하는 단계이다. 여기서는 데이터의 구조, 노이즈 데이터, 머신러닝 적용을 위해서 어떻게 data를 정제해야하는지를 파악한다. 이 단계를 탐색적 데이터 분석 (Exploration Data Analysis, EDA) 단계다. 이는 독립변수, 종속변수, 변수 유형, 변수의 데이터타입 등을 점검하며 데이터의 특징과 내재.. 2020. 3. 4.
자연어처리 : FastText fastText의 기본 원리는 단어의 형태 적 구조가 단어의 의미에 대한 중요한 정보를 전달한다는 것입니다. 단어의 의미는 모든 개별 단어에 대해 고유 한 단어 포함을 훈련시키는 전통적인 단어 포함에 의해 고려되지 않습니다. 이는 단일 단어가 여러 형태의 형태를 가질 수있는 형태 학적으로 풍부한 언어 (독일어, 터키어)에서 특히 중요하며, 각 단어는 거의 발생하지 않으므로 좋은 단어 삽입을 학습하기가 어렵습니다. fastText는 각 단어를 하위 단어의 집계로 취급하여이 문제를 해결하려고합니다. 단순성과 언어 독립성을 위해 서브 워드는 단어의 문자 ngram으로 간주됩니다. 단어의 벡터는 단순히 구성 요소 char-ngram의 모든 벡터의 합으로 간주됩니다. 이 노트북에서 Word2Vec과 FastTex.. 2020. 3. 4.
RL : Monte Carlo Tree Search (MCTS) 밑에는 알파고의 spec이다 Core Algorithm Deep Learning : Policy & Value MCTS : predict best condition CPU : 1000 operation / 1s simulation RL : find best action GPU : calculate state & predict next step Policy & Value : provide baseline of odds in expansion step 실제로 알파고는 ‘Policy Function’과 ‘Value Function’이라 불리는 2개의 신경망으로 구성되었는데, Policy Function이 다음 번 돌을 놓을 여러 경우의 수를 제시하면, Value Function은 그중 가장 적합한 한 가지 예.. 2020. 2. 25.
Python : __str__ vs __repr__ 차이점 class test: def __repr__(self): return "done!!" def __str__(self): return "Not Done!" test_a = test() print(test_a) print(str(test_a)) print(repr(test_a)) __str__ __str__는 서로 다른 자료형 간에 interface를 제공하기 위해서 존재한다. 객체를 표현, representation 에 있다기보다는 추가적인 가공이나 다른데이터와 호환이 가능하도록 문자열화한다. ex) int, float, list 형태를 print를 같이하면 안되지만, print(a,b,c) 상태로 하면 가능하다. 원래는 TypeError가 떠야 정상이지만, __str__ 메소드를 내부적으록 구현을 하고 .. 2020. 2. 24.
Computer & Structure : 아두이노 vs 라즈베리파이 https://openstory.tistory.com/150 아두이노 vs 라즈베리파이 완벽 비교 안녕하세요. Edward입니다. 많은 분들이 아두이노와 라즈베리파이 중 어느 것을 사용할지 고민하고 계시는데요. 그래서 이번에는 아두이노(Arduino)와 라즈베리파이(Raspberrypi)의 비교 분석에 대해서 알아보도록.. openstory.tistory.com 결론 라즈베리파이: RAM 1GB,기판 또한 복잡 // 카메라, 비디오, 등 복잡한 수치 계산과 그래픽 처리, 데이터처리에 적합하다. 아두이노 : RAM은 2KB, 기판이 간편 // 센서, LCD, 모터와 같은 외부기기 제어에 더 적합하다. 2020. 2. 24.
자연어처리 : NLTK NLTK (Natural Language ToolKit) NLTK 란? nltk는 파이썬 자연어 처리 패키지로 Classfication (분류) Tokenization (단어를 쪼개다) Stemming(형태소 분석) tagging (품사를 달다) parsing (어구를 나누다) semantic reasoning(의미론적 추리, 이 단어가 어떠한 의미를 가지고 있는지, 문장에서 중요한 의미인지) 이렇게 6가지를 구사할 수 있다. tokenize 자연어 문서를 분석하기 위해서는 우선 긴 문자열을 분석을 위한 작은 단위로 나누어야 한다. 이 문자열 단위를 토큰(token)이라고 하고 이렇게 문자열을 토큰으로 나누는 작업을 토큰 생성(tokenizing)이라고 한다. 영문의 경우에는 문장, 단어 등을 토큰으로 .. 2020. 2. 24.
Python : *args **kwargs https://brunch.co.kr/@princox/180 [나름 중급 파이썬1] *args와 **kwargs 항상 헷갈리는 두 가지 다시 한번 살펴보자 | 이 글은 파이썬의 문법을 모르면 이해하기 어렵습니다. python의 함수 작성 요령, 인자(argument)와 파라미터를 이해한다면 도움이 되는 내용입니다. 아니 이것은 포인터인가?! C언어를 배울 때 가장 힘든 그것! 바로 주소값을 가지는 포인터입니다! 근데.. 사자를 피했더니 호랑이를 만났다고 ㅠㅠ 파이썬을 배우려는데 별 표시(asteri brunch.co.kr *args parameter를 여러개를 넣어도 가능하다는 의미이다. **kwargs parameter를 key : value 형태인 딕셔너리를 받아서 그대로 사용할 수 있다. 2020. 2. 21.
Numpy : np.diag (대각선 요소의 값만 추출한 배열 구하기) np.diag import numpy as np sourceList = [(1, 2, 3), (4, 5, 6), (7, 8, 9)] sourceNDArray = np.array(sourceList) targetNDArray = np.diag(sourceNDArray) print(targetNDArray) [결과] [1 5 9] 출처: https://icodebroker.tistory.com/5277 [PYTHON/NUMPY] diag 함수 : 대각선 요소의 값만 추출한 배열 구하기 ■ diag 함수 : 대각선 요소의 값만 추출한 배열 구하기 --------------------------------------------------------------------------------------------.. 2020. 2. 21.
Numpy : np.reshape, flatten, ravel, newaxis (차원 변경) reshape A = np.array([1,2,3,4,5,6]) A.reshape(3,2) # A.reshape(-1,1) 위와 같은 것, -1은 열의 갯수에 맞춰서 행 갯수를 자동으로 정하는 것. """ [[1,2], [3,4], [5,6]] """ flatten, ravel A.flatten() # A.ravel() A A.shape """ [1,2,3,4,5,6] """ newaxis A[:, np.newaxis] """ array([[1], [2], [3], [4], [5], [6]]) """ meshgrid points = np.arange(-5,5,0.01) xs,ys = np.meshgrid(points, points) xs """ [[-5, -4.99 ------- 4.99, 4.99], .. 2020. 2. 21.
ML : Ensemble Learning : RandomForest 정의 2020/01/02 - [machine_learning/statistics] - Statistics : 6-6 : 확률분포 : 공분산과 상관계수 Statistics : 6-6 : 확률분포 : 공분산과 상관계수 공분산 (확률변수에서 적용) 정의 > 두 개의 확률변수 X, Y가 상호 어떤 관계를 가지며 변화하는가를 나타내주는 척도로서 (X-μx)(Y-μy).의 기댓값으로 정의된다. > Cov(X, Y) = E[(X-μx)(Y-μy)] = E(.. mambo-coding-note.tistory.com 공분산은 두 개의 class들이 서로 얼마나 상관관계가 있는지 치수로 보여준다. E[(X-μx)(X-μy)] 독립일 때는 서로 상관관계가 존재하지 않는다. Bagging을 복원추출하기 때문에 각각의 트리들을.. 2020. 2. 20.
Statisics : Bias vs Variance Bias Bias는 "data들이 한 쪽에 치우쳐져 있는 정도"를 말한다. 쉽게 생각하면 딥러닝에서 X*W + b 에서 b가 bias이다. bias는 X*W를 공간적으로 보면 평행이동하는 것으로 해석할 수 있다. 즉, 평행이동을 한다는 것은 특정구간으로 치우쳐지게 만드는 것을 말한다. Variance Variance는 "data들이 퍼져있는 정도"를 말한다. 2020. 2. 20.
ML : Ensemble Learning : Bagging Bootstrapping > Bootstrapping의 의미는 복원추출이다. 즉, sampling을 하고 다시 넣는다. 중복으로 뽑힐 수도 있다. > Bootstrapping 을 한다면 전체 데이터의 63%만 추출된다. Bagging 과정 > Bootstrapping으로 sample들을 추출한다면 전체 데이터의 63%만 포함되기 때문에 남은 data들을 활용. > 남은 data들을 validation처럼 활용하며, Error율을 계산한 후, Out-Of-Bag Error를 예측한다. Bias vs Variance 2020/02/20 - [machine_learning/statistics] - Statisics : Bias vs Variance Statisics : Bias vs Variance Bias .. 2020. 2. 20.