본문 바로가기

분류 전체보기

(73)
KL Divergence [Kullback-Leibler Divergence] 1. KL Divergence ?두 확률 분포 간의 차이를 측정하는 함수로, 모델이 예측한 확률 분포와 실제 데이터 분포 간의 차이를 최소화 할 때 사용된다. 예측 분포와 실제 분포의 차이를 정량적으로 평가할 수 있으며 분류 모델에서 손실 함수로 사용 되기도 한다.KL Divergence 값이 0에 가까울 수록 두 개의 분포가 비슷하다는 것을 의미하며, 크면 클수록 두 분포가 차이가 크기 때문에 정보 손실이 크다고 해석할 수 있다. 2. 수식이산확률분포 :$\mathit{D}_{KL}(P\left| \right|Q)=\sum_{i}P(i)\cdot log(\frac{P(i)}{Q(i)})$ $=\sum_{i}P(i)logP(i)-\sum_{i}P(i)logQ(i)$ $=-H(P)+H(P, Q)$ $P(i..
DPO [Direct Preference Optimization] 이란? 1. DPO ?LLM 에서 사람의 피드백을 반영하여 성능을 최적화하는 방법 이다. Preference Optimization 을 통해 모델이 사람의 선호도를 직접 반영하는 응답을 생성하도록 학습하는 기법이다. 기존의 강화 학습과는 다르며, RLHF [Reinforcement Learning with Human Feedback] 를 대체하거나 보완하는 목적으로 사용된다. 2. 학습 방법핵심 아이디어는 사람이 선호하는 응답을 모델이 더 잘 예측하도록 하는 것이다. 일반적으로 선호되는 응답 $x_{preferred}$ 과 그렇지 않은 응답 $x_{non-preferred}$ 을 모델이 비교하여 선호되는 응답을 더 높은 확률로 예측할 수 있도록 모델을 업데이트 한다. 1. 특정 질문에 대해 여러 응답을 생성한 ..
[개인 프로젝트] S-Walk 논문 모델로 추천 모델 구현해보기 -1 [MovieLens 데이터셋 설명, 코랩 구글드라이브 연동하기, 데이터 전처리] 1. Datahttps://grouplens.org/datasets/movielens/ MovieLensGroupLens Research has collected and made available rating data sets from the MovieLens web site ( The data sets were collected over various periods of time, depending on the size of the set. …grouplens.org위의 MovieLens 데이터셋을 활용했다. 해당 데이터는 87,585개의 영화에 대해 32,000,204 개 평가와 2,000,072 개 태그가 포함되어 있으며, 모든 사용자가 최소 20개 이상을 평가했다.  Colab 에서 진행했으므로 ..
[개인 프로젝트] BERT 기반으로 비속어 [단어] 탐지 모델 구축 1. 프로젝트 정의비속어 [단어] 탐지 모델을 만들어보려고 하는데 가지고 있는 데이터가 적기 때문에 BERT 기반으로 비속어 감지 모델을 구축하고자 한다. 이때 transformers 라이브러리로 pre-trained BERT 모델을 불러오고, 가지고 있는 데이터로 fine-tuning하려고 한다. 모델을 활용해 주어진 단어가 비속어인지 아닌지 여부를 예측할 수 있다. 2. 데이터https://jizard.tistory.com/288 자주쓰는 최신 비속어 리스트 (욕설 필터링 txt 첨부파일 제공)인터넷에 떠돌아다니는 비속어 리스트를 보면...적어도 20년은 묵은듯한 단어들이 많이 나오는데, 이건 그래도 비교적 최신(?) 비속어 리스트다.jizard.tistory.com위의 사이트에서 "fword_li..
import cv2 오류 할 때마다 매번 까먹어서 여러번 이것 저것 해보게 만드는 import cv2  import cv2 -> No module named 'cv2'  오류 발생  1. pip install 실행-> kernel restart 해봤지만 동일한 오류 발생  2. pip install opencv-python 실행-> 이렇게 install 진행했지만 import 하니까 아래 오류 발생   3. apt-get ~ 실행apt-get update -yapt-get install -y libgl1-mesa-glx 위의 코드 두 줄 실행하면 된다길래 터미널에서 실행했으나둘 다 안됨. 4. sudo로 재실행  sudo apt-get update -ysudo apt-get install -y libgl1-mesa-glx 진행하..
[Top Interview 150 - Math] 50. $Pow(x, n)$ [Q] [Medium]Implement pow(x, n), which calculates x raised to the power n (i.e., xn). pow(x, n) 을 구현하라고 해서 ** 로 return 했는데 통과뭔가 Medium 문제 인데 이렇게 풀어도 되나 다른 사람들 답도 찾아봤다.# Answerclass Solution: def myPow(self, x: float, n: int) -> float: return x ** n # 다른 사람 답class Solution: def myPow(self, x: float, n: int) -> float: my_pow_num = pow(x, n) if my_pow_num > (pow(2, 31) - 1)..
[Top Interview 150 - Math] 69. Sqrt(x) [Q] [Easy]Given a non-negative integer x, return the square root of x rounded down to the nearest integer. The returned integer should be non-negative as well.You must not use any built-in exponent function or operator.For example, do not use pow(x, 0.5) in c++ or x ** 0.5 in python. do not use x ** 0.5 못 보고 아래와 같이 풀었는데 정답처리 됐다.근데 안된다니까 일단 빼고다른 답들을 찾아보니 이진탐색도 있고, 아래 import math 한 것도 있는데 일단 impor..
[Top Interview 150 - Math] 172. Factorial Trailing Zeroes [Q] [Medium]Given an integer n, return the number of trailing zeroes in n!.Note that n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1. int -> list 바꾸는 과정이 필요했다.0 만 따로 처리해주고, math.factorial 이용하면 쉬운 문제였다.다만 n = 1574 였을 때 오류가 났는데 애초에 math.factorial 이 적용되지 않았다.큰 수의 경우 이런식으로 구할 수 없음을 깨닫고 찾아보니 5의 배수가 뒷 자리 0을 가져온다는 것을 이용해야 했다. -> 5로 나눠서 몫을 계산하여 가져오면 뒷자리 0의 개수를 알 수 있다.아직도 수학도 갈 길이 멀다.# Wrong Answerimport ma..