728x90

DeepLearning 15

[Word2Vec] CBOW - Python 코드

1. Word2Vec - CBOWCBOW에 대한 정의는 아래 게시글 참조 [NLP] Word Embedding자연어처리 공부중입니다. 잘못된 부분은 편히 댓글 부탁드립니다.1. 워드 임베딩이란?단어를 인공신경망 학습을 통해 벡터화하는 하는 것즉 텍스트를 숫자로 변환하는 방법2. 희소 표현(Sparse Rehello-heehee.tistory.com2. CODE1) Gensim Gensim: topic modelling for humansEfficient topic modelling in Pythonradimrehurek.com가장 많이 사용되고 상용화되어있는 Gensim의 Word2Vec이다.from gensim.models import Word2Vecfrom gensim.models.word2vec i..

DeepLearning/NLP 2025.02.25

[NLP] Drain3 - Python

1. Drain3자연어로 이루어진 데이터들의 Template을 자동적으로 만들어주는 라이브러리# 라이브러리 설치pip install drain32. CODEGithub GitHub - logpai/Drain3: A robust streaming log template miner based on the Drain algorithmA robust streaming log template miner based on the Drain algorithm - logpai/Drain3github.comexamples 폴더의 drain3.ini와 drain_bigfile_demo.py, drain_stdin_demo.py만 봐도 기본적인 drain3가 사용가능위를 바탕으로 아래에 코드 재 정리1) LogTemplate..

DeepLearning/NLP 2025.02.19

[NLP] 텍스트 데이터 전처리 - Log Template

자연어인 로그 데이터를 딥러닝할 때 전처리는 어떻게 할까?보통 로그 데이터는 패턴이 존재한다. 이 패턴에 대해서 알고 있다면 공통 패턴이 되는 템플릿(Template)을 만들어 처리하면 되지만 만약 데이터가 많고 템플릿을 정리할 수 없다면 이 템플릿을 만들어주는 여러 방법들이 존재한다.템플릿을 추출하는 이유는 방대한 데이터로 처리하기엔 시간이 많이 소요되기 때문에 공통 패턴을 템플릿으로 만들고 가변 데이터만 따로 처리한다면 시간비용이 적게 들기 때문이다.1. Log Parsing 의 정의와 특징 로그: 일반적으로 시스템, 애플리케이션, 네트워크 등에서 발생하는 이벤트를 기록한 텍스트 데이터로그 파싱: 로그 메시지를 구조화된 형식으로 변환하는 과정로그를 구조화하여 패턴을 생성하고 분석 가능한 형식(ex. ..

DeepLearning/NLP 2025.01.13

[NLP] Transformer - BERT

1. BERT란 무엇인가 17. BERT(Bidirectional Encoder Representations from Transformers)트랜스포머(transformer)의 등장 이후, 다양한 자연어 처리 태스크에서 사용되었던 RNN 계열의 신경망인 LSTM, GRU는 트랜스포머로 대체되어가는 추세입니다. 이에 따…wikidocs.net Bidirectional Encoder Representations from TransformersTranformer 계열의 자연어 처리 모델다음에 올 단어를 예측하는데 자주 사용하는 언어모델2. BERT의 구조BERT의 기본구조는 Transformer의 Encoder를 쌓아올린 구조로 Base버전에는 총 12개, Large버전에는 24개를 쌓음Input: 단어를 토..

DeepLearning/NLP 2025.01.11

[NLP] Encoder-Decoder와 Attention

1. Encoder 와 DecoderEncoder: Input data를 받아 압축 데이터(context vector)로 변환 및 출력Decoder: Encoder와 반대로 압축 데이터(context vector)를 입력 받아 Output data를 출력데이터를 압축하여 전달하는 이유는 정보를 압축하여 연산량을 최소화할 수 있기 때문다만 압축하여 발생하는 정보 손실이 존재정보 손실을 해결하기 위해 Attention이라는 개념이 도입됨* Embedding [NLP] Word Embedding자연어처리 공부중입니다. 잘못된 부분은 편히 댓글 부탁드립니다.1. 워드 임베딩이란?단어를 인공신경망 학습을 통해 벡터화하는 하는 것즉 텍스트를 숫자로 변환하는 방법2. 희소 표현(Sparse Rehello-heehee..

DeepLearning/NLP 2025.01.06

[NLP] 텍스트 데이터 전처리

자연어를 분석하기 위해서는 전처리가 필요한데, 텍스트 데이터는 어떻게 전처리를 해야할까? 1. 텍스트 정규화1) 클렌징: 불필요한 문자, 기호 등을 제거하는 방법ex) 특수문자, 공백, 태그 등import retext = re.sub(r']+>', '', text) # HTML 태그 제거text = re.sub(r'\d+', '', text) # 숫자 제거text = re.sub(r'[^\w\s]', '', text) # 특수문자 제거text = re.sub(r'\s+', ' ', text).strip() #공백 제거2) 소문자 변환: 대소문자 구분을 없애 분석의 일관성 유지text = text.lower()2. 불용어 제거: 의미 없는 단어 제거from nltk.corpus import sto..

DeepLearning/NLP 2025.01.05

[딥러닝 기초] Sparse Data 희소 데이터

1. 정의대부분의 값이 0또는 결측값으로 비어 있는 데이터 셋을 의미한다.반대용어는 Dense Data(밀집 데이터)라고 한다.희소데이터는 머신러닝, 자연어처리, 추천시스템 등 다양한 분야에서 자주 발생한다2. 특징고차원일 때 희소성이 나타나는 경우가 많다값이 0임에도 불구하고 기본적으로 공간을 차지하여 효율성 문제가 있다. (메모리 낭비)불필요한 계산이 많아지고 연산 속도가 느려질 수 있다.기계학습이 희소 데이터를 잘 다루지 못하면 성능이 저하될 수 있다.3. 처리방법희소행렬(Sparse Matrix)- 희소행렬은 0값을 효율적으로 저장하는 데이터 구조이다.- CSR(Compressed Sparse Row), CSC(Compressed Sparse Column)등이 자주 사용된다.from scipy.s..

[딥러닝 기초] 경사하강법 Gradient Descent

경사하강법에 대해 알기 전 Gradient에 대해서 알아보자.1. Gradient(기울기, 경사)란?출력값이 입력값에 따라 얼마나 변하는지 나타내는 값이다.손실함수(Loss Function)를 최소화하기 위해 가중치를 업데이트하는 과정에서 사용한다. 손실 함수(Loss function) 정의 및 유형 별 종류: 머신러닝과 딥러닝에서 모델의 예측값과 실제값 사이의 차이를 측정하는 함수 모델 학습의 핵심은 이 손실 값을 최소화하는 방향으로 가중치와 편향을 조정하는 것이다.1. 손실함수의 역할오hello-heehee.tistory.com1) Scalar 함수일 때Gradient는 1차원 곡선 한 점에서의 기울기를 나타낸다.2) Vector 함수일 때Gradient는 여러 입력변수에서의 변화율을 포함한 벡터(G..

[딥러닝 기초] 신경망의 기본 구조

1. 인공신경망인공신경망(Artificial Neural Networks)은 인간의 두뇌가 정보를 처리하는 방식을 본 떠 설계된 컴퓨터 알고리즘이다.기본적으로 입력(Input), 은닉층(Hidden Layers), 출력(Output)으로 구성된 계층적 네트워크이다.인공신경망에 들어가기 앞서 기본 내용인 퍼셉트론에 대해 알아보자.2. 퍼셉트론(Perceptron): 인공신경망의 가장 기본적인 형태로 단층신경망(Single-Layer Neural Network)이다.퍼셉트론은 지도학습을 통해 학습한다.가중치와 바이어스를 무작위로 초기화한다.주어진 입력데이터를 통해 예측값 y를 계산한다.예측값과 실제값의 차이를 기반으로 가중치를 업데이트 한다.모든 데이터를 반복하며 가중치를 수정한다.1) 퍼셉트론의 구조 In..

[딥러닝 기초] 활성 함수(Activation Function) 정의 및 종류

: 뉴런의 출력값을 결정하는데 사용1. 역할비선형성 추가- 입력과 출력의 관계를 비선형으로 만들어 신경망이 복잡한 데이터 분포를 학습할수 있게 만듦- 비선형 함수가 없으면 여러 층의 뉴런이 선형적으로 결합되어 단순 선형 모델과 동일특정 값을 강조하거나 억제- 출력값을 제한하거나 특정 범위로 스케일링하여 모델의 학습을 안정화함계산 효율성 향상- 간단한 계산으로 모델의 효율성 유지 2. 종류1) 출력층에서 사용선형 활성 함수(Linear Activation Function)회귀문제의 출력층입력을 그대로 출력으로 전달간단하고 비용이 적음비선형성이 없어 다층 신경망의 장점을 살릴 수 없음가중치 갱신효과가 동일하여 학습이 어려움시그모이드 함수(Sigmoid Function)이진분류문제의 출력층출력 범위 [0, 1..

728x90