728x90

Deep Learning/Natural Language Processing 23

KG graph with ESG data

앞선 실험을 엎은 후, 새로운 아이디어를 찾던 중, 원래 graph와 recommendation system에 관심이 있어 고민을 하였다. 왜냐.. 공부도 새로 시작해서 알아봐야 했고, 일단 어려웠기 때문이다. 그러던 중, KG로 맘을 굳히고 공부를 해보기로 하였다. 문장이 clustering이 되어서 저런 식의 이쁜 그래프를 만들기를 원했다. 포부도 좋았고, 이게 된다면 석사 한 학기만에 졸업 논문은 끝..이라고 생각할 정도로 맘에 들었다. 하지만, 물론 나는 쉽게 생각했던 것이었으며... 결과는 꽤나 참담(?)했다. 일단 한국어 triplet을 만드는 것부터 어려웠다. 여러 손 쉬운 방법도 사용해 보고, 끝이 보이지 않을 rule-based도 사용해 보았지만 한국어 triplet은 너무 어려운 것....

N label classification with ESG data

연구실 자체 데이터로, esg를 주제로 한 데이터셋을 구축하였다. 대략 6 ~ 12 개월 동안 데이터 수집 및 전처리, 그리고 라벨링을 한 것이다. 데이터는 우리나라 대기업에서 발간한 esg 보고서를 사용하였고, 금융, 자동차, 전자, 중공업, 항공 다섯 가지 섹션으로 나뉘며 전체 데이터의 수는 약 10만 개다. 여러 명이 함께 머리를 대고 직접 내용을 읽어보며, k-esg 가이드라인의 내용과 일치하는지 확인하며 라벨링을 하였다. 이를 바탕으로 KoBERT를 사용하여 분류 성능을 보았고, 5 class의 분류 성능이 거의 85%에 가깝게 좋은 결과를 보였다. 이와 관련된 논문은 다음을 확인하면 된다. 여기에 이어 esg project를 수행하기 위해 데이터를 알고 어떻게 사용되면 좋을지 공부하면서 개인적..

[pytorch] 단어와 타입 임베딩

1. 임베딩 - 임베딩 : 이산 타입과 벡터 공간의 포인트 사이에 매핑을 학습하는 것 1.1 임베딩 이유 - 문장에 등장하는 카운트 값은 단어의 빈도에 상응하는데, 이 카운트 기반 표현은 중요한 내용이나 의미가 벡터의 여러 차원에 표현되어서 분산적 표현이라고도 부른다. 분산 표현은 단어가 훨씬 낮은 차원의 밀집 벡터로 표현된다는 사실에서 이름을 따왔습니다. 단어의 의미와 다른 속성이 이 밀집 벡터의 여러 차원에 걸쳐 분산됩니다. - 저차원으로 학습된 밀집 표현은 one-hot vector나 카운트 기반의 벡터와 다른 장점이 있는데, ① 계산이 효율적으로 수행된다. ② 카운트 기반은 여러 차원에 비슷한 정보를 중복해 인코딩한 고차원 벡터를 만듭니다. ③ 매우 고차원 입력은 머신러닝과 최적화에서 실제로 문제..

[pytorch] Feed-forward network

퍼셉트론은 데이터에서 복잡한 패턴을 학습할 수 없다는 단점이 있다. 배타적 논리합(XOR)에 해당하는 데이터 셋을 퍼셉트론은 학습하지 못한다. MLP (MultiLayer Perceptron) - 간단한 퍼셉트론을 구조적으로 확장한 신경망 CNN (Convolutional Neural Network) - 디지털 신호 처리에 사용하는 윈도 필터에 영향을 받아 만든 신경망 - 윈도 특성 덕분에 입력에 있는 국부 패턴을 학습할 수 있다. - 컴퓨터 비전에 아주 적합하고 단어나 문장 같으느 순차 데이터에서 부분 구조를 감지하는 데도 이상적이다. 크게 위의 두 가지를 소개하고 예제도 함께 보겠다. 1. 다층 퍼셉트론 (MLP) - MLP는 많은 퍼셉트론이 모여 있으므로 층의 출력은 출력값 하나가 아닌 벡터이다. ..

[pytorch] 신경망의 기본 구성 요소

퍼셉트론 : 가장 간단한 신경망 $y = f(w * x + b)$ - 선형 함수와 비선형 함수의 조합으로 선형 함수 표현인 $wx + b$ 는 아핀 변환 (affine transform)이라고도 한다. 2. 활성화 함수 (1) 시그모이드 $f(x) = \frac{1}{1+e^{-x}}$ - 입력 범위 대부분에서 매우 빠르게 포화되어 gradient가 0이 되거나 발산하여 부동소수 오버플로가 되는 문제 발생. → 그레이디언트 소실/ 폭주 문제 → 신경망에서 거의 출력층에서만 쓰임 (2) 하이퍼볼릭 탄젠트 $f(x) = tanh x = \frac{e^x - e^{-x}}{e^x + e^{-x}}$ - (-∞,∞) 범위의 실숫값을 [-1, 1]로 바꾼다. (3) 렐루 $f(x) = max(0, x)$ - gr..

[pytorch] nlp기술 빠르게 훑어보기

github 확인해보기 2.1 말뭉치, 토큰, 타입 - 말뭉치(corpus) : 원시 텍스트(ASCII나 UTF-8)와 이 텍스트에 관련된 메타데이터 - 토큰(token) : 일반적으로 문자를 연속된 단위로 묶음 - 샘플 / 데이터 포인트 : 메타데이터가 붙은 텍스트 - 토큰화(tokenization) : 텍스트를 토큰으로 나누는 과정 - 타입(type) : corpus에 등장하는 고유한 token ※ 특성공학 (feature engineering) : 언어학을 이해하고 NLP 문제 해결에 적용하는 과정 2.2 유니그램, 바이그램, 트라이그램, ... , n-그램 N-그램 : 텍스트에 있는 고정 길이(n)의 연속된 token sequence - unigram : 토큰 한 개, bigram : 토큰 두 개..

[pytorch] Intro

[파이토치로 배우는 자연어처리] 교재 참고 처음부터 공부하는 마음으로 책 정리를 해보았다. 1.1 지도학습 - 머신러닝에서 지도 또는 지도 학습은 샘플(observation)에 대응하는 예측하는 값(target)의 정답을 제공하는 방식이다. - sample : 예측 시 사용하는 아이템. 즉, input - target : sample에 상응하는 label, 또는 ground truth - model : target label을 예측하는 함수 - parameter : 모델을 규정함. weight라고도 불림. - predict : estimate $\hat{y}$ - loss function : 훈련 데이터에 대한 예측이 타깃과 얼마나 멀리 떨어져 있는지 비교 ①..

감성 분석 Sentiment Analysis

내용 관련 예시 코드는 여기를 확인해주세요. 네이버 상품 리뷰와 뉴스 그룹 데이터 등을 사용하여 감정 분석을 실제 코드로 연습한 것입니다. 시각화를 이용하여 train set과 validation set의 accuracy를 확인하였습니다. 긍정적인 댓글을 남겼을 때, 부정적인 댓글을 남겼을 때의 pos/neg를 잘 구분해내어 확률을 나타내는지 확인할 수 있습니다.

합성곱 신경망 CNN

Convolutional Neural Network, CNN 이미지 인식, 음성 인식 등에 자주 사용되는데, 특히, 이미지 인식 분야에서 거의 모든 딥러닝 기술에 사용 1989년 얀 르쿤(Yann LeCun) 교수의 논문에서 발표 필기체 인식에서 의미가 있었지만 범용화하는데에는 무리 1998년, "Gradient-Based Learning Applied to Document Recognition"이라는 논문에서 LeNet-5 제시 합성곱 층(convolution layer), 풀링 층(pooling layer) 소개 간단한 실습 예제 코드는 여기를 확인해주세요. + 스팸메일 분류기 with CNN 관련한 간단한 내용 정리는 제 tistory를 확인해주세요.

728x90
반응형