본문 바로가기

전체 글346

자연어처리 : 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.
ML : Ensemble Learning 정의 > ensemble 은 조화라는 의미를 가진다. > 여러가지의 base model, base learner, single learner 들로 이루어져 있다. > 이는 대수의 법칙 (큰 모집단에서 무작위로 뽑은 평균이 전체 모집단의 평균과 가까울 가능성이 높다는 통계와 확률분야의 기본 개념) 에 의해 많은 시행 (여러개의 learner)의 결과가 수학적으로 합리적인 결과를 가져온다. > 대수의 법칙에 의해 overfitting 된 다양한 learner 들을 만들면 전체의 모델의 성능이 증가할 수 있다. Model & 목표 Ensemble Learning의 기본적인 model은 성능이 좋지 않은 여러 개의 learner들을 붙여서 성능을 끌어올리는 것을 목표로 한다. 조건 - 1 (p는 0.5 이상) .. 2020. 2. 20.