Máy học là sự tự động của quy trình học và việc học thì tương đương với việcxây dựng những luật dựa trên việc quan sát trạng thái trên cơ sở dữ liệu vànhững sự chuyển hoá của chúng.. Các
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Giảng viên hướng dẫn : GS.TSKH Hoàng Văn Kiếm
Học viên thực hiện : Nguyễn Hải Toàn
TP.HCM, 10/2014
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
Trang 3
MỤC LỤC
I MÁY HỌC 3
1 Máy học: 3 2 Tiến trình máy học: 4 II MẠNG NEURAL NHÂN TẠO 6
1 Mạng Neural là gì ?6 2 Mô hình mạng neural nhân tạo 10 Neuron (nút mạng) 10 Mạng neural một lớp 12 3 Mạng lan truyền ngược 13 Định nghĩa 13 Nguyên tắc hoạt động của mạng lan truyền ngược 14 Tóm tắt thuật giải lan truyền ngược 19 III ỨNG DỤNG MẠNG NƠRON LAN TRUYỀN NGƯỢC 21
1 Mục đích chương trình 21
2 Mô tả về chương trình 21
3 Một số đoạn code quan trọng 22
Hàm huấn luyện 22
Hàm nhận dạng ký tự 23
Trang 4I MÁY HỌC
1 Máy học:
Một số lợi ích của máy học:
- Các thông tin ngày càng nhiều, hàng ngày ta phải xử lý rất nhiều thông tinđến từ nhiều nguồn khác nhau Máy học có thể giúp xứ lý và dự báo các thôngtin đó bằng cách tạo ra các luất sản xuất từ dữ liệu thu thập
- Ở những nơi không có chuyên gia, máy học có thể giúp tạo ra được cácquyết định từ các dữ liệu có được
- Các thuật toán máy học có thể giúp xử lý khi dữ liệu không đầy đử, khôngchính xác
- Máy học giúp thiết kế hệ thống huấn luyện tự động (mạng nơrôn nhântạo) và giải mã mối liên hệ giữa các tri thức được lưu trữ trong mạng từ dữ liệu.Rất khó để định nghĩa một cách chính xác về máy học Một trong nhữngnguyên nhân là từ “học - learn” có ý nghĩa khác nhau trong từng lĩnh vực: tâm
lý học, giáo dục, trí tuệ nhân tạo,… Một định nghĩa rộng nhất, máy học là mộtcụm từ dùng để chỉ khả năng một chương trình máy tính để tăng tính thực thidựa trên những kinh nghiêm đã trải qua Hoặc, máy học là để chỉ khả năng mộtchương trình có thể phát sinh ra một cấu trúc dữ liệu mới khác với các cấu trúc
dữ liệu cũ Chẳng hạn, các luật sản xuất: if… then…
Lợi điểm của các phương pháp máy học là nó phát sinh ra các luật tường minh,
có thể được sửa đổi, hoặc được huấn luyện trong một giới hạn nhất định Cácphương pháp máy học hoạt động trên các dữ liệu có đặc tả thông tin Các thôngtin được trình bày theo một cấu trúc gồm 4 mức được gọi là tri thức kim tự tháp(pyramid knowledge) Mức thấp nhất là một tập dữ liệu lớn dùng để lưu thôngtin, thường nó rất khó hiểu với con người Do đó, cần phải trích các thông tinhữu ích từ kho dữ liệu bằng cách sử dụng các phương pháp tiền xử lý Kết quảcủa việc tiền xử lý sẽ tạo ra thông tin ở mức thứ 2 Các tri thức ở mức thứ 3thường được tạo ra do các luật sản xuất Các siêu tri thức được gọi là tri thứccủa tri thức
Máy học là sự tự động của quy trình học và việc học thì tương đương với việcxây dựng những luật dựa trên việc quan sát trạng thái trên cơ sở dữ liệu vànhững sự chuyển hoá của chúng Đây là lĩnh vực rộng lớn không chỉ bao gồm
Trang 5việc học từ mẫu, mà còn học tăng cường, học với “thầy”, Các thuật toán họclấy bộ dữ liệu và những thông tin quen thuộc của nó khi nhập và trả về một kếtquả câu nói hay một câu ví dụ, một khái niệm để diễn tả những kết quả học.Máy học kiểm tra những ví dụ trước đó và kiểm tra luôn cả những kết quả củachúng khi xuất và học làm cách nào để tái tạo lại những kết quả này và tạo nênnhững sự tổng quát hóa cho những trường hợp mới.
Nói chung, máy học sử dụng một tập hữu hạn dữ liệu được gọi là tập huấnluyện Tập này chứa những mẫu dữ liệu mà nó được viết bằng mã theo mộtcách nào đó để máy có thể đọc và hiểu được Tuy nhiên, tập huấn luyện bao giờcũng hữu hạn do đó không phải toàn bộ dữ liệu sẽ được học một cách chínhxác
2 Tiến trình máy học:
Một tiến trình máy học gồm 2 giai đoạn:
Giai đoạn học (learning): hệ thống phân tích dữ liệu và nhận ra sự mối
quan hệ (có thể là phi tuyến hoặc tuyến tính) giữa các đối tượng dữ liệu Kếtquả của việc học có thể là: nhóm các đối tượng vào trong các lớp, tạo ra cácluật, tiên đoán lớp cho các đối tượng mới
Giai đoạn thử nghiệm (testing): Mối quan hệ (các luật, lớp ) được tạo
ra phải được kiểm nghiệm lại bằng một số hàm tính toán thực thi trên một phầncủa tập dữ liệu huấn luyện hoặc trên một tập dữ liệu lớn
Các thuật toán máy học được chia làm 3 loại: học giám sát, học không giám sát
Thuật toán học có giám sát gồm tập dữ liệu huấn luyện M cặp:
S = {(xi, cj) i=1,…,M; j=1,…,C}
Các cặp huấn luyện này được gọi là mẫu, với
xi là vector n-chiều còn gọi là vector đặc trưng.
Trang 6cj là lớp thứ j đã biết trước.
Thuật toán máy học giám sát tìm kiếm không gian của những giả thuyết có thể,
gọi là H Đối với một hay nhiều giả thuyết, mà ước lượng tốt nhất hàm không được biết chính xác f : x c Đối với công việc phân lớp có thể xem giả thuyết
như một tiêu chí phân lớp Thuật toán máy học tìm ra những giả thuyết bằngcách khám phá ra những đặc trưng chung của những ví dụ mẫu thể hiện cho mỗi
lớp Kết quả nhận được thường ở dạng luật (Nếu thì).
Tùy thuộc vào mức độ của thuật toán học giám sát, người ta có những mô hìnhhọc giám sát như sau:
Học vẹt: hệ thống luôn luôn được “dạy” những luật đúng, rồi có học hội
tụ
Học bằng phép loại suy: hệ thống được dạy phản hồi đúng cho một
công việc tương tự, nhưng không xác định Vì thế hệ thống phải hiệuchỉnh phản hồi trước đó bằng cách tạo ra một luật mới có thể áp dụngcho trường hợp mới
Học dựa trên trường hợp: trong trường hợp này hệ thống học lưu trữ tất
cả các trường hợp, cùng với kết quả đầu ra của chúng Khi bắt gặp mộttrường hợp mới, nó sẽ cố gắng hiệu chỉnh đến trường hợp mới này cách
xử lý trước đó của nó đã được lưu trữ
Học dựa trên sự giải thích: hệ thống sẽ phân tích tập hợp những giải
pháp nhằm chỉ ra tại sao mỗi phương pháp là thành công hay khôngthành công Sau khi những giải thích này được tạo ra, chúng sẽ đượcdùng để giải quyết những vấn đề mới
Học không giám sát
Đây là việc học từ quan sát và khám phá Hệ thống khai thác dữ liệu được ứngdụng với những đối tượng nhưng không có lớp được định nghĩa trước, mà để nóphải tự hệ thống quan sát những mẫu và nhận ra mẫu Hệ thống này dẫn đếnmột tập lớp, mỗi lớp có một tập mẫu được khám phá trong tập dữ liệu
Học không giám sát còn gọi là học từ quan sát và khám phá Trong trường hợpchỉ có ít, hay gần như không có tri thức về dữ liệu đầu vào, khi đó một hệ thốnghọc không giám sát sẽ khám phá ra những phân lớp của dữ liệu, bằng cách tìm
ra những thuộc tính, đặc trưng chung của những mẫu hình thành nên tập dữ liệu
Trang 7Một thuật toán máy học giám sát luôn có thể biến đổi thành một thuật toán máyhọc không giám sát Đối với một bài toán mà những mẫu dữ liệu được mô tả
bởi n đặc trưng, người ta có thể chạy thuật toán học giám sát n-lần, mỗi lần với
một đặc trưng khác nhau đóng vai trò thuộc tính lớp, mà chúng ta đang tiên
đoán Kết quả sẽ là n tiêu chí phân lớp (n bộ phân lớp), với hy vọng là ít nhất một trong n bộ phân lớp đó là đúng.
tự nhiên nhằm tích lũy kinh nghiệm tri thức và sử dụng chúng để giải quyết bàitoán ngày càng hoàn thiện hơn Mạng neural nhân tạo hoạt động giống não bộcon người ở hai mặt:
1 Tri thức được tích lũy thông qua mạng trong suốt quá trình học
2 Mức độ của các kết nối giữa tế bào thần kinh được xem như những trọng
số của các cung mạng neural nhân tạo Trọng số này được dùng để lưu trữ trithức
Trang 8Trước khi đi vào nghiên cứu sâu hơn về mạng Neural, ta tìm hiểu sơ lược vềhoạt động của não bộ con người.
Hệ thần kinh con người có thể đuợc chia thành ba bộ phận: Bộ phận trung tâmđược gọi là não bộ, nó được biểu diễn bởi mạng neural, tiếp nhận thông tin, xử lýthông tin và đưa ra một quyết định thích hợp Bộ phận tiếp nhận (Receptors) giữnhiệm vụ chuyển đổi những tín hiệu kích thích(stimulus) từ các bộ phận kháccủa cơ thể hay môi trường bên ngoài thành những electrical impulses (xung lựcđiện sinh ra từ não bộ) và chuyển chúng vào não bộ Bộ phận phản hồi(Effectors) giữ vai trò ngược với bộ phận tiếp nhận, nó chuyển đổi electricalimpulses thành discernible responses và phản hồi thông tin Hoạt động của hệthần kinh được biểu diễn theo sơ đồ sau:
Để đi vào phân tích các hoạt động của hệ thần kinh, ta xem xét mô hình phân cấpcác mức từ thấp đến cao như hình sau:
Cấu trúc của tế bào thần kinh con người
Trang 9Mức cơ bản biểu diễn các phân tử và các ion (Molecules) Chính sự tương táccủa các phân tử này theo nhiều cách khác nhau hình thành các khớp thần kinh(Synapses) Một neural microcircuit là một nhóm các khớp thần kinh có tổ chức
để tạo ra các tính năng tương tự nhau Kích cỡ của các neural microcircuitkhoảng vài micro-met, tốc độ phản ứng của chúng vào khoảng vài mili giây Cácneural microcircuit với các đặc điểm tương tự nhau nhóm lại trong dạng hình cây(denrictic tree), và từ đó hình thành những neuron với các tính năng riêng Mộtneuron kích cỡ 100 micro-met chứa khoảng vài denrictic tree Ở cấp độ cao hơn
là các local circuits có chiều rộng khoảng 1 mili mét được hình thành từ cácneuron với tính năng khác nhau hoặc gần giống nhau Từ đây hình thành cáchoạt động có tính chất chuyên môn hóa Ở mức cao hơn, các local circuits liên
Trang 10kết với nhau theo những qui tắc nhất định, đó chính là các Interrgional circuits,
có nhiệm vụ phản hồi thông tin sau khi đã được xử lý Trên cùng chính là cơquan thần kinh trung ương (Central nervous system) đóng vai trò quyết định chomột trả lời từ nhiều phản hồi thông tin của Interrgional circuits
Từ cấu trúc cũng như họat động của bộ não con người, người ta đã đúc kết mộtphương pháp học cho máy tính có mô hình tương tự như vậy, nhằm đạt đượcmột kết quả tốt như mong muốn, đó là mạng neural nhân tạo Các thành phần cơbản của mạng neural nhân tạo được so sánh với các local circuits và interrigionalcircuits
2 Mô hình mạng neural nhân tạo
Neuron (nút mạng)
Đơn vị nền tảng trong mạng neural là neuron, một đơn vị xử lý thông tin Người
ta đã đưa ra các thành phần cơ bản của một neuron như sau:
1 Một tập các dây thần kinh mà đặc trưng của mỗi sợi là một trọng số.
Trọng số wkj biểu diễn cho dây thần kinh có một đầu là tín hiệu x j nối vàoneuron k wkj>0 thể hiện sự kích thích tăng trưởng cho tín hiệu này, ngượclại wkj<0 mang tính kìm hãm thông tin đó
2 Một hàm cộng, tính tổng tất cả các tích của tính hiệu đầu vào xj và trọng
j kj
Trang 11c) Bị chặn
Giá trị đầu ra của neuron k được tính bởi công thức:
yk = f(uk - k)Trong đó f là hàm truyền, uk là tổng các tích của tín hiệu đầu vào xj và trọng sốtương ứng wkj, k là ngưỡng hoạt động của neuron k
Một số lọai hàm truyền được dùng cho các mạng neural:
1
2) Hàm logistic (còn gọi là hàm sigma)
f(v) = eav
1 1
Trên cơ sở đã định nghĩa về cấu trúc của một neuron, người ta đưa ra một số môhình mạng neural dựa trên số lớp của nó
nếu v 0 nếu v < 0
Trang 12Mạng neural một lớp
Một lớp trong mạng neural là một nhóm các neuron có đặc điểm tương tự nhau,nghĩa là chúng nhận cùng những tín hiệu đầu vào nhưng với các trọng có thểkhác nhau
Mạng neural một lớp là mạng chỉ có một lớp nhận nhiệm vụ tính toán để đưa rakết quả (lớp output) Đầu vào của các neuron output chính là các nút input x1,x2,
…,xp
Mạng neural nhiều lớp
Mạng neural nhiều lớp là mạng neural gồm có hai hay nhiều lớp tính toán, nghĩa
là ngoài lớp input và lớp output, còn có một số lớp xen giữa hai lớp này gọi làcác lớp ẩn
Trang 13Nguyên tắc hoạt động cơ bản của mạng neural là quá trình luyện mạng hay còngọi là quá trình học qua nhiều thế hệ Để có thể học được, cũng như con người,
ta cần có tập những mẫu dùng để học Một mẫu là cặp các giá trị đầu vào x1,…,xp
và các giá trị mong muốn d1,…,dq Giả sử thông tin (giá trị của một mẫu) đượcđưa vào lớp input, chúng sẽ được “truyền” qua các lớp kế tiếp nhờ vào kết quảtính toán của neuron mà ta trình bày ở trên Ở đây bộ trọng số có thể được khởiđầu bằng những giá trị bất kỳ Kết quả tính toán các giá trị output y1,…,yq sẽ được
so sánh với các giá trị mong đợi d1,…,dq từ đây mạng rút ra được các “bài học”bằng cách cập nhật các trọng số để lần học sau được tốt hơn Mỗi lần lặp lại tiếntrình cập nhật trọng số được gọi là một thế hệ Điều mà ta mong muốn là qua cácthế hệ, trọng số được cập nhật sao cho sai số của giá trị output ngày càng giảmdần, đến một lúc nào đó có thể chấp nhận được, khi ấy có thể coi là mạng họcxong
3 Mạng lan truyền ngược
Định nghĩa
Mạng lan truyền ngược là mạng neural nhiều lớp, bao gồm một lớp input, mộtlớp output và một hay nhiều lớp ẩn Trong mạng thông tin được truyền từ lớpnày qua lớp kia theo cả hai chiều tiến và chiều ngược Suốt quá trình lan truyềnngược, các bộ trọng số được cập nhật sao cho sai số giữa giá trị output và kết quảmong đợi giảm dần sau mỗi lượt lan truyền
Trang 14Nguyên tắc hoạt động của mạng lan truyền ngược
Để tìm hiểu về nguyên tắc hoạt động của mạng lan truyền ngược ta định nghĩathêm hai loại tín hiệu sau:
Tín hiệu hàm(function signal): là một tín hiệu (stimulus) xuất phát từ đầu vàocủa mạng (lớp input), lan truyền theo chiều tiến, từ neuron này qua neuronkia (các lớp ẩn), kết thúc tại đầu ra của mạng(lớp output)
Tín hiệu lỗi (error signal): là tín hiệu xuất phát từ đầu ra của mạng, lan truyềntheo chiều ngược, cũng qua lần lượt các lớp ẩn, kết thúc tại đầu vào củamạng
Trong một ứng dụng mạng lan truyền ngược, có hai quá trình tính toán phân biệt
nhau Thứ nhất là quá trình lan truyền tiến và thứ hai là quá trình lan truyềnngược
Trong quá trình lan truyền tiến, tất cả các trọng số của các cung mạng khôngthay đổi, các tín hiệu hàm được tính toán từ trái qua phải từ neuron này quaneuron kia, tín hiệu hàm xuất hiên tại đầu ra của neuron j được tính bởi côngthức :
yj(n) = f(vj(n))
Trang 15) (
trong đó p là tổng số nút input (kể cả ngưỡng) của neuron j; wji là trọng số củacung mạng nối từ neuron i đến neuron j và f là một hàm truyền
Trong quá trình lan truyền ngược, tín hiệu lỗi xuất phát từ lớp ouput lan truyềnngược về phía trái Trong khi lan truyền các trọng số được cập nhật theo chiềuhướng làm giá trị output xích gần giá trị mong muốn hơn Thuật giải lan truyềnngược :
Tín hiệu lỗi tại đầu ra của neuron j trong lần học thứ n được tính bởi công thức
ej(n) = dj(n) – yj(n)Trong đó dj(n) là giá trị mong muốn, yj(n) là giá trị output thật sự tính toán quamạng neural của neuron j
Ta định nghĩa giá trị bình phương hàm lỗi cho neuron j là 21 ej2(n) Tương ứnggiá trị E(n) là tổng bình phương hàm lỗi thu được từ việc lấy tổng tất cả các bìnhphương hàm lỗi tại lớp ouput
Trang 16E(n) = ( )
2
1 e2 n
C j j
Trong đó C là tập tất cả các neuron của lớp ouput Đặt N là tổng số các mẫudùng để luyện mạng Khi đó giá trị trung bình bình phương hàm lỗi của mạngneural là
Eav =
N n n E
0
) ( )
Trong đó p là tổng số nút input của neuron j Trọng số wj0 (tương ứng giá trịinput y0=-1) chính là ngưỡng j.Từ đây ta tính được giá trị output của neuron jtrong lần học thứ n thông qua hàm truyền f là:
) ( ) ( ) ( ) (
) ( ) ( ) ( ) ( )
(
) (
n w n v n y n e
n v n y n e n E n
w
n E
ji j
j j
j j
) (
n e n e
n E
j j
(3.5)
Trang 171 ) (
) (
n e
j
j
(3.6)
)) ( ( ' ) (
) (
n v f n v
n y
j j
) (
n y n w
n v
j ji
) ( )) ( ( ' ) ( )
(
) (
n y n v f n e n w
n E
j j
j ji
) ( )
(
n w
n E n
w
ji ji
Trong đó được gọi là hệ số học của thuật giải lan truyền ngược
Kết hợp với công thức (3.9) ta thu được
) ( ) ( )
) ( ) ( ) ( )
n w n y n e
n y n e n E
ji j
j
j j
)) ( ( ' ) (
) ( )
( ) (
) ( ) ( )
n y
n E n
w n y
n y n E
j ji
j
j j