Hãy mô tả mô hình nơ-ron nhân tạo McColloch-Pitts?Hình vẽ, phương trình tính output Trên cơ sở cấu trúc chung của một ron sinh học, McCulloch-Pitts đã đề nghị mô hình nơ-ron nhân tạo đ
Trang 1ĐỀ CƯƠNG ÔN TẬP HỌC PHẦN MẠNG NƠ-RON NHÂN TẠO
Đề 1
1 Mạng nơ-ron nhân tạo là gì? Tại sao chúng ta nghiên cứu mạng nơ-ron nhân tạo?
Mạng nơ-ron nhân tạo (Neural Networks – NNs) là mạng bao gồm các nơ-ron kết nối với nhau như được tìm thấy trong các bộ não sinh học Thành phần cơ bản để cấu tạo nên mạng nơ –ron
là các nơ-ron và cách mà chúng kết nối với nhau Do vậy, để mô hình hóa hình thái và tìm hiểu phương thức hoạt động của mạng nơ-ron, chúng ta sẽ bắt đầu từ các nơ-ron nhân tạo
Nơ-ron nhân tạo là những mô phỏng thô của các nơ-ron sinh học trong bộ não Chúng có thể
là các thiết bị vật lý hay chỉ là các mô hình toán học Theo đó, mạng nơ-ron nhân tạo (Artificial Neural Networks – ANNs) là mạng các nơ-ron nhân tạo kết nối với nhau và được xem như là mô phỏng thô một phần bộ não sinh học Chúng có thể là một hệ thống các thiết bị vật lý hoặc các mô phỏng trên máy tính
Mạng nơ-ron nhân tạo là hệ thống máy tính song song bao gồm nhiều đơn vị xử lý đơn giản, kết nối với nhau theo một cấu trúc nào đó để thực hiện một nhiệm vụ cụ thể Mặc dù được đơn giản hóa về mặt mô phỏng nhưng mạng nơ-ron nhân tạo vẫn không mất đi các tính chất đặc trưng của một
bộ não thật
- Ưu điểm lớn nhất của mạng nơ-ron nhân tạo: là tính hoàn toàn song song, cái mà làm cho mạng nơ-ron nhân tạo trở nên hiệu quả Thêm vào đó, mạng nơ-ron nhân tạo có thể học từ những dữ liệu huấn luyện và khái quát những tình huống mới, nên nó không yêu cầu nhiều về kỹ năng lập trình Mạng nơ-ron nhân tạo còn đặc biệt chịu lỗi, đây là khả năng thường được tìm thấy trong các hệ thống sinh học; và chịu nhiễu Vì vậy chúng có thể đối phó với tình huống mà các hệ thống symbolic thông thường sẽ gặp khó khăn Nói tóm lại, về nguyên tắc, mạng nơ-ron nhân tạo có thể làm bất cứ điều gì một hệ thống symbolic/logic có thể làm và thực tế nó còn có thể làm được nhiều hơn thế nữa
- Giống như các lĩnh vực trí tuệ nhân tạo nói chung, hai mục tiêu cơ bản của việc nghiên cứu mạng nơ-ron nhân tạo là:
+ Mô hình hóa bộ não: Mục đích khoa học của việc xây dựng các mô hình mạng nơ-ron nhân
tạo là tìm hiểu thực tế não làm việc như thế nào Điều này có thể giúp chúng ta hiểu được bản chất sự thông minh của con người, xây dựng các chiến lược dạy tốt, hoặc là các hoạt động chữa trị hiệu quả cho các bệnh nhân bị thương tổn về não
+ xây dựng hệ thống nhân tạo: Mục đích kỹ thuật của việc xây dựng hệt thống mạng nơ-ron
nhân tạo là nhằm đem lại hiệu quả tốt hơn đối với các ứng dụng thực tế Điều này có thể làm cho máy móc hoạt động tốt hơ, thay thế con người những công việc nhàm chán và thậm chí có thể cải thiện hiệu suất công việc
2 Hãy mô tả mô hình nơ-ron nhân tạo McColloch-Pitts?(Hình vẽ, phương trình tính output)
Trên cơ sở cấu trúc chung của một ron sinh học, McCulloch-Pitts đã đề nghị mô hình nơ-ron nhân tạo đơn giản nhất được biết đến là đơn vị logic ngưỡng như hình vẽ 2-4, bao gồm:
Một tập các kết nối (synapses) mang kích hoạt từ các nơ-ron khác đến
Một đơn vị xử lý tính tổng tất cả các tín hiệu vào và sau đó áp dụng một hàm kích hoạt không tuyến tính (hàm chuyển hay hàm ngưỡng)
Một đường ra truyền kết quả ra đến các nơ-ron khác
Trang 2 Kết quả ra của một nơ-ron McCulloch-Pitts có thể được biểu diễn như là một hàm của n thành phần vào:
trong đó θ là ngưỡng kích hoạt của nơ-ron Chúng ta có thể dễ dàng thấy rằng:
Lưu ý rằng nơ-ron McCulloch-Pitts là một mô hình cực kỳ đơn giản so với một nơ-ron sinh học Do đó một số đặc điểm đã bị đơn giản hóa như: giá trị vào/ra không phải là nhị phân, tổng vào là không tuyến tính, ngưỡng mịn, tính ngẫu nhiên (stochasticity) và xử lý thông tin
có tính đến yếu tố thời gian
Tuy thế, nơ-ron McCulloch-Pitts vẫn rất mạnh về mặt tính toán Người ta đã chỉ ra rằng tập các nơ-ron McCulloch-Pitts có thể tính toán được rất nhiều thứ
Hàm ngưỡng hay hàm dấu sgn(x) được định nghĩa là
Hàm logic hay hàm sigmoid Sigmoid(x) được định nghĩa là
Trang 3Câu 3: Hãy giải thích bản chất của luật học Perceptron? (Hình vẽ minh họa, phương trình luật học Perceptron) Hãy chỉ ra ưu, khuyết điểm và phạm vi ứng dụng của luật học perceptron?
- Để có thể cài đặt được một ứng dụng, nhiều nơ-ron sẽ được kết nối với nhau và được đánh
số Luồng kích hoạt truyền giữa chúng được thực hiện thông qua các khớp nối có trọng số tương ứng
là wki, wij
- Chúng ta có thể kết nối các nơ-ron McCulloch-Pitts lại với nhau theo một cách bất kỳ mà chúng ta muốn Mạng bao một lớp vào (input) được kết nối trực tiếp với một lớp các nơ-ron McCulloch-Pitt như hình vẽ 3-2 được gọi là mạng Perceptron một lớp
- Một trong những ứng dụng đơn giản nhất đầu tiên mà chúng ta có thể cài đặt là sử dụng mạng Perceptron để thiết lập các cổng logic Điều mà chúng ta cần là làm thế nào để xác định trọng số kết nối và ngưỡng nơ-ron thích hợp để kết quả sinh ra là đúng với một tập dữ liệu vào
- Để có thể hoàn thành được một cổng logic như thế, chúng ta sẽ băt đầu với các công logic đơn giản như NOT, AND và OR, bởi vì chúng ta có thể thiết kế được bất cứ chức năng logic nào từ 3 cổng logic nêu trên Tuy nhiên, thực tế người ta thường sẽ không thiết kế ANN phức tạp hơn Perceptron một lớp, mà người ta tìm cách xác định trọng số và ngưỡng trực tiếp
từ một kiến trúc Perceptron một lớp nào đó khác
- Thực tế đã chứng minh rằng, việc thiết kế một ANN đơn giản là một chuyện, nhưng vấn đề là làm thế nào để chứng tỏ được rằng ANN đó thực hiện được chức năng như mục tiêu
đã đề ra! Nếu dùng phương pháp thử như trên, vấn đề là sau bao lâu thì chúng ta mới tìm ra được lời giải? (ví dụ trường hợp cổng XOR) Vì vậy chúng ta nên tìm một phương pháp tính toán thích hợp khác để xác định các tham số, hơn là việc thử và sai
- Chúng ta sẽ bắt đầu phương pháp tính toán với mô hình mạng Perceptron cho cổng AND Theo mô hình này, chúng ta có 2 trọng số w1, w2 và ngưỡng q Đối với mỗi mẫu huấn luyện,
chúng ta cần thỏa mãn:
out = sgn( w 1 in 1 + w 2 in 2 - q)
Trang 4- Việc huấn luyện dữ liệu dẫn đến 4 bất phương trình sau:
- Có thể dễ dàng nhìn thấy rằng có vô hạn lời giải Tương tự, có vô hạn lời giải cho mạng OR
và mạng NOT
- Trở lại với mạng Perceptron cho cổng logic XOR, với phương pháp tính toán như trên, chúng ta có được 4 bất phương trình
- Rõ ràng bất phương trình 2 và 3 không bao giờ thỏa mãn được bất phương trình 4 và như vậy không thể tìm ra được lời giải Chúng ta cần loại mạng phức tạp hơn, ví dụ tổ hợp từ nhiều mạng đơn, hoặc sử dụng hàm ngưỡng/kích hoạt khác Thêm vào đó sẽ khó khăn hơn khi xác định trọng số
và ngưỡng bằng phương pháp thử
* Ưu điểm: Mạng Perceptron là công cụ tính toán mạnh, có khả năng thực hiện “bất kỳ” chức
năng logic nào
* Khuyết điểm: mạng Perceptron một lớp với hàm kích hoạt “step-function” vẫn bộc lộ những
hạn chế, ví dụ nó không thể thực hiện bài toán XOR
- Một ứng dụng điển hình của ANNs là phân loại Chúng ta hãy xem xét một ví dụ đơn giản
về phân loại máy bay dựa trên trọng tải (mass) và tốc độ (speed), với các thông tin mô tả về hai loại máy bay này (tương ứng với trọng tải và tốc độ) như bảng sau Câu hỏi đặt ra là làm thế nào chúng ta
có thể xây dựng được một ANNs có thể phân loại được 2 loại máy bay ném bom (Bomber) và tiêm kích (Fighter)?
Trang 5Câu 4: Hãy giải thích bản chất của luật học delta? (phương trình luật học delta) Hãy so sánh luật học delta với luật học perceptron?
Chúng ta giờ đã có giải thuật học bằng cách giảm gradient cho mạng một lớp:
Chú ý rằng nó vẫn bao gồm đạo hàm của hàm chuyển f(x) Đó chính là vấn đề đối với Perceptron một lớp có sử dụng hàm bước sgn(x) như là hàm ngưỡng của nó Bởi vì đạo hàm là luôn luôn 0 ngoại trừ tại x=0 nên nó là vô hạn
May mắn là có một mẹo mà chúng ta có thể vượt qua được trở ngại trên: Giả chúng ta có hàm chuyển f(x) = x + 1/2, thì f(x)=1 khi x=1/2 và f(x)=0 khi x = -1/2 Rõ ràng những giá trị này cũng tuân theo qui luật của hàm dấu sgn(x) và Perceptron cũng sẽ hoạt động được với hàm ngưỡng này Nói một cách khác, chúng ta có thể sử dụng thuật toán học bằng cách giảm gradient với f(x) = x + 1/2
để Perceptron có thể học các trọng số Trong trường hợp này, f’(x)=1 và do đó phương trình cập nhật trọng số trở thành:
Phương trình này có tên gọi là Luật học Delta bởi vì nó phụ thuộc trên sự khác biệt δl = targl – outl
* so sánh luật học delta với luật học perceptron
- Giống nhau: luật học Delta và luật học Perceptron đối với Perceptron một lớp có cùng phương trình cập nhật trọng số
- Khác nhau:
Các luật học Perceptron sử dụng hàm kích hoạt f(x) = sgn(x), trong khi luật Delta sử dụng hàm tuyến tính f(x) = x + 1/2
Hai thuật toán được xuất phát từ những quan điểm lý thuyết khác nhau: luật học Perceptron bắt nguồn từ việc xem xét làm thế nào để di chuyển siêu phẳng quyết định, trong khi luật Delta xuất từ việc tối thiểu hóa SSE bằng cách giảm gradient
Luật học Perceptron sẽ hội tụ khi lỗi bằng 0 và trọng số sẽ không thay đổi sau một số hữu hạn các bước thực hiện nếu vấn đề đang xem xét là tuyến tính, còn không thì nó sẽ
bị dao động qua lại Trong khi đó luật Delta (với η đủ nhỏ) luôn luôn hội tụ về một tập trọng số mà lỗi là tối thiểu, mặc dù sự hội tụ đến những giá trị chính xác của x = ± 1/2 thông thường phụ thuộc vào một tốc độ giảm η
Trang 6Câu 5: Hãy giải thích nguyên tắc và cơ chế học lan truyền ngược trong mạng Perceptron nhiều lớp? (Hình vẽ minh họa, các phương trình điều chỉnh trọng số)
* Bản chất của mạng lan truyền ngược:
- Chúng ta đã không thể tìm được trọng số của mạng Perceptron một lớp khi giải bài toán XOR Tuy nhiên, mạng Perceptrons nhiều lớp (MLPs) lại có khả năng giải các bài toán không tuyến tính
* Mô hình ANNs nhiều lớp
- hoặc nếu xem xét đối với mỗi nơ-ron thì
trong đó mỗi đơn vị xử lý j trong lớp n nhận kích hoạt outi(n-1) từ các đơn vị xử lý i của lớp trước đó (n-1) và gởi kích hoạt outj(n) cho các đơn vị xử lý của lớp kế tiếp (n+1)
Theo qui ước, lớp vào của một ANNs là lớp 0 và khi chúng ta nói đến một ANNs N lớp thì có nghĩa là có N lớp trọng số và N lớp đơn vị xử lý (không kể lớp vào) Như vậy, Perceptron 2 lớp sẽ như sau:
Trang 7Rõ ràng chúng ta có thể thêm nhiều lớp nữa, nhưng thực tế thì 2 lớp là đủ Chúng ta có thể sử dụng hàm kích hoạt khác nhau cho các lớp khác nhau, thậm chí cho cả các đơn vị xử lý khác nhau trong cùng lớp
* Phương trình điều chỉnh trọng số và giải thích:
- Chúng ta có thể sử dụng cùng ý tưởng như đã trình bày để huấn luyện mạng N lớp Chúng ta muốn điều chỉnh trọng số mạng wij(n) để giảm thiểu hàm tổng bình phương lỗi
và một lần nữa chúng ta có thể thực hiện điều này bằng một loạt các cập nhật trọng số bằng cách giảm gradient
Lưu ý rằng đây mới chỉ là kết quả ra outj(N) của các lớp cuối cùng xuất hiện trong hàm lỗi Tuy nhiên, kết quả ra lớp cuối cùng lại phụ thuộc vào các lớp trọng số trước đó và giải thuật học sẽ điều chỉnh tất cả chúng Giải thuật học tự động điều chỉnh kết quả ra outi(n-1) của các lớp (ẩn) trước sao cho chúng tạo ra những đại diện trung gian (ẩn) thích hợp
Đối với mạng 2 lớp, kết quả ra cuối cùng có thể được ghi:
Chúng ta có thể sử dụng luật biến đổi đạo hàm, như đã làm đối với Perceptron một lớp, để có được đạo hàm đối với 2 tập trọng số whl(1) và whl(2):
Trang 8Bây giờ chúng ta thay thế các đạo hàm trong hai phương trình cập nhật trọng số
Nếu hàm chuyển f(x) là hàm Sigmoid thì chúng ta sử dụng f’(x) = f(x).(1 - f(x)) để cho
Các phương trình này tạo thành giải thuật học lan truyền ngược
…
Trang 9Đề 2:
Câu 1: So sánh học có giám sát và học không có giám sát? Những mạng nơ-ron nào đại diện cho
2 loại mạng này?
* So sánh học có giám sát và không giám sát?
+ Điểm giống nhau của hai loại mạng:
Cả hai phương pháp học đều cần phải có một tập huấn luyện (training data set) để hệ thống có thể “học” và rút ra được các đặc trưng dùng cho việc gán nhãn
+ Điểm giống nhau của hai loại mạng:
Phương pháp học có giám sát cần biết trước đầu ra chính là số nhãn lớp Phương pháp học không giám sát không cần biết trước đầu ra (là số cụm và nhãn) để phân cụm
* Các loại mạng của học có giám sát: K_mean;
1.1 Học có giám sát:
Cách 1:
Mạng được huấn luyện bằng cách cung cấp cho nó các cặp mẫu đầu vào và các đầu ra mong muốn (target values) Các cặp được cung cấp bởi "thầy giáo", hay bởi hệ thống trên đó mạng hoạt động Sự khác biệt giữa các đầu ra thực tế so với các đầu ra mong muốn được thuật toán sử dụng để thích ứng các trọng số trong mạng Điều này thường được đưa ra như một bài toán xấp xỉ hàm số -cho dữ liệu huấn luyện bao gồm các cặp mẫu đầu vào x, và một đích tương ứng t, mục đích là tìm ra hàm f(x) thoả mãn tất cả các mẫu học đầu vào
Hình: Mô hình học có giám sát (Supervised learning model)
Cách 2:
Là một kĩ thuật của ngành học máy để xây dựng một hàm (function) từ tập dữ liệu huấn luyện Dữ liệu huấn luyện bao gồm các cặp gồm đối tượng đầu vào (thường dạng vec-tơ), và đầu ra mong muốn Đầu ra của một hàm có thể là một giá trị liên tục (gọi là hồi qui), hay có thể là dự đoán một nhãn phân loại cho một đối tượng đầu vào (gọi là phân loại) Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xét một số ví dụ huấn luyện (nghĩa là, các cặp đầu vào và đầu ra tương ứng) Để đạt được điều này,
Trang 10chương trình học phải tổng quát hóa dữ liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo một cách "hợp lí"
Học có giám sát có thể tạo ra 2 loại mô hình Phổ biến nhất, học có giám sát tạo ra một mô
hình toàn cục (global model) để ánh xạ đối tượng đầu vào đến đầu ra mong muốn Tuy nhiên, trong
một số trường hợp, việc ánh xạ được thực hiện dưới dạng một tập các mô hình cục bộ, dựa trên các
“hàng xóm” của nó
Để giải quyết một bài toán học có giám sát(ví dụ: để nhận dạng chữ viết tắt) người ta phải xét nhiều bước khác nhau:
Xác định loại của tập dữ liệu huấn luyện Trước khi làm bất cứ điều gì, chúng ta nên quyết định loại dữ liệu nào sẽ được sử dụng làm dùng để huấn luyện Chẳng hạn, đó có thể là một kí tự viết tay đơn lẻ, toàn bộ một từ viết tay, hay toàn bộ một dòng chữ viết tay
Thu thập dữ liệu huấn luyện Tập dữ liệu huấn luyện cần phù hợp với các hàm chức năng được xây dựng Vì vậy, cần thiết phải kiểm tra tích thích hợp của dữ liệu đầu vào để được dữ liệu đầu
ra tương ứng Tập dữ liệu huấn luyện có thể được thu thập từ nhiều nguồn khác nhau: từ việc đo được tính toán, từ các tập dữ liệu có sẵn…
Xác định việc biễu diễn các đặc trưng đầu vào cho hàm chức năng Sự chính xác của hàm chức năng phụ thuộc lớn vào cách biểu diễn các đối tượng đầu vào Thông thường, đối tượng đầu vào được chuyển đổi thành một vec-tơ đặc trưng, chứa một số các đặc trưng nhằm mô tả cho đối tượng
đó Số lượng các đặc trưng không nên quá lớn, do sự bùng nổ dữ liệu, nhưng phải đủ lớn để dự đoán chính xác đầu ra Nếu hàm chức năng mô tả quá chi tiết về đối tượng, thì các dữ liệu đầu ra có thể bị phân rã thành nhiều nhóm hay nhãn khác nhau, việc này dẫn tới việc khó phân biệt được mối quan hệ giữa các đối tượng hay khó tìm được nhóm(nhãn) chiếm đa số trong tập dữ liệu cũng như việc dự đoán phần tử đại diện cho nhóm, đối với các đối tượng gây nhiễu, chúng có thể được dán nhãn, tuy nhiễn số lượng nhãn quá nhiều, và số nhãn tỉ lệ nghịch với số phần của mỗi nhãn Ngược lại, hàm chức năng có quá ít mô tả về đối tượng dễ dẫn tới việc dán nhãn đối tượng bị sai hay dễ bỏ xót các đối tượng gây nhiễu Việc xác định tương đối đúng số lượng đặc tính của phần tử sẽ giảm bớt chi phí khi thực hiện đánh giá kết quả sau huấn luyện cũng như kết quả gặp bộ dữ liệu đầu vào mới
Xác định cấu trúc của hàm chức năng cần tìm và giải thuật học tương ứng Ví dụ, người kĩ sư
có thể lựa chọn việc sử dụngmạng nơ-ron nhân tạo hay cây quyết định
Hoàn thiện thiết kế Người thiết kế sẽ chạy giải thuật học từ tập huấn luyện thu thập được Các tham số của giải thuật học có thể được điều chỉnh bằng cách tối ưu hóa hiệu năng trên một tập con (gọi là tập kiểm chứng -validation set) của tập huấn luyện, hay thông qua kiểm chứng chéo (cross-validation) Sau khi học và điều chỉnh tham số, hiệu năng của giải thuật có thể được đo đạc trên một tập kiểm tra độc lập với tập huấn luyện
1.2 Học không giám sát:
Cách 1:
Với cách học không có giám sát, không có phản hồi từ môi trường để chỉ ra rằng đầu ra của mạng là đúng Mạng sẽ phải khám phá các đặc trưng, các điều chỉnh, các mối tương quan, hay các lớp trong
dữ liệu vào một cách tự động Trong thực tế, đối với phần lớn các biến thể của học không có thầy, các đích trùng với đầu vào Nói một cách khác, học không có thầy luôn thực hiện một công việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào
Cách 2:
Tiếng Anh là unsupervised learning, là một phương pháp nhằm tìm ra một mô hình mà phù hợp với các tập dữ liệu quan sát Nó khác biệt với học có giám sát ở chỗ là đầu ra đúng tương ứng cho mỗi đầu vào là không biết trước Trong học không có giám sát, đầu vào là một tập dữ liệu được