Derivative

Chương 7 là một trong những chương bản lề quan trọng nhất của cuốn sách. Nó đánh dấu sự chuyển đổi từ phương pháp "thử và sai" (random search) sang một phương pháp tối ưu hóa có hệ thống, thông minh và hiệu quả dựa trên giải tích (calculus). Đây là nền móng để hiểu được thuật toán Lan truyền ngược (Backpropagation).

1. Bối Cảnh - Tại Sao Cần Đến Đạo Hàm?
  • Giải thích dễ hiểu:

    Ở các chương trước, chúng ta đã cố gắng tìm bộ trọng số (weights) và độ lệch (biases) tốt nhất bằng cách thay đổi chúng một cách ngẫu nhiên. Tác giả chỉ ra rằng phương pháp này không hiệu quả vì không gian chứa tất cả các kết hợp của trọng số và độ lệch là vô hạn. Việc tìm kiếm ngẫu nhiên giống như mò kim đáy bể. Chúng ta cần một cách "thông minh hơn" để biết nên điều chỉnh các tham số theo hướng nào để giảm thiểu hàm mất mát (loss).

  • Liên hệ trừu tượng: Người leo núi bịt mắt

    Hãy tưởng tượng bạn đang đứng trên một sườn núi và bị bịt mắt, mục tiêu của bạn là đi xuống thung lũng (nơi có độ cao thấp nhất, tương ứng với loss thấp nhất). * Phương pháp ngẫu nhiên (Random Search): Bạn dịch chuyển tức thời (teleport) đến một vị trí ngẫu nhiên trên núi. Bạn có thể may mắn đáp xuống gần thung lũng, nhưng khả năng cao là bạn sẽ ở một nơi còn tệ hơn. * Phương pháp thông minh (Sử dụng đạo hàm): Thay vì nhảy lung tung, bạn dùng chân dậm nhẹ xuống đất xung quanh vị trí hiện tại để cảm nhận độ dốc của mặt đất. Bạn sẽ bước theo hướng dốc nhất xuống dưới. Bước đi này có thể nhỏ, nhưng nó đảm bảo bạn đang đi đúng hướng để xuống núi. "Cảm nhận độ dốc" chính là vai trò của đạo hàm.

  • Đối chiếu khái niệm:

    Sách gọi đây là việc tìm hiểu "tác động" (impact) của một trọng số/độ lệch lên hàm mất mát. Trong toán học, khái niệm này được định nghĩa chính xác là đạo hàm (derivative). Đạo hàm của một hàm số tại một điểm cho ta biết "tốc độ thay đổi tức thời" (instantaneous rate of change) của hàm số tại điểm đó.

    Info

    Nguồn: Theo Khan Academy, "The derivative of a function... can be interpreted as the instantaneous rate of change... or the slope of the tangent line to the graph of the function at that point." (Đạo hàm của một hàm số... có thể được diễn giải là tốc độ thay đổi tức thời... hoặc độ dốc của đường tiếp tuyến với đồ thị hàm số tại điểm đó.)

2. "Tác Động" (Impact) - Từ Độ Dốc Đến Đạo Hàm

Chương sách bắt đầu xây dựng trực giác về đạo hàm từ khái niệm độ dốc (slope) quen thuộc trong đại số.

2.1. Trường hợp đơn giản - Hàm tuyến tính (y = 2x)

  • Giải thích dễ hiểu:

    Với một đường thẳng, độ dốc là không đổi tại mọi điểm. Độ dốc được tính bằng công thức "rise over run" hay Δy / Δx (thay đổi trên trục y chia cho thay đổi trên trục x). Với hàm y = 2x, cứ mỗi khi x tăng 1 đơn vị, y sẽ tăng 2 đơn vị. Vì vậy, "tác động" của x lên y luôn là 2.

  • Sơ đồ minh họa phép tính độ dốc:

    Chọn 2 điểm bất kỳ trên đường thẳng y=2x, ví dụ p1 = (1, 2)p2 = (3, 6).

Text Only
    p1 = (x1, y1) = (1, 2)
    p2 = (x2, y2) = (3, 6)

    Change in x (Δx) = x2 - x1 = 3 - 1 = 2
    Change in y (Δy) = y2 - y1 = 6 - 2 = 4

    Slope = Δy / Δx = 4 / 2 = 2

2.2. Thách thức - Hàm phi tuyến (y = 2x²)

  • Giải thích dễ hiểu:

    Khi đồ thị là một đường cong, độ dốc không còn cố định nữa. Nếu bạn tính độ dốc giữa x=1x=2, bạn sẽ nhận được một kết quả khác với khi tính giữa x=3x=4. Độ dốc của đường cong thay đổi tùy thuộc vào vị trí bạn đang xét. Điều này dẫn đến câu hỏi: "Độ dốc tại một điểm duy nhất là bao nhiêu?"

2.3. Đạo hàm số (Numerical Derivative) - Phép tính xấp xỉ

  • Giải thích dễ hiểu:

    Để tìm độ dốc tại một điểm (ví dụ tại x=1), ta không thể dùng công thức Δy / ΔxΔx sẽ bằng 0 (chia cho 0 là bất hợp pháp). Sách giới thiệu một mẹo: thay vì chọn 2 điểm xa nhau, ta chọn 2 điểm cực kỳ gần nhau. Ví dụ, ta chọn điểm x1 = 1x2 = 1.0001. Khoảng cách Δx lúc này rất nhỏ (0.0001) nhưng không phải là 0. Độ dốc tính được giữa hai điểm này sẽ là một xấp xỉ rất tốt cho độ dốc thực sự của đường tiếp tuyến tại x=1. Đây được gọi là đạo hàm số (numerical derivative).

  • Đối chiếu khái niệm:

    Phương pháp này là một cách hiện thực hóa định nghĩa giới hạn của đạo hàm trong giải tích.

    Định nghĩa chính thức của đạo hàm: f'(x) = lim (h→0) [f(x+h) - f(x)] / h Trong đó, h chính là giá trị p2_delta = 0.0001 mà sách sử dụng. Vì máy tính không thể tính toán với h tiến tới 0 vô hạn, chúng ta chọn một giá trị h đủ nhỏ. Sách cũng lưu ý về sự cân bằng: h phải đủ nhỏ để xấp xỉ chính xác, nhưng không quá nhỏ đến mức gây ra lỗi làm tròn số của máy tính (floating-point precision error).

3. Hai Phương Pháp Tính Đạo Hàm: Số vs. Giải Tích

3.1. Hạn chế của Đạo hàm số trong Mạng Neural

  • Giải thích dễ hiểu:

    Mặc dù đạo hàm số dễ hiểu và dễ lập trình, nó lại cực kỳ chậm đối với mạng neural. Hãy tưởng tượng một mạng neural có 1 triệu tham số (weights và biases). Để cập nhật các tham số này chỉ một lần, chúng ta cần:

    1. Tính loss ban đầu (1 lần forward pass).
    2. Với mỗi tham số trong 1 triệu tham số đó:

      • Nhích tham số đó lên một chút (+h).
      • Tính lại loss (1 lần forward pass nữa).
      • Tính đạo hàm xấp xỉ.
      • Trả tham số về giá trị cũ. Điều này có nghĩa là chúng ta cần khoảng 1 + 1,000,000 lượt forward pass chỉ để tính toán cho một bước cập nhật duy nhất! Đây là một sự "brute-force" không khả thi.
  • Liên hệ trừu tượng:

    Quay lại với người leo núi bịt mắt trên một "ngọn núi" triệu chiều. Để tìm hướng dốc nhất, họ phải thử nhích một bước nhỏ theo từng chiều trong số một triệu chiều không gian, đo sự thay đổi độ cao, rồi mới quyết định bước đi tổng hợp. Việc này tốn thời gian một cách khủng khiếp.

3.2. Đạo hàm giải tích (Analytical Derivative) - Lời giải chính xác

  • Giải thích dễ hiểu:

    Thay vì tính xấp xỉ bằng số, phương pháp giải tích cho chúng ta một công thức chính xác để tính đạo hàm. Ví dụ, thay vì phải tính xấp xỉ đạo hàm của f(x) = 2x² tại x=1x=2, chúng ta tìm ra công thức đạo hàm chung là f'(x) = 4x. Bây giờ, muốn tính đạo hàm tại điểm nào, ta chỉ cần thay số vào công thức này:

    • Tại x=1, đạo hàm là 4 * 1 = 4.
    • Tại x=2, đạo hàm là 4 * 2 = 8. Việc này nhanh hơn hàng triệu lần so với phương pháp số.
  • Các quy tắc đạo hàm cơ bản (Building Blocks):

    Chương sách giới thiệu các quy tắc cơ bản để "phá vỡ" các hàm phức tạp thành những phần đơn giản hơn và tính đạo hàm của chúng:

    1. Quy tắc Hằng số: d/dx (c) = 0 (Độ dốc của một đường nằm ngang là 0).
    2. Quy tắc Lũy thừa: d/dx (x^n) = n * x^(n-1) (Đây là quy tắc mạnh nhất).
    3. Quy tắc Hằng số nhân: d/dx (c*f(x)) = c * d/dx (f(x)).
    4. Quy tắc Tổng/Hiệu: d/dx (f(x) + g(x)) = d/dx (f(x)) + d/dx (g(x)).
  • Sơ đồ minh họa phép tính giải tích:

    Ví dụ, tính đạo hàm của f(x) = 3x² + 5x.

Text Only
f(x) = 3x² + 5x

// Áp dụng Quy tắc Tổng (Sum Rule) để tách thành 2 phần
f'(x) = d/dx(3x²) + d/dx(5x)

// Xét phần thứ nhất: d/dx(3x²)
// Áp dụng Quy tắc Hằng số nhân (Constant Multiple Rule)
// -> 3 * d/dx(x²)
// Áp dụng Quy tắc Lũy thừa (Power Rule) với n=2
// -> 3 * (2 * x^(2-1))
// -> 3 * (2x¹) = 6x

// Xét phần thứ hai: d/dx(5x) hay d/dx(5x¹)
// Áp dụng Quy tắc Hằng số nhân
// -> 5 * d/dx(x¹)
// Áp dụng Quy tắc Lũy thừa với n=1
// -> 5 * (1 * x^(1-1))
// -> 5 * (1 * x⁰)
// -> 5 * 1 = 5

// Kết hợp lại
f'(x) = 6x + 5

Đây là một quy trình có cấu trúc, cho phép máy tính tìm ra công thức đạo hàm một cách hiệu quả, thay vì phải tính toán xấp xỉ lặp đi lặp lại.

4. Tóm Tắt & Kết Nối
  • Tóm tắt nội dung chính:

    1. Tối ưu hóa mạng neural cần một phương pháp "thông minh" hơn là tìm kiếm ngẫu nhiên.
    2. Đạo hàm cho chúng ta biết "tác động" hay "độ dốc" của một tham số lên hàm mất mát, từ đó chỉ ra hướng cần điều chỉnh tham số.
    3. Có hai cách tính đạo hàm: Số (xấp xỉ, chậm nhưng dễ) và Giải tích (chính xác, nhanh, là lựa chọn cho mạng neural).
    4. Đạo hàm giải tích hoạt động bằng cách sử dụng các quy tắc cơ bản (lũy thừa, tổng, hằng số...) để tìm ra một công thức đạo hàm chính xác.
  • Cầu nối đến chương tiếp theo:

    Chương này đã dạy chúng ta cách tính đạo hàm cho các hàm có một biến đầu vào (x). Tuy nhiên, hàm mất mát của mạng neural phụ thuộc vào hàng triệu biến (tất cả các weights và biases). Khi một hàm có nhiều biến đầu vào, việc tính "độ dốc" theo từng biến riêng lẻ được gọi là đạo hàm riêng (partial derivative). Đây chính là chủ đề của chương tiếp theo và là bước đệm cuối cùng trước khi chúng ta tìm hiểu về thuật toán lan truyền ngược (backpropagation), nơi tất cả các khái niệm này sẽ được kết hợp lại.