Courses
Mỗi lần một công ty định giá để tìm biên lợi nhuận tốt nhất, hoặc một mô hình điều chỉnh trọng số để giảm sai số dự đoán, cùng một bài toán giải tích đang chạy ở bên dưới: tìm giá trị lớn nhất hoặc nhỏ nhất của một hàm. Đó chính là câu chuyện của cực tiểu và cực đại. Những đỉnh và đáy cho bạn biết nơi một hàm đạt các giá trị cực trị.
Trong bài viết này, chúng ta sẽ bắt đầu từ ý nghĩa thực sự của cực trị, phân biệt hành vi cục bộ với toàn cục, đi qua cách tìm chúng bằng đạo hàm, và kết nối lại với lý do tại sao tất cả điều này quan trọng trong tối ưu hóa và khoa học dữ liệu. Nếu bạn muốn xây dựng thêm các ý tưởng này bằng thực hành trực tiếp, khóa học Giới thiệu về Tối ưu hóa bằng Python của chúng tôi bao quát khía cạnh tính toán.
Cực tiểu và cực đại là gì?
Một cực tiểu là giá trị thấp nhất mà một hàm đạt được; một cực đại là giá trị cao nhất. Gộp lại, chúng được gọi là cực trị (số ít: cực trị - extremum). Trên đồ thị, chúng đúng như bạn kỳ vọng: đáy của các thung lũng và đỉnh của các ngọn núi.
Có một điều đáng lưu ý ngay từ đầu: cực trị là giá trị của hàm (tọa độ y), còn điểm nơi nó xảy ra là giá trị x. "Cực đại nằm tại x = 3" khác với "giá trị cực đại là f(3) = 10." Sự phân biệt này làm nhiều người nhầm lẫn hơn bạn nghĩ, và nó xuất hiện cả trong các bài kiểm tra lẫn phỏng vấn.
Không phải mọi hàm đều có cả cực tiểu và cực đại. Một đường thẳng thì không có cái nào. Một parabol mở lên có cực tiểu nhưng không có cực đại. Các hàm xác định trên khoảng mở có thể tiến gần đến giá trị cực trị mà không bao giờ đạt tới. Cực trị không được đảm bảo; chúng phụ thuộc vào hình dạng của hàm và miền bạn đang xét.
Cực trị cục bộ và toàn cục
Trước khi tìm cực trị, đáng để làm rõ một phân biệt xuyên suốt những gì tiếp theo: sự khác nhau giữa các cực trị mang ý nghĩa cục bộ và những cực trị mang ý nghĩa toàn cục. Đây là một trong những ý tưởng thực tiễn quan trọng nhất trong tối ưu hóa, và cũng là nơi mọi người hay nhầm lẫn nhất.
Sự khác biệt nằm ở phạm vi. Cực trị cục bộ xét một lân cận nhỏ quanh một điểm; cực trị toàn cục xét toàn bộ miền xác định.
Cực tiểu và cực đại cục bộ
Một cực tiểu cục bộ là điểm mà giá trị hàm nhỏ hơn mọi giá trị lân cận. Bạn đang ở đáy một thung lũng, dù có thể tồn tại thung lũng sâu hơn ở nơi khác trên đồ thị. Một cực đại cục bộ là một đỉnh cao hơn vùng lân cận ngay xung quanh, dù có thể có đỉnh cao hơn ở xa hơn.
Hãy hình dung một cung đường leo núi với các đồi thoai thoải. Mỗi đỉnh đồi là một cực đại cục bộ, và mỗi chỗ trũng giữa các đồi là một cực tiểu cục bộ. Bạn không cần nhìn toàn bộ cung đường để nhận ra chúng; bạn chỉ cần so với những gì ngay xung quanh.
Cực tiểu và cực đại toàn cục
Một cực tiểu toàn cục (còn gọi là cực tiểu tuyệt đối) là giá trị nhỏ nhất duy nhất mà hàm nhận trên toàn bộ miền. Cực đại toàn cục (hay cực đại tuyệt đối) là giá trị lớn nhất duy nhất. Một cực trị toàn cục luôn đồng thời là cực trị cục bộ, nhưng điều ngược lại thì không đúng.
Trên cùng cung đường leo núi đó, cực đại toàn cục là điểm cao nhất trên toàn bộ lộ trình, không chỉ là ngọn đồi cao nhất gần đó. Một hàm có thể có nhiều cực trị cục bộ nhưng nhiều nhất chỉ có một giá trị cực tiểu toàn cục và một giá trị cực đại toàn cục (dù những giá trị đó có thể đạt tại nhiều điểm).
Sự phân biệt cục bộ so với toàn cục này không chỉ mang tính lý thuyết. Nó xuất hiện trực tiếp trong học máy, nơi gradient descent có thể mắc kẹt tại cực tiểu cục bộ khi tìm kiếm cực tiểu toàn cục. Phần sau sẽ nói thêm.
Cách tìm cực tiểu và cực đại
Tìm cực trị theo một quy trình nhất quán. Về bản chất, bạn đang hỏi: hàm dừng tăng và bắt đầu giảm ở đâu, hoặc ngược lại? Đạo hàm cho bạn công cụ để trả lời chính xác điều đó.
Cách tiếp cận tổng quát như sau:
- Tính đạo hàm bậc nhất f'(x).
- Tìm các điểm tới hạn, nơi f'(x) = 0 hoặc f'(x) không tồn tại.
- Phân loại mỗi điểm tới hạn là cực tiểu cục bộ, cực đại cục bộ, hoặc không phải cả hai.
- Nếu bạn làm việc trên một khoảng đóng, hãy kiểm tra cả các điểm biên.
- So sánh tất cả các giá trị ứng viên để xác định các cực trị tuyệt đối.
Chúng ta sẽ dùng một hàm xuyên suốt để cụ thể hóa: f(x) = 2x³ − 9x² + 12x − 4, xác định trên khoảng [0, 4].
Điểm tới hạn và cực trị
Một điểm tới hạn của f(x) là bất kỳ giá trị x trong miền mà f'(x) = 0 hoặc f'(x) không xác định. Đây là các ứng viên cho cực trị, những nơi hàm có thể đổi chiều.
Tại sao cực trị xuất hiện ở các điểm tới hạn? Ở một đỉnh hay đáy trơn, tiếp tuyến nằm ngang, nên đạo hàm bằng không. Nhưng không phải mọi điểm tới hạn đều là cực trị, và điều này rất quan trọng. Phản ví dụ kinh điển là f(x) = x³ tại x = 0: đạo hàm bằng không, nhưng hàm không đổi chiều. Nó chỉ dẹt ra một chút rồi tiếp tục tăng. Những điểm nơi đạo hàm không tồn tại cũng cần lưu ý. Một góc nhọn như trong f(x) = |x| tại x = 0 không có đạo hàm, nhưng đó chính là nơi đặt cực tiểu.
Với ví dụ của chúng ta, f'(x) = 6x² − 18x + 12 = 6(x² − 3x + 2) = 6(x − 1)(x − 2). Cho bằng không cho ta các điểm tới hạn tại x = 1 và x = 2. Giờ ta cần tìm hiểu điều gì xảy ra tại mỗi điểm.
Cách dùng kiểm định đạo hàm bậc nhất
Kiểm định đạo hàm bậc nhất phân loại các điểm tới hạn bằng cách kiểm tra việc f'(x) đổi dấu. Nếu hàm đi từ tăng sang giảm, bạn đang ở một đỉnh. Nếu đi từ giảm sang tăng, bạn đang ở một thung lũng.
Dương sang âm
Khi f'(x) chuyển từ dương sang âm khi đi qua một điểm tới hạn, điểm đó là một cực đại cục bộ. Hàm leo lên đến đó rồi đi xuống.
Âm sang dương
Khi f'(x) chuyển từ âm sang dương, hàm đang giảm rồi bắt đầu tăng. Điểm tới hạn đó là một cực tiểu cục bộ.
Không đổi dấu
Nếu f'(x) vẫn dương ở cả hai phía (hoặc vẫn âm ở cả hai phía), điểm tới hạn đó không phải là cực tiểu hay cực đại. Hàm tạm dừng nhưng không đảo chiều, như f(x) = x³ tại x = 0.
Với hàm của chúng ta, hãy kiểm tra các khoảng quanh x = 1 và x = 2. Chọn các điểm thử: f'(0.5) = 6(0.5 − 1)(0.5 − 2) = 6(−0.5)(−1.5) = 4.5 > 0, f'(1.5) = 6(0.5)(−0.5) = −1.5 < 0, và f'(3) = 6(2)(1) = 12 > 0. Tại x = 1, đạo hàm chuyển từ dương sang âm: cực đại cục bộ. Tại x = 2, chuyển từ âm sang dương: cực tiểu cục bộ. Giá trị hàm là f(1) = 1 và f(2) = 0.
Kiểm định đạo hàm bậc nhất luôn hiệu quả, nhưng cần chọn điểm thử ở mỗi khoảng, dễ trở nên nhàm chán. Có một cách nhanh hơn khi thỏa các điều kiện nhất định.
Cách dùng kiểm định đạo hàm bậc hai
Kiểm định đạo hàm bậc hai hoạt động khi f''(x) ≠ 0 tại điểm tới hạn. Thay vì kiểm tra đổi dấu trên các khoảng, bạn đánh giá đạo hàm bậc hai ngay tại điểm tới hạn.
Ý tưởng gắn với độ cong (concavity). Nếu f''(c) > 0, hàm lõm lên tại c, cong như một chiếc bát, nên điểm tới hạn nằm ở đáy: cực tiểu cục bộ. Nếu f''(c) < 0, hàm lõm xuống, cong như một ngọn đồi, nên điểm tới hạn ở trên đỉnh: cực đại cục bộ. Nếu f''(c) = 0, kiểm định không cho biết gì. Bạn sẽ cần quay lại kiểm định đạo hàm bậc nhất.
Với hàm của chúng ta, f''(x) = 12x − 18. Tại x = 1: f''(1) = 12 − 18 = −6 < 0, xác nhận cực đại cục bộ. Tại x = 2: f''(2) = 24 − 18 = 6 > 0, xác nhận cực tiểu cục bộ. Cùng đáp án như trước, nhưng nhanh hơn. Kiểm định đạo hàm bậc hai không phải lúc nào cũng dùng được (thất bại tại điểm uốn và một số điểm tới hạn suy biến), nhưng khi dùng được, nó tiết kiệm thời gian.
Cách tìm cực trị tuyệt đối trên một khoảng
Khi bạn làm việc trên một khoảng đóng [a, b] với một hàm liên tục, Định lý Giá trị Cực trị đảm bảo tồn tại cả cực đại tuyệt đối và cực tiểu tuyệt đối. Bạn không tìm kiếm vô ích.
Phương pháp được gọi là phương pháp khoảng đóng:
- Tìm tất cả điểm tới hạn của f(x) bên trong khoảng (a, b).
- Tính f(x) tại mỗi điểm tới hạn.
- Tính f(x) tại cả hai điểm biên, a và b.
- Giá trị lớn nhất là cực đại tuyệt đối; nhỏ nhất là cực tiểu tuyệt đối.
Với f(x) = 2x³ − 9x² + 12x − 4 trên [0, 4], chúng ta đã biết các điểm tới hạn là x = 1 và x = 2. Tính tại mọi nơi quan trọng:
f(0) = -4
f(1) = 2 - 9 + 12 - 4 = 1
f(2) = 16 - 36 + 24 - 4 = 0
f(4) = 128 - 144 + 48 - 4 = 28
Cực tiểu tuyệt đối là f(0) = −4, và cực đại tuyệt đối là f(4) = 28. Lưu ý cực đại tuyệt đối nằm ở điểm biên, không phải điểm tới hạn. Đây là lý do bạn không thể bỏ qua việc kiểm tra điểm biên, và cũng là lỗi phổ biến nhất mà mọi người mắc phải. Chúng ta sẽ bàn ở phần lỗi thường gặp.
Mọi thứ đến đây áp dụng cho hàm một biến. Phần lớn bài toán thực tế liên quan đến nhiều biến, nên đáng để xem điều này mở rộng ra sao.
Cực tiểu và cực đại của hàm nhiều biến
Với hàm f(x, y), bạn tìm các điểm tới hạn bằng cách cho cả hai đạo hàm riêng bằng không: ∂f/∂x = 0 và ∂f/∂y = 0. Một điểm tới hạn giờ là một cặp (x, y) thay vì một giá trị đơn. Việc phân loại trở nên khó hơn vì có thêm khả năng mới: điểm yên ngựa (saddle point), nơi hàm cong lên theo một hướng và cong xuống theo hướng khác. Hãy nghĩ đến phần giữa của một miếng khoai tây Pringles.
Để phân loại các điểm tới hạn nhiều biến, bạn dùng ma trận Hessian, một ma trận vuông gồm các đạo hàm riêng bậc hai. Định thức và dấu của các phần tử cho bạn biết bạn đang ở cực tiểu cục bộ, cực đại cục bộ, hay điểm yên ngựa. Bài hướng dẫn Ma trận Hessian của chúng tôi đi sâu hơn vào cơ chế và cho thấy điều này liên hệ với độ cong ở không gian nhiều chiều như thế nào.
Cực tiểu và cực đại trong tối ưu hóa và học máy
Nếu bạn đã từng làm việc với học máy, bạn đã giải các bài toán cực tiểu. Huấn luyện một mô hình đồng nghĩa với việc tối thiểu hóa một hàm mất mát, và hàm mất mát cũng chỉ là một hàm khác với cực tiểu và cực đại.
Gradient descent là công cụ chủ lực ở đây. Nó tính đạo hàm (hoặc gradient, trong không gian nhiều chiều) của hàm mất mát tại các giá trị tham số hiện tại, sau đó bước theo hướng làm giảm mất mát. Đi xuống bề mặt mất mát, tìm một cực tiểu. Bài hướng dẫn Gradient Descent trong Học máy của chúng tôi bao quát toàn bộ thuật toán.
Đây là nơi sự phân biệt cục bộ so với toàn cục trở thành một vấn đề kỹ thuật thực sự. Với các hàm mất mát không lồi (mà hầu hết mạng nơ-ron đều có), gradient descent có thể mắc kẹt ở cực tiểu cục bộ thay vì tìm cực tiểu toàn cục. Các kỹ thuật như lịch học (learning rate schedules), momentum, và stochastic gradient descent giúp thuật toán thoát khỏi các cực tiểu cục bộ nông, dù việc đảm bảo cực tiểu toàn cục trong các bài toán không lồi vẫn là một thách thức bỏ ngỏ. Bài hướng dẫn Hàm Chi phí của chúng tôi giải thích cách xây dựng các hàm mục tiêu này và vì sao hình dạng của chúng quan trọng.
Các lỗi thường gặp khi tìm cực tiểu và cực đại
Cho rằng mọi điểm tới hạn đều là cực trị
Không phải mọi điểm tới hạn đều cho ra cực tiểu hay cực đại. Các điểm uốn như x = 0 trong f(x) = x³ có f'(x) = 0 nhưng không đổi chiều. Luôn xác minh bằng kiểm định đạo hàm.
Nhầm lẫn giữa cực trị cục bộ và toàn cục
Cực tiểu cục bộ chỉ là điểm thấp nhất trong một lân cận. Cực tiểu toàn cục có thể ở nơi khác hoàn toàn, hoặc ở điểm biên. Đừng dừng lại sau khi tìm được một cực trị cục bộ.
Quên các điểm biên
Trên một khoảng đóng, các cực trị tuyệt đối có thể xuất hiện tại biên. Cực đại tuyệt đối trong ví dụ của chúng ta ở x = 4, không phải tại các điểm tới hạn. Bỏ qua điểm biên là một trong những lỗi phổ biến nhất trong các bài toán tối ưu, và tôi dám cá nó làm mất nhiều điểm thi hơn bất kỳ hiểu lầm khái niệm nào.
Cho rằng đạo hàm bậc hai bằng không nghĩa là không có cực trị
Khi f''(c) = 0, kiểm định đạo hàm bậc hai là không kết luận. Nó không có nghĩa điểm đó không phải cực trị. Hãy xét f(x) = x⁴ tại x = 0: f''(0) = 0, nhưng x = 0 rõ ràng là cực tiểu. Hãy dùng kiểm định đạo hàm bậc nhất khi kiểm định bậc hai thất bại.
Nhầm lẫn giữa điểm cực trị và giá trị cực trị
Giá trị cực trị là f(c), không phải bản thân c. Nói "Cực tiểu là x = 2" khi bạn muốn nói "giá trị cực tiểu là f(2) = 0" là trộn lẫn đầu vào với đầu ra. Báo cáo và bài làm cần giá trị của hàm, không chỉ vị trí.
Kết luận
Có một phiên bản của chủ đề này dừng lại ở "tìm nơi đạo hàm bằng không." Nhiều khóa học nhập môn làm đúng như vậy, và điều đó khiến người học chưa sẵn sàng cho phần thực sự quan trọng trong thực tế: biết liệu bạn đã tìm được cực tiểu cục bộ hay cực tiểu toàn cục, và hiểu rằng chúng là những điều rất khác nhau tùy vào mục tiêu bạn đang theo đuổi.
Phần giải tích ở đây khá gọn. Điểm tới hạn, kiểm định đạo hàm, kiểm tra điểm biên. Điều mất thời gian để thấm là hình học bên dưới: vì sao độ cong quyết định hình dạng của một cực tiểu, vì sao điểm biên có thể vượt trội điểm tới hạn, vì sao gradient descent trong một mạng nơ-ron thực sự đang tìm cực tiểu trên một bề mặt có thể có hàng nghìn cực tiểu cục bộ.
Về triển khai, khóa học Giới thiệu về Tối ưu hóa bằng Python của chúng tôi bao quát các bài toán này bằng tính toán với SciPy và SymPy. Đó là nơi kết nối giữa giải tích và mã trở nên cụ thể.
Vinod Chugani bắt đầu sự nghiệp tại Tokyo với vai trò Trưởng bàn giao dịch bán hàng Quỹ phòng hộ trẻ nhất của JPMorgan, sau đó lập kỷ lục doanh số cá nhân tại Lehman Brothers, rồi xây dựng một doanh nghiệp phân phối điện tử tại 30 quốc gia vượt mốc doanh thu 100 triệu đô la Singapore trước khi chuyển hướng sang dữ liệu. Tốt nghiệp Kinh tế Duke và là cựu học viên NYC Data Science Academy, anh là một trong ba người nhận học bổng trong hơn 100 ứng viên cho khóa học Building AI Applications của Hugo Bowne-Anderson trên Maven. Hiện nay, anh viết cho DataCamp, KDnuggets, Machine Learning Mastery và Statology về các chủ đề từ thống kê đến AI hành động, và cố vấn cho các chuyên gia dữ liệu tại NYC Data Science Academy với hơn 1.000 buổi kèm 1-1 đã thực hiện.
Câu hỏi thường gặp
Sự khác nhau giữa cực tiểu và cực đại là gì?
Cực tiểu là giá trị thấp nhất mà một hàm đạt tại một điểm nhất định, còn cực đại là giá trị cao nhất. Gộp lại gọi là cực trị. Một hàm có thể có nhiều cực tiểu và cực đại cục bộ, nhưng cực tiểu (tuyệt đối) toàn cục là giá trị thấp nhất duy nhất trên toàn miền, và cực đại toàn cục là giá trị cao nhất duy nhất.
Bạn tìm cực tiểu và cực đại của một hàm như thế nào?
Lấy đạo hàm bậc nhất, cho bằng không và giải x để tìm các điểm tới hạn. Sau đó dùng kiểm định đạo hàm bậc nhất (kiểm tra đổi dấu) hoặc kiểm định đạo hàm bậc hai (đánh giá f''(x) tại mỗi điểm tới hạn) để phân loại mỗi điểm là cực tiểu, cực đại, hoặc không phải. Trên một khoảng đóng, cũng cần tính giá trị hàm tại các điểm biên.
Sự khác nhau giữa cực trị cục bộ và toàn cục là gì?
Cực trị cục bộ là giá trị cao nhất hoặc thấp nhất trong một lân cận nhỏ quanh một điểm. Cực trị (tuyệt đối) toàn cục là giá trị cao nhất hoặc thấp nhất trên toàn miền của hàm. Mọi cực trị toàn cục cũng là cực trị cục bộ, nhưng đa số cực trị cục bộ không phải là toàn cục.
Một hàm có thể có hơn một cực tiểu toàn cục không?
Một hàm chỉ có một giá trị cực tiểu toàn cục duy nhất, nhưng giá trị đó có thể đạt tại nhiều điểm. Ví dụ, f(x) = cos(x) có giá trị cực tiểu toàn cục là −1, đạt tại x = π, x = 3π, x = −π, v.v. Giá trị cực tiểu là duy nhất; các vị trí xảy ra thì có thể không.
Điểm tới hạn là gì, và liệu nó luôn là cực trị?
Điểm tới hạn là nơi f'(x) = 0 hoặc f'(x) không xác định. Đó là ứng viên cho cực trị, nhưng không được đảm bảo. Ví dụ, f(x) = x³ có một điểm tới hạn tại x = 0 (vì f'(0) = 0), nhưng đó là điểm uốn chứ không phải cực trị—hàm không đổi chiều ở đó.
Khi nào kiểm định đạo hàm bậc hai thất bại?
Kiểm định đạo hàm bậc hai không kết luận khi f''(c) = 0 tại một điểm tới hạn c. Khi đó, bạn cần dùng kiểm định đạo hàm bậc nhất hoặc phân tích các đạo hàm bậc cao hơn. Ví dụ kinh điển là f(x) = x⁴, nơi cả f'(0) = 0 và f''(0) = 0, nhưng x = 0 vẫn là cực tiểu.
Tại sao các điểm biên lại quan trọng khi tìm cực trị tuyệt đối?
Trên một khoảng đóng [a, b], Định lý Giá trị Cực trị đảm bảo một hàm liên tục có cả cực đại và cực tiểu tuyệt đối. Chúng có thể xuất hiện tại các điểm tới hạn hoặc tại các điểm biên. Bỏ qua điểm biên có thể khiến bạn bỏ lỡ cực trị tuyệt đối thực sự, và đó là một trong những lỗi phổ biến nhất trong các bài toán này.
Cực tiểu và cực đại được dùng trong học máy như thế nào?
Huấn luyện một mô hình học máy là một bài toán tối ưu: bạn tối thiểu hóa một hàm mất mát (hoặc tương đương, tối đa hóa một chỉ số hiệu suất). Gradient descent và các biến thể của nó tìm cực tiểu của hàm mất mát bằng cách lặp lại việc đi theo gradient âm. Thách thức giữa cực tiểu cục bộ và toàn cục là hoàn toàn liên quan—các hàm mất mát không lồi có thể khiến các thuật toán tối ưu mắc kẹt trong các cực tiểu cục bộ kém tối ưu.
