EPOCH LÀ GÌ

“Nearly all of deep learning is powered by one very important algorithm: Stochastic Gradient Descent (SGD)” — Goodfellow.Bạn sẽ xem: Epoch là gì

Trong nội dung bài viết này mình vẫn đề cập mang lại một thuật toán rất đặc biệt cho các bài toán buổi tối ưu trong Machine Learning, Neural Network với Deep Learning mà bất cứ Data Scientist, Computer Vision tuyệt AI Engineer đều bắt buộc biết, chính là Gradient Descent (GD). Đồng thời chúng ta sẽ rõ ràng và nắm rõ một số định nghĩa có tương quan tới GD thường xuất xắc lẫn lộn là Sample, Epoch, Batch với Iterations, cũng tương tự một số vấn đề có liên quan tới GD.

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

Trước lúc đi vào mày mò về GD, bọn họ cần hiểu ráng nào là thuật toán buổi tối ưu (Optimization Algorithm) vào Artificial Neural Networks (ANN). Về cơ bản, những thuật toán tối ưu đó là các engine đại lý để xây dừng các quy mô neural network với phương châm là “học” được các đặc điểm (features giỏi patterns) từ dữ liệu đầu vào, tự đó rất có thể tìm một tập các weights W và bias b (hay internal model parameters) để tối ưu hóa độ đúng chuẩn của models (obtaining a high accuracy models).

Nhưng vụ việc là “học” như thế nào? ví dụ hơn là làm thế nào để kiếm tìm W với b một giải pháp hiệu quả! có phải chỉ việc random Wb một số trong những lần hữu hạn và “hy vọng” tại một bước làm sao đó chúng ta sẽ đưa ra được tập lời giải. Cụ thể là không khả thi và lãng phí tài nguyên! bọn họ cần một thuật toán để nâng cấp Wb theo từng bước một (iterative improving), cùng đó là lý do GD ra đời.

1. Gradient Descent là gì?

Gradient Descent là 1 trong thuật toán về tối ưu lặp (iterative optimization algorithm) được sử dụng trong các bài toán Machine Learning với Deep Learning (thường là các bài toán về tối ưu lồi — Convex Optimization) với mục tiêu là search một tập những biến nội trên (internal parameters) cho việc tối ưu models. Vào đó:

● Gradient: là tỷ lệ độ nghiêng của đường dốc (rate of inclination or declination of a slope). Về phương diện toán học, Gradient của một hàm số là đạo hàm của hàm số đó tương ứng với mỗi đổi mới của hàm. Đối cùng với hàm số đơn biến, bọn họ sử dụng tư tưởng Derivative nạm cho Gradient.

● Descent: là từ viết tắt của descending, nghĩa là giảm dần.

Gradient Descent có tương đối nhiều dạng khác nhau như Stochastic Gradient Descent (SGD), Mini-batch SDG. Nhưng mà về cơ bạn dạng thì những được thực thi như sau:

Khởi tạo thay đổi nội tại.Đánh giá bán model nhờ vào biến nội tại với hàm mất mát (Loss function).Cập nhật các biến nội tại theo hướng tối ưu hàm mất mát (finding optimal points).Lặp lại bước 2, 3 tính đến khi thỏa điều kiện dừng.

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


*

*

*

*

*

Điều kiện dừng của GD rất có thể là:

● xong tất cả các epochs đã có được định sẵn.

● quý giá của hàm mất non đủ nhỏ và độ đúng đắn của mã sản phẩm đủ lớn.

● Hàm mất mát có mức giá trị không biến hóa sau một số trong những lần hữu hạn epochs.

Các việc trong thực tế áp dụng GD thường khó tìm được các global minimum points, đa phần rơi vào các local minimum points hoặc chưa hẳn các optimal points (not converging), mặc dù nhiên chúng ta vẫn gồm thể gật đầu đồng ý các hiệu quả của GD trả về khi mã sản phẩm đã đủ tốt (good enough).

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

2. Sample, Epoch, Batch với Iterations2.1 Sample2.2 Epoch

Epoch là một hyperparameter trong ANN, được dùng làm định nghĩa tần số learning algorithm chuyển động trên model, một epoch ngừng là khi tất cả tài liệu training được đưa vào mạng neural network một lần (đã bao gồm cả 2 cách forward cùng backward mang đến việc cập nhật internal mã sản phẩm parameters).

Xem thêm: Đấu Trường Chân Lý: Chi Tiết Bản Cập Nhật Đtcl 10, Chi Tiết Phiên Bản Cập Nhật Đấu Trường Chân Lý 10

Tuy nhiên khi tài liệu training là quá lớn (ví dụ training images trường đoản cú ImageNet, Google mở cửa Images), việc đưa tất cả training data vào trong 1 epoch là ko khả thi cùng không hiệu quả. Trường thích hợp số epoch bé dại thì dễ dàng dẫn đến underfitting vì model không “học” được rất nhiều từ GD để cập nhật các biến hóa nội tại. Đối với các trường thích hợp này thì phương án 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 sẽ nhiều hơn thế nữa và tốc độ giám sát sẽ về tối ưu hơn.

Chọn số epoch như vậy nào? Thường chúng ta cần một vài lượng khủng epoch nhằm training đến ANN (10, 100, 500, 1000…) tuy vậy cũng còn tùy nằm trong vào bài toán và tài nguyên lắp thêm tính. Một bí quyết khác là áp dụng Learning Curve để tìm số epoch.

2.3 Batch

Như đang nói, một tập training dataset hoàn toàn có thể được chia nhỏ tuổi thành những batches (sets, parts). Một batch vẫn chứa những training samples, và con số các samples này được điện thoại tư vấn là batch size. Cần xem xét có 2 khái niệm khác nhau là batch sizenumber of batches (số lượng những batches) or iterations. Tùy ở trong vào batch size mà lại GD sẽ sở hữu được các biến thể không giống nhau:

Batch Gradient Descent: Batch kích thước = size of Training Dataset

Stochastic Gradient Descent: Batch kích cỡ = 1

Mini-Batch Gradient Descent: 1 2.4 IterationsIteration là số lượng batches (number of batches) quan trọng để kết thúc một epoch. Công thức tính là iterations = training samples/batch size. Ví dụ: một dataset gồm 200 samples, chọn batch kích cỡ là 5, số epochs là 1000 thì trong 1 epoch số iterations vẫn là 200/5 = 40, model sẽ bao gồm cơ hội cập nhật các đổi mới nội trên 40 lần, nhân cùng với số epochs thì số lần update của mã sản phẩm sẽ là 40*1000 = 40000 lần (tương ứng cù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 công thức cập nhật của GD, một tham số rất đặc biệt quan trọng cần suy nghĩ là tốc độ học η (learning rate), η sẽ mức sử dụng số bước “học” cần thiết cho models. Việc chọn η cân xứng sẽ tùy thuộc vào mã sản phẩm và dataset. Nếu η quá nhỏ tuổi thì mã sản phẩm sẽ mất không ít steps xuất xắc iterations để tiến tới những điểm optimal points. Trường vừa lòng η quá bự thì biến cập nhật sẽ “nhảy” quanh (bounding around) các điểm optimal points với không hội tụ. Hoàn toàn có thể minh hoạt như vào hình:

Có 2 cách để điều chỉnh thừa trình update của GD:

Sử dụng Momentum: ý tưởng phát minh cơ phiên bản của momentum là gia tốc học khi cùng hướng cùng với chiều của gradient và tụt giảm học lúc ngược phía với gradient. Lúc momentum của GD đủ mập thì các biến update có thể “vượt” qua các local optimal points để đào bới các điểm global như trong hình. Một tham số đặc biệt quan trọng khi thực hiện momentum là γ, γ trong thực nghiệm thường xuyên được chọn là 0.9, hoặc ban sơ chọn γ = 0.5 cho tới khi định hình và tăng mạnh lên 0.9.

Trong những bài toán thực tiễn với large-scale dataset như ImageNet tuyệt Google open Images thì GD with momentum thường được sử dụng nhiều hơn thế nữa so với Nesterov’s Acceleration. Còn so với những dataset bé dại hơn thì chúng ta cũng có thể sử dụng Nesterov’s Acceleration.

3.2 Vanishing và Exploding Gradient

Thuật toán lan truyền ngược (Backpropagation Algorithm) là một thuật toán hay được sử dụng trong quy trình huấn luyện các quy mô học sâu. Ý tưởng cơ phiên bản là thuật toán đang từ đầu ra layer đi ngược quay trở lại input layer, đo lường và tính toán gradient của hàm mất mất khớp ứng với những biến nội tại (weight, bias) cho các hidden layers rồi sử dụng GD để cập nhật lại các biến này. Thuật toán được hy vọng đợi sẽ quy tụ sau một số lần hữu hạn epochs nhưng lại thường sẽ sở hữu được sự tiến công đổi thân độ chính xác của mã sản phẩm và thời gian training.

Thực tế khi tiến hành training cùng với backpropagation thì gradient của hàm mất mất sẽ nhỏ tuổi dần do triển khai nhân các số hạng nhỏ dại liên tiếp với nhau, nếu mô hình đủ “sâu” (nhiều hidden layers) thì giá trị gradient đã tiến dần cho 0 sau một số layers nhất định và làm cho cho model không thể hội tụ -> không thể update được những biến nội tại như mong muốn đợi. Hiện tượng lạ này hotline là Vanishing Gradient.

Tuy nhiên gradient cũng có tác dụng lớn dần trong quy trình backpropagation (như mô hình RNNs) bởi vì nhân nhiều số hạng lớn tiếp tục nhau dẫn tới các giá trị update quá mập và cũng có tác dụng cho model không thể quy tụ (bounding around). Hiện tượng này call là Exploding Gradient.

Có 2 tại sao chính dẫn tới các hiện tượng trên là do việc khởi tạo các biến nội tại (weight initialization) và việc chọn activation function cho những layers. Có khá nhiều kỹ thuật khác biệt để giảm thiểu 2 hiện tượng lạ này như Xavier & He Initialization Techniques, Nonsaturating Activation Functions, Batch Normalization Gradient Clipping.

3.3 Regularization

“Many strategies used in machine learning are explicitly designed lớn reduce the demo error, possibly at the expense of increased training error. These strategies are collectively known as regularization.” — Goodfellow

Regularization được dùng làm điều chỉnh năng lực “học” của mã sản phẩm để đảm bảo rằng model của họ đủ tốt để lấy ra dự đoán cho những dữ liệu new (control the ability lớn generalize). Còn nếu không sử dụng regularization thì model rất dễ trở nên phức tạp (complex) cùng overfitting training data và vì thế không có chức năng tổng quan tiền hóa cho tài liệu mới. Cơ mà nếu sử dụng quá nhiều regularization thì mã sản phẩm sẽ trở nên dễ dàng (simple) cùng không “học” được nhiều từ dữ liệu training.

Trong quá trình update biến của GD, regularization thường được cộng vào hàm mất mất dưới dạng L1 regularization, L2 regularization (còn call là weight decay) hoặc Elastic Net để làm cho các giá trị vào weights matrix không thật lớn, vì thế sẽ hạn chế khả năng bị overfitting của model. Ngoài ra còn có các kỹ thuật regularization khác ví như dropout, data augmentation early stopping.

Conclusion

Trong nội dung bài viết này mình đã ra mắt cho các bạn về Gradient Descent — thuật toán về tối ưu rất đặc biệt dùng trong các quy mô học sâu. Đây là gốc rễ để các bạn có thể hiểu thêm về các thuật toán buổi tối ưu khác ví như AdaGrad, AdaDelta, RMSProp, Adam. Đồng thời bọn họ đã nắm rõ một số khái niệm cũng như một số sự việc có tương quan tới GD. Với những kỹ năng này mình tin tưởng rằng các các bạn sẽ đủ tự tin để triển khai việc bên trên các mô hình học 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://embergarde.com/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 Rosebrock (2017). Deep Learning for Computer Vision with Python. Starter Bundle: PyImageSearch.com

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

Leave a Reply

Your email address will not be published. Required fields are marked *

CÙNG CHUYÊN MỤC MỚI

  • Connect broadband connection là gì

  • Enter network credentials là gì

  • Hgu và sfu là gì

  • Rela có nghĩa là gì

  • x

    Welcome Back!

    Login to your account below

    Retrieve your password

    Please enter your username or email address to reset your password.