Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.68 MB, 74 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG </b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">ĐẠI HỌC THÁI NGUYÊN
<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG </b>
( )<i>X</i>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b>DANH MỤC BẢNG BIỂU </b>
Bảng 3.1: Kết quả huấn luyện sử dụng thuật toán giả nghịch đảo ... 48
Bảng 3.2: Kết quả huấn luyện sử dụng thuật toán Quichk_Traning,
Bảng 3.3: Một số kết quả dự báo tại các tọa độ bất kì ... 49
Bảng 3.4: Kết quả huấn luyện sử dụng thuật toán Quick_Training.m ... 55
Bảng 3.5: Kết quả dự báo lớp 12_A0 (Chuyên toán 2021-2022) ... 55
Bảng 3.6: Kết quả huấn luyện sử dụng thuật toán Quick_Training.m ... 57
Bảng 3.7: Kết quả dự báo lớp 12A8 (Chuyên ngữ 2021-2022) ... 58
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>DANH MỤC HÌNH VẼ </b>
Hình 1.1: Mơ hình neural nhân tạo ... 9
Hình 1.2: Neural có một đầu vào ... 9
Hình 1.3: Mơ hình neural nhiều đầu vào ... 10
Hình 1.4: Mơ hình mạng neural một lớp ... 11
Hình 1.5: Mơ hình mạng neural 3 lớp ... 12
Hình 1.7: Hàm biến đổi Hardlimit ... 14
Hình 1.8: Hàm biến đổi Linear ... 14
Hình 1.9: Hàm biến đổi Log – Sigmoid ... 15
Hình 2.1: Mạng neural truyền thẳng 3 lớp ... 28
Hình 2.2: Mơ hình mạng Neural RBF 1 đầu vào 1 đầu ra ... 31
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">Trong các mơ hình tốn học mơ tả các bài tốn thực tế, mơ hình bài tốn xấp xỉ hàm số là một bài tốn có tầm quan trọng đặc biệt trong lĩnh vực tính tốn xấp xỉ trên các bộ dữ liệu lớn bởi vì rất nhiều các bài toán trong thực tế (Kinh tế, môi trường, dự báo, tự động hóa, trí tuệ nhân tạo ..) đều xuất phát từ đầu vào là các bộ số liệu rời rạc được đo đạc bằng các phương pháp hiện đại tại các thời điểm khác nhau, các bộ dữ liệu này được đưa vào hệ thống và thông qua quá trình tính tốn của hệ thống để đưa ra các kết luận mang tính quyết định đến hoạt động của hệ thống tại các thời điểm tiếp sau. Các bộ số liệu ban đầu đó thường được gọi là các mốc nội suy. Để giải quyết bài toán trên, ta cần xác định các hàm số xấp xỉ trên bộ dữ liệu ban đầu, từ đó cho phép ta xác định được giá trị của dữ liệu tại các điểm bất kì của hệ thống.
Trong trường hợp khi các mốc nội suy (x<sub>k</sub>,y<sub>k</sub>), k=1,2,…N là các giá trị thuộc không gian một chiều (ta thường gọi là bài toán nội suy hàm 1 biến số) đã được nghiên cứu nhiều như các phương pháp bình phương bé nhất, đa thức nội suy Lagrange, Neuton, lý thuyết hàm ghep trơn... Tuy nhiên trong trường hợp tổng quát khi các mốc nội suy (X<sub>k</sub>,Y<sub>k</sub>), k=1,2,..,N là các vecto trong các khơng gian nhiều chiều (Bài tốn xấp xỉ hàm nhiều biến) thì bài tốn xác định hàm xấp xỉ trở nên rất phức tạp.
Để giải quyết mơ hình trên, đã có rất nhiều các phương pháp được áp dụng, điển hình như các phương pháp đại số xác định chính xác các hàm nội suy đa thức hoặc các phương pháp hồi quy bội, phương pháp trung bình phương,… Tất cả các phương pháp đều đưa đến mơ hình chung là giải quyết bài toán cực trị hàm số nhiều biến số. Tuy nhiên nhược điểm của tất cả các phương pháp trên đều đòi hỏi khối lượng tính tốn là rất lớn, không thuận tiện khi bộ dữ liệu ban đầu là rất lớn.
Với sự xuất hiện của mơ hình tính tốn mới là mơ hình mạng neural đã cho phép các nhà khoa học xây dựng nên một cơng cụ tính tốn mềm dẻo, linh hoạt với độ phức tạp thấp, mô hình tính tốn đơn giản nhưng lại đạt được hiệu quả rất cao. Đặc biệt dựa trên các thuật toán huấn luyện mạng neural với tốc độ hội tụ nhanh đã
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">cung cấp cho các nhà khoa học một công cụ mới để giải quyết các bài toán tối ưu một cách hiệu quả.
Nội dung chính của luận văn là tìm hiểu về mơ hình mạng neural tổng qt và đặc biệt là mạng neural RBF cùng các thuật toán huấn luyện để giải quyết bài toán xấp xỉ hàm nhiều biến số. Cài đặt và kiểm tra tính hiệu quả của các thuật tốn. Từ đó nghiên cứu hai mơ hình ứng dụng của bài tốn nội suy: Bài tốn nghiên cứu mơ hình đánh giá khí thải tại các khu cơng nghiệp và bài tốn dự báo kết quả điểm thi tốt nghiệp phổ thông trung học.
Cấu trúc luận văn gồm 3 chương với những nội dung như sau:
<b>Chương 1: Trình bày một số kiến thức cơ bản được sử dụng trong luận văn bao </b>
gồm: Một số kiến thức về Đại số tuyến tính, Mơ hình bài toán tối ưu và thuật toán Gradient giải bài tốn tối ưu khơng ràng buộc. Mơ hình mạng Neural truyền thẳng và một số thuật toán huấn luyện mạng trên cơ sở lý thuyết đại số tuyến tính và lý thuyết tối ưu.
<b>Chương 2 Trình bày mơ hình bài tốn nội suy hàm số nhiều biến số và mơ hình </b>
mạng RBF bao gồm: Bài toán nội suy hàm nhiều biến số và một số tiếp cận về phương pháp xây dựng hàm nội suy nhiều biến số. Khái niệm về hàm cơ sở xun tâm, hàm RBF và mơ hình mạng RBF. Bài toán huấn luyện mạng RBF và một số thuật toán huấn luyện mạng RBF (Thuật toán Hebb, Giả nghịch đảo, thuật toán phân cụm K_Mean, thuật toán huấn luyện Quick_training, Full_training,…)
<b>Chương 3 Trình bày ứng dụng mạng RBF để xây dựng hàm nội suy giải quyết </b>
hai bài toán thực tế, đó là bài tốn dự báo ơ nhiễm mơi trường và bài tốn dự báo điểm thi tốt nghiệp trung học phổ thông. Tiến hành xây dựng các chương trình phần mềm dự báo trên mơi trường Matlab và test kiểm tra các phần mềm trên các bộ dữ liệu thu thập trong thực tế.
Các thuật tốn sẽ được kiểm tra độ chính xác bằng các chương trình lập trình trên mơi trường Matlab và thực nghiệm trên máy tính PC.
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">Trong chương này, luận văn sẽ trình bày một số kiến thức cơ bản về cấu trúc mạng neural truyền thẳng một lớp và nhiều lớp, mơ hình bài tốn huấn luyện mạng và một số thuật toán huấn luyện mạng trên cơ sở lý thuyết đại số tuyến tính và lý
<b>thuyết tối ưu. Các kiến thức được tham khảo trong các tài liệu [1][2][4][5][6]. 1.1. Một số kiến thức về đại số tuyến tính </b>
<i>trong đó Σ là phép lấy tổng và n là số chiều của không gian vector. </i>
+ Chuẩn trong không gian Euclide n chiều thường được xác định bởi công thức
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><b>Thuật toán Gram-Schmidt </b>
Xét hệ vecto độc lập tuyến tính {X ,<sub>1</sub> <i>X</i><sub>2</sub>,...,<i>X<sub>n</sub></i>}, giả sử rằng hệ chưa là hệ trực chuẩn, ta tìm cách biến đổi hệ vecto trên về hệ trực chuẩn {V ,<sub>1</sub> <i>V</i><sub>2</sub>,...,<i>V<sub>n</sub></i>} qua một số hữu hạn bước.
Khi đó ta có thể sử dụng phương pháp biến đổi theo ý tưởng sau đây:
+ Xuất phát <i>V</i><sub>1</sub> <i>X</i><sub>1</sub>. Để nhận được vector trực giao <i>V</i><sub>2</sub>, ta sử dụng <i>X</i><sub>2</sub> nhưng trừ bớt đi một phần của <i>X</i><sub>2</sub>theo hướng của <i>V</i><sub>1</sub>: <i>V</i><sub>2</sub> <i>X</i><sub>2</sub><i>aV</i><sub>1</sub> với a được chọn sao cho <i>V</i><sub>2</sub> trực giao với <i>V</i><sub>1</sub>. Điều này đòi hỏi:
<i>+ Tương tự, để nhận được vector trực giao thứ k ta sử dụng X<sub>k</sub></i> nhưng trừ bớt đi một phần của <i>X<sub>k</sub></i>theo hướng của <i>V<sub>k</sub></i><sub></sub><sub>1</sub> tức là
Xuất phát từ các bước trên, ta xây dựng được thuật toán Gram-Schmidt cho phép biến đổi một hệ vecto độc lập tuyến tính bất kỳ về hệ trực chuẩn như sau
<b>Thuật toán </b>
Input: {X ,<sub>1</sub> <i>X</i><sub>2</sub>,...,<i>X<sub>n</sub></i>} là hệ độc lập tuyến tính<sub> </sub> Input: {V ,<sub>1</sub> <i>V</i><sub>2</sub>,...,<i>V<sub>n</sub></i>} là hệ trực chuẩn
<b>Bước 1: Khởi động </b>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14"><i><b>Định nghĩa 1.4 (Ma trận liên hợp A</b></i><small>*</small> )
<i>Cho ma trận A=(A<sub>ij</sub>) là ma trận vng cấp n, kí hiệu B<sub>ij</sub></i> định thức con của ma
<i>trận A khi bỏ đi hàng j và cột thứ i của ma trận A. Khi đó giá trị D<sub>ij</sub>=(-1)<sup>i+j</sup>det(B<sub>ij</sub>) </i>
<i>được gọi là phần bù đại số của phần tử A<sub>ij</sub>. Ma trận A*=(Dij) được gọi là ma trận liên hợp của ma trận A. </i>
<i><b>Định nghĩa 1.5 (Ma trận giả nghịch đảo) </b></i>
<i>Cho ma trận A là ma trận bất kì, ta định nghĩa ma trận giả nghịch đảo A<sup>+</sup></i> là ma
- Giả nghịch đảo của giả nghịch đảo chính là ma trận ban đầu:
- Phép lấy giả nghịch đảo giao hoán với phép chuyển vị:
- Phép lấy giả nghịch đảo giao hoán với phép liên hợp:
<i>- Giả nghịch đảo của tích của một đại lượng vơ hướng với A là tích của nghịch đảo của đại lượng vơ hướng đó với A<small>+</small></i>:
Nhận xét: Xuất phát từ định nghĩa và các hệ quả, khi đó dễ ràng xác định được với A là một ma trận bất kì thì ma trận A+ được xác định bởi cơng thức
Bài tốn tối ưu tổng quát được phát biểu như sau: Cực đại hóa (cực tiểu hóa) hàm: <i>f X</i>( )<i>m</i>ax(min)
Với các điều kiện:
<small>( ),</small>
<i><small>g X</small></i> <small></small><i><small>b i</small></i><small></small><i><small>J</small></i> ;<i><small>g</small><sub>j</sub></i><small>(</small><i><small>X</small></i><small>)</small><i><small>b</small><sub>j</sub></i><small>,</small><i><small>j</small></i><small></small><i><small>J</small></i><sub>2</sub>;<i><small>g</small><sub>k</sub></i><small>( )</small><i><small>X</small></i> <small></small><i><small>b k</small><sub>k</sub></i><small>,</small><i><small>J</small></i><sub>3</sub>; (1.4) trong đó <i><small>f X</small></i><small>( )</small> được gọi là hàm mục tiêu, Các điều kiện (1.4) được gọi là các điều kiện ràng buộc,<i>X</i> ( ,<i>x x</i><sub>1</sub> <sub>2</sub>,...,<i>x<sub>n</sub></i>) là véc tơ thuộc không gian <i><small>n</small></i>
<i>R</i> . Tập các véc tơ <i><small>X</small></i>
thỏa mãn hệ ràng buộc lập nên một miền <i><small>D</small></i> được gọi là miền phương án, mỗi điểm
<i><small>X</small></i><small></small><i><small>D</small></i> gọi là một phương án. Một phương án <small>*</small>
<i><small>X</small></i> <small></small><i><small>D</small></i> làm cho hàm mục tiêu <i><small>f X</small></i><small>( )</small> đạt max (min) được gọi là phương án tối ưu.
Mục đích chính của việc giải bài toán tối ưu là cần xây dựng các phương pháp xác định phương án tối ưu với tốc độ nhanh nhất. Một trong những phương pháp thường sử dụng trong phương pháp số là tìm cách xây dựng các dãy lặp các phương án <i>X X</i><sub>0</sub>, <sub>1</sub>,...,<i>X<sub>n</sub></i>,.. để sao cho dãy lặp hội tụ đến nghiệm tối ưu với tốc độ nhanh nhất. Sau đây chúng ta sẽ trình bày cơ sở của phương pháp lặp gradient hay thường gọi là phương pháp đường dốc nhất.
<i><b>1.2.2. Khái niệm về gradient và đạo hàm hướng Định nghĩa 1.5 (Vecto gradient) </b></i>
<i>Gradient của hàm f(X) là một vectơ có các thành phần là đạo hàm riêng </i>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><i><b>1.4.4 Thuật toán Gradient </b></i>
Xét bài toán tối ưu không ràng buộc tổng quát:
min <i>f X</i> , <i>X</i> <i>x x</i> ,...<i>x<sub>n</sub></i> <i>R<sup>n</sup></i>
<i><b>Định nghĩa 1.6: (Hướng giảm) </b></i>
<i>Ta gọi vector d là hướng giảm của hàm </i>
<i>f X</i>
Khi đó giả sử hàm <i>fkhả vi tại X và </i>
Mục đích chính của phương pháp lặp giải bài toán
min <i>f X</i> , <i>X</i> <i>x x</i> ,...<i>x<sub>n</sub></i> <i>R<sup>n</sup></i> là cần xây dựng một dãy lặp
<i>X</i> để sao cho
<i>khi đi theo dãy lặp đó thì giá trị của hàm f(X) giảm dần. Như vậy trong quá trình </i>
xây dựng dãy lặp, nếu ta chọn theo hướng là hướng đường dốc nhất thì hiển nhiên
<i>tốc độ giảm của hàm f(X) sẽ là nhanh nhất tức là tốc độ hội tụ là nhanh nhất. Xuất </i>
phát từ cơ sở toán học trên, để giải bài tốn tối ưu hóa khơng ràng buộc nhiều biến số, người ta thường sử dụng thuật toán gradient như sau:
<b>Thuật toán gradient </b>
<i><b>Bước 0: Chọn </b></i>
<i><b>Bước 2: Xác định giá trị bước lặp tiếp sau theo công thức </b></i>
+ Thuật toán chỉ xác định được nghiệm tối ưu địa phương, do đó để xác định được nghiệm tối ưu tồn cục, chúng ta cần thực hiện thuật tốn nhiều lần với vecto
<i>xuất phát X<small>(0)</small></i> khác nhau hoặc kết hợp với các phương pháp tính tốn mềm khác.
<b>1.3. Mơ hình mạng Neural </b>
Mạng neural nhân tạo (Artificial Neural Netwworks) được xây dựng dựa trên mô hình cấu trúc của bộ não con người, nguyên nhân thúc đẩy nghiên cứu mạng neural xuất phát từ việc mô phỏng sinh học, đặc biệt là mô phỏng neural thần kinh. Với khoảng 10<small>12</small>
neural ở não người, mỗi neural có thể nhận hàng vạn tín hiệu từ các khớp thần kinh và được coi là một cơ chế sinh học phức tạp nhất. có khả năng giải quyết những vấn đề như: nghe, nhìn, nói, hồi ức thông tin, phân biệt các mẫu mặc dù dữ liệu bị méo mó, thiếu hụt. Não thực hiện những nhiệm vụ như vậy bởi có những phần tử tính gọi là neural. Não phân bổ việc xử lý thông tin cho hàng tỷ neural có liên quan, điều khiển liên lạc giữa các neural. Neural không ngừng nhận và truyền thông tin lẫn nhau. Cơ chế hoạt động của neural bao gồm: Tự liên kết, tổng quát hoá và tự tổ chức. Các neural liên kết với nhau thành mạng, mỗi mạng gồm hàng vạn các phần tử neural khác nhau, mỗi phần tử neural có khả năng liên kết với hàng ngàn các neural khác. Vì vậy các nhà khoa học tìm cách xây dựng các mơ hình tính tốn mới dựa trên mơ hình tương tự như neural trong não người. Sau đây chúng ta nghiên chi tiết các mơ hình.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18"><i><b>1.3.1 Mơ hình neural nhân tạo </b></i>
Một neural nhân tạo phản ánh các tính chất cơ bản của neural sinh học và được mô phỏng dưới dạng sau:
<b>Hình 1.1: Mơ hình neural nhân tạo </b>
- Đầu vào gồm R tín hiệu p<sub>i </sub> ( i=1,2, …, R). - Đầu ra là tín hiệu a.
- Trạng thái bên trong của neural được xác định qua bộ tổng các đầu vào có trọng số w<small>i</small> (i=1,2, …, R) đặc trưng cho tính liên kết của các neural.
- Đầu ra a của neural được xác định qua hàm f nào đó được xác định bởi công thức a = f(
<i>Trong đó b là tín hiệu ngưỡng. Thường kí hiệu net = </i>
Thường chúng ta phân loại neural thành 2 loại
<i> Neural có một đầu vào </i>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">Neural chỉ có 1 giá trị đầu vào kí hiệu là p, một giá trị ngưỡng kí hiệu là b. Hoạt động của neural như sau: đầu vào p được nhân với một trọng số w rồi gửi đến bộ tổng, qua ngưỡng b ta thu được tín hiệu tổng hợp n. Tín hiệu tổng hợp n được truyền qua một hàm biến đổi tín hiệu f, ta thu được đầu ra a. Như vậy đầu ra a của neural được xác định như sau:
<b>Hình 1.3: Mơ hình neural nhiều đầu vào </b>
Neural có R đầu vào kí hiệu là p<small>1</small>, p<sub>2</sub>, …, p<small>R</small> tương ứng với các trọng số w<sub>1</sub>, w<sub>2</sub>, …, w<sub>R</sub> của ma trận trọng số W. Tổng hợp tín hiệu n được tính theo cơng thức:
n = w<sub>1</sub>p<sub>1 </sub>+ w<sub>2</sub>p<sub>2</sub> + … + w<sub>R</sub>p<sub>R</sub> + b
Đưa vào các kí hiệu: W = (w<small>1.1</small>, w<sub>1.2</sub>, …, w<small>1.R</small>), p = (p<sub>1</sub>, p<sub>2</sub>, …,p<small>R</small>),
Khí đó cơng thức tính tín hiệu tổng hợp được viết dưới dạng tích vơ hướng n = Wp<sup>T</sup> + b
Khi đó đầu ra của Neural được xác định theo công thức a = ƒ(wp<small>T</small> + b)
<i><b>1.3.2. Mạng Neural nhân tạo </b></i>
<i><b>Định nghĩa 1.7: Mạng neural nhân tạo là tập hợp các neural nhân tạo được liên kết </b></i>
với nhau theo một cấu trúc liên kết nào đó. Thơng qua các kiểu liên kết, chúng ta có thể phân loại mạng Neural như sau:
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20"><i>1.3.2.1 Mạng Neural 1 lớp </i>
Xuất phát từ cấu trúc của 1 neural nhân tạo, ta kết hợp S neural với nhau thành một lớp được gọi là mạng neural 1 lớp (Hình 1.4).
Khi đó cấu trúc mạng neural 1 lớp bao gồm: + Đầu vào là vecto p=(p<sub>1</sub>,p<sub>2</sub>,…,p<sub>R</sub>) + Vecto ngưỡng b=(b<sub>1</sub>,b<sub>2</sub>,…,b<sub>S</sub>)
+ Ma trận trọng số w=(w<sub>ij</sub>) i=1..R; j=1..S. + Hàm biến đổi tín hiệu f
<b>Hoạt động của mạng: </b>
Mỗi thành phần tín hiệu đầu vào p<small>k</small> đều được truyền đến S neural cùng một lúc thông qua các vecto trọng số tương ứng w<sub>k</sub>=(w<sub>k,1</sub>,w<sub>k,2</sub>,…w<sub>k,S</sub>). Neural thứ k sẽ xác định tín hiệu tổng hợp n<small>k</small> tương ứng và thông qua hàm biến đổi f sẽ xác định giá trị đầu ra a<sub>k</sub> tương ứng.
Kí hiệu: a=(a<sub>1</sub>,a<sub>2</sub>,…,a<sub>s</sub>) khi đó tín hiệu đầu ra của mạng qua tín hiệu đầu vào p, tín hiệu ngưỡng b và ma trận trọng số qua công thức biểu diễn ma trận và vecto
a= f(wp+b)
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><b>Nhận xét: </b>
+ Thơng thường thì số tín hiệu đầu vào R sẽ khác với số tín hiệu đầu ra S tức là RS.
+ Mạng neural 1 lớp chính là một hệ thống tính tốn cho phép biến đổi hệ vecto đầu vào p thành hệ vecto đầu ra a thông qua các giá trị trung gian là ma trận trọng số w, vecto ngưỡng b và hàm biến đổi f.
<i>1.3.2.2 Mạng neural nhiều lớp </i>
Từ cấu trúc của mạng neural 1 lớp, chúng ta có thể kết hợp nhiều mạng 1 lớp để lập nên mạng nhiều lớp. Trong liên kết mạng nhiều lớp, bắt buộc phải thỏa mãn một số yêu cầu sau đây:
- Một neural của lớp này chỉ được kết nối với các neural của lớp tiếp theo. - Không cho phép các liên kết giữa các neural trong cùng một lớp, hoặc từ
neural lớp dưới lên neural lớp trên.
- Không cho phép các liên kết neural nhảy qua một hay nhiều lớp.
Cấu trúc tổng qt của mơ hình mạng nhiều lớp được mô tả thông qua mô
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">+ Đầu ra của các lớp lần lượt kí hiệu là a<small>1</small>, a<sup>2</sup>, …, a<small>n</small>
+ Đầu vào của mạng cũng là đầu vào lớp thứ nhất là vecto p=(p<sub>1</sub>,p<sub>2</sub>,…,p<sub>R</sub>) Hoạt động của mạng như sau:
- Xuất phát từ vecto đầu vào lớp thứ nhất là p, thông qua trọng số W<sup>1</sup>, ngưỡng b<sup>1</sup> , ta tổng hợp được tín hiệu n<sup>1</sup>. Qua hàm biến đổi f<small>1</small>, ta thu được vecto đầu ra của lớp thứ nhất là a1. Khi đó
a<sup>1</sup>=f<sup>1</sup>(W<sup>1</sup>p+b<sup>1</sup>)
- Lấy vecto a<sup>1</sup> làm vecto tín hiệu đầu vào của lớp thứ 2, tương tự, ta thu được vecto tín hiệu đầu ra của lớp thứ 2 là a<small>2</small>. Khi đó
a<sup>2</sup>=f<sup>2</sup>(W<sup>2</sup>a<sup>1</sup>+b<sup>2</sup>)= f<sup>2</sup>(W<sup>2</sup> f<sup>1</sup>(W<sup>1</sup>p+b<sup>1</sup>) +b<sup>2</sup>) ………
- Lấy vecto a<sup>k</sup> làm vecto tín hiệu đầu vào của lớp thứ k+1, tương tự, ta thu được vecto tín hiệu đầu ra của lớp thứ k+1 là a<small>k+1</small>. Khi đó
a<sup>k+1</sup>=f<sup>k+1</sup>(W<sup>k+1</sup>a<sup>k</sup>+b<sup>k+1</sup>)= f<sup>k+1</sup>(W<sup>k+1</sup> f<sup>k</sup>(W<sup>k</sup>f<sup>k-1</sup>(….+b<small>1</small>))). k=2,…,n-1 Cuối cùng, ta thu được tín hiệu đầu ra của mạng n lớp là vecto
a<sup>n</sup>=f<sup>n</sup>(W<sup>n</sup>a<sup>n-1</sup>+b<sup>n</sup>)= f<sup>n</sup>(W<sup>n</sup> f<sup>n-1</sup>(W<sup>n-1</sup>f<sup>n-1</sup>(….+b<small>1</small>))).
Trong cấu trúc mạng nhiều lớp trên, lớp thứ nhất được gọi là lớp vào, lớp cuối cùng được gọi là lớp ra, các lớp từ 2 đến n-1 được gọi là các lớp ẩn.
<b>Nhận xét: </b>
+ Thơng thường thì số tín hiệu đầu vào R sẽ khác với số tín hiệu đầu ra của các lớp và đồng thời số neural của các lớp là khác nhau.
+ Tương tự như mạng 1 lớp, mạng neural n lớp cũng chính là một hệ thống tính tốn cho phép biến đổi hệ vecto đầu vào p thành hệ vecto đầu ra a<sup>n</sup> thông qua
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">các giá trị trung gian là các ma trận trọng số w, các vecto ngưỡng b và hàm biến đổi f của lần lượt các lớp.
1.3.3 <i>Hàm biến đổi tín hiệu </i>
Tùy theo yêu cầu của tín hiệu đầu ra của hệ thống, trong các mạng neural, người ta thường sử dụng các hàm biến đổi tín hiệu như sau:
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Mạng nơron với hàm biến đổi như trên được sử dụng trong mạng ADALINE
<b>Hình 1.9: Hàm biến đổi Log – Sigmoid </b>
Hàm Log – Sigmoid Logsig(n) = 1/(1+e<sup>n</sup>)
<b>1.4 Mơ hình huấn luyện đối với mạng neural </b>
<b>Đặt vấn đề: Như chúng ta đã phân tích, mạng neural là một hệ thống cho phép biến đổi vecto tín hiệu đầu vào p thành vecto tín hiệu đầu ra a thông qua các giá trị trung gian là ma trận trọng số W và vecto ngưỡng b. Một vấn đề đặt ra là đối với hệ </b>
thống tính tốn này, nếu chúng u cầu một đầu ra mong muốn cho trước thì cần
<b>hiệu chỉnh các giá trị trung gian W và b như thế nào? Khi đó q trình hiệu chỉnh W và b để mạng đạt được đầu ra mong muốn được gọi là quá trình huấn luyện </b>
mạng hay cũng gọi là quá trình học của mạng.
Bài toán huấn luyện mạng có giám sát (có mẫu học) được đặt ra như sau: Cho trước R cặp tập mẫu tín hiệu vào:
<i>T</i> <i>ttt) là ma trận tín hiệu mẫu (đầu ra mong muốn). </i>
<i>Khi đưa một tín hiệu vào là p<small>(k)</small></i> vào đầu vào của mạng
<i>được tín hiệu a<small>(k)</small></i>
tương ứng. Khi đó tổng hợp tất cả các tín hiệu đầu vào, ta thu
<i>được tín hiệu đầu ra là ma trận A=(a<small>(1)</small></i>
<i>,.a<sup>(2)</sup>, ...,a<sup>(R)</sup>). </i>
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25"><i>Đặt hàm E</i> <i>T</i><i>A</i> được gọi là hàm năng lượng của mạng. Khi đó q trình
<i>huấn luyện mạng là quá trình hiệu chỉnh ma trận trọng số W và ngưỡng b để sau cho hàm năng lượng E đạt giá trị nhỏ nhất tức là sai lệch giữa đầu ra A và mẫu T đạt </i>
giá trị nhỏ nhất.
<i>Do A=f(WP+b) nên E</i> <i>T</i><i>f</i>(W<i>p b</i> , từ đó chúng ta thu được bài tốn tối ưu hóa như sau:
<i>Hãy xác định W và b để hàm năng lượng </i>
Như vậy, bài tốn q trình huấn luyện mạng neural chính là q trình tìm lời
<i>giải của bài tốn tìm cực trị của hàm năng lượng E với các biến số là các phần tử </i>
của ma trận W và tọa độ của vecto b.
<b>1.5 Một số quy tắc học với mạng truyền thẳng </b>
<i><b>1.5.1 Luật học trực chuẩn HEBB </b></i>
Chúng ta xét mạng 1 lớp trong trường hợp đặc biệt là khơng có ngưỡng b và
<i>hàm biến đổi f là hàm đồng nhất. Khi đó với vecto đầu vào là P và ma trận trọng số W thì đầu ra của mạng được xác định bởi công thức : A=WP </i>
Giả sử tập các vecto đầu vào
<i>Khi đó có thể chứng minh rằng nếu ta chọn ma trận trọng số theo cơng thức W=TP<sup>T</sup>thì với mọi đầu hệ vecto đầu vào T thì hệ vecto đầu ra A sẽ luôn luôn trùng với đầu vào tức là hàm năng lượng E=0. </i>
<i><b>1.5.2 Thuật toán HEBB_Gram_schmidt </b></i>
<i>Xét mạng 1 lớp trong trường hợp đặc biệt là khơng có ngưỡng b và hàm biến đổi f là hàm đồng nhất. </i>
Chúng ta xét trường hợp khi hệ vecto
, ,..., <i><sup>R</sup></i>
<i>P</i> <i>ppp</i> đầu vào không phải là hệ trực chuẩn. Khi đó chúng ta có thể sử dụng quy tắc Gram_schmidt để
<i>chuyển hệ P về hệ trực chuẩn từ đó áp dụng thuật toán HEBB trực chuẩn </i>
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><b>Thuật toán </b>
Input:
Là ma trận mẫu học.
Output: ma trận trọng số W để hàm năng lượng E đạt Min
<i><b>// Thực hiện thuật toán Gram_Schmid chuyên hệ P về trực chuẩn </b></i>
<i><b>Bước 5 : Xác định đầu ra của mạng A=WP </b></i>
<b>Bước 6 : Xác định giá trị hàm năng lượng </b>
<i><b>1.5.3 Thuật toán giả nghịch đảo </b></i>
<i>Chúng ta vẫn xét mạng 1 lớp trong trường hợp đặc biệt là khơng có ngưỡng b và hàm biến đổi f là hàm đồng nhất. </i>
Giả sử hệ vecto đầu vào
, ,..., <i><sup>R</sup></i>
<i>P</i> <i>ppp</i> <b> là hệ vecto bất kỳ. ta xác định </b>
<i>ma trận giả nghịch đảo theo cơng thức P<small>+</small>=(P<sup>T</sup>P)<sup>-1</sup>P<sup>T</sup></i>
Khi đó có thể chứng minh rằng nếu ta chọn ma trận trọng số theo cơng thức
<i>W=TP<sup>+</sup>, thì giá trị của hàm năng lượng E của mạng đạt giá trị bé nhất tức là sai số giữa đầu ra A và mẫu học T đạt giá trị nhỏ nhất. </i>
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27"><i><b>Bước 3 : Xác định đầu ra của mạng A=WP </b></i>
<b>Bước 4 : Xác định giá trị hàm năng lượng </b>
<b>Bước 5: Output W Nhận xét chung </b>
+ Các thuật toán dạng đại số tuyến tính chỉ áp dụng cho mạng 1 lớp dạng đặt biệt tức là không xét ngưỡng b và hàm biến đổi là đồng nhất. Sai số giữa đầu ra A và mẫu học T đạt được là rất nhỏ (Khoảng 10<small>-25</small>).
+ Trong các thuật tốn ln ln sử dụng các phép tốn về tích vecto với ma trận, tính các giá trị của ma trận nghịch đảo nên khi số chiều lớn thì khối lượng tính toán của các thuật toán là rất lớn.
+ Trong các thuật toán bắt buộc phải xác định đầy đủ và chính xác mẫu học T ngay từ đầu thuật tốn (Điều này là khơng phù hợp với thực tế)
+ Các thuật toán trên có thể cài đặt đơn giản bằng ngơn ngữ lập trình Matlab hoặc các ngơn ngữ lập trình khác.
<i><b>1.5.4 Thuật tốn LMS (Least Mean Square) </b></i>
Thuật toán LMS là thuật toán giải bài toán tối ưu <i>E</i> <i>T</i> <i>f</i>(W<i>p b</i> <i>Min</i>
dựa trên tư tưởng xây dựng các dãy lặp
W <i><sup>k</sup><sup>n</sup></i>; <i>b<sup>k</sup><sup>n</sup></i> trên cơ sở của thuật toán gradient hội tụ nhanh nhất đến nghiệm tối ưu.
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">Sử dụng thuật tốn gradient, khi đó các giá trị của trọng số W và ngưỡng b trên từng bước lặp sẽ được xác định bởi các công thức:
Sử dụng các cơng thức tính đạo hàm riêng của hàm năng lượng E đối với các biến tương ứng, ta thu được các cơng thức:
Trong đó
Xuất phát từ các cơ sở toán học trên, thuật tốn LMS được mơ tả chi tiết như sau:
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29"><i><b>1.5.5 Thuật toán lan truyền ngược MLP </b></i>
Trong trường hợp có rất nhiều mẫu học {P(k), T(k)}, k=1, 2, … mà mạng một lớp khơng thể có được tri thức thơng qua việc học các mẫu đó, tức là thuật tốn xác định ma trận trọng số W và ngưỡng b là không hội tụ. Người ta phải sử dụng mạng nhiều lớp (MLP) và đặc biệt mạng MLP này phải có quan hệ phi tuyến không chỉ nằm riêng ở lớp neural đầu ra.
Tư tưởng: Từ một mẫu học cụ thể {P(k), T(k)} và các trọng số đã có của mạng, chẳng hạn như W(k), người ta xác định đầu ra thực A(k) của lớp cuối cùng. So sánh với mẫu học T(k), ta hiệu chỉnh trong số lớp cuối thành W(k+1). Tiếp tục từ trọng số mới W(k+1) của lớp cuối cùng, người ta lại tiếp tục hiệu chỉnh trọng số của các lớp phía trước cho đến trọng số của lớp đầu tiên. Qua trình trên được gọi là quá trình lan truyền ngược.
Đối với mạng nhiều lớp thì đầu ra của một lớp là đầu vào của lớp tiếp theo, Đầu ra của lớp cuối cùng chính là đầu ra của mạng: A = A<small>M</small>
Thuật toán lan truyền ngược sai số MLP được thực hiện tương tự như thuật
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">cuối cùng, thì chúng ta dễ dàng xác định được giá trị của ma trận các lớp phía trước, tức là thực hiện tính tốn theo sơ đồ lan truyền ngược
Hay viết dưới dạng ma trận: <i>S<sup>M</sup></i> 2<i>F<sup>M</sup></i>(<i>n<sup>M</sup></i>)(<i>T</i> <i>A</i>). Như vậy từ S<small>M </small>ta có thể lần lượt tính S<small>M-1</small>, …, S<small>1 </small>
Xuất phát từ các tính tốn trên, ta có các bước thực hiện thuật toán MLP như sau
<b>Thuật toán </b>
<b>Bước 1: Khởi tạo: W, b, T, P </b>
+ Chọn tham số lặp
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">Nội dung chương 1 đã trình bày một số kiến thức cơ bản về mạng neural thẳng cùng .với mơ hình bài toán huẩn luyện mạng. trên cơ sở về lý thuyết đại số tuyến tính và bài tốn tối ưu hóa, luận văn đã đưa ra một số thuật toán huấn luyện mạng truyền thẳng dưới dạng các phép biến đổi đại số và dạng các phương pháp lặp gradient. Các kết quả này sẽ là cơ sở để chúng ta nghiên cứu về mơ hình mạng RBF và bài tốn nội suy hàm nhiều biến số được đưa ra trong chương 2 của luận văn.
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">Nội dung chính của chương 2 sẽ nghiên cứu về mơ hình tổng qt của bài tốn nội suy hàm nhiều biến, khái niệm về hàm cơ sở xuyên tâm và cấu trúc tổng quát về mạng RBF. Các thuật toán huấn luyện mạng RBF Các kết quả được tham khảo trong các tài liệu [2][5][6][7][8].
<b>2.1 Mơ hình bài tốn nội suy </b>
<b>Đặt vấn đề: Nhiều bài toán trong thực tế đặc biệt là các bài tốn dự báo địi </b>
<i>hỏi cần tính giá trị của một hàm số tại những điểm của biến số trong miền D nào đó của khơng gian n-chiều, nhưng khơng có biểu diễn tường minh của hàm số mà chỉ xác định được giá trị của hàm số trên một tập hữu hạn điểm của D. Hiển nhiên để </i>
giải quyết đòi hỏi trên, ta cần xác định xấp xỉ công thức của hàm số thông qua một số điểm đã biết. Việc xác định gần đúng hàm này dẫn tới bài toán nội suy và xấp xỉ hàm số. Sau đây chúng ta sẽ nghiên cứu mơ hình bài tốn nội suy một biến và nhiều biến cùng một số phương pháp giải quyết
<i><b>2.1.1 Mơ hình bài tốn nội suy hàm một biến </b></i>
<b>Đặt bài toán: Cho trước n mốc nội suy. </b>
Nếu hàm <i>F x</i>( ) tồn tại thì hàm số đó được gọi là hàm nội suy và bài toán xác định <i>F x</i>( ) được gọi là bài toán nội suy.
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33"><b>Nhận xét: Bài tốn này đóng vai trị quan trọng trong thực tế vì nếu biết được </b>
cơng thức hàm <i>F x</i>( ) thì ta có thể xác định được mọi giá trị của hàm ứng với mọi <small>1</small>, <i><sub>n</sub></i>
<i>xx x</i> Các giá trị đó được gọi là các giá trị nội suy.
<i><b>Để giải quyết bài toán trên, người ta dựa vào cơ sở toán học như sau: Chọn </b></i>
trước một hàm <i>F a a</i>( ,<sub>1</sub> <sub>2</sub>,...,<i>a x<sub>n</sub></i>, ) thường là dạng tuyến tính phụ thuộc n tham số độc lập
<small></small> , thỏa mãn các điều kiện nhất định. Khi đó các hệ số <i>a a</i><sub>1</sub>, <sub>2</sub>,...,<i>a<sub>n</sub></i> sẽ được xác định từ điều kiện nội suy <i>F a a</i>( ,<sub>1</sub> <sub>2</sub>,...,<i>a x<sub>n</sub></i>, <i><sub>k</sub></i>) <i>y<sub>k</sub></i>, <i>k</i> 1,...,<i>n</i>
Trong thực tế tính tốn, người ta thường chọn hàm <i>F</i> có dạng tuyến tính: tính cho trước thoả mãn điều kiện định thức ma trận det [
<i>số a<sub>j</sub> ln tìm được duy nhất do hệ thức (2.2) khi thay x</i> <i>x k<sub>k</sub></i>( 1, 2.., )<i>n</i> trở thành hệ phương trình đại số ln duy nhất nghiệm. Các hệ hàm
Một số phương pháp xác định hàm nội suy một biến số đã được nghiên cứu: đó là các phương pháp sử dụng đa thức nội suy Lagrange, đa thức nội suy Neuton, phương pháp hàm Spline ….
<i><b>2.1.2 Mơ hình bài tốn nội suy hàm nhiều biến 2.1.2.1 Mơ hình tổng qt </b></i>
<i>Xét miền giới nội D trong R<sup>n</sup> và N điểm </i>
Chúng ta xét bài toán sau: Cho trước N mốc nội suy.
<small>1</small>
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34"><i>trong đó X<sub>k</sub> là các vecto n chiều; Y<sub>k</sub></i> là các vecto m chiều. Cần xây dựng một hàm số Khi đó hàm ( )<i>X</i> sẽ được gọi là hàm nội suy.
<i>Chú ý rằng X là vecto n chiều và Y là vecto m chiều, do đó Khi m >1, bài tốn nội suy ln ln tương đương với m bài tốn nội suy m hàm nhiều biến giá trị thực. Do đó để đơn giản, ta chỉ cần xét với m=1. </i>
<i><b>2.1.2.2 Một số phương pháp giải quyết bài toán nội suy hàm nhiều biến </b></i>
Các hàm nội suy ( )<i>X</i> cần được chọn dưới dạng thuận tiện cho sử dụng và tính tốn đặc biệt là các dạng nội suy đa thức tương tự như nội suy hàm 1 biến số. Tuy nhiên mặc dù các chun gia giải tích số đã có những nỗ lực để phát triển lý thuyết nội suy đa thức, nhưng tính tốn thường phức tạp và dễ có hiện tượng mất ổn định dẫn tới sai số rất lớn trong nội suy. Mặt khác, do địi hỏi hàm nội suy cần tìm phải thoả mãn chặt điều kiện (2.3) do đó đã gây nên ra các khó khăn trong tính tốn và việc chọn các lớp hàm nội suy mà vẫn có thể cho kết quả xấp xỉ không tốt.
Một hướng đang được ứng dụng rộng rãi là tìm hàm xấp xỉ tốt nhất và dùng nó để nội suy giá trị hàm số tại các điểm khác mốc nội suy. Trong trường hợp này ta xem nó là nghĩa suy rộng của bài toán nội suy.
Sau đây chúng ta nghiên cứu cơ sở của một số phương pháp xấp xỉ hàm nhiều biến số
<b>Phương pháp k lân cận gần nhất </b>
<i>Tư tưởng: Chọn trước số tự nhiên k, với mỗi X</i> <i>D</i>, ta cần xác định giá trị của hàm ( )<i>X qua giá trị của hàm f (X) tại k mốc nội suy gần nó nhất. </i>
Ký hiệu
<i>Dễ thấy rằng khi X dần tới các mốc nội suy thì </i>( )<i>X</i> xác định như trên hội tụ
<i>đến giá trị của f(X) tại mốc nội suy tương ứng khi đối số hội tụ tới mốc này. </i>
<b>Nhận xét: </b>
+ Phương pháp này có ưu điểm là cách tính tốn đơn giản, tuy nhiên trên thực
<i>tế việc xác định giá trị k phù hợp là một vấn đề khó (phụ thuộc rất nhiều vào kinh </i>
nghiệm đánh giá bài toán thực tế).
+ Mỗi khi cần xác định giá trị của một điểm, phương pháp này lại tìm trong tất cả các giá trị đã biết để tìm được các mốc gần nhất mới xác định được hàm nội suy, chứ khơng tính trước hàm để dùng được như mạng neural. Điều này tăng khối lượng tính tốn
Phương pháp khơng đánh giá chặt chẽ về mặt tốn học, tuy nhiên vẫn được ưa dùng trong tính tốn thực nghiệm do cách tính là đơn giản
<b>Phương pháp xấp xỉ bình phương tối thiểu </b>
Chúng ta xét bài tốn xấp xỉ hàm nhiều biến. Để giải quyết bài toán này, một trong những phương pháp hiệu quả nhất là phương pháp xấp xỉ bình phương tối thiểu.
Tư tưởng của phương pháp như sau:
Giả sử hàm
Như vậy ta nhận được mô hình bài tốn cực trị hàm nhiều biến số, các phương pháp thường được sử dụng là phương pháp Gradient, phương pháp Newton…. Trong trường hợp nếu hàm ( )<i>X</i> là hàm tuyến tính thì bài tốn dẫn tới việc giải hệ phương trình đại số tuyến tính cấp N với ẩn là các hệ số cần xác định.
<b>Chú ý: </b>
+ Khác với phương pháp nội suy, phương pháp xấp xỉ chỉ cho kết quả gần đúng tức là về mặt hình học, đường cong của hàm ( )<i>X</i> không cần thiết phải đi qua các mốc nội suy.
+ Trong trường hợp khi số mốc nội suy là lớn, để giảm bớt chi phí tính tốn, người ta chỉ tính với M<N mốc bằng cách chọn M điểm gần X nhất làm mốc nội suy. Phương pháp này thường được gọi là phương pháp hồi quy trọng số địa phương.
<i><b>Phương pháp xấp xỉ bằng mạng Nơron truyền thẳng </b></i>
Xét cấu trúc mạng neural truyền thẳng 3 lớp (Hình 2.1)
<b>Tầng ẩn: Số tầng ẩn và lượng neural của mỗi tầng tuỳ thuộc vào mục đích thiết kế. </b>
Như vậy nếu coi các mốc nội suy
các lớp của mạng để sao cho hàm năng lượng của mạng <sup>2</sup>
</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37"><b>Nhận xét </b>
+ Thuật toán huấn luyện mạng 3 lớp trên thường sử dụng là thuật toán lan truyền ngược MLP. Thuật tốn có tốc độ hội tụ chậm và thường chỉ hội tụ đến cực trị địa phương.
+ Để khắc phục có thể huấn luyện nhiều lần với các giá trị khởi tạo ngẫu nhiên hoặc khởi tạo theo kinh nghiệm hoặc kết hợp với thuật tốn di truyền sau đó dùng thuật tốn tối ưu hố.
.
<b>Hình 2.1: Mạng neural truyền thẳng 3 lớp </b>
Như vậy, việc tiếp cận giải quyết bài toán nội suy hàm nhiều biến là một bài toán phức tạp về mặt toán học cũng như mơ hình tính tốn. Cần đưa ra những mơ hình hiệu quả hơn trong thực tế. Sau đây chúng ta sẽ nghiên cứu chi tiết vấn đề giải quyết bài toán xấp xỉ hàm nhiều biến bằng mạng RBF
</div>