본문 바로가기

분류 전체보기125

[Linear Algebra] Matrix(행렬)은 Linear Operator(선형 연산자)이다? 공부를 하다보면 행렬을 단순히 숫자 더미로 생각하게 될 때가 있는데요, 그러면 우리 뇌는 그냥 본질을 내다버린 계산기가 되어 버립니다. 제가 그랬어요..ㅠㅠ그래서! 우리는 반드시 이 행렬이라는 녀석이 벡터를 변형하는 구조적 도구라는 걸 이해하고 선형대수를 바라보아야 합니다.그래야 선형대수라는 학문을 훨씬 더 입체적으로 볼 수 있게 됩니다.Linear Operator(선형 연산자)란?먼저 선형 연산자가 무엇인지부터 알아야 되겠죠? 선형 연산자는 말 그대로 벡터를 입력받아 다른 벡터로 바꾸는 함수입니다. 그런데 조건이 하나 있어요. 어떤 함수 $T$가 선형 연산자가 되려면, 다음 두가지를 만족해야 합니다.1. 덧셈 보존 (Additivity)$$T(\overrightarrow{u} + \overrightar.. 2025. 5. 19.
[Linear Algebra] Null Space(영공간)에 대하여 선형대수학을 공부하다보면 Ax=0라는 형태의 식을 많이 접하게 되는데요,이걸 기하학적으로 이해하지 못하고 그냥 계산기처럼 수식 계산만 하게되면 선형대수학을 공부하는 의미가 없어집니다.제가 그랬죠... 그래서 다시 공부하는 중... 그러니까 Null space에 대해 정확하게! 직관적으로! 한번 살펴보자구요!Null Space의 수학적 정의 Null Space(영공간)는 선형대수에서 다음과 같이 정의됩니다. 어떤 행렬 A가 있을 때, $A\overrightarrow{x} = \overrightarrow{0}$를 만족시키는 모든 벡터 $\overrightarrow{x}$의 집합 즉, 행렬 A에 곱했더니 결과가 0이 되는 x들만 모은 공간을 말하는 것이죠.Null Space의 직관적 예시아래와 같은 Ax=0 .. 2025. 5. 18.
[Linear Algebra] 선형 독립(Linear Independence)과 기저(Basis) 선형대수학이라는 학문에서 가장 중요한 첫걸음 중 하나로, 선형 독립(Linear Independence)이라는 개념이 있습니다.그리고 이 개념과 짝지어서 나오는 개념이 바로 기저(basis)라는 개념이죠.처음엔 복잡해보일 수 있지만, 차근차근 보다보면 이해가 되더라구요.일단 딱딱한 수학적 정의를 먼저 살펴보고, 제가 이해한 대로 직관적인 설명을 해보겠습니다.Linear Independence의 수학적 정의 벡터들이 선형 결합(linear combination)으로 서로를 만들 수 없다면, 그 벡터들은 선형 독립이라고 합니다. 예를 들어, 벡터들이 $\overrightarrow{v_1}, \overrightarrow{v_2}, \overrightarrow{v_3}$ 일 때,$a_1\overrightarr.. 2025. 5. 18.
[AI] U-Net 구조 분석 U-Net은 의료 영상 도메인의 정밀한 픽셀 단위 분할(Segmentation)이 필요한 과제에서 가장 널리 사용되는 구조입니다. 저도 회사에서 brain의 stroke lesion을 segmentation하는 모델을 만드는 프로젝트에 참여하게 되었는데, 기본적으로 U-Net 구조를 베이스로 하는 모델을 튜닝하고 있기 때문에, 더 자세히 공부하고 기록하기 위해 포스팅을 쓰게 되었습니다. 이번 포스트에서는 U-Net의 구조에 대해 각 블록이 무엇을 의미하는지, 왜 그렇게 설계되었는지까지 한 블록씩 파헤쳐보겠습니다.전체 구조 요약Contracting Path 특징 추출(Feature extraction) Expansive Path 자세한 위치 복원(Spatial information 복구) Bottlenec.. 2025. 4. 30.
ChatGPT로 논문 마인드맵 자동 생성하기 논문을 읽다 보면 핵심 개념을 구조화해서 정리하고 싶을 때가 많습니다. 수많은 논문 중에 정독할 논문을 골라야할 때가 많은데, 그럴 때마다 모든 논문을 읽어보고 판단하기에는 시간이 너무나도 부족하기 때문이죠. 본 포스팅에서는 ChatGPT와 PlantUML 마인드맵 문법을 활용하여, 논문을 자동으로 마인드맵화하는 방법을 소개합니다. 해당 내용은 아래 블로그를 참고하였으며, 정말 유용한 정보라 앞으로도 두고두고 써먹기 위해 블로그에 정리해보았습니다!https://byeongkijeong.github.io/Paper-to-Mindmap/ 논문 30초만에 Mindmap으로 정리하기From now on you will behave as "MapGPT" and, for every text the user wil.. 2025. 4. 30.
[AI] Dice Coefficient와 IoU(Intersection over Union) 비교 의료 영상(Medical Imaging) 분야에서 딥러닝 기반 분할(Segmentation) 모델의 성능을 평가할 때, 가장 많이 등장하는 지표로 Dice Coefficient와 IoU(Intersection over Union)가 있습니다.두 지표는 비슷해 보이지만, 수학적으로도, 해석적으로도 분명한 차이가 있으며 의료영상에서는 Dice가 더 선호되는 경향이 있습니다.본 포스팅에서는 두 지표의 정의, 수식, 차이점, 그리고 Medical Imaging 관점에서의 중요성을 명확하게 정리해보도록 하겠습니다.Dice Coefficient$$Dice(A, B) = \frac{2 \left | A\cap B \right |}{\left | A\right | + \left | B\right |}$$ $\left .. 2025. 4. 29.
[PyTorch] unsqueeze() vs squeeze() PyTorch로 딥러닝 모델을 다루다 보면 차원(Dimension) 을 추가하거나 제거해야 할 때가 자주 있습니다.이때 자주 등장하는 것이 바로 unsqueeze() 와 squeeze() 함수입니다.torch.unsqueeze() " 차원 하나를 살짝 껴 넣는다!" unsqueeze는 특정 위치(dim) 에 새로운 차원을 추가합니다. 추가된 차원은 크기가 1입니다. 1. torch.unsqueeze(x, dim=0)x = torch.tensor([1, 2, 3])# 0번째 축에 차원 추가x_unsqueezed = torch.unsqueeze(x, dim=0)print(x.shape) # torch.Size([3])print(x_unsqueezed.shape) # torch.Size([1, 3]) 2.. 2025. 4. 29.
[PyTorch] cat() vs stack() 딥러닝 실습을 하다 보면 데이터를 합치는 작업이 꼭 필요합니다.PyTorch에서는 주로 torch.cat()과 torch.stack() 두 가지 함수를 사용하는데, 저도 매번 헷갈려서 이번에 한번 쭉 정리해보려 합니다.torch.cat() "이미 있는 축(axis) 방향으로 나란히 연결한다." cat은 같은 차원끼리 이어붙이는 함수입니다. 차원 수는 변하지 않습니다. input들의 shape이 모든 차원에서 일치해야 하며, 붙이려는 차원만 다를 수 있습니다.1. torch.cat((a, b), dim=0)a = torch.tensor([[1, 2], [3, 4]]) # shape: (2, 2)b = torch.tensor([[5, 6], [7, 8]]) # shape: (2, 2)# dim=0 (.. 2025. 4. 29.