Đồ án thiết kế neural network trên FPGA nhận dạng chữ số - ĐHBK Hà Nội

Đồ án thiết kế neural network trên FPGA nhận dạng chữ số viết tay chi tiết. Hướng dẫn kiến trúc mạng, tối ưu phần cứng và triển khai tập dữ liệu MNIST.

Trường đại học

Trường Đại học Bách khoa Hà Nội

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp đại học

2019

71
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan về neural network trên FPGA nhận dạng chữ số viết tay

Đồ án thiết kế neural network trên FPGA nhằm giải quyết bài toán nhận dạng chữ số viết tay bằng cách triển khai mạng nơ-ron tích chập (CNN) trên nền tảng phần cứng khả lập trình. FPGA (Field Programmable Gate Array) cung cấp khả năng song song hóa cao, phù hợp cho các tác vụ xử lý hình ảnh yêu cầu tốc độ cao. Mạng nơ-ron được tối ưu hóa để hoạt động trên dữ liệu ảnh thang độ xám kích thước 28x28 pixel, tương thích với bộ dữ liệu MNIST. Kiến trúc mạng bao gồm lớp tích chập, lớp pooling, lớp fully connected, và lớp softmax. Ưu điểm nổi bật của FPGA là khả năng tái cấu hình linh hoạt, tiêu thụ năng lượng thấp hơn GPU, và độ trễ thấp hơn so với các nền tảng phần cứng khác. Việc triển khai trên FPGA giúp tăng tốc độ xử lý trong thời gian thực, phù hợp cho các ứng dụng nhúng như hệ thống nhận dạng ký tự tự động.

1.1. Nguyên lý hoạt động của mạng nơ ron tích chập

Mạng nơ-ron tích chập (CNN) hoạt động bằng cách trích xuất đặc trưng từ ảnh thông qua các lớp tích chập sử dụng bộ lọc (kernel) kích thước nhỏ. Mỗi lớp tích chập áp dụng phép toán tích chập giữa ảnh đầu vào và bộ lọc, tạo ra các bản đồ đặc trưng (feature maps) phản ánh các đặc trưng cục bộ. Lớp pooling (thường là max-pooling) giảm kích thước không gian bằng cách giữ lại giá trị lớn nhất trong cửa sổ trượt, giúp giảm độ phức tạp tính toán. Lớp fully connected kết nối tất cả các nơ-ron từ lớp trước với lớp sau, thực hiện phân loại dựa trên đặc trưng đã trích xuất. Lớp softmax chuyển đổi đầu ra thành xác suất cho từng lớp đầu ra.

1.2. Lợi ích của FPGA trong xử lý song song

FPGA cho phép triển khai song song hóa mức độ thấp bằng cách cấu hình phần cứng tùy chỉnh cho từng tác vụ. Khác với CPU hay GPU, FPGA không phụ thuộc vào kiến trúc von Neumann, giúp giảm thiểu độ trễ trong truyền tải dữ liệu. Khả năng lập trình lại FPGA cho phép tối ưu hóa kiến trúc mạng nơ-ron theo yêu cầu cụ thể, chẳng hạn như điều chỉnh kích thước bộ nhớ đệm hay cấu hình pipeline. Ngoài ra, FPGA tiêu thụ năng lượng thấp hơn đáng kể so với GPU trong các tác vụ nhận dạng hình ảnh, phù hợp cho các ứng dụng di động hay hệ thống nhúng có giới hạn về nguồn điện.

II. Phân tích thách thức trong thiết kế neural network trên FPGA

Thiết kế neural network trên FPGA đối mặt với nhiều thách thức kỹ thuật, bao gồm hạn chế về tài nguyên phần cứng, độ chính xác của mô hình, và khả năng tối ưu hóa hiệu suất. Tài nguyên trên FPGA (như LUT, flip-flop, khối nhớ) bị giới hạn, đòi hỏi phải tối giản hóa kiến trúc mạng. Độ chính xác của mô hình phụ thuộc vào chất lượng dữ liệu huấn luyện và cấu hình siêu tham số. FPGA cũng gặp khó khăn trong việc triển khai các phép toán phức tạp như nhân ma trận lớn, yêu cầu sử dụng kỹ thuật lượng tử hóa (quantization) để giảm kích thước dữ liệu. Thách thức khác là đảm bảo tốc độ xử lý thời gian thực, đặc biệt khi xử lý ảnh có độ phân giải cao. Ngoài ra, việc tích hợp mạng nơ-ron với các khối phần cứng khác (như bộ nhớ, bộ điều khiển) đòi hỏi kỹ thuật đồng bộ hóa chặt chẽ.

2.1. Giới hạn tài nguyên phần cứng

FPGA có dung lượng tài nguyên phần cứng hữu hạn, bao gồm khối logic (LUT, flip-flop), khối nhớ (BRAM), và khối nhân DSP. Mạng nơ-ron tích chập đòi hỏi nhiều tài nguyên do cần lưu trữ bộ lọc, trọng số, và trạng thái trung gian. Ví dụ, một lớp tích chập kích thước 3x3 với 64 bộ lọc trên ảnh 28x28 tiêu tốn khoảng 16.000 LUT và 32 khối BRAM. Lượng tử hóa trọng số xuống 8 bit giúp giảm 4 lần dung lượng bộ nhớ, nhưng có thể ảnh hưởng đến độ chính xác. Giải pháp tối ưu tài nguyên bao gồm chia sẻ trọng số, sử dụng kiến trúc pipeline, và triển khai đa lõi (multi-core) trên FPGA.

2.2. Độ trễ và tiêu thụ năng lượng

FPGA có ưu điểm về độ trễ thấp nhờ khả năng song song hóa phần cứng, nhưng việc xử lý song song hoàn toàn không phải lúc nào cũng khả thi do phụ thuộc vào kiến trúc mạng. Độ trễ tăng cao khi triển khai các lớp fully connected lớn, do yêu cầu truyền tải dữ liệu qua bus. Tiêu thụ năng lượng phụ thuộc vào tần số clock và mức độ hoạt động của tài nguyên phần cứng. Sử dụng kỹ thuật clock gating giúp giảm tiêu thụ năng lượng bằng cách vô hiệu hóa các khối không hoạt động. Ngoài ra, lượng tử hóa trọng số xuống 4 bit có thể giảm 2-3 lần tiêu thụ năng lượng nhưng cần cân bằng giữa hiệu suất và độ chính xác.

III. Phương pháp triển khai neural network trên FPGA

Phương pháp triển khai bao gồm ba giai đoạn chính: tiền xử lý dữ liệu, thiết kế kiến trúc mạng, và tối ưu hóa phần cứng. Dữ liệu ảnh từ bộ dữ liệu MNIST được chuẩn hóa về thang độ xám 0-1 và điều chỉnh kích thước về 28x28 pixel. Kiến trúc mạng sử dụng mô hình CNN đơn giản gồm hai lớp tích chập (kích thước 3x3, 32 bộ lọc), hai lớp pooling (max-pooling 2x2), và hai lớp fully connected. Mạng được huấn luyện trên CPU bằng thư viện TensorFlow, sau đó lượng tử hóa trọng số xuống 8 bit để triển khai trên FPGA. Phần cứng sử dụng ngôn ngữ SystemVerilog để mô tả kiến trúc mạng ở mức RTL, kết hợp với các khối bộ nhớ (BRAM) và bộ điều khiển (FSMD). Quá trình synthesis và place-and-route được thực hiện bằng tool Quartus Prime của Intel. Kết quả mô phỏng xác nhận mạng hoạt động đúng với độ chính xác 98% trên tập kiểm tra.

3.1. Kiến trúc mạng nơ ron đề xuất

Mạng nơ-ron đề xuất có kiến trúc gồm năm lớp: lớp tích chập Conv1 (32 bộ lọc 3x3), lớp pooling Pool1 (2x2), lớp tích chập Conv2 (64 bộ lọc 3x3), lớp pooling Pool2 (2x2), và hai lớp fully connected (FC1: 128 nơ-ron, FC2: 10 nơ-ron). Lớp đầu vào nhận dữ liệu ảnh 28x28x1, lớp đầu ra trả về xác suất cho 10 chữ số (0-9). Mỗi lớp tích chập sử dụng hàm kích hoạt ReLU, lớp fully connected sử dụng softmax. Kiến trúc này tối ưu cho FPGA nhờ giảm số lượng trọng số so với mạng đầy đủ, trong khi vẫn đảm bảo độ chính xác cao.

3.2. Tối ưu hóa phần cứng bằng lượng tử hóa

Lượng tử hóa trọng số xuống 8 bit giúp giảm dung lượng bộ nhớ từ 32 bit xuống 8 bit, tương đương giảm 4 lần dung lượng. Quá trình lượng tử hóa bao gồm chuyển đổi trọng số từ float32 sang int8, đồng thời điều chỉnh hệ số scale để duy trì độ chính xác. FPGA sử dụng khối nhân DSP để thực hiện phép nhân int8, thay vì sử dụng LUT cho phép nhân float32. Kết quả cho thấy lượng tử hóa 8 bit chỉ giảm 0.5% độ chính xác so với phiên bản float32, trong khi tốc độ xử lý tăng 3 lần. Ngoài ra, việc sử dụng pipeline trong khối nhân DSP giúp giảm độ trễ tổng thể của mạng.

IV. Kết quả thí nghiệm và ứng dụng thực tiễn

Đồ án được triển khai trên FPGA Intel Cyclone V (5CGXFC5C6F23C7N) với tần số clock 100 MHz. Kết quả thí nghiệm cho thấy mạng đạt độ chính xác 98.2% trên tập kiểm tra MNIST, tốc độ xử lý 1.2 ms/ảnh. So sánh với triển khai trên CPU (Intel Core i7-8700K), FPGA có tốc độ nhanh hơn 15 lần và tiêu thụ năng lượng thấp hơn 5 lần. Ứng dụng thực tiễn bao gồm hệ thống nhận dạng biển số xe tự động, hệ thống đọc tài liệu quét, và thiết bị di động hỗ trợ người khiếm thị. FPGA cũng cho phép tái cấu hình linh hoạt để thích ứng với các tác vụ nhận dạng khác. Kết luận chính là FPGA là nền tảng lý tưởng cho các ứng dụng nhận dạng hình ảnh yêu cầu tốc độ cao và tiêu thụ năng lượng thấp.

4.1. Kết quả mô phỏng và thí nghiệm

Mô phỏng chức năng được thực hiện bằng ModelSim, xác nhận mạng hoạt động đúng với đầu vào là ảnh chữ số viết tay. Thí nghiệm trên FPGA đo được thời gian xử lý trung bình là 1.2 ms/ảnh, trong đó 0.8 ms dành cho giai đoạn tiền xử lý, 0.3 ms cho lớp tích chập, và 0.1 ms cho lớp fully connected. Độ chính xác đo được là 98.2% trên tập kiểm tra MNIST, tương đương với triển khai trên CPU. Tiêu thụ năng lượng đo được là 1.2 W, thấp hơn đáng kể so với GPU (15 W) trong cùng điều kiện.

4.2. Hướng phát triển và ứng dụng tương lai

Hướng phát triển bao gồm mở rộng mạng nơ-ron để nhận dạng chữ viết tay đa ngôn ngữ, tích hợp bộ tiền xử lý ảnh thông minh (như cân bằng histogram), và triển khai trên các FPGA có tài nguyên lớn hơn (như Xilinx Zynq). Ứng dụng tương lai bao gồm hệ thống nhận dạng chữ viết tay trong tài liệu y tế, hệ thống hỗ trợ giáo viên chấm bài tự động, và thiết bị IoT cho nhà thông minh. FPGA cũng có thể kết hợp với camera nhiệt để nhận dạng chữ viết tay trong điều kiện ánh sáng yếu. Việc tối ưu hóa kiến trúc mạng bằng học tăng cường (reinforcement learning) cũng là hướng nghiên cứu tiềm năng.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI. Nếu bạn thấy nội dung không chính xác hoặc có vấn đề, vui lòng Báo lỗi nội dung.

04/06/2026
Đồ án thiết kế neural network trên fpga để nhận dạng chữ số viết tay

Trích đoạn nội dung tài liệu

Chương 1. Kết quả của thiết kế đạt yêu cầu kỹ thuật như thế nào đã được trình bày trong chương này. GIỚI THIỆU Trong chương này, các kiến thức tổng quan về Artificial Neural Network, FPGA, FSMD, và kiểm chứng thiết kế sẽ được trình bày. Giới thiệu về Artificial Neural Network 1.

Lịch sử hình thành và phát triển Artificial Neural Network (viết tắt là ANN), thường được gọi tắt Neural Network, là mạng neuron nhân tạo. Neural Network cũng giống như các lĩnh vực khác của khoa học, có lịch sử phát triển trải qua nhiều thăng trầm. Trong cuốn sách online A brief introduction to neural network [1] tác giả đã liệt kê ra một số mốc thời gian trong lịch sử hình thành và phát triển của nó. Neural Network ra đời từ khoảng đầu những năm 1940 và gần như cùng thời điểm với sự ra đời của việc lập trình máy tính điện tử.

Năm 1943, Warren McCulloch và Walter Pitts đã giới thiệu mô hình mạng neuron và cho thấy loại mạng đơn giản này có thể tính được gần chính xác các hàm logic và toán học. Hơn nữa, với sự giúp đỡ của Konrad Zuse, tiền thân của thiết bị điện tử sử dụng Neural Network cũng được bắt đầu phát triển [1]. Hebb xây dựng công thức luật Hebbian, là luật khái quát về quy tắc cơ bản cho quá trình học tập của mạng neuron. Quy tắc này ngụ ý rằng, liên kết giữa hai neuron được củng cố khi cả hai neuron được kích hoạt cùng một lúc.

Hebb đã tin là quy tắc này đúng, nhưng vì không có công trình nghiên cứu về mạng neuron nên ông không thể chứng minh nó [1]. Năm 1957 – 1958, tại MIT, Frank Rosenblatt, Charles Wightman và các đồng nghiệp đã chế tạo thành công máy tính sử dụng mạng neuron, gọi là Mark I perceptron, có khả năng nhận dạng các số đơn giản bằng cảm biến hình ảnh 20x20 điểm ảnh (pixel), với cơ chế là 512 chiết áp điều khiển động cơ, mỗi chiết áp đại diện cho một tham số thay đổi được của mạng [1]. Năm 1959, Frank Rosenblatt đã mô tả các phiên bản khác nhau của perceptron trong mạng neuron, xây dựng công thức và chứng minh được định lý gọi là perceptron convergence theorem. Ông đã mô phỏng các lớp neuron bắt chước võng mạc, các ngưỡng chuyển đổi và một nguyên tắc học tập để điều chỉnh các tham số của các kết nối trong mạng.

[1] Năm 1965, trong cuốn sách Machine Learning của mình, Nils Nilsson đã đưa ra cái nhìn tổng quát về sự tiến triển và thành quả của các công trình nghiên cứu về ANN 2 trong thời kì này. Nó được coi là lý thuyết cơ bản cho việc tự học của các trí thông minh nhân tạo [1]. Khoảng thời gian tiếp theo là khoảng thời gian trầm lặng đối với việc nghiên cứu về Neural Network, bởi tài trợ cho các công trình nghiên cứu này còn hạn chế. Các công bố và hội thảo về lĩnh vực này có ít, chỉ có các nhà nghiên cứu hoạt động riêng lẻ và không có sự trao đổi lẫn nhau [1].

Đến năm 1985, Neural Network bước vào thời kỳ phục hưng khi John Hopfield tìm được lời giải chấp nhận được cho bài toán Travelling Salesman Problem (TSP) sử dụng mạng Hopfield. Nội dung của TSP là: cho danh sách các thành phố và khoảng cách giữa mỗi cặp thành phố, từ thành phố gốc ta cần tìm con đường ngắn nhất có thể đến thăm từng thành phố và trở về thành phố gốc. Đây là một bài toán quan trọng trong lĩnh vực khoa học máy tính [1]. Năm 1986, quy tắc học lan truyền ngược của mạng neuron được phát triển và xuất bản rộng rãi.

Từ đó đến nay, nghiên cứu về Neural Network gần như là bùng nổ với nhiều nghiên cứu không thể liệt kê hết [1]. Nguyên lý hoạt động Artificial Neural Network là thuật ngữ chung chỉ các loại mạng neuron nhân tạo. Qua lịch sử phát triển, các nhà nghiên cứu đã công bố rất nhiều loại mạng neuron nhân tạo khác nhau. Trong phần này, nguyên lý hoạt động được trình bày là nguyên lý chung của Neural Network được giới thiệu bởi tổ chức LSI Design Contest [2].

Não người có rất nhiều neuron, nó nhận tín hiệu đầu vào và tạo tín hiệu đầu ra. Ví dụ như khi tay ta chạm vào một vật nóng, thì đầu vào là nóng được truyền tới tủy sống thông qua các tế bào thần kinh bên trong, và nó sẽ đưa ra đầu ra là phản xạ rụt tay khỏi vật nóng. Neural Network là một mô hình toán học bắt chước hệ thần kinh của con người. Về cơ bản thì Neural Network có 3 lớp, đó là (1) lớp đầu vào, (2) lớp ẩn và (3) lớp đầu ra được minh họa trên Hình 1.

Cấu trúc này được gọi là cấu trúc 3 lớp. Đối với những mạng phức tạp hơn thì có thể có nhiều hơn một lớp ẩn [2].1 Cấu trúc 3 lớp [2] Tín hiệu được đưa vào ở lớp (1) và đi ra ở lớp (3). Trước khi đưa tín hiệu vào (1) thì tại đầu ra chúng ta có một giám sát viên (supervisor). Giám sát viên chính là đầu ra kỳ vọng của mạng với mục tiêu là điều chỉnh các tham số trong mạng sao cho sai lệch giữa đầu ra thực tế (output) và giám sát viên là nhỏ nhất có thể [2].2 Cấu trúc 3 lớp với các tham số [2] Hình 1.2 minh họa một mạng neuron theo cấu trúc 3 lớp với các tham số ứng với từng lớp.

Định nghĩa của các tham số trong hình như sau: 𝑘𝑖 là tín hiệu vào tại lớp đầu vào. 𝑤𝑖𝑗2 là weight nối từ lớp đầu vào đến lớp ẩn. 𝑏𝑖2 là bias của lớp ẩn. 𝑧𝑖2 là đầu vào của lớp ẩn.

𝑎𝑖2 là đầu ra của lớp ẩn. 𝑤𝑖𝑗3 là weight nối từ lớp ẩn đến lớp đầu ra. 𝑏𝑖3 là bias của lớp ẩn. 𝑧𝑖3 là đầu vào của lớp đầu ra.

𝑎𝑖3 là đầu ra của lớp đầu ra. 𝑡𝑖 là giám sát viên với 𝑡1 = 1 và 𝑡2 = 0. Mối liên hệ giữa các tham số trên được biểu diễn theo chiều thuận và chiều nghịch. 5 Theo chiều thuận, ta coi tín hiệu vào tại lớp đầu vào (𝑘𝑖 ), các weight và bias (𝑤𝑖𝑗2 , 𝑏𝑖2 , 𝑤𝑖𝑗3 , 𝑏𝑖3 ) là các số đã biết, mục tiêu là tính đầu ra 𝑎𝑖3 của lớp đầu ra theo các công thức (1.4) [ 3] = [ ] 𝑎2 𝑎(𝑧23 ) Trong công thức (1.4), chúng ta có thể sử dụng bất kỳ hàm nào có khả năng phân biệt và chuẩn hóa để làm hàm kích hoạt (activate function) [2], ví dụ như dùng hàm tansig thì công thức (1.5) 1+ 𝑒 𝑖 Đặt: 𝑘 𝐾 = [ 1] 𝑘2 2 2 𝑤11 𝑤21 2 2 𝑊2 = [𝑤12 𝑤22 ] 2 2 𝑤13 𝑤23 𝑏12 𝐵2 = [𝑏22 ] 𝑏32 𝑧12 𝑍2 = [𝑧22 ] 𝑧32 6 𝑎12 𝐴2 = [𝑎22 ] 𝑎32 3 3 3 𝑤11 𝑤21 𝑤31 𝑊3 = [ 3 3 3 ] 𝑤12 𝑤22 𝑤32 𝑏3 𝐵3 = [ 13 ] 𝑏2 𝑧13 𝑍3 = [ 3 ] 𝑧2 𝑎3 𝐴3 = [ 13 ] 𝑎2 Các công thức (1.9) Với mỗi vector K thứ n đưa vào lớp đầu vào ta sẽ tính được một hàm lỗi bình phương (square error function) như công thức (1.10) 𝐶𝑛 = {(𝑎13 [𝑛] − 𝑡1 [𝑛])2 + (𝑎23 [𝑛] − 𝑡2 [𝑛])2 } 2 Khi đưa n vector vào lớp đầu vào, ta có hàm giá (cost function) 𝐶 là tổng của các hàm lỗi bình phương đã có, như công thức số (1.11), với 𝐶𝑛 tính như công thức (1.11) Từ bây giờ chúng ta bắt đầu xây dựng công thức theo chiều nghịch sử dụng thuật toán lan truyền ngược (backpropagation).

Từ các công thức (1.10), ta thấy C là một hàm của các weight và bias (𝑤𝑖𝑗2 , 𝑏𝑖2 , 𝑤𝑖𝑗3 , 𝑏𝑖3 ). Bởi vậy ta có công thức đạo hàm của C theo các weight và bias đó. 7 Để tính đạo hàm của C theo các weight và bias, ta cần áp dụng quy tắc tính đạo hàm của hàm hợp. Quy tắc đạo hàm của hàm hợp như sau.

Với f là hàm của u và v, tức là f = f(u,v); u và v là hàm của x, tức là u = u(x) và v = v(x); nếu f(u), f(v), u(x), v(x) tồn tại đạo hàm thì ta có: 𝜕𝑓 𝜕𝑓 𝜕𝑢 𝜕𝑓 𝜕𝑣 (1.12) = + 𝜕𝑥 𝜕𝑢 𝜕𝑥 𝜕𝑣 𝜕𝑥 2 Giả sử ta cần tính đạo hàm của C theo 𝑤11 , áp dụng quy tắc đạo hàm của hàm hợp ta có: 𝜕𝐶 𝜕𝐶1 𝜕𝐶2 𝜕𝐶𝑛 (1.17) ( [ ] [ ]) 2 = 𝑎1 𝑛 − 𝑡1 𝑛 ( 𝑤 + 𝑤 ) 𝑘 [𝑛] 𝜕𝑤11 𝜕𝑧13 [𝑛] 11 𝜕𝑧23 [𝑛] 12 𝜕𝑧12 [𝑛] 1 𝜕𝐶 Từ công thức (1.17) ta tính được 2 𝜕𝑤11 2 Theo thuật toán gradient descent, ta cập nhật giá trị mới của 𝑤11 để tối ưu C.18) (𝑛𝑒𝑤 )𝑤11 = (𝑜𝑙𝑑 )𝑤11 −𝜂 2 𝜕𝑤11 Trong công thức (1.18), 𝜂 là một số dương gọi là tốc độ học (learning rate). Chi tiết về thuật toán gradient descent sẽ được trình bày trong phần sau, qua đó sẽ trả lời 2 được câu hỏi rằng tại sao cập nhật 𝑤11 theo công thức (1.18) sẽ tối ưu được C. 8 Để tối ưu C thì các weight và bias khác cũng được cập nhật theo cách tương tự. Sau khi thay đổi, chúng ta lại bắt đầu lại bằng việc đưa K vào và tiếp tục tính toán, cho đến khi đầu ra đạt giá trị gần với giám sát viên nhất [2].

Mỗi lần duyệt qua tất cả các vector K trên toàn bộ dữ liệu được gọi là một epoch [3]. Thuật toán Gradient Descent Trong toán tối ưu, chúng ta thường xuyên phải tìm các giá trị nhỏ nhất của một hàm số. Việc tìm giá trị nhỏ nhất của hàm số phức tạp là không khả thi, nên ta thường tìm các điểm cực tiểu cục bộ (local minimum), và coi đó là một nghiệm cần tìm của bài toán. Các điểm cực tiểu cục bộ là nghiệm của phương trình đạo hàm bằng không.

Tuy nhiên, trong nhiều trường hợp, việc giải phương trình đạo hàm bằng không để tìm nghiệm chính xác cũng là không khả thi, nên cần có hướng giải quyết là tìm nghiệm gần đúng [3]. Hướng tiếp cận phổ biến nhất để giải quyết các bài toán tối ưu là xuất phát từ một điểm được coi là gần với nghiệm của bài toán, sau đó dùng một phép toán lặp để tiến dần đến điểm đạo hàm bằng không [3]. Xét hàm số một biến 𝑓: ℝ → ℝ Hình 1.3 Khảo sát sự biến thiên của một đa thức bậc 2 một biến [3] 9 Trên Hình 1.3 là sự biến thiên của một đa thức bậc 2 một biến. Điểm cực tiểu cục bộ thực sự của 𝑓(𝑥) là 𝑥 ∗ = −2.

Ta dùng thuật toán gradient descent để tìm điểm gần với 𝑥 ∗ nhất.3 ta có quan sát sau đây. Gọi 𝑥𝑡 là một điểm trên đồ thị có được sau t vòng lặp.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ