전체 글
-
[Deep Learning] NLP - 통계적 트리밍(Trimming)Data Science/Machine Learning & Deep Learning 2021. 4. 15. 00:58
자연어 처리에서 불용어 사전을 이용해서 불용어를 직접 제거해주는 방법도 있지만, 통계적인 방법을 이용해서 전체 말뭉치에서 너무 많이 쓰였거나 너무 적게 쓰인 토큰을 제거해주는 방법도 있습니다. 위 왼쪽 그래프는 토큰화 후 토큰의 누적 분포를 나타낸 그래프입니다. 그래프를 통해 소수의 단어들이 전체 텍스트 데이터의 약 90%를 차지하고 있음을 알 수 있습니다. 이는 전체 말뭉치에서 자주 나타나는 단어들(그래프의 왼쪽)이거나 자주 나타나지 않는 단어들(그래프의 오른쪽)로 너무 많이 또는 너무 드물게 나타나기 때문에 텍스트 큰 의미를 가지지 못하고 통찰력을 제공하지 못할 확률이 높습니다. 따라서 통계적 트리밍으로 너무 많이 쓰인 토큰과 너무 적게 쓰인 토큰을 제거하여 우측 그래프와 같은 분포를 만들어 주겠습니..
-
[Deep Learning] NLP - 불용어 ( Stop Words ) 처리Data Science/Machine Learning & Deep Learning 2021. 4. 15. 00:12
어떠한 데이터를 토큰화한 후 문서에 많이 사용된 단어를 보면 'I', 'and', 'of' 등의 텍스트 내에서 큰 의미를 가지지 않는 것들을 볼 수 있습니다. 이는 그다지 텍스트의 내용을 이해하는데 도움이 되지 않는 것들로 불용어(Stop words) 라고 합니다. 대부분의 NLP 라이브러리는 불용어 사전을 내장하고 있습니다. spacy의 불용어 사전을 보겠습니다. import spacy # load the small english model nlp = spacy.load("en_core_web_sm") print(nlp.Defaults.stop_words) 먼저 데이터를 불러와 불용어를 제거하지 않고 토큰화를 해보았습니다. import spacy from spacy.tokenizer import Tok..
-
[Deep Learning] NLP - 텍스트 토큰화 ( Tokenization )Data Science/Machine Learning & Deep Learning 2021. 4. 13. 22:44
토큰(Token)은 보통 자연어 처리에서 최소단위로 사용되는데 단어, 형태소 등의 형태가 될 수 있습니다. 문서나 문장 등을 자연어 처리에 사용하기 위해 텍스트를 토큰으로 바꿔주는 토큰화(Tokenization)를 해야하는데, 토큰화를 올바르게 하기 위해서 아래와 같은 조건을 충족하는 것이 좋습니다. 반복 가능한 데이터 구조(list, generator 등)에 저장 가능하면 대문자 또는 소문자로 통일 가능하면 영문자, 숫자가 아닌 문자들을 제거해야함 - ex) 문장부호, 공백 등 NLP 라이브러리를 사용하기 앞서 파이썬을 이용하여 토큰화를 위한 함수를 만들어 보겠습니다. import re # 정규식 # []: [] 사이 문자를 매치, ^: not regex = r"[^a-zA-Z0-9 ]" # 치환할 문..
-
[Deep Learning] 손실함수(Loss Function)Data Science/Machine Learning & Deep Learning 2021. 4. 13. 00:15
신경망의 성능을 측정하기 위해서는 손실 함수를 계산해야 합니다. 출력층에서 나온 예측 값을 실제 타겟 값과 비교하여 그 차이를 계산하는 함수가 손실함수이며, 이 때 출력값과 실제 타겟 값의 차이가 크면 손실함수의 값이 커지며, 차이가 적다면 손실함수의 값도 작아집니다. 모델은 이러한 손실 함수의 값이 작아지는 방향으로 가중치를 업데이트 하게 됩니다. 다음 손실함수에 대해서 알아보겠습니다. MeanSquaredError BinaryCrossentropy CategoricalCrossentropy SparseCategoricalCrossentropy MeanSquareError - regression 손실 함수 - 연속형 변수의 예측 문제시 사용 - 예측값과 ..
-
[Deep Learning] 역전파 ( Back Propagation )Data Science/Machine Learning & Deep Learning 2021. 4. 11. 01:16
역전파를 설명하기 위한 신경망입니다. 입력층(input layer)과 은닉층(hidden layer), 출력층(output layer)을 가지고 있으며, 2개의 입력(입력 변수 두가지)을 받고 은닉층과 출력층에는 각각 노드를 두개씩 가지고 있습니다. 위 그림으로 순전파와 역전파의 진행 방향을 간단하게 알 수 있습니다. 순전파가 입력층에서 값을 입력 받아 은닉층 출력층으로 입력값에 가중치를 곱한 값을 가중합하여 출력층에서 출력값을 내어놓는 것을 말한다면, 역전파는 반대로 출력층에서 입력층의 방향으로 진행되며 손실함수를 해당 가중치로 미분한 값을 이용하여 가중치를 업데이트 하는 것을 말합니다. 인공 신경망 모델에서 학습이란 위의 순전파, 역전파 과정을 반복하며 적은 오차를 내는 가중치를 찾아 업데이트 하는 ..
-
[Deep Learning] 인공신경망( Artificial Neural Networks )과 퍼셉트론( Perceptron )Data Science/Machine Learning & Deep Learning 2021. 4. 6. 00:36
신경망 기본 구조 노드 (뉴런) - Node 가중치 (엣지, 연결) - Weight 입력/ 은닉/ 출력층 - Layer 퍼셉트론 ( Perceptron ) 하나의 노드로 이루어진 신경망 다수의 입력값을 받아 하나의 출력값 내보냄 노드 ( Node ) 값을 입력 받아 일정값이 넘으면 넘겨주는 역할 노드맵에서 동그라미 부분 레이어는 n개의 노드(뉴런)으로 구성 신체 신경계에서 뉴런의 역할 가중치 ( Weight) 노드로 입력 받은 값에 곱해지는 수치 가중치가 곱해진 값들은 모두 더해져 활성화 함수에 따라 그 결과를 다음 층의 노드로 전달 신경망에서 가중치를 찾는 과정을 학습이라고 하며, 가중치는 예측에 사용됨 신경망 층 ( Layer ) 입력층 ( Input Layers ) 데이터셋으로부터 입력받는 층 입력..
-
[SQL] SQL Query 쿼리문 (1) - SELECT, FROM, WHERE, ORDER BY, GROUP BY, LIMITSQL 2021. 4. 4. 23:01
SQL Query - SELECT, FROM, WHERE, ORDER BY, GROUP BY, LIMIT 1. SELECT & FROM 데이터를 불러오는 쿼리문으로 SELECT column FROM table 형식으로 사용할 수 있습니다. 지정한 테이블에서 해당 칼럼의 데이터를 불러올 수 있습니다. 테이블에서 칼럼 불러오기 SELECT Title FROM albums 테이블에서 칼럼 여러개 불러오기 SELECT Title, ArtistId FROM albums 테이블에서 모든 칼럼을 불러오기 - 칼럼명 자리에 * SELECT * FROM albums 2. WHERE 쿼리문에서 WHERE 은 필터역할을 합니다. 지정한 값 가진 데이터 불러오기 ex) customers 테이블에서 CustomerId 가 62..
-
[SQL] 데이터베이스 설계SQL 2021. 4. 4. 20:54
SQL(Structured Query Language) 는 데이터베이스용 프로그래밍 언어로, 주로 관계형 데이터베이스에서 사용됩니다. 여기서 관계형 데이터베이스(relation database)란 테이블을 사용하는 데이터베이스라고 할 수 있습니다. 데이터베이스에서 행과 열로 구성된 체계화된 데이터를 의미하는 테이블( relation)은 1:1, 1:N, N:N 관계를 가질 수 있습니다. 뿐만 아니라 테이블 내에서 관계를 가지는 자기참조 관계인, self-referencing 관계도 있습니다. 데이터베이스에서 가장 많이 쓰이고 가장 흔하게 발견할 수 있는 관계는 일대다(1:N) 관계입니다. 테이블에서 열은 필드(field) 혹은 Column이라고 하며, 한 행에 저장된 정보는 레코드(record) 혹은 튜..