목록분류 전체보기 (97)
Ssul's Blog
0. 최신 추천시스템은? - 지금까지 컨텐츠기반 추천, 협업필터링 추천, 딥러닝 등 다양한 추천 방법을 알아봤다. - 협업필터링에는 메모리기반과 모델 기반으로 나눠지고, - 메모리기반은 유저기반의 협업필터링, 아이템기반의 협업필터링으로 구분된다. - 또한 모델기반의 협업필터링은 MF, FM 등이 있었다. - 최근에는 추천에도 많은 딥러닝 기술들이 들어왔고, 가장 기본으로는 데이터를 임베딩한후 신경망에 단순히 넣는 Neural CF가 있다. - Wide and Deep은 구글 플레이스토어 추천 알고리즘으로 사용되어서 유명했으며, - 기존의 FM과 딥러닝이 합쳐저서 구현된 DeepFM - 오토인코더를 활용한 추천시스템도 있으며, 최근에 SOTA를 찍었다는 Graph기반의 추천시스템도 있다. 1. 최신 딥러닝..
0. 딥러닝을 어떻게 추천시스템에? - 딥러닝을 통해서, 이미지를 classification하고, - 문장을 입력해서 감성을 분석하는 등 - 이미 딥러닝을 통해서 다양한 것이 된다는 것을 확인했다. - 그렇다면 추천시스템도 가능하지 않을까? 당연히 가능하다. 아이디어는 넣을수 있는 것은 모두(?) 신경망에 넣고, 아웃풋으로 rating을 주는 모델을 학습. - 기존의 머신러닝이 feature extraction(engineering)과 classification으로 구분되었다면, 딥러닝은 신경망에 넣으면 알아서 feature extraction+classification 진행된다. 그 사례를 이번 딥러닝 추천에서도 잘 보여줄 것이다. 1. 딥러닝 추천시스템 구조 - 잘 알려져 있는 무비렌즈 데이터를 사용..
0. 영상을 요약해주는 AI만들기 위하여 - Youtube영상 정보를 어떻게 가져 올것인가? - 크롤링? 아마 잘 만들어 놓은 라이브러리가 있을 것이다. - 역시나 있다. yt-dlp, youtube-transcript-api 1. 유튜브 영상 정보 가져오기(채널명, 영상길이, 제목 등등) pip install yt-dlp - 설치하자. 해당 라이브러리는 youtube영상의 정보를 가져오는 라이브러리 import yt_dlp def get_youtube_video_info(video_url): ydl_opts = { 'noplaylist': True, 'quiet': True, 'no_warnings': True, } with yt_dlp.YoutubeDL(ydl_opts) as ydl: video_in..
0. 챗봇의 기본구조 class ChatLogCreate(generics.CreateAPIView): queryset = ChatLog.objects.all() serializer_class = ChatLogSerializer permission_classes = [AllowAny] def post(self, request, *args, **kwargs): client_id = request.data.get('client') client = Client.objects.get(id=client_id) if client.chat_counter >= 20: return Response({"detail": "대화 횟수가 20회를 초과하였습니다."}, status=status.HTTP_400_BAD_REQUEST..
0. 허깅페이스는 무엇인가?(huggingface.co) 허깅페이스(Hugging Face)는 인공 지능(AI) 분야에서 자연어 처리(NLP)를 중심으로 한 다양한 딥러닝 모델과 도구들을 제공하는 회사. 오픈소스 라이브러리인 'Transformers'를 통해 유명해짐. 이 라이브러리는 다양한 전처리 방법, 모델 아키텍처(BERT, GPT, T5 등), 그리고 후처리 방법을 포함하여 NLP 분야에서 광범위하게 사용. - AI관련 깃허브 느낌 - 내가 만든 모델/데이터셋을 Public, private로 올릴수 있고, Public일 경우 누구나 내가 올려놓은 데이터셋, 모델을 사용할수 있음 - 당연히 다른 사람이 만든 언어모델이 Public으로 공개되어 있다면, 나는 해당 모델을 기반으로 파인 튜닝이 가능함..
0. 멀티모달이란? - 기존의 챗봇, 이미지 구분 등은 텍스트면 텍스트, 이미지면 이미지, 단일한 데이터만 사용하였다. - 하지만, 요즘은 음성을 텍스트로, 텍스트를 입력하면 이미지가 나오고, 이미지를 입력하면 텍스트로 설명하는 모델이 나오고 있음 - 이런 것을 멀티모달이라고 한다. 대표적인 예로는 DALLE가 멀티모달이라고 할수 있다. - DALLE는 텍스트를 입력하면, 그림을 아주 잘 그려준다. 1. 멀티모달의 원리는? - 일반적인 이미지 분류, 문장생성 등의 방법을 CNN과 Transformer를 익히면서 이해했는데, 멀티모달은 어떻게 이뤄지는 것일까? 어떻게 텍스트를 이해하고 이미지를 만들어 주는 것일까? - 대학원에서 교수님께서 간단하게 알려준 개념은, 각각의 잠재공간으로 유사한 공간배치(?)로..
0. GAN 아이디어 - 이미지 생성자모델과 이미지 판별자 모델 두개를 만들어서, 서로 경쟁하듯 학습 - 생성자(Generator): 임의의 노이즈를 입력 받아 그럴듯한 이미지를 생성하는 기능 학습 - 판별자(Discriminator): 입력된 이미지가 실제 이미지인지, 생성자가 생성한 이미지인지 구분하는 기능 학습 - 생성자는 더 실제같은 이미지를 만드는 신경망을 학습하고, - 판별자는 입력된 이미지가 진짜 이미지인지, 생성된 이미지인지 판별하는 신경망을 학습한다. - 이렇게 둘이서 경쟁하듯 학습하면(생성기는 판별기를 속이려하고, 판별기는 생성기를 구분하려 함) 생성자는 정말 실사 같은 이미지를 만들어내게 될수 있다 - 물론 현실에서 판별자가 일찍 학습이 되어, 생성자가 그럴듯한 이미지 자체를 못만들어..
0. 신경망이 학습을 한다는 것 - 구두, 후드, 청바지, 면바지, 원피스, 운동화 등 총 10가지로 분류할수 있는 이미지가 10,000장 있다고 가정 - classification학습: CNN신경망 + 최종 노드가 10인 DNN + softmax로 학습 -> 이미지 입력되면 10가지중 1개로 알려줌 - (2차원으로)임베딩 학습: CNN신경망 + 최종노드가 2인 DNN 학습 -> 2차원 공간에 비슷한것끼리 뭉치는 개념 1. AE(오토인코더) 아이디어 - 그림을 생성하는 모델을 어떻게 만들수 있을까? - 이미지를 신경망에 입력하고, output역시 입력된 이미지가 나오는 신경망을 학습 가능하지 않은가? - 이미지를 입력받아 CNN을 통과하고, 최종적으로 2차원으로 줄이는 DNN을 붙여서 왼쪽 신경망(인코더..
0. MF와 FM의 차이 - MF는 user, item 두개의 변수를 K차원의 Latent factor로 만들어서 평점을 예측 - user, item 이외에 다른 변수들이 평점에 영향을 준다면? 그러면 FM을 사용 1. FM을 이해하기 - FM은 위 그림과 같이 하나의 평점에 대해서, 그에 영향을 준다고 판단되는 입력변수를 각각 임베딩하여 표현 - 이렇게 하면, 데이터로 가지고 있는 모든 평점에 대해서, 각각의 입력변수의 고유한 임베딩 벡터의 조합으로 표현 가능 - 평점을 예측하는 pred 모델식은 다음과 같음 - 모델의 업데이트 룰(feat. 교수님 강의록) 2. 코드로 구현하기 import numpy as np import pandas as pd from sklearn.utils import shuf..
0. GPT, ChatGPT차이점 GPT는 다음 단어를 귀신 같이 예측하는 모델이다. 우리가 이용하고 있는 모델은 이 GPT를 파인튜닝해서 만든 ChatGPT. ChatGPT는 gpt라는 다음단어를 아주 잘 예측하는 Pretrained된 모델을 파인튜닝하여서, 대화를 잘하게 만든 모델 그럼 어떻게 GPT에서 ChatGPT가 될수 있을까? Llama2모델을 파인튜닝하여, 나만의 ChatGPT를 만드는 방법을 알아보자 1. ChatGPT만들기 전체구조 우선 ChatGPT를 만들기 위해서, OpenAI에서 공개한 학습구조를 정리해보자. 1-1. SFT(Superviesed Fine-Tuning)을 통한 응답모델 만들기 SFT는 기존의 다음단어를 예측하는 gpt모델을 파인튜닝해서, 대화형 모델로 변화시키는 것이..