CHƢƠNG 2 : KỸ THUẬT NHẬN DẠNG SỬ DỤNG MẠNG NƠRON
2.1. Kỹ thuật trích chọn đặc trƣng ảnh
2.1.2. Một số kỹ thuật phát hiện biên trực tiếp
Kỹ thuật phát hiện biên Gradient: Theo định nghĩa, gradient là một véctơ có các thành phần biểu thị tốc độ thay đổi giá trị của điểm ảnh, ta có:
Trong đó: dx, dy là khoảng cách (tính bằng số điểm) theo hƣớng x và y. Dựa trên kỹ thuật Gradient hình thành các thuật toán khác nhau sử dụng để xác định biên trực tiếp từ đối tƣợng. Dƣới đây là một số kỹ thuật phát hiện biên trực tiếp. dy y x f dy y x f fy y y x f dx y x f y dx x f fx x y x f ) , ( ) , ( ) , ( ) , ( ) , ( ) , (
2.1.2.1. Kỹ thuật Prewitt
Kỹ thuật sử dụng 2 mặt nạ nhập chập xấp xỉ đạo hàm theo 2 hƣớng x và y là: -1 0 1 Hx = -1 0 1 -1 0 1 -1 -1 -1 Hy = 0 0 0 1 1 1
Các bƣớc tính toán của kỹ thuật Prewitt
+ Bước 1: Tính I Hx và I Hy
+ Bước 2: Tính I Hx + I Hy
2.1.2.2. Kỹ thuật Sobel
Tƣơng tự nhƣ kỹ thuật Prewitt kỹ thuật Sobel sử dụng 2 mặt nạ nhân chập theo 2 hƣớng x, y là: -1 0 1 Hx = -2 0 2 -1 0 1 -1 -2 -1 Hy = 0 0 0 1 2 1
Các bƣớc tính toán tƣơng tự Prewitt
+ Bước 1: Tính I Hx và I Hy
+ Bước 2: Tính |I Hx| + |I Hy|
2.1.2.3. Kỹ thuật la bàn
Kỹ thuật sử dụng 8 mặt nạ nhân chập theo 8 hƣớng 00, 450, 900, 1350, 1800, 2250, 2700, 3150 5 5 -3 5 5 5 H1 = 5 0 -3 H2 = -3 0 -3 -3 -3 -3 -3 -3 -3 -3 5 5 -3 -3 5 H3 = -3 0 5 H4 = -3 0 5
-3 -3 -3 -3 -3 -3 H5 = -3 0 5 H6 = -3 0 -3 -3 5 5 5 5 5 -3 -3 -3 5 -3 -3 H7 = 5 0 -3 H8 = 5 0 -3 5 5 -3 5 -3 -3
Các bƣớc tính toán thuật toán La bàn
+ Bước 1: Tính I Hi ; i = 1,8 + Bước 2: 8 1 i i H I
2.1.3. Kỹ thuật xây dựng đặc trưng ảnh từ biên
Dựa trên kỹ thuật phát hiện biên trực tiếp nhƣ đã trình bày ở phần trên của luận văn, tôi tìm hiểu các kỹ thuật xây dựng tập đặc trƣng cho đối tƣợng nhận dạng là lá cây dƣợc liệu.Các đặc trƣng của lá cây dƣợc liệu sẽ là yếu tố quyết định trong việc tính toán ở trong mạng nơron vì thế việc tìm các đặc trƣng là hết sức quan trọng. Giả sử rằng ảnh đầu vào chỉ chụp một lá chúng ta sẽ sử dụng thuật toán Prewitt Edge Detection để tìm ra các đặc trƣng của ảnh lá cây dƣợc liệu.
Kỹ thuật Prewitt Edge Detection
Đặc trƣng Prewitt Edge Detection là một đặc trƣng đƣợc xây dựng dựa trên biên của đối tƣợng. Trong đó, đối tƣợng đƣợc xác định biên dựa trên một thuật toán phát hiện biên trực tiếp nhƣ đã trình bày ở trên, sau đó chúng ta xác định một tập các điểm đặc trƣng rút gọn dựa trên tập biên ảnh thu đƣợc. Đặc trƣng Prewitt Edge Detection đƣợc xây dựng dựa trên tập điểm đặc trƣng rút gọn này. Chi tiết cụ thể các bƣớc xây dựng đặc trƣng Prewitt Edge Detection đƣợc trình bày trong lƣu đồ giải thuật sau:
Hình 2.1: Lưu đồ kỹ thuật Prewitt Edge Detection.
Với đặc trƣng đặc trƣng Prewitt Edge Detection ta xây dựng tập đặc trƣng dựa trên đầu vào là ảnh lá cây dƣợc liệu. Thuật toán trích chọn gồm 3 bƣớc cơ bản:
Ảnh dƣợc liệu trƣớc tách biên Ảnh dƣợc liệu sau tách biên
Hình 2.2: Ảnh lá cây dược liệu áp dụng thuật toán tách biên trực tiếp.
Bƣớc 2: Xác định tập đặc trƣng điểm rút gọn, dựa trên tập biên thu đƣợc sau quá trình tách biên ta thu đƣợc tập các điểm đặc trƣng rút gọn. Tập điểm đặc trƣng rút gọn này sẽ làm cơ sở xây dựng các tam giác đặc trƣng tại bƣớc 3. Vì tập các điểm biên thu đƣợc khá nhiều do đó ta phải lƣợc bƣớt các điển đặc trƣng này bằng các tạo một ma trận lƣới ép lên tập các điểm biên thu đƣợc. Các điểm đặc trƣng thu đƣợc là các điểm giao giữa ma trận lƣới và tập điểm biên.
Dựa trên việc điều chỉnh khoảng cách (kích thƣớc) giữa các ô của lƣới ta thu đƣợc số lƣợng các điểm đặc trƣng khác nhau, từ đó số lƣợng tam giác đặc trƣng thu đƣợc cũng khác nhau.
Lƣới lấy đặc trƣng kích thƣớc nhỏ Lƣới lấy đặc trƣng kích thƣớc lớn
Hình 2.4: Lưới phủ lên tập biên ảnh khi xác định tập đặc trưng điểm rút gọn với kích thước khác nhau.
Bƣớc 3: Xây dựng tập tam giác đặc trƣng
Sau khi thu đƣợc tập các điểm đặc trƣng rút gọn ta xác định đƣợc các ta giác vuống trong đó cứ hai điểm kề nhau của tập điểm đặc trƣng rút gọn thu đƣợc một tam giác đặc trƣng.
Trong hình vẽ này:
Đƣờng nét nhạt : Hình viền của lá cây dƣợc liệu sau khi đã áp dụng các thuật toán tách biên với lá cây dƣợc liệu.
Ô vuông : Ô vuông này biểu diễn 1 điểm nằm trong tập đặc trƣng rút gọn. Từ một ô vuông ta có thể vẽ 1 đƣờng thẳng tới 1 ô vuông tiếp theo.
Đƣờng nét đậm : Đƣờng nét đậm là đƣờng nối các trung tâm của ô vuông. Đƣờng này sẽ là cạnh huyền của các tam giác đặc trƣng sử dụng trong nhận dạng lá cây dƣợc liệu.
Bây giờ chúng ta sẽ đi sâu hơn vào hình tam giác vuông với cạnh huyền là đƣờng nét đậm và hai đỉnh là hai hình vuông. Tất cả các hình tam giác này của ảnh lá cây dƣợc liệu sẽ biểu diễn đặc trƣng của chiếc lá và chúng sẽ là đầu vào của mạng nơron mà chúng ta sẽ sử dụng để nhận dạng lá cây. Giờ chúng ta sẽ xem xét kỹ hơn về một tam giác ví dụ nhƣ hình bên dƣới:
Hình 2.6: Tam giác vuông biểu diễn góc đặc trưng
Từ tam giác vuông này chúng ta tính đƣợc sin(B) và cos(B) (cũng có thể sử dụng sin(A), cos(A)) đây cũng chính là giá trí đại diện cho một điểm trên đặc trƣng của cạnh lá cây dƣợc liệu và hai giá trị này cũng chính là đầu vào của mạng nơron sử dụng để tính toán.
2.2. Mạng nơ-ron lan truyền thẳng nhiều lớp
2.2.1. Mạng perceptron một lớp
Mạng perceptron một lớp do F.Rosenblatt đề xuất năm 1960 [7] là mạng truyền thẳng chỉ một lớp vào và một lớp ra không có lớp ẩn. Trên mỗi lớp này có thể có một hoặc nhiều nơ-ron. Mô hình mạng nơ-ron của Rosenblatt sử dụng hàm ngƣỡng đóng vai trò là hàm chuyển. Do đó, tổng của các tín hiệu vào lớn hơn giá trị ngƣỡng thì giá trị đầu ra của nơ-ron sẽ là 1, còn trái lại sẽ là 0
Ngay từ khi mạng Perceptron một lớp đƣợc đề xuất nó đã đƣợc sử dụng để giải quyết bài toán phân lớp. Một đối tƣợng sẽ đƣợc nơ-ron i phân vào lớp A nếu
Tổng thông tin đầu vào : ∑wijxi > θ
Trong đó wij là trọng số liên kết từ nơ-ron j tới nơ-ron i , xj là đầu vào từ nơ-ron j, và θ là ngƣỡng của nơ-ron i. Trong trƣờng hợp trái lại đối tƣợng sẽ đƣợc phân vào lớp B.
Việc huấn luyện mạng dựa trên phƣơng pháp học có giám sát với tập mẫu học là {(x( k)
, d( k) )}, k= 1,2, …, p .Trong đó d( k )= [d1( k ), d2( k ), …, dn( k )] T là đầu ra quan sát đƣợc tƣơng ứng với đầu vào x(k)
= [x1 (k), x2 (k), …, xm (k)] T (với m là số đầu vào, n là số đầu ra và p là cặp mẫu đầu vào - đầu ra dùng cho việc học). Nhƣ vậy chúng ta mong rằng sau quá trình học, đầu ra tính toán đƣợc y(k)
= [y1 (k),
y2 (k),
…, yn(k)]Tsẽ bằng với đầu ra của mẫu học d(k)
(2.1)
Hình 2.7: Mạng perceptron một lớp
Để bắt đầu quá trình luyện mạng, các trọng số đƣợc gán giá trị ngẫu nhiên trong khoảng [-3, 3]. Sau đó hiệu chỉnh các trọng số cho phù hợp với mẫu học để làm giảm sai số giữa y(k)
và d(k) Các bƣớc tiến hành :
• Xác định ngẫu nhiên bộ trọng số. • Với mỗi mẫu học (x(k)
, d(k)) , k=1,2, ..., p thực hiện các bƣớc: o Tính giá trị y(k)
theo công thức
o Xác định sai số δi tại nơ-ron i: δi = di – yi , trong đó di là giá trị đầu ra quan sát đƣợc và yi là giá trị đầu ra tính toán tại nơ-ron thứ i
o Tính ∆wij là số gia của trọng số wij (trọng số liên kết giữa đầu vào j tới nơ- ron i) theo công thức: ∆wij =ηδixj trong đó η là tốc độ học (0<η<1)
o Hiệu chỉnh wij (t+1) = wij (t) + ∆wij =wij (t) +ηδi (t) xj (t) trong đó wij (t+1) làtrọng số sau khi điều chỉnh ở lần học tại thời điểm t.
Rosenblatt đã chứng minh rằng quá trình học của mạng Perceptron sẽ hội tụ tới bộ trọng số W, biểu diễn đúng các mẫu học với điều kiện là các mẫu này biểu thị các điểm rời rạc của một hàm khả tách tuyến tính nào đó (f: Rn
→ R đƣợc gọi là khả tách tuyến tính nếu các tập {F-1
(xk)}, với xk thuộc miền trị của f, có thể tách đƣợc với nhau bởi các siêu phẳng trong không gian Rn
).
Năm 1969, Minsky và Papert đã chứng minh một cách chặt chẽ rằng lớp hàm thể hiện sự phụ thuộc giữa đầu vào và đầu ra có thể học bởi mạng Perceptron một lớp là lớp hàm khả tách tuyến tính. Khả tách tuyến tính là trƣờng hợp tồn tại một mặt siêu phẳng để phân cách tất cả các đối tƣợng của một lớp này với một lớp khác, ví dụ một mặt phẳng sẽ phân chia không gian ba chiều thành hai vùng riêng biệt. Mở rộng ra, nếu có n đầu vào, n>2 thì công thức
tạo nên một siêu phẳng có n-1 chiều trong không gian n chiều, nó chia không gian đó thành hai nửa. Trong nhiều bài toán thực tế đòi hỏi chia các vùng của các điểm trong một siêu không gian thành các lớp riêng biệt. Loại bài toán này gọi là bài toán phân lớp. Bài toán phân lớp có thể giải quyết bằng cách tìm các tham số thích hợp cho một siêu phẳng để nó có thể chia không gian n chiều thành các vùng riêng biệt.
Với tính chất của nhƣ đã nêu trên, mạng perceptron một lớp có thể mô tả các hàm logic nhƣ AND, OR và NOT. Tuy nhiên nó không thể hiện đƣợc hàm XOR. Nhƣ vậy chứng tỏ mô hình perceptron một lớp không thể giải quyết bài toán này.Vấn đề này sẽ đƣợc giải quyết bằng mô hình mạng nơ-ron perceptron nhiều lớp (Multilayer Perceptron - MLP).
2.2.2. Mạng perceptron nhiều lớp
Mạng perceptron nhiều lớp (Multilayer Perceptron –MLP) còn đƣợc gọi là mạng truyền thẳng nhiều lớp là sự mở rộng của mô hình mạng perceptron với sự bổ sung thêm những lớp ẩn và các nơ-ron trong các lớp ẩn này có hàm chuyển (hàm kích hoạt) dạng phi tuyến. Mạng MLP có một lớp ẩn là mạng nơ-ron nhân tạo đƣợc sử dụng phổ biến nhất, nó có thể xấp xỉ các hàm liên tục đƣợc định nghĩa trên một miền có giới hạn cũng nhƣ những hàm là tập hợp hữu hạn của các điểm rời rạc.
a. Giải quyết bài toán XOR với mạng MLP
Ta thấy có thể dùng hai đƣờng thẳng để phân tách với trƣờng hợp hàm XOR.
-0,5+x1+x2=0 và -1,5+x1+x2=0 Hay ta giải hệ bất phƣơng trình
Dễ thấy mỗi bất phƣơng trình ở trên có thể đƣợc thực hiện bằng một nơ- ron và đầu ra của hai nơ-ron này (2 bất phƣơng trình) là đầu vào của một hàm AND. Do vậy có thể sử dụng mạng MLP sau để thực hiện chức năng của hàm XOR nhƣ sau:
Hình 2.8 Thực hiện hàm XOR bằng mạng MLP
b. Thuật toán học theo phƣơng pháp lan truyền ngƣợc sai số
Thuật toán học theo phƣơng pháp lan truyền ngƣợc sai số do Rumelhart và cáccộng sự đề xuất [10] là một trong số những kết quả nghiên cứu quan
trọng nhất đối với sự phát triển của mạng nơ-ron nhân tạo. Thuật toán này đƣợc áp dụng cho mạng truyền thẳng nhiều lớp trong đó các nơ-ron có thể sử dụng các hàm chuyển là các hàm liên tục có các dạng khác nhau.
Thuật toán sử dụng một tập các mẫu gồm các cặp đầu vào - đầu ra để luyện mạng. Với mỗi cặp đầu vào - đầu ra (x(k)
,d(k)) thuật toán lan truyền ngƣợc sai số thực hiện hai giai đoạn sau:
• Giai đoạn thứ nhất, mẫu đầu vào x(k)
đƣợc truyền từ lớp vào tới lớp ra, và ta có kết quả đầu ra tính toán đƣợc là y(k)
.
• Giai đoạn tiếp theo, tín hiệu lỗi đƣợc tính toán từ sự khác nhau giữa đầu ra quan sát đƣợc d(k)
với đầu ra tính toán y(k) sẽ đƣợc lan truyền ngƣợc lại từ lớp ra đến các lớp trƣớc để điều chỉnh các trọng số của mạng. Để làm ví dụ ta xét mạng truyền thẳng có một lớp ẩn dƣới đây, đối với các mạng có kích thƣớc lớn hơn thì thao tác cũng tƣơng tự.
Mạng nơ-ron đƣợc xét có m nơ-ron ở lớp vào, l nơ-ron trong lớp ẩn và n nơ-ron ở lớp ra. Đƣờng kẻ liền thể hiện luồng tín hiệu đƣợc truyền từ đầu vào tới đầu ra còn các đƣờng kẻ nét đứt thể hiện luồng tín hiệu lỗi đƣợc truyền ngƣợc trở lại từ đầu ra.
Hình 2.9: Lan truyền tín hiệu trong quá trình học theo phương pháp lan truyền ngược sai số
Chúng ta xét một cặp đầu vào - đầu ra để luyện mạng (x,d), để đơn giản chúng ta bỏ ký hiệu mũ k thể hiện số thứ tự của cặp mẫu này trong bộ mẫu dùng để luyện mạng. Khi đƣa vào đầu vào x, nơ-ron thứ q trong lớp ẩn sẽ nhận tín hiệu vào của mạng là:
(2.2)
nơ-ron q ở lớp ẩn sẽ tính toán và tạo kết quả ở đầu ra của nó là:
(2.3)
Do đó tín hiệu vào của nơ-ron thứ i trên lớp ra sẽ là:
(2.4) Và cuối cùng, đầu ra của nơ-ron i trên lớp ra sẽ là:
(2.5) Công thức trên cho biết quá trình lan truyền tín hiệu từ đầu vào qua lớp ẩn tới đầu ra. Tiếp theo chúng ta xét tín hiệu lỗi đƣợc lan truyền ngƣợc lại từ lớp ra. Trƣớc hết, đối với mỗi cặp giá trị vào – ra chúng ta xây dựng một hàm giá nhƣ sau:
(2.6)
Nhƣ vậy với một tập gồm p mẫu học, chúng ta lần lƣợt xây dựng đƣợc p hàm giá nhƣ vậy. Việc học của mạng hay nhiệm vụ của giải thuật thực chất là tìm kiếm tập trọng số W trong không gian RM (M là số trọng số có trong mạng) để lần lƣợt tối thiểu hoá các hàm giá nhƣ vậy. Điều đáng chú ý là việc tối thiểu hoá đƣợc tiến hành liên tiếp nhau và theo chu kỳ đối với các hàm giá.
Để tối thiểu hoá các hàm giá nhƣ vậy, giải thuật lan truyền ngƣợc sai số sử dụng phƣơng pháp giảm gradient để điều chỉnh các trọng số liên kết giữa các nơ-ron. Bản chất của phƣơng pháp này là khi sai số E đƣợc vẽ nhƣ hàm của tham số gây ra sai số sẽ phải có một cực tiểu tại bộ giá trị nào đó của tham số. Khi quan sát độ dốc của đƣờng cong, chúng ta quyết định phải thay đổi tham số thế nào để có thể tiến gần đến cực tiểu cần tìm kiếm hơn. Trong hình vẽ dƣới đây, giá trị của trọng số phải giảm nếu đạo hàm dE/dW là dƣơng
Hình 2.10. Sai số E được xét là hàm của trọng số W
Bằng biểu thức, chúng ta có thể biểu diễn phƣơng pháp giảm gradient nhƣ sau: ∆w= w(new)
– w(old) = -η.∂E/∂w (2.7)
Ở đây η là hằng số dƣơng xác định tốc độ giảm giá trị của w, còn dấu âm chỉ chiều giảm gradient.
Áp dụng phƣơng pháp giảm gradient đối với các trọng số liên kết giữa