본문 바로가기

Study98

[AI] Self-Attention 코드와 함께 이해하기 GAN이나 Transformer 모델에서 자주 등장하는 Self-Attention은 입력 feature 안에서 “어떤 위치가 다른 위치를 얼마나 참고해야 하는가”를 학습하는 메커니즘입니다. 이번 글에서는 PyTorch로 구현된 AttentionBlock 코드를 뜯어보며 self-attention이 어떻게 동작하는지 직관적으로 이해해보겠습니다.Self-Attention이 필요한 이유CNN(합성곱 신경망)은 지역적인 패턴을 잡는 데 강하지만, 멀리 떨어진 위치 간 관계를 직접적으로 모델링하기 어렵습니다.예를 들어 CT 이미지에서 병변(lesion)이 특정 구조와 함께 나타난다고 할 때, CNN은 작은 커널만 보고 있어서 이 전역적인 맥락을 놓칠 수 있습니다.Self-attention은 모든 픽셀들이 각각 서.. 2025. 9. 1.
[Statistics] KL divergence(Kullback-Leibler divergence)에 대하여 GAN, VAE 등 생성모델을 공부하다보면, KL divergence라는 개념이 자주 등장합니다.GAN과 VAE의 학습 목표 자체가 "분포 간 차이를 줄이는 것"이며, 이는 곧 KL divergence의 목적과 일치하기 때문인데요.이번 포스트에서 생성 모델을 이해하기 위한 필수 지식인 KL divergence에 대해 소개하도록 하겠습니다. 들어가기 전에, 반드시 Cross Entropy에 대한 내용을 알고 가셔야 합니다!아래 포스팅을 참고하세요 :) [Statistics] Cross Entropy에 대하여AI를 공부하다보면, loss function으로 정말 자주 등장하는 개념으로 Cross Entropy가 있습니다. 요즘은 그냥 라이브러리만 갖다 쓰면 어찌저찌 모델링이 되니, 생각보다 이 개념을 똑바.. 2025. 8. 29.
[Statistics] Cross Entropy에 대하여 AI를 공부하다보면, loss function으로 정말 자주 등장하는 개념으로 Cross Entropy가 있습니다. 요즘은 그냥 라이브러리만 갖다 쓰면 어찌저찌 모델링이 되니, 생각보다 이 개념을 똑바로 짚고 넘어가지 않는 학부생들이 많은데, 결국에는 제대로 공부해야 될 날이 오게 될 겁니다... 저처럼요 하하하 Cross Entropy를 공부하기에 앞서, 반드시 정보량, 엔트로피에 대한 내용을 알고 가셔야 합니다~!아래 포스트를 참고하세요 :) [Statistics] 정보량(Information)과 엔트로피(Entropy)에 대하여Information이라고 하면 사실 모두가 그게 뭔지 안다고 말할 수 있을 것입니다.그런데, 통계학에서의 information은 저희가 일반적으로 아는 그 "정보"의 의미와.. 2025. 8. 29.
[Statistics] 정보량(Information)과 엔트로피(Entropy)에 대하여 Information이라고 하면 사실 모두가 그게 뭔지 안다고 말할 수 있을 것입니다.그런데, 통계학에서의 information은 저희가 일반적으로 아는 그 "정보"의 의미와는 조금 거리가 있습니다. 엔트로피도 마찬가지 입니다. 이것도 사실 익숙하신 분들이 계실텐데요, 열역학의 엔트로피를 먼저 떠올리실 겁니다.하지만 통계학에서의 엔트로피는 또 새로운 의미를 갖고 있습니다. 오늘은 정보이론의 핵심이 되는 정보량(information)과 엔트로피(entropy)에 대하여 소개해보겠습니다.정보량의 직관적 이해통계학에서 말하는 정보량은 "특정 사건이 주는 놀람 정도"라고 이해해볼 수 있습니다. 이걸 왜 정보량이라고 할까요?개인적인 제 생각은, 놀라운 사건일 수록 그 사건이 주는 정보의 의미가 크기 때문이 아닐까.. 2025. 8. 29.
[AI] Mixed Precision Training 딥러닝 모델을 이것저것 만들어보고 실험하다 보면 GPU out of memory 오류를 자주 만나게 됩니다.아슬아슬하게 초과되어서 학습을 돌리지 못할 땐 정말 마음이 아픈데요.. 메모리를 줄이려면 이미지 사이즈를 줄이거나 batch size를 줄이거나 뭐가 됐든 trade off가 발생합니다.그런데 이 상황에서 "모델 성능은 유지하면서, 속도는 빠르게, 메모리는 더 적게" 할 수 있는 방법이 있다면 쓰지 않을 이유가 없지 않을까요? 이 기술이 바로 Mixed Precision Training 입니다.NVIDIA 형님들께서 2018년에 만들어주셨죠! (꾸벅 꾸벅)https://arxiv.org/abs/1710.03740 Mixed Precision TrainingDeep neural networks hav.. 2025. 8. 28.
[VSCode] VSCode에서 기본 터미널 bash로 변경하기 Window 사용자들은 VSCode를 쓰다 보면 터미널을 열 때마다 sh로 열려서 귀찮을 때가 많습니다. (bash를 주로 쓰기 때문에..)근데 이건 10초만에 해결할 수 있어요~! 기본 터미널을 bash로 변경하는 방법을 소개하겠습니다.기본 터미널 bash로 변경하는 방법1. Settings 클릭 2. Settings 검색창에 default terminal 작성 3. Terminal > Integrated > Default Profile: Linux 부분 bash로 설정 2025. 7. 11.
[Linear Algebra] 유사 역행렬(Pseudo-Inverse)에 대하여 AI 논문을 읽다보면 항상 행렬이 포함된 수식들을 만나게 됩니다.그 중에서도 역행렬 연산을 만나게 될 때, 이런 궁금증이 생긴적이 있습니다. "역행렬은 정사각행렬일 때만 정의된다고 배웠는데, 정사각행렬이 아닌 경우가 훨씬 많을텐데 어떻게 역행렬을 계산한거지?" 그래서 찾아보니 유사 역행렬(pseudo-inverse)라는 개념이 있었습니다.이것을 활용하면 정사각행렬이 아닌 경우에도 역행렬을 구할 수 있고, 이는 곧 다양한 상황에서 최적해를 찾는데 도움을 줍니다.유사 역행렬 계산 방법이런 방정식이 있다고 해봅시다. $$Ax = b$$위 식의 해를 구하기 위해서는 양변에 $A^{-1}$를 곱해주면 됩니다. 그런데 만약 $A$가 정사각행렬이 아니라면?$A^{-1}$를 정의할 수 없으므로 불가능하겠지요. 하지만,.. 2025. 7. 6.
[Linear Algebra] Eigenvalue(고유값), Eigenvector(고유벡터)에 대하여 이번 포스팅에서는 Eigenvalue(고유값)와 Eigenvector(고유벡터)에 대해서 설명해보겠습니다.학교에서는 단순히 시험치기 위해 구하는 방법만 외우고 지나갔던 기억이 있네요.. 선형대수는 기하학적 의미가 가장 중요한데 말이죠. 구하는 방법도 복습할 겸 정리하고, 그땐 그냥 넘어갔던 기하학적 의미도 챙겨 보도록 하겠습니다. (오늘 갑자기 펜슬이 고장나서 손으로 써야합니다.. 글씨가 매우 더러울 예정 ㅜㅜ)고유값과 고유벡터란?어떤 벡터에 행렬을 곱한 것과 어떤 다른 값을 곱한 결과가 같은 경우, 그 벡터를 고유벡터, 곱한 값을 고유값이라고 합니다. 좀 더 선형대수스럽게 말해볼까요? 고유벡터는 어떤 선형 변환(=행렬 곱)을 했을 때 방향은 바뀌지 않고 크기만 변하는 벡터입니다.이때 그 벡터의 크기를 .. 2025. 7. 1.