목록전체 글 (254)
Joonas' Note

먼저 Quick, Draw! 는 구글에서 위와 같은 낙서 데이터 셋을 학습하여 345개의 주제 중 하나를 그리면 머신 러닝 모델을 통해 정답을 맞추는 게임이다. 그리고 이 데이터셋을 오픈소스로 공유했다.목표 설정시계열 데이터를 Online 으로 처리하는 RNN 모델을 다루고 싶었고 최종적으로는 브라우저에서 돌아가도록 포팅하는 것이 목표였으나, 아래 서술될 이유로 개발 방향을 잠시 수정하였다.345개의 클래스로 적지 않은 클래스를 분류하는 모델이지만 각 클래스당 최소 1만개 이상의 Dataset이 있으므로 학습에는 어려움이 없을 것이라고 판단하였다.목표 수정간단한 RNN 모델을 만들었는데 학습이 잘 되지 않았었고, 이를 해결하는 과정에서 RNN 구조의 문제인지 데이터 전처리의 문제인지 파악하기가 어려워, ..
문제 git push 를 하다보면 아래와 같이 RPC failed 를 이유로 실패하는 경우가 있다. $ git push origin Enumerating objects: 23, done. Counting objects: 100% (23/23), done. Delta compression using up to 10 threads Compressing objects: 100% (20/20), done. error: RPC failed; HTTP 400 curl 18 HTTP/2 stream 7 was reset send-pack: unexpected disconnect while reading sideband packet Writing objects: 100% (20/20), 342.08 MiB | 21.3..

한국 노래 가사(1964~2023년) 데이터 분석해보기 배경 노래를 꽤 다양하게 듣는 편인데 최근 한국 노래들에 이지리스닝류가 많아지기도 했고, 한국어 가사의 비중이 점점 줄어들고 있는 등 한국 노래 가사의 트렌드가 궁금해져서 한번 데이터 blog.joonas.io 오랜 시간에 걸쳐서 음원 스트리밍 플랫폼에 추천이 많이 도입되었다. 특정 노래를 기반으로 추천하는 건 아주 오래 전부터 이미 있었지만 (최소 2010년 iTunes 부터), 근래에는 주제/테마별로 묶은 플레이리스트를 추천하기도 한다. 정밀한 그룹화를 하려면 음원의 특성(파형, bpm, 장르, 가수, 연도 등)까지도 고려해야겠지만, 이번에는 자연어 처리에 집중하고 싶은 만큼 가사 내용을 토대로 주제별로 나눌 수 있는 지 확인해보고자 한다. 데이..

배경 미디엄 블로그를 보다보면 아래와 같이 예상 읽기 시간이 나온다. 예전에 사람이 글을 읽는 데 걸리는 평균 시간을 알아본 적이 있다. WPM(Words per minute) 라고 부르는 단위도 있어서 이미 연구가 있었던 듯 하다. 아래와 같이 여러 나라에 대해서 WPM을 계산한 연구도 있지만 한글은 빠져있다. 한글을 제외하면 평균적으로 190~200 WPM 정도의 속도이다. TimeToRead | Wolfram Function Repository Function Repository Resource: TimeToRead resources.wolframcloud.com 그래서 한글에 대한 WPM을 찾아보다가 120 정도라는 글을 찾았고 한글과 영문의 분포에 따라 적절히 계산하기로 했다. 영어의 경우에는 ..

배경 수 많은 노래들이 있었다. 그 중에서 가장 중독적인 노래는 무엇이었을까. 아마도 후크송이 뽑히지 않을까싶은데, 그 이유는 가사 반복이 많은 이유라고 추측한다. 그렇다면 노래의 "중독성", 엄밀히는 "가사가 반복된 정도"를 어떻게 수치로 계산할 수 있을까? 라는 고민에서 출발한 글이다. 정의부터 모호한 문제이지만 한번 계산해보고자 하던 여러 시도를 글로 남겨보고 납득할 수 있는 지 결과도 함께 기록한다. 단순하게 빈도 세기 처음에는 단순하게 노래마다 (공백으로 구분된) 동일한 구절이 반복되는 횟수를 세고, 가장 많이 반복된 횟수가 높은 노래가 더 반복을 많이 하는 노래라고 생각했다. 공백 단위로 구분한 이유는, 문장 단위로 자르기에는 "La La La" 와 "La La La La" 가 서로 다르게..

배경 노래를 꽤 다양하게 듣는 편인데 최근 한국 노래들에 이지리스닝류가 많아지기도 했고, 한국어 가사의 비중이 점점 줄어들고 있는 등 한국 노래 가사의 트렌드가 궁금해져서 한번 데이터를 분석해보기로 했다. 데이터는 멜론 연대별 TOP 100 차트로부터 제목/가수/가사 정도만 수집했고, 기억이 맞다면 약 8시간정도 걸렸다. 정말 영어가 많아졌는가? 마침 1964년부터 2023년까지 60년의 데이터가 쌓였고, 결론부터 말하자면 영어 비중은 많아졌다. 2023년에 들어서는 영어 가사의 비중이 25% 를 넘을 정도로 많아졌고, 최근에 사람들이 이런 사실을 체감하는 이유는 2011년 이후로 10년만에 영어 비율이 더 커지고 있기 때문으로 보인다. 영어 비중은 2008~2012년 사이에 잠시 상승하고 그 뒤로는 ..

눈코입 맞추기 게임 만들기 2편 눈코입 맞추기 게임 만들기 1편 예전부터 만들어보고 싶었는데 미루고 미루다가 이번에 만들만한 이유가 생겨서 구현해보기로 했다. 회사 티타임 내기용 게임을 준비하는데, 아래와 같이 눈코 blog.joonas.io 문제점 2편에서는 얼굴을 제대로 찾지 못하는 이슈를 고치면서, 사진에 있는 모든 얼굴을 인식해서 퍼즐을 만들도록 변경했다. 하지만 아래와 같이 고개를 갸울인 얼굴 사진은 결과가 원하는 대로 나오지 않았다. 따라서 아래의 빨간 네모처럼 얼굴이 회전한 각도를 새로 구하고, 그에 맞게 다시 face landmark를 찾아야한다. 얼굴 회전시키기 정확한 출처는 모르겠으나 주로 face landmark를 추출할 때 68개의 점을 찾는다. 지금까지의 결과 역시 위 68 fac..

눈코입 맞추기 게임 만들기 1편 예전부터 만들어보고 싶었는데 미루고 미루다가 이번에 만들만한 이유가 생겨서 구현해보기로 했다. 회사 티타임 내기용 게임을 준비하는데, 아래와 같이 눈코입을 보고 누구인지 맞추는 게임 blog.joonas.io 문제점 1편에서는, 사진에서 얼굴 부분의 비율이 작으면 얼굴을 제대로 찾지 못한다는 문제가 있었다. 1편의 마지막에 얼굴 부분만 잘라낸 이미지에서 face landmark를 찾도록 했더니 결과가 개선되는 것을 확인했으니, 이 작업을 그대로 코드로 작성했다. 해결 먼저 이미지에서 얼굴을 찾는 API로 faceapi.detectAllFaces 를 사용할 수 있다. 한 번의 호출로 이미지에서 찾은 모든 얼굴들의 bounding box 배열을 반환한다. const optio..