Loading...
2024. 7. 6. 01:55

backbone model이 필요한 이유

모델을 처음부터 만들어서 경량화 시켜 사용할 수 있지만  처음부터 만든다는 것이 쉬운일도 아니고 다른 domain에서 성능이 좋으리라는 보장도 없다  그러나 이미 검증된 ResNet, VGGNet, MobileNet, SqueezeNet 등등은 많은 사람들에게 여러 방면에서 검증이 되어 있어서 backbone으로 사용하기에 적절하다.  단점도 보완되어 발전하여 최신버전들로 계속 나오며 pretrain된 모델을 torchvision등에서 쉽게 가져와 사용할수도 있다 유명한 backbone들은 각각의 특징도 다양하다    dataset도 직접 모을 수 있지만 직접 모으는 것은 비용이 많이 든다.  쉽게 사용하라고 cifar10, cifar100, imagenet 등 공개되어 잘 알려진 dataset을 사용하..

2024. 7. 5. 00:49

추천시스템 평가 방법

사용자별 상품에 대한 평점을 원소로 가지는 행렬데이터를 생각 평점을 주지 않거나 구매하지 않은 경우에 대해서는 원소가 비어있다.     주어진 데이터를 적절한 비율의 훈련데이터와 평가데이터로 나누고  평가데이터는 추천시스템 모형을 만드는데 사용하지 않는다. 주어지지 않았다고 가정하자.    훈련 데이터를 이용해 만든 추천 시스템으로 평가 데이터의 빈 곳을 추정함     실제 평가데이터와 추정된 평가데이터를 비교하여 모형의 성능을 평가  비교하는 지표로는 MSE,RMSE부터 여러가지를 사용함     추정한 평점으로 순위를 매긴 후 실제 평점으로 매긴 순위와의 상관계수 추천한 상품 중 실제 구매로 이루어진 것의 비율 추천의 순서나 다양성까지 고려한 여러 지표들

가방이 여러개인 multiple 0-1 knapsack(배낭 문제) 해법 배우기

1. 다중 배낭 문제(multiple 0-1 knapsack) https://atcoder.jp/contests/past202206-open/tasks/past202206_h H - Two KnapsacksAtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.atcoder.jp  각각 무게 제한이 A,B인 2개의 가방이 있다고 하자. 이 2개의 가방에 무게가 W, 가치가 V인 물건을 담고자 한다. 2개의 가방에 담긴 물건 가치 합이 최대가 되도록 하는 방법은? 처음에는... 단순히 무게 제한이 A인 가방에 물건을 담고, 담은 물건은 제외한 다음 무..

0-1 knapsack 배낭 문제 해법 반드시 알아야하는 디테일(물건을 중복해서 담는 경우)

12865번: 평범한 배낭 (acmicpc.net) 최대 한도 무게가 K로 정해진 가방 1개에 무게가 W이고 가치가 V인 N개의 물건을 담고자 할때, 가치가 최대가 되도록 담고자 한다. 당연히 하나의 물건은 가방에 한번만 담을 수 있다  1. 1차원 배열 DP[i] = 가방에 담긴 물건들의 무게 합이 i일때, 가치의 최댓값 DP[i] = max(DP[i], DP[i-w] + v) dp = [0]*(K+1)for w,v in bag: for i in range(K,-1,-1): if i-w >= 0: dp[i] = max(dp[i], dp[i-w] + v)print(dp[K])  주목할 부분은 무게 i = 0,1,2,3,..,K가 아..

2024. 7. 2. 00:34

여러가지 matrix decomposition(eigenvalue, singular value, CP, Tucker, non-negative,...)

1. 용어 matrix나 tensor는 데이터 모델링을 위한 도구이다. matrix가 2차원에 숫자를 나열해놓는 것이라면 tensor는 3차원에 숫자를 나열해놓는 데이터 모델링 도구     n*n square matrix에 대한 decomposition으로 1) eigenvalue decomposition, diagonalization은  $A = PDP^{-1}$ 혹은 A가 대칭행렬이면 $A = PDP^{-1} = PDP^{T}$ D는 대각행렬로 원소들이 eigenvalue이고 P는 eigenvector로 이루어진 행렬 eigenvalue decomposition은 다른 수식 $A = \sum_{}^{} \lambda uu^{T}$으로 나타내면 2) spectral decomposition이라고 부름 ..

2024. 6. 26. 03:24

i < j < k < l을 O(N)에 도는 미친 다이나믹 프로그래밍 테크닉

15487번: A[j]-A[i]+A[l]-A[k] (acmicpc.net) 크기 N인 주어진 배열 A에서 i  N은 최대 1000000이라 4중 for문으로 찾는건 당연히 불가능하다 A[j] - A[i]의 최댓값과 A[l] - A[k]의 최댓값을 나눠서 구하면 좋을 것 같다  근데 i  어떻게 구할 수 있을까? 현재 0 ~ j 구간을 보고 있을때 A[j] - A[i]의 최댓값은, A[j] - (A[0] ~ A[j-1]중 최솟값) dp[j] = i  j = 0, 1, 2, 3, ... 가면서 A[j]의 최솟값을 min_value로 항상 갱신해놓는다면, 현재 j에 대해 0~j-1까지 최솟값은 min_value이고 그러므로 A[j] - min_value로 최댓값을 구할 수 있다. 이를 dp[j]에 저장해놓고 ..