Deep learning study/밑바닥 부터 시작하는 딥러닝3
-
밑바닥부터 시작하는 딥러닝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를 ..
-
밑바닥부터 시작하는 딥러닝3 (3) : 제 1 고지 미분 자동 계산Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:27
3 단계 함수 연결 '3단계에서는 또 다른 함수를 구현하고 여러 함수를 조합해 계산할 수 있도록 함' 3.1 Exp 함수 구현 딥러닝 모듈 만들때 class DNN(nn.Module): 과 같은 구조 Class Exp(Function): def forward(self, x): return np.exp(x) Function 클래스 상속후 forward 메서드에서 원하는 계산 구현 3.2 함수 연결 Function 클래스의 call 메서드는 입력과 출력이 모두 Variable 인스턴스이므로 자연스럽게 DeZero 함수들을 연이어 사용할 수 있었음 ⇒ self.data로 구현하지 않으면 다른 method에서 사용을 못함[확인 필요] A = Square() B = Exp() C = Square() x = Var..
-
밑바닥부터 시작하는 딥러닝3 (2) : 제 1 고지 미분 자동 계산Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:26
2 단계 변수를 낳는 함수 함수 → 단순한 Variable 상자를 마법의 상자로 바꾸는 장치 2.1 함수란? 어떤 변수로부터 다른 변수로의 대응 관계를 정한 것 ⇒ 변수 사이의 대응 관계를 정하는 역할 ⇒ computational graph(계산 그래프) : 노드들을 화살표로 연결해 계산 과정을 표현한 그림 ⚠️ 컴퓨터 과학에서 그래프란 : node와 edge로 구성된 데이터구조를 의미함 2.2 Function 클래스 구현 Function 클래스는 Variable 인스턴스를 입력받아 Variable 인스턴스를 출력 Variable 인스턴스의 실제 데이터는 인스턴스 변수인 data에 있다 Fuction class 구현 Class Function: def __call__(self, input): x = in..
-
밑바닥부터 시작하는 딥러닝3 (1) : 제 1 고지 미분 자동 계산Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:23
🎯 목표 딥러닝 프레임워크의 이해 미분을 계산하기 위한 도구 프로그래밍 언어의 일종 DeZero의 기반을 마련 : 미분을 자동으로 구하는 구조 만들어줌 딥러닝 프레임워크는 미분을 계산하기 위한 도구 Variable, Function 이라는 두 클래스로 미분 자동 계산 기반 완성 1 단계 상자로서의 변수 딥러닝 프레임워크는 미분을 계산하기 위한 도구 Variable, Function 이라는 두 클래스로 미분 자동 계산 기반 완성 1.1 변수란? 변수는 DeZero에서 가장 중요한 개념 "하나의 값을 저장할 수 있는 저장공간" 1.2 Variable 클래스 구현 Class Variable: def __init__(self, data): self.data = data __init__: 초기화 함수 간단한 코드..
-
밑바닥부터 시작하는 딥러닝3 (0)Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:08
스터디 목적 : 딥러닝 프레임워크의 이해와 구현 능력 향상 github : https://github.com/WegraLee/deep-learning-from-scratch-3 GitHub - WegraLee/deep-learning-from-scratch-3: 『밑바닥부터 시작하는 딥러닝 ❸』(한빛미디어, 2020) 『밑바닥부터 시작하는 딥러닝 ❸』(한빛미디어, 2020). Contribute to WegraLee/deep-learning-from-scratch-3 development by creating an account on GitHub. github.com 2021년 가을에 하던 스터디 이제 정리하는거 실화냐.. [심지어 중간에 그만둠] 다시 시작해봅니다...