[백준] 🏅11559번 골드4 Puyo Puyo (파이썬 Python)
·
알고리즘
11559번 문제뿌요뿌요의 룰은 다음과 같다.필드에 여러 가지 색깔의 뿌요를 놓는다. 뿌요는 중력의 영향을 받아 아래에 바닥이나 다른 뿌요가 나올 때까지 아래로 떨어진다.뿌요를 놓고 난 후, 같은 색 뿌요가 4개 이상 상하좌우로 연결되어 있으면 연결된 같은 색 뿌요들이 한꺼번에 없어진다. 이때 1연쇄가 시작된다.뿌요들이 없어지고 나서 위에 다른 뿌요들이 있다면, 역시 중력의 영향을 받아 차례대로 아래로 떨어지게 된다.아래로 떨어지고 나서 다시 같은 색의 뿌요들이 4개 이상 모이게 되면 또 터지게 되는데, 터진 후 뿌요들이 내려오고 다시 터짐을 반복할 때마다 1연쇄씩 늘어난다.터질 수 있는 뿌요가 여러 그룹이 있다면 동시에 터져야 하고 여러 그룹이 터지더라도 한번의 연쇄가 추가된다.남규는 최근 뿌요뿌요 게..
[부스트캠프 AI Tech] RecSys Level 04 - 자영업자를 위한 가게 음악 추천 솔루션:Tune Your Shop(최종 프로젝트) 회고
·
AI
Github 바로가기https://github.com/JaeEunSeo/TuneYourShop GitHub - JaeEunSeo/TuneYourShop: 네이버 부스트캠프 AI Tech 7기 최종 프로젝트네이버 부스트캠프 AI Tech 7기 최종 프로젝트. Contribute to JaeEunSeo/TuneYourShop development by creating an account on GitHub.github.com  부스트캠퍼로서의 최종 프로젝트최근 나의 티스토리 포스팅 대부분을 차지했던 부스트캠프가 끝났다. 8월에 만났던 팀원들과 마지막 프로젝트까지 함께한 만큼 주제에 대해 다함께 오랜 시간 고민했고, 공통적으로 이루고 싶었던 목표는 "기술적 챌린지를 통해 사용자 경험 개선"이었다.데이터셋 및 주..
KL Divergence - 두 확률분포의 차이 계산하기
·
AI
들어가며변분 추론, Diffusion, AutoEncoder 등 딥러닝 모델에서 자주 등장하는 통계학적 개념 KL Divergence(Kullback-Leibler Divergence)에 대해 deep dive한 내용을 포스팅했다.BackgroundKL Divergence를 이해하기 위해서는 1. 정보량, 2. 정보 entropy, 3. cross-entropy의 세 가지 용어를 미리 알아야 한다. 1. 정보량수식적 정의: $I(X) = -\log_bP(X)$이산 랜덤변수 $X$에 대한 정보량을 나타낸다.정보량을 더할 때, log 함수의 additive 성질을 이용하기 때문에 log를 붙여 정의한다.로그의 밑 $b$는 태스크에 따라 정의하면 된다.확률적으로 낮은 내용(놀랄만한 내용)일수록 정보량이 많다...
[RecSys] RecVAE: a New Variational Autoencoder for Top-NRecommendations with Implicit Feedback
·
논문 리뷰
👩🏻‍💻 본 포스팅은 개인적 공부를 위해 논문 RecVAE를 정리한 포스팅으로, 오류가 있을 수 있습니다.AbstractRecVAE는 Mult-VAE에서 발전한 추천시스템 모델로, variational autoencoder를 채택했다.원래 VAE 구조는 생성형 모델에서 많이 사용되지만, 데이터의 표현력을 높이는 parameter를 찾는 representation learning에도 사용된다는 것이 특징이다.기존 Mult-VAE와 비교했을 때 개선된 점은 다음과 같다.prior distribution 추가 ⇒ 이전 인코더의 파라미터 사용 가능KL term 반영을 위한 $\beta$ hyperparam 추가alternating update 학습인코더 구조 변경Background+) Autoencoder..
[부스트캠프 AI Tech] RecSys Level 02 - Movie Recommendation KPT 회고
·
AI
Level 2 마무리부스트캠퍼가 된지 어느덧 15주가 지나, 마지막 Level(과정)만을 남겨두고 있다. 지난 포스팅에서 Lv1 첫 프로젝트 회고를 작성했고 이번 포스팅에서는 Lv2 마지막 경진대회형 프로젝트에서 진행한 작업 과정, 그리고 정신적 성장을 위한  KPT 회고까지 작성해보려 한다.이번 대회는 추천시스템 벤치마크 데이터셋인 MovieLens 데이터를 바탕으로 영화 추천 시스템을 구축해, 높은 Recall@10 값을 도출하는 것이 최종 목표이다.문제 정의/목표문제: 사용자의 영화 시청 이력을 기반으로 다음에 시청할 영화 및 좋아할 영화를 Top-K 형태로 추천해야 한다.목표: 정의한 문제의 핵심은 다음에 시청할 영화와 중간에 비어있는 timestamp에 시청했을 영화를 예측하는 것으로, seq..
[부스트캠프 AI Tech] RecSys Level 01 KPT 회고
·
AI
어느새 부스트캠프의 RecSys 도메인에 참여한 지도 7주차가 되었다.매일매일 코어타임마다 zoom에 접속해 팀원들과 공부도 하고 오피스아워나 마스터클래스를 통해 현업자 분들에게 다양한 인사이트를 공유받기도 했다. 살면서 이렇게 짧은 시간 내에 많은 것을 배우고, 다양한 사람들을 만날 수 있었던 환경도 없었다고 생각한다. 내일부터 Level 02가 시작되는데 가장 회고하기 좋은 시점인 지금 배운 것들과 느낀 것들을 이야기해보고자 한다. 학습 커리큘럼에 대해 이야기해보자면 5주 간 DL/ML의 이론과 코드에 대해 습득했고, 지난 6주차부터 팀원들과 함께 비트코인의 등락률을 예측하는 시계열 경진대회에 참가했다. 짧은 시간 내에 많은 것들을 얻었기 때문에 대회 과정에서 새로 습득한 지식들과 느낀 점 , 또 한..
[Python] 자연어처리 - TfidfVectorizer
·
AI
직접 지정한 키워드들을 바탕으로 각 텍스트가 키워드의 특성을 얼마나 반영하고 있는지를 임베딩으로 나타내기 위해 TF-IDF 매트릭스를 사용하기로 했다.공식문서TF-IDF주로 문서간 유사성/연관성을 판단하고 싶을 때 사용한다.단어(term) 별로 문서의 정보를 얼마나 가지고 있는지를 나타내는 값이다.TF - Term Frequency문서가 있을 때 단어가 여러번 출현하면, 문서와 연관성이 높은 단어일 것이다 -> tf score를 높게 측정그러나, TF score만 고려한다면 불용어까지 연관성을 높게 책정할 위험성 ↑IDF - Inverse Document Frequency어느 문서에서나 자주 등장하는 단어들은 문서와 연관성이 낮은 단어일 것이다. -> idf score를 낮게 측정 => 문서 또는 문장에..
[자료구조] 우선순위 큐 (파이썬 heapq 사용법)
·
알고리즘
queue란?큐는 가장 먼저 삽입된 데이터를 가장 먼저 삭제하는 FIFO(First in First out) 자료구조형이다. rear(한쪽 끝)에 데이터가 추가되고,front(다른쪽 끝)에서 데이터가 삭제되는 방식이다.heap이란?우선순위 큐를 구현하기 위해서는 다양한 자료형을 사용할 수 있는데 그 중 힙은 완전 이진 트리를 기반으로, 삭제 / 삽입에 O(log n) 소요되어 효율적으로 구현할 수 있다.최소 힙 또는 최대 힙으로 나뉘며, 최소 힙은 부모 노드가 자식 노드보다 작거나 같은 값을 가지는 구조이다.파이썬의 heapq 라이브러리는 최소 힙을 사용해서 priority 값이 낮을수록 먼저 삭제 된다. 우선순위 큐heap 힙 자료구조는 우선순위 큐를 구현하기 위해 사용하는 자료구조이다.우선순위 큐는 ..
[프로그래머스] lv3. 순위 (파이썬 Python)
·
알고리즘
순위 문제n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다.선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. 입출력 예시 제한사항- 선수의 수는 1명 이상 100명 이하입니다.- 경기 결과는 1개 이상 4,500개 이하입니다.- results 배열 각 행 [A, B]는 A 선수가 B 선수..