교육/KT 에이블스쿨

[KT AIVLE School(에이블스쿨)] - 13주차 후기(미니 프로젝트 6차)

aaaahy 2023. 11. 4. 15:25

에이블 스쿨 13주차(10. 30 ~ 11.03) - 4기 AI트랙

벌써 11월이 시작되었다.

연속된 미니프로젝트도 끝이 보인다 !!!!

 

미니 프로젝트 6차

1-2일차

 

주제 : 에이블스쿨 지원 질문, 답변 챗봇 만들기

1일차 : 데이터 탐색 및 전처리

2일차 : 모델링

 

데이터 구성은 intent, 질문, 답변 칼럼으로 이루어져 있으며 일상대화 데이터와 Q&A대화 데이터를 합친 데이터로 type을 따로 구분해주고었다. 탐색을 위해 intent별 질문 수, 문장 길이 등 분포를 확인해 보았다. 

intent별 질문 수 분포
type별 문장 길이 분포

 

데이터 전처리(특수문자 제거) 후, 형태소 분석하여 train, test 별로 나누어 저장하여 모델링할 준비를 마쳤다.

먼저  intent 별로 분류하는 Word2Vec을 이용한 모델이다. 

임베딩 벡터를 생성하여 학습할 질문들을 문장 벡터로 만들고 모델링을 진행하였다.  LightGBM 모델링 검증 결과 0.63 정확도가 나왔고 RandomForest 모델링 검증 결과 0.60 정도인 것을 확인하였다. 

LightGBM 모델을 이용하여 챗봇을 구축하기 위해 챗봇 함수를 만들어 테스트 질문을 바탕으로 답변을 하는 기능을 생성하였다.

높은 정확도는 아니기 때문에 잘못된 답변이 나오기도 하지만 어느 정도 맞는 답변도 도출해 낼 수 있었다.

 

다음은 type별로 분류하는 모델로 Embedding + LSTM 모델이다.

딥러닝을 통해 Embedding 레이어와 LSTM 레이어를 결합하여 이진 분류 모델링을 수행하였고 정확도는 0.9 이상을 도출해낼 수 있었다. 이후에는 사전학습된 Word2Vec 모델을 사용하여 FastText 모델을 생성하는 실습도 진행해 보았다. 

사실 처음 들어본 모델이기도 해서 제대로 맞게 실습했는지는 아직도 의문이지만.. 항상 스스로 찾아보고 공부하는 시간이 매우 중요하게 느껴진다.

 

3-4일차

주제 : 차량 공유업체의 차량 파손 여부 분류하기

1일차 : 데이터 전처리

2일차 : 모델링

 

3-4일차는 이미지 딥러닝으로 정상 차량 이미지 데이터와 파손 차량 이미지 데이터를 가지고 실습을 진행하였다.

모델링을 위한 데이터 구조를 만들기 위해 이미지를 array로 변화하고 이미지 개수만큼 전체 데이터에 대한 Y 클래스를 만들어 전처리를 마쳤다. 

 

Conv2D, MaxPooling2D 레이어들을 이용하여 딥러닝 모델 3가지를 설계하여 평가해 보았고 0.65, 0.75, 0.77 정도의 정확도를 도출해 낼 수 있었다. 가장 높은 정확도를 보인 모델을 이용하여 더 성능을 높이기 위해 Data Augmentaion을 시도해 보았다. ImageDataGenerator을 이용하여 generator을 생성하고 학습을 진행해 보았는데 과적합이 발생한 것처럼 보였고 성능평가를 하니 더 좋지 않게 나왔다. 왜지...?

 

 이후에는 VGG16을 불러와 VGG16과 연결한 구조를 설계하여 학습을 진행하니 0.8~0.9 정도의 정확도를 보였는데 성능평가할 때 내가 테스트 데이터를 잘 못 이용하는 거인진 몰라도.. 0.59 정도로 낮게 나왔다. 이 부분은 테스트 데이터를 제대로 확인해 볼 필요가 있는 것 같다.

 


에이블데이에 진행한 AICE 시험 후기는 결과와 함께 작성해 보겠다..

합격 기원 🙏