썸네일 Triplet Loss Triplet Loss단어에서 힌트를 얻을 수 있듯이 총 3가지 부류의 데이터를 학습을 한다.이 Loss는 2010년대에 많이 사용되었던 loss인데, 주로 Metric Learning을 위해 사용되었다. Triplet Loss는 기준이 되는 Anchor 데이터, Anchor 데이터와 다른 class에 속하는 Negative 데이터, Anchor 데이터와 같은 class에 속하는 Positive 데이터를 가지고 학습을 한다.Anchor와 다른 class인 Negative point는 Anchor와 같은 class인 Positive point 보다 'α만큼 더' 멀리 떨어져있어야한다를 학습시키는 전략이다. 이때, 단순히 더 멀리 떨어져있어야한다가 아닌 'α만큼 더' 멀리 떨어져있어야한다라는 조건을 주는 이..
썸네일 [회고글] 2024년 회고 2024년 기억하고 싶은 것들인턴, 한이음 ICT 멘토링, 창업동아리, 해커톤, 뮤직페스티벌, GDSC AI 멘토, ACK2024, POSTECH 연구참여생, 논문 작성, 연구실 컨택 1) 스타트업 인턴처음으로 정말 서비스로 돈을 버는 곳에서 일해본 소중한 경험들이었다. 작년 회고록에서도 작성했었을텐데 '내 전공과 관련된 사업장'에서 면접을 본 경험이라는 것 부터가 처음이었다. 나는 실무경험이나 좋은 커리어 라는 점보다 이 곳에서 내 진로적합성을 확인해보고싶었던 마음이 컸다. 대학생 신분에서 내가 좋아하는 공부와 일은 이러한 분야일것이다 라는 추측정도는 가능하고 그렇게 직업을 결정하는 대다수의 사람들이 있겠지만, 나는 조금 더 확실히 내가 좋아하는 일을 찾고싶었던 것 같다. 그렇기에 회사에서도 일을 잘 ..
썸네일 차원의 저주 (curse of dimensionality) 🧩 차원의 저주예전 Lab실에서 차원 축소 기법인 PCA에 대해 고민을 할때부터 알고있다고 착각했던 적이 있어서 정확히 알아보는 시간이 필요했다. 🖼️  이미지는 "고차원 데이터" 다800x600 픽셀의 RGB 이미지를 예로 들어보면, 이 이미지를 데이터로 표현할 때는 800x600x3, 즉 총 1,440,000차원으로 나타낼 수 있습니다. 이때 "이미지가 2차원 데이터가 아닌가?"라는 의문이 들 수 있다. 🔍 이미지는 왜 고차원 데이터일가? (생략가능)더보기하지만 여기서 말하는 "2차원"은 기하학적인 관점에서의 공간적 구조를 뜻한다. 이미지를 생각해보면, 각 픽셀은 (x, y)라는 2차원 좌표를 가지고 있다. 그리고 각 픽셀의 R, G, B 값은 각각 (0~255) 사이의 값을 가지며, 이 세 가..
썸네일 Mocking을 통해 Test Code 작성하기 모킹이란모킹(mocking)은 외부 서비스에 의존하지 않고 독립적으로 실행이 가능한 단위 테스트를 작성하기 위해서 사용되는 테스팅 기법이다. 단위 테스트를 작성할 때 외부에 의존하는 부분을 임의의 가짜로 대체하는 기법이 자주 사용되는데 이를 모킹(mocking)이라고 한다.unittest.mock 모듈의 patch() 데코레이터Mock 객체 설정하기mocking은 mock이라고 불리는 가짜 객체를 생성하는 것부터 시작한다.이 mock 객체가 어떻게 작동을 할지를 지정해줄 수 있으며, 이 mock 객체는 자신을 상대로 어떤 작업이 일어났는지를 기억한다.먼저 호출되었을 때 특정 값을 리턴하는 mock 객체는 return_value 옵션을 이용해서 생성할 수 있다.>>> from unittest.mock im..
썸네일 왜 가중치(w)의 크기를 줄이면 Overfitting을 막을 수 있을까? 1. Overfitting의 정의overfitting은 모델이 학습데이터에 대해 과도하게 맞춰져, 새로운 데이터에 대해 일반화 능력이 떨어지는 현상이다. 이는 모델이 데이터의 본질적인 특성보다 복잡할때 발생한다.2. 가중치(W)와 모델 복잡성의 관계가중치는 모델의 각 특성이 예측에 미치는 영향력을 나타낸다. 가중치의 절대값이 크면 해당 특성이 예측에 강한 영향을 미친다.데이터의 본질적인 특성에 비해 모델의 각 특성(feature) 수가 증가하면 모델이 고려해야 할 정보와 관계가 늘어나 모델이 복잡해진다. 모델이 복잡해지면 데이터를 표현할 수 있는 방법이 더 다양해진다는 의미로, 학습 데이터의 작은 변화에도 민감하게 반응을 하는 등 학습 데이터에 과도하게 맞춰질 가능성이 높아 모델의 variance가 커진..
썸네일 트랜잭션 DBMS에서 트랜잭션과 동시성 제어는 데이터의 일관성과 시스템의 효율성을 유지하는 데 핵심적인 역할을 한다.1. 트랜잭션(Transaction)이란?트랜잭션은 DBMS에서 더 이상 나눌 수 없는 작업의 단위이다. 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 뜻한다.트랜잭션의 특징(ACID)원자성(Atomicity): 트랜잭션의 모든 연산이 완전히 수행되거나, 전혀 수행되지 않아야 한다.일관성(Consistency): 트랜잭션 실행 전후의 데이터베이스 상태가 일관되어야 한다.독립성(Isolation): 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다.지속성(Durability): 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다.트랜잭션의 예시START TRANSA..
썸네일 데이터 독립성 DBMS를 사용하는 이유 중 하나는 DBMS가 데이터 독립성을 제공하기때문이다.데이터 독립성이라는 말만 들었을때 직관적으로 의미가 다가오지 않는다.  데이터 독립성은 데이터베이스의 물리적 구조나 저장 방식이 변경되어도 응용 프로그램이나 사용자 인터페이스에 영향을 주지 않는다는 것을 말한다.  물리적 데이터 독립성: 데이터베이스의 물리적구조/저장방식이 변경데이터베이스가 물리적 저장 구조가 변경된다는 것은 예를 들어데이터가 디스크에 실제로 배치되는 방법이 변경되어 데이터를 저장하던 저장 하드웨어가 HDD에서 SDD로 변경된다던지, 특정 레코드의 빠른 검색을 가능하게 하기 위해 파일 구조의 변경을 하여 순차 파일에서 인덱스 파일로 변경이 일어난다는 것을 의미한다. 물리적 스키마가 변경되어도 개념 스키마가 그대..
썸네일 도메인과 SSL 인증서 연결하기(HTTPS 연결) 1. Background 원래는 도메인에 돈을 들이고싶지 않아 그냥 Nginx를 리버스 프록시로 사용한다면, Nginx에서 SSL인증을 처리하도록 구현을 하려했으나 프론트측에서 안된다는 것을 확인하여 도메인을 구입한 후 SSL 인증서를 발급받기로 하였다.  2. DNS 설정하기 구입한 도메인의 DNS 설정에 가서 A레코드를 생성해 내 서버 IP로 연결해야한다. 도메인을 구입한 가비아 사이트에서 진행할 수 있다. 1) 도메인 관리페이지로 들어간다.2) DNS 정보 섹션에서 도메인 연결 > 설정을 클릭한다. 3) 내가 설정하고싶은 도메인 명의 설정을 클릭한다. 4) DNS 설정 섹션에서 레코드 수정을 클릭한 다음, A 레코드를 추가한다.  타입으로는 A,호스트로는 www(서브도메인)와 @(루트도메인을 의미한..
썸네일 FastAPI 재시작 및 변경사항 적용 1. Background서버에 올려놓은 코드에 변경사항이 생겼을때 최신코드로 반영하면서 서비스를 재시작하는 방법을 알아보자.  2. 서비스 재시작sudo systemctl restart fastapi  3. 서비스 상태 확인sudo systemctl status fastapi 4. 역방향 프록시 설정 (option)Nginx나 Apache를 사용중이라면 설정 변경시 이 서비스들도 재시작이 필요하다. sudo systemctl restart nginx
[Debug] 디버깅하느라 print해놨는데 어디에 해놓았는지 모르는 경우 말 그대로이다. 디버깅하느라 print해놨는데 code 어디에 해놓았는지 모르는 경우 사실 패키지를 직접 수정하는 것은 일반적으로 권장되지 않는다.하지만 내가 건들였다가 계속 쓸데없는 부분들이 함께 logging되고있는 경우 grep을 사용하면 된다. 눈에 보이는 코드 상에서 찾을때는grep -R "{print문에서 나오는 string부분: 내가 적었던 부분이라고 확신이 있는 부분}" . 또는 가상환경 패키지 내부를 수정했던 것 같다는 경우에는 grep -R "{print문에서 나오는 string부분: 내가 적었던 부분이라고 확신이 있는 부분}" {가상환경 폴더} 이렇게 찾으면 된다.
썸네일 [Train] ControlNet 학습시키기 https://github.com/lllyasviel/ControlNet/blob/main/docs/train.md  ControlNet/docs/train.md at main · lllyasviel/ControlNetLet us control diffusion models! Contribute to lllyasviel/ControlNet development by creating an account on GitHub.github.com ControlNet을 학습시켜보자. 이 문서에 잘 나와있긴하지만, 몇가지 디버깅했던 내용을 포함해서 적어보려한다. ControlNet은 github, huggingface 모두 다 올라와있는데, github에는 코드 중심으로, huggingface에는 데이터 중심으로 나..
썸네일 [paper review] 3Difftection: 3D Object Detection with Geometry-aware diffusion features 0. Paper Linkhttps://arxiv.org/abs/2311.04391 3DiffTection: 3D Object Detection with Geometry-Aware Diffusion FeaturesWe present 3DiffTection, a state-of-the-art method for 3D object detection from single images, leveraging features from a 3D-aware diffusion model. Annotating large-scale image data for 3D detection is resource-intensive and time-consuming. Recently, pretrarxiv.org1. Introduction..