Kết luận AN N s là hệ thống máy tính tiềm năng bao gồm nhiều đơn vị xử lý đơn giản, được kết nối với nhau để thực hiện các tác vụ tương tự như bộ não sinh học: chúng là hoàn toàn song so[r]
Giới thiệu mạng nơ-ron nhân tạo và lịch sử phát triển
Mạng nơ-ron nhân tạo là gì?
Mạng nơ-ron (Neural Networks - NNs) là hệ thống gồm các nơ-ron được kết nối tương tự như trong não bộ sinh học Các nơ-ron và cách chúng kết nối với nhau là thành phần cơ bản của mạng nơ-ron Để hiểu rõ hơn về cấu trúc và hoạt động của mạng nơ-ron, chúng ta sẽ bắt đầu từ việc nghiên cứu các nơ-ron nhân tạo.
Nơ-ron nhân tạo là các mô phỏng đơn giản của nơ-ron sinh học trong não, có thể tồn tại dưới dạng thiết bị vật lý hoặc mô hình toán học Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) được phát triển để xử lý và phân tích dữ liệu, góp phần quan trọng trong nhiều ứng dụng công nghệ hiện đại.
Mạng nơ-ron nhân tạo (ANNs) là tập hợp các nơ-ron kết nối, mô phỏng một phần của bộ não sinh học Chúng có thể tồn tại dưới dạng hệ thống thiết bị vật lý hoặc mô phỏng trên máy tính.
AN Ns là một hệ thống máy tính song song, bao gồm nhiều đơn vị xử lý đơn giản được kết nối theo một cấu trúc nhất định để thực hiện các nhiệm vụ cụ thể Mặc dù được đơn giản hóa trong mô phỏng, AN Ns vẫn giữ được những đặc tính đặc trưng của một bộ não thực sự.
Tại sao nghiên cứu ANNs?
AN Ns được phát triển dựa trên cảm hứng từ mạng nơ-ron sinh học, hứa hẹn trở thành hệ thống máy tính tiềm năng trong tương lai nhờ khả năng hoàn toàn song song, mang lại hiệu quả cao Chúng có khả năng học từ dữ liệu huấn luyện và khái quát hóa tình huống mới mà không yêu cầu nhiều kỹ năng lập trình AN Ns còn có khả năng chịu lỗi và chịu nhiễu, giúp chúng xử lý tốt hơn những tình huống mà các hệ thống symbolic thường gặp khó khăn Tóm lại, AN Ns không chỉ có thể thực hiện mọi chức năng của hệ thống symbolic/logic mà còn vượt trội hơn trong nhiều khía cạnh.
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ô hình hóa bộ não nhằm mục đích nghiên cứu cách thức hoạt động của não, từ đó giúp chúng ta hiểu rõ hơn về bản chất của trí thông minh con người Việc này không chỉ hỗ trợ xây dựng các chiến lược giảng dạy hiệu quả mà còn góp phần phát triển các phương pháp điều trị hiệu quả cho những bệnh nhân bị tổn thương não.
Mục đích của việc xây dựng hệ thống nhân tạo là nâng cao hiệu quả cho các ứng dụng thực tế, giúp máy móc hoạt động tốt hơn và thay thế con người trong những công việc nhàm chán, từ đó cải thiện hiệu suất công việc Thông thường, chúng ta sử dụng hệ thống nhân tạo để phục vụ cả hai mục tiêu này, cho phép chúng bổ sung dữ liệu cho nhau Tuy nhiên, cần lưu ý rằng sự khác biệt cơ bản giữa hai mục tiêu này là yêu cầu về tính tin cậy sinh học trong mô hình hóa não bộ và tính hiệu quả tính toán trong việc phát triển hệ thống nhân tạo.
Khả năng học của ANNs
Có nhiều mô hình mạng nơ-ron nhân tạo (AN Ns) được đề xuất, chủ yếu hoạt động bằng cách kích hoạt các nơ-ron trong toàn bộ mạng Một trong những ưu điểm nổi bật của AN Ns là khả năng học hỏi từ dữ liệu huấn luyện và khái quát hóa cho những tình huống mới Chúng thay đổi trọng số các kết nối giữa các nơ-ron để đảm bảo kết quả đầu ra chính xác.
Có ba loại học tập được xem xét trong mạng AN Ns:
• Học có giám sát (supervised learning), tức là học có giáo viên
• Học dựa trên thông tin phản hồi (reinforcement learning)
• Học không giám sát (unsupervised learning), tức là học mà không có sự giúp đỡ
Trong bài học này, chúng ta sẽ khám phá các loại hình học tập khác nhau, tương ứng với các mô hình mạng AN Ns được minh họa trong hình 1-1.
Hình 1-1: Phân loại các mô hình ANNs
Lịch sử phát triển của ANNs
Sự phát triển của mạng nơ-ron nhân tạo (ANN) bắt đầu vào năm 1943 khi McCulloch và Pitts đề xuất mô hình nơ-ron đầu tiên, gọi là nơ-ron McCulloch-Pitts Năm 1949, Hebb xuất bản cuốn sách “Cấu trúc tổ chức hành vi” với các luật học Hebbian Đến năm 1958, Rosenblatt giới thiệu mạng Perceptron, một lớp nơ-ron đơn giản Tuy nhiên, vào năm 1969, Minsky và Papert chỉ ra những hạn chế của mạng Perceptron một lớp, dẫn đến sự chững lại trong sự phát triển của lĩnh vực ANN.
Năm 1982 Hopfield xuất bản một loạt các bài viết về mạng Hopfield Đến năm 1982
Kohonen phát triển mạng tự tổ chức Kohonen và năm 1986 giải thuật học lan truyền ngược
(Back-Propagation) đối với mạng Perceptron đa lớp được đề xuất và đã tạo những hy vọng cho việc tiếp tục nghiên cứu AN Ns
In 1990, various subfields of Radial Basis Function (RBF) networks were developed By the 2000s, the integration of Artificial Neural Networks (ANNs) with Support Vector Machines (SVMs) demonstrated the significant power of ANNs.
So sánh ANNs với trí tuệ nhân tạo cổ điển
AN N ra đời đã tạo ra một bước đột phá mới so với trí tuệ nhân tạo cổ điển Sự khác biệt giữa chúng có thể dựa trên:
• Cấu trúc biểu diễn Điều này đã dẫn đến những kiểu phân loại khác nhau như:
• Sub-symbolic so với Symbolic
• Non-modular so với Modular
• Biểu diễn phân tán so với biểu diễn tập trung
• Bottom up so với Top Down
• Xử lý song song so với Xử lý tuần tự
Tuy nhiên trong thực tế, sự phân biệt này đang ngày trở nên không rõ ràng.
Một số ứng dụng của ANNs
Nghiên cứu AN Ns nhằm đạt được hai mục tiêu khác nhau, dẫn đến việc ứng dụng của AN Ns được chia thành hai hướng cơ bản.
Mô hình hóa bộ não:
• Các mô hình phát triển con người nhằm giúp các trẻ em có những hạn chế về vấn đề phát triển
• Mô phỏng hành vi nhằm giúp chúng ta hiểu được cách thức hoạt động của bộ não
• Các mô hình giải phNu não nhằm đề xuất cách chữa trị cho các bệnh nhân bị tổn thương về não Ứng dụng thực tế:
• Mô hình hóa tài chính: dự đoán chứng khoán, cổ phiểu, tỷ giá đổi ngoại tệ
• Dự đoán khác: dự đoán khí hậu, thời tiết, tiếp thị hàng không
• Trò chơi máy tính : tác tử thông minh, backgammon, first person shooters
• Kiểm soát hệ thống : robot độc lập tự thích nghi, vi điều khiển
• Nhận dạng mẫu : nhận dạng giọng nói, nhận dạng chữ viết tay, các tín hiệu sonar
• Phân tích dữ liệu : nén dữ liệu, khai phá dữ liệu, PCA, GTM
• Giảm tiếng ồn : xấp xĩ hàm, giảm tiếng ồn ECG
• Bioinformatics : Cấu trúc protein thứ cấp, dãy DNA
Kết luận
AN Ns là hệ thống máy tính tiềm năng với nhiều đơn vị xử lý đơn giản, kết nối để thực hiện các tác vụ giống như bộ não sinh học Chúng hoạt động hoàn toàn song song, mang lại hiệu quả cao, sức mạnh vượt trội, khả năng chịu lỗi và chống nhiễu Hệ thống này có khả năng học từ dữ liệu huấn luyện và khái quát hóa các tình huống mới, đồng thời hữu ích trong việc mô hình hóa bộ não cùng các ứng dụng thực tế như nhận dạng mẫu, xấp xỉ hàm và dự đoán.
Nơ-ron sinh học và nơ-ron nhân tạo
Tổ chức của bộ não và hệ thần kinh
Về mặt giải phNu, bộ não con người có hình dạng như hình vẽ 2-1, trong đó mỗi vùng não đảm nhận một số chức năng cụ thể
Hình 2-1: Cấu trúc bộ não người
Tuy nhiên, chúng ta có thể phân chia hệ thần kinh con người thành ba phần và được biểu diễn theo sơ đồ khối như hình vẽ 2-2, bao gồm:
• Bộ nhận (receptors) thu thập các thông tin từ môi trường, ví dụ các photons trên võng mạc
• Bộ thực hiện (effectors) tạo ra các tương tác với môi trường, ví dụ kích hoạt cơ bắp
• Các luồng thông tin / kích hoạt được thể hiện bằng mũi tên: truyền thẳng và phản hồi
Hình 2-2: Sơ đồ khối hệ thần kinh con người
Thực tế, não bộ con người được tổ chức theo thứ bậc các cấp đang xen lẫn nhau, bao gồm:
Trong phạm vi học phần này, chúng ta sẽ quan tâm chủ yếu đến các nơ-ron (Neurons) và kết nối giữa chúng (Local circuits)
So sánh bộ não với máy tính song song
Bộ não và máy tính song song có nhiều điểm tương đồng, đặc biệt trong cách xử lý thông tin Cả hai đều sử dụng các đơn vị xử lý để thực hiện nhiệm vụ, cho phép chúng xử lý nhiều dữ liệu cùng một lúc Sự so sánh giữa bộ não và máy tính song song cho thấy khả năng tối ưu hóa và hiệu suất trong việc giải quyết các vấn đề phức tạp.
Bộ não Máy tính song song
• Vỏ não người có khoảng 10 tỷ nơ-ron • Máy tính song song mạnh nhất hiện nay chỉ có khoảng 10 ngàn đơn vị xử lý
• Mỗi neuron sinh học được kết nối với hàng ngàn neurons khác • Các đơn vị xử lý cũng kết nối với nhau trong máy tính song song
• Tốc độ hoạt động của các nơ-ron sinh học được đo bằng mili giây (10 -3 s) • Một đơn vị xử lý có thể hoạt động ở mức nano giây (10 -9 s)
• Bộ não con người là vô cùng hiệu quả về mặt tiêu thụ năng lượng, khoảng 10 -16 joules/giây cho mỗi hoạt động
• Máy vi tính tốt nhất hiện nay sử dụng khoảng 10 -6 joules/giây cho mỗi hoạt động
• Bộ não đã được phát triển qua hàng chục triệu năm
• Máy tính chỉ phát triển hàng chục thập kỷ qua
Nơ-ron sinh học
Một nơ-ron sinh học đơn giản được cấu tạo như hình vẽ 2-3, với chức năng chính là mã hoá sự kích hoạt và truyền tải thông tin dưới dạng các xung điện ngắn.
Hình 2-3: Cấu trúc của một nơ-ron đơn giản
Cụ thể, vai trò của từng phần là như sau
• Các thân tế bào nơ-ron (soma) xử lý các tín hiệu vào và chuyển đổi chúng thành các kích hoạt ra
Các hạch nơ-ron chứa yếu tố di truyền dưới dạng DNA, một thành phần có mặt trong mọi loại tế bào, không chỉ riêng nơ-ron.
• Dendrites là các dây nối bắt nguồn từ thân tế bào và cung cấp những vùng receptive mà từ đó nhận kích hoạt đến từ các nơ-ron khác
• Axons cũng là các dây nối nhưng hoạt động như các đường truyền gởi kích hoạt từ một nơ-ron đến các nơ-ron khác
Các khớp (synapses) là những điểm nối cho phép tín hiệu được truyền giữa các axons và dendrites Quá trình truyền tín hiệu này diễn ra thông qua sự khuếch tán hóa học qua các kẻ nứt của khớp.
Nơ-ron nhân tạo McCulloch-Pitts
Dựa trên cấu trúc chung của nơ-ron sinh học, McCulloch-Pitts đã giới thiệu mô hình nơ-ron nhân tạo đơn giản nhất, được gọi là đơn vị logic ngưỡng, như minh họa trong hình 2-4.
• Một tập các kết nối (synapses) mang kích hoạt từ các nơ-ron khác đến (in)
Một đơn vị xử lý tổng hợp tất cả các tín hiệu đầu vào và sau đó áp dụng một hàm kích hoạt không tuyến tính, như hàm chuyển hoặc hàm ngưỡng.
• Một đường ra truyền kết quả ra (out) đến các nơ-ron khác
Hình 2-4: Mô hình nơ-ron McCulloch-Pitts
Kết quả đầu ra của nơ-ron McCulloch-Pitts được xác định bởi một hàm dựa trên n thành phần đầu vào, với θ là ngưỡng kích hoạt của nơ-ron.
Nơ-ron McCulloch-Pitts là một mô hình đơn giản hơn nhiều so với nơ-ron sinh học, dẫn đến việc một số đặc điểm như giá trị vào/ra không phải nhị phân, tổng vào không tuyến tính, ngưỡng mịn, tính ngẫu nhiên và yếu tố thời gian bị đơn giản hóa Tuy nhiên, mô hình này vẫn mạnh mẽ về mặt tính toán và có khả năng thực hiện nhiều phép toán phức tạp.
Kết luận
Nơ-ron sinh học bao gồm thân tế bào, axons, dendrites và synapses, có khả năng xử lý và truyền kích hoạt nơ-ron Mô hình nơ-ron McCulloch-Pitts là một sự mô phỏng đơn giản của nơ-ron thật, thực hiện tính tổng và áp dụng hàm ngưỡng lên mức kích hoạt Việc áp dụng các khái niệm toán học phù hợp sẽ giúp thiết kế và xây dựng nơ-ron và mạng nơ-ron nhân tạo (ANNs) hiệu quả hơn.
Mạng Perceptron một lớp
Mạng Perceptron
Một nơ-ron đơn thường không đủ khả năng để thực hiện nhiều tác vụ Để phát triển một ứng dụng, cần có sự kết nối giữa nhiều nơ-ron, được đánh số như k, i và j Luồng kích hoạt giữa các nơ-ron này được truyền qua các khớp nối có trọng số tương ứng, như wki và wij.
Hình 3-1: Kết nối giữa 2 nơ-ron McCulloch-Pitts
Chúng ta có khả năng kết nối các nơ-ron McCulloch-Pitts theo nhiều cách khác nhau Mạng này bao gồm một lớp đầu 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
Hình 3-2 cũng chỉ ra phương trình Perceptron dùng để tính toán kết quả ra outj.
Cài đặt cổng logic với mạng Perceptron
Một trong những ứng dụng đơn giản đầu tiên của mạng Perceptron là thiết lập các cổng logic như NOT, AND và OR Để đạt được kết quả chính xác với một tập dữ liệu đầu vào, cần xác định trọng số kết nối và ngưỡng nơ-ron phù hợp Các cổng logic này là cơ sở để thiết kế các chức năng logic phức tạp hơn Tuy nhiên, thực tế cho thấy rằng người ta thường không xây dựng mạng AN N phức tạp hơn Perceptron một lớp, mà thay vào đó, họ tìm cách xác định trọng số và ngưỡng từ một kiến trúc Perceptron một lớp khác.
Trong ba loại cổng logic, việc xác định các đầu vào (ini) và đầu ra (out) là rất quan trọng Chúng ta cần chú ý đến trọng số của các kết nối và ngưỡng của mỗi nơ-ron để đảm bảo hoạt động chính xác.
Cách dễ dàng nhất để tìm ra lời giải là bằng cách thử
Hình 3-3: Mạng Perceptron 1 lớp cho các cổng logic NOT, AND và OR
Bằng cách thử nghiệm với các giá trị khác nhau cho trọng số kết nối và ngưỡng của nơ-ron, chúng ta có thể xác định một mạng perceptron phù hợp cho từng cổng logic, như đã minh họa trong hình vẽ 3-3.
Xác định trọng số bằng phương pháp phân tích
Việc thiết kế một AN N đơn giản không phải là vấn đề lớn, nhưng thách thức thực sự nằm ở việc chứng minh rằng AN N đó có khả năng thực hiện chức năng theo đúng 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?
Để xác định các tham số một cách chính xác, chúng ta nên áp dụng một phương pháp tính toán thích hợp thay vì chỉ dựa vào việc thử nghiệm.
Hình 3-4: Làm thế nào để tìm được mạng perceptron phù hợp cho cổng XOR bằng phương pháp thử?
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 θ Đố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 - θ)
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ũng có vô hạn lời giải cho mạng OR và mạng NOT
Trở lại trường hợp 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 sau
Bất phương trình 2 và 3 không thể thỏa mãn bất phương trình 4, dẫn đến việc không thể tìm ra lời giải Để khắc phục, cần sử dụng mạng phức tạp hơn, như tổ hợp từ nhiều mạng đơn hoặc áp dụng hàm ngưỡng/kích hoạt khác Tuy nhiên, việc xác định trọng số và ngưỡng trong trường hợp này sẽ gặp khó khăn hơn nếu chỉ dựa vào phương pháp thử.
Hình thái của ANNs
Về mặt toán học, AN Ns có thể được biểu diễn như là đồ thị có hướng có trọng số Có 3 hình thái AN Ns phổ biến:
• AN Ns truyền thẳng một lớp: bao gồm một lớp vào và một lớp (các đơn vị xử lý) ra
Không có kết nối truyền ngược (Ví dụ, Perceptron một lớp.)
• AN Ns truyền thẳng nhiều lớp: bao gồm một lớp vào, một lớp ra và một hay nhiều lớp Nn
Lớp Nn nằm giữa lớp vào và lớp ra, không có kết nối truyền ngược, do đó được gọi là Nn trong bối cảnh tương tác với thế giới bên ngoài, như trong trường hợp của Perceptron nhiều lớp.
Mạng hồi qui (AN Ns hồi qui) là loại mạng có khả năng kết nối truyền ngược từ các đơn vị xử lý của một lớp đến các đơn vị xử lý của lớp trước đó, giúp cải thiện hiệu suất xử lý thông tin Mạng này có thể tồn tại với hoặc không có lớp Nn, tùy thuộc vào cấu trúc và mục đích sử dụng của mô hình.
(Ví dụ, Mạng hồi qui đơn)
Hình vẽ 3-5 mô tả các ví dụ về hình thái các loại AN Ns Ngoài ra, còn có rất nhiều biến thể khác của 3 loại mạng trên
Hình 3-5: Hình thái các loại ANNs
Xác định ngưỡng của nơ-ron
Để kích hoạt mỗi nơ-ron, tổng các dữ liệu đầu vào cần vượt qua ngưỡng kích hoạt Việc tính toán này có thể thực hiện thông qua các hàm kích hoạt khác nhau.
• Hàm Sigmoid: hàm trơn (vi phân) và tăng đơn điệu
• Hàm Piecewise-Linear: tương đương với hàm sigmoid Đối với giá trị ngưỡng kích hoạt, chúng ta có thể xem nó như là một loại trọng số đặc biệt
Xuất phát từ phương trình tính tổng các dữ liệu vào nếu chúng ta gán w0j = -θj và out0 = 1 thì phương trình trên trở thành
Phương trình Perceptron cơ bản do đó được đơn giản hoá thành
Chúng ta chỉ cần thêm một đầu vào với giá trị kích hoạt out0 = 1, sau đó tiến hành tính toán "trọng số" mà không cần sử dụng giá trị ngưỡng.
Thủ tục chung khi xây dựng ANNs
Một ứng dụng điển hình của mạng nơ-ron nhân tạo (AN Ns) là phân loại Chúng ta có thể xem xét ví dụ về phân loại máy bay dựa trên trọng tải và tốc độ, với thông tin mô tả về hai loại máy bay khác nhau Câu hỏi quan trọng là làm thế nào để xây dựng một AN Ns có khả năng phân loại hai loại máy bay ném bom dựa trên các thông số này.
(Bomber) và tiêm kích (Fighter)?
Qui trình chung để xây dựng một AN N với mục đích giải quyết một vấn đề (bài toán) cụ thể nào đó là như sau:
1 Hiểu và xác định vấn đề (bài toán) theo nghĩa “dữ liệu vào” và “kết quả đích” Ví dụ, phân loại các kết quả theo các lớp mà thông thường được biểu diễn dưới dạng các véc-tơ nhị phân
2 Xây dựng AN N đơn giản nhất mà bạn nghĩ rằng nó có thể giải quyết được vấn đề của bạn, ví dụ Perceptron đơn
3 Cố gắng tìm các trọng số thích hợp (bao gồm cả ngưỡng nơ-ron) sao cho mạng sinh ra kết quả đúng tương ứng với mỗi dữ liệu vào (thuộc tập dữ liệu huấn luyện)
4 Hãy chắc chắn rằng mạng hoạt động tốt với dữ liệu huấn luyện và thử nghiệm khả năng khái quát hóa của nó với dữ liệu kiểm tra
5 Nếu mạng vận hành chưa tốt, trở lại bước 3 và huấn luyện thêm
6 Nếu mạng vẫn không vận hành tốt thì trở về bước 2 và thử với một kiến trúc khác phức tạp hơn
7 Nếu mạng vẫn không vận hành tốt nữa thì trở về bước 1 và thử đặt lại vấn đề một cách khác
Đối với ví dụ phân loại máy bay, đầu vào bao gồm hai đại lượng chính là trọng tải và tốc độ Chúng ta chỉ cần một đầu ra để phân loại: nếu giá trị kích hoạt là 1, máy bay sẽ được phân loại là 'fighter'.
Mạng Perceptron một lớp là mô hình đơn giản nhất để thử nghiệm, cho phép chúng ta dễ dàng hiểu các khái niệm cơ bản trong học máy Để đơn giản hóa mạng, chúng ta có thể thay thế ngưỡng bằng một trọng số đặc biệt, như đã đề cập trong mục 3.5 Hình dạng của AN N sẽ được mô tả tương ứng với hình vẽ 3-6.
Hình 3-6: Mạng Perceptron được sử dụng để phân loại máy bay
Chúng ta đã hoàn thành bước 1 và 2 trong quy trình xây dựng AN Ns Trong các bài viết tiếp theo, chúng ta sẽ tiếp tục tìm hiểu các bước còn lại, bắt đầu với mạng Perceptron một lớp và sau đó là các loại mạng phức tạp hơn.
Kết luận
Mạng Perceptron là một công cụ tính toán mạnh mẽ, có khả năng thực hiện nhiều chức năng logic Tuy nhiên, mạng Perceptron một lớp với hàm kích hoạt "step-function" bị giới hạn, không thể giải quyết các bài toán phức tạp như XOR Để cải thiện, có thể sử dụng các loại mạng nơ-ron khác với kiến trúc và hàm kích hoạt linh hoạt hơn Việc tìm kiếm trọng số kết nối và ngưỡng phù hợp thường gặp khó khăn nếu chỉ dựa vào phương pháp thử nghiệm, do đó, cần thực hiện dựa trên phân tích để đạt hiệu quả tốt hơn.
Khả năng học và khái quát của Perceptron một lớp
Đường quyết định
Để đánh giá sức mạnh của một Perceptron đơn giản trong việc giải quyết các bài toán, chúng ta cần xem xét khả năng của nó trong các tình huống phức tạp hơn, như phân loại máy bay, nhất là khi nó không thể giải quyết vấn đề XOR Đối với các cổng logic đơn giản, ANNs đã tạo ra đường quyết định phân chia các lớp Như đã trình bày trong mục 3.1, đầu ra của mạng Perceptron một lớp với một nơ-ron và hai đầu vào có ý nghĩa quan trọng trong việc hiểu khả năng của nó.
Hình 4-1: Mạng Perceptron cho cổng AND
Đường quyết định giữa out = 0 và out = 1 được xác định bởi phương trình w1 in1 + w2 in2 - θ = 0, tạo thành một đường thẳng Đối với các phép toán AND và OR, chúng ta có thể dễ dàng vẽ đường quyết định đã xác định trước Chúng ta có thể điều chỉnh trọng số và ngưỡng mà không làm thay đổi kết quả đầu ra.
Hình 4-2: Đường quyết định đối với cho cổng AND và cổng OR
Để giải quyết vấn đề XOR, cần sử dụng hai đường thẳng quyết định để phân tách các lớp khác nhau, vì phương pháp đơn giản không đủ hiệu quả.
Hình 4-3: Cần phải có 2 đường quyết định đối với cho cổng XOR
Để khắc phục vấn đề XOR, có hai phương pháp chính: một là điều chỉnh hàm kích hoạt để tạo ra nhiều đường quyết định, hai là áp dụng một mạng nơ-ron phức tạp hơn nhằm tạo ra các đường quyết định phức tạp hơn.
Siêu phẳng quyết định và sự phân loại tuyến tính
Mạng Perceptron một lớp với một nơ-ron và hai đầu vào sẽ xác định đường quyết định dưới dạng một đường thẳng trong không gian hai chiều Khi mở rộng với n đầu vào, các trọng số sẽ tạo ra một siêu phẳng trong không gian n chiều, được biểu diễn bằng công thức: w1 in1 + w2 in2 + + wn in n - θ = 0.
Mặc dù siêu phẳng này vẫn là tuyến tính và chỉ có khả năng chia không gian thành hai vùng, nhưng để giải quyết vấn đề XOR, chúng ta cần sử dụng các hàm kích hoạt phức tạp hơn hoặc các loại mạng phức tạp hơn.
Bài toán phân loại tuyến tính cho phép dữ liệu đầu vào được phân loại bằng một siêu phẳng, trong khi bài toán không thể phân loại tuyến tính, như XOR, không thể thực hiện được theo cách này Chúng ta mong muốn xử lý dữ liệu đầu vào không chỉ ở dạng nhị phân, mà còn tạo ra các đường quyết định phức tạp hơn để phân loại dữ liệu thành nhiều lớp.
Hình 4-4: Đường quyết định đối với các bài toán phức tạp
Học và khái quát
Ngoài khả năng ghi nhớ dữ liệu đã học, AN Ns còn có khả năng tạo ra kết quả từ dữ liệu chưa biết, được gọi là tính khái quát hóa Hai phương diện quan trọng của AN Ns cần được xem xét là khả năng ghi nhớ và khả năng khái quát hóa.
Để một mạng nơ-ron (AN Ns) có thể phân loại chính xác các mẫu huấn luyện, nó cần phải học từ một tập hợp các mẫu huấn luyện quyết định.
Sau khi hoàn thành quá trình huấn luyện, mạng nơ-ron nhân tạo (AN Ns) cần có khả năng khái quát hóa, cho phép nó phân loại chính xác các mẫu mà nó chưa từng gặp trước đây.
Để đảm bảo AN Ns học tốt và khái quát hóa hiệu quả, việc chú ý đến chất lượng dữ liệu huấn luyện là rất quan trọng Dữ liệu có thể chứa lỗi hoặc phân loại không chính xác, dẫn đến kết quả khái quát hóa kém Do đó, cần tìm ra sự thỏa hiệp hợp lý giữa việc học từ dữ liệu và khả năng khái quát hóa.
Trong quá trình phân loại dữ liệu, AN Ns cần tập trung vào việc học để cải thiện khả năng khái quát hóa của mạng Mục tiêu là đảm bảo rằng mạng có thể phân loại dữ liệu mới một cách chính xác Tuy nhiên, nếu dữ liệu huấn luyện chứa lỗi, việc huấn luyện sẽ không đạt độ chính xác cao, điều này sẽ ảnh hưởng tiêu cực đến khả năng khái quát hóa của mô hình.
Hình 4-5 minh họa hai trường hợp khác nhau trong việc huấn luyện mạng Trường hợp a cho thấy mạng được huấn luyện quá chính xác với tập dữ liệu, dẫn đến việc không thể nhận diện các trường hợp lỗi phân bố Ngược lại, trường hợp b cho thấy AN Ns có khả năng khái quát hóa và phát hiện các lỗi này.
Hình 4-5: Học và khái quát hóa
Một phương pháp khác là xác định đường cong từ tập dữ liệu mẫu có chứa lỗi Kết quả của AN Ns có thể gần giống với đường cong này Huấn luyện cho phép lỗi lớn trên dữ liệu huấn luyện có thể cải thiện khả năng khái quát hóa.
Hình 4-6: Đường cong xấp xĩ
Huấn luyện mạng bởi cập nhật trọng số liên tục
Dù là mạng Perceptron đơn giản hay mạng nhiều lớp phức tạp với hàm kích hoạt đặc biệt, việc xác định trọng số kết nối phù hợp là rất quan trọng Thông thường, mạng sẽ học các trọng số này từ một tập dữ liệu huấn luyện đặc trưng Tuy nhiên, việc tính toán trực tiếp các trọng số là không khả thi, ngay cả với những trường hợp đơn giản Do đó, chúng ta thường bắt đầu với các trọng số ngẫu nhiên và điều chỉnh chúng từng bước nhỏ cho đến khi đạt được kết quả mong muốn.
Mạng Perceptron đơn giản được sử dụng để phân loại, trong đó các đường quyết định là siêu phẳng Quá trình học có thể được hiểu là việc di chuyển siêu phẳng cho đến khi các mẫu huấn luyện được phân tách chính xác Để thực hiện điều này, cần chuyển đổi quá trình "di chuyển" thành một thuật toán có hệ thống, dễ dàng cài đặt trên máy tính.
Quá trình "di chuyển" có thể được chia thành nhiều bước nhỏ Nếu trọng số mạng tại thời điểm t được ký hiệu là wij(t), thì sự di chuyển tương ứng với sự thay đổi Δwij(t) Tại thời điểm t+1, trọng số sẽ được cập nhật theo công thức wij(t+1) = wij(t) + Δwij(t).
Như đã trình bày trước đây, việc xử lý ngưỡng như trọng số sẽ là thuận lợi hơn, do đó chúng ta không cần tách riêng các phương trình
Trở lại bài toán phân loại máy bay đã đề cập ở mục 3.6, đường thẳng quyết định khi đó sẽ có dạng là w 0 + w 1 mass + w 2 speed = 0
Chúng ta cần điều chỉnh đường quyết định để phân tách rõ ràng hai loại máy bay ném bom và tiêm kích, như hình vẽ đã mô tả.
Hình 4-7: Đường thẳng quyết định trong ví dụ phân loại máy bay
Giải thuật thay đổi trọng số
Để thực hiện di chuyển đường quyết định, chúng ta áp dụng giải thuật thay đổi trọng số Giả sử kết quả mục tiêu của đơn vị xử lý j là targj, trong khi kết quả hiện tại được tính là outj = sgn(Σini wij), trong đó ini là các kích hoạt từ lớp xử lý trước (ví dụ, dữ liệu đầu vào của mạng).
The weight adjustment algorithm operates based on the relationship between the actual output (out j) and the target output (targ j) If out j equals targ j, no changes are made, as the difference is zero When out j is 1 and targ j is 0, indicating that the input sum is too large, the weight w ij is decreased by η, specifically when the input in i is 1 Conversely, if in i is 0, the weight remains unchanged On the other hand, when out j is 0 and targ j is 1, suggesting that the input sum is too small, the weight w ij is increased by η when in i is 1, while it remains unaffected when in i is 0.
Rõ ràng mỗi trường hợp có thể được viết đưới dạng: wij → wij + η(targj – outj) ini Δwij = η(targj – outj) ini
Luật học Perceptron là phương trình cập nhật trọng số, trong đó tham số dương η được gọi là tốc độ học Tốc độ học này quyết định mức độ điều chỉnh đường quyết định khi có sự thay đổi.
Sự hội tụ của luật học Perceptron
Việc điều chỉnh trọng số Δwij cần được thực hiện lặp đi lặp lại cho từng trọng số wij và mỗi mẫu huấn luyện trong tập dữ liệu Sau một số vòng lặp, khi tất cả kết quả đầu ra khớp với kết quả mục tiêu, Δwij sẽ bằng 0 và quá trình huấn luyện sẽ dừng lại Khi đó, chúng ta nói rằng quá trình huấn luyện đã hội tụ, cho thấy rằng nếu tồn tại một tập trọng số cho mạng Perceptron có thể giải quyết một bài toán cụ thể, thì luật học Perceptron có khả năng tìm ra tập trọng số này sau một số vòng lặp hữu hạn Điều này có nghĩa là nếu bài toán có thể tách tuyến tính, luật học Perceptron sẽ đạt được giải pháp.
Perceptron sẽ tìm thấy tập trọng số sau một số vòng lặp hữu hạn sao cho nó có thể giải bài toán một cách chính xác.
Kết luận
AN Ns thực hiện sự phân loại bằng cách học đường quyết định từ các dữ liệu huấn luyện
Mạng Perceptrons một lớp chỉ có thể giải quyết các bài toán phân chia tuyến tính Huấn luyện mạng không chỉ nhằm ghi nhớ mà còn để khái quát hóa, cho phép xử lý dữ liệu chưa được học Quá trình huấn luyện diễn ra qua việc cập nhật trọng số lặp đi lặp lại, và luật học Perceptron sẽ tìm ra trọng số sau một số vòng lặp hữu hạn cho các bài toán phân chia tuyến tính.
Luật học Hebbian và luật học giảm gradient
Luật học Hebbian
Năm 1949 nhà giải phNu nơ-ron Donald Hebb đã đưa ra giả thuyết làm thế nào các nơ-ron sinh học thực hiện việc học:
When the axon of cell A is in close proximity to cell B and consistently stimulates it, a growth or metabolic change occurs in one or both cells, enhancing the efficiency of cell A in activating cell B.
1 Nếu hai neurons ở cả hai đầu của một kết nối (synapse) được kích hoạt đồng thời (đồng bộ), thì độ mạnh của kết nối sẽ được tăng lên
Luật này thông thường được bổ sung thêm bởi:
2 Nếu hai neurons ở cả hai đầu của một synapse được kích hoạt không đồng thời, thì synapse sẽ bị yếu đi hoặc bị loại bỏ
Tương tự như phương trình đã được sử dụng cho mạng Perceptrons, luật cập nhật trọng số
(học) Hebbian được viết là: Δw ij = η.out j in i
(Đây là kiểu học tập diễn ra trong vùng bộ não có tên gọi hippocampus.)
Nhớ lại rằng luật cập nhật trọng số (học) Perceptron là: Δw ij = η.(targ j – out j ).in i
Luật học Hebbian có nhiều điểm tương đồng với các luật học khác, nhưng nó không cần một tập dữ liệu huấn luyện Các biến thể của luật học Hebbian, như luật học tương phản Hebbian, mang lại những kỹ thuật học mạnh mẽ hơn cho các mạng sinh học Tuy nhiên, chúng ta sẽ áp dụng một phương pháp khác để phát triển thuật toán học cho ANNs của mình.
Học bằng cách tối thiểu hóa hàm lỗi
Luật học Perceptron là một thuật toán điều chỉnh trọng số mạng wij để giảm sự khác biệt
(lỗi) giữa các kết quả ra thực tế outj và kết quả đích targj Chúng ta có thể định nghĩa hàm lỗi để định lượng sự khác biệt này:
Rõ ràng đây là hàm tổng bình phương lỗi đối với tất cả các đơn vị xử lý j và đối với tất cả các mẫu huấn luyện p
Mục đích của việc học là giảm thiểu lỗi bằng cách điều chỉnh các trọng số wij Chúng ta thực hiện các điều chỉnh nhỏ cho đến khi lỗi E(wij) đạt mức "đủ nhỏ" Để đạt được điều này, cần hiểu cách hàm lỗi E(wij) thay đổi khi trọng số wij được điều chỉnh, tức là sự biến đổi gradient của E đối với wij.
Tính toán gradients và đạo hàm
Một phương pháp toán học để tính gradients là differential Calculus Hãy xem xét hàm y f(x)
Hình 5-1: Đạo hàm đối với một hàm f(x)
Gradient của hàm f(x) thể hiện tốc độ thay đổi của nó khi x thay đổi một giá trị Δx Giá trị này có thể được xấp xỉ bằng Δy/Δx, và chính xác hơn, nó được gọi là đạo hàm từng phần của f(x) đối với x.
Sau đây là một số ví dụ đạo hàm đơn giản:
Luật học giảm gradient
Giả sử chúng ta có một hàm f(x) và chúng ta muốn thay đổi giá trị của x để giảm thiểu f(x)
Có ba trường hợp xem xét:
• Nếu ∂f/∂x>0 thì f(x) tăng khi x tăng, vì vậy chúng ta phải giảm x
• Nếu ∂f/∂x