728x90

09_DL(Deep_Learning) 39

34_XAI(설명 가능한 인공지능)

설명 가능한 인공지능(XAI)XAI(Explainable AI)는 인간이 이해할 수 있는 방식으로 인공지능 모델의 의사결정 과정을 설명해주는 기술 및 접근 방식목표AI의 "블랙박스" 문제 해결신뢰성, 투명성, 책임성 확보XAI가 필요한 이유의료 : AI가 암이라고 판단한 이유를 의사가 납득해야 진단에 활용 가능금융 : 대출 거절 사유가 설명되지 않으면 고객 불신 유발법률/규제 : 자동화된 결정에 대해 이유를 요구할 수 있음자율주행 : 사고 발생 시 의사결정 과정을 분석해야 함AI 윤리 : 공정성, 편향 등을 검증하려면 설명 가능해야 함주요 XAI 기법LIMESHAPGrad-CAMsailency Map SHAP# pip install shap SHAP(타이타닉 생존자 예측)import pandas as ..

33_bert_문서분류

# decoder가 필요한 부분이 거의 없으므로 Bert가 GPT보다 문서분류를 더 잘함 모델 구조입력 문장을 토큰화한 뒤 문장 시작과 끝을 알리는 스페셜 토큰 CLS 와 SEP를 각각 원래 토큰 시퀀스 앞뒤에 붙임위의 데이터를 BERT모델에 입력하고 문장 수준의 벡터(pooler_output)를 만들고, 이 벡터에 작은 추가 모듈을 덧붙여 모델 전체의 출력이 [해당 문장이 긍정일 확률, 해당 문장이 부정일 확률]의 형태가 되도록 학습import osimport pandas as pdfrom tqdm import tqdmimport torchfrom torch.utils.data import DataLoader, Datasetfrom transformers import BertTokenizer, Bert..

32_트랜스포머

사전 학습 모델언어 모델(language model)시퀀스에 확률을 부여하는 모델단어 시퀀스를 입력받아 해당 시퀀스가 얼마나 그럴듯한지 확률을 출력하는 모델한국어 말뭉치로 학습한 언어 모델은 자연스러운 한국어 문장에 높은 확률값을 부여함문장에서 i번째로 등장하는 단어를 wi로 표시한다면 n개 단어로 구성된 문장이 해당 언어에서 등장할 확률, 즉 모델의 출력은 P(w1, w2, ..., wn) 처럼 쓸 수 있음n개 단어가 동시에 나타날 결합 확률(joint probability)을 의미잘 학습된 한국어 모델이 있다면 P(무모, 운전) 보다는 P(난폭, 운전)이 큰 확률값을 지녀야 함"난폭"이 나타난 다음에 "운전"이 나타날 확률을 조건부 확률(conditional probability)라고 함P(운전|난폭..

31_트랜스포머_토큰화

토큰화문장을 토큰 시퀀스로 나누는 과정수행 대상에 따라 문자, 단어, 서브워드 등의 방법이 있음트랜스포머 모델은 토큰 시퀀스를 입력받으므로 문장에 토큰화를 수행해줘야 함토큰화를 수행하는 프로그램을 토크나이저(tokenizer)라고 함한국어 형태소 분석기는 토큰화 뿐만 아니라 품사 부착까지 수행 단어 단위 토큰화가장 쉽게 단어 단위 토큰화를 수행하는 방법은 공백으로 분리하는 것예) 어제 카페 갔었어 -> [어제, 카페, 갔었어]공백으로 분리하면 별도로 토크나이저를 쓰지 않아도 된다는 장점이 있지만, 한국어 데이터는 어휘 집합의 크기가 매우 커질 수 있음갔었어, 갔었는데요 처럼 표현이 살짝만 바뀌어도 모든 경우의 수가 어휘 집합에 포함되어야 하기 때문한국어 형태소 분석기를 사용하면 어휘 집합의 크기가 커지는..

30_LLM의 개념

LLM 개념인공지능의 한 분야로, 대규모 데이터로 학습한 결과를 이용해서 인간의 언어를 처리하고 생성하며, 맥락을 이해하는데 사용됨Large Language Model의 약자인간의 언어를 처리하는 모델 언어 모델(Language Model)통계적 언어 모델초기의 언어 모델통계적 방법에 기반컴퓨터가 문장이나 단어를 얼마나 자연스럽게 표현할지를 수학적으로 계산언어 모델에서 사용하는 확률/통계적 방법 : n-gram언어의 통계적 패턴을 학습해서 문장을 이해하고 새로운 문장을 만들어내는 데에 도움을 줌단점가능한 모든 n-gram을 데이터베이스에 저장하고 있어야 하므로 데이터베이스를 사전에 만들어 두어야 함n이 커질수록 문맥을 제대로 이해하지 못하는 경우가 많음 신경망 언어 모델신경망을 기반으로 하는 언어 모델머..

29_개체명 인식(양방향LSTM)

양방향 LSTMRNN이나 LSTM은 시퀀스 또는 시계열 데이터 처리에 특화되어 은닉층에서 과거의 정보를 기억할 수 있음그러나 순환 구조의 특성상 데이터가 입력 순으로 처리되기 때문에 이전 시점의 정보만 활용할 수 밖에 없다는 단점이 존재문장이 길어질수록 성능이 저하예) ios앱 (개발)은 맥북이 필요합니다위의 경우에 ios와 앱이라는 단어만으로는 개발 이라는 단어를 유추하기 힘듦문장의 앞부분보다 뒷부분에 중요한 정보가 있음양방향 LSTM(Bidirectional LSTM)기존 LSTM 계층에 역방향으로 처리하는 LSTM 계층을 추가해 양방향에서 문장의 패턴을 분석할 수 있도록 구성입력 문장을 양방향에서 처리하기 때문에 시퀀스 길이가 길어져도 정보 손실 없이 처리가 가능 개체명 인식(Named Entit..

28_문답데이터_감정분류

문답데이터_감정분류 # 챗봇# Q -> 분류 -> DB검색 -> 개체명 인식(한국어의 패턴 인식) -> A 챗봇 문답 데이터 감정 분류 모델문장을 감정 클래스별로 분류하는 CNN 모델 구현텍스트 데이터의 임베딩 품질만 괜찮다면 자연어 분류에도 CNN이 좋은 성능을 낼 수 있음컴퓨터는 임베딩된 벡터로 표현 가능한 대상이라면 특징을 추출하도록 CNN 모델을 학습할 수 있음데이터셋 구조Q(질문)A(답변)label(감정)0 : 일상다반사1 : 이별(부정)2 : 사랑(긍정) import numpy as npimport pandas as pdimport tensorflow as tffrom tensorflow.keras import preprocessingfrom tensorflow.keras.models impo..

27_텍스트 유사도

텍스트 유사도 ● 챗봇 엔진에 입력되는 문장과 시스템에서 해당 주제의 답변과 연관되어 있는 질문이 얼마나 유사한지 계산할 수 있어야 적절한 답변을 출력할 수 있음 ● 두 문장 간의 유사도를 계산하기 위해서는 문장 내에 존재하는 단어들을 수치화 해야 함 ■ 이 때 언어 모델에 따라 통계를 이용하는 방법과 인공신경망을 이용하는 방법으로 나눌 수 있음 ■ word2vec은 인공 신경망 방식 ■ 인공 신경망 방식이 절대적으로 좋은 것은 아니며 상황에 따라 통계적인 방식이 더 적절할 수 있음 01. n-gram 유사도(텍스트 데이터 처리의 기본) ● 주어진 문장에서 n개의 연속적인 단어 시퀀스(단어 나열)을 의미● n개의 단어를 토큰으로 사용● 이웃한 단어의 출현 횟수를 통..

26-1_Word2Vec 학습

Word2Vec 학습 from gensim.models import Word2Vec # 이전에는 anaconda에 포함돼있지 않았으나 현재는 포함돼있음from konlpy.tag import Komoranimport timeimport pandas as pd df = pd.read_csv("./data/nsmc/ratings.txt", sep="\t")df = df.dropna()df.head() komoran = Komoran() df.shape(199992, 3) %%time# 문장 단위로 명사만 추출해 학습 입력 데이터로 만듦docs = df["document"].map(lambda x: komoran.nouns(x))CPU times: total: 1min 30sWall time: 1min ..

728x90