Difference between revisions of "Keras: Difference Between a Batch and an Epoch"

From OnnoWiki
Jump to navigation Jump to search
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
Sumber: https://machinelearningmastery.com/difference-between-a-batch-and-an-epoch/
 +
 +
 +
 
Stochastic gradient descent adalah learning algorithm dengan beberapa hyperparameter.
 
Stochastic gradient descent adalah learning algorithm dengan beberapa hyperparameter.
  
Line 37: Line 41:
 
Sebelum kita menyelami batch dan epoch, mari kita lihat apa yang dimaksud dengan sampel.
 
Sebelum kita menyelami batch dan epoch, mari kita lihat apa yang dimaksud dengan sampel.
  
Learn more about gradient descent here:
+
Untuk belajar lebih lanjut dapat membaca2:
  
    Gradient Descent For Machine Learning
+
* [[Keras: Gradient Descent For Machine Learning]]
  
 
==Apakah Sample?==
 
==Apakah Sample?==
Line 51: Line 55:
 
==Apakah Batch?==
 
==Apakah Batch?==
  
The batch size is a hyperparameter that defines the number of samples to work through before updating the internal model parameters.
+
Ukuran batch adalah hyperparameter yang menentukan jumlah sampel untuk dikerjakan sebelum memperbarui parameter model internal.
  
Think of a batch as a for-loop iterating over one or more samples and making predictions. At the end of the batch, the predictions are compared to the expected output variables and an error is calculated. From this error, the update algorithm is used to improve the model, e.g. move down along the error gradient.
+
Bayangkan batch sebagai iterasi for-loop pada satu atau lebih sampel dan membuat prediksi. Pada akhir batch, prediksi dibandingkan dengan variabel output yang diharapkan dan error dihitung. Dari error ini, algoritma pembaruan digunakan untuk meningkatkan model, mis. bergerak ke bawah sepanjang gradien error.
  
A training dataset can be divided into one or more batches.
+
Dataset training dapat dibagi menjadi satu atau beberapa batch.
  
When all training samples are used to create one batch, the learning algorithm is called batch gradient descent. When the batch is the size of one sample, the learning algorithm is called stochastic gradient descent. When the batch size is more than one sample and less than the size of the training dataset, the learning algorithm is called mini-batch gradient descent.
+
Ketika semua sampel training digunakan untuk membuat satu batch, algoritma learning disebut batch gradient descent. Ketika batch adalah ukuran satu sampel, algoritma learning disebut stochastic gradient descent. Ketika ukuran batch lebih dari satu sampel dan kurang dari ukuran dataset training, algoritma pembelajaran disebut mini-batch gradient descent.
  
* Batch Gradient Descent. Batch Size = Size of Training Set
+
* Batch Gradient Descent. Batch Size = Size dari Training Set
 
* Stochastic Gradient Descent. Batch Size = 1
 
* Stochastic Gradient Descent. Batch Size = 1
* Mini-Batch Gradient Descent. 1 < Batch Size < Size of Training Set
+
* Mini-Batch Gradient Descent. 1 < Batch Size < Size dari Training Set
  
In the case of mini-batch gradient descent, popular batch sizes include 32, 64, and 128 samples. You may see these values used in models in the literature and in tutorials.
+
Dalam kasus mini-batch gradient descent, ukuran batch populer termasuk 32, 64, dan 128 sampel. Kita dapat melihat nilai-nilai ini digunakan dalam model dalam literatur dan tutorial.
  
===What if the dataset does not divide evenly by the batch size?===
+
===Bagaimana jika dataset tidak di pecah secara merata oleh batch size?===
  
This can and does happen often when training a model. It simply means that the final batch has fewer samples than the other batches.
+
Ini bisa dan memang sering terjadi ketika training sebuah model. Ini berarti bahwa batch akhir memiliki sampel lebih sedikit daripada batch lainnya.
  
Alternately, you can remove some samples from the dataset or change the batch size such that the number of samples in the dataset does divide evenly by the batch size.
+
Sebagai alternatif, kita dapat menghapus beberapa sampel dari dataset atau mengubah ukuran batch sehingga jumlah sampel dalam dataset terbagi rata dengan ukuran batch.
  
For more on the differences between these variations of gradient descent, see the post:
+
Untuk lebih lanjut tentang perbedaan antara variasi gradient descent ini, lihat tulisan:
  
    A Gentle Introduction to Mini-Batch Gradient Descent and How to Configure Batch Size
+
* [[Keras: Introduction to Mini-Batch Gradient Descent]]
  
For more on the effect of batch size on the learning process, see the post:
+
Untuk lebih lanjut tentang pengaruh ukuran batch pada proses learning, lihat tulisan:
  
 
     How to Control the Speed and Stability of Training Neural Networks Batch Size
 
     How to Control the Speed and Stability of Training Neural Networks Batch Size
  
A batch involves an update to the model using samples; next, let’s look at an epoch.
+
Batch melibatkan pembaruan ke model menggunakan sampel; selanjutnya, mari kita lihat epoch.
  
==What Is an Epoch?==
+
==Apakah Epoch?==
  
The number of epochs is a hyperparameter that defines the number times that the learning algorithm will work through the entire training dataset.
+
Jumlah epoch adalah hyperparameter yang menentukan berapa kali algoritma pembelajaran akan bekerja mengolah seluruh dataset training.
  
One epoch means that each sample in the training dataset has had an opportunity to update the internal model parameters. An epoch is comprised of one or more batches. For example, as above, an epoch that has one batch is called the batch gradient descent learning algorithm.
+
Satu epoch berarti bahwa setiap sampel dalam dataset training memiliki kesempatan untuk memperbarui parameter model internal. Satu epoch terdiri dari satu atau lebih batch. Sebagai contoh, seperti di atas, suatu epoch yang memiliki satu batch disebut batch gradient descent learning algorithm.
  
You can think of a for-loop over the number of epochs where each loop proceeds over the training dataset. Within this for-loop is another nested for-loop that iterates over each batch of samples, where one batch has the specified “batch size” number of samples.
+
Kita dapat membayangkan for-loop atas jumlah epoch di mana setiap loop berlangsung di atas dataset training. Di dalam for-loop ini adalah nested for-loop yang berulang pada setiap batch sampel, di mana satu batch memiliki jumlah sampel "batch size" yang ditentukan.
  
The number of epochs is traditionally large, often hundreds or thousands, allowing the learning algorithm to run until the error from the model has been sufficiently minimized. You may see examples of the number of epochs in the literature and in tutorials set to 10, 100, 500, 1000, and larger.
+
Jumlah epoch biasanya besar, sering ratusan atau ribuan, yang memungkinkan algoritma pembelajaran berjalan sampai kesalahan dari model telah cukup diminimalkan. Kita dapat melihat contoh jumlah epoch dalam literatur dan tutorial yang diatur ke 10, 100, 500, 1000, dan lebih besar.
  
It is common to create line plots that show epochs along the x-axis as time and the error or skill of the model on the y-axis. These plots are sometimes called learning curves. These plots can help to diagnose whether the model has over learned, under learned, or is suitably fit to the training dataset.
+
Umumnya untuk membuat plot garis yang menunjukkan epoch sepanjang sumbu x sebagai waktu dan kesalahan atau kemampuan model pada sumbu y. Plot ini kadang-kadang disebut kurva belajar. Plot-plot ini dapat membantu mendiagnosis apakah model tersebut telah over learned, under learned, atau sesuai dengan dataset training.
  
For more on diagnostics via learning curves with LSTM networks, see the post:
+
Untuk lebih lanjut tentang diagnostik melalui kurva belajar dengan jaringan LSTM, lihat tulisan:
  
    A Gentle Introduction to Learning Curves for Diagnosing Model Performance
+
* [[Keras: Introduction to Learning Curves for Diagnosing Model Performance]]
 +
 
 +
Jika masih belum jelas, mari kita lihat perbedaan antara batch dan epoch.
  
In case it is still not clear, let’s look at the differences between batches and epochs.
+
==Perbedaan Batch dan Epoch?==
  
==What Is the Difference Between Batch and Epoch?==
+
Ukuran batch adalah sejumlah sampel yang diproses sebelum model di update.
  
The batch size is a number of samples processed before the model is updated.
+
Jumlah epoch adalah jumlah complete pass yang harus dilakukan pada dataset training.
  
The number of epochs is the number of complete passes through the training dataset.
+
Ukuran batch harus lebih dari atau sama dengan satu dan kurang dari atau sama dengan jumlah sampel dalam dataset training.
  
The size of a batch must be more than or equal to one and less than or equal to the number of samples in the training dataset.
+
Jumlah epoch dapat diatur ke nilai integer antara satu dan tak terhingga. Kita dapat menjalankan algoritme selama yang kita suka dan bahkan menghentikannya menggunakan kriteria lain di samping sejumlah waktu tertentu, seperti perubahan (atau tidak adanya perubahan) dalam kesalahan model dari waktu ke waktu.
  
The number of epochs can be set to an integer value between one and infinity. You can run the algorithm for as long as you like and even stop it using other criteria besides a fixed number of epochs, such as a change (or lack of change) in model error over time.
+
Keduanya adalah nilai integer dan keduanya hyperparameter untuk algoritma pembelajaran, mis. parameter untuk proses pembelajaran, bukan parameter model internal yang ditemukan oleh proses pembelajaran.
  
They are both integer values and they are both hyperparameters for the learning algorithm, e.g. parameters for the learning process, not internal model parameters found by the learning process.
+
Kita harus menentukan ukuran batch dan jumlah epoch untuk algoritma pembelajaran.
  
You must specify the batch size and number of epochs for a learning algorithm.
+
Tidak ada aturan yang mujarab untuk cara mengkonfigurasi parameter ini. Kita harus mencoba nilai yang berbeda dan melihat mana yang terbaik untuk masalah kita.
  
There are no magic rules for how to configure these parameters. You must try different values and see what works best for your problem.
+
==Contoh==
  
==Worked Example==
+
Akhirnya, mari kita buat ini menjadi kenyataan dengan contoh kecil.
  
Finally, let’s make this concrete with a small example.
+
Asumsikan kita memiliki dataset dengan 200 sampel (baris data) dan kita memilih ukuran batch 5 dan 1.000 epoch.
  
Assume you have a dataset with 200 samples (rows of data) and you choose a batch size of 5 and 1,000 epochs.
+
Ini berarti bahwa dataset akan dibagi menjadi 40 batch, masing-masing dengan lima sampel. Bobot model akan diperbarui setelah setiap lima sampel.
  
This means that the dataset will be divided into 40 batches, each with five samples. The model weights will be updated after each batch of five samples.
+
Ini juga berarti bahwa satu epoch akan melibatkan 40 batch atau 40 pembaruan untuk model tersebut.
  
This also means that one epoch will involve 40 batches or 40 updates to the model.
+
Dengan 1.000 epoch, model akan melewati seluruh dataset 1.000 kali. Itu adalah total 40.000 batch selama seluruh proses pelatihan.
  
With 1,000 epochs, the model will be exposed to or pass through the whole dataset 1,000 times. That is a total of 40,000 batches during the entire training process.
+
==Further Reading==
Further Reading
 
  
 
This section provides more resources on the topic if you are looking to go deeper.
 
This section provides more resources on the topic if you are looking to go deeper.
Line 139: Line 144:
 
==Summary==
 
==Summary==
  
In this post, you discovered the difference between batches and epochs in stochastic gradient descent.
+
Dalam tulisan ini, kita menemukan perbedaan antara batch dan epoch dalam decreasing stochastic gradients.
 +
 
 +
Terutama, kita belajar:
 +
 
 +
* Stochastic gradient descent adalah algoritma pembelajaran iteratif yang menggunakan dataset training untuk memperbarui model.
 +
* Ukuran batch adalah hyperparameter gradient descent gradien yang mengontrol jumlah sampel training untuk dikerjakan sebelum parameter internal model diperbarui.
 +
* Jumlah epoch adalah hyperparameter dari gradient descent  mengontrol jumlah lintasan lengkap pada dataset training.
 +
 
 +
==Referensi==
 +
 
 +
* https://machinelearningmastery.com/difference-between-a-batch-and-an-epoch/
  
Specifically, you learned:
+
==Pranala Menarik==
  
* Stochastic gradient descent is an iterative learning algorithm that uses a training dataset to update a model.
+
* [[Keras]]
* The batch size is a hyperparameter of gradient descent that controls the number of training samples to work through before the model’s internal parameters are updated.
 
* The number of epochs is a hyperparameter of gradient descent that controls the number of complete passes through the training dataset.
 

Latest revision as of 14:18, 4 September 2019

Sumber: https://machinelearningmastery.com/difference-between-a-batch-and-an-epoch/


Stochastic gradient descent adalah learning algorithm dengan beberapa hyperparameter.

Dua hyperparameter yang sering membingungkan para pemula adalah ukuran batch dan jumlah epoch. Keduanya adalah nilai integer dan tampaknya melakukan hal yang sama.

Dalam tulisan ini, anda akan menemukan perbedaan antara batch dan epoch dalam stochastic gradient descent.

Sesudah membaca tulisan ini, anda akan mengetahui:

  • Stochastic gradient descent adalah algoritma pembelajaran iteratif yang menggunakan dataset training untuk meng-update model.
  • Ukuran batch adalah hyperparameter dari gradient descent yang mengontrol jumlah sampel training untuk dikerjakan sebelum parameter internal model diperbarui.
  • Jumlah epoch adalah hyperparameter dari gradient descent yang mengontrol jumlah lintasan lengkap yang harus dilalui oleh dataset training.

Overview

Posting ini dibagi menjadi lima bagian; yaitu:

  • Stochastic Gradient Descent
  • Apakah Sample?
  • Apakah a Batch?
  • Apakah Epoch?
  • Apa beda Batch dan Epoch?

Stochastic Gradient Descent

Stochastic Gradient Descent, atau disingkat SGD, adalah algoritma pengoptimalan yang digunakan untuk melatih algoritma machine learning, terutama artificial neural network yang digunakan dalam deep learning.

Tugas algoritma adalah untuk menemukan satu set parameter model internal yang berkinerja baik terhadap beberapa ukuran kinerja seperti loss logaritmik atau mean squared error.

Optimasi adalah jenis proses pencarian dan kita dapat menganggap pencarian ini sebagai pembelajaran. Algoritma optimisasi disebut "gradient descent", di mana "gradient" mengacu pada perhitungan gradien kesalahan atau kemiringan kesalahan dan "descent" mengacu pada bergerak turun sepanjang kemiringan menuju beberapa tingkat kesalahan minimum.

Algoritma ini bersifat iteratif. Ini berarti bahwa proses pencarian terjadi pada beberapa langkah diskrit, setiap langkah akan berusaha untuk sedikit meningkatkan parameter model.

Setiap langkah melibatkan penggunaan model dengan set parameter internal saat itu untuk membuat prediksi pada beberapa sampel, membandingkan prediksi dengan hasil yang diharapkan, menghitung kesalahan, dan menggunakan kesalahan untuk memperbarui parameter model internal.

Prosedur pembaruan ini berbeda untuk algoritma yang berbeda, tetapi dalam kasus artificial neural network, backpropagation update algorithm digunakan.

Sebelum kita menyelami batch dan epoch, mari kita lihat apa yang dimaksud dengan sampel.

Untuk belajar lebih lanjut dapat membaca2:

Apakah Sample?

Sampel adalah satu baris data.

Ini berisi input yang dimasukkan ke dalam algoritma dan output yang digunakan untuk membandingkan dengan prediksi dan menghitung kesalahan.

Dataset training terdiri dari banyak baris data, mis. banyak sampel. Sampel juga dapat disebut instance, observasi, vektor input, atau vektor feature.

Apakah Batch?

Ukuran batch adalah hyperparameter yang menentukan jumlah sampel untuk dikerjakan sebelum memperbarui parameter model internal.

Bayangkan batch sebagai iterasi for-loop pada satu atau lebih sampel dan membuat prediksi. Pada akhir batch, prediksi dibandingkan dengan variabel output yang diharapkan dan error dihitung. Dari error ini, algoritma pembaruan digunakan untuk meningkatkan model, mis. bergerak ke bawah sepanjang gradien error.

Dataset training dapat dibagi menjadi satu atau beberapa batch.

Ketika semua sampel training digunakan untuk membuat satu batch, algoritma learning disebut batch gradient descent. Ketika batch adalah ukuran satu sampel, algoritma learning disebut stochastic gradient descent. Ketika ukuran batch lebih dari satu sampel dan kurang dari ukuran dataset training, algoritma pembelajaran disebut mini-batch gradient descent.

  • Batch Gradient Descent. Batch Size = Size dari Training Set
  • Stochastic Gradient Descent. Batch Size = 1
  • Mini-Batch Gradient Descent. 1 < Batch Size < Size dari Training Set

Dalam kasus mini-batch gradient descent, ukuran batch populer termasuk 32, 64, dan 128 sampel. Kita dapat melihat nilai-nilai ini digunakan dalam model dalam literatur dan tutorial.

Bagaimana jika dataset tidak di pecah secara merata oleh batch size?

Ini bisa dan memang sering terjadi ketika training sebuah model. Ini berarti bahwa batch akhir memiliki sampel lebih sedikit daripada batch lainnya.

Sebagai alternatif, kita dapat menghapus beberapa sampel dari dataset atau mengubah ukuran batch sehingga jumlah sampel dalam dataset terbagi rata dengan ukuran batch.

Untuk lebih lanjut tentang perbedaan antara variasi gradient descent ini, lihat tulisan:

Untuk lebih lanjut tentang pengaruh ukuran batch pada proses learning, lihat tulisan:

   How to Control the Speed and Stability of Training Neural Networks Batch Size

Batch melibatkan pembaruan ke model menggunakan sampel; selanjutnya, mari kita lihat epoch.

Apakah Epoch?

Jumlah epoch adalah hyperparameter yang menentukan berapa kali algoritma pembelajaran akan bekerja mengolah seluruh dataset training.

Satu epoch berarti bahwa setiap sampel dalam dataset training memiliki kesempatan untuk memperbarui parameter model internal. Satu epoch terdiri dari satu atau lebih batch. Sebagai contoh, seperti di atas, suatu epoch yang memiliki satu batch disebut batch gradient descent learning algorithm.

Kita dapat membayangkan for-loop atas jumlah epoch di mana setiap loop berlangsung di atas dataset training. Di dalam for-loop ini adalah nested for-loop yang berulang pada setiap batch sampel, di mana satu batch memiliki jumlah sampel "batch size" yang ditentukan.

Jumlah epoch biasanya besar, sering ratusan atau ribuan, yang memungkinkan algoritma pembelajaran berjalan sampai kesalahan dari model telah cukup diminimalkan. Kita dapat melihat contoh jumlah epoch dalam literatur dan tutorial yang diatur ke 10, 100, 500, 1000, dan lebih besar.

Umumnya untuk membuat plot garis yang menunjukkan epoch sepanjang sumbu x sebagai waktu dan kesalahan atau kemampuan model pada sumbu y. Plot ini kadang-kadang disebut kurva belajar. Plot-plot ini dapat membantu mendiagnosis apakah model tersebut telah over learned, under learned, atau sesuai dengan dataset training.

Untuk lebih lanjut tentang diagnostik melalui kurva belajar dengan jaringan LSTM, lihat tulisan:

Jika masih belum jelas, mari kita lihat perbedaan antara batch dan epoch.

Perbedaan Batch dan Epoch?

Ukuran batch adalah sejumlah sampel yang diproses sebelum model di update.

Jumlah epoch adalah jumlah complete pass yang harus dilakukan pada dataset training.

Ukuran batch harus lebih dari atau sama dengan satu dan kurang dari atau sama dengan jumlah sampel dalam dataset training.

Jumlah epoch dapat diatur ke nilai integer antara satu dan tak terhingga. Kita dapat menjalankan algoritme selama yang kita suka dan bahkan menghentikannya menggunakan kriteria lain di samping sejumlah waktu tertentu, seperti perubahan (atau tidak adanya perubahan) dalam kesalahan model dari waktu ke waktu.

Keduanya adalah nilai integer dan keduanya hyperparameter untuk algoritma pembelajaran, mis. parameter untuk proses pembelajaran, bukan parameter model internal yang ditemukan oleh proses pembelajaran.

Kita harus menentukan ukuran batch dan jumlah epoch untuk algoritma pembelajaran.

Tidak ada aturan yang mujarab untuk cara mengkonfigurasi parameter ini. Kita harus mencoba nilai yang berbeda dan melihat mana yang terbaik untuk masalah kita.

Contoh

Akhirnya, mari kita buat ini menjadi kenyataan dengan contoh kecil.

Asumsikan kita memiliki dataset dengan 200 sampel (baris data) dan kita memilih ukuran batch 5 dan 1.000 epoch.

Ini berarti bahwa dataset akan dibagi menjadi 40 batch, masing-masing dengan lima sampel. Bobot model akan diperbarui setelah setiap lima sampel.

Ini juga berarti bahwa satu epoch akan melibatkan 40 batch atau 40 pembaruan untuk model tersebut.

Dengan 1.000 epoch, model akan melewati seluruh dataset 1.000 kali. Itu adalah total 40.000 batch selama seluruh proses pelatihan.

Further Reading

This section provides more resources on the topic if you are looking to go deeper.

   Gradient Descent For Machine Learning
   How to Control the Speed and Stability of Training Neural Networks Batch Size
   A Gentle Introduction to Mini-Batch Gradient Descent and How to Configure Batch Size
   A Gentle Introduction to Learning Curves for Diagnosing Model Performance
   Stochastic gradient descent on Wikipedia
   Backpropagation on Wikipedia

Summary

Dalam tulisan ini, kita menemukan perbedaan antara batch dan epoch dalam decreasing stochastic gradients.

Terutama, kita belajar:

  • Stochastic gradient descent adalah algoritma pembelajaran iteratif yang menggunakan dataset training untuk memperbarui model.
  • Ukuran batch adalah hyperparameter gradient descent gradien yang mengontrol jumlah sampel training untuk dikerjakan sebelum parameter internal model diperbarui.
  • Jumlah epoch adalah hyperparameter dari gradient descent mengontrol jumlah lintasan lengkap pada dataset training.

Referensi

Pranala Menarik