-
젊은 뇌졸중 환자 이야기 (1)소소한 일상 2025. 10. 11. 18:09
이 글은 4개월전 우연히 응급실에 실려간 후 뇌경색 진단을 받은 직후 심장 시술을 받게된 나의 개인적인 이야기이다 사실 뇌경색 증상은 뚜렷하게 연결되는 지점이 없기도해서 일을 쉬면서까지 심장 시술을 받아야하나 싶었지만, 나의 경우 중증난치질환으로 산정특례를 받을 수도 있고 무엇보다 순환기내과선생님의 의견으로는 앞으로 년마다 1% 정도 확률이 올라가서 재발 확률이 100세 기준으로 70%이상이라는 설명을 듣고 난 후 결정하게 되었다 지금은 시술도 끝나고 일도 복귀했지만 갑작스러운 입원과 시술 경험등 나의 기억들이 모두 추억속으로 사라지기전에 변변치 않는 작문 실력이지만 누군가는 도움이 되지 않을까하는 생각으로 글을 쓰게되었다. (사실 누군가가 보기보다는 경험들을 남기고 싶은 욕심이 더 컸다.) '그 날은..
-
Graph Neural Networks review (0) IntroDeep learning study/Graph study 2023. 1. 20. 00:30
Graph neural network 정리의 시작을 해보려고 합니다. 정리하고자 할 핵심적인 내용은 다음과 같습니다. 1. 전체적인 GNN model의 발전 역사 2. GNN 모델의 대표적인 모델 리뷰[ChebNet, GCN, GAT, GraghSAGE, GIN, Graphormer 등등] 3. GNN을 활용하는 task: Node classification, Graph classification, Link prediction 4. cs224w winter lecture 5. AMMI 2022 Course "Geometric Deep Learning": https://www.youtube.com/watch?v=5c_-KX1sRDQ&list=PLn2-dEmQeTfSLXW8yXP4q_Ii58wFdxb3C 왜..
-
밑바닥부터 시작하는 딥러닝3 (10) : 코드 품질 테스트카테고리 없음 2022. 9. 11. 15:27
10단계 테스트 목표 : 소프트웨어 개발에서 빼놓을 수 없는 테스트를 구현해 품질을 유지하고자 함 10.1 파이썬 단위 테스트 unittest를 사용하면 편함 class SquareTest(unittest.TestCase): # 순전파 확인 def test_forward(self): x = Variable(np.array(2.0)) y = square(x) expected = np.array(4.0) **self.assertEqual(y, expected) # 기대한 값이 맞는가?** # 역전파 확인 def test_backward(self): x = Variable(np.array(3.0)) y = square(x) y.backward() expected = np.array(6.0) self.asser..
-
밑바닥부터 시작하는 딥러닝3 (9) : 함수를 더 편리하게카테고리 없음 2022. 9. 11. 15:24
9 단계 함수를 더 편리하게 목표 : 'DeZero 함수의 세가지 개선점 추가' 9.1 파이썬 함수로 이용하기 : class Square(Function): def forward(self, x): y = x ** 2 return y def backward(self, gy): x = self.input.data gx = 2 * x * gy return gx class Exp(Function): def forward(self, x): y = np.exp(x) return y def backward(self, gy): x = self.input.data gx = np.exp(x) * gy return gx def square(x): return Square()(x) def exp(x): return Exp()..
-
밑바닥부터 시작하는 딥러닝3 (8) : 제 1 고지 미분 자동 계산카테고리 없음 2022. 9. 11. 15:21
8 단계 수치 미분 목표 : 기존 backward 메서드 처리효율 개선 및 확장 대비 구현 8.1 현재의 Variable 클래스 현재 재귀로 구현 되어있음 class Variable: # 생략.... def backward(self): f = self.creator if f is not None: x = f.input x.grad = f.backward(self.grad) x.backward() # 'backward'메서드에서 backward 메서드를 호출하고, 호출된 backward 메서드에서 또 다른 backward 메서드를 호출... # creator 함수가 없는 변수, self.creator가 None인 변수를 찾을 때까지 계속(재귀) 8.2 반복문을 이용한 구현 재귀 → 반복문 class Var..
-
밑바닥부터 시작하는 딥러닝3 (6) : 제 1 고지 미분 자동 계산Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:35
6 단계 수치 미분 목표 : Variable과 Function 클래스를 확장하여 역전파를 이용한 미분 구현 6.1 Variable 클래스 추가 구현 class Variable: def __init__(self, data): self.data = data self.grad = None grad(미분값)도 저장 : None으로 초기화 해두고 실제 역전파 할때 미분값을 계산하여 대입 🚧 벡터나 행렬 등 다변수에 대한 미분은 gradient라고 한다. 6.2 Function 클래스 추가 구현 미분을 계산하는 backward 메서드 추가 forward 메서드 호출 시 건네받은 Variable 인스턴스 유지 class Function: def __call__(self, input): x = input.data y ..
-
밑바닥부터 시작하는 딥러닝3 (5) : 제 1 고지 미분 자동 계산Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:32
5 단계 역전파이론 목표 : '역전파 이론 공부' 5.1 미분이란 : 미분이란 무엇일까요? : '변화율', '극한으로 짧은 시간에서의 변화량' 5.2 수치 미분 구현 컴퓨터는 극한을 취급할 수 없으니 대체할 방법이 필요함 → 수치미분 numerical differentiation : 매우 작은 값을 통해 미세한 차이를 사용해 함수의 변화량을 구하는 방법 수치 미분은 작은 값을 사용해 '진정한 미분'을 근사 → 오차가 존재 ⇒ '중앙차분' centered difference를 이용하여 근사 오차를 줄임 : f(x) - f(x+h) 대신 f(x-h) - f(x+h) 사용 🧪 전진 차분보다 중앙차분이 진정한 미분값에 가깝다는 사실은 Taylor series를 이용해 증명할 수 있음 [구현] def numeri..
-
밑바닥부터 시작하는 딥러닝3 (4) : 제 1 고지 미분 자동 계산Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:29
4 단계 수치 미분 목표 : '미분이 무엇인지 복습하고 수치 미분이라는 간단한 방법으로 미분 계산' 4.1 미분이란 : 미분이란 무엇일까요? : '변화율', '극한으로 짧은 시간에서의 변화량' 4.2 수치 미분 구현 컴퓨터는 극한을 취급할 수 없으니 대체할 방법이 필요함 → 수치미분 numerical differentiation : 매우 작은 값을 통해 미세한 차이를 사용해 함수의 변화량을 구하는 방법 수치 미분은 작은 값을 사용해 '진정한 미분'을 근사 → 오차가 존재 ⇒ '중앙차분' centered difference를 이용하여 근사 오차를 줄임 : f(x) - f(x+h) 대신 f(x-h) - f(x+h) 사용 🧪 전진 차분보다 중앙차분이 진정한 미분값에 가깝다는 사실은 Taylor series를 ..