EPOCH LÀ GÌ

“Nearly all of deep learning is powered by one very important algorithm: Stochastic Gradient Descent (SGD)” — Goodfellow.

Bạn đang xem: Epoch là gì

Trong bài viết này mình sẽ đề cập tới một thuật tân oán siêu quan trọng đặc biệt cho các bài bác tân oán buổi tối ưu vào Machine Learning, Neural Network và Deep Learning nhưng mà bất cứ Data Scientist, Computer Vision xuất xắc AI Engineer hầu hết phải biết, chính là Gradient Descent (GD). Đồng thời bọn họ đã minh bạch với làm rõ một trong những quan niệm gồm liên quan cho tới GD hay giỏi lộn lạo là Sample, Epoch, Batch cùng Iterations, cũng tương tự một số sự việc có tương quan tới GD.

Trước Lúc bước vào khám phá về GD, chúng ta cần đọc chũm nào là thuật toán buổi tối ưu (Optimization Algorithm) vào Artificial Neural Networks (ANN). Về cơ bạn dạng, những thuật tân oán tối ưu đó là những engine đại lý để xây đắp các quy mô neural network cùng với mục tiêu là “học” được những Điểm lưu ý (features giỏi patterns) tự dữ liệu nguồn vào, từ bỏ kia hoàn toàn có thể tìm một tập những weights W và bias b (hay internal mã sản phẩm parameters) để về tối ưu hóa độ chính xác của models (obtaining a high accuracy models).

Nhưng vụ việc là “học” như vậy nào? Cụ thể hơn là làm sao nhằm tìm W với b một bí quyết hiệu quả! Có đề xuất chỉ cần random Wb một số lần hữu hạn với “hy vọng” tại 1 bước như thế nào kia bọn họ đã tìm ra được tập lời giải. Rõ ràng là không khả thi với tiêu tốn lãng phí tài nguyên! Chúng ta đề nghị một thuật tân oán để nâng cấp W với b theo mỗi bước (iterative sầu improving), và chính là nguyên do GD Thành lập và hoạt động.

1. Gradient Descent là gì?

Gradient Descent là 1 trong thuật tân oán về tối ưu lặp (iterative optimization algorithm) được áp dụng trong số bài toán thù Machine Learning với Deep Learning (hay là những bài bác toán về tối ưu lồi — Convex Optimization) với kim chỉ nam là kiếm tìm một tập những phát triển thành nội tại (internal parameters) mang lại vấn đề buổi tối ưu models. Trong đó:

● Gradient: là Phần Trăm độ nghiêng của đường dốc (rate of inclination or declination of a slope). Về mặt toán học tập, Gradient của một hàm số là đạo hàm của hàm số kia tương xứng với mỗi biến của hàm. Đối với hàm số solo thay đổi, họ áp dụng khái niệm Derivative nạm đến Gradient.

● Descent: là tự viết tắt của descending, tức thị sút dần dần.

Gradient Descent có nhiều dạng khác nhau như Stochastic Gradient Descent (SGD), Mini-batch SDG. Nhưng về cơ phiên bản thì phần đa được thực thi nlỗi sau:

Khởi tạo nên đổi thay nội tại.Đánh giá model phụ thuộc vào trở nên nội tại và hàm mất mát (Loss function).Cập nhật những vươn lên là nội trên theo phía tối ưu hàm mất đuối (finding optimal points).Lặp lại bước 2, 3 cho đến lúc thỏa ĐK dừng.

Công thức cập nhật đến GD có thể được viết là:


*

*

*

*

Tối ưu hàm mất non là việc tìm kiếm các điểm optimal points cơ mà làm việc kia hàm mất đuối đạt cực to (maximum) hoặc rất đái (minimum). Nếu hàm mất mát chưa hẳn là hàm lồi thì sẽ sở hữu các local maximum hoặc local minimum points ở kề bên các global maximum hoặc global minimum points như hình dưới. Mục tiêu của GD là tìm được các global minimum points. Tuy nhiên trong những bài tân oán buổi tối ưu lồi áp dụng GD thì các local minimum points của hàm mất đuối cũng đó là global minimum points của chính nó.


*

Điều khiếu nại giới hạn của GD rất có thể là:

● Kết thúc tất cả các epochs đã được định sẵn.

● Giá trị của hàm mất non đủ bé dại và độ đúng mực của mã sản phẩm đủ to.

● Hàm mất mát có giá trị không chuyển đổi sau một số lần hữu hạn epochs.

Các bài bác tân oán vào thực tế áp dụng GD hay cực nhọc tìm kiếm được những global minimum points, nhiều phần lâm vào cảnh các local minimum points hoặc không phải những optimal points (not converging), tuy vậy chúng ta vẫn có thể gật đầu đồng ý các kết quả của GD trả về lúc model đang đủ tốt (good enough).

optimization algorithm may not be guaranteed lớn arrive sầu at even a local minimum in a reasonable amount of time, but it often finds a very low value of the function quickly enough khổng lồ be useful.” — Goodfellow.

2. Sample, Epoch, Batch và Iterations2.1 Sample

Sample là một cái dữ liệu bao hàm những inputs để mang vào thuật tân oán, một output (ground-truth) nhằm so sánh với mức giá trị dự đân oán cùng tính quý hiếm của hàm mất đuối. Dữ liệu đào tạo và huấn luyện hay bao gồm nhiều samples. Sample nói một cách khác là instance, an observation, an input vector, hay a feature vector.

Xem thêm: Nhìn Lại Thị Trường Bất Động Sản Tp, Bot Protection

2.2 Epoch

Epoch là một trong hyperparameter trong ANN, được dùng để khái niệm tần số learning algorithm chuyển động trên Mã Sản Phẩm, một epoch ngừng là lúc toàn bộ tài liệu training được gửi vào mạng neural network một lần (vẫn bao hàm cả 2 bước forward cùng backward cho việc cập nhật internal Mã Sản Phẩm parameters).

Tuy nhiên khi tài liệu training là quá to (ví dụ training images trường đoản cú ImageNet, Google xuất hiện Images), việc đưa toàn bộ training data vào trong 1 epoch là không khả thi cùng ko công dụng. Trường phù hợp số epoch nhỏ dại thì dễ dàng dẫn mang đến underfitting vì Model không “học” được không ít từ bỏ GD nhằm cập nhật những thay đổi nội tại. Đối cùng với các ngôi trường đúng theo này thì giải pháp là chia nhỏ tuổi training dataset ra thành những batches cho từng epoch thì cơ hội model học tập được trường đoản cú GD đang nhiều hơn thế nữa và vận tốc tính tân oán đã buổi tối ưu rộng.

Chọn số epoch như vậy nào? Thường chúng ta đề xuất một số lượng béo epoch để training đến ANN (10, 100, 500, 1000…) tuy vậy cũng còn tùy trực thuộc vào bài xích tân oán và tài nguyên máy vi tính. Một cách khác là sử dụng Learning Curve sầu để tìm số epoch.

2.3 Batch

Nhỏng đã nói, một tập training dataphối rất có thể được chia bé dại thành các batches (sets, parts). Một batch đang cất các training samples, với con số các samples này được gọi là batch size. Cần chú ý có 2 có mang không giống nhau là batch sizenumber of batches (con số những batches) or iterations. Tùy ở trong vào batch size cơ mà GD sẽ có được những trở nên thể khác nhau:

Batch Gradient Descent: Batch Size = Size of Training Dataset

Stochastic Gradient Descent: Batch Size = 1

Mini-Batch Gradient Descent: 1 2.4 Iterations

Iteration là con số batches (number of batches) quan trọng nhằm chấm dứt một epoch. Công thức tính là iterations = training samples/batch size. Ví dụ: một datamix có 200 samples, lựa chọn batch kích cỡ là 5, số epochs là 1000 thì trong một epoch số iterations đã là 200/5 = 40, model sẽ có cơ hội cập nhật các đổi thay nội tại 40 lần, nhân với số epochs thì tần số update của mã sản phẩm đang là 40*1000 = 40000 lần (tương xứng với 40000 batches).

3. Một số vấn đề vào Gradient Descent3.1 Momentum với Nesterov’s Acceleration

Nhắc lại phương pháp update của GD, một tđắm say số khôn xiết đặc biệt quan trọng buộc phải lưu ý đến là tốc độ học tập η (learning rate), η sẽ hình thức số bước “học” cần thiết đến models. Việc lựa chọn η cân xứng vẫn tùy nằm trong vào model với datamix. Nếu η quá nhỏ dại thì mã sản phẩm sẽ mất rất nhiều steps tuyệt iterations nhằm tiến tới các điểm optimal points. Trường vừa lòng η quá to thì vươn lên là update sẽ “nhảy” xung quanh (bounding around) các điểm optimal points và không hội tụ. Có thể minc hoạt nlỗi trong hình:


Có 2 phương pháp để kiểm soát và điều chỉnh quy trình cập nhật của GD:

Sử dụng Momentum: phát minh cơ phiên bản của momentum là gia tốc học Khi cùng hướng với chiều của gradient và giảm tốc học Khi ngược hướng cùng với gradient. lúc momentum của GD đầy đủ lớn thì các trở nên update rất có thể “vượt” qua các local optimal points để tìm hiểu các điểm global nlỗi vào hình. Một tham số đặc trưng lúc thực hiện momentum là γ, γ trong thực nghiệm hay được chọn là 0.9, hoặc lúc đầu lựa chọn γ = 0.5 tới lúc định hình cùng tăng dần đều lên 0.9.


Trong những bài xích tân oán thực tế với large-scale datamix như ImageNet xuất xắc Google mở cửa Images thì GD with momentum thường được sử dụng nhiều hơn nữa đối với Nesterov’s Acceleration. Còn đối với gần như datamix nhỏ hơn thế thì chúng ta có thể thực hiện Nesterov’s Acceleration.

3.2 Vanishing cùng Exploding Gradient

Thuật toán Viral ngược (Backpropagation Algorithm) là 1 thuật tân oán thường được thực hiện vào quá trình huấn luyện và đào tạo những quy mô học sâu. Ý tưởng cơ phiên bản là thuật tân oán vẫn tự output layer đi ngược trở về input đầu vào layer, tính toán thù gradient của hàm mất mất tương ứng với những phát triển thành nội tại (weight, bias) cho những hidden layers rồi sử dụng GD để update lại các biến đổi này. Thuật toán thù được ước ao chờ sẽ quy tụ sau một số lần hữu hạn epochs nhưng mà thường sẽ sở hữu được sự đánh thay đổi thân độ đúng đắn của Mã Sản Phẩm với thời gian training.

Thực tế lúc tiến hành training với backpropagation thì gradient của hàm mất mất vẫn nhỏ dại dần vì tiến hành nhân những số hạng nhỏ tuổi liên tiếp cùng nhau, nếu mô hình đủ “sâu” (nhiều hidden layers) thì giá trị gradient vẫn tiến dần đến 0 sau một số trong những layers nhất quyết cùng tạo cho Mã Sản Phẩm cần thiết hội tụ -> chẳng thể cập nhật được các thay đổi nội trên như hy vọng ngóng. Hiện tượng này Gọi là Vanishing Gradient.

Tuy nhiên gradient cũng có khả năng lớn dần trong quy trình backpropagation (như mô hình RNNs) vày nhân các số hạng béo tiếp tục nhau dẫn tới những quý hiếm cập nhật quá to và cũng tạo nên mã sản phẩm cần yếu quy tụ (bounding around). Hiện tượng này Gọi là Exploding Gradient.

Có 2 ngulặng nhân thiết yếu dẫn đến các hiện tượng lạ trên là do bài toán khởi chế tác những phát triển thành nội trên (weight initialization) và Việc lựa chọn activation function cho các layers. Có các nghệ thuật khác nhau nhằm sút tphát âm 2 hiện tượng lạ này như Xavier and He Initialization Techniques, Nonsaturating Activation Functions, Batch Normalization Gradient Clipping.

3.3 Regularization

“Many strategies used in machine learning are explicitly designed to reduce the thử nghiệm error, possibly at the expense of increased training error. These strategies are collectively known as regularization.” — Goodfellow

Regularization được dùng để kiểm soát và điều chỉnh khả năng “học” của model để bảo đảm an toàn rằng Mã Sản Phẩm của chúng ta đầy đủ tốt để mang ra dự đoán cho các tài liệu new (control the ability to lớn generalize). Nếu ko áp dụng regularization thì mã sản phẩm rất dễ dàng trsinh hoạt cần tinh vi (complex) và overfitting training data với chính vì như vậy ko có chức năng tổng quan lại hóa đến dữ liệu mới. Nhưng nếu thực hiện quá nhiều regularization thì Mã Sản Phẩm sẽ trlàm việc nên dễ dàng và đơn giản (simple) với ko “học” được nhiều từ bỏ dữ liệu training.

Trong quy trình cập nhật phát triển thành của GD, regularization hay được cùng vào hàm mất mất dưới dạng L1 regularization, L2 regularization (nói một cách khác là weight decay) hoặc Elastic Net để làm cho các giá trị trong weights matrix không thực sự phệ, vì vậy vẫn hạn chế kỹ năng bị overfitting của Mã Sản Phẩm. Trong khi còn tồn tại những nghệ thuật regularization khác ví như dropout, data augmentation với early stopping.

Conclusion

Trong nội dung bài viết này tôi đã reviews cho chúng ta về Gradient Descent — thuật toán thù về tối ưu khôn xiết đặc trưng sử dụng trong số mô hình học sâu. Đây là nền tảng gốc rễ nhằm các chúng ta có thể phát âm thêm về các thuật tân oán tối ưu khác như AdaGrad, AdaDelta, RMSProp, Adam. Đồng thời họ đã nắm rõ một số quan niệm cũng như một số sự việc có liên quan cho tới GD. Với các kiến thức và kỹ năng này bản thân tin tưởng rằng những các bạn sẽ đủ lạc quan để triển khai việc bên trên các quy mô học tập sâu về sau! Happy Learning!

References

https://towardsdatascience.com/epoch-vs-iterations-vs-batch-size-4dfb9c7ce9c9

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

https://machinelearningmastery.com/gradient-descent-for-machine-learning/

https://au-79.net/onfido-tech/machine-learning-101-be2e0a86c96a

https://developers.google.com/machine-learning/crash-course/reducing-loss/gradient-descent

https://cs231n.github.io/neural-networks-3/

https://www.jeremyjordan.me/nn-learning-rate/

https://towardsdatascience.com/types-of-optimization-algorithms-used-in-neural-networks-and-ways-to-optimize-gradient-95ae5d39529f

https://towardsdatascience.com/demystifying-optimizations-for-machine-learning-c6c6405d3eea

https://www.quora.com/What-is-the-local-minimum-and-global-minimum-in-machine-learning-Why-are-these-important-in-machine-learning

Adrian Rosebrochồng (2017). Deep Learning for Computer Vision with Python. Starter Bundle: PyImageSearch.com

Aurélien Géron (2017). Hands-On Machine Learning with Scikit-Learn and TensorFlow. Sebastopol: O’Reilly Media.