입력층에서 입력된 신호가 은닉층의 연산을 거쳐 출력층에서 값을 내보내는 과정
1. 입력층(혹은 이전 은닉층)으로부터 신호를 전달받음
2. 입력된 데이터에 가중치-편향 연산을 수행
3. 가중합을 통해 구해진 값은 활성화 함수를 통해 다음 층으로 전달
예측값과 실제값의 관계를 나타내기 위한 함수
회귀의 손실 함수 : MSE, MAE
이진 분류의 손실 함수 : binary_crossentropy
다중 분류의 손실 함수 : categorical_crossentropy와 sparse_categorical_corssentropy
이 때 연산된 차이를 Loss 혹은 Error라고 함
반대방향(출력층 > 은닉층 > 입력층)으로 Loss를 전달하며 가중치를 갱신하는 과정
역전파는 경사 하강법(Gradient Descent)을 통해 이루어짐
경사 하강법은 손실 함수에 미분을 적용한 값(기울기)를 이용해 진행됨
전체 데이터 중 한 개의 데이터에 대한 손실을 이용해 가중치 업데이트
배치 사이즈(batch size) : Gradient를 만들 데이터의 개수
이터레이션(iteration) : 순전파-역전파 과정을 거쳐 가중치 업데이트가 일어나는 횟수, Step
에포크(epoch) : 훈련 데이터셋 전체가 신경망을 통과하는 횟수
model.compile(optimizer='sgd',
loss='binary_crossentropy',
metrics=['accuracy'])
model.fit(X, y, batch_size=64, epochs=10)
#batch_size=64 는 100정도가 무난하다는 교수님의 의견
정보) tf의 결과값은 .numpy로 변환하여 print한다
참고 사이트
https://evan-moon.github.io/2018/07/19/deep-learning-backpropagation/