1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mạng neural và ứng dụng vào bài toán phân lớp

36 1,8K 20

Đ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

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 0,96 MB

Nội dung

Mạng neural nhân tạo được thiết kế tương tự như neural sinh học sẽ có khả năng giải quyết hàng loạt các bài toán như tính toán tối ưu, điều khiển, công nghệ robot… Quá trình nghiên cứu v

Trang 1

PHẦN MỞ ĐẦU

Khả năng học, ghi nhớ và khái quát hoá từ các dữ liệu huấn luyện làm cho mạng neural nhân tạo trở thành một phát minh đầy hứa hẹn trong hệ thống xử lý thông tin Các tính toán neural cho phép giải quyết tốt những bài toán đặc trưng bởi một số hoặc tất cả các tính chất nh ư : sử dụng không gian nhiều chiều, các tương tác phức tạp, chưa biết hoặc không thể theo dõi

về mặt toán học giữa các biến Ngoài ra phương pháp này còn cho phép tìm ra nghiệm của những bài toán mà đầu vào là các cảm nhận của con người như: tiếng nói, nhìn và nhận dạng

Cùng với sự phát triển của mô hình kho dữ liệu (data warehouse), ngày càng có nhiều kho dữ liệu với lượng dữ liệu rất lớn Để khai thác có hiệu quả những dữ liệu khổng lồ này đã có nhiều công cụ được xây dựng để thỏa mãn nhu cầu khai thác dữ liệu mức cao Việc xây dựng các hệ chuyên gia, các hệ thống dựa trên một cơ sở tri thức của các chuyên gia để có thể dự báo được khuynh hướng phát triển của dữ liệu, thực hiện các phân tích trên các

dữ liệu của tổ chức Mặc dù các công cụ, các hệ thống trên hoàn toàn có thể thực hiện được phần lớn các công việc nêu trên, chúng vẫn yêu cầu một độ chính xác, đầy đủ nhất định về mặt dữ liệu để có thể đưa ra được các câu trả lời chính xác nhất

Mạng neural có thể được huấn luyện và ánh xạ từ các dữ liệu vào tới các

dữ liệu ra mà không yêu cầu các dữ liệu đó phải đầy đủ Các mạng neural có khả năng biểu diễn các ánh xạ phi tuyến giữa đầu vào và đầu ra, chúng được coi như là các “bộ xấp xỉ đa năng” Phương pháp ứng dụng mạng neural trong bài toán phân lớp dữ liệu là một trong những hướng tiếp cận mới và hiện đại

và là một công cụ rất mạnh để giải quyết các bài toán trong lĩnh vực này Qua bài thu hoạch này, tôi xin chân thành cảm ơn Giáo sư, Tiến sĩ khoa

học Hoàng Văn Kiếm, giảng viên môn học “Công nghệ tri thức và ứng dụng”

đã tận tình giúp đỡ, hướng dẫn và định hướng để hoàn thành chuyên đề nghiên cứu rất bổ ích và lý thú này

Nội dung của bài thu hoạch ngoài phần mở đầu và kết luận, có ba chương như sau:

Chương 1: Tổng quan về mạng neural nhân tạo

Chương 2: Mạng truyền thẳng nhiều lớp

Chương 3: Phân lớp dữ liệu bằng mạng neural

Trang 2

CHƯƠNG 1 TỔNG QUAN VỀ MẠNG NEURAL NHÂN TẠO

1 Giới thiệu về mạng neural

1.1 Lịch sử phát triển

Mạng neural nhân tạo được xây dựng từ những năm 1940 nhằm mô phỏng một số chức năng của bộ não người Mạng neural nhân tạo được thiết kế tương tự như neural sinh học sẽ có khả năng giải quyết hàng loạt các bài toán như tính toán tối ưu, điều khiển, công nghệ robot…

Quá trình nghiên cứu và phát triển neural nhân tạo có thể chia thành 4 giai đoạn như sau:

- Giai đoạn 1: Có thể tính từ nghiên cứu của William (1890) về tâm lý học với

sự liên kết các neural thần kinh Năm 1940, McCulloch và Pitts đã cho biết neural

có thể mô hình hoá như thiết bị ngưỡng để thực hiện các phép tính logic và mô hình mạng neural của McCulloch – Pitts cùng với giải thuật huấn luyện mạng của Hebb

ra đời năm 1943

- Giai đoạn 2: Những năm 1960, một số mô hình neural hoàn thiện hơn đã được đưa ra như: Mô hình Perceptron của Rosenblatt (1958), Adalile của Widrow (1962) Trong đó mô hình Perceptron rất được quan tâm vì nguyên lý đơn giản, nhưng nó cũng có nhiều hạn chế

- Giai đoạn 3: Đầu thập niên 1980, những đóng góp lớn cho mạng neural trong giai đoạn này phải kể đến Grossberg, Kohonen, Rumelhart và Hopfield Trong đó đóng góp lớn của Hopfield gồm hai mạng phản hồi: mạng rời rạc năm 1982 và mạng liên tục năm 1984 Đặc biệt, ông đã dự kiến nhiều khả năng tính toán lớn của mạng mà một neural không có khả năng đó Cảm nhận của Hopfield đã được Rumelhart, Hinton và Williams đề xuất thuật toán sai số truyền ngược nổi tiếng để huấn luyện mạng neural nhiều lớp nhằm giải bài toán mà mạng khác không thực hiện được Nhiều ứng dụng mạnh mẽ của mạng neural ra đời cùng với các mạng theo kiểu máy Boltzmann và mạng Neocognition của Fukushima

- Giai đoạn 4: Tính từ năm 1987 đến nay, hàng năm thế giới đều mở hội nghị toàn cầu chuyên ngành neural IJCNN (International Joint Conference on Neural Networks) Rất nhiều công trình được nghiên cứu để ứng dụng mạng neural vào các lĩnh vực như: kỹ thuật tính toán, điều khiển, tối ưu, y học, sinh học, thống kê, giao thông, hoá học, Cho đến nay mạng neural đã khẳng định được vị trí ứng dụng của mình trong nhiều ngành khác nhau

1.2 Neural sinh học

Hệ thần kinh gồm hai lớp tế bào: neural (tế bào thần kinh) và glia (tế bào glia) Neural là thành phần cơ bản của hệ thần kinh, chúng có chức năng xử lý thông tin Glia thực hiện chức năng hỗ trợ Neural sinh học có nhiều loại, chúng khác nhau về kích thước và khả năng thu phát tín hiệu Tuy nhiên chúng có cấu trúc và nguyên lý

Trang 3

hoạt động chung như sau:

Mỗi neural sinh học gồm có 3 thành phần: Thân neural với nhân ở bên trong (soma), một đầu dây thần kinh ra (axon) và một hệ thống phân nhánh hình cây (dendrite) để nhận các thông tin vào Trong thực tế có rất nhiều dây thần kinh vào

và chúng bao phủ một diện tích rất lớn (0,25mm2) Đầu dây thần kinh ra được rẽ nhánh nhằm chuyển giao tín hiệu từ thân neural tới neural khác Các nhánh của đầu dây thần kinh được nối với các khớp thần kinh (synapse) Các khớp thần kinh này được nối với thần kinh vào của các neural khác Các neural có thể sửa đổi tín hiệu tại các khớp Hình ảnh đơn giản của một neural thể hiện trong hình 1.1

Hình 1.1 Mô hình neural sinh học

Hoạt động của neural sinh học có thể được mô tả như sau:

- Mỗi neural nhận tín hiệu vào từ các tế bào thần kinh khác Chúng tích hợp các tín hiệu vào, khi tổng tín hiệu vượt quá một ngưỡng nào đó chúng tạo tín hiệu ra

và gửi tín hiệu này tới các neural khác thông qua dây thần kinh

- Các neural liên kết với nhau thành mạng Mức độ bền vững của các liên kết này xác định một hệ số gọi là trọng số liên kết

1.3 Neural nhân tạo

Mô phỏng neural sinh học, ta có neural nhân tạo Mỗi neural có rất nhiều dây thần kinh vào, nghĩa là mỗi neural có thể tiếp nhận đồng thời nhiều dữ liệu

Mạng neural nhân tạo (Artificial Neural Network) là một cấu trúc mạng được hình thành nên bởi một số lượng lớn các neural nhân tạo liên kết với nhau Mỗi neural có các đặc tính đầu vào, đầu ra và thực hiện một chức năng tính toán cục bộ Với việc giả lập hệ thống sinh học, các cấu trúc tính toán mạng neural có thể giải quyết được lớp các bài toán nhất định như: lập lịch, tìm kiếm, nhận dạng mẫu, xếp loại, Mạng neural còn giải quyết được lớp các bài toán sử dụng dữ liệu không đầy đủ, xung đột mờ hoặc xác suất Những bài toán này được đặc trưng bởi một số hoặc tất cả các tính chất sau: sử dụng không gian nhiều chiều, các tương tác phức tạp, chưa biết hoặc không thể theo dõi về mặt toán học giữa các biến; không gian nghiệm có thể rỗng, có nghiệm duy nhất hoặc có một số nghiệm bình đẳng như nhau Tuy nhiên việc ánh xạ từ một bài toán bất kỳ sang một giải pháp mạng neural lại là một việc không đơn giản

Trang 4

1.4 Các thành phần của một neural nhân tạo

Thành phần 1 Các nhân tố trọng số: Một neural thường nhận nhiều đầu vào

cùng lúc Mỗi đầu vào có trọng số liên quan của riêng nó, trọng số này giúp cho đầu vào có ảnh hưởng cần thiết lên hàm tổng của đơn vị xử lý Những trọng số này có chức năng giống như sức mạnh của các synapes khác nhau trong neural sinh học Trong cả hai trường hợp (nhân tạo và sinh học), một số đầu vào quan trọng hơn những đầu vào khác do vậy chúng có ảnh hưởng lớn hơn tới đơn vị xử lý để rồi chúng kết hợp lại để tạo ra sự phản ứng của neural (neural response)

Các trọng số là những hệ số thích nghi bên trong một mạng, chúng xác định cường độ (sức mạnh hay sức ảnh hưởng) của tín hiệu vào lên nơron nhân tạo Những sức mạnh này có thể được điều chỉnh theo những tập đào tạo đa dạng khác nhau và theo một kiến trúc mạng cụ thể hay là qua các luật học của nó

Thành phần 2 Hàm tổng: Bước đầu tiên trong hoạt động của một thành phần

xử lý là tính toán tổng có trọng số của tất cả các đầu vào Về mặt toán học, những đầu vào và các trọng số tương ứng là những vector có thể được biểu diễn:

I = (i1,i2, , in) và W = (w1, w2, …, wn) Tín hiệu vào tổng là tích vô hướng của mỗi thành phần trong vector I với thành phần tương ứng trong vector W và cộng lại tất cả các tích Input1 = i1.w1, input2 = i2.w2… Cuối cùng được cộng lại: input1+input2 +…+inputn Kết quả là một số duy nhất, không phải là một vector Hàm tổng có thể phức tạp hơn nhiều so với mô tả ở trên Đầu vào và các hệ số trọng số có thể được kết hợp theo nhiều cách khác nhau trước khi được đưa vào hàm chuyển đổi Bên cạnh việc tính tổng các tích đơn giản, hàm tổng có thể chọn max, min, tích … nhờ một số thuật toán chuẩn tắc Thuật toán cụ thể để kết hợp các đầu vào của neural được xác định bởi việc chọn kiến trúc và mô hình mạng

Thành phần 3 Hàm chuyển đổi: Kết quả của hàm tổng, hầu như luôn là tổng

có trọng số, được chuyển đổi thành một đầu ra có ý nghĩa nhờ một quá trình xử lý

có thuật toán gọi là hàm chuyển đổi Trong hàm chuyển đổi tổng có thể được so sánh với một ngưỡng nào đó để quyết định đầu ra của mạng Nếu như tổng lớn hơn giá trị ngưỡng thì thành phần xử lý đưa ra đầu ra một tín hiệu Nếu như tổng của đầu vào và các tích có trọng số nhỏ hơn ngưỡng thì không có tín hiệu ở đầu ra Cả hai kiểu phản ứng đều quan trọng

Giá trị ngưỡng, còn gọi hàm chuyển đổi, thường là phi tuyến Các hàm tuyến tính bị giới hạn vì đầu ra chỉ đơn giản là tỷ lệ của đầu vào

Hàm chuyển đổi có thể chỉ đơn giản là cho biết hàm tổng là dương hay âm Mạng có thể cho ra đầu ra 0 và 1, 1 và -1, hay con số kết hợp nào đó

Thành phần 4 Hàm ra: Mỗi thành phần xử lý cho phép một tín hiệu đầu ra

mà đầu ra này có thể đi tới hàng trăm neural khác Điều này giống với neural sinh học trong đó có rất nhiều đầu vào và chỉ có một hành động ra Thường thì đầu ra tương đương với kết quả của hàm chuyển đổi Tuy nhiên, một số kiến trúc mạng chỉnh sửa kết quả của hàm chuyển đổi để kết hợp với những thành phần xử lý lân

Trang 5

cận Các neural cho phép cạnh tranh với những neural khác, khi này chúng hạn chế các thành phần xử lý khác trừ các thành phần xử lý có sức mạnh rất lớn Sự cạnh tranh có thể xảy ra ở một hay là cả hai mức Đầu tiên sự cạnh tranh quyết định xem neural nhân tạo nào sẽ là tích cực hay là cung cấp một đầu ra Tiếp theo các đầu ra cạnh tranh giúp xác định thành phần xử lý nào sẽ tham gia và quá trình học hay là quá trình thích nghi

Thành phần 5 Giá trị truyền ngƣợc và hàm lỗi: Trong hầu hết các mạng

học sự khác biệt giữa đầu ra hiện tại và đầu ra mong muốn được tính toán, sự khác biệt có thể được gọi là lỗi thô Sau khi được tính toán, lỗi thô được chuyển đổi bởi hàm lỗi để làm cho phù hợp với một kiến trúc mạng cụ thể nào đó Các kiến trúc mạng cơ sở nhất sử dụng lỗi này một cách trực tiếp nhưng một số khác bình phương lỗi đó trong khi vẫn giữ lại dấu của nó, một số tính bậc ba của lỗi, một số khác lại hiệu chỉnh lỗi thô đó để đạt được mục đích cụ thể nào đó Lỗi của neural nhân tạo thường được truyền vào hàm học của một thành phần xử lý khác Số hạng lỗi này đôi khi còn được gọi là lỗi hiện thời

Lỗi hiện thời thường được truyền ngược về một tầng trước đó Nhưng giá trị này có thể là lỗi hiện thời hay là lỗi hiện thời đã được điều chỉnh theo một cách nào

đó (thường sử dụng đạo hàm của hàm chuyển đổi), hay là một đầu ra mong muốn nào đó, điều này phụ thuộc vào kiểu mạng neural được sử dụng Thường thì giá trị truyền ngược này sau khi được điều chỉnh bởi hàm học được nhân với mỗi trọng số kết nối vào để thay đổi chúng trước khi bước vào chu kỳ học mới

Thành phần 6 Hàm học: Mục đích của hàm học là để thay đổi giá trị của

biến trọng số kết nối ở các đầu vào của mỗi thành phần xử lý theo một thuật toán nào đó Quá trình thay đổi các trọng số của các kết nối đầu vào nhằm thu được một

số kết quả mong muốn cũng có thể được gọi là hàm thích nghi, hay còn gọi là chế

độ học Có hai kiểu học chính là học có giám sát và học không có giám sát Học có giám sát đòi hỏi có một “giáo viên” Người “giáo viên” này có thể là một tập dữ liệu đào tạo hay là một “người quan sát” “Người quan sát” đánh giá kết quả hoạt động của mạng Trong khi không có “giáo viên” bên ngoài nào, hệ thống sẽ phải tự sắp xếp nhờ một tiêu chuẩn được thiết kế sẵn trong mạng

2 Đơn vị xử lý

Một đơn vị xử lý (hình 1.2), cũng được gọi là một neural hay một nút (node), thực hiện một công việc rất đơn giản: nó nhận tín hiệu vào từ các đơn vị phía trước hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ được lan truyền sang các đơn vị khác

Trang 6

Hình 1.2: Đơn vị xử lý (Processing unit)

Trong đó:

xj : các đầu vào

wji : các trọng số tương ứng với các đầu vào

θj : độ lệch (bias)

aj : đầu vào mạng (net-input)

zj : đầu ra của neural

g(x): hàm chuyển (hàm kích hoạt)

Trong một mạng neural có ba kiểu đơn vị:

1) Các đơn vị đầu vào (input units), nhận tín hiệu từ bên ngoài;

2) Các đơn vị đầu ra (output units), gửi dữ liệu ra bên ngoài;

3) Các đơn vị ẩn (hidden units), tín hiệu vào (input) và ra (output) của nó nằm trong mạng

Mỗi đơn vị j có thể có một hoặc nhiều đầu vào: x0, x1, x2, … xn nhưng chỉ có một đầu ra zj

Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng, hoặc đầu ra của một đơn vị khác, hoặc là đầu ra của chính nó

3 Hàm xử lý

3.1 Hàm kết hợp

Mỗi một đơn vị trong một mạng kết hợp các giá trị đưa vào nó thông qua các

liên kết với các đơn vị khác, sinh ra một giá trị gọi là net input Hàm thực hiện

nhiệm vụ này gọi là hàm kết hợp, được định nghĩa bởi một luật lan truyền cụ thể Trong phần lớn các mạng neural, giả sử mỗi một đơn vị cung cấp một bộ cộng như

là đầu vào cho đơn vị mà nó có liên kết Tổng đầu vào đơn vị j đơn giản chỉ là

tổng trọng số của các đầu ra riêng lẻ từ các đơn vị kết nối cộng thêm ngưỡng hay

độ lệch (bias) j:

n

a j w ji x i j

i 1

Trường hợp w ji > 0, neural được coi là đang ở trong trạng thái kích thích

Tương tự, nếu như w ji < 0, neural ở trạng thái kiềm chế Chúng ta gọi các đơn vị

Trang 7

với luật lan truyền như trên là các sigma units Trong một vài trường hợp người ta cũng có thể sử dụng các luật lan truyền phức tạp hơn Một trong số đó là luật sigma-pi, có dạng như sau:

Rất nhiều hàm kết hợp sử dụng một "độ lệch" hay "ngưỡng" để tính net input tới đơn vị Đối với một đơn vị đầu ra tuyến tính, thông thường, j được chọn là hằng số và trong bài toán xấp xỉ đa thức j = 1

3.2 Hàm kích hoạt (hàm chuyển)

Phần lớn các đơn vị trong mạng neural chuyển net input bằng cách sử dụng một hàm vô hướng (scalar-to-scalar function) gọi là hàm kích hoạt, kết quả của hàm này là một giá trị gọi là mức độ kích hoạt của đơn vị (unit's activation) Các hàm kích hoạt thường bị ép vào một khoảng giá trị xác định, do đó thường được gọi là các hàm bẹp (squashing) Các hàm kích hoạt hay được sử dụng là:

1) Hàm đồng nhất (Linear function, Identity function): g(x) = x

Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này Đôi khi một hằng số được nhân với net input để tạo ra một hàm đồng nhất

Hình 1.3.1 Hàm đồng nhất (Identity function)

2) Hàm bước nhị phân (Binary step function, Hard limit function)

Hàm này cũng được biết đến với tên "hàm ngưỡng" (Threshold function hay Heaviside function) Đầu ra của hàm này được giới hạn vào một trong hai giá trị:

Dạng hàm này được sử dụng trong các mạng chỉ có một lớp Trong hình vẽ sau, được chọn bằng 1

Hình 1.3.2 Hàm bước nhị phân (Binary step function)

3) Hàm sigmoid (Sigmoid function (logsig))

Trang 8

Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng được huấn luyện bởi

thuật toán Lan truyền ngược (back-propagation) do dễ lấy đạo hàm, nên có thể

giảm đáng kể tính toán trong quá trình huấn luyện Hàm này được ứng dụng cho các chương trình ứng dụng mà các đầu ra mong muốn rơi vào khoảng [0,1]

Hình 1.3.3 Hàm Sigmoid

4) Hàm sigmoid lưỡng cực (Bipolar sigmoid function (tansig))

Hàm này có các thuộc tính tương tự hàm sigmoid Nó làm việc tốt đối với các ứng dụng có đầu ra yêu cầu trong khoảng [-1,1]

Hình 1.3.4 Hàm sigmoid lưỡng cực

Các hàm chuyển của các đơn vị ẩn (hidden units) là cần thiết để biểu diễn sự phi tuyến vào trong mạng Lý do là hợp thành của các hàm đồng nhất là một hàm đồng nhất Mặc dù vậy nhưng nó mang tính chất phi tuyến (nghĩa là, khả năng biểu diễn các hàm phi tuyến) làm cho các mạng nhiều tầng có khả năng rất tốt trong biểu diễn các ánh xạ phi tuyến Tuy nhiên, đối với luật học lan truyền ngược, hàm phải khả vi (differentiable) và sẽ có ích nếu như hàm được gắn trong một khoảng nào

đó Do vậy, hàm sigmoid là lựa chọn thông dụng nhất

Đối với các đơn vị đầu ra (output units), các hàm chuyển cần được chọn sao cho phù hợp với sự phân phối của các giá trị đích mong muốn Chúng ta đã thấy rằng đối với các giá trị ra trong khoảng [0,1], hàm sigmoid là có ích; đối với các giá trị đích mong muốn là liên tục trong khoảng đó thì hàm này cũng vẫn có ích,

nó có thể cho ta các giá trị ra hay giá trị đích được căn trong một khoảng của hàm kích hoạt đầu ra Nhưng nếu các giá trị đích không được biết trước khoảng xác định thì hàm hay được sử dụng nhất là hàm đồng nhất Nếu giá trị mong muốn là dương nhưng không biết cận trên thì nên sử dụng một hàm kích hoạt dạng mũ

Trang 9

4 Các kiến trúc mạng

4.1 Mạng một tầng

Mạng một tầng với S neural được minh họa trong hình 1.4 Chú ý rằng với mỗi một đầu vào trọng số R đầu vào sẽ được nối với từng neural và ma trận trọng số bây giờ sẽ có S hàng

Hình 1.4 Cấu trúc mạng neural một tầng

Một tầng bao gồm ma trận trọng số, các bộ cộng, vector ngưỡng b, hàm

chuyển và vector đầu ra a

Mỗi phần tử của vector đầu vào p được nối với từng neural thông qua ma trận trọng số W Mỗi neural có một ngưỡng bi, một bộ cộng, một hàm chuyển f và một

đầu ra ai Cùng với nhau, các đầu ra tạo thành một vector đầu ra a

Thông thường thì số lượng đầu vào của tầng khác với số lượng neural (R#S) Tất cả các neural trong cùng một tầng không có hàm chuyển giống nhau Có thể định nghĩa các neural trong một tầng có hàm chuyển khác nhau bằng cách kết hợp song song hai mạng neural giống ở trên Cả hai sẽ có đầu vào giống nhau và mỗi mạng sản xuất ra vài đầu ra

Ma trận trọng số cho các phần tử trong vector đầu vào W:

S

R R

w w

w

w w

w

w w w

, 2 , 1 ,

, 2 2 , 2 1 , 2

, 1 2 , 1 1 , 1

Các chỉ số hàng của các phần tử trong ma trận W chỉ ra neural đích đã kết hợp

với trọng số, trong khi chỉ số cột cho biết đầu vào cho trọng số đó Ví dụ, các chỉ số trong w32 nói rằng đây là trọng số của đầu vào thứ 2 nối với neural thứ 3

Trang 10

Trong hình trên, những kí hiệu ở dưới các biến cho biết các thông số về tầng

này, p là một vector có độ dài R, W là ma trận SxR, a và b là những vector có độ

dài S Như đã định nghĩa trước, một tầng bao gồm ma trận trọng số, bộ cộng và các

phép toán nhân, vector ngưỡng b, hàm chuyển và vector đầu ra

4.2 Mạng đa tầng

Mỗi tầng có ma trận trọng số W của riêng nó, vector b, vector đầu vào n và

một vector đầu ra Khi đó cần phải khai báo thêm vài ký hiệu để phân biệt giữa các tầng này Ta sẽ sử dụng cách viết lên trên đầu để nhận biết ký hiệu đó thuộc tầng nào Chính xác là chúng ta gắn thêm chỉ số của tầng trên đầu mỗi biến Như vậy, ma

trận trọng số của tầng thứ 2 được viết W2 Cách ký hiệu này được dùng trong mạng

neural 3 tầng như hình 1.6

Hình 1.6 Cấu trúc mạng neural 3 lớp

Như đã thấy, có R đầu vào, S1 neural ở tầng thứ nhất, S2 neural ở tầng thứ hai,

S3 neural ở tầng thứ ba… Như đã chú ý, những tầng khác nhau có thể có số lượng neural khác nhau

W

b

f +

Trang 11

Đầu ra của các tầng 1 và 2 là đầu vào của tầng 2 và tầng 3 Vì vậy tầng 2 có thể được xem như mạng neural một tầng với đầu vào R= S1, nơron S= S2 và ma trận

trọng số W = S1xS2 Đầu vào của tầng 2 là a1, và đầu ra là a2

Đầu ra của một tầng chính là đầu ra của mạng thì ta gọi đó là tầng ra Các tầng còn lại gọi là tầng ẩn Mạng neural như ở trên có một tầng ra (tầng 3) và hai tầng ẩn

Nếu có bốn yếu tố bên ngoài được dùng như các kích thích đầu vào, thì mạng

sẽ có bốn đầu vào Tương tự như vậy nếu mạng có bảy đầu ra thì phải có bảy neural

ở tầng ra Cuối cùng, các đặc điểm mong muốn có được ở tín hiệu đầu ra cũng giúp

ta chọn lựa hàm chuyển hợp lý hơn cho tầng ra Giả sử một đầu ra là một trong hai giá trị -1 hoặc 1, thì khi đó hàm chuyển giới hạn ngặt đối xứng sẽ được lựa chọn Như vậy, kiến trúc mạng một tầng hầu như được xác định hoàn toàn bởi các yếu tố

kỹ thuật, bao gồm số đầu vào, đầu ra và các thuộc tính của tín hiệu ra

Khi mạng có nhiều hơn hai tầng Các yếu tố bên ngoài không cho biết số lượng các neural yêu cầu bao nhiêu ở các tầng ẩn Thực tế, có một vài vấn đề cho việc dự đoán số lượng neural tối ưu ở tầng ẩn Vấn đề này là một lĩnh vực còn nhiều nghiên cứu

Về số lượng tầng trong mạng thì hầu hết những mạng neural thực tế chỉ có hai hay ba tầng Bốn tầng hoặc nhiều hơn rất ít khi được sử dụng

Một mạng có thể chọn lựa việc các neural có hay không có các giá trị ngưỡng Giá trị ngưỡng là một biến phụ cho mạng Lưu ý, có một neural không có giá trị

ngưỡng khi đó đầu vào của hàm chuyển sẽ luôn là 0 khi đầu vào của mạng p là 0

Đây là điều không mong muốn và chúng ta có thể loại bỏ vấn đề này bằng việc sử dụng giá trị ngưỡng Giá trị ngưỡng có thể bỏ đi, trong một số trường hợp

Trang 12

điều này được làm đơn giản là để giảm số lượng tham số của mạng Chỉ với hai biến, chúng ta có thể vẽ được đồ thị cho hệ mặt phẳng hai chiều Ba hay nhiều biến hơn sẽ khó hiển thị

5 Các hình trạng mạng

Hình trạng của mạng được định nghĩa bởi: số lớp, số đơn vị trên mỗi lớp và sự liên kết giữa các lớp như thế nào Các mạng về tổng thể được chia thành hai loại dựa trên cách thức liên kết các đơn vị

5.1 Mạng truyền thẳng

- Mạng truyền thẳng một lớp: Là mô hình liên kết cơ bản và đơn giản nhất

Các neural tổ chức lại với nhau tạo thành một lớp, tín hiệu được truyền theo một hướng nhất định nào đó Các đầu vào được nối với các neural theo trọng số khác nhau, sau quá trình xử lý cho ra một chuỗi các tín hiệu ra Nếu mạng là mô hình LTU thì nó được gọi là mạng Perception, còn mạng neural theo mô hình LGU thì được gọi là Adaline

- Mạng truyền thẳng nhiều lớp: Với cấu trúc đơn giản như trên, khi giải

quyết các bài toán phức tạp mạng truyền thẳng một lớp sẽ gặp rất nhiều khó khăn

Để khắc phục nhược điểm này, người ta đưa ra mạng truyền thẳng nhiều lớp Đây là mạng truyền thẳng gồm nhiều lớp kết hợp với nhau Lớp nhận tín hiệu gọi là lớp đầu vào (input layer), lớp đưa các tín hiệu ra gọi là lớp đầu ra (output layer), các lớp ở giữa lớp vào và lớp ra gọi là lớp ẩn (hidden layers) Cấu trúc của mạng neural truyền thẳng nhiều lớp được mô tả như sau:

Hình 1.9 Mạng neural truyền thẳng nhiều lớp

Trang 13

5.2 Mạng hồi quy

Bên cạnh mạng truyền thẳng còn có những dạng mạng khác như các mạng hồi quy Các mạng hồi quy thường có các liên kết ngược từ các lớp phía sau đến các lớp phía trước hay giữa các neural trong bản thân một lớp

 Mạng hồi quy một lớp có nối ngược

Hình 1.10 Mạng hồi quy một lớp có nối ngược

 Mạng hồi quy nhiều lớp có nối ngược

Hình 1.11 Mạng hồi quy nhiều lớp có nối ngược

6 Tiếp cận neural cho tính toán

6.1 Luật học

Các luật học đóng vai trò quan trọng trong việc xác định một mạng neural nhân tạo Một cách đơn giản về khái niệm học của mạng neural là cập nhật các trọng số trên cơ sở các mẫu

Chức năng của một mạng neural được quyết định bởi các nhân tố như: hình trạng mạng (số lớp, số đơn vị trên mỗi tầng và cách mà các lớp được liên kết với nhau) và các trọng số của các liên kết bên trong mạng Hình trạng của mạng thường

là cố định và các trọng số được quyết định bởi một thuật toán huấn luyện (training algorithm) Tiến trình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ giữa đầu vào và đích mong muốn được gọi là học (learning) hay huấn luyện (training) Rất nhiều thuật toán học đã được phát minh để tìm ra tập trọng số tối ưu làm giải pháp cho các bài toán Các thuật toán đó có thể chia làm hai nhóm chính: Học có giám sát (supervised learning) và Học không có giám sát (unsupervised learning)

a Học có giám sát

Đây là phương pháp phổ biến nhất để đào tạo một mạng neural nhân tạo nhằm tìm ra lời giải phù hợp cho bài toán Theo cơ chế này, đầu ra thực sự của

Trang 14

mạng được so sánh với đầu ra mong muốn Các trọng số thường được gán ngẫu nhiên trước khi bắt đầu đào tạo sau đó được hiệu chỉnh bởi mạng đó để trong lần lặp tiếp theo hay chu kỳ tiếp theo, sẽ tạo ra một kết quả gần với kết quả mong muốn hơn Các phương pháp học nhìn chung đều cố gắng giảm thiểu các lỗi hiện thời của các thành phần xử lý, để từ đó giảm lỗi toàn cục cho mạng Việc giảm lỗi toàn cục này diễn ra liên tục nhằm thay đổi các trọng số vào cho tới khi đạt được độ chính xác chấp nhận được

Với học có giám sát, mạng neural nhân tạo phải được đào tạo trước khi có thể

sử dụng Việc đào tạo bao gồm đưa dữ liệu đầu vào và đầu ra vào mạng Dữ liệu này thường được gọi là tập đào tạo Có nghĩa là với mỗi tập đào vào được cung cấp cho hệ thống có một tập đầu ra mong muốn tương ứng Trong hầu hết các ứng dụng,

dữ liệu thực sự thu thập từ thế giới thực được sử dụng Giai đoạn đào tạo này thường mất khá nhiều thời gian

Trong các hệ thống bản mẫu, với sức mạnh xử lý không đáp ứng yêu cầu, việc học có thể diễn ra trong nhiều tuần Việc đào tạo được coi là hoàn thành khi mà mạng neural đạt đến mức độ chính xác do người sử dụng đề ra Mức độ này có ý nghĩa là mạng đã đạt được độ chính xác thống kê mong muốn, nó sinh ra kết quả đầu ra do người sử dụng đặt ra với một tập đầu vào cho trước Khi không cần học thêm nữa, các trọng số thường được duy trì cố định cho ứng dụng đó Một số kiểu mạng cho phép tiếp tục học sau khi đã được đưa vào hoạt động, nhưng ở tốc độ thấp hơn nhiều Điều này giúp cho mạng thích nghi dần dần với những điều kiện thay đổi trong thế giới thực sau khi đã được đưa vào sử dụng

Tập đào tạo thường phải khá lớn để đạt được tất cả các thông tin cần thiết, để mạng có thể học được các đặc tính và những mối quan hệ quan trọng từ tập đó Không chỉ tập đào tạo phải lớn mà các phiên đào tạo phải thực hiện với những dữ liệu đa dạng khác nhau Nếu như mạng được đào tạo chỉ một ví dụ một lần thì có thể tất cả các trọng số được điều chỉnh cố định một cách tỉ mỉ tương ứng với một nhân tố điển hình trong ví dụ đó, nhưng nhân tố này có thể bị thay đổi rất nhiều trong lần học tiếp theo (khi mạng học về một nhân tố khác, sử dụng một ví dụ khác) Các nhân tố trước có thể bị quên đi khi mà học về một nhân tố mới Do vậy

mà hệ thống phải học mọi thứ cùng lúc, tìm ra sự sắp đặt trọng số tốt nhất với tất cả các nhân tố của dữ liệu Ví dụ để dạy hệ thống nhận dạng các mẫu pixel của 10 số, nếu như có 20 ví dụ cho mỗi số, toàn bộ các ví dụ về số 7 nên được đưa vào mạng ở cùng thời điểm

Dữ liệu được đưa vào mạng như thế nào (hay được mã hóa như thế nào) là một yếu tố rất quan trọng để giúp cho mạng làm việc thành công Mạng neural nhân tạo chỉ giải quyết được dữ liệu vào dạng số Vậy nên, dữ liệu thô từ môi trường bên ngoài phải được chuyển đổi Cần phải phân phạm vi cho dữ liệu hay là chuẩn hóa

nó cho phù hợp với kiểu mạng Quá trình tiền xử lý này đã khá phổ biến với máy

Trang 15

tính truyền thống như thông qua camera, cảm biến (sensors), hay là máy đọc (readable machines)…

Sau khi đã đào tạo có giám sát xong cần phải kiểm tra xem mạng có thể làm gì với dữ liệu mà nó chưa hề gặp trước đó Nếu như hệ thống cho một đầu ra không đủ tốt với tập dữ liệu kiểm tra, thì quá trình đào tạo chưa thể kết thúc được Thực sự việc kiểm tra này là rất quan trọng nhằm đảm bảo là mạng không chỉ đơn giản nhớ một tập dữ liệu cho trước mà đã học được những mẫu chung, phát hiện các đặc tính xuất hiện bên trong ứng dụng

b Học không có giám sát

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ó giám sát, các đích trùng với đầu vào Nói một cách khác, học không có giám sát 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

Học không có giám sát là một hứa hẹn lớn trong tương lai Máy tính nên tự học như một robot thực sự Hiện nay phương pháp này vẫn còn nhiều hạn chế với cấu trúc mạng neural đã biết đến gọi là các ánh xạ tự sắp xếp Loại mạng neural này vẫn chưa được sử dụng rộng rãi Tuy nhiên người ta đã chứng minh được rằng chúng cung cấp một giải pháp cho một số dạng bài toán nhất định

Cần phải xem xét một số nhân tố bên cạnh nhân tố thời gian trong khi đề cập đến nhiệm vụ đào tạo, điều này rất phức tạp Tất cả các yếu tố như: độ phức tạp, kích cỡ, việc chọn mô hình, kiến trúc, kiểu luật học, các luật được sử dụng và độ chính xác mong muốn của mạng cần phải được xem xét Những nhân tố này đóng vai trò hết sức quan trọng trong việc mất bao lâu để đào tạo mạng Việc thay đổi một trong những nhân tố này có thể kéo dài thời gian đào tạo tới một độ đài quá lớn hay thậm chí thu được kết quả có độ chính xác không thể chấp nhận được

Hầu hết các hàm học đều có tốc độ học hay gọi là hằng học Thường thì số hạng này là dương và nằm trong khoảng (0, 1) Nếu như tốc độ lớn hơn 1 thì thuật toán học điều chỉnh các trọng số của mạng quá dễ dàng và khi đó mạng làm việc không ổn định Các giá trị tốc độ học nhỏ sẽ không điều chỉnh lỗi hiện thời nhanh, nhưng nếu chỉ cần thực hiện một số bước nhỏ để điều chỉnh lỗi thì không khó khăn lắm để đạt được độ hội tụ tốt nhất

Trang 16

6.3 Các luật học

Có rất nhiều luật học khác nhau được sử dụng Hầu hết những luật này là dạng biến đổi của luật học cổ điển nổi tiếng Hebb

Luật học Hebb: Luật học đầu tiên và cũng là luật học được biết đến nhiều

nhất là luật học được giới thiệu bởi Donald Hebb Ý tưởng chính là nếu như một neural nhận một đầu vào từ một neural khác và nếu như cả hai đều hoạt động ở mức

độ tích cực cao (về toán học có nghĩa là có cùng dấu) thì trọng số giữa hai neural nên được làm mạnh lên

Luật học Hopfield: Giống như luật Hebb với điều khác biệt là chỉ rõ độ lớn

của việc làm mạnh hay làm yếu Được phát biểu như sau: “Nếu như đầu ra mong muốn và đầu vào đều tích cực (active) hay là đều không tích cực (inactive) thì tăng trọng số kết nối một lượng bằng tốc độ học, ngược lại giảm trọng số đó một lượng bằng tốc độ học.”

Luật học Delta: Luật này biến đổi luật học Hebb nhiều hơn nữa Là một trong

những luật được sử dụng nhiều nhất Luật này được dựa trên ý tưởng đơn giản là tiếp tục hiệu chỉnh sức mạnh của các kết nối vào để giảm sự khác biệt (giá trị delta) giữa giá trị đầu ra mong muốn và đầu ra thực sự của thành phần xử lý Luật này thay đổi trọng số sao cho nó giảm thiểu lỗi bình phương trung bình của mạng Luật này cũng còn được gọi là luật học Widrow-Hoff hay là luật học bình phương trung bình tối thiểu

Cách mà luật Delta hoạt động là lỗi delta trong tầng ra được biến đổi bởi đạo hàm của hàm chuyển đổi và sau đó được sử dụng trong tầng neural trước đó để điều chỉnh các trọng số kết nối Nói cách khác lỗi này được truyền ngược về trước nó một tầng Quá trình truyền ngược lỗi của mạng tiếp tục cho tới khi tới truyền tới tầng đầu tiên Khi sử dụng luật Delta cần phải đảm bảo rằng tập dữ liệu vào được chọn với tính ngẫu nhiên cao Nếu như tập đào tạo được biểu diễn (đưa vào mạng)

có thứ tự hay cấu trúc rõ ràng thì có thể dẫn tới một mạng neural không thể hội tụ tới độ chính xác mong muốn Nếu như điều này xảy ra thì mạng không còn khả năng học nữa

Luật học giảm gradient: Luật này giống với luật Delta là đạo hàm của hàm

chuyển đổi vẫn được dùng để hiệu chỉnh giá trị lỗi delta trước khi nó được dùng để tính toán các trọng số kết nối Tuy nhiên luật này sử dụng thêm một hằng tỷ lệ, hằng này được kết hợp với tốc độ học, sau đó được thêm vào nhân tố hiệu chỉnh cuối cùng ảnh hưởng tới trọng số Luật này cũng được dùng phổ biến, mặc dù tốc độ hội

tụ của nó về một điểm ổn định là khá chậm

Khi sử dụng những tốc độ học khác nhau cho những tầng khác nhau của mạng giúp cho quá trình học của mạng hội tụ nhanh hơn Trong thực tế các tốc độ học cho những tầng gần đầu vào là chậm hơn so với tốc độ học của những tầng gần đầu ra Điều này là rất quan trọng với những ứng dụng mà dữ liệu vào thu được từ những

mô hình không được mô hình hóa tốt

Trang 17

Luật học Kohonen: Thủ tục này được phát triển bởi Teuvo Kohonen, xuất

phát từ việc học của các hệ thống sinh học Trong thủ tục này các thành phần xử lý cạnh tranh để có cơ hội được học hay là cập nhật các trọng số của chúng Thành phần xử lý với đầu ra lớn nhất được gọi là “người chiến thắng” và khi đó có khả năng cản trở các đối thủ của nó và kích hoạt các neural lân cận nó Chỉ có “người chiến thắng” được phép đưa ra đầu ra Chỉ có nó và những neural lân cận được phép điều chỉnh các trọng số kết nối của chúng

Kích thước của khu vực lân cận chỉ có thể được thay đổi trong thời gian đào tạo Mô hình thường gặp là bắt đầu với một khu vực lân cận khá lớn và thu hẹp dần trong quá trình đạo tạo mạng Bởi vì thành phần chiến thắng được xác định là neural

có kết quả gần với mẫu vào nhất Phương pháp này phù hợp với mô hình hóa dữ liệu thống kê và thường được gọi là các ánh xạ tự sắp xếp hay kiến trúc tự sắp xếp

7 Một số nhận xét về mạng neural

Mạng truyền thẳng và mạng hồi quy là hai mô hình tiêu biểu của mạng neural nhân tạo, mỗi loại mạng có những ưu nhược điểm riêng Nắm vững những ưu nhược điểm của chúng sẽ giúp ta lựa chọn mô hình mạng thích hợp cho từng ứng dụng sẽ thiết kế Có một số nhận xét về ưu nhược điểm của từng mô hình mạng như sau:

- Mạng truyền thẳng một lớp dễ phân tích nhưng không mô tả được mọi hàm Mạng nhiều lớp khắc phục được nhược điểm trên nhưng lại rất khó phân tích và gặp khó khăn trong quá trình xây dựng mạng Mặt khác, mạng truyền thẳng nhiều lớp

có thể gây sai số tích lũy qua các lớp

- Mạng phản hồi một lớp (tiêu biểu là mạng Hopfield) có cấu trúc đơn giản vì thế dễ phân tích, không chứa sai số tích lũy

- Mạng neural truyền thẳng chỉ đơn thuần tính toán các tín hiệu ra dựa trên các tín hiệu vào và trọng số liên kết giữa các neural đã xác định sẵn ở trong mạng Do

đó chúng không có trạng thái bên trong nào khác ngoài trọng số W Đối với mạng hồi quy, trạng thái bên trong của mạng được lưu trữ tại các ngưỡng của neural Nói chung các mạng hồi quy không ổn định, mạng cần phải tính toán rất lâu, thậm chí

có thể lặp vô hạn trước khi đưa ra kết quả mong muốn Quá trình học của mạng hồi quy cũng phức tạp hơn mạng truyền thẳng rất nhiều Tuy vậy các mạng hồi quy có thể cho phép mô phỏng các hệ thống tương đối phức tạp trong thực tế

Trang 18

CHƯƠNG 2 MẠNG TRUYỀN THẲNG NHIỀU LỚP

1 Khái niệm

Một mạng 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 hoặc nhiều lớp ẩn Các neural đầu vào thực chất không phải các neural theo đúng nghĩa bởi vì chúng không thực hiện bất kỳ một tính toán nào trên dữ liệu vào, đơn giản nó chỉ tiếp nhận các dữ liệu vào và chuyển cho các lớp kế tiếp Các neural ở lớp ẩn và lớp ra mới thực sự thực hiện các tính toán, kết quả được định dạng bởi hàm đầu ra (hàm chuyển) Cụm từ “truyền thẳng” (feed forward) thực tế là tất cả các neural chỉ có thể được kết nối với nhau theo một hướng: tới một hay nhiều các neural khác trong lớp kế tiếp (loại trừ các neural ở lớp ra) Hình sau ở dạng tóm tắt biểu diễn mạng neural truyền thẳng nhiều lớp

Hình 2.1: Mạng nơron truyền thẳng nhiều lớp

Trong đó:

P: Vector đầu vào (vector cột)

W i: Ma trận trọng số của các nơron lớp thứ i

(SixRi: S hàng (neural) - R cột (số đầu vào))

b i: Vector độ lệch (bias) của lớp thứ i (S ix1: cho S neural)

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

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w