참고) 해당 포스팅은 패스트 캠퍼스 100% 환급 챌린지 미션 기록용 포스팅이며, 강좌 내용에 맞추어 포스팅함을 언급
클립명 : PART4)딥러닝의 3 STEP의 기초
쉽게 배우는 역전파 학습법 (STEP 2) - 학습법의 수식적 이해 - 2
쉽게 배우는 역전파 학습법 (STEP 2) - 수치 미분을 이용한 신경망 학습 - 1
쉽게 배우는 역전파 학습법 (STEP 2) - 학습법의 수식적 이해 - 1
본 포스팅에서는 수치 미분을 이용한 심층 신경망 학습에 대한 코드구현을 살펴본다. 일부 구현이고, 이와 관련된 두번째 포스팅에서 완성을 하는 단계로 거쳐나간다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | <code> import time import numpy as np epsilon = 0.0001 def _t(x): return np.transpose(x) def _m(A, B): return np.matmul(A, B) def sigmoid(x): return 1 / ( 1 + np.exp( - 1 )) def mean_squared_error(h, y): return 1 / 2 * np.mean(np.square(h - y)) class Neuron: def __init__( self , W, b, a): # Model Parameter self .W = W self .b = b self .a = a # Gradients self .dW = np.zeros_like( self .W) self .db = np.zeros_like( self .b) def __call__( self , x): return self .a(_m(_t( self .W), x) + self .b) # activation(W^T)x + b class DNN: def __init__( self , hidden_depth, num_neuron, num_input, num_output, activation = sigmoid): def init_var(i, o): return np.random.normal( 0.0 , 0.01 , (i,o)), np.zeros((o,)) #출력 init W & init b self .sequence = list () #First hidden layer W, b = init_var(num_input, num_neuron) self .sequence.append(Neuron(W, b, activation)) # Hidden layers for _ in range (hidden_depth - 1 ): W, b = init_var(num_neuron, num_neuron) self .sequence.append(Neuron(W, b, activation)) # Output layer W, b = init_var(num_neuron, num_output) self .sequence.append(Neuron(W, b, activation)) def __call__( self , x): for layer in self .sequence: x = layer(x) return x def calc_gradient( self , x, y, loss_func): def get_new_sequence(layer_index, new_neuron): # 특정 layer을 new_sequence = list () for i, l in enumerate ( self .sequence): if i = = layer_index: new_sequence.append(new_neuron) # 새로운 뉴런으로 교체 else : new_sequence.append(layer) return new_sequence def eval_sequence(x, sequence): for layer in sequence: x = layer(x) return x < / code> |
(글자수 : 1500자 이상)
강의 소개 링크 : bit.ly/3cx6kMd
딥러닝/인공지능 올인원 패키지 Online. | 패스트캠퍼스
Tensorflow2.0부터 Pytorch까지 딥러닝 대표 프레임워크를 정복하기. 생활 깊숙이 침투한 인공지능, 그 중심엔 딥러닝이 있습니다. 가장 강력한 머신러닝의 툴로서 주목받는 딥러닝은 생각보다 어려
fastcampus.co.kr

'Deep Learning & AI > AI' 카테고리의 다른 글
(딥러닝-온라인)얕은 신경망에서 경사하강 학습법 실습_복습 (0) | 2021.05.15 |
---|---|
(딥러닝-온라인)딥러닝의 3 STEP의 기초 (7~9강) (0) | 2021.05.13 |
쉽게 배우는 역전파 학습법 개념_ Step1 (0) | 2021.05.08 |
(딥러닝_온라인)딥러닝의 3 STEP의 기초 (10~12강) (0) | 2021.05.01 |
(딥러닝_온라인)딥러닝의 3 STEP의 기초 (7~9강) (0) | 2021.04.25 |