Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON GIỚI THIỆU MẠNG PERCEPTRON I.CÊu tróc cđa perceptron Kh¸i niƯm chung : Tríc hÕt ta xÐt m¹ng perceptron M¹ng perceptron tỉng quát nh hình: Hard limit layer Input p Rx1 x1 R W Sw xR b S× + a n Sì x1 Sì S x1 Mạng perceptron Đầu mạng là: a = hardlim(Wp + b) Ma trËn träng sè cã d¹ng: w1,1 w1,2 w1,R w w2,2 w2,R W = 2,1 a=hardlim(n) wS,1 wS,2 wS,R Ta định nghĩa vec tơ bao gồm với phần tử hàng thứ i: T iw = [ wi,1 wi,2 wi,R ] n = Wp + b B©y giê ta cã thĨ viÕt l¹i ma trËn träng sè: W = [ 1wT 2wT 3wT SwT]T Điều cho phép ta viết đầu phần tử thứ i mạng : = hardlim(ni) = hardlim(iwTp + bi) Trong ®ã hardlim hàm có dạng: a = n ∀n < Do ®ã nÕu néi tÝch cđa hµng thø i cđa ma trËn träng sè với vec tơ vào lớn hay -b i đầu trờng Trang Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON hợp khác không Một neuron nh mạng chia không gian vào thành phần Perceptron neuron: Ta khảo sát mạng perceptron hai đầu vào có neuron nh hình di Đầu mạng đợc xác định bằng: a = hardlim(n) = hardlim(Wp + b) = hardlim(1wTp + b) = hardlim(w1,1p1 + w1,2p2 + b) Biên định đợc xác định vec tơ đầu vào cho đầu m¹ng n b»ng zero: n = 1wTp + b = w1,1p1 + w1,2p2 + b = Inputs Two-Inputs Neuron p1 w1,1 p2 w1,2 Σ n a b Perceptron hai đầu vào đầu Để có ví dụ cụ thể ta gán trị sau cho ma trận trọng số độ dốc: w1,1 = , w1,2 = , b = -1 Vậy biên định là: n = 1wTp + b = w1,1p1 + w1,2p2 + b = p1 + p2 - = Biểu thức xác định đờng thẳng không gian đầu vào Trên phía đờng thẳng đầu mạng zero Ngay đờng thẳng phía đờng thẳng đầu Để vẽ đờng thẳng ta tìm điểm cắt trơc p1 vµ p2 p wTp + b =0 a = w 1 p 1 a = Trang 1 Biên định perceptron hai đầu vào Tiu lun mụn hc: IU KHIN MNG NEURON Các giao điểm nằm p1 =1 p2 = Biên định vẽ hình Để xác định xem phía đờng thẳng tơng ứng với đầu ta thử điểm Với đầu vào p = [ 0]T , đầu mạng là: a = hardlim(1wTp + b) = hardlim [1 1] − = Nh đầu mạng vùng bên trên(phần gạch gạch) Ta tìm biên định phơng pháp hình học Trớc hết cần ý biên luôn trực giao với 1w Biên đợc xác định b»ng: T 1w p + b = §èi víi điểm biên, nội tích vec tơ vào vec tơ trọng số có giá trị Điều thể vec tơ vào có hình chiếu lên vec tơ trọng số, nh chúng nằm vuông góc với vec tơ trọng số Hơn vec tơ nằm vùng gạch gạch hình có nội tích lớn -b vec tơ nằm vùng không gạch có nội tích nhỏ -b Do vec tơ trọng số 1w luôn vùng có đầu neuron Sau chọn vec tơ trọng số với góc định hớng đúng, giá trị độ dốc đợc tính cách chọn điểm biên cho thoả mãn phơng trình Ta dùng khái niệm xét mạng perceptron thực hàm logic AND Các cặp đầu vào - đích cổng là: {p1 = [ 0]T , t1 = 0} {p2 = [ 1]T , t1 = 0} {p3 = [ 0]T , t3 = 0} {p4 = [ 1]T , t1 = 1} Trên hình vẽ minh hoạ hình học toán Nó biểu diễn không gian vào với vec tơ vào đợc gán nhãn theo đầu đích Hình tròn đen tơng ứng với đầu đích hình tròn trắng ứng đích Trang Tiu lun mụn hc: IU KHIN MNG NEURON Bớc việc thiết kế chọn biên định Ta muốn có đờng thẳng chia hình tròn đen trắng Bài toán có vô số nghiệm Hợp lí chọn đờng nằm hình tròn Tiếp ta chọn vec tơ trọng số trực giao với biên định Vec tơ trọng số có độ dài nh có nhiều khả Ta chän: T 1w = [ 2 ] Cuèi cïng ta chän ®é dèc b Ta cã thĨ thùc hiƯn điều cách chọn điểm biên định cho thoả mãn phơng trình (2-15) Nếu ta chän : p = [ 1.5 ]T th× : 1.5 T 1w p + b = [ 2] × + b = + b = ⇒ b = -3 0 Chóng ta cã thể thử mạng cặp đầu vào-đầu đích Nếu ta đa p2 vào mạng, đầu sÏ lµ: a = hardlim(1wT p2+ b) = hardlim [ 2] × 1 − 3 a = hardlim(-1) = Đây đầu đích t2 Perceptron nhiều neuron: Mỗi neuron perceptron có nhiều neuron có biên định Biên định neuron thứ i là: T iw p + bi = Perceptron mét neuron phân vec tơ vào thành loại đầu hay Một perceptron nhiều neuron phân vec tơ vào thành nhiều loại, loại đợc biểu diễn vec tơ Vì phần tử vec tơ là1 hay nên có tổng cộng 2S loại với S số neuron II Quy tắc học perceptron Khái niệm : Bây ta xét quy tắc học mạng perceptron Quy tắc học ví dụ huấn luyện có giám sát, quy tắc học đợc cung cấp tập hợp ví dụ hành vi riêng mạng: { p1,t1 },{ p2,t2 }, { pQ,tQ } Trong pi đầu vào mạng t i đầu đích tơng ứng Khi đầu vào đợc đa tới mạng, đầu mạng đợc so với đầu Trang Tiểu luận mơn học: ĐIỀU KHIỂN MẠNG NEURON ®Ých Quy tắc học hiệu chỉnh trọng số độ dốc mạng để đầu mạng gần với đầu đích Bài toán thử nghiệm : Chúng ta bắt đầu toán thử nghiệm đơn giản Các cặp đầu vào-đầu đích toán là: { p1 = [ ]T , t1 = },{ p2 = [ -1 ]T , t2 = }, { p3 = [ -1 ]T , t3 = } Bài toán đợc mô tả cách hình học nh hình bên, hai vec tơ vào có đích đợc biểu diễn hình tròn trắng vec tơ vào có đích đợc biểu diễn hình tròn đen Mạng toán có hai đầu vào đầu Để dễ dàng cho việc nghiên cứu quy tắc học, ta bắt đầu với mạng độ dốc Mạng có thông số w1,1 w1,2 nh hình Inputs No-Bias Neuron p1 w1,1 p2 w1,2 n a Hình 2.4 Mạng thử nghiệm Khi độ dốc 0, mạng có biên định qua gốc Mạng cần phải có biên định chia vec tơ p2 p3 khỏi p1 Và ta thấy có vô số biên nh Trên hình vẽ ta thấy vec tơ trọng số vuông góc với biên định Xây dựng quy tắc học : Ta huấn luyện mạng cách gán vài giá trị ban đầu cho thông số mạng Trong trờng hợp huấn luyện mạng hai đầu vào đầu độ dốc Nh ta phải khởi gán hai trọng số Chúng ta cho giá trị vec tơ trọng số cách ngẫu nhiên: Trang Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON wT = [1.0 0.8] Bây ta đa vec tơ vào vào mạng Ta bắt đầu p1: 1 a = hardlim ( wT p1 ) = hardlim [1.0 − 0.8] × 2 a = hardlim(-0.6) = M¹ng không đa giá trị Đầu mạng 0, đáp ứng đích(mục tiêu) , t1, Ta thấy điều xẩy cách xem hình bên Khởi gán vec tơ trọng số đa đến biên định phân loại không vec tơ p1 Chúng ta cần thay đổi vec tơ träng sè cho nã chØ vỊ híng p1 ®Ĩ tơng lai phân loại toán tốt Ta w đặt 1w p1 Điều đơn giản đảm bảo p1 đợc phân loại tốt tơng lai Tuy nhiên quy tắc dùng cho toán Hình vẽ bên dới toán giải đợc cách cho vec tơ trọng số trực hớng hai vec tơ lớp Nếu ta áp dụng quy tắc 1w = p vec tơ bị phân loại sai, trọng số lớp dao động tiến lùi không tìm đợc nghiệm Một khả khác cộng p1 vào 1w Cộng p1 vào 1w làm cho 1w trỏ gần hớng p1 Biểu diễn lặp lại p1 làm cho hớng 1w gần cách không đối xứng hớng p1 Quy tắc đợc phát biểu: t = a = th× 1wnew = 1wold + p (2w 23) Dïng quy quy tắc cho toán đa đến giá trị 1w: 1 2 new = 1wold + p1 = 1w + = − 0.8 2 1.2 H×nh bên minh hoạ kết Bây xét vec tơ vào Trang Tiu lun mơn học: ĐIỀU KHIỂN MẠNG NEURON tiÕp tơc thay ®ỉi trọng số quay vòng theo chu kì qua vec tơ vào chúng đợc phân loại cách đắn Vec tơ vào p2 Khi đợc đa vào mạng ta có: − 1 a = hardlim ( wT p2 ) = hardlim [ 2.0 1.2] × 2 a = hardlim(0.4) = Đích t2 tơng ứng với p2 nhng đầu a mạng lại Một vec tơ lớp đợc phân loại sai thành Vì muốn chuyển vec tơ trọng số 1w khỏi đầu vào, ta thay đổi phép cộng phương trình thµnh phÐp trõ: nÕu t = vµ a = th× 1wnew = 1wold Dïng quy quy tắc cho toán đa đến giá trị 1w: 2.0 new = 1wold - p2 = − = 1w 1.2 2 − 0.8 đợc minh hoạ hình bên Bây ta xÐt ®Õn p3: 0 a = hardlim ( wT p3 ) = hardlim [ 3.0 − 0.8] × − 1 a = hardlim(0.8) = Giá trị 1w đa đến biên định mà phân loại sai p3 Ta phải thay đổi 1w theo (2-26): 3.0 0 3.0 new = 1wold - p3 = 1w − = − 0.8 − 1 0.2 w 3 w Đồ thị bên trái perceptron cuối học đợc cách phân loại đắn vec tơ Nếu ta đa vec tơ vào mạng neuron đa phân loại đắn vec tơ vào Điều đa cho quy tắc thứ quy tắc cuối cùng: làm việc, đừng sửa trọng số: t = a 1wnew = 1wold Sau quy quy tắc bao trùm toàn tổ hợp có giá trị đầu mục tiêu: t = a = 1wnew = 1wold + p Trang Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON nÕu t = vµ a = th× 1wnew = 1wold - p nÕu t = a 1wnew = 1wold Quy tắc học hợp nhất: Ba quy tắc học viết lại thành biểu thức Trớc hết ta định nghĩa mét biÕn míi e gäi lµ sai sè cđa perceptron : e=t-a Bây ta viết lại quy tắc trong: e = 1wnew = 1wold + p nÕu e = -1 th× 1wnew = 1wold - p nÕu e = th× 1wnew = 1wold Xem cẩn thận hai quy tắc đầu ta thấy p vµ e cïng dÊu Ngoµi e = p mặt quy tắc thứ Nh vËy ta cã thÓ thèng nhÊt quy tắc vào biểu thức nhất: new = 1wold + ep = 1wold + (t - a)p 1w Quy tắc mở rộng để huấn luyện độ dốc ý độ dốc, cách đơn giản, trọng số đầu vào luôn Nh ta thay đầu vào p (2-34) đầu vào độ dốc có trị Điều đa đến quy tắc cđa perceptron vỊ ®é dèc: bnew = bold + e Huấn luyện perceptron có nhiều neuron: Quy tắc perceptron cËp nhËt vec t¬ träng sè cđa mét perceptron cã mét neuron Chóng ta cã thĨ tỉng qu¸t ho¸ quy tắc cho perceptron có nhiều neuron Để cập nhËt hµng thø i cđa ma trËn träng sè ta dïng: new = iwold + eip iw §Ĩ cËp nhËt phần tử thứ i vec tơ độ dốc ta dïng: binew = bold + ei i Quy t¾c perceptron cã thĨ viÕt díi d¹ng ma trËn: Wnew = Wnew+ epT và: binew = bold i + ei Để thử quy tắc học perceptron, ta lại khảo sát toán nhận dạng cam táo Các vec tơ chuẩn vµo-ra lµ: 1 p1 = − 1 , t1 = [ 0] − 1 Trang 1 p2 = 1 , t1 = [1] − 1 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON Trong phần ta sử dụng mục tiêu cho cam thay dùng -1 nh phần trớc ta dùng hàm truyền hardlim thay cho hàm hardlims Một cách điển hình trọng số độ dốc đợc khởi gán số ngẫu nhiên nhỏ Giả sử ta bắt đầu ma trận trọng số độ dèc: W = [ 0.5 -1 -0.5 ] , b = 0.5 Trớc hết đa đầu vào p1 vào mạng: 1 a = hardlim(Wp1 + b) = hardlim [ 0.5 − − 0.5] − 1 + 0.5 − 1 a = hardlim(2.5) = B©y giê ta tÝnh sai sè: e = t1 - a = -1 = -1 CËp nhËt träng sè: Wnew = Wnew + epT = [ 0.5 -1 -0.5 ] + (-1)[ -1 -1] = [ -0.5 0.5] CËp nhËt ®é dèc: bnew = bold + e = 0.5 + (-1) = -0.5 Đến ta kết thúc lần lập Lần lặp thứ hai theo quy tắc perceptron lµ: 1 a = hardlim(Wp2 + b) = hardlim [ − 0.5 0.5] 1 + (−0.5) − 1 a = hardlim(-0.5) = e = t2 - a = - = Wnew = Wnew + epT = [ -0.5 0.5 0.5 ] + (1)[ 1 -1] = [ 0.5 -0.5] new b = bold + e = -0.5 + = 0.5 Lần lặp thứ bắt đầu vec tơ vµo thø nhÊt 1 a = hardlim(Wp1 + b) = hardlim [ 0.5 − 0.5] − 1 + 0.5 − 1 a = hardlim(0.5) = e = t1 - a = -1 = -1 Wnew = Wnew + epT = [ 0.5 -0.5 ] + (-1)[ -1 -1] Trang Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON = [ -0.5 0.5] CËp nhËt ®é dèc: bnew = bold + e = 0.5 + (-1) = -0.5 NÕu ta tiÕp tơc lỈp ta thấy hai vec tơ vào đợc phân loại Thuật toán hội tụ nghiÖm III KHẢO SÁT MẠNG PERCEPTRON SỬ DỤNG GUI: 1.Thiết lập mạng Perceptron (nntool) Ta thiết lập mạng perceptron thực cổng logic AND Nó có véc tơ vào: p = [0 1; 1] véc tơ đích là: t = [0 0 1] a Thiết lập giá trị vào - : Các giá trị vào - thiết lập công cụ Network/Data Manager Thiết lập đầu vào: (inputs) p = [0 1; 1] Trang 10 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON Thiết lập giá trị đích: (targets) t = [0 0 1] b Thiết lập mạng : Sau thiết lập giá trị đầu vào giá trị đích, ta thiết lập mạng neuron dạng perceptron Trang 11 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON Ta thiết lập mạng với đầu vào p, đầu t, hàm chuyển đổi HARDLIM hàm huấn luyện LEARNP Mạng mô hình hóa dưới: Huấn luyện mạng Với mạng perceptron vừa xây dựng, ta huấn luyện cho mạng: Trang 12 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON Ta thiết lập số lần huấn luyện, sai số đích cài đặt đầu vào, đầu Sau chọn thông số huấn luyện ta kết huấn luyện: Trang 13 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON Xuất kết Perceptron vùng làm việc Vậy, mạng huấn luyện dễ dàng với sai lệch chu kỳ thứ (các dạng mạng khác thường huấn luyện để sai lệch mà sai lệch chúng thường bao hàm phạm vi rộng) Trang 14 Tiểu luận mơn học: ĐIỀU KHIỂN MẠNG NEURON Chương trình Matlab: Thơng số đầu vào đích: >> t t= >> P P= 0 0 1 1 Chương trình cấu trúc mạng Neuron Perceptron: >> Vinh_neuron Vinh_neuron = Neural Network object: architecture: numInputs: numLayers: biasConnect: [1] inputConnect: [1] layerConnect: [0] outputConnect: [1] numOutputs: (read-only) numInputDelays: (read-only) numLayerDelays: (read-only) subobject structures: inputs: {1x1 cell} of inputs layers: {1x1 cell} of layers outputs: {1x1 cell} containing output biases: {1x1 cell} containing bias inputWeights: {1x1 cell} containing input weight layerWeights: {1x1 cell} containing no layer weights functions: adaptFcn: 'trains' divideFcn: (none) gradientFcn: 'calcgrad' initFcn: 'initlay' Trang 15 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON performFcn: 'mae' plotFcns: {'plotperform','plottrainstate'} trainFcn: 'trainc' parameters: adaptParam: passes divideParam: (none) gradientParam: (none) initParam: (none) performParam: (none) trainParam: show, showWindow, showCommandLine, epochs, goal, time weight and bias values: IW: {1x1 cell} containing input weight matrix LW: {1x1 cell} containing no layer weight matrices b: {1x1 cell} containing bias vector other: name: '' userdata: (user information) Kết đầu lỗi: >> Vinh_neuron_outputs Vinh_neuron_outputs = 0 >> Vinh_neuron_errors Vinh_neuron_errors = 0 0 Trang 16 ... perceptron Trang 11 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON Ta thiết lập mạng với đầu vào p, đầu t, hàm chuyển đổi HARDLIM hàm huấn luyện LEARNP Mạng mơ hình hóa dưới: Huấn luyện mạng Với mạng perceptron... Trang 14 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON Chương trình Matlab: Thơng số đầu vào đích: >> t t= >> P P= 0 0 1 1 Chương trình cấu trúc mạng Neuron Perceptron: >> Vinh _neuron Vinh _neuron =... cho mạng: Trang 12 Tiểu luận môn học: ĐIỀU KHIỂN MẠNG NEURON Ta thiết lập số lần huấn luyện, sai số đích cài đặt đầu vào, đầu Sau chọn thông số huấn luyện ta kết huấn luyện: Trang 13 Tiểu luận