Study Note/Deep Learning

    1. 신경망의 두 가지 갈래 & Linear Layer 해부

    안녕하세요! 오늘은 딥러닝 모델의 큰 뼈대를 이루는 두 가지 구조(FFNN, RNN)와, 그 뼈대를 구성하는 가장 작은 단위인 Linear Layer에 대해 알아보겠습니다.우리가 다루는 의료 데이터는 크게 두 가지로 나뉩니다.정형 데이터: 환자의 나이, 성별, 혈액검사 수치 등 (시점과 상관없는 데이터)시계열 데이터: 심전도(ECG), 호흡수 변화, 입원 기간 동안의 활력 징후 기록 등 (시간 순서가 중요한 데이터)이 데이터 특성에 따라 사용하는 신경망의 종류가 달라집니다. 1. 인공 신경망의 두 가지 타입 (FFNN vs RNN)① 피드 포워드 신경망 (Feed-Forward Neural Network, FFNN)특징: 위 그림의 첫 번째 모델입니다. 데이터가 입력층(Input)에서 출력층(Output..

    비선형 문제를 푸는 열쇠(Activation Function)와 학습의 핵심(Back Propagation)

    구조를 만들었으니 이제 학습을 시켜야겠죠? 딥러닝 모델이 단순히 계산만 하는 게 아니라 '복잡한 패턴'을 익히고 '스스로 수정'하는 원리를 알아보겠습니다. 1. 활성화 함수 (Activation Function): 세상을 곡선으로 보자퍼셉트론을 수백 층 쌓아도, 단순히 곱하고 더하는(선형 연산) 과정만 반복하면 그 결과는 여전히 딱딱한 '직선'일 뿐입니다. 하지만 세상의 데이터(환자의 질병 유무 등)는 직선으로 깔끔하게 나뉘지 않죠.이 문제를 해결하기 위해 신경망에 비선형 함수(Non-linear function)를 주입합니다. (왼쪽) 시그모이드 함수:입력된 값을 0과 1 사이의 S자 곡선(Curve)으로 부드럽게 변환해 줍니다.수식: $y = \frac{1}{1+e^{-x}}$과거에는 이 함수를 많..

    [딥러닝 이론 1] 뇌를 흉내 낸 기계, 퍼셉트론에서 DNN까지

    안녕하세요! 오늘은 딥러닝의 가장 기초가 되는 인공 신경망(ANN)의 역사와 구조를 파헤쳐 보려고 합니다.우리 뇌 속의 뉴런이 어떻게 코드로 재탄생했는지, 그리고 단순한 계산기가 어떻게 복잡한 의료 데이터를 분석하는 '딥러닝'으로 진화했는지 알아보겠습니다. 1. 생물학적 뉴런 vs 인공 뉴런 (Perceptron)인공신경망은 인간의 뇌 신경세포인 '뉴런(Neuron)'의 구조를 본떠 만들었습니다.생물학적 뉴런: 가지돌기에서 신호를 받아 신경세포체에서 처리하고, 임계값을 넘으면 축삭돌기를 통해 다음 뉴런으로 전달합니다.입력($x$): 데이터가 들어오는 곳 (가지돌기).가중치($w$): 입력의 중요도 (시냅스 연결 강도).가중합($\sum$) & 활성화: 입력과 가중치를 곱해 더한 값($Wx+b$)이 임계값..

    딥러닝 실전! 텐서 곱셈(Matmul) 완벽 정리

    안녕하세요! 오늘은 딥러닝 구현의 가장 큰 걸림돌 중 하나인 '텐서 곱셈'을 정복해보겠습니다.선형대수학을 깊게 몰라도 괜찮습니다. "모양(Shape) 맞추기 게임"이라고 생각하면 훨씬 쉬워집니다. 1. 1D 텐서(벡터) 끼리의 곱 (내적)"환자 한 명의 종합 점수 계산하기" 두 벡터의 곱은 내적(Dot Product)이라고 하며, 결과는 숫자 하나(스칼라)가 나옵니다.상황: 환자 A의 검사 수치 벡터와, 각 검사 항목의 중요도(가중치) 벡터를 곱해서 '위험도 점수' 하나를 뽑고 싶을 때.공식: $(a_1 \times b_1) + (a_2 \times b_2) + \dots$조건: 두 벡터의 길이가 같아야 합니다.import torch# 환자 A의 검사 수치 [혈압, 당뇨수치, 콜레스테롤]features ..

    딥러닝을 위한 '텐서'와 '행렬'의 정체

    안녕하세요! 오늘은 딥러닝의 엔진인 PyTorch를 돌리기 위해 꼭 알아야 할 텐서의 수학적 개념'을 정리해보려 합니다."수학"이라는 단어에 겁먹지 마세요. 우리가 병원에서 매일 다루는 데이터들이 수학적으로는 어떻게 불리는지, 그 이름표만 바꿔 달아주는 과정이니까요. 1. 텐서(Tensor)의 계급도 딥러닝에서는 데이터를 형태에 따라 스칼라, 벡터, 행렬, 텐서로 분류합니다. 데이터가 몇 차원 공간에 있느냐에 따라 이름이 달라지죠.① 스칼라 (Scalar, 0D Tensor)정의: 하나의 숫자만 담고 있는 텐서입니다2.의료 데이터 예시: 특정 환자 A의 '체온 (36.5도)' 하나.수학 표기: $x \in \mathbb{R}$ (x는 실수 집합에 속하는 하나의 숫자라는 뜻입니다).특징: 축(Axis)이 ..

    딥러닝을 위한 필수 라이브러리, 의료 데이터로 정복하기

    안녕하세요! 오늘은 딥러닝의 기본기 중의 기본기, NumPy(넘파이)를 정리해 보려고 합니다. PyTorch가 GPU 위에서 돌아가는 텐서라면, NumPy는 CPU 위에서 돌아가는 고성능 행렬 계산기입니다. 사실 PyTorch의 문법 대부분이 NumPy에서 왔기 때문에, NumPy를 잘 알면 PyTorch는 거의 공짜로 배우는 셈이죠. 의료 현장의 데이터를 예시로, 꼭 알아야 할 핵심 기능만 뽑아봤습니다. 1. ndarray: 파이썬 리스트보다 수만 배 빠른 이유파이썬 리스트([1, 2, 3])는 유연하지만 느립니다. 반면 NumPy의 ndarray는 C언어로 구현되어 있어 엄청나게 빠르고 메모리도 적게 씁니다. 대용량 유전체 데이터나 고해상도 MRI 영상을 처리할 때 리스트를 쓰면 하루 종일 걸리지만,..

    [PyTorch] 의료 데이터를 위한 텐서(Tensor) 완전 정복

    안녕하세요! 오늘은 딥러닝을 시작할 때 반드시 넘어야 할 산, PyTorch 텐서의 핵심 조작법 5가지를 정리해 보려고 합니다.SQL로 데이터를 뽑고 Pandas로 전처리하는 것까지는 익숙하시죠? 하지만 딥러닝 모델(Neural Network)은 우리에게 익숙한 데이터프레임이 아닌 '텐서(Tensor)'만 먹습니다.우리가 다루는 환자 정보, MRI 영상, 바이탈 사인이 텐서 세계에서는 어떻게 변하는지, 실무 관점에서 딱 필요한 내용만 추려봤습니다. 1. 텐서 데이터 타입 (Data Types)"MRI 픽셀값은 float, 질병 진단 여부는 long" 가장 먼저 챙겨야 할 것은 데이터의 '형태(Type)'입니다. PyTorch는 데이터 타입에 매우 엄격해서, 타입이 안 맞으면 바로 에러를 뱉어냅니다.tor..

    [PyTorch 기초] 의료 데이터를 텐서(Tensor)로 만드는 법

    딥러닝 모델은 우리가 흔히 쓰는 엑셀 파일(CSV)이나 SQL 테이블을 바로 이해하지 못합니다. 숫자로 이루어진 다차원 배열인 '텐서(Tensor)'로 변환해줘야 비로소 학습할 수 있죠.의료 현장에서 마주칠 데이터들이 어떻게 텐서로 변환되는지 살펴봅시다. 1. 텐서(Tensor)의 차원별 이해PyTorch 텐서는 NumPy의 ndarray와 매우 유사하지만, GPU를 사용할 수 있다는 결정적인 차이가 있습니다.의료 데이터를 예시로 각 차원(Rank)을 직관적으로 이해해볼까요?① 0D Tensor (Scalar): 환자의 체온하나의 숫자만 존재하는 상태입니다.예시: 환자 A의 체온 36.5도Pythonimport torch# 스칼라 (0차원)temp = torch.tensor(36.5)print(f"체온:..