Từ những hiểu biết này,người ta xây dựng và phát triển mạng Neural nhân tạo dựa trên mô hình của Neural sinhhọc với mục đích là có thể huấn luyện các mạng Neural nhân tạo này để chúng có
Trang 1Mục Lục
Lời mở đầu
Ngày nay không ai có thể phủ nhận vai trò cực kỳ quan trọng của máy tính trong nghiên cứukhoa học kỹ thuật cũng như trong đời sống Máy tính đã làm được những điều kỳ diệu và giảiđược những vấn đề tưởng chừng nan giải Từ đầu những năm 1940, ý tưởng truyền cho máy tính
có khả năng suy nghĩ và học hỏi như con người đã được các nhà khoa học tìm tòi phát triền vàđây cũng chính là nguồn gốc ra đời của mạng Neural Nó thực sự được chú ý và nhanh chóng trởthành một hướng nghiên cứu đầy triển vọng trong mục đích xây dựng các máy thông minh tiếngần tới trí tuệ con người
Hiện nay mạng Neural đang được ứng dụng trong rất nhiều các lĩnh vực khác nhau như tronglĩnh vực nhận dạng ( hình ảnh, giọng nói, chứ viết…) hay trong lĩnh vực an ninh ( hệ thống phát
Trang 2hiện xâm nhập) Như chúng ta đã biết, Thông tin ngày càng trở lên quan trọng, là chìa khóathành công cho nhiều vấn đề Chính vì thế mà bài toán bảo mật cho hệ thống thông tin là một bàitoán khó tìm lời giải triệt để nhất Làm thế nào để tăng cường an toàn cho dữ liệu, cho toàn hệthống tránh khỏi việc mất mát dữ liệu do các lỗ hổng bảo mật hay sự tấn công từ hacker, virus,Trojan Một cách tổng quát, hệ thống phát hiện xâm nhập - Intrusion detection system ( IDS) làmột loại mới của công nghệ an toàn mạng mà có thể bảo vệ tích cực máy tính của bạn từ nhữngtấn công của người xâm nhập Khi phát hiện bất kỳ nỗ lực xâm nhập hoặc sự xâm nhập, nó cóthể báo cáo kịp thời chúng cho người quản trị mạng, cho phép người quản trị biện pháp ngăn cảnhoặc khắc phục như là ngắt kết nối mạng để ngăn cản sự mở rộng của dữ liệu không chính xác,
và gửi cảnh báo đến kẻ xâm nhập Tuy nhiên, làm thế nào để phát hiện liệu có sự xâm nhập haykhông là một vấn đề cần giải quyết đầu tiên Phát hiện xâm nhập phụ thuộc vào sự phân loại vànhận dạng các vấn đề với một số lớn các điều kiện phi tuyến làm cho nó cần thiết phải học cáccách tiếp cận đã tích hợp các điều kiện phi tuyến để giải quyết vấn đề
Công nghệ thông tin phát triển không ngừng và công nghệ phát hiện xâm nhập cũng luôn cầnđổi mới Mạng Neural là bước tiến cho sự đổi mới về công nghệ phát hiện xâm nhập, khắc phụcđược nhiều điểm thiếu sót của IDS truyền thống, cho thấy rằng công nghệ này sẽ không lạc hậu,hướng tiếp cận hệ thống an ninh an toàn có ứng dụng công nghệ này hứa hẹn nhiều điểm sáng
Do đó trong phần bài thu hoạch này, em xin trình bày về mạng Neural và ứng dụng của mạngNeural thông minh trong việc phát hiện các cuộc tấn công trong hệ thống phát hiện xâm nhập -Intrusion detection system ( IDS)
Trong phạm vi của bài thu hoạch, em xin trình bày các vấn đề chính sau đây:
Phần I: Sơ lược về mạng Neural: Phần này sẽ đưa ra khái niệm cơ bản về mạng Neural cũng
như nguồn gốc và triển vọng phát triển
Phần II: Mô hình Neural và các kiến trúc mạng: Trình bày mô hình, việc phân loại mạng và
một số thuật toán huấn luyện mạng
Phần III: Ứng dụng của mạng Neural trong hệ thống phát hiện xâm nhập trái phép (IDS):
Em xin chân thành cảm ơn thầy giáo Hoàng Kiếm – đã tận tình chỉ bảo và giúp em hoànthành bài thu hoạch này
Trang 3I) Sơ lược về mạng Neural:
Nguồn gốc của mạng Neural nhân tạo bắt nguồn từ nhiều ngành học thuật bao gồmvật lý, tâm lý học thần kinh Những nghiên cứu này hoàn toàn về các lý thuyết của việchọc, sự nhìn, phản xạ có điều kiện,v.v và hoàn toàn chưa có các mô hình toán học vềcác hoạt động của mạng Neural Vào những năm thập niên 1940, Werren McCulloch vàWalter Pitts chỉ ra rằng các mạng nơnron nhân tạo có thể tính toán được một số hàm logic
và số học Tiếp đó là Rosebatt, Windrow, Hoff đã có các mạng và các quy tắc học đầutiên Thập niên 1960 Minsky và Papert đã đưa ra các hạn chế của mạng Neural và cácnghiên cứu gần như dừng lại Những năm 1970 có Amari, Anderson, Kohonen tiếp tụcnghiên cứu nhưng tốc độ chậm Từ thập niên 80 với những phát triển mới quan trọng vềthuật toán học như truyền ngược lỗi, mạng Neural đã hồi sinh và phát triển mạnh Càngngày chúng càng chứng tỏ vai trò và triển vọng của nó trong các ứng dụng thực tiễn và
Trang 4không còn chỉ nằm trong các phòng thí nghiệm mà đã xuất hiện nhiều ứng dụng quantrọng.
Người ta thấy rằng tất cả các chức năng thần kinh sinh học được thực hiện nhờ vàocác liên kết giữa các Neural sinh học Quá trình học tập của não là việc hình thành cácliên kết mới giữa các Neural hoặc thay đổi các liên kết đang có Từ những hiểu biết này,người ta xây dựng và phát triển mạng Neural nhân tạo dựa trên mô hình của Neural sinhhọc với mục đích là có thể huấn luyện các mạng Neural nhân tạo này để chúng có thể giảiquyết một số bài toán theo cách của bộ não sinh học thực hiện đồng thời thông qua đó tìmhiểu các cơ chế nhớ và cách tính toán của bộ não
Một Neural được cấu gồm những thành phần chính sau: Dendrite, Soma, Synapse, Axon nhưhình 1
Hình 1: Mô hình Neural sinh họcSoma là thân của Neural
Các dendrites là các dãy mảnh, dài, gắn liền với soma, chúng truyền dữ liệu (dưới dạng xungđiện thế) đến cho soma xử lý Bên trong soma các dữ liệu đó được tổng hợp lại, có thể xem gầnđúng sự tổng hợp ấy như là một phép lấy tổng tất cả các dữ liệu mà Neural nhận được
Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon Khác với dendrites, axons cókhả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu từ Neural đi các nơi khác Chỉ khinào điện thế trong soma vượt quá một giá trị ngưỡng nào đó thì axon mới phát một xung điệnthế, còn nếu không thì nó ở trạng thái nghỉ
Trang 5Bộ não con người có khoảng 1011 Neural được nối với nhau bởi 104 liên kết Sự sắp đặt cácNeural và độ mạnh của các khớp thần kinh riêng biệt được quyết định bởi một quá trình hoá họcphức tạp, tạo nên chức năng của mạng Neural.
Một số cấu trúc thần kinh được các định ngay từ lúc sinh ra Còn lại chúng phát triển qua quátrình học, các liên kết mới được tạo ra, một số khác mất đi Các cấu trúc thần kinh liên tục thayđổi trong suốt cuộc sống Giai đoạn đầu của cuộc sống là quá trình phát triển mạnh mẽ nhất, vềsau chủ yếu là sự tăng hoặc giảm độ mạnh của các khớp thần kinh
Người ta đã thấy rằng, mỗi Neural có thể gồm vài chục hoặc hàng trăm khớp nối để nối vớicác Neural khác Điều đáng chú ý là chính các Neural rất đơn giản trong cơ chế làm việc, nhưngmạng các Neural liên kết với nhau lại có khả năng tính toán, suy nghĩ, ghi nhớ và điều khiển.Các khả năng cơ bản của bộ não là:
+ Có thể tổng quát hoá, liên hệ các thuộc tính của đối tượng với nhau
+ Có thể tiếp tục thực hiện ngay cả khi thông tin bị thiếu hoặc không chính xác
+ Có thể phát hiện và phục hồi thông tin bị mất
+ Có khả năng xuống cấp và có khả năng thay thế dần dần
+ Có khả năng học
Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra, mỗi đầu vào đến
từ một liên kết Đặc trưng của Neural là một hàm kích hoạt phi tuyến chuyển đổi tổ hợptuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra Hàm kích hoạt này đảm bảotính chất phi tuyến cho tính toán của mạng Neural
Page 5 of 35 a
Trang 6Hình 2: Mô hình một Neural nhân tạo
Liên kết Neural là một thành phần của mạng Neural nhận tạo để liên kết giữa các Neural, nónối đầu ra của Neural lớp này với đầu vào của một Neural trong lớp khác Đặc trưng của thànhphần liên kết là một trọng số mà mỗi tín hiệu đi qua đều được nhân với trọng số này Các trọng
số liên kết chính là các tham số tự do cơ bản của mạng neuron, có thể thay đổi được nhằm thích
nghi với môi trường xung quanh
Mạng Neural đã được ứng dụng trong nhiều lĩnh vực Chất lượng và số lượng của chúng tănglên rất nhanh và hứa hẹn giải quyêt nhiều bài toán mà thực hiện bằng các phương pháp truyềnthống là rất khó khăn Dưới đây liệt kê ra một số ứng dụng chính của mạng Neural:
Aerospace: Phi công tự động, giả lập đường bay, các hệ thống điều khiển lái máy bay, bộphát hiện lỗi
Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộ phận tích hoạt động củaxe
Banking: Bộ đọc séc và các tài liệu, tính tiền của thẻ tín dụng
Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đối tượng, nhận dạng nét mặt,các bộ cảm biến thế hệ mới, xử lý ảnh radar,…
Electronics: Dự đoán mã tuần tự, sơ đồ chíp IC, điều khiển tiến trình, phân tích nguyênnhân hỏng chip, nhận dạng tiếng nói, mô hình phi tuyến
Trang 7 Entertainment: Hoạt hình, các hiệu ứng đặc biệt, dự báo thị trường.
Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm cố, đánh giá mức độ hợptác, phân tích đường tín dụng, chương trình thương mại qua giấy tờ, phân tích tài chính liêndoanh, dự báo tỷ giá tiền tệ
Insurance: Đánh giá việc áp dụng chính sách, tối ưu hoá sản phẩm
Bài toán lọc nhiễu
Xử lý ảnh, xử lý tính hiệu
……
Tuy có nhiều hứa hẹn nhưng mạng Neural cũng còn nhiều vấn đề như: Đánh giá các giớihạn của mạng Neural, đánh giá khả năng tổng quát của mạng Neural, kết hợp với các công nghệkhác như giải thuật gen hoặc tiếp cận mờ Một số vấn đề mở đang đặt ra hiện nay bao gồm: độphức tạp của tổng thể của mạng là gì? Độ phức tạp của thuật toán huấn luyện là gì? Giải phápmạng Neural nhân tạo có tổng quát quá không? Mạng học cái gì? Giải pháp mạng Neural nhântạo tỷ lệ với số chiều của bài toán như thế nào? Ngoài ra còn nhiều yếu tố ảnh hưởng đến sựphát triển của mạng Neural Không chỉ các cơ sở toán học, các phương pháp thiết kế mạng, cácthuật toán huấn luyện, mà còn có cả các khám phá trong lĩnh vực sinh học, tâm lý học, sẽ lànhững yếu tố quan trọng đối với sự phát triển của mạng Neural nhân tạo
II)Mô hình Neural và các kiến trúc mạng
Mạng Neural nhân tạo (Artificial Neural Network) bao gồm các Neural ( còn gọi làmột đơn vị xử lý hay một node) được nối với nhau bởi các liên kết Neural Mỗi liên kếtkèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt/ ức chế giữa các Neural Cóthể xem các trọng số là các phương tiện để lưu trữ thông tin dài hạn trong mạng Neural.Nhiệm vụ chung của quá trình huấn luyện mạng là cập nhật các trọng số khi có thêm cácthông tin về mẫu học
Trang 8Thông thường các Neural có nhiều đầu vào Một Neural có R đầu vào p1,p2 ,pR sẽ cócác trọng số tương ứng w1,w2, ,wR tạo thành một ma trận W và được gọi là ma trận trọngsố.
Hình 3: Mô hình một Neural nhân tạo
Đầu vào pi: Đặc trưng cho các tín hiệu điện kích thích trên các dây thần kinh củamạng Neural sinh học Các đầu vào này có thể có giá trị nhị phân là +1/-1 hoặc +1/0.Trọng số wi: Mỗi đầu vào có một trọng số wi Trọng số có giá trị là số thực dươnghoặc âm
Tổng trọng số n( Net): là hàm tổng hợp các tín hiệu vào của Neural Các hàm Netthường dùng là:
Trang 9n = w1p12+ w2p22 + + wRpR2
Hàm chuyển f(n,b):(còn được gọi là hàm kích hoạt hay hàm tích hợp): là một dạnghàm không tuyến tính đóng vai trò biến đổi từ Net sang tín hiệu đầu ra a Các dạng hàmkích hoạt sau thường được dùng trong thực tế:
Hình 4: Hàm chuyển giới hạn cứng
Hình 5: Hàm chuyển tuyến tính
∑
Trang 10Hình 6: Hàm chuyển Sigmoid
Ngưỡng b: Ngưỡng b đóng vai trò tăng tính thích nghi và khả năng tính toán củamạng Neural Trong các mạng Neural có sử dụng ngưỡng b, ta có thể coi như thêm mộttín hiệu đầu vào xR+1 với trọng số tương ứng wR+1 Giá trị của xR+1 là cố định và thườnggán xR+1=+1 Giá trị ban đầu của wR+1=-b Giá trị của wR+1 có thể thay đổi sau mỗi lần học.Tín hiệu đầu ra a: Tín hiệu đầu ra a là giá trị của hàm chuyển:
Trang 11Cạnh tranh a = 1 với nơrom có giá trị
đầu ra cực đại
a = 0 với các Neural khác
compet
II.2.1 Tính phi tuyến.
Một Neural có thể tính toán một cách tuyến tính hay phi tuyến Một mạng Neural, cấuthành bởi sự kết nối các Neural phi tuyến thì tự nó sẽ có tính phi tuyến Hơn nữa, điều đặc biệt làtính phi tuyến này được phân tán trên toàn mạng Tính phi tuyến là một thuộc tính rất quan trọng,nhất là khi các cơ chế vật lý sinh ra các tín hiệu đầu vào (ví dụ tín hiệu tiếng nói) vốn là phituyến
II.2.2 Tính chất tương ướng đầu vào đầu ra.
Mặc dù khái niệm “học” hay “huấn luyện” chưa được bàn đến nhưng để hiểu được mốiquan hệ đầu vào-đầu ra của mạng Neural, chúng ta sẽ đề cập sơ qua về khái niệm này Một môhình học phổ biến được gọi là học với một người dạy hay học có giám sát liên quan đến việcthay đổi các trọng số liên kết của mạng Neural bằng việc áp dụng một tập hợp các mẫu tích luỹhay các ví dụ tích luỹ Mỗi một ví dụ bao gồm một tín hiệu đầu vào và một đầu ra mong muốntương ứng Mạng Neural nhận một ví dụ lấy một cách ngẫu nhiên từ tập hợp nói trên tại đầu vàocủa nó, và các trọng số liên kết của mạng được biến đổi sao cho có thể cực tiểu hoá sự sai khácgiữa đầu ra mong muốn và đầu ra thực sự của mạng theo một tiêu chuẩn thống kê thích hợp Sựtích luỹ của mạng được lặp lại với nhiều ví dụ trong tập hợp cho tới khi mạng đạt tới một trạngthái ổn định mà ở đó không có một sự thay đổi đáng kể nào của các trọng số liên kết Các ví dụtích luỹ được áp dụng trước có thể được áp dụng lại trong thời gian của phiờn tớch luỹ nhưngtheo một thứ tự khác Như vậy mạng Neural học từ các ví dụ bằng cách xây dựng nên một tươngứng đầu vào-đầu ra cho vấn đề cần giải quyết
II.2.3 Tính chất thích nghi.
Các mạng Neural có một khả năng mặc định là biến đổi các trọng số liên kết tuỳ theo sựthay đổi của môi trường xung quanh Đặc biệt, một mạng Neural đã được tích luỹ để hoạt động
Trang 12trong một môi trường xác định có thể được tích luỹ lại một cách dễ dàng khi có những thay đổinhỏ của các điều kiện môi trường hoạt động.
II.2.4 Tính chất đưa ra lời giải có bằng chứng.
Trong ngữ cảnh phân loại mẫu, một mạng Neural có thể được thiết kế để đưa ra thông tinkhông chỉ về mẫu được phân loại, mà còn về sự tin cậy của quyết định đã được thực hiện Thôngtin này có thể được sử dụng để loại bỏ các mẫu mơ hồ hay nhập nhằng
II.2.5 Tính chất chấp nhận sai xót.
Một mạng Neural, được cài đặt dưới dạng phần cứng, vốn có khả năng chấp nhận lỗi, haykhả năng tính toán thô, với ý nghĩa là tính năng của nó chỉ thoỏi hoá khi có những điều kiện hoạtđộng bất lợi Ví dụ, nếu một Neural hay các liên kết kết nối của nó bị hỏng, việc nhận dạng lạimột mẫu được lưu trữ sẽ suy giảm về chất lượng
II.2.6 Khả năng cài đặt VLSI(Very-large-scale-intergrated).
Bản chất song song đồ sộ của một mạng Neural làm cho nó rất nhanh trong tính toán đốivới một số công việc Đặc tính này cũng tạo ra cho một mạng Neural khả năng phù hợp cho việccài đặt sử dụng kỹ thuật Very-large-scale-intergrated (VLSI) Kỹ thuật này cho phép xây dựngnhững mạch cứng tính toán song song quy mô lớn Chính vì vậy mà ưu điểm nổi bật của VLSI làmang lại những phương tiện hữu hiệu để có thể xử lý được những hành vi có độ phức tạp cao
II.2.7 Tính chất đồng dạng trong phân tích và thiết kế.
Về cơ bản, các mạng Neural có tính chất chung như là các bộ xử lý thông tin Chúng tanêu ra điều này với cùng ý nghĩa cho tất cả các lĩnh vực có liên quan tới việc ứng dụng mạngNeural Đặc tính này thể hiện ở một số điểm như sau:
• Các Neural, dưới dạng này hoặc dạng khác, biểu diễn một thành phần chung cho tất
Trang 13II.3 Phân loại mạng Neural
Mạng Neural là hệ thống bao gồm nhiều phần tử xử lý đơn giản( Neural) hoạt động songsong Tính năng của hệ thống này tuỳ thuộc vào cấu trúc của hệ, các trọng số liên kết và quátrình tính toán tại các Neural đơn lẻ Có nhiều cách phân loại mạng Neural, chủ yếu là dựa trêncác cơ sở sau:
II.3.1 Theo kiểu liên kết Neural
Neural đi theo một hướng nhất định, không tạo thành đồ thị có chu trình
• Mạng Neural hồi quy( Recurrent Neural Network) : cho phép các liên kếtNeural tạo thành chu trình
II.3.2 Theo phương pháp huấn luyện mạng
• Học giám sát( supervised learning)
• Học không có giám sát( unsupervised learning)
• Học tăng cường( reinforcement learning)
I.1.1 Theo số lớp Neural
Các Neural có thể tổ chức lại thành các lớp Tùy theo vấn đề cần giải quyết mà sửdụng mạng một lớp hay mạng đa lớp, các liên kết là nối đầy đủ hay không đầy đủ Sauđây chúng ta sẽ tìm hiểu phương phân loại dựa vào số lớp Neural trong mạng
I.1.1.1 Mạng Neural một lớp
Thông thường một Neural với nhiều đầu vào thường không đủ khả năng để giảiquyết các bài toán Người tao thường phải dùng nhiều Neural hoạt động song song gọi làmột lớp( hay còn gọi là một tầng) Neural
Trang 14Một lớp của S Neural được mô tả trong hình 6 Các liên kết trong mạng này là nốiđầy đủ, tức là R đầu vào được nối đầy đủ với các Neural và ma trận trọng số bây giờ có Shàng.
Hình 6: Mạng Neural một lớp có S-Neural
Số đầu vào và số đầu ra là độc lập với nhau, chúng không cần phải bằngnhau( R<>S) Hơn nữa, các hàm chuyển f của mỗi Neural trong cùng một lớp cũngkhông nhất thiết phải giống nhau
I.1.1.2 Mạng Neural nhiều lớp
Bây giờ ta xem xét mạng phức tạp hơn với một số lớp Neural nối tiếp nhau Mỗilớp có ma trận trọng số W riêng của nó, vectorr lệch b riêng, vectorr đầu vào tổng n riêng
và vectorr đầu ra riêng Chúng ta sẽ ký hiệu chỉ số trên của mỗi biến là số thứ tự củalớp(W1, W2, a1, a2, )
Trang 15Đầu ra của lớp j-1 là đầu vào của lớp j, đầu ra của lớp j ;à đầu vào của lớp j+1 Dovậy với lớp thứ j có Sj-1 đầu vào, Sj Neural đầu ra và Sj-1.Sj trọng số trong ma trận Wj Đầuvào của mạng thứ j là aj-1 và đầu ra là aj.
Lớp cuối cùng của mạng Neural gọi là lớp ra Các lớp khác gọi là lớp ẩn
Hình 7: Mạng Neural đa tầng
Mạng nhiều lớp có nhiều khả năng hơn mạng một lớp Một mạng hai lớp có hàmsigmoid ở lớp thứ nhất và hàm tuyến tính của lớp thứ hai có thể huấn luyện để xấp xỉ hầuhết mọi hàm tùy ý Mạng một lớp không thể thực hiện được việc này
I.1.1.3 Mạng Neural quy hồi
Mạng hồi quy là mạng có các phản hồi Một số đầu ra của mạng được đưa quay lạilàm đầu vào của chính nó Điều này hoàn toàn khác với các mạng đã đề cập đến trướcđây là tín hiệu đầu ra chỉ được chuyển tiếp mà không đưa quay trở lại Mô hình mạng hồiquy rời rạc theo thời gian được mô tả trong hình 8:
Trang 16Về cơ bản ta có thể hiểu mạng Neural là một đồ thị có hướng như hình 1.8 Trong đó cácđỉnh của đồ thị là các Neural và các cạnh của đồ thị là các liên kết giữa các Neural.
Hình 9: Sơ đồ đồ thị có hướng đơn giản
Trang 17Vì vậy để xây dựng một mạng Neural ta xây dựng một đồ thị có hướng: số đỉnh của đồ thịbằng số Neural trong mạng, giá trị của các cạnh chính là trọng số liên kết Neural.
Ví dụ xây dựng một mạng Neural đơn giản:
Đầu vào: Cho :
Mạng Neural có số lớp (với số lớp>=1)
Mỗi lớp có số Neural trong một lớp (số Neural>=1)
Trọng số w liên kiết Neural ngẫu nhiên trong khoảng (-a,a)
Đầu ra: Mạng Neural nhân tạo
Kiểu dữ liệu: chọn lưu dữ kiểu mảng :
int số_lớp;
int số_Neural[số_lớp];
float w[i][j][k]; với 1<=i<=số lớp, 1<=j,k<=số Neural
Thuật toán
Bước 1: Chọn lớp i=1 là lớp bắt đầu
Bước 2: Chọn lớp i là lớp hiện thời
Bước 3 : Tại lớp đang xét i , xét Neural thứ j
Bước 4: Thực hiện khởi tạo ngẫu nhiên trọng số kết nối với Neural k của lớp i-1 trongkhoảng (-a,a)
w(i,j,k)=random(-a,a)
Bước 5: Nếu k <= số Neural[i-1] quay lại “Bước 4”, ngược lại thực hiện “Bước 6”
Bước 6: Nếu j<= số Neural[i] quay lại “Bước 3”, ngược lại thực hiện “Bước 7”
Bước 7: Nếu i<=số lớp quay lại “Bước 3” ngược lại kết thúc