Tải bản đầy đủ (.pdf) (55 trang)

Báo cáo phân tích mạng nơ ron và khả năng Ứng dụng

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.7 MB, 55 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI

<b>KHOA CÔNG NGHỆ THÔNG TIN </b>

<b>ĐỒ ÁN TỐT NGHIỆP </b>

ĐỀ TÀI

<b>MẠNG NƠ RON VÀ KHẢ NĂNG ỨNG DỤNG </b>

Giảng viên hướng dẫn : TS. Phạm Thanh Hà

Sinh viên thực hiện : Nguyễn Thị Phương Anh Mã sinh viên : 191210066

Lớp : CNTT4 Khóa : 60

<b>Hà Nội - 2023 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

TRƯỜNG ĐẠI HỌC THÔNG VẬN TẢI

<b>KHOA CÔNG NGHỆ THÔNG TIN</b>

<b>ĐỒ ÁN TỐT NGHIỆP </b>

ĐỀ TÀI

<b>MẠNG NƠ RON VÀ KHẢ NĂNG ỨNG DỤNG </b>

Giảng viên hướng dẫn : TS. Phạm Thanh Hà

Sinh viên thực hiện : Nguyễn Thị Phương Anh Mã sinh viên : 191210066

Lớp : CNTT4 Khóa : 60

<b>Hà Nội - 2023 </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

1

<b>LỜI CẢM ƠN </b>

Lời đầu tiên em xin gửi lời cảm ơn sâu sắc đến thầy TS. Phạm Thanh Hà, người đã trực tiếp hướng dẫn và giúp đỡ em rất nhiều trong thời gian em thực hiện đồ án, giúp em hoàn thiện đồ án một cách tốt nhất.

Em cũng xin được gửi lời cảm ơn đến tất cả các thầy cô công tác tại khoa Công nghệ thông tin - Trường Đại học Giao thông vận tải đã dạy dỗ cho em kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp em có được cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học tập.

Cuối cùng, em xin gửi lời cảm ơn đến tất cả người thân, bạn bè, những người đã luôn động viên, ủng hộ và tạo điều kiện cho em trong thời gian hoàn thành đồ án.

Mặc dù em đã cố gắng rất nhiều nhưng cũng không tránh khỏi thiếu sót và hạn chế trong q trình thực hiện. Em rất mong nhận được sự thông cảm và chỉ bảo cũng như những đóng góp chân thành của các thầy cô và bạn bè để bài đồ án được tốt hơn.

Em xin chân thành cảm ơn!

Hà Nội, ngày 26 tháng 5 năm 2023

<i>Sinh viên thực hiện </i>

Anh

Nguyễn Thị Phương Anh

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

1.1. Khái niệm mạng nơ ron ... 8

1.1.1. Tìm hiểu về nơ ron ... 8

1.1.2. Mạng nơ ron nhân tạo ... 11

1.2. Phân loại cấu trúc mạng nơ ron ... 12

1.2.1. Mạng nơ ron 1 lớp... 12

1.2.2. Mạng nơ ron truyền thẳng nhiều lớp ... 13

1.2.3. Mạng nơ ron hồi quy ... 13

1.3. Các luật học ... 14

1.4. Mạng nơ ron truyền thẳng ... 16

1.4.1. Mạng Perceptron một lớp đơn ... 16

1.4.2. Mạng thuyền thẳng nhiều lớp MLP ... 19

1.5. Các giải thuật huấn luyện mạng nơ ron ... 21

1.5.1. Mạng nơ ron MLP và thuật toán huấn luyện lan truyền ngược sai số .... 21

1.5.2. Mạng nơ ron RBF (Radial Basic Function) ... 27

1.6. Ứng dụng của mạng nơ ron ... 31

CHƯƠNG 2. ỨNG DỤNG MẠNG NƠ RON VÀO BÀI TOÁN NHẬN DẠNG CHỮ SỐ VIẾT TAY ... 32

2.1. Giới thiệu ... 32

2.2. Phát biểu bài toán ... 32

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

3

2.3. Mơ hình tổng quan... 33

2.4. Các bước giải quyết bài toán... 34

2.4.1. Xây dựng mạng nơ ron ... 34

2.4.2. Xử lý dữ liệu (phân tích ảnh) ... 35

2.4.3. Huấn luyện mạng nơ ron ... 38

2.4.4. Nhận dạng chữ số... 40

CHƯƠNG 3. XÂY DỰNG CHƯƠNG TRÌNH VÀ THỬ NGHIỆM ... 41

3.1. Môi trường thử nghiệm ... 41

3.2. Giao diện chương trình ... 41

3.3. Xây dựng chương trình thử nghiệm ... 42

3.3.1 Phân tích dữ liệu MNIST ... 42

3.3.2. Khởi tạo và huấn luyện mạng nơ ron ... 43

3.3.3. Huấn luyện dữ liệu MNIST ... 44

3.3.4. Tính tốn giá trị đầu ra của mạng nơ ron ... 45

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

4

<b>DANH MỤC CÁC TỪ VIẾT TẮT </b>

<b>Viết tắt Ý nghĩa </b>

ANN Artifical Neural Network (Mạng nơ ron nhân tạo)

CNN Convolutional Neural Network (Mạng nơ ron tích chập) MLP Multilayer Perceptron (Mạng nơ ron đa tầng)

MNIST Modified National Institute of Standards and Technology (Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ đã được sửa đổi)

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

5

<b>DANH MỤC HÌNH ẢNH </b>

<b>Hình 1.1. Cấu tạo của tế bào nơ ron sinh học ... 8</b>

<b>Hình 1.2. Cấu trúc của một nơ ron nhân tạo... 9</b>

<b>Hình 1.3. Sơ đồ đơn giản về một mạng nơ ron nhân tạo... 12</b>

<b>Hình 1.4. Mạng nơ ron 1 lớp ... 12</b>

<b>Hình 1.5. Mạng nơ ron hồi quy ... 12</b>

<b>Hình 1.6. Mạng nơ ron nhiều lớp... 13</b>

<b>Hình 1.7. Học có giám sát... 15</b>

<b>Hình 1.8. Học khơng giám sát ... 15</b>

<b>Hình 1.9. Mạng perceptron đơn ... 17</b>

<b>Hình 1.10. Mạng perceptron đơn giản dùng cho bài tốn phân lớp... 18</b>

<b>Hình 1.11. Đường thẳng phân lớp được xác định nhờ mạng ... 19</b>

<b>Hình 1.12. Các điểm mẫu của bài tốn XOR ... 19</b>

<b>Hình 1.13. Mạng perceptron đa lớp cho bài tốn XOR ... 20</b>

<b>Hình 1.14. Mạng truyền thẳng ba lớp truyền ngược sai số... 22</b>

<b>Hình 1.15. Một ví dụ về mạng nơ ron truyền thẳng ... 24</b>

<b>Hình 1.16. Cấu trúc mạng nơ ron RBF ... 28</b>

<b>Hình 2.1. Minh họa ảnh chứa 1 ký tự số ... 33</b>

<b>Hình 2.2. Minh họa ảnh chứa nhiều ký tự số... 33</b>

<b>Hình 2.3. Mơ hình tổng quan nhận dạng ... 34</b>

<b>Hình 2.4. Mơ hình mạng nơ ron ... 34</b>

<b>Hình 2.5. Minh họa kết quả xác định vùng ảnh chứa ký tự số ... 36</b>

<b>Hình 2.6. Hình ảnh trước và sau khi thực hiện co dãn... 37</b>

<b>Hình 2.7. Sơ đồ khối quá trình huấn luyện mạng nơ ron ... 39</b>

<b>Hình 2.8. Sơ đồ khối quá trình nhận dạng chữ số viết tay ... 40</b>

<b>Hình 3.1. Giao diện chương trình ... 42</b>

<b>Hình 3.2. Hàm load dữ liệu hình ảnh chữ số viết tay từ cơ sở dữ liệu MNIST vào chương </b>trình ... 43

<b>Hình 3.3. Đoạn mã khởi tạo và huấn luyện mạng nơ ron... 44</b>

<b>Hình 3.4. Hàm huấn luyện dữ liệu MNIST ... 45</b>

<b>Hình 3.5. Hàm tính giá trị đầu ra của mạng nơ ron ... 46</b>

<b>Hình 3.6. Hàm cập nhật trọng số ... 47</b>

<b>Hình 3.7. Giao diện người dùng thử nghiệm ... 48</b>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

6

<b>Hình 3.8. Hàm tìm hình vng nhỏ nhất xung quanh chữ số đã vẽ... 49</b>

<b>Hình 3.9. Hàm thay đổi kích thước ảnh về cỡ 20x20 ... 49</b>

<b>Hình 3.10. Hàm chuyển ảnh cỡ 20x20 về kích thước chuẩn 28x28 ... 50</b>

<b>Hình 3.11. Hàm chuyển đổi một hình ảnh bitmap thành một bảng byte ... 50</b>

<b>Hình 3.12. Kết quả thử nghiệm ... 51</b>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

7

<b>MỞ ĐẦU </b>

Ngày nay khơng ai có thể phủ nhận vai trò cực kỳ quan trọng của máy tính trong nghiên cứu khoa học kỹ thuật cũng như trong đời sống. Máy tính đã làm được những điều kỳ diệu và giải được những vấn đề tưởng chừng nan giải. Càng ngày càng có nhiều người tự hỏi, liệu máy tính có khả năng suy nghĩ như con người hay chưa? Chúng ta sẽ không trả lời câu hỏi ấy. Thay vào đó, chúng ta sẽ nêu ra những khác biệt chủ yếu giữa cách làm việc của máy tính và bộ óc con người.

Một máy tính, dù có mạnh đến đâu chăng nữa, đều phải làm việc theo một chương trình chính xác đã được kế hoạch định trước bởi các chuyên gia. Bài tốn càng phức tạp thì việc lập trình càng cơng phu. Trong khi đó con người làm việc bằng cách học tập và rèn luyện, khi làm việc con người có khả năng liên tưởng, kết nối sự việc này với sự việc khác, và quan trọng hơn hết, họ có thể sáng tạo.

Do có khả năng liên tưởng, con người có thể dễ dàng làm nhiều điều mà việc lập trình cho máy tính địi hỏi rất nhiều công sức. Chẳng hạn như việc nhận dạng hay trị chơi ơ chữ. Một em bé có thể tự học hỏi để nhận dạng và phân loại đồ vật xung quanh mình, biết được cái gì là thức ăn, cái gì là đồ chơi. Một người bình thường cũng có thể đốn được vài chữ trong một ơ chữ. Nhưng thật khó mà dạy cho máy tính làm được những việc ấy. Từ lâu các nhà khoa học đã nhận thấy những ưu điểm của bộ óc con người và tìm cách bắt chước để thực hiện trên những máy tính, tạo cho nó có khả năng học tập, nhận dạng và phân loại. Các mạng nơ ron nhân tạo đã ra đời từ những nỗ lực đó. Nó thực sự được chú ý và nhanh chóng trở thành một hướng nghiên cứu đầy triển vọng trong mục đích xây dựng các máy thơng minh tiến gần tới trí tuệ con người. Đặc biệt là lĩnh vực nhận dạng.

Trong đồ án này sẽ trình bày “Mạng nơ ron và khả năng ứng dụng”. Nội dung báo cáo bao gồm những chương sau:

Chương 1: Nghiên cứu cơ sở lý thuyết về mạng nơ ron nhân tạo

Chương 2: Ứng dụng mạng nơ ron vào bài toán nhận dạng chữ số viết tay Chương 3: Xây dựng chương trình và thử nghiệm

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>1.1.1.1. Nơ ron sinh học [2] </b>

Theo các nhà nghiên cứu sinh học, hệ thống thần kinh của con người bao gồm khoảng 10<small>11</small> tế bào thần kinh, thường gọi là các nơ ron. Mỗi tế bào nơ ron gồm ba phần:

<i><b>Hình 1.1. Cấu tạo của tế bào nơ ron sinh học [3] </b></i>

- Thân nơ ron với nhân bên trong (gọi là soma), là nơi tiếp nhận hay phát ra các xung động thần kinh.

- Một hệ thống dạng cây các dây thần kinh vào (gọi là dendrite) để đưa tín hiệu tới nhân nơ ron. Các dây thần kinh vào tạo thành một lưới dày đặc xung quanh thân nơ ron, chiếm diện tích khoảng 0,25 mm<small>2</small>.

- Đầu dây thần kinh ra (gọi là sợi trục axon) phân nhánh dạng hình cây, có thể dài từ một cm đến hàng mét. Chúng nối với các dây thần kinh vào hoặc trực tiếp với nhân tế bào của các nơ ron khác thông qua các khớp nối (gọi là synapse). Có hai loại khớp nối, khớp nối kích thích (excitatory) sẽ cho tín hiệu qua nó để tới nơ ron còn khớp nối ức chế (inhibitory) có tác dụng làm cản tín hiệu tới nơ ron. Người ta ước tính mỗi nơ ron trong bộ não của con người có khoảng 10<small>4</small> khớp nối.

Chức năng cơ bản của các tế bào nơ ron là liên kết với nhau để tạo nên hệ thống thần kinh điều khiển hoạt động của cơ thể sống. Các tế bào nơ ron truyền tín hiệu cho nhau thơng

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

9

qua các dây thần kinh vào và ra, các tín hiệu đó có dạng xung điện và được tạo ra từ các q trình phản ứng hố học phức tạp. Tại nhân tế bào, khi điện thế của tín hiệu vào đạt tới một ngưỡng nào đó thì nó sẽ tạo ra một xung điện dẫn tới trục dây thần kinh rạ Xung này truyền theo trục ra tới các nhánh rẽ và tiếp tục truyền tới các nơ ron khác.

<b>1.1.1.2. Nơ ron nhân tạo [1] </b>

Nơ ron nhân tạo là một đơn vị tính tốn có nhiều đầu vào và một đầu ra, mỗi đầu vào đều đến từ một liên kết. Đặc trưng của nơ ron là một hàm kích hoạt phi tuyến chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu rạ Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính tốn của mạng nơ ron.

<i>Mơ hình nơ ron có m đầu vào x<small>1</small>, x<small>2</small>, ...x<small>m</small> và một đầu ra y (hình 1.2), mơ hình này gồm </i>

có ba thành phần cơ bản:

+ Các kích thích đầu vào của tế bào nơ ron có thế năng tác động vào màng membran

<i>khác nhau được biểu diễn qua trọng số w<small>i</small>, i = 1, .., m tương ứng với cường độ kích thích </i>

<i>của từng đầu vàọ Các kích thích đầu vào được thực hiện qua bộ cộng f(.), đó là giá trị đo </i>

kích thích đầu vào tác động vào tế bào nơ ron.

<i>+ Đầu ra của bộ cộng được đưa đến bộ đáp ứng ặ), bộ này khơng chỉ có chức năng </i>

tạo ra đáp ứng tức thời mà cịn có khả năng lưu giữ các đáp ứng theo thời gian. Thành phần này hoạt động theo nguyên lý nhớ động.

+ Nơ ron bị kích thích trong thời gian thế năng của màng membran vượt quá ngưỡng.

<i>Quan hệ này được thực hiện nhờ hàm ặ), nó có chức năng của bộ tạo tín hiệu ngưỡng, xác định phụ thuộc của tín hiệu ra y vào các kích thích đầu vàọ Cách thành lập nơ ron nhân tạo </i>

như vậy tạo ra một độ tự do trong thiết kế. Việc lựa chọn phép cộng tín hiệu đầu vào và đáp

<i>ứng ặ) sẽ cho ra các kiểu mạng nơ ron nhân tạo khác nhau và tương ứng là các mơ hình </i>

mạng khác nhaụ

<i><b>Hình 1.2. Cấu trúc của một nơ ron nhân tạo </b></i>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

(1.4) + Hàm hình cầu (Spherical function):

𝑓<sub>𝑖</sub> = 𝜌<sup>−2</sup>∑ (𝑥<sub>𝑗</sub>− 𝑤<sub>𝑖𝑗</sub>)<sup>2</sup>

trong đó 𝜌 và 𝑤<sub>𝑖𝑗</sub> là bán kính và tâm của hình cầu

<b>+ Hàm đa thức (Polynomial function): </b>

𝑓<sub>𝑙̇</sub> = ∑ ∑ 𝑤<sub>𝑖𝑗𝑘</sub>𝑥<sub>𝑖</sub>𝑥<sub>𝑘</sub>+ 𝑥<sub>𝑗</sub><sup>𝛼</sup><sup>𝑗</sup>+ 𝑥<sub>𝑘</sub><sup>𝛼</sup><small>𝑘</small>− 𝜃<sub>𝑖</sub>

<small>𝑚𝑘=1𝑚</small>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

11 𝑎(𝑓) = {

1 nếu 𝑓 ≥ 1−1 𝑛ế𝑢 0 ≤ 𝑓 ≤ 1

<b>1.1.2. Mạng nơ ron nhân tạo </b>

Mạng nơ ron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng nơ ron, là một mơ hình xử lý thơng tin phỏng theo cách thức xử lý thông tin của các hệ nơ ron sinh học. Nó được tạo nên từ một số lượng lớn các phần tử (gọi là phần tử xử lý hay nơ ron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó [2].

Có thể xem các trọng số là phương tiện để lưu trữ thông tin dài hạn trong mạng nơ ron và nhiệm vụ của quá trình huấn luyện của mạng là cập nhật các trọng số khi có thêm thơng tin về mẫu học. Hay nói một cách khác, các trọng số đều được điều chỉnh sao cho dáng điệu vào ra của mạng sẽ mơ phỏng hồn tồn phù hợp với mơi trường đang xem xét.

Mơ hình mạng nơ ron nhân tạo:

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

12

<i><b>Hình 1.3. Sơ đồ đơn giản về một mạng nơ ron nhân tạo [4] </b></i>

Mơ hình mạng neural ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn (hidden) và lớp xuất (output). Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và chuyển vào mạng. Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp – ta gọi là tổng trọng số – và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút trong lớp này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết kế mạng mới biết lớp này (người sử dụng không biết lớp này). Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp ẩn. Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc.

<b>1.2. Phân loại cấu trúc mạng nơ ron [1] </b>

<b>1.2.1. Mạng nơ ron 1 lớp </b>

Hình 1.4, 1.5, 1.6 là một loại liên kết đặc thù của mạng nơ ron. Nơ ron có các mối liên hệ đến các nơ ron khác nhờ các trọng số. Một lớp nơ ron là một nhóm các nơ ron mà chúng đều có cùng các trọng số, nhận cùng số tín hiệu đầu vào đồng thời.

<b>Hình 1.4. Mạng nơ ron 1 lớp Hình 1.5. Mạng nơ ron hồi quy </b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

13

<i><b>Hình 1.6. Mạng nơ ron nhiều lớp </b></i>

Trong ma trận trọng số, các hàng thể hiện các nơ ron, mỗi hàng thứ j có thể đặt nhãn

<i>như một véc tơ w<small>j</small> của nơ ron thứ j gồm m trọng số w<small>ji</small></i>.

<i>Các trọng số trong cùng một cột thứ j (j = 1, 2, ...., n) đồng thời cùng nhận một tín hiệu đầu vào x<small>j</small></i>:

Tại cùng một thời điểm, véc tơ đầu vào:

có thể là một nguồn bên ngoài đưa tới mạng

<b>1.2.2. Mạng nơ ron truyền thẳng nhiều lớp </b>

Mạng nơ ron nhiều lớp (hình 1.6) có các lớp được phân chia thành 3 loại sau:

<i>- Lớp vào là lớp nơ ron đầu tiên nhận tín hiệu vào x<small>i</small>. Mỗi tín hiệu x<small>i</small></i> được đưa đến tất cả các nơ ron của lớp đầu vào, chúng được phân phối trên các trọng số đúng bằng số nơ ron

<i>của lớp này. Thông thường, các nơ ron đầu vào không làm biến đổi các tín hiệu vào x<small>i</small></i>, tức là chúng khơng có các trọng số hoặc khơng có các loại hàm chuyển đổi nào, chúng chỉ đóng vai trị phân phối các tín hiệu và khơng đóng vai trị sửa đổi chúng.

- Lớp ẩn là lớp nơ ron dưới lớp vào, chúng không trực tiếp liên hệ với thế giới bên ngoài như các lớp nơ ron vào và ra.

- Lớp ra là lớp nơ ron tạo các tín hiệu ra cuối cùng.

<b>1.2.3. Mạng nơ ron hồi quy </b>

Mạng nơ ron hồi quy còn được gọi là mạng phản hồi, là loại mạng tự liên kết thành các vòng và liên kết hồi quy giữa các nơ ron.

Mạng nơ ron hồi quy có trọng số liên kết đối xứng như mạng Hopfield luôn hội tụ về trạng thái ổn định (hình 1.5).

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

14

Mạng BAM thuộc nhóm mạng nơ ron hồi quy, gồm 2 lớp liên kết 2 chiều, không được gắn với tín hiệu vào-ra. Nghiên cứu mạng nơ ron hồi quy có trọng số liên kết khơng đối xứng sẽ gặp phức tạp nhiều hơn so với mạng truyền thẳng và mạng hồi quy đối xứng.

Đặc điểm cấu trúc mạng nơ ron mà người ta quan tâm đến là: số lượng đầu vào, đầu ra, số lượng các lớp, số lượng nơ ron có trong mỗi lớp, trọng số liên kết trong mỗi lớp và giữa các lớp với nhau.

Căn cứ vào yêu cầu của tín hiệu học, đối với mỗi cấu trúc mạng, mạng nơ ron cần được đánh giá lại giá trị của trọng số liên kết bằng cách thực hiện bài toán tối ưu thông qua các điều kiện thực hiện được gọi là luật học.

Mỗi luật học chỉ phù hợp với từng dạng tín hiệu học và cũng chỉ phù hợp với từng kiểu cấu trúc mạng.

Trong tài liệu nay chúng ta chỉ đề cập tới luật học tham số:

Giả sử ma trận trọng số bao gồm tất cả các phần tử thích ứng của mạng nơ ron. Nhiệm vụ của việc học thông số là bằng cách nào đó, tìm được ma trận chính xác mong muốn từ ma trận giả thiết ban đầu với cấu trúc của mạng nơ ron có sẵn.

Để làm được việc trên, mạng nơ ron sử dụng các trọng số điều chỉnh, với nhiều phương

<i>pháp học khác nhau có thể tính tốn gần đúng ma trận W cần tìm đặc trưng cho mạng. Có </i>

<i>Dạng tổng quát của luật học trọng số của mạng nơ ron cho biết là gia số của véc tơ w<small>i</small></i>

<i>là w<small>i</small> tỷ lệ với tín hiệu học r và tín hiệu đầu vào x(t): </i>

 là một số dương còn gọi là hằng số học, xác định tốc độ học, r là tín hiệu học, nó phụ thuộc :

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

15

<b>Hình 1.7. Học có giám sát Hình 1.8. Học không giám sát </b>

<i>Từ (1.16) ta thấy véc tơ trọng số w<small>i</small> = [w<small>i1</small>, w<small>i2</small>, ..., w<small>im</small></i>]<i><small>T</small> có số gia tỷ lệ với tín hiệu vào x và tín hiệu học r. Véc tơ trọng số ở thời điểm (t+1) được tính như sau: </i>

<i>sát này là tín hiệu học r sẽ được phát ra để cập nhật trọng số như thế nàọ </i>

Luật Hebb là một ví dụ điển hình, với tiếp cận trọng số được điều chỉnh phù hợp với quan hệ trước – saụ Cụ thể luật học Hebb định nghĩa:

𝑟 = 𝑎(𝑤<sub>𝑖</sub><sup>𝑇</sup>𝑥) = 𝑦<sub>𝑖</sub> (1.20)

<i>với ặ) là hàm kích hoạt. Tóm lại trong luật Hebb tín hiệu lỗi r đơn giản là đầu ra của </i>

nơ ron hiện thờị Theo cơng thức 1.19 ta có 1.21:

<i>Ví dụ: Xét mạng chỉ có một nơ ron như hình 1.2 với hàm kích hoạt là hàm dấu Sign(), </i>

<i>Sign(x)=1 nếu x  0 và Sign(x)=-1 nếu x < 0. </i>

<i>Có 4 đầu vào x<small>1</small>, x<small>2</small>, x<small>3</small>, x<small>4</small>. Véc tơ trọng số w = (w<small>1</small>, w<small>2</small>, w<small>3</small>, w<small>4</small>). </i>

Giả sử ta huấn luyện cho mạng với 3 véc tơ mẫu sau:

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

16 𝑥<sup>(1)</sup>= (

) , 𝑥<sup>(2)</sup> = (−0.5

) , 𝑥<sup>(3)</sup> = (−1

<i>) </i>

Véc tơ trọng số được khởi tạo: 𝑤<small>(1)</small>= (10−1

) và hằng số học được cho là =1.

Theo luật Hebb ta có các bước kết quả sau:

<i><b>Bước 1: Đưa véc tơ mẫu x</b><small>(1)</small></i> được đưa vào để cập nhật véc tơ trọng số

<i>w<small>(2)</small>= w<small>(1)</small>+Sign((w<small>(1)</small>)<small>T</small>x<small>(1)</small>)x<small>(1)</small> = (</i>

<i>) + Sign(0.5) (</i>

) = (21.5−0.5

0)

<i><b>Bước 2: Đưa véc tơ mẫu x</b><small>(2)</small></i> được đưa vào để cập nhật véc tơ trọng số

<i>w<small>(3) </small>= w<small>(2)</small>+Sign((w<small>(2)</small>)<small>T</small>x<small>(2)</small>)x<small>(2)</small> = (</i>

<i>) + Sign(0.5) (</i>

) = (1.52.5−0.5

1.5)

<b>Bước 3: Đưa véc tơ mẫu x(3) được đưa vào để cập nhật véc tơ trọng số </b>

<i>w<small>(4) </small>= w<small>(3)</small>+Sign((w<small>(3)</small>)<small>T</small>x<small>(3)</small>)x<small>(3)</small> = (</i>

<i>) + Sign(−1.75) (</i>

) = (2.52.50.52

)

Có thể nhận thấy:

<i>Sign((w<small>(4)</small></i>)<i><small>T</small>x<small>(1)</small>= Sign((w<small>(4)</small></i>)<i><small>T</small>x<small>(2)</small>= 1 và Sign((w<small>(4)</small></i>)<i><small>T</small>x<small>(3)</small>= −1. </i>

<b>1.4. Mạng nơ ron truyền thẳng [1] </b>

Trong phần này chúng ta sẽ nghiên cứu mạng một lớp và mạng nhiều lớp truyền thẳng với luật học có giám sát.

<b>1.4.1. Mạng Perceptron một lớp đơn </b>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

17

<i><b>Hình 1.9. Mạng perceptron đơn </b></i>

<i>Hình 1.9 là một ví dụ về một mạng perceptron đơn. Cho các véc tơ mẫu đầu ra d<small>(k)</small></i> =

<i>[d<small>1</small><sup>(k)</sup>, d<small>2</small><sup>(k)</sup>, …, d<small>n</small><sup>(k)</sup></i>]<i><small>T</small> tương ứng với các véc tơ mẫu đầu vào đầu vào là x<small>(k)</small> = [x<small>1</small><sup>(k)</sup>, x<small>2</small><sup>(k)</sup>, …, </i>

Đầu ra thực tế theo cấu trúc:

<i>Xét luật học tổng quát (1.16) với tham số học: r = d </i>−<i> y </i> (1.25)

<i>với y<small>i</small> = Sign(w<small>i</small><sup>T</sup>x) và d<small>i</small> là đầu ra thực tế và đầu ra mong muốn của nơ ron thứ i. Giả sử d<small>i</small></i> nhận các giá trị -1, +1, sử dụng (1.16) ta có:

<i>w<small>ij</small></i> = [d<i><small>i</small>– sign(w<small>i</small><sup>T</sup>x)]x<small>j</small></i> = {<sup>2𝜂𝑑</sup><sup>𝑖</sup><sup>𝑥</sup><sup>𝑗</sup><sup> 𝑛ế𝑢 𝑦</sup><sup>𝑖</sup> <sup>≠ 𝑑</sup><sup>𝑖</sup>

𝑂 𝑛𝑔ượ𝑐 𝑙ạ𝑖 <i> với j = 1, …, m </i> (1.26)

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i><b>Hình 1.10. Mạng perceptron đơn giản dùng cho bài tốn phân lớp </b></i>

Khơng gian đầu vào gồm các giá trị: <i>x<small>(1)</small> = 0.5, x<small>(3)</small></i> = 2,

<i>x<small>(2)</small> = -1, x<small>(4)</small></i> = -2, <i>d<small>(1)</small> = d<small>(3)</small></i> = +1, <i>d<small>(2)</small> = d<small>(4)</small></i> = -1

Như vậy các mẫu tương ứng được dùng để huấn luyện mạng là: <i>x</i><sup>(1)</sup> = (0.5

−1<i>), x</i><small>(3)</small>

= ( 2−1), <i>x</i><small>(2)</small> = (−1

−1<i>), x</i><small>(4)</small> = (−2−1)

Để thuận tiện ta chọn  = 0.5 và khởi tạo véc tơ trọng số w = [-2, 1.5] Quá trình huấn luyện diễn ra như sau:

<i><b>Bước 1: Khi x</b></i><small>(1)</small> được đưa vào, đầu ra thực tế và các trọng số được xác định như sau: <i>y</i><small>(1)</small><i> = sign([−2, 1.5](0.5</i>

−1)) = -1 ≠ d<small>(1)</small>, <i>w</i><sup>(2) </sup><i>= w</i><small>(1)</small><i> + x</i><small>(1)</small> = (−1.5

0.5 )

<i><b>Bước 2: Khi x</b></i><small>(2)</small> được đưa vào, đầu ra thực tế và các trọng số được xác định như sau: <i>y</i><small>(2)</small><i> = sign([−1.5, 0.5] (−1</i>

−1)) = +1 ≠ d<small>(2)</small>, <i>w</i><sup>(3) </sup><i>= w</i><small>(2)</small><i> - x</i><small>(2)</small> = (−0.5

1.5 )

<i><b>Bước 3: Khi x</b></i><small>(3)</small> được đưa vào, đầu ra thực tế và các trọng số được xác định như sau: <i>y</i><small>(3)</small><i> = sign([−0.5, 1.5] ( 2</i>

−1)) = -1 ≠ d<small>(3)</small>,

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

19 <i>w</i><small>(4) </small><i>= w</i><small>(3)</small><i> + x</i><small>(3)</small> = (1.5

<i>Tiếp tục sử dụng các dữ liệu: x</i><small>(5)</small><i> = x</i><small>(1)</small><i>, x</i><small>(6)</small><i> = x</i><small>(2)</small><i>, x</i><small>(7)</small><i> = x</i><small>(3)</small><i>, x</i><small>(8)</small><i> = x</i><small>(4)</small>, đưa vào mạng

<i>và cập nhật lại trọng số ta thấy w</i><small>(8)</small><i> = w</i><small>(7)</small><i> = w</i><small>(6)</small><i> = w</i><small>(4)</small>

<i>Tóm lại w</i><small>(4)</small>, là kết quả của bài tốn, hình 1.11 cho thấy đường phân lớp được xác định nhờ mạng nơ ron.

<i><b>Hình 1.11. Đường thẳng phân lớp được xác định nhờ mạng </b></i>

<i>Chúng ta đã đề cập tới khả năng phân lớp của mạng perceptron, tuy nhiên khả năng </i>

này phụ thuộc vào tập mẫu, ví dụ: xét bài tốn XOR cho bởi hình 1.12.

<i><b>Hình 1.12. Các điểm mẫu của bài tốn XOR </b></i>

Rõ ràng ở đây khơng thể tồn tại một đường thẳng chia tập dữ liệu thành 2 phần thoả điều kiện các phần tử ở phần 1 có đáp ứng bằng 1, và các phần tử ở phần 2 có đáp ứng bằng 0. Do đó ta khơng thể biểu diễn hàm XOR bằng một mạng perceptron đơn cùng với hàm kích hoạt tuyến tính.

<b>1.4.2. Mạng thuyền thẳng nhiều lớp MLP </b>

Mạng một lớp perceptron được dùng để phân lớp và xấp xỉ các hàm, tuy nhiên nó phụ thuộc vào dữ liệu mẫu của bài tốn, bài tốn XOR là một ví dụ (khơng có mạng perceptron

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

20

tương ứng). Để giải quyết điều đó người ta đưa ra một cấu trúc mạng truyền thẳng nhiều lớp, ví dụ sau sẽ minh chứng điều đó: Xét bài tốn XOR, với các mẫu đầu vào và đầu ra mong muốn:

(𝑥<small>(1)</small>= (<sup>0</sup>

0) , 𝑑<small>(1)</small> = 1); (𝑥<small>(2)</small>= (<sup>0</sup>

1) , 𝑑<small>(2)</small> = −1); (𝑥<sup>(3)</sup>= (<sup>1</sup>

0) , 𝑑<sup>(1)</sup> = −1); (𝑥<sup>(4)</sup>= (<sup>1</sup>

1) , 𝑑<sup>(2)</sup> = 1)

Rõ ràng bốn mẫu vào này không thể phân chia tuyến tính trong khơng gian đầu vào. Để phân chia tập mẫu này ta phải sử dụng đến hai đường thẳng như hình 1.13(a):

<i><b>Hình 1.13. Mạng perceptron đa lớp cho bài tốn XOR </b></i>

Như vậy mỗi khơng gian con bao gồm các mẫu của các lớp tương ứng của bài toán, hai đường thẳng được chọn là:

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

−1) , 𝑑<small>(1)</small> = −1); (𝑧<small>(3)</small>= (<sup>1</sup>

1) , 𝑑<small>(1)</small> = −1) ; (𝑧<sup>(4)</sup>= ( <sup>1</sup>

−1) , 𝑑<sup>(1)</sup> = 1)

Sự thay đổi của các mẫu huấn luyện trong khơng gian ảnh thể hiện trong hình 1.13(b),

<i>các mẫu x</i><small>(1)</small><i>, x</i><small>(4)</small> trở nên trùng khớp trong không gian ảnh, nhờ đó có thể tiến hành q trình

<i>phân lớp tuyến tính. Đường biên chia ba mẫu trên thành 2 lớp có thể chọn tuỳ ý, ví dụ z</i><small>1</small> -

<i>z</i><small>2</small><i> - 0.5 = 0. Đây chính là đầu vào của nơ ron ở tầng xuất, và đầu ra tương ứng là: y = Sign(z</i><small>1</small>

<i>- z</i><small>2</small> - 0.5)

Cuối cùng ta có mạng nơ ron 3 lớp (hình 1.13(c)) để giải bài toán phân lớp XOR như đã đề cập.

<b>1.5. Các giải thuật huấn luyện mạng nơ ron [1] </b>

Trong phần này tài liệu giới thiệu các phương pháp huấn luyện mạng nơ ron trong đó đề cập tới mạng nơ ron truyền thẳng nhiều lớp MLP và mạng RBF với thuật toán huấn luyện lan truyền ngược sai số.

<b>1.5.1. Mạng nơ ron MLP và thuật toán huấn luyện lan truyền ngược sai số </b>

Thuật toán học lan truyền ngược là một thuật toán trong lịch sử phát triển mạng nơ ron nhân tạo, thuật toán được ứng dụng cho mạng truyền thẳng nhiều lớp.

Mạng nơ ron sử dụng thuật toán huấn luyện lan truyền ngược lan truyền ngược được gọi là mạng BP (Back Propagation Network).

Xét một mạng truyền thẳng ba lớp như hình 1.14:

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

22

<i><b>Hình 1.14. Mạng truyền thẳng ba lớp truyền ngược sai số </b></i>

<i>Giả sử tập mẫu dùng để huấn luyện mạng gồm p mẫu {x<small>k</small> , d<small>k</small> }, k=1, 2,.., p thủ tục BP xây dựng một chuỗi p các hàm sai số. </i>

<i>E<small>k</small>(W) = </i><sup>1</sup>

<small>2</small>|𝑦<small>𝑘</small> − 𝑑<small>𝑘</small>|<i><small>2</small> = </i><sup>1</sup>

<small>2</small>∑<small>𝑚</small> <sub>(𝑑</sub><sub>𝑗</sub><small>𝑘</small> − 𝑦<sub>𝑗</sub><small>𝑘</small>)

<small>𝑗=1</small> <i><sup>2</sup></i>,

<i>trong đó: m - số rơ ron đầu ra; d<small>j</small><sup>k</sup> - thành phần thứ j của véc tơ ra mong muốn d<small>k</small> , y<small>j</small><sup>k</sup></i>

<i>- thành phần thứ j của véc tơ ra y<small>k</small> do lan truyền đầu vào x<small>k</small></i>.

Các hàm sai số này lần lượt được tối thiểu trong không gian các trọng số. Giá trị hàm

<i>sai số E<small>k</small></i> đối với một mẫu được tính tốn dựa trên giá trị các trọng số hiện tại.

Các giá trị trọng số này sau đó được hiệu chỉnh và trở thành các giá trị trọng số hiện

<i>tại để tính giá trị hàm sai số tiếp theo E<small>k+1</small></i>.

Dễ nhận thấy, cách làm này có khả năng tạo ra sự dao động trong quá trình hiệu chỉnh các trọng số. Kết quả hiệu chỉnh hiện tại có thể làm hỏng kết quả hiệu chỉnh ở các lần trước đó.

Giải pháp thay thế là xây dựng một hàm sai số duy nhất bằng cách tích luỹ các sai số

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

23

+ Trước tiên ta xét lan truyền tín hiệu qua từng lớp mạng: lớp nhập, lớp ẩn và lớp xuất.

<i>Giả sử tín hiệu đưa vào mạng nơ ron x = (x<small>1</small>, x<small>2</small>, …, x<small>m</small>) với m là số nơ ron trong lớp </i>

<i>nhập, l là số nơ ron trong lớp ẩn và n là số nơ ron trong lớp xuất. Các nơ ron trong lớp nhập </i>

nhận và truyền tín hiệu sang lớp ẩn. Đầu vào các nơ ron (nút) trong lớp ẩn thứ nhất có dạng:

+ Sau khi lan truyền thẳng tín hiệu qua mạng, sai số của tín hiệu ra sẽ được lan truyền

<i>ngược để điều chỉnh các trọng số, mục tiêu ở đây là cực tiểu sai số giữa tín hiệu ra y = (y<small>1</small>, </i>

<small>2</small>∑<small>𝑛</small> <sub>(𝑑</sub><sub>𝑖</sub><sub> − 𝑦</sub><sub>𝑖</sub><sub>)</sub><small>𝑖=1</small> <i><sup>2</sup>= </i><sup>1</sup>

trong đó <i><small>oi</small> là tín hiệu sai số, i là số thứ tự của nút i của lớp xuất, tín hiệu sai số được </i>

định nghĩa như sau: 𝛿<sub>𝑜𝑖</sub> = − <sup>𝜕𝐸</sup>

<small>𝜕𝑛𝑒𝑡</small><sub>𝑖</sub> = − [<sup>𝜕𝐸</sup>

<small>𝜕𝑦</small><sub>𝑖</sub>] [ <sup>𝜕 𝑦</sup><small>𝑖</small>

<small>𝜕𝑛𝑒𝑡</small><sub>𝑖</sub>] = [𝑑<i><small>i</small> – y<small>i</small>][a’(net<small>i</small></i>)] (1.34)

<i>với net<small>i</small> là tổng vào của nơ ron thứ i của lớp xuất và a'(net<small>i</small>) = </i><i>a(net<small>i</small>)/ net<small>i</small></i>

Trọng số liên kết giữa lớp ẩn và lớp nhập cũng được điều chỉnh theo phương pháp giảm gradient, như sau:

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

24 𝛥𝑤<sub>𝑞𝑗</sub> = −𝜂 [ <sup>𝜕𝐸</sup>

𝛥𝑣<sub>𝑞𝑗</sub> = 𝜂 ∑<sup>𝑛</sup><sub>𝑖=1</sub>[𝛿<sub>𝑜𝑖</sub>𝑤<sub>𝑖𝑞</sub>]𝑎’(𝑛ⅇ𝑡<sub>𝑞</sub>)𝑥<sub>𝑗</sub> = 𝜂𝛿<sub>ℎ𝑞</sub>𝑥<sub>𝑗</sub> (1.37) trong đó <i><small>hq</small> là tín hiệu lỗi của nơ ron thứ q ở tầng ẩn và được định nghĩa: </i>

Ví dụ: Xét một mạng BP đơn giản như hình 1.15, mỗi nơ ron của mạng sử dụng hàm

<i>kích hoạt sigmond lưỡng cực y = a(net) = 1 ∕ (1 + ⅇ</i><small>−𝜆𝑛𝑒𝑡</small>), với net là tổng đầu vào của nơ

<i>ron, khi  = 1 ta có a’(net) = y(1 - y) </i>

<b>Hình 1.15. Một ví dụ về mạng nơ ron truyền thẳng </b>

Ta có:

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

25 𝛿<sub>9 </sub><i>= 𝑎′(net<small>9</small>)(d – y<small>9</small>) = y<small>9</small>(1 – y<small>9</small>)(d – y<small>9</small>) </i>

𝛿<sub>6</sub> = 𝑎′(𝑛ⅇ𝑡<i><small>6</small>) ∑</i><sup>9</sup><sub>𝑖=9</sub>𝑤<sub>𝑖6</sub>𝛿<sub>𝑖</sub> = 𝑦<sub>6</sub><i>(1 – y</i><small>6</small><i>)w</i><small>96</small>𝛿<sub>9</sub>𝛿<sub>7</sub> = 𝑎′(𝑛ⅇ𝑡<i><small>7</small>) ∑</i><sup>9</sup><sub>𝑖=9</sub>𝑤<sub>𝑖7</sub>𝛿<sub>𝑖</sub> = 𝑦<sub>7</sub><i>(1 – y</i><small>7</small><i>)w</i><small>97</small>𝛿<sub>9</sub>𝛿<sub>3</sub> = 𝑎′(𝑛ⅇ𝑡<i><small>3</small>) ∑</i><small>7</small> 𝑤<sub>𝑟3</sub>𝛿<sub>𝑟</sub>

<small>𝑟=6</small> <i>= 𝑦</i><sub>3</sub><i>(1 – y</i><small>3</small><i>)(w</i><small>63</small>𝛿<sub>6</sub><i>+ w</i><small>73</small>𝛿<sub>7</sub><i>) </i>

𝛿<sub>4</sub> = 𝑎′(𝑛ⅇ𝑡<i><small>4</small>) ∑</i><small>7</small> 𝑤<sub>𝑟4</sub>𝛿<sub>𝑟</sub>

<small>𝑟=6</small> = 𝑦<sub>4</sub><i>(1 – y</i><small>4</small><i>)(w</i><small>64</small>𝛿<sub>6</sub><i>+ w</i><small>74</small>𝛿<sub>7</sub>) Khi đó các trọng số được cập nhật theo nguyên tắc sau:

<i>Ở trên các trọng số được điều chỉnh theo từng mẫu đơn, gọi là learning step. Sau khi </i>

các mẫu được đưa vào hết thì một thời kỳ được thiết lập (epoch). Các thời kỳ huấn luyện được tiếp tục cho đến khi đạt tới điều kiện dừng của mạng.

Sau đây ta viết thuật toán, thuật toán này được viết cho một mạng truyền thẳng tổng

<i>quát có Q lớp. </i>

<i><b>Algorithm BP: Back-propagation Learning Rule </b></i>

<i>Xét mạng nơ ron với Q lớp lan truyền thẳng, q = 1,2, …,Q và <small>q</small>net<small>i</small></i> và <i><small>q</small>y<small>i</small></i> là đầu vào

<i>và đầu ra của nơ ron thứ i trong lớp q tương ứng. Mạng có m nút nhập, n nút xuất. Gọi <small>q</small>w<small>ij</small></i>

<i>là trọng số liên kết từ nơ ron j lớp q-1 đến nơ ron i lớp q. </i>

<i><b>Input: Tập mẫu huấn luyện {(x</b><small>(k)</small></i> , d<i><small>(k)</small> )}, k = 1,2, …, p </i>

<b>Bước 0. (khởi tạo): </b>

Chọn hệ số học   0 và E<small>max</small> (sai số lớn nhất), Khởi tạo trọng số với giá trị ngẫu nhiên nhỏ. Đặt E = 0 và k = 1.

<i><b>Bước 1. (vòng luyện): Sử dụng mẫu đầu vào thứ k cho lớp nhập (q = 1): </b></i>

<i><small>q</small>y<small>i</small></i> = <i><small>1</small>y<small>i</small> = x<small>i</small><sup>(k)</sup></i>

<b>Bước 2. (Lan truyền thẳng tín hiệu): </b>

Lan truyền thẳng tín hiệu qua mạng theo cơng thức:

<b>Bước 4. (Lan truyền ngược sai số): lan truyền ngược sai số để điều chỉnh trọng số và tính </b>

tín hiệu sai số <i><small>q-1</small></i><i><small>i</small></i> cho lớp trước.

</div>

×