Giới thiệu
Deep Learning hiện đang trở thành xu hướng nổi bật nhờ sự phát triển mạnh mẽ của phần cứng máy tính, đặc biệt là GPU Nhiều ứng dụng của Deep Learning đã chứng minh hiệu quả rõ rệt, như nhận diện khuôn mặt, phân loại ảnh, nhận diện giọng nói, lọc thư rác, dự báo thời tiết, xử lý ngôn ngữ tự nhiên và phân tích tài chính.
Phương trình đạo hàm riêng đóng vai trò quan trọng trong toán học và ứng dụng trong mô phỏng hiện tượng vật lý cũng như giải quyết các vấn đề thực tế Do hầu hết các bài toán này không có nghiệm chính xác, phương pháp giải số trở nên phổ biến, mặc dù với những phương trình phức tạp, việc này trở nên khó khăn hơn Gần đây, giải phương trình đạo hàm riêng bằng Deep Learning đã thu hút sự chú ý, trở thành một phương pháp tiềm năng nhờ vào khả năng xử lý các vấn đề phức tạp một cách hiệu quả Nhiều nghiên cứu đã được thực hiện trong lĩnh vực này, chứng tỏ tính khả thi và lợi ích của việc áp dụng Deep Learning trong giải phương trình đạo hàm riêng.
CHƯƠNG 1 TỔNG QUAN VỀ PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN BẰNG DEEP LEARNING
Phương pháp này giải hệ phương trình đạo hàm riêng bằng cách giải phương trình tương đương
Để tìm hàm u = u(x) trong miền tính toán, ta cần giải phương trình bằng cách xác định giá trị nhỏ nhất của hàm số L = f(u) - a².
+ g(u)−b2 đồng thời xấp xỉ hàm u bằng một mạng nơ ron
⇒ta sẽ đi tìm min của hàm L(W) f N N(x, W)
Trong Deep Learning, việc tối ưu hóa hàm số nhằm tìm giá trị nhỏ nhất thường được thực hiện thông qua các thuật toán Gradient Descent và phương pháp đạo hàm tự động Cụ thể, công thức đạo hàm tự động df(x)/dx = df(x)/du(x) * ãdu(x)/dx được sử dụng để tính đạo hàm của các hàm hợp, trong đó mạng nơ ron được xem như một hàm hợp.
Để tính đạo hàm của hàm số f(x) = (3x + 2)¹⁰⁰, ta áp dụng quy tắc đạo hàm: df(x)/dx = df(x)/d(3x + 2) * d(3x + 2)/dx = 100(3x + 2)⁹⁹ * 3 = 300(3x + 2)⁹⁹ Phương pháp này có thể áp dụng cho hầu hết các phương trình đạo hàm riêng, bất kể độ phức tạp hay chiều không gian Các bước cụ thể sẽ được trình bày chi tiết hơn trong phần sau.
Ý tưởng chung về phương pháp
Phương trình đạo hàm riêng có dạng chung như sau:
• u(x, t) là hàm số chúng ta cần tìm.
• Ω⊂R d là miền của bài toán.
CHƯƠNG 1 TỔNG QUAN VỀ PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN BẰNG DEEP LEARNING
• L là một toán tử tác động lênu(x, t), các đạo hàm riêng của u(x, t)và các hàm số không phụ thuộc vào u(x, t).
Giả sử hàm u ∗ (x, t)là nghiệm đúng của bài toán Để giải quyết bài toán, tác giả sẽ chia lộ trình giải ra làm 4 bước nhỏ:
• Bước 1: Xấp xỉ nghiệm u ∗ (x, t) bằng một hàm số N N phụ thuộc vào x, t và một bộ tham số W, ta có mạngN N(x, t, W).
• Bước 2: Lấy ra một tập hữu hạn các điểm x trong miền Ω, gọi tập đó là Ω d
Bước 3: Xây dựng hàm Loss để đánh giá hiệu quả của bộ tham số W Hàm Loss phụ thuộc vào W và tập điểm x trong Ωd Trên tập Ωd, giá trị hàm Loss càng nhỏ thì mức độ hiệu quả của bộ tham số W càng cao.
W càng cao đồng nghĩa với việc nghiệm xấp xỉ N N(x, t, W) càng gần nghiệm đúng u ∗ (x, t).
• Bước 4: Dựa vào hàm Loss để hiệu chỉnh bộ tham số W Từ đó ta có nghiệm cần tìm là mạng N N(x, t, W).
Tiếp theo tác giả sẽ làm rõ hơn từng bước một thông qua một ví dụ đơn giản Ví dụ trong giải phương trình sau:
Giả sử ta xấp xỉ nghiệm cần tìmu ∗ (x)bằng một mạng N N(x, W)có dạng như sau
Mạng nơ-ron thường được cấu thành từ một hàm hợp phức tạp phụ thuộc vào nhiều tham số wi Để đơn giản hóa, tác giả sẽ xem xét mạng nơ-ron trong ví dụ này như một hàm số bậc ba với 4 tham số.
Giả sử ta sẽ lấy tập hợp gồm 5 phần tử nằm trong miền [-1,1] là
CHƯƠNG 1 TỔNG QUAN VỀ PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN BẰNG DEEP LEARNING
Bước 3: Để mạng N N(x, W)gần với nghiệmu ∗ (x)thì mạngN N(x, W)phải thỏa mãn điều kiện của hai phương trình trong hệ 1.1 Nghĩa là
Do đó ta có thể xây dựng được một hàm Loss như sau:
Bằng các phương pháp nhất định, chúng ta có thể xác định bộ tham số W sao cho giá trị hàm Loss giảm dần về 0, từ đó đạt được bộ tham số tối ưu.
W = (w 0 , w 1 , w 2 , w 3 )tiến dần về(0,1,0,−1), từ đó ta có nghiệm đầu ra sẽ tiến dần đến hàm xấp xỉ u(x, Wˆ ) =N N(x, W) =x 2 −1.
Trong phần tiếp theo của chương, tác giả sẽ trình bày cách áp dụng Deep Learning để giải quyết các phương trình đạo hàm riêng, dựa trên ý tưởng giải quyết bài toán đã nêu.
Áp dụng Deep Learning vào ý tưởng chung để giải quyết bài toán
Việc áp dụng Deep Learning để giải xấp xỉ bài toán với ý tưởng trên sẽ có một số lưu ý về từng bước như sau:
Chúng ta sẽ xấp xỉ nghiệm u ∗ (x, t) bằng cách sử dụng một mạng nơ-ron, bởi vì mạng nơ-ron về cơ bản hoạt động như một hàm Việc áp dụng phương pháp này dựa trên các định lý đã được chứng minh.
CHƯƠNG 1 TỔNG QUAN VỀ PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN BẰNG DEEP LEARNING
Năm 1991, Kurt Hornik đã chứng minh định lý xấp xỉ phổ quát, khẳng định rằng mạng neuron có khả năng xấp xỉ mọi hàm số liên tục trên tập compact Tuy nhiên, định lý này chỉ áp dụng cho mạng neuron với một tầng ẩn và số lượng nơ-ron trong tầng đó không giới hạn Việc sử dụng một tầng ẩn với số lượng nơ-ron lớn có thể dẫn đến khó khăn trong việc huấn luyện thực tế.
Đến năm 2017, Zhou Lu và Hanin đã chứng minh một định lý tương tự như định lý được nêu trong tài liệu trước đó, nhưng áp dụng cho mạng chiều sâu thay vì mạng chiều rộng không giới hạn.
Việc xây dựng một mạng nơ-ron phải trải qua nhiều bước, tác giả sẽ trình bày chi tiết việc xây dựng mạng nơ-ron ở phần 2.1.
Việc chọn một tập hợp hữu hạn các điểm trong miền Ω là bước quan trọng để thu thập dữ liệu cho việc huấn luyện mạng lưới trong Deep Learning Có hai phương pháp chính để tạo ra dữ liệu, bao gồm việc lấy ngẫu nhiên N điểm trong miền.
[31], [32]), và hướng thứ hai là lấy N điểm từ lưới vuông hoặc lưới tam giác (theo
Hình 1.1: Một số ví dụ về dữ liệu lưới vuông của bài toán
Với mật độ điểm dày hơn, số lượng dữ liệu cần luyện sẽ tăng lên, dẫn đến thời gian luyện cũng kéo dài Tuy nhiên, điều này giúp nâng cao mức độ đại diện cho toàn bộ miền của tập dữ liệu.
CHƯƠNG 1 TỔNG QUAN VỀ PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN BẰNG DEEP LEARNING
Gọi tập dữ liệu là Ω d Để mạng lưới của chúng ta thỏa mãn phương trình đạo hàm riêng, hàm Loss của bài toán sẽ có dạng
Khi giá trị của hàm mất mát Loss càng tiến dần về 0, thì đầu ra của mạng lưới
N N(x, t, W)càng gần giá trị của u ∗ (x, t) với x∈Ω d
Bước 4: Để tìm đượcW tốt nhất, có rất nhiều phương pháp, chúng ta có thể thử thật nhiều
Trong Deep Learning, để tìm W, người ta sử dụng các thuật toán tối ưu hóa (optimizer) với nhiều lựa chọn hiệu quả, mỗi thuật toán đều có ưu nhược điểm riêng Tác giả sẽ trình bày chi tiết từng thuật toán trong phần 2.2 Tiếp theo, tác giả sẽ giới thiệu những kiến thức cơ bản trong Deep Learning cần thiết cho việc giải phương trình đạo hàm riêng Độc giả đã nắm vững kiến thức này có thể bỏ qua phần này và chuyển ngay đến chương 3, nơi sẽ trình bày cách giải cụ thể các phương trình đạo hàm riêng bằng Deep Learning.
KIẾN THỨC CƠ SỞ DEEP LEARNING
Trong Deep Learning, hai yếu tố quan trọng nhất là dữ liệu và mô hình Dữ liệu tồn tại ở khắp nơi với nhiều định dạng và kích thước khác nhau, chẳng hạn như bình luận trên mạng xã hội, hình ảnh từ các trang web, và giọng nói được ghi âm của nhiều người.
Mô hình Deep Learning được thiết kế dựa trên cơ chế hoạt động của hệ thần kinh người, cho phép tiếp nhận và xử lý dữ liệu để đưa ra kết quả, như nhận dạng khuôn mặt, giọng nói và phân biệt giới tính Mô hình này được coi là một hàm số phức tạp, phụ thuộc vào nhiều tham số, và người dùng cần điều chỉnh các tham số này để đạt được kết quả mong muốn Trong chương này, tác giả sẽ trình bày kiến trúc của mạng lưới và các phương pháp điều chỉnh tham số, đồng thời sử dụng thuật ngữ "mạng lưới" để tránh nhầm lẫn với mô hình trong toán học.
Kiến trúc của mạng lưới Deep Learning
Lan truyền xuôi
Con người tiếp nhận thông tin vào não, sau khi xử lý, não sẽ đưa ra kết quả Quá trình này tương tự như việc tính toán giá trị của các nơ-ron trong mạng từ lớp đầu vào đến lớp đầu ra, giống như việc tính giá trị của các hàm số f(x) Ví dụ minh họa sẽ giúp làm rõ hơn quá trình này.
Hình 2.2: Ví dụ sự phụ thuộc của một nơ-ron vào lớp phía trước
Với hình trên, giả sử h là giá trị của một nơ-ron ở lớp ẩn, ở lớp phía trước đó có
Hai nơ-ron kết nối với nhau có giá trị lần lượt là x1 và x2, với hệ số tương ứng là w1 và w2 Giá trị của hàm h được tính theo công thức h = f(x1 * w1 + x2 * w2 + b).
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING tổng quát hơn đối với đầu vào là vec-tơ n chiều h=f( n
Hàm f đóng vai trò là hàm số kích hoạt trong các mô hình học máy, có thể là hàm tuyến tính hoặc phi tuyến Tuy nhiên, trong các bài toán phức tạp, hàm phi tuyến thường được ưa chuộng hơn để cải thiện hiệu suất và khả năng học của mô hình.
• b là bias, hay còn gọi là hệ số tự do.
Hàm kích hoạt f trên đây thường là hàm phi tuyến[42], một số hàm phổ biến có thể kể đến như
• ReLU (Rectified Linear Unit): f(x) = max(0, x).
Ngoài ra người dùng hoàn toàn có thể sử dụng các hàm số khác tùy ý, ví dụ như hàm sin(x),cos(x), e x ,
Luyện một mạng lưới bao gồm việc xác định các tham số w i và b j cần thiết để đạt được đầu ra mong muốn Ban đầu, các tham số này được khởi tạo bởi người dùng.
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING nên đầu ra của mạng lưới khả năng cao là không được như ý Cho nên chúng ta cần phải tìm ra bộ tham số tối ưu Cơ sở của quá trình tối ưu này nằm ở phần tiếp theo của luận văn, đó là lan truyền ngược.
Lan truyền ngược
Quá trình học của con người tương tự như việc cập nhật các tham số trong mô hình học máy, ví dụ như việc chúng ta nhận biết màu sắc thông qua quan sát và nghe nhiều lần Mục tiêu của việc lan truyền ngược là cập nhật các tham số w i và b j để cải thiện độ chính xác của mô hình Để đánh giá hiệu quả của các tham số này, người ta sử dụng hàm mất mát (loss function), với giá trị nhỏ cho thấy các tham số hoạt động tốt Thông thường, hàm mất mát được thiết kế để luôn không âm Phương pháp chính để điều chỉnh các tham số này là thuật toán Gradient Descent, cho phép tối ưu hóa hàm mất mát một cách hiệu quả.
J =J(x, w1, w2, , wn, b1, b2, , bm), ta sẽ thực hiện cập nhật từng tham số một, giả sử ta cần cập nhật tham số w i , b j , ta sẽ sử dụng công thức w i =w i −η∂J
∂b j trong đó η là hệ số học, hay còn gọi là learning rate, là một số thực dương được cài đặt tùy ý bởi người dùng.
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING
Hình 2.3: Ý tưởng thuật toán Gradient Descent
Dựa trên ý tưởng tổng quát, nhiều thuật toán đã được phát triển nhằm tối ưu hóa quy trình lan truyền ngược Trong phần tiếp theo, chúng tôi sẽ giới thiệu một số thuật toán phổ biến.
Các thuật toán tối ưu
Gradient Descent
Gradient Descent[44] là thuật toán cơ bản nhất, là nền tảng để phát triển rất nhiều thuật toán khác sau này.
Thuật toán 1: Gradient Descent khởi tạo bộ tham số W 0 ; chọn giá trị cho learning rate η ; while do
Giả sử chúng ta có một bộ dữ liệu X = {x₁, x₂, , xN}, bộ dữ liệu này được chia thành k tập con {X₁, X₂, , Xk} Thuật toán Gradient Descent được phân loại thành ba loại nhỏ dựa trên cách thức tính toán hàm mất mát.
• Stochastic Gradient Descent: J =J(xi, W) với i= 1, N
Mini-batch Gradient Descent là phương pháp cập nhật bộ tham số sau khi tính toán hàm mất mát trên toàn bộ dữ liệu, giúp hàm mất mát hội tụ nhanh chóng Tuy nhiên, nhược điểm của phương pháp này là nếu dữ liệu X thay đổi, cần phải tính toán lại từ đầu, không phù hợp với một số bài toán hiện nay Để khắc phục, Stochastic Gradient Descent ra đời, cho phép cập nhật bộ tham số liên tục mà không cần luyện lại dữ liệu cũ Mặc dù vậy, phương pháp này tốn thời gian hơn do một điểm dữ liệu không thể đại diện cho toàn bộ dữ liệu, dẫn đến quá trình hội tụ của hàm mất mát chậm hơn.
Mini-batch Gradient Descent là phương pháp được phát triển để khắc phục nhược điểm của hai phương pháp trước đó, cho phép linh hoạt trong việc thêm hoặc bớt dữ liệu trong quá trình học.
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING ra một tập con của bộ dữ liệu thì tính đại diện sẽ cao hơn một điểm, cho nên tốc độ hội tụ của hàm mất mát sẽ nhanh hơn cách thứ hai, nhưng vẫn chậm hơn cách thứ nhất. Ưu điểm
• Dễ bị mắc vào cực tiểu địa phương,
Việc lựa chọn hệ số học (learning rate) là một quyết định quan trọng nhưng khó khăn, vì giá trị hợp lý có thể ảnh hưởng lớn đến quá trình hội tụ Nếu hệ số học quá nhỏ, thời gian hội tụ sẽ kéo dài, trong khi nếu quá lớn, chất lượng bộ tham số cuối cùng có thể không đạt yêu cầu.
Momentum
Thuật toán Gradient Descent có nhược điểm là khó thoát khỏi cực tiểu địa phương trong quá trình cập nhật bộ tham số Để khắc phục vấn đề này, thuật toán Momentum, hay còn gọi là Gradient Descent with Momentum, đã được phát triển như một cải tiến của Gradient Descent.
Algorithm 2: Gradient Descent with Momentum initializes the parameter set W0; selects a value for the learning rate η and the momentum parameter γ; and initializes the initial step size V0 The process continues in a loop while the stopping condition is not met.
Trên cơ sở lý thuyết của thuật toán này ta có thể đưa ra một vài nhận xét sau:
Thuật toán này dựa trên nguyên lý chuyển động có quán tính, tương tự như viên bi lăn trên dốc Khi dốc càng lớn, viên bi sẽ lăn xa hơn, giúp nó tránh việc dừng lại ở các cực tiểu địa phương.
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING
• Thuật toán này có hai bước nhảy, bước nhảy thứ nhất là hướng giảm gradient η ∂J
∂W t , bước nhảy thứ hai là bước nhảy momentum γVt−1, đây cũng là thành phần giúp việc cập nhật tham số có thể thoát khỏi cực tiểu địa phương.
Tham số γ thường được thiết lập ở mức 0.9, điều này giúp tăng cường sự dao động trong quá trình cập nhật tham số Việc cài đặt γ cao như vậy sẽ làm tăng khả năng thoát khỏi các cực tiểu địa phương, mang lại lợi thế trong việc tối ưu hóa.
• Có khả năng giúp việc cập nhật tham số thoát khỏi cực tiểu địa phương và tiến gần hơn với cực tiểu toàn cục.
• Có khả năng giá trị của tham số sẽ không hội tụ.
• Khi tham số được cập nhật gần đến cực tiểu, việc hội tụ sẽ lâu do dao động lớn.
Nesterov Accelerated Gradient (NAG)
Nesterov Accelerated Gradient là một phiên bản cải tiến của Gradient Descent with Momentum, được thiết kế để khắc phục nhược điểm về tốc độ hội tụ chậm của thuật toán này.
Algorithm 3: Nesterov Accelerated Gradient initializes the parameter set W0, selects a learning rate η and a momentum parameter γ, and sets the initial step size V0 The process continues in a loop until the stopping condition is met.
Trên cơ sở lý thuyết của thuật toán này ta có thể đưa ra một vài nhận xét sau:
• Cơ bản thuật toán này khá giống so với Gradient Descent with Momentum,điểm khác nhau nằm ở bước nhảy thứ hai, đối với thuật toán Gradient Descent
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING with Momentum thì bước nhảy thứ hai là η∂J(W t )
∂W t , còn đối với Nesterov Ac- celerated Gradient thì bước nhảy đó lại là η∂J(W t −γV t−1 )
Gradient Descent là bước nhảy thứ hai được thực hiện tại bộ tham số trong tương lai, sau khi đã cập nhật tham số lần đầu với momentum quán tính Bước nhảy tiếp theo chỉ được thực hiện khi có bộ tham số mới.
• Vòng lặp while của thuật toán tương đương với
• Ưu điểm và nhược điểm của thuật toán Nesterov Accelerated Gradient thì giống với Gradient Descent with Momentum.
So sánh với Gradient Descent with Momentum
• thuật toán Nesterov Accelerated Gradient có khả năng hội tụ nhanh hơn.
• thuật toán Nesterov Accelerated Gradient có khả năng mắc phải cực tiểu địa phương cao hơn.
Adagrad
Giống như Gradient Descent with Momentum, thuật toán Adagrad[50] là một biến thể khác của Gradient Descent.
Thuật toán 4: Adagrad khởi tạo bộ tham số W 0 , G 0 ; chọn giá trị cho hệ số η, ; while do
∂W t ; trong đóG t là tổng của bình phương các gradient củaLở tất cả các bước trước đó.
Ví dụ trong bước cập nhậtW 5 thì giá trị G 4 =P4 i=0
. Trên cơ sở lý thuyết của thuật toán này ta có thể đưa ra một vài nhận xét sau:
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING
Adagrad, viết tắt của Adaptive Gradient, là một thuật toán tối ưu hóa tương tự như Gradient Descent, nhưng điểm khác biệt chính là learning rate không cố định mà luôn thay đổi Điều này giúp thuật toán điều chỉnh tốc độ học một cách linh hoạt, cải thiện hiệu suất trong quá trình huấn luyện mô hình.
• Do tham số Gt luôn lớn dần theo thời gian, do đó thành phần learning rate
G t + nhỏ dần theo thời gian Bởi thế mà khi chạy lâu, bộ tham số sau thu được khả năng cao sẽ tốt hơn bộ tham số trước.
Do khả năng lưu trữ của máy tính không thể ghi nhận các số quá nhỏ, nên những số này sẽ được máy tính hiểu là số 0 Vì vậy, hệ số được thêm vào nhằm ngăn chặn việc mẫu số trở thành 0.
Gradient Descent with Momentum và Adagrad là hai biến thể của Gradient Descent nhưng có tính chất trái ngược nhau Trong khi Momentum giúp tăng tốc độ di chuyển của viên bi lăn xuống dốc, thì Adagrad lại hạn chế bước nhảy của nó Sự khác biệt này mang lại những ưu điểm riêng cho từng thuật toán trong quá trình tối ưu hóa.
• Càng chạy lâu thì bộ tham số sau sẽ khả năng cao là tốt hơn bộ tham số trước. Nhược điểm
Việc thiếu tính linh hoạt trong quá trình điều chỉnh bước nhảy có thể gây ra vấn đề nghiêm trọng Nếu bước nhảy đang hoạt động hiệu quả, không nên giảm nó quá nhiều Giảm bước nhảy quá mức sẽ dẫn đến việc cập nhật tham số bị ngưng trệ do learning rate trở nên quá nhỏ.
• Khả năng thoát khỏi cực tiểu địa phương kém (kém hơn cả Gradient Descent).
Adadelta
Adadelta là một biến thể của thuật toán Adagrad, được phát triển nhằm khắc phục nhược điểm thiếu tính linh hoạt trong việc điều chỉnh learning rate Thuật toán này cải thiện khả năng tối ưu hóa bằng cách sử dụng thông tin từ các bước trước đó để điều chỉnh learning rate một cách hiệu quả hơn.
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING
Thuật toán 5: Adadelta khởi tạo bộ tham số W 0 , G 0 , x 0 ; chọn giá trị cho hệ số γ, ; while do
Trên cơ sở lý thuyết của thuật toán này ta có thể đưa ra một vài nhận xét sau:
• Thành phần G t của thuật toán Adadelta làG t+1 =γG t + (1−γ)
2 khá giống với thành phần G t của thuật toán Adagrad là G t+1 =G t +
Thành phần x t trong thuật toán này tương tự như thành phần momentum của Gradient Descent with Momentum, nhưng thay vì dựa vào gradient, x t được tính toán dựa trên bước nhảy v t.
• Những ưu điểm và nhược điểm của Adadelta khá tương đồng với Adagrad.
• Linh hoạt hơn trong việc thay đổi hệ số learning rate (learning rate của Ada- grad là η Adagrad = η
√G t +, còn learning rate của Adadelta là η Adadelta √x t +
RMSprop
Một biến thể khác của thuật toán Adagrad là RMSprop, viết tắt của Root Mean Square propagation Thuật toán này có phần đơn giản hơn thuật toán Adadelta.
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING
Thuật toán 6: RMSprop khởi tạo bộ tham số W 0 , G 0 ; chọn giá trị cho hệ sốγ,, η ; while do
∂W t ; Trên cơ sở lý thuyết của thuật toán này ta có thể đưa ra một vài nhận xét sau:
• Thành phầnGt của RMSprop giống với Adadelta.
• RMSprop cũng có những ưu điểm và nhược điểm giống với Adagrad.
• Cũng giống như Adadelta, RMSprop linh hoạt hơn Adagrad trong việc thay đổi giá trị của learning rate.
Adam
Adam[53] là một thuật toán nâng cao, là sự kết hợp của Gradient Descent with Momentum và RMSprop.
Thuật toán 7: Adam khởi tạo bộ tham số W 0 , m 0 , v 0 ; chọn giá trị cho hệ sốβ 1 , β 2 , , η ; while do m t =β 1 m t−1 + (1−β 1 ) ∂J
1−β 1 t r1−β 2 t v t + ; Trên cơ sở lý thuyết của thuật toán này ta có thể đưa ra một vài nhận xét sau:
• Ta có thể coi thành phần m t
Tham số 1−β 1 t hoạt động như momentum, trong khi r1−β 2 t vt+ tương tự như trong RMSprop Cả hai tham số β 1 và β 2 đều nằm trong khoảng (0,1), vì vậy khi thời gian chạy kéo dài, ảnh hưởng của các thành phần này sẽ gia tăng.
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING momentum sẽ càng nhỏ (sự dao động ngày càng ít) và thành phần RMSprop sẽ càng lớn Nghĩa là thời điểm ban đầu thuật toán chủ yếu chạy giống Momentum, khiến cho bộ tham số sẽ tiến đến cực tiểu toàn cục rất nhanh, sau khi chạy được một khoảng thời gian, thành phần RMSprop kìm hãm lại sự dao động, khiến cho sự hội tụ diễn ra nhanh hơn.
Thuật toán Adam là sự kết hợp tối ưu giữa Gradient Descent với Momentum và RMSprop, tận dụng những ưu điểm nổi bật của cả hai phương pháp này Việc áp dụng Adam giống như việc khéo léo kết hợp hai thuật toán Momentum và RMSprop, mang lại hiệu quả cao trong quá trình tối ưu hóa.
• Tính đến thời điểm luận văn này được viết, thuật toán Adam vẫn đang được coi là sự lựa chọn phổ biến nhất trong các thuật toán [54].
So sánh với Momentum và RMSprop
• Xét về tốc độ tiến gần tới cực tiểu toàn cục thì Adam có phần chậm hơn Momentum.
• Xét về tốc độ hội tụ thì Adam có phần chậm hơn RMSprop.
• Xét về kết quả cuối cùng đạt được thì Adam sẽ có khả năng cho ra bộ tham số tốt hơn Momentum và RMSprop.
Nadam
Nadam[55] là một biến thể khác của Adam.
Thuật toán 8: Nadam khởi tạo bộ tham số W 0 , m 0 , v 0 ; chọn giá trị cho hệ số β 1 , β 2 ,,η ; while do m t =β 1 mt−1+ (1−β 1 )∂J(W t −γVt−1)
1−β 1 t r1−β 2 t v t + ; Trên cơ sở lý thuyết của thuật toán này ta có thể đưa ra một vài nhận xét sau:
CHƯƠNG 2 KIẾN THỨC CƠ SỞ DEEP LEARNING
Thuật toán Nadam tương tự như thuật toán Adam, nhưng có sự khác biệt ở chỗ thành phần Momentum của Adam được thay thế bằng thành phần Nesterov Momentum Do đó, thuật toán này được gọi là Nadam, viết tắt của Nesterov Adam.
Sự khác biệt giữa Adam và Nadam tương tự như sự khác biệt giữa Momentum và Nesterov Accelerated Gradient Mặc dù Nadam có khả năng hội tụ nhanh hơn Adam, nhưng khả năng thoát khỏi cực tiểu địa phương của Nadam lại không tốt bằng Adam.
Tổng kết
Trong các thuật toán cập nhật tham số mạng nơ-ron đã được đề cập, không có thuật toán nào vượt trội hơn hẳn các thuật toán khác Mỗi thuật toán đều có những ưu điểm và nhược điểm riêng, do đó người dùng cần lựa chọn phương pháp phù hợp với từng bài toán cụ thể.
Người dùng có thể áp dụng nhiều thuật toán trong từng giai đoạn tìm tham số, như thuật toán Adam kết hợp giữa Momentum và RMSprop, mang lại hiệu quả cao cho nhiều bài toán Ý tưởng chính là phối hợp các thuật toán, trong đó thuật toán đầu tiên tập trung vào việc thoát khỏi cực tiểu địa phương, trong khi thuật toán tiếp theo hướng tới hội tụ vào cực tiểu gần nhất Nhiều cặp thuật toán khác cũng có thể được áp dụng, chẳng hạn như Momentum + Adadelta, Momentum + Gradient Descent, và Nesterov Accelerated Gradient + Adagrad.
CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG
Mạng lưới được sử dụng để xấp xỉ nghiệm có rất nhiều kiểu kiến trúc khác nhau.
Mặc dù có những mạng lưới với kiến trúc phức tạp, như được đề cập trong các nghiên cứu [32], [26], [27], nhưng mạng lưới kiến trúc đơn giản vẫn được ưa chuộng hơn nhờ vào tính dễ dàng trong việc thiết lập và hiệu quả sử dụng, như nêu trong bài báo [20].
[25], [28], [29], [30], [19], [31], [33], [34] Trong luận văn này, tác giả cũng sẽ sử dụng những mạng lưới có kiến trúc đơn giản.
Phương trình nhiệt không phụ thuộc thời gian
Phương trình nhiệt không phụ thuộc thời gian có thể viết dưới dạng rút gọn:
Phương trình Poisson, với hàm cần tìm là u(x), sẽ được giải chi tiết trong ví dụ này Miền tính toán Ω được xác định là hình vuông đơn vị, với hàm ngoại lực f(x) = f(x1, x2) = 2π² sin(πx1) sin(πx2) và điều kiện biên g(x) = g(x1, x2) = 0 Bằng cách lấy N điểm trên miền Ω, chúng ta thu được bộ dữ liệu Ωd.
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING
Nghiệm đúng của bài toán này là u ∗ (x) = u ∗ (x 1 , x 2 ) = sin(πx 1 ) sin(πx 2 ).
Sau khi tìm được một nghiệm xấp xỉ u(x) =ˆ N N(x, W) thì chúng ta sẽ sử dụng nghiệm đúng của bài toán để tính toán sai số L 2
2 x i ∈Ω dr với Ω dr là tập hợp M điểm bất kỳ trong miền Ω
Tác giả sẽ tiến hành giải bài toán với hai bộ dữ liệu:
• Bộ dữ liệuΩ 1 d : Lưới vuông 20 × 20 (400 điểm)
• Bộ dữ liệuΩ 2 d : Lưới vuông 50 × 50 (2500 điểm) và tính sai số L2 trên bộ dữ liệu gồm 2000 điểm bất kỳ trong miền Ω.
Mỗi bộ dữ liệu Ωd được chia thành hai phần: tập hợp các điểm trên biên ∂Ωd và tập hợp các điểm bên trong miền Ωin d, với số lượng điểm ở mỗi phần lần lượt là Nb và Nin Hàm mất mát trong trường hợp này được xác định theo một dạng cụ thể.
Mạng lưới tác giả dùng để luyện có số lớp ẩn là 1 hoặc 3, số nơ-ron mỗi lớp là 8 hoặc 32 Hàm kích hoạt ở mỗi lớp ẩn là hàm tanh.
Thuật toán điều chỉnh tham số
Thuật toán Adam được sử dụng để điều chỉnh tham số, với các tham số η Chương 3 trình bày các ví dụ giải xấp xỉ phương trình đạo hàm riêng bằng deep learning.
0.001, β1 = 0.9, β2 = 0.999, = 10 −7 Việc cập nhật tham số theo hướng Mini-batch Gradient Descent, số lượng điểm trong mỗi tập con là 16 Điều kiện dừng là
Bảng 3.1: Số liệu về phương trình Poisson không phụ thuộc thời gian
Số nơ-ron mỗi lớp 8 32 8 32
Số nơ-ron mỗi lớp 8 32 8 32
Mạng lưới có kiến trúc quá đơn giản không đạt được mức độ xấp xỉ tốt với cùng một bộ dữ liệu, trong khi mạng lưới quá phức tạp lại gặp khó khăn trong việc tìm tham số W tối ưu Do đó, kết quả từ những mạng lưới này thường không hiệu quả bằng các mạng lưới có độ phức tạp vừa phải.
Trong cùng một mạng lưới, bộ dữ liệu với mật độ điểm dày hơn sẽ cải thiện sai số L2, mặc dù mức độ cải thiện không đáng kể, nhưng thời gian thực thi sẽ kéo dài hơn.
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING
Phương trình nhiệt phụ thuộc thời gian
Phương trình nhiệt phụ thuộc thời gian có thể viết dưới dạng rút gọn:
Bài viết trình bày một ví dụ chi tiết về miền tính toán Ω là hình vuông đơn vị với t 0 = 0 và T 1 Hàm ngoại lực được xác định là f(t,x) = (1 + 2π²)e^t sin(πx₁) sin(πx₂), trong khi nghiệm ban đầu là u₀(x) = sin(πx₁) sin(πx₂) và điều kiện biên g(t,x) = 0 Nghiệm đúng của bài toán này là u*(t,x) = e^t sin(πx₁) sin(πx₂).
Khi xem xét tham số thời gian t như một chiều không gian trong miền, một điểm dữ liệu sẽ có dạng (x1, x2, t) thuộc [0,1] Tác giả sẽ thực hiện giải toán dựa trên hai bộ dữ liệu khác nhau.
• Bộ dữ liệuΩ 1 d : Lưới vuông 20×20×100 (40000 điểm)
• Bộ dữ liệuΩ 2 d : Lưới vuông 30×30×100 (90000 điểm) và tính sai số L 2 trên bộ dữ liệu gồm 10000 điểm bất kỳ.
Mỗi bộ dữ liệu Ω d được phân chia thành ba phần chính: tập hợp điểm trên biên ∂Ω d, tập hợp điểm bên trong miền Ω in d, và tập hợp điểm tại thời điểm ban đầu t 0, với số lượng điểm ở mỗi phần lần lượt là N b, N in và N 0.
N 0 Hàm mất mát của ví dụ này có dạng
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING trong đó
Mạng lưới tác giả dùng để luyện có số lớp ẩn là 2 hoặc 3, số nơ-ron mỗi lớp là 16 hoặc 32 Hàm kích hoạt ở mỗi lớp ẩn là hàmtanh.
Thuật toán điều chỉnh tham số
Thuật toán điều chỉnh tham số được sử dụng trong nghiên cứu này là Adam, với các tham số η = 0.001, β1 = 0.9, β2 = 0.999 và ε = 10^-7 Việc cập nhật tham số được thực hiện theo phương pháp Mini-batch Gradient Descent, với số lượng điểm trong mỗi tập con là 24 Điều kiện dừng của quá trình tối ưu hóa cũng được xác định rõ ràng.
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING
Bảng 3.2: Số liệu về phương trình Poisson phụ thuộc thời gian
Số nơ-ron mỗi lớp 16 32 16 32
Số nơ-ron mỗi lớp 16 32 16 32
Kết quả sai số L2 cho thấy rằng, tương tự như ví dụ 1, việc điều chỉnh số lớp ẩn trong mạng lưới ảnh hưởng trực tiếp đến hiệu suất Cụ thể, khi số lớp ẩn chỉ có 1, sai số lớn hơn 0.1; với 2 hoặc 3 lớp, sai số giảm nhưng khi tăng lên 4 lớp, sai số lại tăng hơn 0.15 Điều này chứng minh rằng việc tăng số lớp ẩn quá mức sẽ dẫn đến sai số gia tăng Thực nghiệm cho thấy mạng lưới có độ phức tạp vừa phải mang lại kết quả tốt hơn so với mạng lưới quá đơn giản hoặc quá phức tạp.
Trong bài toán này, việc thêm trường thời gian t vào dữ liệu làm tăng đáng kể số lượng dữ liệu so với ví dụ 1, dẫn đến thời gian luyện một bộ W cũng kéo dài hơn rất nhiều.
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING
Phương trình Steady Navier-Stokes
Steady Navier-Stokes là phương trình mô phỏng dòng chảy chất lưu không phụ thuộc vào thời gian Dạng chung của phương trình Steady Navier-Stokes là
∇ ãu= 0 trờn Ω u=g trên ∂Ω trong đó
• ν là hệ số độ nhớt của chất lưu.
• f =f(x)∈R d là ngoại lực trên mỗi đơn vị thể tích.
• u=u(x)∈R d là vận tốc chưa biết của dòng chảy tại điểm x.
• p=p(x)∈Rlà áp suất chưa biết của dòng chảy tại điểm x.
• g =g(x)∈R d là vận tốc của dòng chảy tại các điểm trên biên.
Ví dụ cụ thể tác giả sẽ giải có miền tính toánΩ = [−0.5,0.5] 2 , ngoại lựcf =f(x) f(x 1 , x 2 ) = 0, độ nhớt ν = 0.025, g =g(x) =g(x 1 , x 2 ) có thể tìm ra được dựa vào nghiệm đúng của bài toán.
Nghiệm đúng của bài toán là u ∗ = u ∗ 1 (x), u ∗ 2 (x)
1 4ν 2 + 4π 2 Đây còn gọi là bài toán Kovasznay[56] (được nghiên cứu giải xấp xỉ trong nhiều tài liệu tham khảo).
Tác giả sẽ tiến hành giải bài toán với hai bộ dữ liệu:
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING
• Bộ dữ liệuΩ 1 d : Lưới vuông 20 × 20 (400 điểm)
• Bộ dữ liệuΩ 2 d : Lưới vuông 50 × 50 (2500 điểm) và tính sai số L 2 trên bộ dữ liệu gồm 2000 điểm bất kỳ trong miền Ω.
Mỗi bộ dữ liệu Ω d được phân chia thành hai phần: tập hợp các điểm trên biên ∂Ω d và tập hợp các điểm bên trong miền Ω in d, với số lượng điểm ở mỗi phần lần lượt là N b và N in Hàm mất mát cho ví dụ này được xác định theo một công thức cụ thể.
Mạng lưới tác giả dùng để luyện có số lớp ẩn là 1 hoặc 3, số nơ-ron mỗi lớp là 8 hoặc 32 Hàm kích hoạt ở mỗi lớp ẩn là hàm tanh.
Thuật toán điều chỉnh tham số
Thuật toán tối ưu hóa được sử dụng là Adam với các tham số η = 0.001, β1 = 0.9, β2 = 0.999 và ε = 10^-7 Việc cập nhật tham số được thực hiện theo phương pháp Mini-batch Gradient Descent, với kích thước mỗi tập con là 16 điểm Điều kiện dừng được thiết lập để đảm bảo quá trình huấn luyện hiệu quả.
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING
Bảng 3.3: Số liệu về phương trình Steady Navier-Stokes
Số nơ-ron mỗi lớp 8 32 8 32
Số nơ-ron mỗi lớp 8 32 8 32
(a) nghiệm u dự đoán (b) nghiệm u chính xác
Hình 3.1: Streamline nghiệm u của bài toán Kovasznay
Bài toán Kovasznay, khác với hai ví dụ trước, có thành phần phi tuyến trong phương trình, nhưng phương pháp giải bằng Deep Learning vẫn giữ nguyên Điều này cho thấy một ưu điểm rõ ràng của việc áp dụng phương pháp này trong giải quyết các bài toán phức tạp.
Chương 3 trình bày các ví dụ giải xấp xỉ phương trình đạo hàm riêng bằng Deep Learning, một phương pháp hiệu quả trong việc xử lý các phương trình phi tuyến mà không gặp phải khó khăn.
Phương trình Navier-Stokes
Navier-Stokes [57] là phương trình mô phỏng dòng của chảy chất lưu Phương trình Navier-Stokes cho dòng chảy không nén có dạng rút gọn như sau
∂t + (uã ∇)u−ν∆u+∇p =f (x, t)∈Ωì[0, T], div u = 0 (x, t)∈Ω×[0, T]. cùng với điều kiện ban đầu và điều kiện biên Dirichlet u(x, t 0 ) = u 0 (x) x∈Ω u(x, t) = u D (x, t) (x, t)∈∂Ω×[0, T] trong đó:
• ν là hệ số độ nhớt của chất lưu,
∈R d là vận tốc dòng chảy tại vị trí xở thời điểm t.
• p=p(x, t)∈R là áp suất dòng chảy tại vị trí x ở thời điểm t.
Trong bài viết này, chúng ta sẽ xem xét một bài toán liên quan đến ngoại lực f = f(x, t) = (f1(x, t), f2(x, t), , fd(x, t)) ∈ R d, đại diện cho ngoại lực trên mỗi đơn vị thể tích Hai hàm số cần tìm là u và p Tác giả sẽ giải quyết một ví dụ cụ thể với miền tính toán Ω là hình vuông đơn vị, thời gian T = 10, và hệ số độ nhớt ν = 0.01 Hàm ngoại lực được xác định là f = f(x, t) = f(x1, x2, t) = 0, với điều kiện ban đầu t0 = 0 và u0 = 0.
Ta quy ước biên của miền Ω như sau: biên dưới là b1, biên phải là b2, biên trên là b3và biên trái là b4, hàm u D có dạng
Bài toán này còn gọi là bài toán lid-driven cavity[58].
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING
Hình 3.2: Thí nghiệm hiện tượng cavity
Khác với các ví dụ trước, ví dụ này không có nghiệm chính xác, vì vậy chúng ta sẽ không đánh giá hiệu quả giải toán qua sai số L2 Thay vào đó, chúng ta sẽ trình bày mô phỏng hiện tượng và so sánh các tọa độ đặc trưng.
Sau khoảng 5 giây, hiện tượng này sẽ đạt trạng thái ổn định với một tâm xoáy ở giữa Chúng ta sẽ sử dụng tọa độ của tâm xoáy này để so sánh với tọa độ của các thí nghiệm trước đó, nhằm đánh giá hiệu quả của việc giải toán.
Tác giả sẽ tiến hành giải bài toán với một bộ dữ liệu có mật độ lưới(x, y)là40×40. Thời gian t= 10 cố định.
Bộ dữ liệu Ω d của chúng ta được chia thành ba phần: tập hợp điểm trên biên ∂Ω d, tập hợp điểm bên trong miền Ω in d, và tập hợp điểm tại thời điểm ban đầu t 0, Ω 0 d Số lượng điểm ở mỗi phần lần lượt là N b, N in và N 0 Hàm mất mát của ví dụ này có dạng
CHƯƠNG 3 CÁC VÍ DỤ GIẢI XẤP XỈ PHƯƠNG TRÌNH ĐẠO HÀM RIÊNG BẰNG DEEP LEARNING trong đó
Mạng lưới tác giả được thiết kế với 4 lớp ẩn, mỗi lớp bao gồm 32 nơ-ron Hai lớp ẩn đầu tiên sử dụng hàm kích hoạt sigmoid, trong khi hai lớp ẩn còn lại áp dụng hàm tanh.
Thuật toán điều chỉnh tham số
Trong quá trình cập nhật tham số theo phương pháp Mini-batch Gradient Descent, số lượng điểm trong mỗi tập con được xác định là 48 Thuật toán điều chỉnh tham số được áp dụng là Adam với các tham số β1 = 0.9, β2 = 0.999 và ε = 10^−7 Hệ số η được khởi đầu với giá trị 0.001, và sẽ giảm xuống 10 lần khi đạt điều kiện giảm hệ số Điều kiện để thực hiện việc giảm hệ số η được thiết lập rõ ràng.
Nếu η