본문 바로가기

Deep Learning71

15.2 RNN 훈련하기 BPTT(Backpropagation through time) * time step으로 네트워크를 펼치고 보통의 역전파를 사용함으로서 RNN을 훈련시키는 방법을 뜻한다. 하지만 RNN 클래스에서는 이러한 펼치는 작업을 따로 하지는 않는다. 다만 역전파 설명을 돕기 위해 펼쳐놓았다고 표현하는 것이다. * 일반적인 Backpropagation 과정과 동일하게 정방향 계산을 통해서 도출한 output으로 cost함수를 계산하고, 이를 다시 역방향 계산하여 가중치를 update시키는 방식을 동일하게 사용한다. * 위와 같이 $Y_0, Y_1$을 무시하고 일부 output들만 cost 계산에 사용할 수 있다. output 반영 여부는 network마다 다를 것이다. 예를 들어 sequence to vector n.. 2021. 11. 21.
15.1 순환 뉴런과 순환 층 순환 뉴런 * 위 그림의 왼쪽 뉴런 한 개로 구성된 모형은 가장 간단한 RNN 모형이다. 이를 시간 축으로 표현하면 오른쪽 그림과 같이 표현할 수 있다. * 각 time step t 마다 이 순환 뉴런은 이번 step에 입력으로 들어오는 $x_t$와 이전 step의 출력인 $y_{t-1}$을 입력으로 받습니다. * 첫 번째 time step에서는 이전 step의 출력이 없으므로 $y_{t-1}$을 일반적으로 0으로 설정합니다. 순환 뉴런으로 된 층 * 각 순환 뉴런은 입력 $x_t$를 위한 가중치 하나, 출력 $y_{t-1}$를 위한 가중치 하나 총 2개의 가중치 벡터 $w_x, w_y$를 가진다. 이를 순환 층 전체로 확장하면 가중치 행렬 $W_x, W_y$라고 볼 수 있다. * 하나의 sample에 .. 2021. 11. 21.
퍼셉트론 기본 퍼셉트론 구현하기 기본 퍼셉트론 수식 $y = \begin{cases} 0 & {(w_1 x_1 + w_2 x_2 \leq \theta)}\\ 1 & {(w_1 x_1 + w_2 x_2 > \theta)}\end{cases}$ AND gate 구현 def AND(x1, x2): # theta is threshold # threshold must be bigger than weight w1, w2, theta=0.5, 0.5, 0.7 tmp=x1*w1 + x2*w2 if tmp 0)}\end{cases}$ * 편향을 뜻하는 b를 추가하였다. 편향은 뉴런이 얼마나 쉽게 활성화 될지를 조정하는 매개변수이다. 예를 들어 편향이 0.1이라면 input에 가중치를 곱한 값이 0.1을 초과해야지 뉴런이 활성화 .. 2021. 11. 17.
13.3 입력 특성 전처리 데이터 전처리 방법 1) numpy, pandas 등을 통해 데이터를 사용하기 전에 전처리 2) 데이터 API로 데이터를 적재할 때 동적으로 전처리 3) 전처리층을 직접 모델에 포함시킴 이 중에 세 번째 방법 : 전처리층을 직접 모델에 포함시키는 법을 알아보겠다. means=np.mean(X_train, axis=0, keepdims=True) stds=np.std(X_train, axis=0, keepdims=True) eps=keras.backend.epsilon() model=keras.models.Sequential([ keras.layers.Lambda(lambda inpusts: (inputs - means) / (stds + eps)), ... ]) keras의 sequential모델을 생성.. 2021. 11. 12.