Đề tài Xây dựng chế độ dinh dưỡng tại trường mầm non bằng logic mờ kết hợp mạng neural và máy học

4.2 ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 4.2.1 Tự đánh giá: Ưu điểm: - Giải quyết trong AI, kết hợp hệ mờ, neural và máy học - Các bữa ăn được chọn sắp xếp đã đảm bảo được về giá thành, không có các món kỵ nhau trong bữa, có độ dùng lại thấp - Chương trình có khả năng sao lưu và khôi phục dữ liệu, nên ta có thể khôi phục lại dữ liệu và sử dụng lại chương trình khi bị hư. - Chương trình đã được chạy xếp lịch cho nhiều tháng và kết quả các bữa ăn thu được vẫn đảm bảo tỉ lệ, thành phần dinh dưỡng trong mỗi bữa. Khuyết điểm: - Thiếu dữ liệu mẫu - Vì thời gian ngắn nên chưa đủ thử nghiệm trên nhiều chỗ khác nhau

pdf101 trang | Chia sẻ: builinh123 | Lượt xem: 1930 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng chế độ dinh dưỡng tại trường mầm non bằng logic mờ kết hợp mạng neural và máy học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
với nhãn = các giá trị thông thường hầu hết của Target_attribute trong Examples. • Ngược lại Begin - A Å thuộc tính từ Attributes mà là tốt nhất* khi phân loại Examples - Thuộc tính quyết định cho RootÅA - For (mỗi giá trị có thể vi của A) - Thêm nhánh dưới Root, tương ứng vi - Với Examplesvi là tập con của Examples mà có giá trị vi ƒ Nếu Examples rỗng : Thì bên dưới nhánh mới thêm vào nốt lá với nhãn = các giá trị thông thường hầu hết của Target_attribute trong Examples ƒ Ngược lại bên dưới nhánh mới thêm vào cây con ID3(Examplesvi, Target_attribute, Attributes – {A}) End • Return Root *Thuộc tính tốt nhất là thuộc tính mà mức độ thông tin cao nhất Ví dụ: Giả sử có kết quả danh sách các bữa ăn sử dụng hay không sử dụng trong môt khoảng thời gian. Bữa Món Mặn Món Canh Tr.Miệng Trạng thái 1 A B C Có chọn 2 A B F Chưa chọn 3 A E F Có chọn 4 A E C Có chọn 5 D B C Chưa chọn 6 D B F Chưa chọn 7 D E C Có chọn 8 D E F Có chọn • R = {“Có chọn” ,”Chưa chọn} • P = tập hợp 8 bữa quan sát được • 4 thuộc tính : Món Canh, Món Mặn, Tr.Miệng Quinlan: Với mỗi thuộc tính dẫn xuất A còn có thể sử dụng để phân hoạch, tính : • VA(j) = ( T(j , r1), T(j , r2) , , T(j , rn) ) • T(j, ri) = (tổng số phần tử trong phân hoạch có giá trị thuộc tính dẫn xuất A là j và có giá trị thuộc tính mục tiêu là ri ) / ( tổng số phần tử trong phân hoạch có giá trị thuộc tính dẫn xuất A là j ) Trong đó r1, r2, , rn là các giá trị của thuộc tính mục tiêu Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 56 Như vậy nếu một thuộc tính A có thể nhận một trong 5 giá trị khác nhau thì nó sẽ có 5 vector đặc trưng. Một vector VA(j ) được gọi là vector đơn vị nếu nó chỉ có duy nhất một thành phần có giá trị 1 và những thành phần khác có giá trị 0. Thuộc tính được chọn để phân hoạch là thuộc tính có nhiều vector đơn vị nhất. Trở lại ví dụ, lúc ban đầu (chưa phân hoạch): VMặn(A) = (T(A,Có Chọn), T(A, Chưa chọn)) Số món mặn A là: 4 Số món mặn A đã chọn là: 3 Số món mặn A chưa chọn là : 1 Do đó : VMặn(A) = (3/4, 1/4) Tương tự: VMặn(D) = (2/4 , 2/4) = (0.5 , 0.5) VCanh(B) = (1/4 , 3/4) VCanh(E) = (4/4 , 0/4) = (1,0) (vector đơn vị) VTr.Miệng(C) = (3/4 , 1/4) VTr.Miệng(F) = (2/4 , 2/4) Như vậy thuộc tính Món Canh có số vector đơn vị nhiều nhất nên sẽ được chọn để phân hoạch. Phân hoạch theo Món Canh (PB) tập dữ liệu còn lại là: Bữa Món Mặn Tr.Miệng Trạng thái 1 A C Có chọn 2 A F Chưa chọn 5 D C Chưa chọn 6 D F Chưa chọn Phân hoạch PB còn chứa những bữa “chưa chọn” và “có chọn”. Tiếp tục phân hoạch tập này. Tính vector đặc trưng tương ứng với các thuộc tính còn lại VMặn(A) = (1/2 , 1/2) = (1 , 1) VMặn(D) = (0/2 , 2/2) = (0 , 1) (vector đơn vị) VTr.Miệng(C) = (1/2 , 1/2) = (1,1) VTr.Miệng (F) = (0/2 , 2/2) = (0, 1) Hai thuộc tính “Món Mặn” và “Tr.Miệng” đều có 1 vector đơn vị. Ta có thể phân hoạch một trong hai thuộc tính. Ta sẽ chọn thuộc tính “Món Mặn” để phân hoạch (PA) Bữa Tr.Miệng Trạng thái 1 C Có chọn 2 F Chưa chọn Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 57 Cây định danh cuối cùng: Biến đổi cây thành luật : - If (Món canh = E) then (Trạng Thái = Có chọn) - If (Món canh = B) and (Món Mặn = D) then (Kết quả = Chưa chọn) - . Từ các luật được thiết lập, ta thấy nếu bữa ăn có Món canh là B, Món Mặn D và Tráng miệng là F thi chắc chắn không được chọn trong khoảng thời gian khảo sát, bộ lọc máy học sẽ xóa những bữa ăn có ba món này trong tổ hợp. 2.3 Khái quát mạng neural 2.3.1 Não và neural sinh học Não là tổ chức vật chất cao cấp, có cấu tạo vô cùng phức tạp, dày đặc các mối liên kết giữa các nơron nhưng xử lý thông tin rất linh hoạt trong một môi trường bất định. Trong bộ não có khoảng 1011 – 1012 neural và mỗi neural có thể liên kết với 1014 neural khác qua các khớp nối. Những kích hoạt hoặc ức chế này được truyền qua trục neural (axon) đến các neural khác. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 58 Sự khác biệt cơ bản giữa tính toán của não và tính toán theo thuật toán, chương trình với sự trợ giúp của máy tính là: + Quá trình tính toán được tiến hành song song và phân tán trên nhiều neural gần như đồng thời. + Tính toán thực chất là quá trình học, chứ không phải theo sơ đồ định sẵn từ trước. 2.3.2. Mạng neural nhân tạo 2.3.2.1 Neural nhân tạo Một neural nhân tạo phản ánh các tính chất cơ bản của neural sinh học. Đầu vào của neural nhân tạo gồm n tín hiệu xi ( i = 1,2,,n). Đầu ra là tín hiệu y. Trạng thái bên trong của neural được xác định qua bộ tổng các đầu vào có trọng số wi ( i = 1,2,..n). Đầu ra y của neural được xác định qua hàm phi tuyến f nào đó. Như vậy mô hình định lượng của neural nhân tạo như sau: y(t) = f(∑ = n i 1 wixi(t) - θ ) Ở đây net = ∑ = n i 1 wixi(t) = I(t) là tín hiệu tổng hợp đầu vào, wi : các trọng số đặc trưng cho tính liên kết của các khớp θ : ngưỡng kích hoạt neural n : số tín hiệu đầu vào f : hàm kích hoạt Đầu ra : out = y(t) = f(net) Có thể xem neural là một hàm phi tuyến nhiều đầu vào, một đầu ra. Các neural có thể liên kết với nhau tạo thành mạng neural nhân tạo. Synapse kích hoạt Synapse ức chế Dendrite soma Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 59 2.3.2.2 Phương thức làm việc của mạng neural Có thể chia làm hai giai đoạn:[1] + Tự tái tạo lại (reproduction) + Và giai đoạn học (learning phase) Ở một mạng neural có cấu trúc bền vững, có nghĩa là vector hàm trọng lượng đầu vào, khâu tạo đáp ứng và khâu tạo tín hiệu đầu ra đều cố định không bị thay đổi về mặt cấu trúc cũng như tham số, thì mạng có một quá trình truyền đạt xác định chắc chắn, tĩnh hoặc động phụ thuộc vào cấu tạo của các neural trong mạng. Ở đầu vào của mạng xuất hiện thông tin thì tại đầu ra cũng xuất hiện một đáp ứng tương ứng. Đối với mạng neural có quá trình truyền đạt tĩnh, đáp ứng đầu ra xuất hiện ngay sau khi đầu vào nhận được thông tin, còn đối với mạng neural có quá trình truyền đạt động thì phải sau một thời gian quá độ ở đầu ra của mạng neural mới xuất hiện đáp ứng. Xuất phát từ quan điểm mọi đáp ứng của neural đều tiền định tự nhiên, có nghĩa là khi xuất hiện các kích thích ở đầu vào của mạng ở các thời điểm khác nhau, các giá trị như nhau thì đáp ứng ở đầu ra ở các thời điểm tương ứng cũng hoàn toàn giống nhau. Quá trình làm việc như vậy của một mạng neural được gọi là quá trình tái diễn lại (reproduction phase). Khi có thông tin ở đầu vào, mạng lưu giữ thông tin đó và dựa trên các tri thức của mình đưa ra đáp ứng ở đầu ra phù hợp với lượng thông tin thu được từ đầu vào. Mạng neural khi mới hình thành còn chưa có tri thức, tri thức của mạng hình thành dần sau một quá trình học. Mạng neural được dạy bằng cách đưa vào đầu vào những kích thích và mạng hình thành những đáp ứng tương ứng, những đáp ứng phù hợp với từng loại kích thích sẽ được lưu trữ, giai đoạn này được gọi là giai đoạn học của mạng. Khi đã hình thành tri thức, mạng có thể giải quyết các vấn đề cụ thể một cách đúng đắn. Đó có thể là những vấn đề ứng dụng rất khác nhau, được giải quyết chủ yếu dựa trên sự tổ chức hợp nhất giữa các thông tin đầu vào của mạng và đáp ứng đầu ra. Nhiệm vụ tổng quát của một mạng neural là lưu trữ động các thông tin. Dạng thông tin lưu giữ đó chính là quan hệ giữa các thông tin đầu vào của mạng và các đáp ứng đầu ra tương ứng, để khi có một kích thích bất kỳ tác động vào mạng, mạng có khả năng suy diễn và đưa ra một đáp ứng phù hợp. Đó chính là chức năng nhận dạng theo mẫu của mạng neural. Để thực hiện chức năng này, mạng neural đóng vai trò như một bộ phận tổ chức các nhóm thông tin đầu vào và tương ứng với mỗi nhóm là một đáp ứng đầu ra phù hợp. Như vậy một nhóm bao gồm một loại thông tin đầu vào và một đáp ứng ra. Các nhóm có thể được hình thành trong quá trình học và cũng có thể hình thành không trong quá trình học. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 60 2.3.3 Kết hợp hệ mờ và mạng neural 2.3.3.1 So sánh bộ điều khiển mờ và mạng neural STT Tính chất Mạng neural Bộ điều khiển mờ 1 Thể hiện tri thức (hình thức của tri thức) Thông qua trọng số, được thể hiện ẩn trong mạng Được thể hiện ngay tại luật hợp thành 2 Nguồn của tri thức Từ các mẫu học Từ kinh nghiệm chuyên gia 3 Xử lý thông tin không chắc chắn Định lượng Định tính và đinh lượng 4 Lưu giữ tri thức Trong neural và trọng số của từng đường ghép nối nerual Trong luật hợp thành và hàm thuộc 5 Khả năng cập nhật và nâng cao tri thức Thông qua quá trình học Không có 5 Tính nhạy cảm với các thay đổi của mô hình Thấp Cao Bảng 2-28.So sánh mạng neural và bộ điều khiển mờ Từ mong muốn có được ưu điểm của cả nguyên lý mờ và mạng neural trong một bộ điều khiển, người ta đã ghép chung bộ điều khiển mờ với mạng neural thành bộ điều khiển mờ - neural (và nerual – mờ). 2.3.3.1 Kết hợp mờ và neural 2.3.3.1.1 Biểu diễn luật If – Then theo các cấu trúc mạng neural Khối luật trong hệ SISO Ri : If x là Ai Then y là Bi Với Ai,Bi là các tập mờ, i= 1,n Mỗi luật của khối trên có thể chuyển thành một mẫu dữ liệu cho mạng neural bằng cách lấy phần If làm đầu vào, phần Then làm đầu ra của mạng, từ đo chuyển khối luật thành tập dữ liệu : ((Ai,Bi)...(Ai,Bi)) Tương tự với khối MISO, chuyển khối luật Ri :If x là Ai And y là Bi Then z là Ci Với Ai, Bi, Ci là các tập mờ, i=1,..n, thành tập dữ liệu ((Ai,Bi),Ci), 1 ≤ i ≤ n Với hệ MIMO, khối luật Ri : If x là Ai And y là Bi Then r là Ci And s là Di Với Ai, Bi, Ci, Di là các tập mờ, I = 1,..n Được chuyển thành: ((Ai, Bi) ,(Ci, Di) , 1 ≤ i ≤ n 2.3.1.1.2 Phương pháp Umano – Ezawa -Đặt [α1,α2] chứa miền xác định của biến ngôn ngữ đầu vào (Miền xác định của Ai -Đặt [β1,β2] chứa miền xác định của biến ngôn ngữ đầu ra (Miền xác định của Bi) Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 61 -Với M,N nguyên dương, M ≥ 2 và N ≥ 2 đặt xj = α1 + (j – 1)(α2 - α1)/(N – 1) yi = β1 + (i – 1)(β2 - β1)/(M – 1) với 1 ≤ i ≤ M và 1 ≤ j ≤ N. -Rời rạc tập mờ thành các căp vào – ra : {(Ai(x1), , Ai(xN)),(Bi(y1), ,Bi(yM))}, với 1 ≤ i ≤ n -Định nghĩa kí hiệu aij = Ai(xj), bij = Bi(yj) Thì mạng neural mờ sẽ chuyển thành mạng neural rõ với N đầu vào và M đầu ra Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 62 Chương 3 XÂY DỰNG THUẬT GIẢI 3.1 Quy định chế độ dinh dưỡng trẻ em. 3.2 Nguyên tắc và các bước xây dựng thực đơn ở trường mầm non 3.3 Xây dựng tập mờ và hàm thành viên 3.4 Xây dựng bộ lọc cho hệ mờ bằng kỹ thuật máy học 3.5 Neural Network kết hợp hệ mờ phát sinh luật và điều chỉnh trọng số Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 63 3.1 Quy định chế độ dinh dưỡng trẻ em. Dinh dưỡng hợp lí: là khẩu phần ăn hằng ngày phải đủ về số lượng và cân đối về chất lượng[14]. - Cân đối giữa các chất sinh năng lượng: đạm (protein), béo (lipit) , đường (gluxit). - Cân đối giữa thức ăn có nguồn gốc động vật và thực vật. Mỗi bữa ăn hằng ngày của trẻ cần đảm bảo đủ bốn nhóm thức ăn cơ bản : - Nhóm lương thực (cung cấp năng lượng chủ yếu): gạo, mì, ngô, khoai. - Nhóm thức ăn : o Động vật (cung cấp đạm động vật): thịt, cá, trứng, tôm, cua. o Thực vật (cung cấp đạm thực vật): đậu phụng, đậu tương. - Nhóm dầu ăn, mỡ (cung cấp chất béo là nguồn cung cấp năng lượng quan trọng) - Nhóm rau xanh, quả chín (cung cấp vitamin và khoáng chất) o Rau: lá, củ , quả o Quả: chuối, cam , xoài, đu đủ Nhu cầu dinh dưỡng (nhu cầu năng lượng): - Đơn vị tính: o Kilocalo (Kcal) o Jun : 1Kcal = 4.184 Kjun - Thức ăn cung cấp năng lượng cho cơ thể dưới dạng protein, lipit, gluxit o 1 gam protein cung cấp 4 Kcal o 1 gam lipit cung cấp 9 Kcal o 1 gam gluxit cung cấp 4 Kcal - Tỉ lệ cân đối giữa các chất sinh năng lượng: o NL do Protein cung cấp: 12 – 15 % ƒ Nguồn gốc động vật: 50% ƒ Nguồn gốc thực vật: 50% o NL do Lipit cung cấp: 15 – 20 % ƒ Nguồn gốc động vật: 50% ƒ Nguồn gốc thực vật: 50% o NL do Gluxit cung cấp: 66 – 75 % - Trẻ em: o Nhóm nhà trẻ (từ 1 – 3 tuổi) : 1300 Kcal /ngày o Nhóm mẫu giáo (từ 4 – 6 tuổi) : 1600 Kcal /ngày 3.2 Nguyên tắc và các bước xây dựng thực đơn ở trường mầm non. 3.2.1 Nguyên tắc: - Đảm bảo cho khẩu phần đủ về năng lượng và các chất dinh dưỡng[13] o Cả ngày: ƒ Lứa tuổi nhà trẻ: 1100 – 1500 Kcal/ngày ƒ Lứa tuổi mẫu giáo: 1500 – 1700 Kcal/ngày o Ở nhà trẻ - mẫu giáo: ƒ Lứa tuổi nhà trẻ: 660 – 1050 Kcal/ngày Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 64 ƒ Lứa tuổi mẫu giáo: 750 – 1020 Kcal/ngày - Đảm bảo tỉ lệ cân đối giữa các chất sinh năng lượng. Cân đối tỉ lệ đạm động vật và thực vật, mỡ động vật và dầu thực vật, cân đối các loại vitamin và chất khoáng (canxi và phốtpho). - Đảm bảo khẩu phần của trẻ ở trường: o Lứa tuổi nhà trẻ : chiếm 60-70% khẩu phần cả ngày o Lứa tuổi mẫu giáo : chiếm 50-60% khẩu phần cả ngày o Trong đó tỉ lệ: ƒ Bữa trưa = 30-35% ƒ Bữa chiều = 25-30% ƒ Bữa phụ = ½ bữa chính - Thực đơn được xây dựng theo từng ngày, tuần, tháng và theo mùa để dễ điều hòa thực phẩm. - Xây dựng thực đơn cho nhiều ngày cần thay đổi món ăn cho trẻ đỡ chán và đảm bảo đủ các chất dinh dưỡng - Thay đổi thực đơn không chỉ đơn thuần thay đổi thực phẩm mà cần thay đổi dạng chế biến trong cùng một loại thực phẩm (luộc, kho, xào, rán, hấp ...). - Trong cùng một ngày nên sử dụng thực phẩm giống nhau cho các chế độ ăn để tiện cho tiếp phẩm đi chợ. - Có thực đơn của bữa chính , bữa phụ phù hợp với mức đóng góp. 3.2.2 Các bước xây dựng thực đơn ở trường mầm non Vì chương trình cần xây dựng chỉ thực hiện xây dựng chế độ dinh dưỡng cho bữa ăn trưa nên các giá trị về dinh dưỡng cần được điều chỉnh lại cho phù hợp. Đồng thời, do tại trường mầm non có hai khối lớp: khối cơm nhà trẻ và khối cơm mẫu giáo, do vậy chúng ta cần tính toán và xây dựng chế độ dinh dưỡng hợp lí cho cả hai khối lớp này. 3.2.2.1 Lứa tuổi nhà trẻ Lượng calo một ngày: 1300 Kcal/ngày. Đặt: Calo* là lượng calo hợp lý cho bữa trưa tại trường mầm non Đặt: Calo là lượng calo cho phép cho bữa trưa tại trường mầm non Khi đó : Lượng calo hợp lý trong bữa ăn trưa tại trường mầm non: - Tại trường bữa trưa chiếm : 30-35% khẩu phần cả ngày (Bữa trưa + Bữa chiều + Bữa phụ = 60% - 70% cả ngày) - Lượng calo ứng với bữa trưa: Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 65 455*390 100 351300* 100 301300 ≤≤⇔ ∗≤≤∗ Calo Calo - Vậy lượng calo hợp lí cho bữa ăn trưa tại trường mầm non là: 455*390 ≤≤ Calo - Vì hệ thống của chúng ta sử dụng bộ điều khiển mờ nên chúng ta cần có một không gian nền X là tập các giá trị lượng calo cho phép theo từng lứa tuổi. Do vậy, để xây dựng hệ thống hiệu quả, chúng ta sẽ sử dụng khoảng Calo cho phép theo [13]. Từ đó ta tính được: - Lượng calo cho phép đối với lứa tuổi nhà trẻ là: o Mốc 1100: 3851330 ≤≤ Calo o Mốc 1500: 5252450 ≤≤ Calo o Do đó, lượng calo cho phép: 525330 ≤≤ Calo Tóm lại : - Lượng calo cho phép: 525330 ≤≤ Calo - Lượng calo hợp lí: 455390 ≤≤ ∗Calo 3.2.2.2 Lứa tuổi mẫu giáo Lượng calo trong một ngày: 1600 Kcal/ngày Đặt: Calo* là lượng calo hợp lý cho bữa trưa tại trường mầm non Đặt: Calo là lượng calo cho phép cho bữa trưa tại trường mầm non Lượng calo cho bữa ăn trưa tại trường mầm non : - Tại trường bữa trưa chiếm: 35 - 40% khẩu phần cả ngày (Bữa trưa + Bữa phụ = 50% - 60% cả ngày) - Lượng calo cho bữa trưa: 640*560 100 401600* 100 351600 ≤≤⇔ ∗≤≤∗ Calo Calo - Vậy lượng calo hợp lí cho bữa ăn trưa tại trường mầm non là: 640*560 ≤≤ Calo - Tương tự như trên, vì hệ thống của chúng ta sử dụng logic mờ nên chúng ta cần có một không gian nền X là tập các giá trị lượng calo cho phép theo từng lứa tuổi. Do vậy, để xây dựng hệ thống hiệu quả, chúng ta sẽ sử dụng khoảng Calo cho phép theo [14]. Từ đó ta tính được: - Lượng calo cho phép đối với lứa 3-6 tuổi là: o Mốc 1500: 6001525 ≤≤ Calo o Mốc 1700: 6802595 ≤≤ Calo Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 66 o Lượng calo cho phép: 680525 ≤≤ Calo Tóm lại : - Lượng calo cho phép: 680525 ≤≤ Calo - Lượng calo hợp lí: 640*560 ≤≤ Calo 3.3 Xây dựng tập mờ và hàm thành viên. 3.3.1 Xác định các factor & xây dựng tập mờ: Trước khi hệ thống hoạt động, dữ liệu vào của hệ thống bao gồm (tính tổng của cả một bữa ăn trưa): - Tổng lượng calori. (đơn vị : Kcal) - Tổng lượng protein động vật (đơn vị : gam) - Tổng lượng protein thực vật (đơn vị : gam) - Tổng lượng lipit động vật (đơn vị : gam) - Tổng lượng lipit thực vật (đơn vị : gam) - Tổng lượng gluxit (đơn vị : gam) - Chi phí của cả bữa ăn (đơn vị : VND) - Tổng độ dùng lại Công thức tính một số đại lượng sử dụng trong hệ thống mờ: Theo [13]: 1 gam Protein cung cấp 4 Kcal 1 gam Lipit cung cấp 9 Kcal 1 gam Gluxit cung cấp 4 Kcal Năng lượng trong thực phẩm chủ yếu (gần như toàn bộ) được cung cấp bởi 3 đại lượng này. Do đó, ta có: 4* Tổng lượng Protein + 9* Tổng lượng Lipit + 4* Tổng lượng Gluxit = Tổng lượng Calori Mặt khác, cũng theo [13] cơ cấu năng lượng khuyến nghị của P : L : G là 12% - 15% : 15% - 20% : 66% - 75% Do đó, ta cần chuyển các đại lượng Tổng Protein, Tổng Lipit, Tổng Gluxit thành các đại lượng tỉ lệ Protein, tỉ lệ Lipit, tỉ lệ Gluxit như sau: 1. Tỉ lệ protein: CalorieTong ThucVatoteinKLuongDongVatoteinKLuongoteinTL 4)PrPr(Pr ×+= 2. Tỉ lệ lipit: CalorieTong ThucVatLipitKLuongDongVatLipitKLuongTLLipit 9)( ×+= 3. Tỉ lệ Gluxit: Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 67 CalorieTong GluxitLuongTLGluxit 4×= Ngoài ra, chúng ta cần tính thêm giá trị của hai đại lượng: 4. Chi phí của một bữa ăn: Chi phí bữa ăn trưa = ∑ chi phí các nguyên liệu thành phần 5. Tổng độ dùng lại: Độ dùng lại của một bữa ăn được tính dựa trên độ dùng lại của các món ăn tổ hợp nên bữa ăn đó. Trong khi đó, độ dùng lại của món ăn lại được tính dựa vào ngày cuối cùng đã sử dụng món đó. Một món ăn có ngày dùng cuối cùng càng xa (trải qua một thời gian dài không sử dụng) thì độ dùng lại của món ăn càng nhỏ, tức tỉ lệ chọn món ăn càng cao. Dựa vào tính chất này, chúng ta sẽ xây dựng một hàm số cho đại lượng độ dùng lại. Ở đây, việc xây dựng hàm số biểu diễn cho đại lượng độ dùng lại cần thỏa mãn một số yêu cầu sau đây: - Đảm bảo các bữa ăn thỏa mãn các yêu cầu về dưỡng chất, giá tiền... sẽ được chọn vào một thời điểm nào đó. - Đảm bảo chương trình xây dựng thực đơn sao cho các món ăn được thay đổi liên tục giúp cho trẻ không cảm thấy nhàm chán. - Không giảm quá nhanh tạo điều kiện cho các bữa ăn không thỏa mãn yêu cầu được chọn sử dụng. Bằng thực nghiệm, qua quá trình chọn hàm, chúng ta chọn ra được hàm cần tìm: đó là hàm giảm 1/n, trong đó n chính là khoảng thời gian giữa hai lần sử dụng. Do vậy độ dùng lại được tính theo công thức: Gọi ĐDL là độ dùng lại của một món ăn. Gọi SNDL là số ngày cách nhau giữa ngày cuối cùng được dùng và ngày xếp lịch: SNDL = Ngày xếp lịch – Ngày dùng lại Khi đó , độ dùng lại của một món ăn được tính như sau: ĐDL = SNDL 1 Tổng độ dùng lại của cả bữa ăn: ĐDL của bữa ăn trưa = ∑ ĐDL của từng món ăn/số món ăn Hệ thống cần xây dựng gồm các factor sau: Lượng Calo: có ba tập mờ. - Lượng calo thấp (Calori.Thap) - Lượng calo trung bình (Calori.TrungBinh) - Lượng calo cao (Calori.Cao) Tỉ lệ Protein: Có ba tập mờ - Tỉ lệ protein thấp (Protein.Thap) Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 68 - Tỉ lệ protein vừa (Protein.Vua) - Tỉ lệ protein cao (Protein.Cao) Tỉ lệ Lipit: Có ba tập mờ - Tỉ lệ lipit thấp (Lipit.Thap) - Tỉ lệ lipit vừa (Lipit.Vua) - Tỉ lệ lipit cao (Lipit.Cao) Tỉ lệ Gluxit: Có ba tập mờ - Tỉ lệ gluxit thấp (Gluxit.Thap) - Tỉ lệ gluxit vừa (Gluxit.Vua) - Tỉ lệ gluxit cao (Gluxit.Cao) Chi phí của bữa ăn trưa: Có ba tập mờ - Giá tiền thấp (Tien.Thap) - Giá tiền vừa (Tien.Vua) - Giá tiền cao (Tien.Cao) Tổng độ dùng lại: Có ba tập mờ - Độ dùng lại thấp (DDL.Thap) - Độ dùng lại trung bình (DDL.TrungBinh) - Độ dùng lại cao (DDL.Cao) Nếu xây dựng bộ điều khiển mờ theo phương pháp cổ điển ta cần sử dụng rất nhiều luật. Chẳng hạn, đối với bài toán của chúng ta, nếu xây dựng theo phương pháp cổ điển cần đến 72936 = luật . Do đó, để giảm bớt chi phí tính toán cũng như giảm thiểu số luật, chúng ta sẽ xây dựng bộ điều khiển mờ phân tán: phân nhóm factor và xây dựng bộ điều khiển mờ cho từng nhóm factor. Tiêu chí phân nhóm factor là mối liên hệ giữa các factor. Ở đây chúng ta có thể phân các factor thành ba nhóm: một nhóm factor có quan hệ dinh dưỡng với nhau (nhóm factor có mối quan hệ không thay đổi theo thời gian), nhóm còn lại là nhóm các factor có mối quan hệ thay đổi theo thời gian (thay đổi giá tiền, thay đổi ngày dùng lại ... ) . Do đó, cần có thêm một factor trung gian để liên kết hai nhóm factor này với nhau (Factor Tỉ lệ Dinh Dưỡng): Factor Tỉ lệ Dinh Dưỡng: gồm 5 tập mờ: - Tỉ lệ dinh dưỡng rất thấp (TLDD.RatThap) - Tỉ lệ dinh dưỡng thấp (TLDD.Thap) - Tỉ lệ dinh dưỡng trung bình (TLDD.TrungBinh) - Tỉ lệ dinh dưỡng cao (TLDD.Cao) - Tỉ lệ dinh dưỡng rất cao (TLDD.RatCao) Với việc xây dựng thêm factor trung gian, số luật trong cả hai bộ điều khiển fuzzy giảm đi đáng kể, chỉ còn lại: 126 luật. Do hệ thống xây dựng cần đáp ứng cho cả hai khối nhà trẻ và mẫu giáo , do đó chúng ta cần xây dựng hai bộ điều khiển mờ thích ứng với từng nhóm tuổi. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 69 3.3.2 Xây dựng các hàm thành viên Hiện nay, trong quá trình xếp lịch ăn tại trường mầm non tồn tại 2 chuẩn cơ cấu năng lượng - Chuẩn một : Tỉ lệ P:L:G = 12% - 15% : 15% - 20% : 66% - 75% - Chuẩn hai : Tỉ lệ P:L:G = 14% : 26% : 60% Đồng thời, lượng gạo (cung cấp lượng lớn calo trong bữa ăn) đối với nhóm tuổi nhà trẻ và nhóm tuổi mầm non cách nhau khá xa, do vậy chúng ta cần xây dựng bộ điều khiển mờ sao cho đáp ứng được từng nhu cầu của từng nhóm tuổi và hỗ trợ cả hai chuẩn nói trên. Để thực hiện được điều này, chúng ta xây dựng hai hàm thành viên cho factor “lượng calo” và hai nhóm factor “tỉ lệ protein”, “tỉ lệ lipit”, “tỉ lệ gluxit”. Factor “lượng calo”: Đối với nhà trẻ: Hình 3-1: Factor “lượng calo” đối với nhóm nhà trẻ Đối với nhóm mẫu giáo : Hình 3-2: Factor lượng calo đối với nhóm mẫu giáo Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 70 Các factor “tỉ lệ protein”, “tỉ lệ lipit”, “tỉ lệ gluxit” áp dụng cho chuẩn một : Factor “tỉ lệ protein”: Hình 3-3: Factor “tỉ lệ protein” đối với chuẩn một Factor “tỉ lệ lipit”: Hình 3-4: Factor “tỉ lệ lipit” đối với chuẩn một Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 71 Factor “tỉ lệ gluxit”: Hình 3-5: Factor “tỉ lệ gluxit” đối với chuẩn một Các factor “tỉ lệ protein”, “tỉ lệ lipit”, “tỉ lệ gluxit” áp dụng cho chuẩn hai : Factor “tỉ lệ protein” : Hình 3-6: Factor “tỉ lệ protein” đối với chuẩn hai Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 72 Factor “tỉ lệ lipit”: Hình 3-7: Factor “tỉ lệ lipit” đối với chuẩn hai Factor “tỉ lệ gluxit” : Hình 3-8: Factor “tỉ lệ gluxit” đối với chuẩn hai Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 73 Sau đây là mô hình bộ điều khiển mờ thứ nhất : Hình 3-9: Mô hình bộ điều khiển mờ thứ nhất Sử dụng đầu ra của bộ điều khiển mờ thứ nhất làm dữ liệu đầu vào của bộ điều khiển mờ thứ hai : Hình 3-10: Mô hình bộ điều khiển mờ thứ hai Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 74 Trong đó, các factor “tỉ lệ dinh dưỡng”, “giá tiền” và “độ dùng lại” là : Factor “tỉ lệ dinh dưỡng” : Hình 3-11: Factor “tỉ lệ dinh dưỡng” Factor “giá tiền” : Hình 3-12: Factor “giá tiền” Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 75 Factor “độ dùng lại” : Hình 3-13:Factor “độ dùng lại” Sau khi xây dựng xong hai bộ điều khiển mờ, chúng ta tiếp tục xây dựng mạng neural cho phép hiệu chỉnh lại trọng số luật của hai bộ điều khiển mờ. Sau quá trình hiệu chỉnh bằng dữ liệu mẫu, chúng ta thu được bộ điều khiển mờ với kết quả sắp xếp phù hợp, chính xác hơn. Sau khi đã xây dựng và hiệu chỉnh bộ điều khiển mờ, chúng ta xây dựng giải thuật để tạo bộ lọc nhằm giảm thiểu dữ liệu qua bộ điều khiển mờ. Cách xây dựng mạng neural và bộ lọc tiếp tục được trình bày ở phần tiếp theo 3.4 Xây dựng bộ lọc cho fuzzy bằng kỹ thuật máy học. Như đã đề cập ở phần trước, chúng ta có thể sử dụng một bộ lọc để giảm bớt tính toán cho bộ điều khiển mờ. Nếu chúng ta chỉ sử dụng bộ điều khiển mờ, chúng ta cần đánh giá hết tất cả các ứng cử viên (bữa ăn) và chọn ra ứng cử viên tốt nhất. Như thế, hệ thống sẽ phải đánh giá cả những ứng cử viên tồi, hay những ứng cử viên không có khả năng được chọn. Điều này sẽ làm tăng các xử lý không cần thiết và làm giảm chất lượng của hệ thống. Để giảm tải cho bộ điều khiển mờ và tăng tốc độ xử lý chung của toàn hệ thống, chúng ta sẽ sử dụng một bộ lọc. Bộ lọc này có nhiệm vụ lọc tất cả các ứng viên chắc chắn không được chọn hay các ứng cử viên có khả năng được chọn là rất thấp. Điều này có vẻ làm tăng yêu cầu xử lý vì chúng ta phải áp dụng bộ lọc cho từng ứng viên. Tuy nhiên, yêu cầu xử lý chung của toàn hệ thống sẽ giảm đi đáng kể. Chúng ta có thể lấy ví dụ như sau, chẳng hạn một bữa ăn chỉ có ba món (canh, mặn, và tráng miệng), và mỗi loại có n món, như vậy chúng ta sẽ có tất cả 3n ứng viên (hay bữa ăn). Khi đó, việc đánh giá tất cả các ứng cử viên yêu cầu áp dụng tất cả các luật mờ cho từng ứng viên. Thông thường số luật mờ trong một hệ thống là lớn, đặc biệt trong hệ thống sắp xếp món ăn này, do có rất nhiều điều kiện nên có rất nhiều luật mờ. Mặc dù chúng ta đã có những cải tiến khi xây dựng bộ điều khiển mờ phân tán là giảm đi đáng kể số lượng luật, nhưng do việc sử dụng bộ điều khiển mờ thường xuyên trong quá trình xếp lịch nên tổng số phép xử lý của hệ thống sẽ rất Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 76 lớn. Mặt khác, trong số 3n ứng viên chắc chắn có những ứng viên không bao giờ được chọn, chẳng hạn các bữa có các món kỵ nhau, thực phẩm chế biến kỵ nhau, giá tiền quá cao, tỉ lệ dinh dưỡng không phù hợp. Khi sử dụng bộ lọc, thường số luật trong bộ lọc sẽ ít hơn so với số luật trong hệ thống mờ vì bộ lọc chỉ xác nhận thông tin được chọn hay không được chọn của các ứng viên. Các ứng viên sẽ được bộ lọc đánh giá trước, sau đó, các ứng viên “đạt tiêu chuẩn” sẽ tiếp tục được đánh giá trong hệ thống mờ để chọn ra ứng viên tốt nhất. Bộ lọc sử dụng trong hệ thống chỉ được gọi thực hiện khi có sự tổ hợp bữa ăn từ các món ăn nên tổng số phép xử lý dành cho bộ lọc so với bộ điều khiển mờ là không đáng kể. Do đó, mặc dù cần thêm các tính toán cho bộ lọc nhưng yêu cầu tính toán chung của cả hệ thống sẽ giảm. Việc xây dựng bộ lọc cũng tương tự việc xây dựng các luật mờ. Chúng ta có thể sử dụng tri thức của các chuyên gia trong lĩnh vực tương ứng (trong trường hợp này là các chuyên gia dinh dưỡng) để xác định các luật của bộ lọc. Cách thứ hai là chúng ta sử dụng dữ liệu mẫu để xác nhận các mẫu không xuất hiện hay các ứng viên không bao giờ được chọn. Từ các mẫu đó, chúng ta xây dựng nên các luật cho bộ lọc. Trong cách thứ hai, việc thiếu dữ liệu hay dữ liệu không đầy dủ sẽ ảnh hưởng rất lớn đến việc xác định các luật của bộ lọc. Khi xác định sai luật, bộ lọc có thể bỏ qua cả những ứng viên tốt nhất và cũng có thể xác nhận các ứng viên tồi nhất. Chính vì vậy, dữ liệu học cho việc xác định các luật của bộ lọc là rất quan trọng. Phần lớn các luật trong bộ lọc có dạng “Nếu X là A thì bữa ăn (ứng viên) không thỏa”. Trong bộ lọc cũng có thể có các luật gồm hai, ba, thành phần như “Nếu X là A, Y là B, thì ứng viên không thỏa”. Các luật có một thành phần sẽ có tầm ảnh hưởng rộng hơn các luật có hai thành phần. Số lượng thành phần càng lớn thì độ chi tiết của luật càng tăng. Chính vì vậy, chúng ta cần kiểm tra xem có luật nào bao (chứa) luật nào không trong quá trình xác định luật. Điều này sẽ làm giảm số luật cũng như yêu cầu tính toán. Đối với bài toán xếp lịch ăn trưa, chúng ta sẽ tiến hành xây dựng bộ lọc từ các dữ liệu mẫu sử dụng thuật toán quy nạp cây quyết định ID3. Có hai hướng tiếp cận cho việc xây dựng cây quyết định : - Hướng thứ nhất : Xây dựng cây quyết định dựa trên các đặc trưng : món mặn, món canh, món tráng miệng . o Ưu điểm : Với CSDL đã có , kết quả thực hiện lọc chính xác sau khi tạo được cây quyết định o Khuyết điểm : ƒ Khi thêm mới một món ăn vào CSDL , độ chính xác của quá trình lọc giảm dần, đến một lúc nào đó bộ lọc trở nên mất tác dụng. ƒ Số luật tạo được lớn. o Khắc phục: Cần thực hiện việc học lại nếu có thêm một món ăn vào CSDL - Hướng thứ hai : Xây dựng cây quyết định dựa trên các đặc trưng : tỉ lệ dinh dưỡng, độ dùng lại và giá tiền. o Ưu điểm : ƒ số luật tạo được ít hơn hướng tiếp cận thứ nhất ƒ Khi thêm mới dữ liệu, quá trình lọc vẫn giữ được tính ổn định, tuy có giảm nhưng mức độ ảnh hưởng không cao o Khuyết điểm : ƒ Đối với CSDL hiện tại, việc lọc vẫn nhận những giá trị dư thừa, không chính xác như khi tiếp cận theo hướng thứ nhất Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 77 Đối với bài toán của chúng ta, việc thêm một món ăn hay xóa một món ăn ra khỏi CSDL diễn ra thường xuyên, do vậy chúng ta sẽ xây dựng cây quyết định theo hướng tiếp cận thứ hai. Hơn nữa, đối với khuyết điểm của hướng tiếp cận thứ hai này, do chúng ta chỉ lọc bớt dữ liệu giảm tải cho bộ điều khiển mờ nên việc nhận thêm vào những giá trị dư thừa vẫn không làm giảm chất lượng của quá trình sắp lịch. Bộ lọc được xây dựng thành ba thành phần: • Bộ lọc tĩnh: sử dụng các nguyên tắc về dinh dưỡng do Vụ Mầm Non quy định (lượng calo, cơ cấu năng lượng đối với protein, lipit và gluxit) để xây dựng. Các nguyên tắc này là các luật tĩnh và có giá trị tĩnh. • Bộ lọc động : sử dụng các yếu tố: món ăn kỵ nhau, thực phẩm kỵ nhau, giá tiền, khoảng thời gian không sử dụng món ăn hay thực phẩm Các yếu tố này là các luật tĩnh nhưng có giá trị thay đổi theo thời gian hoặc theo kinh nghiệm của người sử dụng. • Bộ lọc sử dụng kỹ thuật máy học : sử dụng dữ liệu mẫu là các bữa ăn trưa đã được sử dụng tại các trường mầm non trong những năm gần đây và sử dụng thuật toán quy nạp cây quyết định ID3 để thực hiện việc học xây dựng cây tạo nên bộ lọc. Do có các luật tĩnh nên việc xây dựng bộ lọc tĩnh và bộ lọc động khá đơn giản. Ở đây, chúng ta tập trung vào việc xây dựng bộ lọc động sử dụng kỹ thuật máy học. Theo hướng tiếp cận thứ hai mà chúng ta đã tìm hiểu ở trên, các đặc trưng của chúng ta là: tỉ lệ dinh dưỡng, độ dùng lại, giá tiền. Do tiêu chí lọc mà chúng ta đã đưa ra: lọc loại bỏ tất cả các bữa ăn không bao giờ được sử dụng. Do đó, nhiệm vụ của bộ lọc là cần tìm ra được danh sách các bữa ăn không bao giờ được sử dụng đó. Ở đây, một bữa ăn có dùng được hiểu là tồn tại một độ dùng lại nào đó sao cho bữa ăn được chọn. Từ đó, một bữa ăn không dùng nghĩa là, với mọi giá trị của độ dùng lại bữa ăn vẫn không được chọn. Do vậy, yếu tố độ dùng lại không được xem là đặc trưng của bộ lọc. Điều này có nghĩa là bộ lọc của chúng ta sẽ có hai đặc trưng, đó là : tỉ lệ dinh dưỡng và giá tiền. Với dữ liệu đầu vào : tỉ lệ dinh dưỡng, giá tiền, ta thực hiện việc chia khoảng cho các đặc trưng này. Nguyên nhân phải thực hiện việc chia khoảng: Ở đây, các đặc trưng của chúng ta đều là số thực. Giả sử chúng ta có luật: “Nếu giá trị của A là 50.5 thì kết luật: không chọn”. Bây giờ, ta có một giá trị khác của A là 50.6, vậy kết luận là gì ? (không thể kết luận được); nếu không chia khoảng thì ứng với từng giá trị ta phải có luật tương ứng. Do các giá trị ở đây là giá trị thực nằm trong một miền liên tục nên chúng ta không thể có đủ số luật. Bằng thực nghiệm, chúng ta thu được các khoảng chia như sau : Đối với đặc trưng tỉ lệ dinh dưỡng: Khoảng chia Miền giá trị 1 0 - 5 2 5 - 10 3 10 - 15 Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 78 4 15 - 20 5 20 - 25 6 25 - 30 7 30 - 35 8 35 - 40 9 40 - 45 10 45 - 50 11 50 - 55 12 55 - 60 13 60 - 65 14 65 - 70 15 70 - 75 16 75 - 80 17 80 - 85 18 85 - 90 19 90 - 95 20 95 - 100 Đối với đặc trưng giá tiền Khoảng chia Miền giá trị 1 0 - 500 2 500 - 1000 3 1000 - 1500 4 1500 - 2000 5 2000 - 2500 6 2500 - 3000 7 3000 - 3500 8 3500 - 4000 9 4000 - 4500 10 4500 - 5000 11 5000 - 5500 12 5500 - 6000 13 6000 - 6500 14 6500 - 7000 15 7000 - 7500 16 7500 - 8000 17 8000 - 8500 18 8500 - 9000 19 9000 - 9500 20 9500 - 10000 Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 79 Ứng với bài toán xếp lịch, ta có hai đặc trưng: tỉ lệ dinh dưỡng và giá tiền. Giả sử đặt: tỉ lệ dinh dưỡng là đặc trưng thứ nhất giá tiền là đặc trưng thứ hai. Bước thứ nhất trong quá trình xây dựng bộ lọc là phân khoảng giá trị của các đặc trưng của từng bộ dữ liệu mẫu. Hình 3-14: Phân khoảng giá trị mẫu Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 80 Bước thứ hai: Sau khi chia các khoảng cho các đặc trưng, chúng ta sử dụng dữ liệu mẫu để học và tạo cây quyết định sử dụng thuật toán ID3 Hình 3-15: Sử dụng dữ liệu mẫu để xây dựng cây quyết định Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 81 Bước thứ ba : Sau quá trình sử dụng dữ liệu mẫu để xây dựng cây quyết định. Ở bước này, với một bộ dữ liệu bất kì, ta có thể sử dụng cây để quyết định có chọn mẫu đó hay không. Hình 3-16: Sử dụng cây quyết định để lọc dữ liệu 3.5 Neural Network kết hợp hệ mờ phát sinh luật và điều chỉnh trọng số. Giới thiệu Vấn đề chính của một hệ thống mờ là xác định được tập luật tối ưu. Nếu có tập luật tốt, hệ thống sẽ hoạt động tốt hơn. Ngược lại, tập luật không tốt sẽ làm giảm đáng kể chất lượng của hệ thống và hệ thống sẽ hoạt động kém hiệu quả. Trong một hệ thống mờ, thông thường có nhiều luật trong tập luật được sử dụng để giải quyết vấn đề. Trong tập luật, có thể có một vài luật mâu thuẫn hay thậm chí phủ nhận hoàn toàn các luật khác. Trong hệ thống được xây dựng bởi các chuyên gia, mâu thuẫn giữa các luật sẽ được các chuyên gia điều chỉnh. Còn với hệ thống mờ thích ứng, tiến trình điều chỉnh các luật sẽ được tự động hóa bằng cách sử dụng mạng neural hay thuật toán học tựa neural. Để hiểu được cách hoạt động của quá trình điều chỉnh luật của hệ thống mờ thích ứng, trước hết chúng ta cấn tìm hiểu mạng neural về cách vận hành cũng như quá trình học Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 82 của nó. Mạng neural là một tập hợp gồm các nút và các cạnh nối. Các nút thường được chia thành ba lớp là lớp nhập, (các) lớp ẩn và lớp xuất. Các cạnh nối có trọng số xác định ảnh hưởng của một nút lên nút liên kết với nó. Giá trị nhập được cho vào ở lớp nhập. Thông thường, số nút của lớp nhập bằng với số thành phần của biến (giá trị) nhập. Từng thành phần sẽ được chuyển đến các nút trong lớp ẩn có cạnh nối tương ứng. Tầm ảnh hưởng của từng thành phần đối với nút ẩn được xác định bằng trọng số của cạnh nối. Tại mỗi nút ẩn, trọng ngưỡng của nút ẩn sẽ được cộng với các giá trị được chuyển đến từ các nút nhập (đã nhân với trọng cạnh nối). Đây là tổng trọng hóa của nút ẩn. Sau đó, hàm logistic sẽ được áp dụng trên tổng trọng hóa này để xác định đầu ra của nút ẩn. Đầu ra của mỗi nút ẩn sẽ được chuyển cho các nút ẩn (nếu có lớp ẩn khác) hoặc các nút xuất có cạnh nối tương ứng. Tại các nút xuất này, trọng ngưỡng của nút xuất cộng với các giá trị của các nút ẩn (đã nhân với trọng số của cạnh nối) để tạo thành tổng trọng hóa của nút xuất. Hàm logistic lại được sử dụng để xác định đầu ra cho nút xuất này. Thông thường, số nút xuất của mạng do bài toán quy định. Chẳng hạn nếu mạng dùng để nhận dạng chữ số thì thường có 10 nút xuất tương ứng với 10 chữ số, còn nếu dùng để nhận dạng chữ cái thì thường có 26 nút. Giá trị của từng nút xuất có thể chỉ là giá trị 0 hoặc 1 hoặc cũng là các giá trị thực nằm giữa 0 và 1. Điều này phụ thuộc vào từng bài toán và người cài đặt. Chính do cấu trúc của nó mà mạng neural có thể xấp xỉ bất kỳ hàm nào, miễn là nó có đủ số neural cần thiết. Để có thể xấp xỉ một hàm, mạng cần phải được học hay được huấn luyện. Việc học thực chất là việc cập nhật lại các trọng ngưỡng tại các nút ẩn và các nút xuất và cập nhật các trọng số của các cung nối. Trong cài đặt, người ta thường sử dụng phương pháp học có giám sát để luyện mạng. Trong phương pháp này, dữ liệu học sẽ được đưa vào mạng. Sau khi đi qua mạng, một kết xuất tương ứng sẽ được nhận ở đầu ra và một “thầy giáo” sẽ thông báo khi có một lỗi xảy ra. Lỗi ở đây là kết xuất nhận được không đúng với kết xuất đúng của dữ liệu nhập. Lỗi này sẽ được lan truyền ngược lại trong mạng (từ nút xuất đến nút nhập) và các trọng số sẽ được cập nhập lại. Quá trình này được thực hiện nhiều lần cho đến khi mạng đạt được tỉ lệ cho phép. Trong phần này chúng ta chỉ tìm hiểu cơ bản về mạng neural chứ không đi sâu vào nên nhiều vấn đề quan trọng không được bàn ở đây. Chúng ta chỉ cần hiểu cơ chế hoạt động và quá trình học của mạng neural để có thể hiểu được cách thức học đối với hệ thống mờ. Vậy, tại sao chúng ta phải cho hệ thống mờ học để sinh ra luật? Chúng ta không thể tự tạo ra luật? Như trên đã đề cập, các chuyên gia có thể tạo ra luật và điều chỉnh nó để hệ thống hoạt động tốt hơn. Còn đối với các kỹ sư, không phải là chuyên gia trong lĩnh vực nào đó, khó có thể tự nghĩ ra luật và cũng khó tối ưu luật để tăng chất lượng của hệ thống. Chính vì vậy, khi xây dựng hệ thống mờ, các kỹ sư thường cho hệ thống học để tạo ra và tối ưu các luật đó dựa vào dữ liệu. Ngoài ra, có nhiều trường hợp kiến thức của chuyên gia cũng không thể giúp được gì. Ví dụ máy điều hòa không khí. Mỗi người nghĩ tương tự nhau nhưng không giống nhau khi nói nhiệt độ là “ấm”, “lạnh” hay “thích hợp”. Ngay chính một người thì những từ này không phải lúc nào cũng mang ý nghĩa giống nhau tại các thời điểm khác nhau trong ngày hay trong các mùa khác nhau. Chính vì vậy, mỗi người sử dụng sẽ tạo ra dữ liệu để hệ thống học và như thế hệ thống mới có thể đáp ứng đúng yêu cầu hay hệ thống mới có chất lượng. Sau này, khi yêu cầu thay đổi thì hệ thống chỉ cần học lại và vẫn có thể được sử dụng. Hướng giải quyết Thuộc tính nổi bật của một luật mờ là dạng hình học đơn giản của nó như là một “mảnh” (patch) (có thể tưởng tượng “mảnh” này như sau: giả sử có luật “Nếu x = A thì y = Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 83 B”, trong không gian trạng thái XxY, “mảnh” là hình chữ nhật bị giới hạn có cạnh theo trục X là A và cạnh theo trục Y là B) hoặc tập con mờ trong không gian trạng thái của hệ thống. Người dùng thường tập trung vào hình dạng của các tập mờ vô hướng (như từ 1,6m- 1,7m là cao) tạo thành một luật và bỏ qua hình dạng của luật. Nhưng hình dạng của các tập mờ lại quyết định cấu trúc và hình dạng của luật. Cấu trúc luật này xác định làm thế nào hệ thống mờ có thể ánh xạ dữ liệu nhập thành dữ liệu xuất. Các luật rõ là các luật có dạng đơn giản nhất. Chúng định nghĩa các hộp trong không gian trạng thái nhập-xuất. Các hộp này thuộc về số ít các luật có thể chuyển sang các tập vô hướng. Hầu hết các “mảnh” luật không thể chuyển sang các tập mờ vô hướng. Vì vậy, trong hầu hết các trường hợp, chúng ta không thể ánh xạ một vector trong không gian p-chiều vào trong hệ thống mờ có giá trị vô hướng. Một luật có dạng ellipse (ellipsoidal rule) có hình dạng của một quả trứng. Luật dạng ellipse có thể xem như một độ đo tình trạng không chắc chắn hoặc là một vùng thống kê. Phần này sẽ tìm hiểu chi tiết hệ thống mờ với các luật dạng ellipse. Học không giám sát xác định dạng và điều chỉnh tập luật đầu tiên của các luật dạng ellipse thông qua phương pháp học cạnh tranh. Sau đó, học có giám sát sẽ tối ưu tập luật đó. Một luật mờ có thể có dạng ellipse trong không gian trạng thái nhập-xuất của một hệ thống. Khi đó, hệ thống xấp xỉ một hàm bằng cách bao đồ thị của hàm đó bằng các “mảnh” luật. Hệ thống sẽ lấy trung bình các “mảnh” luật gối lên nhau. Cá luật mờ tốt nhất là các luật có thể phủ được các đầu mút và các phần lồi của hàm. Các hệ thống neural hoặc gom nhóm thống kê có thể xấp xỉ các luật mờ chưa biết từ dữ liệu học. Sau đó, các hệ thống neural có thể điều chỉnh các luật cũ cũng như có thể thêm các luật mới vào tập luật để tăng tính chính xác trong việc xấp xỉ hàm. Chúng ta sử dụng một hệ thống nơron lai, kết hợp giữa học có giám sát và học không có giám sát để tìm và điều chỉnh các luật có dạng ellipse.Học cạnh tranh không giám sát sẽ tìm các nhóm thống kê thứ nhất và thứ hai trong dữ liệu học. Ma trận thống kê của mỗi nhóm sẽ cho một luật dạng ellipse ở tâm vector hoặc ở giữa nhóm dữ liệu. Hệ thống nơron có giám sát sẽ học theo phương pháp giảm gradient. Nó sẽ cực tiểu hóa lỗi của việc xấp xỉ hàm. Trong hệ thống lai, học không giám sát sẽ khởi tạo việc giảm gradient. Hệ thống lai sẽ xấp xỉ hàm với độ chính xác cao hơn các hệ thống chỉ dùng học không giám sát hoặc học có giám sát. Đối với bài toán của chúng ta, chúng ta cần phải xác định ứng cử viên tốt nhất trong tất cả các ứng cử viên. Cụ thể, chúng ta cần xác định một bữa ăn (bao gồm các món) thỏa các điều kiện về dinh dưỡng (như đạm, chất béo,) và các điều kiện khác như ngày ăn gần nhất, giá thành, Nếu chúng ta có dữ liệu, chúng ta có thể áp dụng phương pháp mạng học không giám sát để xác định các luật. Nhưng nếu ta không có dữ liệu, chúng ta có thể nhờ chuyên gia xác định tập luật ban đầu. Từ tập luật ban đầu, chúng ta có thể xác định được các tham số của các luật ellipse (có thể coi chúng là các luật ellipse) để dựa vào đó xác định kết xuất của hệ thống. Chuyển sang giai đoạn học có giám sát, chúng ta sử dụng các tham số đã xác định trong bước trên để điều chỉnh các luật đã có. Như đã nói, chúng ta cần xác định mẫu tốt nhất nên hệ thống không thể học trên một mẫu được mà phải học trên nhiều mẫu cùng một lúc. Vì nếu chúng ta chỉ học trên một mẫu, chúng ta không thể xác định được mẫu tốt nhất. Chúng ta có thể đánh giá thông qua cho điểm nhưng việc cho điểm từng mẫu là vô cùng khó khăn vì có quá nhiều điều kiện. Nói tóm lại, hệ thống sẽ được học trên một tập mẫu đã được sắp xếp. Hệ thống sẽ sắp xếp lại tập mẫu này dựa trên tập luật mà nó đang có hiện Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 84 thời và sau đó so sánh với thứ tự đúng. Hệ thống sẽ căn cứ vào số lỗi sắp xếp sai để cập nhật các tham số. Chúng ta có thể tăng cường lỗi sai bằng cách tăng hình phạt khi khoảng cách giữa vị trí đúng và vị trí hệ thống sắp xếp tăng. Cách này sẽ nhanh chóng đưa các mẫu về gần với vị trí đúng của nó nhưng nó không có nhiều tác dụng trên các tập mà hệ thống đã xếp gần đúng. Chúng ta cũng có thể cho hệ thống học với các tập mẫu đã sắp khác nhau. Điều này có thể làm tăng chất lượng của hệ thống. Sau khi học, chúng ta có thể vừa sử dụng, vừa kiểm tra chất lượng của hệ thống được xây dựng. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 85 Chương 4 CÀI ĐẶT VÀ ĐÁNH GIÁ 4.1 Cài đặt 4.1.1 Phân tích – Thiết kế 4.1.1.1 Cấu trúc chương trình 4.1.1.2 Giao diện, chức năng chính của chương trình 4.1.2 Mô hình 4.1.2.1 Phân tích ERD 4.1.2.2 Mô hình DFD 4.1.2.3 Mô hình ràng buộc dữ liệu 4.2 Đánh giá và hướng phát triển 4.2.1 Tự đánh giá 4.2.2 Hướng phát triển Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 86 4.1 Cài đặt 4.1.1 Phân tích – Thiết kế 4.1.1.1 Cấu trúc chương trình: Chương trình gồm có bảy phần chính: • Sắp lịch: sắp xếp các bữa ăn trưa một cách tự động sao cho đảm bảo đủ lượng dinh dưỡng cho các bé ở trường mầm non. • Hiển thị danh sách các món ăn của một bữa: cho phép xem chi tiết thông tin của từng món ăn sẽ dùng trong một bữa đã được xếp. • Quản lý món ăn: cho phép thêm, xóa, sửa một món ăn bất kỳ( ngoại trừ món cơm không được xóa). • Quản lý nguyên liệu món ăn: cho phép thêm, xóa, sửa một nguyên liệu bất kỳ( ngoại trừ ngyên liệu gạo không được xóa). • Lập báo cáo: cho biết chi tiết về những nguyên liệu phải mua đối với một bữa ăn trưa và gía tiền của bữa đó. • Tra cứu: tra cứu các món ăn, nguyên liệu, đồng thời cung cấp thêm một số thông tin cần thiết về dinh dưỡng-sức khỏe. • Quản lý hệ thống: cung cấp một số chức năng cần thiết giúp cho việc quản lý chương trình tốt hơn. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 87 4.1.1.2 Giao diện, chức năng chính của chương trình: H ìn h 4- 1: G ia o di ện c hí nh c ủa c hư ơn g trì nh . Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 88 H ìn h 4- 2: S ắp lị ch ă n trư a tro ng m ột tu ần . Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 89 H ìn h 4 -3 : s ắp lị ch ă n trư a tro ng m ột th án g. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 90 H ìn h 4- 4: H iể n th ị c ác d an h sá ch c ác m ón ă n tro ng m ột n gà y. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 91 H ìn h 4- 5: H iể n th ị d an h sá ch c ác m ón ă n tro ng m ột tu ần Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 92 H ìn h 4- 6: H iể n th ị d an h sá ch c ác m ón ă n tro ng m ột th án g. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 93 Hình 4-7: báo cáo chi tiết của một bữa ăn trưa trong ngày. Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 94 4.1.2 Mô hình 4.1.2.1 Phân tích ERD. Hình 4-8: Mô hình ERD Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 95 4.1.2.2 Mô hình DFD. Mức 0 : Hình 4-9: Mô hình DFD Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 96 Mức 1: Chi tiết ô xử lý 1.0 (Xếp lịch) Hình 4-10: Chi tiết ô xử lý “xếp lịch” Mức 1 : Chi tiết ô xử lý 3.0 (Cập nhật món ăn) Hình 4-11: Chi tiết ô xử lý “cập nhật món ăn” Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 97 Mức 1 : Chi tiết ô xử lý 4.0 (cập nhật nguyên liệu) Hình 4.12: Chi tiết ô xử lý “cập nhật nguyên liệu” Mức 1 : Chi tiết ô xử lý 5.0 ( In ấn , báo cáo) Hình 4-13: Chi tiết ô xử lý “in ấn, báo cao” Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 98 Mức 1 : Chi tiết ô xử lý 6.0 (Tra cứu) Hình 4-14: Chi tiết ô xử ly “tra cứu” Mức 1 : Chi tiết ô xử lý 8.0 (Quản lý hệ thống) Hình 4-15: Chi tiết ô xử lý “quản lý hệ thống” Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 99 4.1.2.3 Mô hình ràng buộc dữ liệu. Hình 4-16: Mô hình ràng buộc dữ liệu 4.2 ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 4.2.1 Tự đánh giá: Ưu điểm: - Giải quyết trong AI, kết hợp hệ mờ, neural và máy học - Các bữa ăn được chọn sắp xếp đã đảm bảo được về giá thành, không có các món kỵ nhau trong bữa, có độ dùng lại thấp - Chương trình có khả năng sao lưu và khôi phục dữ liệu, nên ta có thể khôi phục lại dữ liệu và sử dụng lại chương trình khi bị hư. - Chương trình đã được chạy xếp lịch cho nhiều tháng và kết quả các bữa ăn thu được vẫn đảm bảo tỉ lệ, thành phần dinh dưỡng trong mỗi bữa. Khuyết điểm: - Thiếu dữ liệu mẫu - Vì thời gian ngắn nên chưa đủ thử nghiệm trên nhiều chỗ khác nhau Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 100 4.2.2 Hướng phát triển Từ mô hình này có thể phát triển xây dựng chế độ dinh dưỡng không những cho cho trẻ em mà cho cả người lớn ở những nơi công cộng (như công ty, bệnh viện,), cho người bệnh, những người ăn kiêng, Khoa Tóan – Tin học trường Đại Học Khoa Học Tự Nhiên Tp.HCM 101 TÀI LIỆU THAM KHẢO [1] Bùi Công Cường, Nguyễn Doãn Phước , “Hệ mờ, mạng neural và ứng dụng”, NXB KH&KT , 2001. [2] C. Elkan et al., “Fuzzy Logic Symposium", IEEE Expert, August 1994. [3] G. Klir, B. Yuan, Fuzzy sets and fuzzy logic, Prentice Hall, NJ, 1995. [4] V. Kreinovich, G. C. Mouzouris, H. T. Nguyen, “Fuzzy rule based modeling as a universal approximation tool", In: H. T. Nguyen, M. Sugeno (eds.), Fuzzy Systems: Modeling and Control, Kluwer, Boston, MA, 1998, pp. 135 - 195. [5] JunYan, Michael Ryan, James Power, “Using fuzzy logic”, Prentice Hall , 1994 [6] Bart Kosko, “Fuzzy Engineering”, Prentice Hall, 1997 [7] H. T. Nguyen, V. Kreinovich, “Methodology of fuzzy control: an introduction", In: H. T. Nguyen and M. Sugeno (eds.), Fuzzy Systems: Modeling and Control, Kluwer, Boston, MA, 1998, pp. 19 - 62. [8] H. T. Nguyen, E. A.Walker, First course in fuzzy logic, CRC Press, Boca Raton, FL, 1999. [9] Nguyễn Như Phong, “Lý thuyết mờ và ứng dụng”, NXB KH&KT, 2005 [10] M. H. Smith, V. Kreinovich. “Optimal strategy of switching reasoning methods in fuzzy control", In: H. T. Nguyen, M. Sugeno, R. Tong, R. Yager (eds.), Theoretical aspects of fuzzy control, J. Wiley, N.Y., 1995, pp. 117 - 146. [11] Feijun Song, “Cell state fuzzy logic controller automatic design and optimization for high other systems”, Florida Atlantic University , 1999 [12] Th.S Phạm Thế Bảo, “Chuyên đề các hệ thống học: học với cây quyết định”, khoa CNTT, Đại học khoa học tự nhiên, 2006 [13] Chương trình chăm sóc giáo dục trẻ theo lứa tuổi do Bộ Giáo Dục và Đào tạo ban hành năm học 1994 – 1995 [14] Bảng nhu cầu dinh dưỡng khuyến nghị cho người Việt Nam, NXB Y học, Viện dinh dưỡng- Bộ Y tế, 2003

Các file đính kèm theo tài liệu này:

  • pdfxay_dung_che_do_dinh_duong_tai_truong_mam_non_bang_logic_mo_ket_hop_mang_neural_va_may_hoc_2309.pdf
Luận văn liên quan