Data 30

[인과추론의 데이터과학] Chapter 1. 인과추론이란?

[인과추론의 데이터과학] 포스팅은 "인과추론의 데이터과학" 유튜브 채널의 강의를 들은 후, 기억하고 싶은 강의내용을 정리한 글입니다. 상세한 내용은 아래에 첨부한 링크의 강의에서 들으실 수 있습니다. https://www.youtube.com/watch?v=PmoDo_ANg90&list=PLKKkeayRo4PV_6-nbBgmUNOSpG1OO49M3&index=2&t=11s https://www.youtube.com/watch?v=luesQBhBBI4&list=PLKKkeayRo4PV_6-nbBgmUNOSpG1OO49M3&index=3

Data/인과추론 2023.07.31

인기도, 연관규칙분석, tf-idf 컨텐츠 기반 시스템

해당 포스팅은 NAVER BOOSTCAMP RECSYS 트랙의 교육자료와 강의를 참고하여 정리한 글입니다. 본 포스팅에선 기본적인 추천 시스템인 인기도 기반, 연관규칙분석 기반, tf-idf 컨텐츠 기반 시스템에 대해 정리하였다. 인기도 기반 추천 통계적으로 가장 인기있는 아이템을 추천한다. 데이터가 없는 서비스 런칭 초반에 많이 사용되는 시스템이다. 인기도의 척도: 조회수, 평균 평점, 리뷰 개수, 좋아요 싫어요 수 등 스코어 Most Popular: 조회수가 가장 많은 아이템을 추천 ex) 뉴스 추천 Highly Rated: 평균 평점이 가장 높은 아이템 추천 ex) 맛집 추천 추천하려는 task에 맞게 스코어를 설정하는 것이 중요하다. 연관분석 1. 연관규칙 분석(장바구니 분석) 상품 구매, 조회 ..

추천시스템이란?

해당 포스팅은 NAVER BOOSTCAMP RECSYS 트랙의 교육자료와 강의를 참고하여 정리한 글입니다. 추천시스템 개요와 평가지표 해당 포스팅에선 추천시스템은 무엇이고 어떤 지표로 성능을 평가하는지에 대해 정리해보고자 한다! 1. 추천시스템이란? 정의: 유저가 굳이 검색하지 않더라도 유저에게 맞는 아이템을 push해줄 수 있는 시스템 필요성: 정보의 양이 넘치면서 유저가 정보를 찾는데 시간이 오래 걸리기 때문에 유저가 원하는 것을 빠르게 찾을 수 있는 추천시스템이 필요해졌다. Long Tail Recommendation: Popular products를 추천하는 것을 넘어 개인화된 상품까지 추천하는 시스템 유튜브 영상 추천(조회수는 적지만 시청한 영상과 관련된 영상 추천) 2. 추천 시스템 사용데이터..

Object Detection model - R CNN부터 Fast(er) R CNN까지

다음 도표는 딥러닝을 활용한 이미지 내 객체 검출(Object Detection) 모델의 milestone을 찍은 것이다. 최근으로 올수록 새로운 모델들이 점점 많아지는 것을 볼 수 있다.. 오늘은 이 많은 모델들 중 2014 ~ 2016 년까지 발전해온 R-CNN계열 모델인, - R-CNN (2014) - Fast R-CNN (2015) - Faster R-CNN (2016) 에 대해서 정리해보려고 한다. 우선 해당 모델들을 이해하는 데 필요한 개념 먼저 짚고 가보려고 한다. ▶ 사물인식 방법 이미지 내에서 사물을 인식할 때 대표적으로 다음 네가지 방법이 존재한다. Classification : 하나의 이미지를 입력으로 받은 후 해당 이미지가 어떤 클래스에 해당하는지 분류하는 방법이다. Classifi..

CNN 모델 훑어보기

▶ 네트워크 모델의 발전 파라미터 수가 많으면 overfitting의 문제가 발생한다. 따라서 네트워크 모델은 이 파라미터 수를 줄여 일반화 성능을 올리는 방향으로 발전해왔다. 이와 동시에 네트워크 깊이는 키움으로써 더 딥한 학습을 가능케하는 방향으로 발전되어왔다. 해당 포스팅에서는 - AlexNet - VGGNet - GoogLeNet - ResNet - DenseNet 순으로 모델의 발전과정을 짚어보고자 한다. ▶ AlexNet - 네트워크가 2개로 나눠져있다. 당시 GPU숫자가 부족했기 때문에 2개의 GPU를 최대로 사용하기 위해 이러한 구조가 나온것이라고 한다. - 11 x 11의 input을 사용한다. 이 필터를 사용하면 하나의 kernal이 볼 수 있는 영역은 커지지만 상대적으로 파라미터는 더..

Partial Dependence Plot (PDP) 란?

▶ Partial Dependence Plot이란? 기본적으로 tree기반의 모델은 선형회귀분석 같이 함수식을 통해 입력과 출력의 관계를 알기 힘들다. tree기반 모델은 information gain을 기준으로 샘플을 부분집합으로 나누는데 집중하기 때문이다. 따라서 tree기반의 모델 중 하나인 RandomForest는 black box모델(어떻게, 무엇을 근거로 모델의 결과가 도출되었는지 알 수 없는 모델)까지는 아니지만 선형모델이나 일반 tree모델에 비해서는 해석이 어렵다. PDP(Partial Dependence Plot)은 이러한 모델에서 입력과 출력의 관계를 알아볼 수 있도록 시각화하는 그래프이다. 이 그래프는 입력과 출력의 직접적인 관계를 추론하지는 않는다. 대신 하나 혹은 두 개의 변수가..

OOM (Out Of Memory) 해결 방법

▶ OOM OutOfMemory, 학습을 시키다보면 적지않게 마주치는 에러이다. 이 에러를 보면 배치 사이즈를 줄이거나 캐시를 비우는 방식으로 처리했었는데 그 이외의 방법들(?)도 알게되어 포스팅으로 정리해보려한다. ▷ GPUtil 활용하기 - iter마다 메모리가 늘어나는지 확인할 수 있는 모듈이다. - nvidia-smi처럼 GPU 상태를 보여주는 모듈이다. 다만 nvidia-smi는 현재시점의 스냅샷을 보여줄 순 있지만 iteration이 돌아가며 쌓이는 메모리는 보여줄 수 없다. 반면 GPU util은 이를 보여줄 수 있다. - nvidia smi output 예시 아래와 같이 특정 timestamp에 해당하는 gpu의 상태를 확인할 수 있다. - GPUtil 예시 아래와 같이 GPU ID, 사용..

Custom Dataset tutorial - Fashion MNIST

Dataset과 Dataloader로 fashion- MNIST데이터를 불러오고 커스텀하는 방법을 실습해보았다. 코드는 pytorch tutorials에서 다운받을 수 있다. ▶ Fasion MNIST 60,000개의 train과 10,000개의 test 데이터로 이뤄져있다. 각각의 예제는 28x28의 흑백이미지로 구성된다. 라벨은 총 10개의 클래스로 이뤄져 있다. 데이터 셋은 torchvision의 datasets에서 다운받을 수 있다. datasets.FashionMNIST에 들어가는 인자는 다음과 같다. - root: train과 test데이터 셋이 저장될 장소 - train: train 데이터인지 test데이터인지 bool로 설정 - download= True: 인터넷에서 다운로드 받을건지 bo..

순전파와 역전파

역전파는 해당 층과 연관되는 관계를 따라서 그래프를 계산하고, 그 경로에 있는 모든 변수값들을 저장해놓고 활용해야한다. 따라서 역전파는 순전파보다 훨씬 더 많은 메모리를 사용할 수 밖에 없다. 본 포스팅에서는 역전파의 원리에 대해서 이해하고자 링크된 페이지를 참고하여 작성한 글이다. 아래 플로우는 역전파 순서를 기준으로 작성한 것이며 해당 역전파계산과 관련된 순전파 계산을 함께 제시해서 역전파 계산 이해에 도움이 되도록 작성해보았다. 아래 그래프를 참고하며 계산을 따라가면 이해가 더 수월하다. 목적함수 J는 손실함수 L과 l2 norm 정규화항 s를 더한 정규화된 손실값이다. J를 L과 s에 대해서 각각 미분해준다. 이전의 은닉벡터 h에 가중치 w2를 곱한 값인 o와 실제값 y의 손실값을 계산한다. 출력..