3. Ngày giao nhiệm vụ luận văn:
3.3.8 Huấn luyện cho mạng lan truyền ngược
3.3.8.1 Cấu trúc mạng lan truyền ngược
Các Loại Neural (Tansig , Logsig , Purelin):
Một loại neural có R ngõ vào thể hiện như sau
Mỗi ng vào tương ứng với một trọng số thích hợp lí w. Tổng của các ngõ vào sau khi nhân với các trọng số tương ứng và giá trị ngưỡng sẽ trở thành ng vào đối với hàm truyền f. Neural dùng nhiều hàm truyền khác nhau để tính toán giá trị ngõ ra. Mạng nhiều lớp thường dùng hàm truyền log – signoid (logsig)
Hình 30 Hàm truyền logsig
Hàm logsig tính toán ngõ ra nằm trong khoảng 0 và 1 trong khi giá trị đầu vào là t âm vô cực cho đến dương vô cực . Neural dùng hàm truyền logsig gọi là neural logsig
Tiếp đến, mạng nhiều lớp có thể dùng hàm truyền tan – signoid (tansig).
Hình 31 Hàm truyền tansig Neural dùng hàm truyền tansig gọi là neural tansig
Hiếm khi hàm truyền tuyến tính dùng trong mạng lan truyền ngược (thường chỉ sử dụng phổ biến trong mạng tuyến tính)
Hình 32 Hàm truyền pureline (tuyến tính) Neural dùng hàm truyền tuyến tính gọi là neural pureline
Nếu lớp cuối cùng dùng hàm truyền signoid ( neural logsig và tansig thì ngõ ra chỉ giới hạn trong một khoảng nhỏ . Còn nếu neural tuyến tính được dùng thì ngõ ra chỉ lấy một vài giá trị ).
Cấu trúc các lớp trong mạng lan truyền ngược:
Mạng một lớp với S neural logsig có R ng vào được thể hiện theo hình bên trái ,còn bên phải là sơ đồ khối các lớp
Hình 33 Cấu trúc mạng một lớp
Mạng lan truyền ngược với các neural có hàm truyền đạt phi tuyến cho phép nơron học được những mối liên quan tuyến tính và phi tuyến giữa ngõ vào và ngõ ra. Nếu giới hạn ngõ ra trong khoảng 0 đến 1 thì nên dùng hàm signoid (như logsig).
Mô hình một mạng hai lớp như sau:
Hình 34 Mạng 2 lớp dùng Neural tagsig và pureline
Mạng này nói chung có thể xấp xỉ một hàm bất kì nào . Mạng có thể xấp xỉ bất kì một hàm nào với một số điểm gián đoạn tương đối tốt khi có đủ số neural trong lớp ẩn
3.3.8.2 Huấn luyện cho mạng lan truyền ngược:
Mạng được huấn luyện để xấp xỉ một hàm phi tuyến, một mô hình liên kết hay phân lớp. Trong suốt quá trình huấn luyện, các trọng số và các giá trị ngưỡng sẽ được điều chỉnh một cách hợp lí để làm tối thiểu giá trị hàm lỗi của mạng. Hàm lỗi mặc định cho mạng lan truyền ngược là trung bình bình phương lỗi (mean square error hay mse) – lỗi trung bình bình phương giữa ngõ ra thực tế và ng ra tính toán được. Sau đây là một vài thuật toán huấn luyện cho mạng lan truyền ngược . Tất cả các thuật toán này đều d ng độ dốc (gradient) của hàm lỗi để điều chỉnh các trọng số sao cho tối thiểu hàm lỗi. Độ dốc được tính toán dựa vào một kĩ thuật gọi là lan truyền ngược.
Nguyên lý chung:
Nếu gọi ( )w là hàm lỗi (hay hàm chi phí) và w* là trọng số tối ưu cần tìm thì: *
( )w (w )
Để tìm được giá trị nhỏ nhất của hàm ( )w hay trọng số tối ưu w*, ta tiến hành lấy đạo hàm hàm lỗi thông qua phép gradient. Và ta sẽ có (w*)0
Đặt 1 2 , ,..., T N w w w là toán tử gradient ( )w
là vector gradient của hàm lỗi.
Nguyên lý chung của việc tìm ra trọng số tối ưu là:
Khởi tạo trọng ban đầu w(0).
Lặp tìm trọng số thứ n, w(n) sao cho ( ( )) w n ( (w n1))
Sơ lược về một số giải thuật cơ bản thường được dùng trong huấn luyện mạng lan truyền ngược:
Giảm dốc nhất ( steepest decent gradient ):
Trong thuật toán lan truyền ngược, vector gradient của mặt phẳng sai số sẽ được tính toán. Vector này chỉ ra đường giảm dốc nhất và vị trí hiện tại, vì thế chúng ta biết rằng nếu chúng ta di chuyển dọc theo nó một “khoảng ngắn”, cuối cùng chúng ta sẽ đạt được giá trị nhỏ nhất.
Tuy nhiên, khó khăn ở đây là quyết định độ lớn của t ng bước di chuyển. Bước lớn có thể hội tụ nhanh hơn, nhưng có thể vượt quá điểm cần đến hay đi ra khỏi
vùng có cực tiểu (nếu mặt phẳng sai số bị lệch tâm). Ngược lại, bước quá nhỏ có thể đi đến đúng hướng nhưng chúng ta cần phải thực hiện phép lặp nhiều lần. Trong thực tế, kích thước bước tỷ lệ với độ dốc và hằng số đặc biệt: tốc độ học. Giá trị chính xác của tốc độ học phụ thuộc vào t ng ứng dụng cụ thể, và thường được chọn qua thực tiễn.
Lưu ý: Thuật toán thường có thêm khái niệm momentum. Momentum sẽ thúc đẩy di chuyển đi theo một hướng xác định. Nếu sau khi qua nhiều bước đi c ng một hướng, thuật toán sẽ di chuyển nhanh hơn, đưa đến khả năng thoát khỏi vùng giá trị cực tiểu cục bộ và cũng có thể di chuyển nhanh chóng qua vùng bằng phẳng.
Ưu nhược điểm :
Những neural ẩn thuộc các lớp giữa có khả năng làm cho mạng học được những phần việc phức tạp bằng cách trích dần dần nhiều hơn những nét có ý nghĩa t những mẫu vector nhập. Ngoài ra, ta có thể nhận thấy là mạng có mức độ liên thông cao.
Như đã đề cập trong nguyên tắc hoạt động, thuật toán này có thể xảy ra vấn đề cực tiểu cục bộ. Bên cạnh đó, trong không gian mô phỏng, MLP dàn trải nên ngoại suy ra xa dữ liệu huấn luyện thì thường nguy hiểm và không đúng.
Qui tắc học thích nghi:
Phương pháp này thực ra rất đơn giản .Mỗi trọng số sẽ có một hệ số học e khác nhau. Và khi cập nhật trọng số, nếu hướng lỗi hiện hành c ng bước với hướng trước thì cho e lớn, còn nếu ngược với hướng ở bước trước thì e sẽ nhỏ.
Hướng lỗi được xác định là dấu của dm , là đạo hàm riêng của hàm lỗi theo trọng số ở bước m. Nếu dm dương, lỗi giảm khi trọng số giảm, nếu dm âm, lỗi giảm khi trọng số tăng. Phương pháp học thích nghi vận dụng khái niệm hướng lỗi “v a mới “ giảm. Ta có thể định nghĩa hướng này như một hàm theo d như sau:
fm+1= fm + (1- ) dm ,
Nếu = 0 thì fm+1=0.5 dm + 0.5 fm . Nhưng vì fm được xác định t những giá trị quá khứ của d, nên thực sự có thể nói rằng :
fm+1=0.5 dm + 0.25 dm + 0.125 dm-2 +....
và cứ thế, trở về đến bước 1. Khi tiến về 1, giá trị dm hiện tại giảm và giá trị quá khứ của d được tính bới fm lại tăng.
Nếu ta cho f là trung bình trọng số của các đạo hàm hiện tại và quá khứ , là trọng số cho biết đạo hàm đã qua và (1- ) là trọng số cho biết đạo hàm hiện tại. Nếu f dương, thì có thể biết mới đây là lỗi “giảm khi trọng giảm” và ngược lại, cũng như đối với chính đạo hàm.
Dựa vào dấu của dm và fm , ta có thể đo chính xác của cả hướng mà lỗi hiện đang giảm, lẫn hướng mà lỗi v a mới giảm. Nếu chúng cùng dấu, việc giảm lỗi xảy ra theo c ng hướng cũ, nếu khác dấu, hướng sẽ ngược với hướng cũ.
Hệ số học thích nghi được tính theo công thức: em = em -1 + , dm fm > 0
em = em x , dm fm < 0
Trong đó và là các tham số. Nếu “sắp” đi theo cùng một hướng , e sẽ tăng một lượng bằng hằng số . Nếu đổi hướng , e được nhân với một lượng bằng
.
Khi đã xác định được e, biến thiên trọng số sẽ được xác định theo với 0 < <1
Khi đã xác định được e, biến thiên trọng số sẽ được xác định theo công thức : cm = - em dm
Hay nếu dùng moment, cm = cm-1 – (1- ) em dm
Ưu nhược điểm:
Trong thực hành, hệ thống không nhạy cảm lắm đối với việc chọn lựa các giá trị của mạng. Thường các giá trị sau được các nhà thiết kế mạng kinh nghiệm sử dụng.
= 0.1;
= 0.5; = 0.7;
Phương pháp sử dụng hệ số học thích nghi cho mỗi trọng số sẽ làm tăng tốc độ học. Để đạt được sai số như phương pháp thông thường thì chỉ cần khoảng 1/10 số bước luyện so với phương pháp thông thường
Phương pháp này cho kết quả hội tụ nhanh hơn phương pháp truyền thống, được sử dụng phổ biến vì sử dụng ít bộ nhớ và tính toán cũng không phức tạp
3.3.8.3 Vấn đề quá khớp và năng lực của mạng:
Một trong những vấn đề thường xảy ra trong suốt quá trình huấn luyện mạng là quá khớp. Sai số trong tập huấn luyện được kéo xuống rất bé, nhưng khi đưa dữ liệu mới vào thì mạng lại tạo sai số lớn. Mạng có nhớ được các mẫu huấn luyện, nhưng mạng không học được tính tổng quát hóa trường hợp mới.
Đa thức là phương trình có các hệ số và lũy th a hằng số. Ví dụ : y = 2x + 3
y= 3x2 + 4x + 1
Các đa thức khác nhau có đồ thị khác nhau, với bậc lớn hơn (và do đó có nhiều số hạng hơn) sẽ có đồ thị phức tạp hơn. Với một tập dữ liệu cho trước, chúng ta muốn tìm ra đa thức biểu diễn dữ liệu này. Dữ liệu có thể có nhiễu, vì thế chúng ta không cần thiết tìm ra phương trình đúng nhất cho tất cả các điểm. Đa thức bậc thấp hơn sẽ không thể đủ chính xác với tất cả các điểm, trong khi đó đa thức bậc cao hơn chính xác tất cả các dữ liệu sẽ rất phức tạp, đa thức này sẽ có đồ thị không đúng với hàm cơ sở.
Neural Networks cũng có vấn đề như vậy. Mạng có càng nhiều trọng số thì hàm càng phức tạp và do đó sẽ rơi vào tình trạng khớp quá mức. Mạng có ít trọng số hơn sẽ không đủ khả năng để mô phỏng hàm cơ sở. Ví dụ như mạng không có các lớp ẩn chỉ mô phỏng hàm truyền tuyến tính đơn giản.
Hình dưới cho thấy đáp ứng của mạng được huấn luyện 50000 lần. Rõ ràng mạng này quá khớp với dữ liệu và không tổng quát hóa tốt.Mạng bị quá khớp với số lần luyện quá nhiều
Hình 35 Mạng bị quá khớp với mẫu học
Vậy chúng ta sẽ chọn lựa độ phức tạp của mạng đúng như thế nào? Mạng lớn hơn sẽ hầu như luôn luôn có được sai số nhỏ hơn, nhưng điều này có thể là khớp quá mức hơn là một mô hình tốt.
Câu trả lời là sử dụng xác nhận mức giao. Vài mẫu huấn luyện được lưu lại và không thực sự dùng cho huấn luyện trong thuật toán backpropagation. Để thay thế, những mẫu này được sử dụng để kiểm tra độc lập trong quá trình của thuật toán. Như vậy hiệu suất ban đầu của mạng luôn luôn bằng nhau ở những tập huấn luyện và xác minh lại. Trong quá trình huấn luyện, sai số huấn luyện tự nhiên giảm xuống, và cho phép huấn luyện cực tiểu hóa hàm sai số thực, sai số xác minh cũng giảm xuống. Tuy nhiên, nếu sai số xác minh không giảm, hay bắt đầu tăng lên, điều này có nghĩa là mạng bắt đầu khớp quá mức dữ liệu, và huấn luyện nên d ng lại (có thể cài đặt Neural Networks tự động d ng lại khi bắt đầu học quá mức). Trường hợp khớp quá mức xảy ra trong quá trình xử lý huấn luyện gọi là học quá mức. Trong trường hợp này, chúng ta nên giảm số neural ẩn hay/và lớp ẩn vì mạng quá mạnh đối với vấn đề này. Ngược lại, nếu mạng không đủ mạnh để mô phỏng hàm cơ sở, học quá mức không có khả năng xảy ra, cũng như sai số huấn luyện hay xác minh lại không rơi vào mức bão hòa.
Những vấn đề liên quan đến cực tiểu cục bộ, và những quyết định sử dụng quá kích thước của mạng, nghĩa là chúng ta phải chạy thử trên nhiều mạng khác nhau, có thể huấn luyện mỗi mạng vài lần (để tránh rơi vào trường hợp cực tiểu cục bộ sai số) và quan sát hiệu suất t ng mạng. Điều quan trọng là quan sát sai số xác minh. Tuy nhiên, nên nhớ rằng nên mô phỏng mạng đơn giản hơn là mạng phức tạp, chúng ta cũng thể chọn mạng nhỏ hơn là mạng lớn có khả năng cải thiện sai số xác minh không đáng kể.
Vấn đề đối với kỹ thuật này về việc thí nghiệm lặp đi lặp lại là tập xác minh không thực sự đóng vai tr chọn lựa mạng, nghĩa là nó chỉ là một phần trong quá trình huấn luyện. Độ tin cậy của nó chỉ ở mức độ v a phải – khi số lần thí nghiệm đủ, chúng ta có khả năng rơi vào trường hợp mạng thực hiện tốt trên tập xác minh. Để thêm độ tin cậy hiệu suất của mô hình cuối cùng thì trong thực tế thường sử dụng thêm một tập thứ ba – là tập kiểm tra. Mô hình cuối c ng được kiểm tra với tập dữ liệu kiểm tra để đảm bảo rằng kết quả của tập xác minh và huấn luyện là thật.
3.3.8.4 Phương pháp cải thiện tính tổng quát hóa
Ngưng luyện khi mạng bắt đầu quá khớp: Trong kỹ thuật này, dữ liệu chia thành ba tập con. Tập thứ nhất là tập huấn luyện, d ng để tính gradient và cập nhật trọng số, ngưỡng của mạng. Tập thứ hai là tập phê chuẩn. Sai số trên tập này được giám sát trong suốt quá trình huấn luyện.Tập thứ ba là tập kiểm tra. Sai số phê chuẩn thường giảm trong giai đoạn đầu huấn luyện. Tuy nhiên khi mạng bắt đầu quá khớp dữ liệu, sai số trên tập phê chuẩn thường bắt đầu tăng. Khi sai số phê chuẩn tăng sau một số vòng lặp, huấn luyện sẽ ng ng, trọng số và ngưỡng ở cực tiểu sai số phê chuẩn sẽ được trả lại.
Sai số tập kiểm tra không sử dụng trong quá trình huấn luyện, nhưng sử dụng để so sánh giữa các mô hình khác nhau.
Hình 36 Mạng được ngưng tiến trình huấn luyện đúng lúc
3.3.8.5 Kết luận
Việc thiết kế mạng (khi các biến ng vào đã được chọn) gồm các bước sau:
Chọn cấu hình ban đầu (thường một lớp ẩn có số neural ẩn bằng nửa tổng số neural ngõ vào và ngõ ra).
Thực hiện lặp đi lặp lại số thí nghiệm của mỗi cấu hình, giữ lại mạng tốt nhất (thường dựa trên sai số xác minh). Thí nghiệm nhiều lần trên mỗi cấu hình mạng để tránh rơi vào sai số cục bộ.
Trong mỗi lần thí nghiệm, nếu xảy ra việc học chưa đủ (mạng không đạt được mức hiệu suất chấp nhận) thì thử tăng số neural trong lớp ẩn. Nếu không hiệu quả, thì thêm một lớp ẩn.
Nếu xảy ra học quá mức (sai số xác minh bắt đầu tăng lên) thử bỏ bớt một vài neural ẩn (và có thể bỏ lớp ẩn).
Và chọn một trong các kỹ thuật trên để cải thiện mạng.
3.3.9 Ứng dụng mạng Neural trong lĩnh vực nhận dạng
Nhiệm vụ:
Vấn đề nhận dạng đặc tính là một lĩnh vực ứng dụng của những phương pháp phân loại tự động tiêu biểu. Ngoài sự quan tâm ứng dụng của nó qua vấn đề nhận dạng mã Zip, tự động đọc của ngân hàng kiểm tra..., nó liên quan tới tất cả các vấn đề tiêu biểu sẽ gặp khi tiến hành phân loại: sự lựa chọn khi trình bày dữ liệu, sự lựa chọn kiểu và cấu trúc thích hợp, và huấn luyện có giám sát phân loại sử dụng một tập hợp những mẫu và khả năng tổng quát của mạng.
T những lớp perceptrons đơn, là thành phần chính cho việc xây dựng những lớp phân loại tuyến tính, những hệ phân loại mạng neural mạnh hơn đã được phát triển. Mạng thông dụng nhất là Mạng nuôi tiến nhiều lớp (Multi Layer feedforward Network) huấn luyện bởi giải thuật lan truyền ngược (backpropagation). Mạng này với một lớp ẩn thì thông dụng cho những hệ phân loại, chúng có thể xấp xỉ những hàm quyết định phức tạp nếu cung cấp đủ số neural bên trong lớp ẩn .Tuy nhiên, không có quy tắc đơn giản nào cho biết như thế nào là đủ hoặc thiếu những neural lớp ẩn để học một hàm đã cho. Cách duy nhất là thử và chọn cho đến khi có một mạng tốt nhất.
Quá trình nhận dạng cổ điển được tách ra thành những bước xử lý trước và sự phân