답변:
신경망 용어에서 :
예 : 훈련 예제가 1000 개이고 배치 크기가 500이면 1 에포크를 완료하는 데 2 번의 반복이 필요합니다.
참고 : 신경망 학습을위한 트레이드 오프 배치 크기와 반복 횟수
"일괄 처리"라는 용어는 모호합니다. 일부 사람들은이를 사용하여 전체 훈련 세트를 지정하고 일부 사람들은 한 번의 전진 / 후진 패스에서이 예제를 사용하여 훈련 예제 수를 나타냅니다 (이 답변에서 한 것처럼). 이러한 모호성을 피하고 배치가 하나의 정방향 / 역방향 패스에있는 훈련 예의 수와 일치 함을 분명히하기 위해 mini-batch 라는 용어를 사용할 수 있습니다 .
에포크 와 반복 은 다른 것들을 설명합니다.
시대는 알고리즘이 보는 횟수에 대해 설명 전체 데이터 세트를. 따라서 알고리즘이 데이터 세트의 모든 샘플을 볼 때마다 에포크가 완료됩니다.
반복 은 일련 의 데이터가 알고리즘을 통과 한 횟수를 나타냅니다 . 신경망의 경우, 순방향 통과 와 역방향 통과 를 의미합니다 . 따라서 NN을 통해 배치 데이터를 전달할 때마다 반복 을 완료했습니다 .
예를 들어 더 명확하게 만들 수 있습니다.
10 개의 예제 (또는 샘플)의 데이터 세트가 있다고 가정하십시오. 배치 크기가 2이고 알고리즘이 3 개의 에포크 (epoch)에 대해 실행되도록 지정했습니다.
따라서 각 시대에는 5 개의 배치가 있습니다 (10/2 = 5). 각 배치는 알고리즘을 통과하므로 에포크 당 5 개의 반복이 있습니다. 3 개의 에포크를 지정 했으므로 훈련에 대해 총 15 개의 반복 (5 * 3 = 15)이 있습니다.
이들의 차이점을 이해하려면 그라디언트 하강 알고리즘과 그 변형을 이해해야합니다 .
실제 답변을 시작하기 전에 몇 가지 배경을 만들고 싶습니다.
배치는 전체 데이터 세트입니다. 크기는 사용 가능한 데이터 세트의 총 교육 예제 수입니다.
미니 배치 크기 는 학습 알고리즘이 단일 패스 (정방향 및 역방향)로 처리하는 예제 수입니다.
미니 일괄 부여의 데이터 세트의 작은 부분 미니 배치 크기 .
반복 은 알고리즘에서 본 데이터 배치 수 (또는 단순히 알고리즘이 데이터 세트에서 수행 한 패스 수)입니다.
Epochs 는 학습 알고리즘이 전체 데이터 세트를 보는 횟수입니다. 이제는 데이터 집합을 미니 배치로 처리 할 수 있으므로 반복 횟수와 같지 않을 수 있습니다 . 본질적 으로 단일 패스는 데이터 집합의 일부만 처리 할 수 있습니다. 이러한 경우 반복 횟수 는 에포크 횟수와 같지 않습니다 .
배치 그라디언트 디센트의 경우, 전체 배치는 각 트레이닝 패스에서 처리됩니다. 따라서 그래디언트 디센트 옵티마이 저는 미니 배치 그래디언트 디센트보다 부드러운 수렴을 제공하지만 시간이 더 걸립니다. 배치 구배 하강은 존재하는 경우 최적을 찾도록 보장됩니다.
확률 적 그라디언트 디센트는 미니 배치 크기 가 1 인 미니 배치 그라디언트 디센트의 특별한 경우입니다 .
일반적으로 테스트 세트를 네트워크에서 학습 할 수 있도록 작은 배치로 분할하고 여러 계층을 단계별로 학습하여 그라데이션 하강을 끝까지 적용합니다. 이러한 모든 작은 단계를 반복 이라고 할 수 있습니다 .
시대 전체 교육에 해당 한 번 전체 네트워크를 통과 설정합니다. 예를 들어 과적 합과의 싸움을 제한하는 것이 유용 할 수 있습니다.
신기원에는 몇 가지 반복이 포함되어 있습니다. 그것이 실제로이 '에포크 (epoch)'입니다. 신경망을 훈련시키기 위해 데이터 세트에 대한 반복 횟수로 '에포크'를 정의 해 봅시다.
반복은 배치 SGD의 단일 배치 전달 + 백프로 프와 동일하다고 생각합니다. Epoch는 다른 사람이 언급 한 것처럼 전체 데이터 세트를 한 번 겪고 있습니다.
신경망 용어의 맥락에서 추측합니다.
반복 (일명 단계 ) 을 정의 하려면 먼저 배치 크기 에 대해 알아야 합니다 .
배치 크기 : 비효율적이며 많은 양의 메모리가 필요하기 때문에 전체 교육 인스턴스를 한 번의 순방향으로 처리하고 싶지 않을 것입니다. 따라서 일반적으로 수행되는 작업은 교육 인스턴스를 하위 세트 (예 : 배치)로 분할하고 선택한 하위 세트 (예 : 배치)를 한 번 통과 한 다음 역 전파를 통해 네트워크를 최적화하는 것입니다. 서브 세트 (즉, 배치) 내의 교육 인스턴스 수를 batch_size 라고 합니다 .
반복 : (일명 교육 단계) 하나의 에포크를 완료하려면 네트워크가 모든 교육 인스턴스를 한 번에 통과해야한다는 것을 알고 있습니다. 하지만 기다려! 교육 인스턴스를 배치로 분할 할 때 하나의 정방향 패스에서 한 배치 (훈련 인스턴스의 하위 집합) 만 처리 할 수 있습니다 . 그러면 다른 배치는 어떻습니까? 여기서 반복 이라는 용어 가 사용됩니다.
예를 들어, 1000 개의 교육 인스턴스가 있고 크기가 10 인 배치 를 수행하려는 경우 ; 하나의 에포크를 완료하려면 10000/10 = 1000 반복 을 수행 해야합니다.
이것이 귀하의 질문에 대답 할 수 있기를 바랍니다!
에포크는 예를 들어 중립 네트워크의 기울기 하강 알고리즘과 같은 훈련을위한 샘플의 서브 세트 반복입니다. 좋은 참고 자료는 다음과 같습니다. http://neuralnetworksanddeeplearning.com/chap1.html
이 페이지에는 에포크 (epoch)를 사용하는 그래디언트 디센트 알고리즘에 대한 코드가 있습니다.
def SGD(self, training_data, epochs, mini_batch_size, eta,
test_data=None):
"""Train the neural network using mini-batch stochastic
gradient descent. The "training_data" is a list of tuples
"(x, y)" representing the training inputs and the desired
outputs. The other non-optional parameters are
self-explanatory. If "test_data" is provided then the
network will be evaluated against the test data after each
epoch, and partial progress printed out. This is useful for
tracking progress, but slows things down substantially."""
if test_data: n_test = len(test_data)
n = len(training_data)
for j in xrange(epochs):
random.shuffle(training_data)
mini_batches = [
training_data[k:k+mini_batch_size]
for k in xrange(0, n, mini_batch_size)]
for mini_batch in mini_batches:
self.update_mini_batch(mini_batch, eta)
if test_data:
print "Epoch {0}: {1} / {2}".format(
j, self.evaluate(test_data), n_test)
else:
print "Epoch {0} complete".format(j)
코드를보십시오. 각 에포크에 대해, 그라디언트 디센트 알고리즘에 대한 입력의 서브셋을 무작위로 생성합니다. 에포크가 효과적인 이유는 페이지에 설명되어 있습니다. 좀 봐봐.
각 예제를 한 번 볼 수 있도록 전체 데이터 세트에 대한 전체 교육 과정을 제공합니다. 따라서, 에포크 (epoch)는 N / 배치 크기 훈련 반복을 나타내며 , 여기서 N은 총 예제 수이다.
훈련 중 모델 가중치의 단일 업데이트. 반복은 단일 데이터 배치 의 손실과 관련하여 매개 변수의 그라디언트를 계산하는 것으로 구성됩니다 .
보너스로 :
모델 학습 의 한 번의 반복 (즉, 하나의 그라디언트 업데이트)에 사용되는 예제 세트 .
배치 크기 도 참조하십시오 .
출처 : https://developers.google.com/machine-learning/glossary/
1. Epoch는 신경망이 자신의 모든 데이터를 볼 수있는 완전한주기입니다.
2. 모델을 훈련시키기 위해 100,000 개의 이미지가 있다고 말할 수 있지만, 메모리 공간이 모든 이미지를 한 번에 처리하기에 충분하지 않을 수 있습니다. 예를 들어 배치 크기는 100입니다.
3. 여러 배치를 사용하여 모든 이미지를 포함해야합니다. 따라서 100,000 개의 이미지를 모두 처리하려면 1000 회 반복이 필요합니다. (100 배치 크기 * 1000 회 반복)
4. 신경망이 전체 데이터를 보면 1 Epoch (포인트 1)라고합니다. 모델을 훈련시키기 위해 여러 시대가 필요할 수 있습니다. (10 개의 시대를 말해 보자).