Cấu trúc của một noron được mô tả như hình dưới đây: Hình 1.2: Một noron nhân tạo Các thành phần cơ bản của một noron nhân tạo bao gồm: - Tập các đầu vào: Là các tín hiệu vào input signa
Trang 1LỜI CẢM ƠN
Trước hết, em xin chân thành cảm ơn quý thầy cô trường Đại học CôngNghệ Thông Tin Và Truyền Thông, đặc biệt các thầy cô trong khoa Công NghệThông Tin đã tận tình dạy dỗ, truyền đạt cho chúng em nhiều kiến thức quý báu
Em xin gửi lời biết ơn sâu sắc đến thầy ThS Lê Anh Tú đã dành nhiều thờigian và tâm huyết để hướng dẫn nghiên cứu và giúp đỡ em hoàn thành đồ án này Thầy đã mở cho em những vấn đề khoa học rất lý thú, hướng em vàonghiên cứu những lĩnh vực hết sức thiết thực và bổ ích, đồng thời tạo điều kiệnthuận lợi cho em học tập và nghiên cứu
Xin chân thành cảm ơn các bạn trong lớp, Trường Đại Học Công NghệThông Tin Và Truyền Thông đã giúp đỡ, động viên tôi rất nhiều trong quá trìnhthực hiện đồ án này
Mặc dù đã có nhiều cố gắng hoàn thiện bằng năng lực và sự nhiệt tìnhcủa mình, tuy nhiên vẫn không tránh khỏi những thiếu sót Em rất mong được sựgóp ý của các thầy cô và các bạn
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 06 năm 2012.
Sinh viên
CHU VĂN NGỌC
1
Trang 2LỜI CAM ĐOAN
Em xin cam đoan về nội dung đồ án không sao chép nội dung cơ bản từ các
đồ án khác, và sản phẩm của đồ án là của chính bản thân nghiên cứu và xây
dựng nên
Thái Nguyên, tháng 06 năm 2012
Người cam đoan
CHU VĂN NGỌC
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
LỜI NÓI ĐẦU 5
CHƯƠNG 1: TỔNG QUAN VỀ MẠNG NORON NHÂN TẠO 8
1.1 Lịch sử phát triển mạng noron 8
1.2 Tổng quan về mạng nơron 9
1.2.1 Nơron sinh học 9
1.2.2 Noron nhân tạo 10
1.3 Mạng nơron nhân tạo 13
1.3.1 Định nghĩa mạng nơron nhân tạo 13
1.3.2 Mô hình mạng nơron nhân tạo 13
1.3.3 Các thuật toán học 18
1.3.3.2 Thuật toán huấn luyện mạng 19
1.4 Thuật toán lan truyền ngược và Giải thuật Back propagation minh họa 24
1.4.1 Thuật toán lan truyền ngược 24
1.4.2 Giải thuật Back propagation minh họa 25
1.4.3 Một số vấn đề gặp phải khi sử dụng mạng Back Perceptoron 34
CHƯƠNG 2 : 37ỨNG DỤNG MẠNG NƠRON TRONG BÀI TOÁN NHẬN DẠNG KÍ TỰ 37
2.1 Mô tả bài toán 37
2.2 Hướng phát triển của bài toán 37
2.3 Trình tự các bước giải quyết giải quyết bài toán 38
2.3.1 Ảnh đầu vào 38
2.3.2 Tách dòng kí tự 38
2.3.3 Tách kí tự 39
2.3.4 Tìm giới hạn kí tự 40
2.3.5 Ánh xạ vào ma trận 42
2.3.6 Thiết kế mạng noron 43
2.3.7 Huấn luyện mạng noron 44
3
Trang 42.3.8 Nhận dạng ảnh kí tự 47
2.3.9 Bảng mã ASCII sử dụng cho chương trình 48
CHƯƠNG 3: CHƯƠNG TRÌNH THỬ NGHIỆM 50
3.1 Môi trường thực nghiệm 50
3.2 Giao diện chương trình 50
3.4 Thực nghiệm 51
3.4.1 Thực nghiệm quá trình tính giá trị một số tham số đầu vào 51
3.4.2 Thực nghiệm huấn luyện mạng 53
3.4.3 Thực nghiệm nhận dạng 56
KẾT LUẬN 60
TÀI LIỆU THAM KHẢO 61
Trang 5
DANH MỤC HÌNH ẢNH
Hình 1.1: Mô hình noron sinh học 9
Hình 1.2: Một noron nhân tạo 10
Hình 1.3: Một số hàm truyền thông dụng 12
Hình 1.4: Mạng noron nhân tạo đơn giản 14
Hình 1.5: Mạng truyền thẳng với một mức nơron 15
Hình 1.6: Mạng dẫn tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra 16 Hình 1.8: Mạng phản hồi có các nơron ẩn 17
Hình 1.9: Minh họa giải thuật Back Propagation 25
Hình 1.10: Các thành phần của noron nhân tạo 26
Hình 1.11: Minh họa giải thuật Back Propagation 27
Hình 1.12: Quá trình lan truyền tiến 27
Hình 1.13: Tính giá trị lỗi ở đầu ra 29
Hình 1.14: Lan truyền ngược 29
Hình 1.15: Lan truyền ngược 29
Hình 1.16: Lan truyền ngược lớp 2 30
Hình 1.17: Lan truyền ngược 31
Hình 1.18: Lan truyền ngược vòng 2 32
Hình 1.19: Nội suy hàm y = sin(x/3) + v, 0≤ x ≤ 20 35
Hình 2.1: Quá trình tách dòng kí tự 39
Hình 2.2: Quá trình tách kí tự 40
Hình 2.3: Quá trình tìm giới hạn kí tự 41
Hình 2.4: Sơ đồ mạng nơron thiết kế 43
Hình 2.5: Sơ đồ khối quá trình huấn luyện mạng nơron 46
Hình 2.6: Sơ đồ khối quá trình nhận dạng kí tự 47
Hình 3.1: Giao diện chương trình thực nghiệm 50
Hình 3.2: Ảnh đầu dùng để huấn luyện 54
Hình 3.3: File là đầu ra mong muốn 54
Hình 3.4 a : chữ “o_ hoa” 56 Hình 3.4b : chữ “o_thường” 56
5
Trang 6Hình 3.5a : Ảnh kích cỡ cua font Arial 56
Hình 3.5b : Kết quả thu được của font Arial 57
Hình 3.6a : Ảnh vào của font Times New Roman 57
Hình 3.6b : Kết quả thu được của font Times New Roman 57
Hình 3.7a : Kết quả thu được của font Tahoma 58
Hình 3.7b: Kết quả thu được của font Tahoma 58
Trang 7LỜI NÓI ĐẦU
Sự phát triển mạnh mẽ của công nghệ nói chung và công nghệ thông tin nóiriêng đã tạo nên nhiều hệ thống thông tin phục vụ việc tự động hoá Điều này đãtạo ra những dòng dữ liệu khổng lồ Phát hiện tri thức trong cơ sở dữ liệu(Knowledge Discovery in Databases - KDD) là một quá trình hợp nhất các dữliệu từ nhiều hệ thống dữ liệu khác nhau tạo thành các kho dữ liệu, phân tíchthông tin để có được nhiều tri thức tiềm ẩn có giá trị Khai phá dữ liệu là mộttrong những lĩnh vực nghiên cứu của khoa học máy tính hiện nay đang đượcphát triển rất mạnh mẽ Nó kết hợp giữa học máy, công nghệ cơ sở dữ liệu vàmột số chuyên ngành khác để tìm ra những tri thức từ những cơ sở dữ liệu lớn.Trong công nghệ khai phá dữ liệu (Data mining) thì mạng noron nhân tạo làmột hướng tiếp cận được đánh giá cao Hướng tiếp cận này có hàm lượng khoa họclớn và có thể ứng dụng trong thực tiễn để giải quyết nhiều lớp bài toán khác nhau.Trong bài báo cáo này Em sẽ đi sâu tìm hiểu về mạng noron nhân tạo lantruyền ngược Back Perceptoron Đây là một mô hình mạng noron điển hình đãđược nghiên cứu và triển khai rộng rãi trong nhiều lĩnh vực
Nội dung chính của bài báo cáo được tổ chức thành 3 chương có nội dungnhư sau:
- Chương 1: Tổng quan về Mạng Noron nhân tạo
- Chương 2: Ứng dụng mạng noron nhân tạo trong bài toán nhận dạng kí tự
- Chương 3: Chương trình thử nghiệm
7
Trang 8là các thiết bị nhị phân với ngưỡng cố định Kết quả của các mô hình này là cáchàm logic đơn giản.
Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hìnhhóa các nguyên lý của những lý thuyết liên quan tới cách thức con người suynghĩ đã trở thành hiện thực Nathanial Rochester sau nhiều năm làm việc tại cácphòng thí nghiệm nghiên cứu của IBM đã có những nỗ lực đầu tiên để mô phỏngmột mạng noron
Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo (ArtificialIntelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo lẫnmạng noron
Từ những năm sau đó tới năm 1985 đã xuất hiện thêm nhiều phát minh racác mô hình mạng noron nhân tạo khác nhau
Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm vềmạng noron ứng dụng trong tin học (Neural Networks for Computing)
Năm 1987, hội thảo quốc tế đầu tiên về mạng noron của Viện các kỹ sư điện
và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã thu hút hơn
1800 người tham gia
Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứuứng dụng mạng noron để giải quyết các bài toán thực tế được diễn ra ở khắp mọinơi Các ứng dụng mạng noron ra đời ngày càng nhiều và ngày càng hoàn thiệnhơn Điển hình là các ứng dụng: xử lý ngôn ngữ, nhận dạng kí tự nhận dạng tiếngnói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu(Signal Processing), Lọc dữ liệu (Data Filtering),…
Trang 91.2 Tổng quan về mạng nơron
1.2.1 Nơron sinh học
Bộ não con người bao gồm khoảng 1011 noron tham gia vào khoảng 1015kết nối trên các đường truyền Các noron có khả năng nhận, xử lý và truyền cáctín hiệu điện hóa trên các dây thần kinh
Một số cấu trúc của noron được xác định trước lúc sinh ra Một số cấu trúcđược phát triển thông qua quá trình học
Như vậy noron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầuvào, xử lý các tín hiệu này và cho ra một tín hiệu output Tín hiệu output này sau
đó được truyền đi làm tín hiệu đầu vào cho các noron khác
Dựa trên những hiểu biết về noron sinh học, con người xây dựng noronnhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não
Hình 1.1: Mô hình noron sinh học
Phần tử xử lý cơ bản của một mạng nơron sinh học là một nơron, phần tửnày có thể chia làm bốn thành phần cơ bản như sau: dendrites, soma, axon, vàsynaptic
- Dendrites phần nhận tín hiệu đầu vào
- Soma: là hạt nhân
9
Trang 10- Axon: là phần dẫn ra tín hiệu xử lý.
Synaptic: là đường tín hiệu điện hóa giao tiếp giữa các nơron.Kiến trúc cơ
sở này của bộ não con người có một vài đặc tính chung Một cách tổng quát, thìmột nơron sinh học nhận đầu vào từ các nguồn khác nhau, kết hợp chúng tại vớinhau, thực thi tổ hợp phi tuyến chúng để cho ra kết quả cuối cùng ở đầu ra Hình1.1 chỉ ra mối quan hệ giữa bốn phần tử của một nơron sinh học
1.2.2 Noron nhân tạo
Một noron là một đơn vị xử lý thông tin và là thành phần cơ bản của mộtmạng noron Cấu trúc của một noron được mô tả như hình dưới đây:
Hình 1.2: Một noron nhân tạo
Các thành phần cơ bản của một noron nhân tạo bao gồm:
- Tập các đầu vào: Là các tín hiệu vào (input signals) của noron, các tín
hiệu này thường được đưa vào dưới dạng một vector N chiều
- Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là
trọng số liên kết – Synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ j
với noron k thường được kí hiệu là wkj Thông thường, các trọng số này đượckhởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liêntục trong quá trình học mạng
- Bộ tổng (Summing function): Thường dùng để tính tổng của tích các đầu
vào với trọng số liên kết của nó
- Ngưỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa vào
Trang 11như một thành phần của hàm truyền.
- Hàm truyền (Transfer function) : Hàm này được dùng để giới hạn phạm
vi đầu ra của mỗi noron Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng
đã cho Thông thường, phạm vi đầu ra của mỗi noron được giới hạn trong đoạn[0,1] hoặc [-1, 1] Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặcphi tuyến Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinhnghiệm của người thiết kế mạng Một số hàm truyền thường sử dụng trong các
mô hình mạng noron được đưa ra trong bảng bên dưới
Đầu ra: Là tín hiệu đầu ra của một noron, với mỗi noron sẽ có tối đa là mộtđầu ra Xét về mặt toán học, cấu trúc của một noron k, được mô tả bằng cặp biểuthức
Uk=
1w
k
kj j j
là tín hiệu đầu ra của noron
Như vậy tương tự như noron sinh học, noron nhân tạo cũng nhận các tínhiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tíchthu được rồi gửi kết quả tới hàm truyền), và cho một tín hiệu đầu ra (là kết quảcủa hàm truyền)
11
Trang 12Một số hàm truyền thông dụng
Hình 1.3: Một số hàm truyền thông dụng
Hàm vùng tuyến tính: Đối với loại hàm này chúng ta có
Trang 13Dạng hàm này có thể được xem như môt xấp xỉ của một bộ khuếch đại phi tuyến Hàm sigma: Hàm sigma là dạng chung nhất của hàm kích hoạt được sửdụng trong cấu trúc mạng noron nhân tạo Nó là một hàm tăng và nó thể hiện một
sự trung gian giữa tuyến tính và phi tuyến Một ví dụ của hàm này là hàmlogistics, xác định như sau:
Ở đó a là tham số độ dốc của hàm sigma Bằng việc biến đổi tham số a,chúng ta thu được các hàm sigma với các độ dốc khác nhau Thực tế, hệ số góctại v=0 là a/4 Khi tham số hệ số góc tiến tới không xác định, hàm sigma trởthành một hàm ngưỡng đơn giản Trong khi một hàm ngưỡng chỉ có giá trị là 0hoặc 1, thì một hàm sigma nhận các giá trị từ 0 tới 1 Cũng phải ghi nhận rằnghàm sigma là hàm phân biệt, trong khi hàm ngưỡng thì không (Tính phân biệtcủa hàm là một đặc tính quan trọng trong lý thuyết mạng noron)
Các hàm kích hoạt được định nghĩa trong các công thức bên trên đều trongphạm vi từ 0 đến 1 Đôi khi có những yêu cầu xây dựng hàm kích hoạt trongphạm vi từ -1 đến 1, trong trường hợp này hàm kích hoạt được giả định có dạngđối xứng qua gốc toạ độ (hay có thể gọi là dạng phản đối xứng); nghĩa là hàmkích hoạt là một hàm lẻ
1.3 Mạng nơron nhân tạo
1.3.1 Định nghĩa mạng nơron nhân tạo
Mạng noron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng
noron, là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin củacác hệ noron 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 noron) 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 đó
1.3.2 Mô hình mạng nơron nhân tạo
Một mạng noron là một mô hình tính toán được xác định qua các thamsố: kiểu noron (như là các nút nếu ta coi cả mạng noron là một đồ thị), kiến trúckết nối (sự tổ chức kết nối giữa các noron) và thuật toán học (thuật toán dùng để
13
Trang 14học cho mạng).
Về bản chất một mạng noron có chức năng như là một hàm ánh xạ F: X->Y,trong đó X là không gian trạng thái đầu vào (input state space) và Y là khônggian trạng thái đầu ra (output state space) của mạng Các mạng chỉ đơn giản làlàm nhiệm vụ ánh xạ các vector đầu vào x thuộc X sang các vector đầu ra y thuộc
Y thông qua các trọng số Tức là y=F(x)=s(W, x), trong đó W là ma trận trọng sốliên kết
Sơ đồ của hình dưới chỉ ra mô hình của mạng noron nhân tạo dạng dơngiản:
Hình 1.4: Mạng noron nhân tạo đơn giản
Mô hình mạng nơron ở trên gồm 3 lớp: lớp nhập (input layer), lớp ẩn (hiddenlayer) và lớp xuất (output layer) Mỗi nút trong lớp nhập nhận giá trị của mộtbiế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ớpnà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
Mạng nơron được xây dựng như trên là mạng gồm 3 lớp mắc nối tiếp nhau
đi từ đầu vào đến đầu ra Trong mạng không tồn tại bất kỳ một mạch hồi tiếp nào.Một mạng nơron có cấu trúc như vậy gọi là mạng một hướng hay mạng truyền
Trang 15thẳng một hướng (Feed forward network), và có cấu trúc mạng ghép nối hoàntoàn (vì bất cứ một nơron nào trong mạng cũng được nối với một hoặc vài nơronkhác) Mạng nơron bao gồm một hay nhiều lớp trung gian được gọi là mạngMultilayer Perceptrons (MLP- Network).
1.3.2.1 Các kiểu mô hình mạng noron
Cách thức kết nối các noron trong mạng xác định kiến trúc (topology) củamạng Các noron trong mạng có thể kết nối đầy đủ (fully connected) tức là mỗinoron đều được kết nối với tất cả các noron khác, hoặc kết nối cục bộ (partiallyconnected) chẳng hạn chỉ kết nối giữa các noron trong các tầng khác nhau
Người ta chia ra hai loại kiến trúc mạng chính:
a Kiến trúc truyền thẳng
Kiến trúc truyền thẳng: là kiểu kiến trúc mạng không có các kết nối ngược
trở lại từ các noron đầu ra về các noron đầu vào; mạng không lưu lại các giá trịoutput trước và các trạng thái kích hoạt của noron Các mạng noron truyền thẳngcho phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu
ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó Các mạng kiểu Perceptron
là mạng truyền thẳng
Có hai dạng truyền:
+ đơn mức: Trong một mạng nơron phân mức, các nơron được tổ chức dưới
dạng các mức Với dạng đơn giản nhất của mạng phân mức, chúng ta có một mứcđầu vào gồm các nút nguồn chiếu trực tiếp tới mức đầu ra gồm các nơron
Mức đầu vào Mức đầu ra
Hình 1.5: Mạng truyền thẳng với một mức nơron
15
Trang 16Như vậy, mạng thực sự là không có chu trình Nó được minh hoạ trong hình1.5 cho trường hợp ba nút đối với cả mức đầu ra và đầu vào Một mạng như vậyđược gọi là một mạng đơn mức “Đơn mức” tức là chỉ có một mức, chính là mức đầu
ra gồm các nút tính toán (các nơron) Chúng ta không tính mức đầu vào của các nútnguồn vì không có tính toán nào được thực hiện ở đây
+ đa mức: Lớp thứ hai của một mạng nơron dẫn tiến được phân biệt bởi sự có
mặt của một hay nhiều mức ẩn, mà các nút tính toán của chúng được gọi là cácNơron ẩn hay các đơn vị ẩn (thuật ngữ “ẩn” ở đây mang ý nghĩa là không tiếpxúc với môi trường) Chức năng của các nơron ẩn là can thiệp vào giữa đầu vào
và đầu ra của mạng một cách hữu hiệu Bằng việc thêm một vài mức ẩn, mạng cókhả năng rút ra được các thống kê bậc cao của tín hiệu đầu vào Khả năng cácnơron ẩn rút ra được các thống kê bậc cao đặc biệt có giá trị khi mức đầu vào cókích thước lớn
Mạng nơron trong hình 1.6 được gọi là kết nối đầy đủ với ý nghĩa là tất cảcác nút trong mỗi mức của mạng được nối với tất cả các nút trong mức tiếp sau.Nếu một số kết nối không tồn tại trong mạng, chúng ta nói rằng mạng là kết nốikhông đầy đủ
Mức đầu vào Mức ẩn Mức đầu ra gồm các nút gồm các gồm các nguồn nơron ẩn nơron đầu ra
Hình 1.6: Mạng dẫn tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra
Trang 18b Kiến trúc phản hồi
Kiến trúc phản hồi: là kiểu kiến trúc mạng có các kết nối từ noron đầu ra tới
noron đầu vào Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theokhông chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc vào các trạngthái trước đó của mạng
Trang 191.3.2.2 Đặc trưng của mạng neural
Một số khái niệm cần biết
Học trong mạng noron là quá trình thay đổi giá trị của w để mạng có thểđưa ra được kết quả mong muốn tối ưu
Sự khác nhau giữa giá trị thật của mẫu và kết quả dự đoán của mạng gọi làlỗi Quá trình học sẽ tìm các wi* để lỗi nhỏ nhất
1.3.3.1 Các phương pháp học
a Học có giám sát
Là quá trình học có sự tham gia giám sát của một “thầy giáo” Cũng giốngnhư việc ta dạy một em nhỏ các chữ cái Ta đưa ra một chữ “a” và bảo với em đórằng đây là chữ “a” Việc này được thực hiện trên tất cả các mẫu chữ cái Sau đókhi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi em đóđây là chữ gì? Với học có giám sát, số lớp cần phân loại đã được biết trước.Nhiệm vụ của thuật toán là phải xác định được một cách thức phân lớp sao chovới mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó
b Học không giám sát
Là việc học không cần có bất kỳ một sự giám sát nào Trong bài toán họckhông giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x1, x2, ,xN)}với (x1, x2, ,xN) là vector đặc trưng của mẫu huấn luyện Nhiệm vụ của thuậttoán là phải phân chia tập dữ liệu D thành các nhóm con, mỗi nhóm chứa cácvector đầu vào có đặc trưng giống nhau Như vậy với học không giám sát, số lớpphân loại chưa được biết trước, và tùy theo tiêu chuẩn đánh giá độ tương tự giữacác mẫu mà ta có thể có các lớp phân loại khác nhau
19
Trang 20c Học tăng cường
Đôi khi còn được gọi là học thưởng-phạt (reward-penalty learning), là sự
tổ hợp của cả hai mô hình trên Phương pháp này cụ thể như sau: Với vector đầuvào, quan sát vector đầu ra do mạng tính được Nếu kết quả được xem là “tốt” thìmạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ
bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống Do đó họctăng cường là học theo nhà phê bình (critic), ngược với học có giám sát là họctheo thầy giáo
1.3.3.2 Thuật toán huấn luyện mạng
a Thuật toán học mạng nơron truyền thẳng một lớp
Xét trường hợp perceptron sử dụng hàm kích hoạt ngưỡng:
i i
t w v
t w v output
1
1 ,
1
, 1
(1.1)Nếu ta cho w0=-t và v0=1, ta có thể viết lại
i i i
d
w v
w v output
0 0
0 0 ,
1
0 ,
1
(1.2)Thuật toán:
Thuật toán học của perceptron hay mạng neural một lớp gồm 3 bước chính:Bước 1: Khởi tạo:
Khởi tạo trọng số w (0 hoặc ngẫu nhiên)
Trang 21Phương trình w.v=0 là chính là siêu phẳng trong không gian d-chiều, suy raperceptron có khả năng phân lớp tuyến tính, có khả năng giải bài toán quy hồituyến tính.
Hạn chế:
Không thể phân lớp phi tuyến
Giải pháp: sử dụng mạng neural nhiều tầng MLP
b Thuật toán học của mạng neural nhiều lớp
Huấn luyện mạng neural nhiều lớp sử dụng thuật toán Lan truyền ngược
gồm hai quá trình: Quá trình truyền tuyến tính và quá trình truyền ngược:
Quá trình truyền tuyến tính: Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để:1,Thay đổi giá trị của trọng số liên kết W của các neural trong mạng biểu diễnđược dữ liệu học
2.Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và kết quả
dự đoán của mạng gọi là lỗi (học có giám sát)
Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quátrình huyến luyện(học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất
Thuật toán:
Xét mạng neural 3 lớp : input, hiden và output
Hàm kích hoạt các neural : logistic (sigmoid).g(x)= (1.3)
Bước 1: Khởi tạo trọng số w ngẫu nhiên nhỏ
Bước 2 : Chọn lớp đầu vào x và đính nó vào lớp đầu vào
Bước 3 : Truyền sự kích hoạt qua trọng số đến khi kich hoạt các neural đầu ra.Bước 4: Tính đạo hàm riêng “δE” theo trọng số cho lớp xuất sử dụngE” theo trọng số cho lớp xuất sử dụngGRADIENT của hàm lỗi
Bước 5: Tính đạo hàm riêng “δE” theo trọng số cho lớp xuất sử dụngE” theo trọng số cho lớp ẩn sử dụng GRADIENTcủa hàm lỗi
Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1)-µ(δE” theo trọng số cho lớp xuất sử dụngE/ δE” theo trọng số cho lớp xuất sử dụng Wi)
Bước 7: quay lai “Bước 2” cho đến “Bước 6” cho tất cả các mẫu
Trong đó: GRADIENT hàm lỗi
21
Trang 22Đối với các neural lớp đầu ra:
Hàm lỗi:
2)1(
2
1)
E
(1.4)( t là giá trị thật của mẫu huấn luyện)
Đạo hàm riêng của hàm lỗi theo trọng số b:
b
v v
z z
E b
0 ,
1
) 1 (
) (
i b
v
z z v
g v z
t z z E
i
Đặt:
) 1 ( ) (
E p
i p b
E
i i
(1.6)Đối với lớp ẩn :
Trang 23
Đạo hàm riêng của hàm lỗi theo trọng số:
a
u u
y y
E a
0,11
)1()(
1
j c
j a
u
y y u
y
b y
v
p z z t z v
z z
E y
E
j j
i i
i i i i i i
i i
K
i
i i
i i
23
Trang 24)1(
1
y y b p u
y y
E
i i
E
i (1.8) Sau khi tính được đạo hàm riêng của hàm lỗi theo từng trọng số, trọng số sẽđược điều chỉnh bằng cách trừ bớt đi 1 lượng bằng tích của đạo hàm riêng và tốc
độ học:
i i
E w
Mạng liệt: xảy ra khi những trọng số được điều chỉnh tới những giá trị rấtlớn Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạtgiá trị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ cómột giá trị kích hoạt rất gần 0 hoặc rất gần 1 Giá trị hiệu chỉnh trọng số gần 0, vàquá trình huấn luyện có thể đi đến một trạng thái dừng ảo
Cực tiểu địa phương: bề mặt sai số của mạng rất phức tạp đầy những ngọnđồi và những thung lũng Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại mộtcực tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh Những phươngpháp thống kê có thể giúp để tránh cái bẫy này, nhưng chúng làm chậm Mộtphương án khác là tăng thêm số lượng đơn vị ẩn Như vậy sẽ làm việc trongkhông gian sai số nhiều chiều, nên cơ hội gặp bẫy nhỏ hơn Tuy nhiên việc tăngcũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên
Trang 251.4 Thuật toán lan truyền ngược và Giải thuật Back propagation minh họa
1.4.1 Thuật toán lan truyền ngược
Xem xét một mạng với Q lớp lan truyền ngược, q= 1,2, ,Q; với và lần lượt là đầu vào và đầu ra của khối trong lớp thứ q.Mạng có m nơron đầu vào,
l nơron ở lớp ẩn, và n nơron đầu ra Với là trọng số liên kết từ nơron thứ jtrong lớp q – 1 tới nơron thứ i trong lớp q
Đầu vào: các cặp huấn luyện { ) | k=1,2, ,p}, ở đó giá trị đầu vàocủa phần tử cuối cùng bằng 1, tức là
Bước 1: Khởi tạo các trọng số ngẫu nhiên nhỏ Chọn hằng số và
(sai số lớn nhất cho phép) Cho sai số E= 0 và k= 1
Bước 2: Chọn lớp đầu vào và đính nó vào lớp đầu vào
Bước 3: Lan truyền tín hiệu từ lớp vào tới lớp ra (lan truyền thẳng)
(1.10)
Bước 4: Tính toán lỗi đầu ra
E (1.11)
(1.12)
Bước 5: Lan truyền ngược sai số
Lan truyền ngược sai số để điều chỉnh các trọng số và tính toán tín hiệu lỗi cho các lớp trước
25
Trang 26(1.14)
Bước 6: Kiểm tra điều kiện lặp
Kiểm tra xem đã lặp hết các giá trị mẫu huấn luyện chưa, nếu chưa quay vònghết (tức là k< p) tăng k= k+ 1, và nhảy tới bước 1, ngược lại (tức k = p) thìchuyển sang bước 7
Bước 7: Kiểm tra tổng sai số, kiểm tra sự khác nhau giữa tổng sai số và sai sốcho phép
Nếu tổng sai số nhỏ hơn sai số cho phép (tức là E< E max) thì kết thúc quátrình huấn luyện, và ghi lại các giá trị trọng số cuối cùng
Trái lại, thì lại gán E= 0, k= 1 và bắt đầu một quá trình huấn luyện mới bằngcách nhảy tới bước 1
1.4.2 Giải thuật Back propagation minh họa
b Giải thuật Back propagation minh họa
Giải thuật chia làm hai giai đoạn:
- Lan truyền tiến (tính output của các noron)
- Lan truyền ngược
Để minh họa cho giải thuật, chúng ta sẽ xem xét giải thuật Back propagationhiệu chỉnh các weights của một mạng noron gồm ba lớp với 2 đầu vào và mộtđầu ra như hình bên dưới:
Trang 27Hình 1.9: Minh họa giải thuật Back Propagation
Mỗi noron sẻ gồm hai thành phần chính Thứ nhất là các trọng số weights
và các trị số đầu vào x Phần thứ 2 là hàm kích hoạt f Và y = f(e) là đầu ra củamột noron
Hình 1.10: Các thành phần của noron nhân tạo
Để dạy cho mạng chúng ta cần phải có các mẫu.Mỗi mẫu bao gồm hai thànhphần đó là:
Trang 28Chúng ta sẻ bắt đầu với hai đầu vào x1, x2 Từ đó chúng ta có thể tính đượcđầu ra của mỗi noron trong mạng Hình dưới minh họa cho sự lan truyền các giátrị trong mạng
Trong đó :
và noron n trong tầng input của mạng
-Yn : tượng trưng cho đầu ra của noron n
Hình 1.11: Minh họa giải thuật Back Propagation
Trang 29Hình 1.12: Quá trình lan truyền tiến
29
Trang 30Sự lan truyền của các tín hiệu từ lớp đầu vào đến lớp ẩn
Kí hiệu wmn biểu diễn trọng số weights của kết nối giữa đầu ra của noron m
và là đầu vào của noron n
Sự lan truyền của tín hiệu đến lớp đầu ra:
Bước tiếp theo của giải thuật là so sánh giá trị đầu ra của mạng là Y với giá trị
z là kết quả mong muốn Hiệu giữa chúng ta gọi là tín hiệu lỗi của lớp đầu ra
Trang 31Hình 1.13: Tính giá trị lỗi ở đầu ra
Chúng ta không thể tính được các tín hiệu lổi của các noron một cách trựctiếp Bởi vì chúng ta không có được đầu ra của mổi noron Nên chúng ta sẻ lantruyền tín hiệu lỗi lùi lại đến tất cả các noron là tín hiệu lỗi ở noron n là tín hiệu lỗi ở noron n
Bước 2: Lan truyền ngược:
Hình 1.14: Lan truyền ngược
Hình 1.15: Lan truyền ngược
31
Trang 32Chú ý: Các trọng số weights wmn được dùng để tính toán trong trường hợplan truyền ngược này bằng với các trọng số weights wmn trong lan truyền tiến.Chỉ có chiều của lan truyền tín hiệu là thay đổi Kỹ thuật này được dùng cho tất
cả các lớp của mạng Ta có thể thấy bằng hình ảnh :
Hình 1.16: Lan truyền ngược lớp 2
hiệu lỗi này để thay đổi giá trị của các trọng số
Trong giải thuật Back propagation trọng số thay đổi dựa vào đạo hàm củahàm kích hoạt trong mỗi noron
Trong đó:
- df e( )
de : là đạo hàm của hàm kích hoạt