12/08/2018, 16:02

Mạng lan truyền ngược

Mạng lan truyền ngược hay còn được gọi là mạng phản hồi (truy hồi) được sử dụng khá phổ biến trong các model của AI hiện nay như DeepID-X hay CNN và đã được ứng dụng trong thực tế như: dùng làm bộ nhớ địa chỉ hóa nội dung; dùng làm các bộ tối ưu; đặc biệt thành công là thực hiện để sản xuất các ...

Mạng lan truyền ngược hay còn được gọi là mạng phản hồi (truy hồi) được sử dụng khá phổ biến trong các model của AI hiện nay như DeepID-X hay CNN và đã được ứng dụng trong thực tế như: dùng làm bộ nhớ địa chỉ hóa nội dung; dùng làm các bộ tối ưu; đặc biệt thành công là thực hiện để sản xuất các phần cứng máy tính kiểu tương tự, điển hình gồm: Mạng Hopfield rời rạc (1982); Mạng Hopfield liên tục (1984); Mạng liên kết hai chiều BAM (thực chất là hai mạng Hopfield đấu phản hồi); mạng Cohen-Grossberg (thực chất là khái quát hóa mạng Hopfield liên tục thành định lý Cohen-Grossberg, nhưng rất khó thực hiện trong kỹ thuật); Mạng neraul tế bào do Chu đề xuất và đã chế tạo thành máy tính đa năng hai chiều (thực chất là mạng nơ ron hai chiều của mạng Hopfield)… Tuy nhiên, dù nó được ứng dụng khá nhiều, bạn có thực sự biết về Mạng lan truyền ngược để có thể chọn được phương pháp tốt nhất cho bài toán của mình khi xây dựng model riêng cho mỗi trường hợp nhất định? Hôm nay mình xin giới thiệu một số mạng neraul phản hồi có tính ổn định của các mạng điển hình nhất là Mạng Hopfield rời rạc (1982); Mạng Hopfield liên tục (1984).

Xét mạng Hopfield rời rạc (năm 1982). Phương trình mô tả luật tác động:

Luật cập nhật đầu ra:

yi(t+1)=g(xi(t))yi(t+1) = g(xi(t))yi(t+1)=g(xi(t)) nếu xi(t) khác 0, i = p =yi(t)quadquad quadquad= yi(t)=yi(t) nếu xi(t) = 0, i khác p

Hàm quan hệ vào ra là hàm phi tuyến bước nhảy g(xi(t))=1 g(xi(t)) = 1 g(xi(t))=1 nếu xi(t) > 0 =0quadquad quad= 0 =0 nếu xi(t) < 0 Luật cập nhật trọng liên kết theo luật Hebb tương quan: Trong đó, xi(t) xi(t)xi(t): tổng của tất cả các đầu vào; yi(t)yi(t)yi(t): đầu ra của nơ ron; WijWijWij : là trọng liên kết phản hồi từ nơ ron i tới nơ ron j ; IiIiIi: hằng số của neural i; h là số mẫu được cất giữ; n là số neural; p là phần tử thứ p đang tác động. Hopfield cũng nêu hàm năng lượng mạng (hay hàm thế năng): Nếu Wij = 0 và Wij = Wji thì mỗi thay đổi không đồng bộ của yp năng lượng sẽ giảm phù hợp theo:

Hopfield (1984) đa ra mô hình mạng mô tả bằng tập các phương trình vi phân Trong đó, Ci và Ri là các hằng số; Ii là ngưỡng; Wij là trọng liên kết giữa phần tử neural thứ j với neural thứ i; xi là trạng thái neural thứ i. Hopfield nêu hàm Liapunov với dạng sau:

a) Ứng dụng mạng Hopfield cho các bài toán tối ưu

Để giải quyết các vấn đề tối ưu óa thì trong mạng hopfield, các hàm năng lượng được sử dụng tương đương như hàm mục tiêu để mà tối thiểu hoá. Việc tìm hàm tối thiểu trong mạng Hopfield chính là tìm lời giải cho các vấn đề tối ưu. Kết quả là phải đưa ra một vấn đề tối ưu với một hàm mục tiêu chính xác mà nó có thể được dùng để cấu thành một mạng hopfield, đặc biệt là tìm các trọng (weight) của chúng. Khi ta sử dụng mạng noron để giải quyết các vấn đề tối ưu, thì phải xây dựng chính xác từng loại thuật toán song song phù hợp với lời giải đó.

Ví dụ. Thiết kế bộ chuyển đổi A/D 4 bít mà sử dụng mạng Hopfield đơn liên tục

Mục đích là chuyển đổi từ một giá trị đầu vào liên tục là x (0< x <15) và đầu ra là y=[y3,y2,y1,yo]T y = [y3 , y2 , y1 , yo]^T y=[y3,y2,y1,yo]T với yi trong khoảng {0,1}; để giá trị thập phân của 8y3+4y2+2y1+yo 8y3 +4 y2 +2 y1 + yo 8y3+4y2+2y1+yo và giá trị của x được gần nhau nếu có thể. Sai số của bộ chuyển đổi A/D Rõ ràng là tối thiểu hoỏ hàm năng lượng tương đương với việc tối thiểu hoá sai số chuyển đổi của bộ chuyển đổi A/D. Mục đích là phải xây dựng mạng Hopfield liên tục có 4 nút với hàm một hàm kích hoạt để tối thiểu hoá. Để phục vụ cho mục đích này, chúng ta phải tìm ra các thông số chính xác, gồm các trọng và đầu vào mở rộng của mạng Hopfied. Việc này có thể được thực hiện được bằng cách so sánh giữa Ec và Eq (hàm năng lượng của mạng Hopfield liên tục). Tuy vậy, trong biểu thức Ec có y2i(i=0,1,2,3)y^2i (i = 0, 1, 2, 3)y2i(i=0,1,2,3) với hệ số khác 0 thì cũng làm cho wii trong mạng Hopfield khác không. Sự mâu thuẫn này được định nghĩa trong mạng Hopfield. Vì vậy Ea được thêm vào như sau: Hàm tổng năng lượng là: Chú ý rằng Ea không âm và đạt giá trị thấp nhất khi yi=0 hoặc yi=1. Do đó Ea có thể cho trạng thái mạng phải vào các góc của hình sườn khối lập phương (Hypercube) khi E đạt cực tiểu. Ta có hàm năng lượng E của mạng Hopfield liên tục, cứ 1 lớp 4 noron. Với các đầu vào ngoài x=[x3,x2,x1,xo]Tx = [x3, x2, x1 , xo]^T x=[x3,x2,x1,xo]T và đầu ra y=[y3,y2,y1,yo]Ty=[y3 , y2 , y1, yo]^Ty=[y3,y2,y1,yo]T So sánh 2 kết quả trên, ta có: wij=−2i+jwij = - 2^{i+j}wij=2i+jxi=−22i−1+2i∗xxi = -2^{2i - 1} + 2^i * xxi=22i1+2ix với i, j = 0,1,2,3; i khác j Do đó: W=−[02482081648032816320] W = - egin{bmatrix} 0 & 2 & 4 & 8 2 & 0 & 8 & 16 4 & 8 & 0 & 32 8 & 16 & 32 & 0 end{bmatrix} W=02482081648032816320x=[0,5−x2−2x8−4x32−8x] x = egin{bmatrix} 0,5 & -x 2 & -2x 8 & -4x 32 & -8x end{bmatrix} x=0,52832x2x4x8x Với ma trận trọng như vậy, ta có sơ đồ mạng Hopfield như sau: Có hai kiểu bộ nhớ liên kết là bộ nhớ liên kết tự động và bộ nhớ liên kết không đồng nhất (Hereoassociative Memory) Xem bộ nhớ liên kết như mạng Hopfield với m đầu vào và n đầu ra nhận các giỏ trị 1 hoặc -1 , y=I(x) Mạng lưu trữ gồm tập p mẫu (x1,y1),(x2,y2),…,(xp,yp){(x^1, y^1), (x^2 ,y^2),…,(x^p, y^p)}(x1,y1),(x2,y2),,(xp,yp) thông qua các trọng số Wij nhờ thuật toán lưu trữ W=F(xr,yr)W = F(x^r, y^r) W=F(xr,yr), nếu ta đưa vào mạng mẫu x thì khi mạng ổn định, sẽ cho kết y=yry = y^ry=yr tương ứng giống x nhất trong p mẫu lưu trữ. Kiểu bộ nhớ tự liên kết: yr=I(x)=xry^r = I(x) = x^ryr=I(x)=xr Kiểu bộ nhớ không đồng nhất: yry^ryr khác xrx^rxr Khái niệm gần nhất “close” có thể xem xét như là một số phép xác định khoảng cách. Xét khoảng cách của Ơclit và khoảng cách Hamming:

  • Khoảng cách Ơclit d của 2 vector x=(x1,x2,...,xn)Tx = (x1, x2,..., xn)^T x=(x1,x2,...,xn)Tx=(x′1,x′2,...,x′k)Tx = (x'1, x'2,..., x'k)^T x=(x1,x2,...,xk)T được định nghĩa [(x1−x′1)2+(x2−x′2)2+...+(xn−x′n)2)2]1/2[ (x1 - x'1)^2 + (x2 - x'2)^2 + ... + (xn - x'n)^2 )^2 ] ^ {1/2} [(x1x1)2+(x2x2)2+...+(xnxn)2)2]1/2
  • Khoảng cách Hamming HD(x, x’) xác định số lượng các cặp không bằng nhau giữa 2 vector x và x’ Ví dụ: Nếu x=(1,1,0,1)T x = (1,1,0,1)^T x=(1,1,0,1)Tx′=(0,1,0,0)Tx' = (0,1,0,0)^Tx=(0,1,0,0)T , khi đó HD(x,x^’) = 2

b) Ứng dụng mạng Hopfield làm bộ nhớ tự liên kết hồi quy (Bộ nhớ Hopfield)

Đây là mạng Hopfield rời rạc với các ngưỡng và các đầu ngoài vào bằng 0 (chỉ cần thành phần hồi quy (hay đơn giản là phản hồi)) Thuật toán lưu trữ: Trong đó, xk=(xk1,xk2,...,xkn)x^k =(x^k1, x^k2, ..., x^kn)xk=(xk1,xk2,...,xkn) và I là ma trận xác định xấp xỉ Nếu xi là ma trận nhị phân đơn cực, tức là xi nằm trong khoảng { 0,1}: Thuật toán lưu trữ: Công thức xác định trên dựa trên luật học Hebbian với trọng số ban đầu là 0. Vì vậy luật học được gọi là luật học kiểu Hebbian hay luật học tích ngoài. Ta có thể cộng thêm vào bộ nhớ bằng cách tăng ma trận trọng số, cũng như có thể giảm đi. Việc này không bị ảnh hưởng bởi thứ tự lưu trữ các mẫu. Ví dụ: Xem xét sử dụng bộ nhớ Hopfield để lưu trữ 2 vector x1x^1x1x2x^2x2 x1=[1,−1,−1,1]Tx^1 = {[1,-1,-1,1]}^Tx1=[1,1,1,1]

0