MẠNG NEURON NHÂN TẠO VÀ GIẢI THUẬT LAN TRUYỀN NGƯỢC

21 1.3K 3
MẠNG NEURON NHÂN TẠO VÀ GIẢI THUẬT LAN TRUYỀN NGƯỢC

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƢỜNG ĐẠI HỌC QUỐC GIA TP.HCM TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  TIỂU LUẬN KHAI THÁC DỮ LIỆU MẠNG NEURON NHÂN TẠO VÀ GIẢI THUẬT LAN TRUYỀN NGƯỢC GVHD: PGS. TS. ĐỖ PHÚC SVTH: TRƢƠNG HỒNG THÁI MSSV: CH1101041 KHÓA: K6-2011 TP.HCM, 11/2012 am6 1 MỤC LỤC CHƯƠNG 1: GIỚI THIỆU 2 CHƯƠNG 2: GIỚI THIỆU MẠNG NEURON 3 2.1. Giới thiệu về mạng neuron nhân tạo 3 2.2. Perceptron 3 2.2.1. Quy tắc perceptron 5 2.2.2. Quy tắc delta 6 CHƯƠNG 3: GIẢI THUẬT LAN TRUYỀN NGƯỢC 9 3.1. Cấu tạo mạng neuron nhiều tầng 9 3.2. Giải thuật lan truyền ngƣợc 10 3.2.1. Hàm squashing 11 3.2.2. Chi tiết giải thuật lan truyền ngƣợc (sử dụng hàm sigmoid) 12 3.2.3. Một số lƣu ý trong việc áp dụng giải thuật 14 3.3. Nhận xét về giải thuật lan truyền ngƣợc 17 3.3.1. Sự hội tụ và cực tiểu cục bộ 17 3.3.2. Overfitting 17 CHƯƠNG 4: KẾT LUẬN 19 TÀI LIỆU THAM KHẢO 20 Chương 1: Giới thiệu 2 CHƯƠNG 1: GIỚI THIỆU Phân lớp dữ liệu là 1 kỹ thuật quan trọng trong khai mỏ dữ liệu. Mục đích của quá trình phân lớp dữ liệu là để rút trích các mô hình mô tả các lớp dữ liệu hoặc dự đoán xu hƣớng của dữ liệu. Quá trình phân lớp dữ liệu gồm 2 bƣớc: bƣớc huấn luyện (xây dựng bộ phân loại bằng việc phân tích, học các tập huấn luyện) và bƣớc phân loại (phân loại dữ liệu mới hoặc dữ liệu chƣa biết). Ta có nhiều phƣơng pháp để phân loại dữ liệu nhƣ: cây quyết định, mạng Naïve Bayes, mạng neuron, luật kết hợp, giải thuật di truyền… Trong báo cáo này tôi sẽ trình bày phƣơng pháp dùng mạng neuron, cụ thể là giải thuật lan truyền ngƣợc. Chương 2: Giới thiệu mạng neuron 3 CHƯƠNG 2: GIỚI THIỆU MẠNG NEURON 2.1. Giới thiệu về mạng neuron nhân tạo Theo các nghiên cứu khoa học, bộ não của con ngƣời chứa khoảng 10 11 neuron thần kinh, mỗi neuron sẽ có nối kết với khoảng 10 4 neuron khác. Các neuron hoạt động bằng cách truyền các rung động đên các neuron khác thông qua các kết nối. Mô phỏng mạng neuron sinh học, mạng neuron nhân tạo cũng đƣợc tạo ra từ tập hợp những đơn vị có liên kết nội với nhau, tại mỗi đơn vị đó sẽ mang một giá trị thực có thể là output của một đơn vị khác để làm input và sinh ra một giá trị thực output có thể làm input của nhiều đơn vị khác. 2.2. Perceptron Perceptron là mạng neuron đầu tiên có khả năng học. Một perceptron nhận giá trị input là một vector những giá trị thực, output đƣợc tính toán dựa trên một tổ hợp tuyến tính của những giá trị input này:           01 01 ),,,( 110 110 21 nn nn n xwxww xwxww xxxo    trong đó, trọng số i w là các hằng giá trị thực, quyết định sự phân phối của input i x đối với output perceptron. Lƣợng -w 0 là ngƣỡng để sự tổ hợp trọng số của input nn 1 1 2 2 w x + w x + + w x phải vƣợt để cho output perceptron là 1. Perceptron Chương 2: Giới thiệu mạng neuron 4 Ví dụ: Ứng dụng perceptron cho phép tính logic AND: x 1 x 2 Output 1 1 1 1 0 0 0 1 0 0 0 0 Để giải tìm kết quả cho hàm AND, ta có thể tạo 1 perceptron với 2 input, các trọng số 8.0 0 w , 5.0 21  ww . - 1,1 21  xx : 102.0  oxw  : TRUE - 0,1 21  xx : 103.0  oxw : FALSE - 1,0 21  xx : 103.0  oxw : FALSE - 0,0 21  xx : 108.0  oxw : FALSE Ứng dụng của perceptron rất hạn chế, nó chỉ có thể giải các bài toán tuyến tính mà không thể giải quyết các bài toán không phân hoạch tuyến tính đƣợc. Bài toán có thể phân hoạch tuyến tính Chương 2: Giới thiệu mạng neuron 5 Bài toán không thể phân hoạch tuyến tính Để xác định đƣợc các trọng số, ta có thể cho mạng neuron học tập huấn luyện. Ta có thể áp dụng nhiều giải thuật để huấn luyện, tuy nhiên trong báo cáo này tôi chỉ đề cập đến hai giải thuật là: qui tắc perceptron và qui tắc delta. Hai giải thuật này là nền tảng cơ bản cho giải thuật lan truyền ngƣợc. 2.2.1. Quy tắc perceptron Các trọng số sẽ đƣợc gán ngẫu nhiên ở trạng thái bắt đầu, sau đó đƣa vào perceptron để lặp đi lặp lại cho mỗi mẫu huấn luyện; tiếp tục thay đổi trọng số perceptron cho đến khi nó sắp xếp đƣợc mẫu này. Vòng lặp này đƣợc sử dụng nhiều lần cho toàn bộ mẫu huấn luyện, cho đến khi perceptron phân loại đƣợc toàn bộ các mẫu huấn luyện một cách chính xác. Các trọng số sẽ đƣợc thay đổi tại mỗi bƣớc theo luật huấn luyện perceptron: iii www  ii xotw )(   trong đó: t: ngõ ra đích cho mẫu huấn luyện hiện tại, o: ngõ ra đƣợc sinh ra bởi perceptron, η: tỉ lệ học, là một hằng dƣơng, thƣờng rất nhỏ, là mức độ thay đổi của trọng số sau mỗi bƣớc. Phƣơng pháp huấn luyện này đƣợc chứng minh là hội tụ sau một số bƣớc hữu hạn với điều kiện là những mẫu huấn luyện này phải là phân hoạch tuyến tính và một Chương 2: Giới thiệu mạng neuron 6 hằng số η hiệu quả đƣợc sử dụng. Nếu dữ liệu không là phân hoạch tuyến tính thì sự hội tụ không đƣợc đảm bảo. 2.2.2. Quy tắc delta Qui tắc perceptron rất thành công trong việc tìm một vector trọng số khi mẫu huấn luyện là phân hoạch tuyến tính, nhƣng nó lại không hội tụ trong trƣờng hợp dữ liệu không là phân hoạch tuyến tính. Qui tắc delta đƣợc thiết kế để loại bỏ vấn đề trên. Nếu mẫu huấn luyện không là phân hoạch tuyến tính, qui tắc delta sẽ hội tụ về một xấp xỉ phù hợp nhất cho đối tƣợng. Qui tắc delta sử dụng gradient descent để đƣa ra những trọng số mà phù hợp nhất cho những mẫu huấn luyện. Đây là nền tảng cho giải thuật lan truyền ngƣợc – giải thuật để học trong mạng có nhiều đơn vị liên kết nội. Qui tắc huấn luyện delta có thể đƣợc xem nhƣ là một tác vụ huấn luyện một perceptron không có ngƣỡng, đó là một đơn vị tuyến tính cho output o đƣợc tính theo công thức: xwxo  )( Quá trình cập nhật trọng số dựa trên việc tính toán sai số giữa output và kết quả mong muốn (target). Có nhiều cách để xác định sai số này, cách phổ biến nhất là:      Dd dd otwE 2 2 1 )(  trong đó: D: tập hợp những mẫu huấn luyện, t d : output đích cho mẫu huấn luyện d, o d : output của đơn vị tuyến tính cho mẫu huấn luyện d. Chúng ta có thể xem E nhƣ là một hàm số của w  vì output đơn vị tuyến tính o lệ thuộc vào vector trọng số này. Ngoài ra, E lệ thuộc vào các mẫu huấn luyện. Mục tiêu của quá trình huấn luyện là xác định các trọng số để E là cực tiểu, đây là giả thuyết có thể nhất trong dữ liệu huấn luyện. Chương 2: Giới thiệu mạng neuron 7 Quá trình học là quá trình biến đổi các trọng số để đạt đƣợc E cực tiểu. Qua các biến đổi toán học, ta có đƣợc công thức cập nhật trong số theo qui tắc huấn luyện gradient descent: www   idd Dd di xotw )(     trong đó:  : tỉ lệ học x id biểu diễn một thành phần input đơn x i cho mẫu huấn luyện d Chi tiết giải thuật Gradient-descent (training_example,  ): Mỗi mẫu huấn luyện là một cặp ở dạng ( x , t), với x là vector của giá trị input và t là giá trị ouput đích,  là tỉ lệ học (tỉ lệ học). 1. Khởi tạo mỗi w i với một giá trị nhỏ ngẫu nhiên. 2. Lặp cho đến khi gặp điều kiện kết thúc: Khởi tạo gán mỗi i w bằng 0. For each ( x , t), do: Input x cho các đơn vị và tính toán output For each i w , do: () i i i w w t o x       For each w i , do: i i i w w w   Phƣơng pháp trên đƣợc áp dụng rộng rãi trong thực tế. Tuy nhiên, nó có hai vấn đề chính. Thứ nhất là tốc độ hội tự trong một số trƣờng hợp chậm, cần đến hàng ngàn bƣớc. Thứ hai là nếu có nhiều cực tiểu cục bộ trên mặt phẳng lỗi, phƣơng pháp này có thể không tìm đƣợc điểm cục bộ toàn cục. Chương 2: Giới thiệu mạng neuron 8 Cực tiểu cục bộ Mạng neuron 1 tầng có thể sử dụng để giải quyết các vấn đề đơn giản. Đối với các bài toán phức tạp, nó không đủ khả năng để tổng quát vấn đề. Mạng neuron nhiều tầng đã ra đời để giải quyết các vấn đề phức tạp đó. Trong đó, giải thuật lan truyền ngƣợc là một trong những giải thuật cơ bản dùng để học các trọng số cho mạng neuron nhiều tầng. Chương 3: Giải thuật lan truyền ngược 9 CHƯƠNG 3: GIẢI THUẬT LAN TRUYỀN NGƯỢC Trong mạng neuron nhiều tầng, các giá trị output không còn là các tổ hợp tuyến tính của các giá trị input nữa mà là kết quả của 1 hàm phức tạp hơn. Nhiều bài toán thực tế nhƣ nhận diện giọng nói, nhận diện khuôn mặt… đã áp dụng giải thuật này để giúp cho máy học một số ví dụ mẫu, sau đó tính toán output cho cho trƣờng hợp khác. Ứng dụng mạng neuron nhiều tầng trong nhận diện giọng nói [3] 3.1. Cấu tạo mạng neuron nhiều tầng Mạng neuron nhiều tầng cũng đƣợc cấu thành từ các phần tử cơ bản tƣơng tự nhƣ các perceptron. Vì vậy, nó giải quyết đƣợc những bài toán phức tạp hơn. Kiến trúc mạng neuron nhiều tầng [2] [...]... đến output, trong quá trình quay lui, thông tin sẽ đƣợc truyền ngƣợc lại 3.2 Giải thuật lan truyền ngược Giải thuật lan truyền ngƣơc là giải thuật dùng để học trọng số cho mạng neuron nhiều tầng, dùng phƣơng pháp gradient descent để đạt đƣợc sai số nhỏ nhất Giải thuật bao gồm 3 giai đoạn: truyền thông tin input qua tầng hidden đến tầng output, truyền lỗi từ tầng output qua tầng hidden đến tầng hidden,... output Input từ thành phần i đến thành phần j đƣợc kí hiệu là x ji , và trọng số từ thành phần i đến thành phần j đƣợc kí hiệu là w ji Mạng neuron nhiều tầng sử dụng giải thuật lan truyền ngược 12 Chương 3: Giải thuật lan truyền ngược 1 Tạo một mạng neuron gồm nin input, nhidden hidden, nout output 2 Khởi tạo các trọng số trong mạng bằng các giá trị random (thƣờng là các giá trị nhỏ trong khoảng -0.5... tỉ lệ học, khởi tạo ngẫu nhiên các giá trị cho các trọng số Tuy nhiên, qua một số bài toán trong thực tế, giải thuật này thƣờng cho kết quả khá tốt 13 Chương 3: Giải thuật lan truyền ngược 3.2.3 Một số lưu ý trong việc áp dụng giải thuật a Biểu diễn input, output Trong giải thuật lan truyền ngƣợc, cách mã hóa các input và output của hệ thống ảnh hƣởng rất lớn đến tốc độ hội tụ của giải thuật Trong phần... x  ex f ( x)  1  f ( x)1  f ( x) 11 Chương 3: Giải thuật lan truyền ngược Hàm tanh [2] 3.2.2 Chi tiết giải thuật lan truyền ngược (sử dụng hàm sigmoid) Phần này sẽ trình bày chi tiết các bƣớc của giải thuật lan truyền ngƣợc sử dụng hàm squashing là hàm sigmoid    Mỗi mẫu là một cặp ( x, t ) , trong đó, x là vector input của mạng neuron, t là vector output mong muốn đạt đƣợc tƣơng ứng... [1] 16 Chương 3: Giải thuật lan truyền ngược 3.3 Nhận xét về giải thuật lan truyền ngược 3.3.1 Sự hội tụ và cực tiểu cục bộ Nhƣ đã trình bày ở trên, giải thuật lan truyền ngƣợc chỉ đảm bảo là hội tụ về cực tiểu cục bộ, không phải là cực tiểu toàn cục Chúng ta có thể áp dụng phƣơng pháp sau để giảm bớt vấn đề cực tiểu cục bộ: - Sử dụng momen để cập nhật trọng số - Huấn luyện nhiều mạng sử dụng cùng... dựa vào các giá trị lỗi đã tính đƣợc ở giai 10 Chương 3: Giải thuật lan truyền ngược đoạn 2 và các giá trị ở giai đoạn 1, mỗi trọng số của mạng sẽ đƣợc điều chỉnh lại để làm giảm các giá trị lỗi này 3.2.1 Hàm squashing Hàm squashing (còn gọi là hàm activation) đƣợc dùng trong giải thuật lan truyền ngƣợc có các đặc điểm sau: liên tục, khả vi và không giảm Ngoài ra, để tiện cho quá trình tính toán, ta... quá ít, mạng neuron sẽ không thể tổng quát hóa đƣợc bài toán: Ảnh hưởng của số lượng mẫu [1] Trong hình trên, đƣờng nét đứt là hàm số cần xấp xỉ, đƣờng nét liền là hàm số mà mạng neuron đã học đƣợc Trong hình A, số lƣợng mẫu quá ít, do đó dù mạng neuron đã học đƣợc 1 kết quả khá chính xác (so với các mẫu đã cung cấp) nhƣng không thể hiện đƣợc đúng hàm mong muốn 15 Chương 3: Giải thuật lan truyền ngược. .. mạng neuron có thể giải quyết đƣợc các vấn đề rất phức tạp Thành phần cơ bản của mạng neuron nhiều tầng [3] Mạng neuron nhiều tầng có cấu tạo gồm ít nhất là 3 tầng (1 tầng input, 1 hoặc nhiều tầng hidden, 1 tầng output) Tầng input và tầng hidden ta thƣờng thêm 1 phần tử gọi là bias (đóng vai trò nhƣ một trọng số kết nối giữa tầng trƣớc và tầng sau và luôn có giá trị là 1) Sơ đồ mạng neuron này chỉ thể... Chương 4: Kết luận CHƯƠNG 4: KẾT LUẬN Nhƣ vậy, mạng neuron nhiều tầng có thể giải quyết đƣợc rất nhiều bài toán phức tạp trong thực tế Qua quá trình huấn luyện ta sẽ có đƣợc 1 hàm số phức tạp với đầu vào là 1 mẫu dữ liệu, đầu ra là lớp dữ liệu tƣơng ứng Ngoài việc sử dụng để phân lớp dữ liệu trong khai mỏ dữ liệu, ta có thể sử dụng mạng neuron và giải thuật lan truyền ngƣợc để xây dựng các hệ thống nhận...Chương 3: Giải thuật lan truyền ngược Ngoài ra, để tính toán output, ta thƣờng áp dụng 1 hàm số đặc biệt, gọi là hàm squashing để output của từng tầng không còn là 1 phân hoạch tuyến tính Ví dụ: nếu sử dụng hàm sigmoid để giải quyết 1 bài toán gồm có 2 input, khi đó output sẽ có dạng là đồ thị của hàm sigmoid trong hệ trục tọa độ Descarte Kết hợp giữa việc sử dụng hàm squashing và nhiều tầng, mạng neuron . [1] Chương 3: Giải thuật lan truyền ngược 17 3.3. Nhận xét về giải thuật lan truyền ngược 3.3.1. Sự hội tụ và cực tiểu cục bộ Nhƣ đã trình bày ở trên, giải thuật lan truyền ngƣợc chỉ. trình quay lui, thông tin sẽ đƣợc truyền ngƣợc lại. 3.2. Giải thuật lan truyền ngược Giải thuật lan truyền ngƣơc là giải thuật dùng để học trọng số cho mạng neuron nhiều tầng, dùng phƣơng pháp. Chương 3: Giải thuật lan truyền ngược 12 Hàm tanh [2] 3.2.2. Chi tiết giải thuật lan truyền ngược (sử dụng hàm sigmoid) Phần này sẽ trình bày chi tiết các bƣớc của giải thuật lan truyền

Ngày đăng: 10/04/2015, 00:14

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan