Deep Learning là một lĩnh vực quan trọng và phát triển nhanh chóng trong lĩnh vực trí tuệ nhân tạo. Trong bài viết này, chúng ta sẽ tìm hiểu về một số kỹ thuật cơ bản để tăng cường hiệu suất của mô hình Deep Learning, cũng như các khái niệm quan trọng liên quan đến Deep Learning.
- Ngành Công Nghệ Oto Thi Khối Nào? Học Trường Gì?
- Một số Phrasal verb với Carry thông dụng trong tiếng Anh!
- 1.1.1.1 là gì? Nó tăng tốc Internet và bảo mật dữ liệu như thế nào khi duyệt web?
- Viết đoạn văn về nghề nghiệp tương lai của em ngắn gọn, hay nhất
- Học bổ túc cấp 2 mất bao lâu? Quy trình học bổ túc cấp 2
Contents
Vectorization
Vectorization là một kỹ thuật quan trọng trong Deep Learning. Nó cho phép chúng ta biểu diễn và tính toán các phép tính trên dữ liệu dưới dạng vector, ma trận, thay vì sử dụng vòng lặp. Kỹ thuật này không chỉ giúp chúng ta viết mã ngắn gọn hơn, mà còn tăng tốc độ tính toán đáng kể.
Bạn đang xem: Bài 10: Các kỹ thuật cơ bản trong deep learning | Deep Learning cơ bản
Ví dụ, nếu chúng ta muốn nhân hai vector bằng vòng lặp, việc tính toán này sẽ mất rất nhiều thời gian. Tuy nhiên, nếu chúng ta sử dụng thư viện numpy để tính toán, việc nhân hai vector chỉ mất một khoảng thời gian rất ngắn. Điều này có nghĩa là vectorization cho phép chúng ta tính toán nhanh hơn.
Mini-batch gradient descent
Thuật toán gradient descent là một trong những thuật toán quan trọng trong Deep Learning. Tuy nhiên, khi dữ liệu lớn và số lượng dữ liệu lớn hơn, việc tính đạo hàm với toàn bộ dữ liệu sẽ rất tốn thời gian. Đó là lúc mini-batch gradient descent ra đời để giải quyết vấn đề này.
Mini-batch gradient descent chia dữ liệu thành các batch nhỏ và sử dụng chỉ một phần của dữ liệu trong mỗi lần tính đạo hàm. Có ba loại mini-batch gradient descent: batch gradient descent, mini-batch gradient descent và stochastic gradient descent. Batch gradient descent sử dụng toàn bộ dữ liệu trong mỗi lần tính đạo hàm, trong khi mini-batch gradient descent và stochastic gradient descent chỉ sử dụng một phần hoặc một điểm dữ liệu trong mỗi lần tính đạo hàm.
Ví dụ, điểm số trung bình của học sinh trong một trường trung học là 24 điểm. Nếu chúng ta tính điểm trung bình của tất cả học sinh, con số này sẽ gần với 24. Tuy nhiên, nếu chúng ta chỉ chọn một số học sinh ngẫu nhiên và tính điểm trung bình, con số này có thể xa 24. Thông qua ví dụ này, chúng ta có thể hiểu rằng mini-batch gradient descent có thể không phản ánh chính xác dữ liệu, do đó con số này gọi là nhiễu trong dữ liệu.
Xem thêm : Bài tập sql cơ bản và nâng cao có đáp án
Mini-batch gradient descent thường được sử dụng trong Deep Learning để giải quyết vấn đề với lượng dữ liệu lớn và giảm nhiễu so với stochastic gradient descent.
Bias và variance
Bias và variance là hai khái niệm quan trọng trong Deep Learning. Bias đại diện cho sự chênh lệch giữa giá trị trung bình mà mô hình dự đoán và giá trị thực tế của dữ liệu, trong khi variance đại diện cho độ phân tán của các giá trị mà mô hình dự đoán so với giá trị thực tế.
Bias và variance có thể giải thích thông qua một bài toán phân loại chữ số. Trong bài toán này, đường phân chia dữ liệu có thể có nhiều lỗi. Nếu đường phân chia có nhiều lỗi và không thể phân loại được dữ liệu, mô hình này có bias cao. Tuy nhiên, nếu đường phân chia có lỗi nhưng vẫn có thể phân loại được dữ liệu, mô hình này có bias thấp. Trái lại, nếu đường phân chia có thể phân loại chính xác tất cả các điểm trong tập huấn luyện, nhưng không thể tổng quát hóa cho tập kiểm tra, mô hình này có variance cao.
Tuy nhiên, bias và variance thường được hiểu theo các thuật ngữ “underfitting” và “overfitting”. “Underfitting” có nghĩa là mô hình đơn giản hơn và không phù hợp với mô hình của dữ liệu thực tế. Trong khi “overfitting” có nghĩa là mô hình hoạt động tốt trên tập huấn luyện nhưng không phù hợp với tập kiểm tra.
Cách giải quyết bias cao là tăng độ phức tạp của mô hình, trong khi giải quyết variance cao là thu thập thêm dữ liệu hoặc sử dụng regularization.
Dropout
Dropout là một kỹ thuật được sử dụng để giảm hiện tượng overfitting trong Deep Learning. Trong quá trình huấn luyện mô hình, với mỗi lần cập nhật các hệ số trong gradient descent, chúng ta loại bỏ một phần các node trong mỗi layer một cách ngẫu nhiên.
Ví dụ, nếu chúng ta có một mô hình neural network với một hidden layer, chúng ta có thể áp dụng dropout với hệ số p là 0.6, tức là chỉ giữ lại 60% số lượng node trong mỗi lần cập nhật.
Xem thêm : Sơ lược về cây nhị phân
Dropout giúp giảm overfitting bằng cách làm cho mô hình mất phụ thuộc vào bất kỳ node cụ thể nào trong layer trước đó và tăng độ tổng quát của mô hình.
Khi sử dụng dropout, nên chọn giá trị p trong khoảng từ 0.2 đến 0.5. Nên sử dụng mô hình lớn hơn và phức tạp hơn vì dropout giúp giảm overfitting. Dropout chỉ nên được sử dụng cho fully connected layer và không nên sử dụng cho ConvNet layer.
Activation function
Activation function là một hàm được sử dụng sau quá trình tính tổng tuyến tính trong neural network hoặc sau convolutional layer trong CNN. Và hàm activation function này phải là hàm non-linear.
Hàm linear chỉ là một đường thẳng, do đó nếu sử dụng hàm activation linear trong neural network, mô hình này chỉ là một mô hình linear regression đơn giản.
Vì vậy, hàm activation function phải là hàm non-linear. Ví dụ, sigmoid và tanh activation functions đã được sử dụng trong quá khứ, nhưng chúng gặp phải vấn đề vanishing gradient vì giá trị của chúng xuất phát từ 0 và có giới hạn. Hiện nay, hàm ReLU (rectified linear unit) là lựa chọn phổ biến cho hàm activation function vì đơn giản để tính và không gặp vấn đề vanishing gradient.
Tuy nhiên, hàm ReLU cũng có một vấn đề gọi là “Dying ReLU”. Điều này xảy ra khi các giá trị đầu vào âm được chuyển thành 0, và trong trường hợp này, chúng ta không thể tính toán các bước tuyến tính trong các lớp tiếp theo. Để giải quyết vấn đề này, hàm Leaky ReLU đã được phát triển.
Khuyến nghị sử dụng ReLU làm hàm activation function mặc định và không nên sử dụng hàm sigmoid.
Nguồn: https://ispacedanang.edu.vn
Danh mục: Học tập