반응형 전체 글46 RNN 사용해서 감정 분석 해보기 Sentiment analysis란 텍스트 데이터에서 감정 상태를 식별하는 자연어 처리의 중요한 과제이다. 저번에는 BERT를 사용해봤고 이번에는 RNN을 사용해 감정 분석을 수행하고 그 성능을 비교해 보겠다. 두 모델의 코드 설명, 성능 지표 분석, 모델 특성 및 성능 비교, 그리고 프로젝트를 통해 얻은 교훈을 포함한다. 다음 사진은 SSLSTM(Sentiment and Semantic LSTM) 아키텍처 구조를 나타내는 사진이다. 감정 분석 분야에 순환 신경망, Recurrent Neural Network 구조가 눈에 띄게 성능을 잘 보이는 듯 하다. 데이터 전처리RNN 모델의 경우에도 BERT와 동일한 전처리 과정을 거친다. URL, 멘션, 해시태그, 숫자, 특수 문자를 제거하고, 중.. 2024. 6. 20. BERT로 감정 분석 실습 해보기 자연어처리 수업 도중 과제가 나와서 LLM으로 감정분석 을 해볼수 있는 기회가 생겼다. 가장 먼저 sentiment analysis란 텍스트 데이터에서 감정 상태를 식별하는 자연어 처리의 중요한 과제이다. 오늘은 BERT를 사용해 감정 분석을 수행하고 그 성능을 검증해 보겠다. 모델의 코드 설명, 성능 지표 분석, 모델 특성 및 성능 비교를 포함한다. BERT 모델을 사용한 감정 분석 데이터 전처리BERT 모델의 경우, 텍스트 데이터를 전처리하여 모델에 적합한 형식으로 변환한다. 전처리 단계는 다음과 같은 이유로 수행된다. l URL 제거: 텍스트 데이터에 포함된 URL은 감정 분석에 불필요한 잡음이 될 수 있으므로 제거l 멘션 제거: 소셜 미디어 텍스트에서 멘션(`@username`)은.. 2024. 6. 20. 챗봇 구현을 위한 데이터로더 기능 테스트 학교 Alpha프로젝트를 위한 많은 AI 기능을 처리하기 위한 자연어처리 인공지능 모델을 만들기 위해Pytorch, Tensorflow, 논문, flask, 각종 모델과 API 스터디를 했다. 스터디 결과 원하는 기능인 기술 스택 추천 기능, 코드 블럭 -> 텍스트기반 코드 변환 기능, Q&A 챗봇 기능을 구현 하려면 엄청난 데이터를 요구하는 대규모 언어 모델인 LLM이 필요하다고 느꼈다. 대규모 LLM 모델을 다루기전에 GPT-2, 3로 파인튜닝 코드를 작성해보면서 감을 잡았다. 가장 첫 번째로 해볼 것은 배포를 위한 Flask 스터디와 구현 방법 탐구이다. OpenAI의 API 토큰을 받아온 뒤 작성한Model2의 코드이다. app.pyimport openaifrom fl.. 2024. 5. 22. Transformer로 간단한 챗봇 구현 및 평가 해보기 챗봇 구현을 위한 전처리 과정과 앞 단계 과정을 끝내고이제 챗봇 구현과 평가를 위한 코드를 작성해보자. 인코더와 디코더의 입력, 그리고 레이블 만들기. tf.data.Dataset을 사용하여 데이터를 배치 단위로 불러올 수 있다.# 텐서플로우 dataset을 이용하여 셔플(shuffle)을 수행하되, 배치 크기로 데이터를 묶는다.# 또한 이 과정에서 교사 강요(teacher forcing)을 사용하기 위해서 디코더의 입력과 실제값 시퀀스를 구성한다.BATCH_SIZE = 64BUFFER_SIZE = 20000# 디코더의 실제값 시퀀스에서는 시작 토큰을 제거해야 한다.dataset = tf.data.Dataset.from_tensor_slices(( { 'inputs': question.. 2024. 5. 2. Transformer 데이터 전처리 해보기 트랜스포머 논문 리뷰와 어텐션 메커니즘을 배운지 얼마 안 된 시점에서, 지금 진행중인 프로젝트와 결이 맞다고 판단하여GPT-4 파인튜닝(미완성)한 챗봇과 트랜스포머 간단 실습과 비교했을 때의 어텐션 스코어 체크를 진행 하려고 한다. 가장 먼저 판다스에서 데이터를 로드해준다. 데이터 로드하기import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport reimport urllib.requestimport timeimport tensorflow_datasets as tfdsimport tensorflow as tf 챗봇 데이터를 로드하여 상위 5개의 샘플을 출력해보자.urllib.request.urlretrieve("ht.. 2024. 5. 1. Transfomer는 무엇일까? + 포지셔널 인코딩 간단 구현 해보기 자연어 처리에 대해 공부하는 와중에논문을 분석하고 구현해보고 싶은 주제를 발견했다.. 논문 리뷰와 포지셔널 인코딩의 간단한 구현도 해보자. 바로 Transformer 트랜스포머(Transformer)는 2017년 구글이 발표한 논문인 "Attention is all you need"에서 나온 모델로 기존의 seq2seq의 구조인 인코더-디코더를 따르면서도, 논문의 이름처럼 어텐션(Attention)만으로 구현한 모델이다. 이 모델은 RNN을 사용하지 않고, 인코더-디코더 구조를 설계하였음에도 번역 성능에서도 RNN보다 우수한 성능을 보여주었다. 사실상 굉장히 혁신적인 모델 기존의 seq2seq의 한계 트랜스포머에 대해서 배우기 전에 기존의 seq2seq를 상기해보면 기존의 seq2seq .. 2024. 3. 30. 컨볼루션 신경망(CNN)(2) 오늘은 CNN의 구조에 대해 수식과 알고리즘을 통해 자세히 들여다 보겠다. 이를 위해서 변수 정리를 완벽히 하고 가자. 숙지 하고 넘어가자. im2col, col2im 컨볼루션층과 풀링층 코드를 단순하게 유지해 실행속도를 빠르게 하기 위해 두 알고리즘을 이용하겠다. im2col(image to column)은 4차원 배열을 행렬로 변환하고 col2ima(column to image)는 행렬을 이미지를 나타내는 4차원 배열로 변환한다. 2024. 2. 23. 컨볼루션 신경망(CNN)(1) 저번 시간엔 각 신경망에 따라 코드로 딥러닝 구현을 해보았다. 이번 시간엔 컨볼루션 신경망(CNN)에 대해 알아보자. CNN에서는 컨볼루션층, 풀링층, 전결합층이 등장한다. 또한 이미지를 유연하고 정밀하게 인식하기 위해 CNN은 일반적인 신경망과는 구조가 조금 다르다. 일반적으로 이미지는 각 픽셀이 인접한 픽셀과 강한 연관성이 있어, 컨볼루션층에서는 출력값이 입력값의 일부로부터만 영향을 받는 국소성(local connectivity, locality)이 강한 처리가 수행된다. 또한 풀링층에서는 인식하는 대상의 위치를 유연하게 처리할 수 있는 구조로 구성되어있다. 이제 CNN의 원리와 구조를 배워보자. 시각 처리 세계 CNN은 생물체의 시각 구조를 모델링한 것으로 우선은 CNN.. 2024. 2. 14. 딥러닝 구현 및 시각화 해보기 저번 시간에 딥러닝 구현에 대한 디테일을 살펴보았다. 이번에는 코드로 구현해보자. #붓꽃 품종 분류 문제(전체 코드))#은닉층 활성화 함수: ReLU#출력층 활성화 함수: 소프트맥스 함수#손실 함수: 교차 엔트로피 오차#최적화 알고리즘: 확률적 경사 하강법#배치 사이즈: 8#은닉층의 뉴런 수: 25#코드 흐름#1. 데이터 입력과 전처리#2. 각 층 구현#3. 신경망 구축#4. 미니 배치법으로 학습#5. 정답률 측정import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsiris_data = datasets.load_iris()input_data = iris_data.datacorrect = iris_data.targetn.. 2024. 2. 14. 이전 1 2 3 4 5 6 다음 반응형